iOS 개발 QR 코드 이미지 생 성(작은 아이콘 QR 코드 첨부)
1.일반 QR 코드
1.1 방법
/**
QRStering:
imageFloat:
*/
+ (UIImage *)createQRCodeWithString:(NSString *)QRStering withImgSize:(CGFloat)imageFloat;
1.2 방법 실현
/**
QRStering:
imageFloat:
*/
+ (UIImage *)createQRCodeWithString:(NSString *)QRString withImgSize:(CGFloat)imageFloat{
CIFilter *filter = [CIFilter filterWithName:@"XiaoGuiGe"];
[filter setDefaults];
NSString *getString = QRString;
NSData *dataString = [getString dataUsingEncoding:NSUTF8StringEncoding];
[filter setValue:dataString forKey:@"inputMessage"];
///
CIImage *outImage = [filter outputImage];
UIImage *imageV = [self imageWithImageSize:imageFloat withCIIImage:outImage];
//
return imageV;
}
2.중간 에 작은 아이콘 이 있 는 QR 코드2.1 방법
/**
( )
QRStering:
centerImage: image
*/
+ (UIImage *)createImgQRCodeWithString:(NSString *)QRString centerImage:(UIImage *)centerImage;
2.2 방법 실현
/**
( )
QRStering:
centerImage: image
*/
+ (UIImage *)createImgQRCodeWithString:(NSString *)QRString centerImage:(UIImage *)centerImage{
//
CIFilter *filter = [CIFilter filterWithName:@"XiaoGuiGe"];
//
[filter setDefaults];
// NSdata
NSData *dataString = [QRString dataUsingEncoding:NSUTF8StringEncoding];
// , KVC
[filter setValue:dataString forKey:@"inputMessage"];
//
CIImage *outImage = [filter outputImage];
// (27,27),
outImage = [outImage imageByApplyingTransform:CGAffineTransformMakeScale(20, 20)];
// CIImage UIImage
UIImage *startImage = [UIImage imageWithCIImage:outImage];
// ,
UIGraphicsBeginImageContext(startImage.size);
// ( , (0,0)
[startImage drawInRect:CGRectMake(0, 0, startImage.size.width, startImage.size.height)];
//
CGFloat icon_imageW = 200;
CGFloat icon_imageH = icon_imageW;
CGFloat icon_imageX = (startImage.size.width - icon_imageW) * 0.5;
CGFloat icon_imageY = (startImage.size.height - icon_imageH) * 0.5;
[centerImage drawInRect:CGRectMake(icon_imageX, icon_imageY, icon_imageW, icon_imageH)];
//
UIImage *qrImage = UIGraphicsGetImageFromCurrentImageContext();
//
UIGraphicsEndImageContext();
//
return qrImage;
}
부가 방법
/** CIImage UIImage ( )*/
+ (UIImage *)imageWithImageSize:(CGFloat)size withCIIImage:(CIImage *)ciiImage{
CGRect extent = CGRectIntegral(ciiImage.extent);
CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));
// 1. bitmap;
size_t width = CGRectGetWidth(extent) * scale;
size_t height = CGRectGetHeight(extent) * scale;
CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray();
CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef bitmapImage = [context createCGImage:ciiImage fromRect:extent];
CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
CGContextScaleCTM(bitmapRef, scale, scale);
CGContextDrawImage(bitmapRef, extent, bitmapImage);
// 2. bitmap
CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
CGContextRelease(bitmapRef);
CGImageRelease(bitmapImage);
return [UIImage imageWithCGImage:scaledImage];
}
총결산위 에서 말씀 드 린 것 은 편집장 님 께 서 소개 해 주신 iOS 개발 생 성 QR 코드 이미지(첨부 된 작은 아이콘 QR 코드)입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.