iOS color a transparente en UIImage

Cómo puedo limpiar la parte magenta de un UIImage y hacerla transparente?

He revisado numerosas respuestas y enlaces en SO y nada funciona (por ejemplo, ¿Cómo hacer que un color sea transparente en un UIImage? respuesta 1 elimina todo menos el rojo, la respuesta 2 aparentemente no funciona debido a ¿Por qué CGImageCreateWithMaskingColors () devuelve nil en este caso?).

Actualizar

Si uso CGImageCreateWithMaskingColors con el UIImage obtengo un valor nulo. Si elimino el canal alfa (represento la imagen como JPEG y lo leo de nuevo) CGImageCreateWithMaskingColors devuelve una imagen pintada con un fondo negro.

Update2, el código:

Returning 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];

Volver una imagen con fondo negro (lo cual es normal ya que no hay canal alfa):

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];

Actualización3:

o hice funcionar agregando el canal alfa después del proceso de enmascaramiento.

Respuestas a la pregunta(4)

Su respuesta a la pregunta