iPhoneのUIImageからピクセルデータを取得するのに、なぜ赤のデータは常に255なのですか?

cocoa-touch iphone objective-c uiimage
iPhoneのUIImageからピクセルデータを取得するのに、なぜ赤のデータは常に255なのですか?

https://stackoverflow.com/questions/144250/how-to-get-the-rgb-values-for-a-pixel-on-an-image-on-the-iphone [このトピック]、さまざまな運でこの方法を使用します:

-(RGBPixel*)bitmap{

    CGImageRef cgImage = [image CGImage];

    CGDataProviderRef provider = CGImageGetDataProvider(cgImage);

    bitmapData = CGDataProviderCopyData(provider);

   [self setPixelByteData: malloc( CFDataGetLength(bitmapData) )];

    CFDataGetBytes( bitmapData, CFRangeMake( 0, CFDataGetLength( bitmapData ) ), pixelByteData );

    pixelData   = (RGBPixel*) pixelByteData;

    colorLabel.text = [[NSString alloc]initWithFormat:@"Pixel data: red (%i), green (%i), blue (%i).", pixelData[100].red, pixelData[100].green, pixelData[100].blue] ;

    return pixelData;
}

私が望むように動作しない唯一のことは、赤のピクセルデータです。緑と青は期待どおりに動作しますが、常に255と表示されます。 何がおかしいのですか?

  2  0


ベストアンサー

@Nickが示唆したように、あなたはあなたが画像のフォーマットを知っていると確信していますか? bitsPerComponent、bitsPerPixel、bytesPerRow、ColorSpace? データは、int形式またはfloat形式にすることができます。 RGB、RGBA、またはARGBに配置できます。

生データから自分でイメージを作成しない限り、確信が持てない場合があります。 * CGImageGetBitmapInfo() CGImageGetAlphaInfo() CGImageGetColorSpace()*などの関数を使用して調べることができます。

2


タイトルとURLをコピーしました