Ich habe ein PNG-Bild, das ein nicht unterstütztes Bitmap-Grafikkontextpixelformat hat. Jedes Mal, wenn ich versuche, die Größe des Bildes, Drosseln CGBitmapContextCreate()
auf dem nicht unterstützten FormatiPhone: Ändern von CGImageAlphaInfo von CGImage
ich die folgende Fehlermeldung (Fehler für eine einfache Lesung Formatiert):
CGBitmapContextCreate: unsupported parameter combination:
8 integer bits/component;
32 bits/pixel;
3-component colorspace;
kCGImageAlphaLast;
1344 bytes/row.
Die list of supported pixel formats definitiv nicht diese Kombination nicht unterstützt. Es scheint, dass ich das Bild neu zeichnen muss und die Alphakanalinformation zu kCGImageAlphaPremultipliedFirst or kCGImageAlphaPremultipliedLast verschieben muss.
Ich habe keine Ahnung, wie man das macht.
Es gibt nichts Ungewöhnliches an der PNG-Datei und es ist nicht beschädigt. Es funktioniert in jedem anderen Kontext gut. Ich bin zufällig auf diesen Fehler gestoßen, aber offensichtlich haben meine Benutzer ähnlich formatierte Dateien, daher muss ich die importierten Bilder meiner App überprüfen und das Problem beheben.
Sieht gut aus, ich werde es versuchen. Ich verabscheue zu viel Verarbeitung, weil ich befürchte, dass ich die Treue versehentlich zerstören werde. – TechZen
Ich kam schließlich dazu, dies zu testen und es funktioniert gut ohne erkennbaren Verlust der Wiedergabetreue. – TechZen
Ich habe ein Problem mit dem obigen Code, wenn die imageOrientation des UIImage alles außer OrientationUp ist - das bewirkt, dass das Bild gedreht wird. Die Grenzen des Bildes bleiben gleich, aber die Pixel im Bild werden gedreht und gestreckt, um den ursprünglichen Grenzen zu entsprechen. Dies ist ähnlich wie beschrieben in: http://stackoverflow.com/questions/5973105/image-clicked-from-iphone-in-portrait-mode-gets-rotated-by-90-degree, aber in diesem Fall ist es die Normalisieren Sie die Funktion, die das Problem verursacht. Sieht das jemand anderes? Irgendeine Reparatur dafür? – kurtzmarc