//ui
// ViewController.m編碼
// ZXingspa
//.net
// Created by 崔曉宇 on 16/1/4.3d
// Copyright © 2016年 崔曉宇. All rights reserved.code
//orm
#import "ViewController.h"ip
#import <ZXingObjC/ZXingObjC.h>get
@interface ViewController ()string
{
UIImage *imageResult;
}
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self encoding];
[self decoding];
}
//Quick Response Code
#pragma mark 編碼
- (void)encoding{
NSError *error = nil;
ZXMultiFormatWriter *writer = [ZXMultiFormatWriter writer];
ZXBitMatrix* result = [writer encode:@"http://www.sina.com.cn"format:kBarcodeFormatQRCode width:500 height:500 error:&error];//這裏寫想要跳轉的網址
if (result) {
CGImageRef image = [[ZXImage imageWithMatrix:result] cgimage];
// This CGImageRef image can be placed in a UIImage, NSImage, or written to a file.
imageResult = [UIImage imageWithCGImage:image];
UIImageView *result = [[UIImageView alloc]initWithFrame:CGRectMake(20, 20, 345, 345)];
result.image = imageResult;
[self.view addSubview:result];
} else {
NSString *errorMessage = [error localizedDescription];
NSLog(@"出錯:%@",errorMessage);
}
}
#pragma mark 解碼
- (void)decoding{
CGImageRef imageToDecode = [imageResult CGImage]; // Given a CGImage in which we are looking for barcodes
ZXLuminanceSource *source = [[ZXCGImageLuminanceSource alloc] initWithCGImage:imageToDecode];
ZXBinaryBitmap *bitmap = [ZXBinaryBitmap binaryBitmapWithBinarizer:[ZXHybridBinarizer binarizerWithSource:source]];
NSError *error = nil;
// There are a number of hints we can give to the reader, including
// possible formats, allowed lengths, and the string encoding.
ZXDecodeHints *hints = [ZXDecodeHints hints];
ZXMultiFormatReader *reader = [ZXMultiFormatReader reader];
ZXResult *result = [reader decode:bitmap hints:hints error:&error];
if (result) {
// The coded result as a string. The raw data can be accessed with
// result.rawBytes and result.length.
NSString *contents = result.text;
NSLog(@"二維碼結果:%@",contents);
// The barcode format, such as a QR code or UPC-A
ZXBarcodeFormat format = result.barcodeFormat;
NSLog(@"該碼格式爲:%u", format);
} else {
// Use error to determine why we didn't get a result, such as a barcode
// not being found, an invalid checksum, or a format inconsistency.
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end