2

白い背景の中に何かが入っている画像があります。その画像をアルファチャネルを許可する形式で保存するか、白いピクセルが透明になるようにアルファマスクを使用して保存したいと思います。そこに光はありますか?

4

1 に答える 1

5

これが非常に簡単なライブラリは知りません。ただし、ここの GLImageProcessing の例には、関連するサンプル コードが多数あります。(以下は実行していません)

UIImage *some_image = [UIImage imageNamed:@"somethin'.tiff"];
CGImageRef cg_image = some_image.CGImage;
CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider(cg_image));
size_t bpp = CGImageGetBitsPerPixel(CGImage);

uint32_t *stuff = (uint32_t *)CFDataGetBytePtr(data);
int w = CGImageGetWidth(CGImage);
int h = CGImageGetHeight(CGImage);
int N = w * h;
for (int i = 0; i < N; i++ ) {
    // do your stuff, test for white, set the alpha mask
    stuff[i] = stuff[i] & ((uint32_t)0xFFFFFFFF | alpha_mask);
}

代わりにこの関数を使用できます

UIKIT_EXTERN NSData *UIImagePNGRepresentation(UIImage *image);                               

そしてデータをディスクに書き込みます。これが役立つことを願っています。解決策が見つかったら投稿してください...

于 2010-01-04T18:29:56.010 に答える