わかりましたので、UIImage を rawBits バッファに取得し (元の質問のリンクを参照)、バッファ内のデータを好みに合わせて調整しました (つまり、テストとして、すべての赤コンポーネント (4 番目のバイトごと) を 0 に設定します)。 )、そして、いじられたデータを表す新しい UIImage を取得する必要があります。
Erica Sudan の iPhone Cookbookの第 7 章 (画像)、例 12 (ビットマップ) で答えを見つけました。関連する呼び出しは CGBitmapContextCreate() で、関連するコードは次のとおりです。
+ (UIImage *) imageWithBits: (unsigned char *) bits withSize: (CGSize)
size
{
// Create a color space
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
if (colorSpace == NULL)
{
fprintf(stderr, "Error allocating color space\n");
free(bits);
return nil;
}
CGContextRef context = CGBitmapContextCreate (bits, size.width,
size.height, 8, size.width * 4, colorSpace,
kCGImageAlphaPremultipliedFirst);
if (context == NULL)
{
fprintf (stderr, "Error: Context not created!");
free (bits);
CGColorSpaceRelease(colorSpace );
return nil;
}
CGColorSpaceRelease(colorSpace );
CGImageRef ref = CGBitmapContextCreateImage(context);
free(CGBitmapContextGetData(context));
CGContextRelease(context);
UIImage *img = [UIImage imageWithCGImage:ref];
CFRelease(ref);
return img;
}
将来のサイトスペランカーに役立つことを願っています!