Сохранение альфа-проблем с загруженными UIImages - как избежать отбрасывания альфа-значений при импорте? - PullRequest
1 голос
/ 07 мая 2010

Мое приложение позволяет пользователю сохранять / загружать изображения с альфа-значениями в камеру на устройстве. В приложении «Фотографии» я вижу, что эти изображения соответствуют альфа-части, так как альфа-области просто выглядят черными. Однако когда я загружаю эти изображения обратно в приложение с помощью сообщения valueForKey:UIImagePickerControllerOriginalImage в словарь info из (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info, значения альфа-канала становятся белыми, что делает эти разделы непрозрачными. Есть ли способ сохранить эти альфа-значения?

Ответы [ 2 ]

1 голос
/ 20 мая 2010

Обнаружил это! Вот моя функция для этого. Ваш пробег может варьироваться!:

- (UIImage*)processImage:(UIImage*)image
{
    CGImageRef reference = image.CGImage;
    float colors[6] = {0xEE, 0xFF, 0xEE, 0xFF, 0xEE, 0xFF};
    CGImageRef newimage = CGImageCreateWithMaskingColors(reference, colors);
    UIImage *result = [[UIImage alloc] initWithCGImage:newimage];
    CGImageRelease(newimage);
    return result;
}
0 голосов
/ 31 мая 2012

вы должны использовать ALAssetsLibrary для доступа к исходному изображению, как описано здесь: http://www.proace.com/2011/05/27/loading-png-images-using-uiimagepickercontroller-causes-them-to-lose-transparency-and-what-to-do-about-it/

...