我需要使用objective-c生成QRCodes。有没有可用的库/框架?谢谢
发布于 2016-04-27 19:11:20
我使用这个简单的代码在我的一个项目中编码了一个QRCode。您可以使用:
//
// QRCodeGeneratorViewController.h
//
//
// Created by Jhoney Lopes on 28/09/14.
// Copyright (c) 2014 Jhoney Lopes. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface QRCodeGeneratorViewController : UIViewController
@end实施.m
//
// QRCodeGeneratorViewController.m
//
//
// Created by Jhoney Lopes on 28/09/14.
// Copyright (c) 2014 Jhoney Lopes. All rights reserved.
//
#import "QRCodeGeneratorViewController.h"
@interface QRCodeGeneratorViewController ()
@property (strong, nonatomic) IBOutlet UIImageView *qrImageView;
@end
@implementation QRCodeGeneratorViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self generateTheQRCodeImageFromDataBaseInfo:@"TEXT-WHAT-YOU-WANT-TO-CONVERT-IN-QRCODE"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - QR Code Generator
- (CIImage *)createQRForString:(NSString *)qrString
{
// Need to convert the string to a UTF-8 encoded NSData object
NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncoding];
// Create the filter
CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
// Set the message content and error-correction level
[qrFilter setValue:stringData forKey:@"inputMessage"];
[qrFilter setValue:@"H" forKey:@"inputCorrectionLevel"];
// Send the image back
return qrFilter.outputImage;
}
- (UIImage *)createNonInterpolatedUIImageFromCIImage:(CIImage *)image withScale:(CGFloat)scale
{
// Render the CIImage into a CGImage
CGImageRef cgImage = [[CIContext contextWithOptions:nil] createCGImage:image fromRect:image.extent];
// Now we'll rescale using CoreGraphics
UIGraphicsBeginImageContext(CGSizeMake(image.extent.size.width * scale, image.extent.size.width * scale));
CGContextRef context = UIGraphicsGetCurrentContext();
// We don't want to interpolate (since we've got a pixel-correct image)
CGContextSetInterpolationQuality(context, kCGInterpolationNone);
CGContextDrawImage(context, CGContextGetClipBoundingBox(context), cgImage);
// Get the image out
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// Tidy up
UIGraphicsEndImageContext();
CGImageRelease(cgImage);
return scaledImage;
}
- (void)generateTheQRCodeImageFromDataBaseInfo:(NSString *)jsonString {
// Get the string
NSString *stringToEncode = jsonString;
// Generate the image
CIImage *qrCode = [self createQRForString:stringToEncode];
// Convert to an UIImage
UIImage *qrCodeImg = [self createNonInterpolatedUIImageFromCIImage:qrCode withScale:2*[[UIScreen mainScreen] scale]];
// And push the image on to the screen
self.qrImageView.image = qrCodeImg;
}发布于 2011-05-27 04:21:39
看看http://code.google.com/p/simplehttp/source/browse/trunk/qrencode/qrencode.c?r=78吧。
如果你可以从objective-C调用C-routines,那么你就成功了。
发布于 2011-05-27 04:22:19
zxing具有用于iPhone的QR模块。
https://stackoverflow.com/questions/6144526
复制相似问题