我有一个 unsigned char * data ,其中包含以下值,如在xcode中调试时所见,
\ XC1 \ XC1 \ XC1 \ XC1 \ XC1 \ XC1 \ XC1 \ XC0 \ X84 \ X03 \ X03 \ X02 \ X03 \ X02 \ X03 \ X03 \ X03 \ X02 \ X02 \ X03 \ X02 \ X03 \ X02 \ X02 \ X03 \ X02 \ X02 \ X02 \ X02 \ X03 \ X03 \ X03 \ X03 \ X03 \ X02 \ X02 \ X03 \ X03 \ X03 \ X02 \ X02 \ X03 \ X02 \ X02 \ X02 \ X02 \ X03 \ X03 \ X03 \ X02 \ X02 \ X02 \ X02 \ X03 \ X02 \ X03 \ X02 \ X03 \ X02 \ X03 \ X02 \ X03 \ X02 \ X03 \ X02 \ X02 \ X02 \ X03 \ X03 \ X03 \ X03 \ X03 \ X02 \ X03 \ X02 \ X03 \ X02 \ X03 \ X03 \ X02 \ X02 \ X03 \ X03 \ X03 \ X02 \ X02 \ X02 \ X02 \ X02 \ X03 \ X02 \ X02 \ X03 \ X02 \ X03 \ X02 \ X02 \ X03 \ X03 \ X03
这是qr代码的数据数组。
符号数据表示为包含宽度*宽度uchars的数组。每个uchar代表一个模块(点)。如果uchar的较低位为1,则相应的模块为黑色。
在上述情况下,宽度 177 。
我在CGBitmapContextCreate中尝试了各种组合,但似乎总是得到NULL。
请告知。
非常感谢您的帮助。
答案 0 :(得分:1)
我已成功使用:
CGImageRef refImage = [myUIImage CGImage];
CGContextRef ctx;
int w = CGImageGetWidth(refImage);
int h = CGImageGetHeight(refImage);
int bytesPerRow = CGImageGetBytesPerRow(refImage);
ctx = CGBitmapContextCreate(rawData,
w,
h,
8,
bytesPerRow,
CGImageGetColorSpace( refImage ),
kCGImageAlphaPremultipliedLast );
// Fill in rawData, which is the unsigned char pixel array
refImage = CGBitmapContextCreateImage (ctx);
UIImage* myUIImage2 = [UIImage imageWithCGImage:refImage];
CGContextRelease(ctx);
CGImageRelease(refImage);