Как сохранить изображение в формате Tiff или PNG с альфа-каналом или альфа-маской в ​​iPhone SDK? - PullRequest
2 голосов
/ 04 января 2010

У меня есть изображение с чем-то внутри в белом фоне. Я хочу сохранить это изображение в формате, который позволяет альфа-канал или использовать альфа-маску таким образом, чтобы белые пиксели стали прозрачными. Есть какой-нибудь свет?

1 Ответ

5 голосов
/ 04 января 2010

Я не знаю ни одной библиотеки, где это очень просто. Но в примере 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);                               

и запишите данные на диск. Надеюсь, это поможет. Опубликуйте решение, если найдете его ...

...