根据二维码图片路径生成二维码

2021-09-22  本文已影响0人  一代枭雄

-(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;

}

上一篇 下一篇

猜你喜欢

热点阅读