Mam obraz w formacie PNG, który ma nieobsługiwany format pikseli grafiki bitmapowej. Ilekroć próbuję zmienić rozmiar obrazu, CGBitmapContextCreate()
dławiki na nieobsługiwanym formacieiPhone: Zmienianie CGImageAlphaInfo obrazu CGImage
otrzymuję następujący błąd (błąd sformatowane dla łatwego czytania):
CGBitmapContextCreate: unsupported parameter combination:
8 integer bits/component;
32 bits/pixel;
3-component colorspace;
kCGImageAlphaLast;
1344 bytes/row.
list of supported pixel formats zdecydowanie nie obsługuje tej kombinacji. Wygląda na to, że muszę przerysować obraz i przenieść informacje o kanale alfa do kCGImageAlphaPremultipliedFirst or kCGImageAlphaPremultipliedLast.
Nie mam pojęcia, jak to zrobić.
Nie ma nic niezwykłego w pliku PNG i nie jest on uszkodzony. Działa dobrze w każdym innym kontekście. Napotkałem ten błąd przypadkowo, ale oczywiście moi użytkownicy mogą mieć podobnie sformatowane pliki, więc będę musiał sprawdzić importowane obrazy mojej aplikacji i poprawić ten problem.
Wygląda dobrze, spróbuję. Nie cierpię robić zbyt wiele, ponieważ obawiam się, że nieumyślnie zniszczę wierność. – TechZen
W końcu udało mi się to przetestować i działa dobrze bez widocznej utraty wierności. – TechZen
Mam problem z powyższym kodem, gdy imageOrientation z UIImage jest inaczej niż OrientationUp - powoduje to obracanie obrazu. Granice obrazu pozostają takie same, ale piksele wewnątrz obrazu są obracane i rozciągane w celu dopasowania do oryginalnych granic. Jest to podobne do tego, co opisano w: http://stackoverflow.com/questions/5973105/image-clicked-from-iphone-in-portrait-mode-gets-rotated-by-90-degree, ale w tym przypadku jest to znormalizuj funkcję, która wydaje się być przyczyną problemu. Ktoś jeszcze to widzi? Jakieś poprawki do tego? – kurtzmarc