Цвет iOS сделать прозрачным в UIImage

Как я могу очистить пурпурную часть 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:

Я получил его, добавив альфа-канал после процесса маскирования.

9
задан Community 23 May 2017 в 12:32
поделиться