iOS 개발 QR 코드 이미지 생 성(작은 아이콘 QR 코드 첨부)

4207 단어 iosQR 코드
QR 코드 이미 지 를 만 드 는 것 도 프로젝트 에서 자주 사용 하 는 것 이다.QR 코드 의 스 캔 Git 에 사용 하기 좋 은 것 이 많다.여기 서 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 코드)입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기