QRCodeEncoder.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //
  2. // QRCodeEncoder.h
  3. // sdk_gen3_3g
  4. //
  5. // Created by Tom on 15/6/10.
  6. // Copyright (c) 2015年 Taobao.com. All rights reserved.
  7. //
  8. // 为减少包大小,支付宝钱包不用这个类生成二维码
  9. #import <Foundation/Foundation.h>
  10. #import <UIKit/UIKit.h>
  11. typedef NS_ENUM(NSUInteger, QRCodeEncodeType) {
  12. QRCodeEncodeTypeGen0 = 0, // 普通黑白二维码
  13. QRCodeEncodeTypeGen1, // 在背景图片上生成二维码,背景图片比较模糊,生成的二维码其它APP均可以扫描
  14. QRCodeEncodeTypeGen2, // 在背景图片上生成二维码,背景图片相对清晰,生成的二维码其它APP均可以扫描
  15. QRCodeEncodeTypeGen3, // 在背景图片上生成二维码,背景图片上除四个角外其它地方没有点阵信息,最美观但只有使用手淘提供的SDK才能解析
  16. QRCodeEncodeTypeLogoInCenter, // 在黑白二维码中间增加小的Logo图片
  17. };
  18. @interface QRCodeEncodeHints : NSObject
  19. // 只有在生成三代码时才需要设置domainIndex
  20. @property (nonatomic, assign) char domainIndex_gen3;
  21. // 只有在生成三代码时才需要设置originContent,指明三代码的原始内容用于失败时生成普通黑白二维码
  22. @property (nonatomic, copy) NSString *originContent_gen3;
  23. // 此参数声明黑白二维码中间logo图片的size,此size最好小于二维码size的1/3,不指定时SDK会使用默认的size
  24. @property (nonatomic, assign) int logoSize;
  25. // 二维码的margin
  26. @property (nonatomic, assign) int margin;
  27. // 二维码的version
  28. @property (nonatomic, assign) int version;
  29. // 三代码的format
  30. @property (nonatomic, assign) int gen3Format;
  31. @end
  32. @interface QRCodeEncoder : NSObject
  33. /**
  34. * 生成二维码图片,生成除gen0以外的二维码失败时会尝试生成gen0二维码。使用背景图片时如果背景图大小与最终二维码图片大小不一致则会进行等比缩放,
  35. * 超出范围的部分会被裁剪掉。使用Logo图片时Logo图片会根据hints参数里的logoSize进行缩放,不指定logoSize时SDK会自动将Logo图片缩放到合适大小。
  36. *
  37. * @param content 二维码的内容,可以是文本也可以是URL
  38. * @param image 二维码背景图片或者Logo图片,如果背景图片的长或宽小于124px则会拉伸到124px再生成二维码
  39. * @param size 最终生成的二维码图片大小,一般直接传入图片显示到屏幕上的大小
  40. * @param type 生成的二维码类型
  41. * @param hints 辅助生成二维码的信息
  42. *
  43. * @return 返回生成的二维码图片
  44. */
  45. + (UIImage *)encode:(NSString *)content image:(UIImage *)image qrImageSize:(CGFloat)size type:(QRCodeEncodeType)type hints:(QRCodeEncodeHints *)hints;
  46. @end