汉信码在iOS客户端中的应用和遇到的坑

  

先简单介绍一下的汉信码,基本上和QRCode即二维码大差不差,可但是,二维码一般扫描出来是非中文的字符串(一般为链接),这就是汉信码区别于二维码的地方,汉信码是涵盖中文的,而且是国家自主研发非骗经费项目,虽然没有推广起来但是还是很好用的。其官网为:http://cscode.gs1cn.org/

简约而不简单的网站,大家可以看一下,在此提供一个样例:汉信码在iOS客户端中的应用和遇到的坑”> <br/> </p> <p> <br/> </p> <p>其优点:汉字编码能力超强,极强抗污损,抗畸变识读能力,识读速度快,信息密度高,纠错能力强,图形美观等官方这么说的。</p> <p> <br/> </p> <p>然后,针对不同的平台官方提供了不同的解决方案来方便集成,但是所提供的继承文档内容少之又少:如下图为iOS客户端即成文档非常简洁:</p> <p> <img src=

汉信码在iOS客户端中的应用和遇到的坑

汉信码在iOS客户端中的应用和遇到的坑

接下来开始结合文档开始集成汉信数码识别


鉴于文档如此简洁好知道了函数需要传入一个图片的进屋字符类型数据

于是乎第一步转化灰度图片

-(用户界面图像*)getGrayImage: sourceImage(用户界面图像*)   {   ,,,int  width =, sourceImage.size.width;   ,,,int  height =, sourceImage.size.height;   ,,,CGColorSpaceRef  colorSpace =, CGColorSpaceCreateDeviceGray ();   ,,,CGContextRef  context =, CGBitmapContextCreate  (nil,   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,宽度,   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,//,bits  per 组件   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,色彩,   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,kCGImageAlphaNone);   ,,,CGColorSpaceRelease(色彩);   ,,,if  (context ==, NULL), {   ,,,,,,,return 零;   ,,,}   ,,,CGContextDrawImage(上下文,   ,,,,,,,,,,,,,,,,,,,,,,CGRectMake(0, 0,宽度,高度),,sourceImage.CGImage);   ,,,UIImage  * grayImage =, (UIImage  p_w_picpathWithCGImage: CGBitmapContextCreateImage(上下文)];,,   ,,,CGContextRelease(上下文);   ,,,return  grayImage;   }

第二步拿到灰度图片转为一维数组数据

+,(unsigned  char  *), convertUIImageToBitmapRGBA8: (UIImage  *), p_w_picpath  {   ,,,,   ,,,CGImageRef  p_w_picpathRef =, p_w_picpath.CGImage;   ,,,,   ,,,//,Create  a  bitmap  context 用draw 从而uip_w_picpath    ,,,CGContextRef  context =, [self  newBitmapRGBA8ContextFromImage p_w_picpathRef):;   ,,,,   ,,,如果上下文(!),{   ,,,,,,,return 零;   ,,,}   ,,,,   ,,,size_t  width =, CGImageGetWidth (p_w_picpathRef);   ,,,size_t  height =, CGImageGetHeight (p_w_picpathRef);   ,,,,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

汉信码在iOS客户端中的应用和遇到的坑