-(UIImage*)scaleImage:(UIImage*)imagetoScale:(float)scaleSize
{
? ? UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize));
? ? [imagedrawInRect:CGRectMake(0, 0, image.size.width* scaleSize, image.size.height*scaleSize)];
? ? UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
? ? UIGraphicsEndImageContext();
? ? returnscaledImage;
}
#pragma mark - QRCodeGenerator
- (CIImage*)createQRForString:(NSString*)qrString {
? ? NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncoding];
? ? CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
? ? [qrFiltersetValue:stringDataforKey:@"inputMessage"];
? ? [qrFiltersetValue:@"M" forKey:@"inputCorrectionLevel"];
? ? returnqrFilter.outputImage;
}
/*? ============================================================? */
#pragma mark - InterpolatedUIImage
- (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size {
? ? CGRect extent = CGRectIntegral(image.extent);
? ? CGFloatscale =MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));
? ? size_twidth =CGRectGetWidth(extent) * scale;
? ? size_theight =CGRectGetHeight(extent) * scale;
? ? CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray();
? ? CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);
? ? CIContext *context = [CIContext contextWithOptions:nil];
? ? CGImageRefbitmapImage = [contextcreateCGImage:imagefromRect:extent];
? ? CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
? ? CGContextScaleCTM(bitmapRef, scale, scale);
? ? CGContextDrawImage(bitmapRef, extent, bitmapImage);
? ? CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
? ? // Cleanup
? ? CGContextRelease(bitmapRef);
? ? CGImageRelease(bitmapImage);
? ? return [UIImage imageWithCGImage:scaledImage];
}
#pragma mark- 生成二維碼的方法
- (void)QRCodeMethod:(NSString*)qrCodeString {
? ? UIImage *qrcodeImg = [self createNonInterpolatedUIImageFormCIImage:[self createQRForString:qrCodeString] withSize:250.0f];
? ? // ** 將生成的
? ? self.QRCodeIMG.image= qrcodeImg;
}