Как я могу очистить пурпурную часть UIImage и сделать его прозрачным?
] Я просмотрел множество ответов и ссылок на SO, и ничего не работает (например, Как сделать один цвет прозрачным на UIImage? ответ 1 удаляет все, кроме красного, ответ 2, по-видимому, не работает из-за Почему CGImageCreateWithMaskingColors () в этом случае возвращает nil? ).
Обновление:
Если я использую CGImageCreateWithMaskingColors с UIImage, я получаю нулевое значение.Если я удалю альфа-канал (я представляю изображение как JPEG и читаю его), CGImageCreateWithMaskingColors возвращает изображение с черным фоном.
Update2, код:
Возвращение nil:
const float colorMasking[6] = {222, 255, 222, 255, 222, 255};
CGImageRef imageRef = CGImageCreateWithMaskingColors(anchorWithMask.CGImage, colorMasking);
NSLog(@"image ref %@", imageRef);
// this is going to return a nil imgref.
UIImage *image = [UIImage imageWithCGImage:imageRef];
Возврат изображения с черным фоном (что нормально, поскольку нет альфа-канала):
UIImage *inputImage = [UIImage imageWithData:UIImageJPEGRepresentation(anchorWithMask, 1.0)];
const float colorMasking[6] = {222, 255, 222, 255, 222, 255};
CGImageRef imageRef = CGImageCreateWithMaskingColors(inputImage.CGImage, colorMasking);
NSLog(@"image ref %@", imageRef);
// imgref is NOT nil.
UIImage *image = [UIImage imageWithCGImage:imageRef];
Update3:
Я получил его, добавив альфа-канал после процесса маскирования.