0

CGBitmapContextCreate に問題があり、以下を取得しています。

エラー: サポートされていないピクセルの説明 - 1 コンポーネント、8 ビット/コンポーネント、8 ビット/ピクセル

このコードで:

float *bitmap = (float*)malloc(sizeof(float) * width * height);

// fill with floats

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceGray();
size_t bitsPerComponent = 8;
size_t bytesPerRow = sizeof(float)*width;
CGContextRef context = CGBitmapContextCreate(bitmap, width, height, bitsPerComponent, bytesPerRow, colorspace
                                             , kCGImageAlphaNone| kCGBitmapFloatComponents | kCGBitmapByteOrder32Little);

によると: http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_context/dq_context.html

ピクセルあたり 8 ビット、コンポーネントあたり 8 ビットです。なぜエラーが発生するのかわかりません。ここでこれを正しく行うことについての他のいくつかの投稿を見てきましたが、ほとんどの場合、新しい画像を作成するのではなく、画像の編集を扱っているため、元の画像から設定の一部を取得できます。

4

1 に答える 1

0

float コンポーネントを使用している場合は、コンポーネントあたりのビット数が float のビット数であると言う必要があります。

size_t bitsPerComponent = 8 * sizeof (float);

つまり、float は 32 ビットであるため、1 ピクセルあたり 8 ビット != 1 ピクセルあたり 1 float です。

于 2012-09-20T12:06:15.547 に答える