1

xcode でのデバッグ中に見られるように、次の値を持つunsigned char* データがあります。

\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 コードのデータ配列です。

シンボル データは、width*width uchars を含む配列として表されます。各 uchar はモジュール (ドット) を表します。uchar の下位ビットが 1 の場合、対応するモジュールは黒です。

上記の場合、幅は177です。

CGBitmapContextCreate でさまざまな組み合わせを試しましたが、常に NULL になるようです。

お知らせ下さい。

あなたの助けは大歓迎です。

4

1 に答える 1

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);
于 2011-10-02T18:18:45.997 に答える