Ho un'immagine PNG con un formato pixel di contesto grafico bitmap non supportato. Ogni volta che tento di ridimensionare l'immagine, CGBitmapContextCreate()
soffoca sul formato non supportatoiPhone: modifica di CGImageAlphaInfo di CGImage
ricevo il seguente errore (errore formattato per una facile lettura):
CGBitmapContextCreate: unsupported parameter combination:
8 integer bits/component;
32 bits/pixel;
3-component colorspace;
kCGImageAlphaLast;
1344 bytes/row.
Il list of supported pixel formats sicuramente non supporta questa combinazione. Sembra che sia necessario ridisegnare l'immagine e spostare le informazioni del canale alfa su kCGImageAlphaPremultipliedFirst or kCGImageAlphaPremultipliedLast.
Non ho idea di come procedere.
Non c'è niente di insolito nel file PNG e non è danneggiato. Funziona perfettamente in tutti gli altri contesti. Ho riscontrato questo errore solo per caso, ma ovviamente i miei utenti potrebbero avere file formattati in modo simile, quindi dovrò controllare le immagini importate dalla mia app e correggere questo problema.
Sembra buono, ci proverò. Sono disgustoso di fare troppe elaborazioni perché temo di distruggere inavvertitamente la fedeltà. – TechZen
Alla fine sono riuscito a testarlo e funziona perfettamente senza perdite di fedeltà visibili. – TechZen
Sto riscontrando un problema con il codice sopra quando l'imageOrientation di UIImage è tutto tranne OrientationUp - questo fa ruotare l'immagine. I limiti dell'immagine rimangono gli stessi, ma i pixel all'interno dell'immagine vengono ruotati e allungati per adattarsi ai limiti originali. Questo è simile a quanto descritto in: http://stackoverflow.com/questions/5973105/image-clicked-from-iphone-in-portrait-mode-gets-rotated-by-90-degree ma in questo caso è il normalizzare la funzione che sembra causare il problema. Qualcun altro lo vede? Qualche correzione per questo? – kurtzmarc