#import "ViewController.h"
#import <CoreImage/CoreImage.h>
#import "UIImage+QRCode.h"
@interface ViewController ()
@property (strong, nonatomic) CIFilter *filter;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self code128Test];
[self QRCodeTest];
}
- (void)QRCodeTest {
NSArray <NSString *> *filerNames = [CIFilter filterNamesInCategory:kCICategoryBuiltIn];
NSLog(@"%@", filerNames);
self.filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
NSLog(@"%@", self.filter.inputKeys);
NSString *content = @"Hi, man, you are good! 才怪咧!Hi, man, you are good! 才怪咧!Hi, man, you are good! 才怪咧!";
NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
[self.filter setValue:data forKey:@"inputMessage"];
CIImage *ciImage = self.filter.outputImage;
NSLog(@"%@", NSStringFromCGSize(ciImage.extent.size));
ciImage = [ciImage imageByApplyingTransform:CGAffineTransformMakeScale(10, 10)];
NSLog(@"%@", NSStringFromCGSize(ciImage.extent.size));
UIImage *image = [UIImage imageWithCIImage:ciImage];
image = [image imageWithIcon:[UIImage imageNamed:@"shuai.JPG"]];
self.imageView.image = image;
}
- (void)code128Test
{
self.filter = [CIFilter filterWithName:@"CICode128BarcodeGenerator"];
NSString *content = @"687874837";
NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
[self.filter setValue:data forKey:@"inputMessage"];
CIImage *ciImage = self.filter.outputImage;
UIImage *image = [UIImage imageWithCIImage:ciImage];
self.imageView.image = image;
}
@end
#import <UIKit/UIKit.h>
@interface UIImage (QRCode)
- (UIImage *)imageWithIcon:(UIImage *)icon;
@end
#import "UIImage+QRCode.h"
@implementation UIImage (QRCode)
- (UIImage *)imageWithIcon:(UIImage *)icon
{
UIGraphicsBeginImageContext(self.size);
[self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)];
CGFloat wh = self.size.width * 0.2;
CGRect iconRect = CGRectMake((self.size.width - wh) * 0.5, (self.size.height - wh) * 0.5, wh, wh);
[icon drawInRect:iconRect];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
@end