Чому так відбувається
Причина такого дивного поведінки операційних систем і графічних пакетів криється в підході Apple до формування зображень. У компанії вирішили використовувати свою (а значить - нестандартну) реалізацію формату PNG, що включає додаткові дані перед заголовком файлу і стислі дані без традиційних заголовків і коректного закінчення.
Крім цього, червоний і синій канали у таких зображень стоять не на своєму місці - замість RGBA зберігається BGRA - і зараз я поясню чому. Пам'ятайте, один чеський сайт фотографував і порівнював під мікроскопом екрани iPhone і iPod touch, порівнюючи їх з Google Nexus One і IPS -дисплеєм в iPad / iMac? На тому малюнку дуже добре видно змінений візерунок пікселів - BGR (синій, зелений і червоний).
Більше технічної інформації можна почерпнути в цій статті. розміщеної в Wiki сайту ModMyi.
Але не все так погано - користувачі можуть переглядати або редагувати ці файли.
Рішення для Mac OS X
Воно полягає в консольної утиліти fixpng. Після розпакування архіву, потрібно запустити Термінал і виконати команду:
fixpng ісходний_файл.png результат.png
Мінус даного способу полягає в тому, то для кожного файлу доводиться запускати одну і ту ж команду. «Пакетно» обробляти файл можна за допомогою так званого «дроплета», що використовує цю ж утиліту. Взяти його можна на сайті ModMyi, крім цього, там детально описаний процес установки і використання дроплета.
Рішення для Windows
Для Windows я знайшов не менше елегантне рішення, яке полягає у використанні програми iPhoneFixPng - обгортки для роботи з Портировать версіями утиліт fixpng і flipchannels.
Досить помістити бажані зображення в папку png. натиснути кнопку «Convert», почекати закінчення процесу і забрати результат з папки fixed:
Любителі командного рядка можуть скористатися цими утилітами безпосередньо:
альтернативні інструменти
Ах так, мало не забув. В інтернеті є кілька корисних інструментів, які гріх не вказати в цій статті: