Básicamente estoy descargando imágenes de un servidor web y luego guardándolas en caché en el disco, pero antes de hacerlo quiero enmascararlas. estoy usando el código de enmascaramiento todo el mundo parece apuntar a la que se puede encontrar aquí: http://iosdevelopertips.com/cocoa/how-to-mask-an-image.htmlEscribiendo una imagen enmascarada en un disco como archivo PNG
¿Qué sucede, sin embargo, es que la imagen muestra bien, pero la versión que se escribe en el disco con
UIImage *img = [self maskImage:[UIImage imageWithData:data] withMask:self.imageMask];
[UIImagePNGRepresentation(img) writeToFile:cachePath atomically:NO];
tiene su canal alfa invertido en comparación con el que se muestra más adelante (utilizando la misma instancia de UIImage aquí).
¿Alguna idea? Necesito enmascarar la versión almacenada en caché, de lo contrario, mostrar las imágenes en una vista de tabla es terriblemente lento si tengo que enmascararlas todo el tiempo.
Edit: Así que sí, UIImagePNGRepresentation (img) parece invertir el canal alfa, no tiene nada que ver con el código que escribe en el disco, lo cual es bastante obvio, pero lo comprobé de todos modos.
¿Obtiene el mismo resultado si usa UIImageJPEGRepresentation? No sugiero que cambies a JPEG. Me pregunto si tiene el mismo efecto. –
Lo intentaré, aunque JPEG derrota el propósito de tener una máscara alfa. –
Por extraño que parezca, el JPEG se ve bien, la máscara se ha aplicado correctamente. –