Fondamentalmente sto scaricando le immagini da un server web e quindi li memorizzo sul disco, ma prima di farlo desidero mascherarle. Sto utilizzando il codice di mascheramento tutti sembrano puntare a che si può trovare qui: http://iosdevelopertips.com/cocoa/how-to-mask-an-image.htmlScrittura di un'immagine mascherata su disco come file PNG
Cosa succede, però, è che l'immagine viene visualizzata bene, ma la versione che viene scritto sul disco con
UIImage *img = [self maskImage:[UIImage imageWithData:data] withMask:self.imageMask];
[UIImagePNGRepresentation(img) writeToFile:cachePath atomically:NO];
ha il canale alfa invertito se confrontato con quello visualizzato in seguito (utilizzando la stessa istanza UIImage qui).
Qualche idea? Ho bisogno che la versione della cache sia mascherata, altrimenti la visualizzazione delle immagini in una vista tabella è terribilmente lenta se devo mascherarle ogni volta.
Edit: Quindi sì, UIImagePNGRepresentation (img) sembra invertire il canale alfa, non ha nulla a che fare con il codice che scrive sul disco, che è piuttosto ovvio ma ho controllato comunque.
Si ottiene lo stesso risultato se si utilizza UIImageJPEGRepresentation? Non sto suggerendo di passare a JPEG. Mi chiedo solo se ha lo stesso effetto. –
Proverò, anche se JPEG non ha lo scopo di avere una maschera alfa. –
Stranamente il JPEG sembra a posto, la maschera è stata applicata correttamente. –