Открываю файл PNG с палитрой 255 цветов, редактирую, экспортирую. Открываю экспортированный файл — цветов всего 254, а цвет, который был номер 0 (белый), в палитре отсутствует.
Насколько я могу судить, чисто белый цвет на рисунке отсутствует и удаляется за ненадобностью. Но картинки используются в игре с захардкоженными палитрами. Поэтому номера цветов имеют значение.
Как отключить эту фичу?
P.S. Гимп версий 2.9.4 и 2.9.6. Дженту.
P.P.S. Отправил баг: https://bugzilla.gnome.org/show_bug.cgi?id=791531
На самом деле, проблема оказалась ещё сложнее. 0-й цвет был прозрачным чёрным (кто знаком с PNG8, поймёт), он пропадал при импорте, все цвета сдвигались на 1. При экспорте новый 0-й цвет заменялся обратно на прозрачный чёрный, остальные цвета обратно не сдвигались. Просмотреть палитру смог только в IrfanView 2005 года.
Грязное решение, которое работает:
Сохранить палитру 255 цветов из повреждённого файла в GPL (текстовый файл).Гадские авторы Гимпа убрали из меню явный экспорт в *.gpl. Все палитры автосохраняются в ~/.gimp-2.8/palettes/ и можно их копировать оттуда. Автосохранение происходит при выходе или при нажатии «Save» в редакторе палитры.- Руками добавить в начало белый цвет. Возможно, сойдёт любой, возможно, необходим цвет, отсутствующий в палитре.
- В Гимпе преобразовать изображение с палитрой 255 цветов в 4-байтное RGB , затем преобразовать в индексированное 256 цветов с
- исправленной палитрой.
- Экспортировать. Результат приемлемый.
- Повторять пункт 3 при каждом открытии PNG с этой палитрой.
UPD: По пунктам 1-2: можно обойтись средствами Гимпа, без экспорта. Нужно в редакторе палитры добавить в конец 256-й цвет, затем в списке палитр сделать «Offset Palette».