Сохранение цветов на изображении при установке полной прозрачности

Я хотел бы создать изображение с карты, где каждая страна окрашена в свой цвет, где границы окрашены в черный цвет, и в котором каждый цвет, кроме черного, полностью прозрачен, не теряя при этом информацию RGB.

Моими инструментами являются Gimp или что-то еще, что можно установить в Linux, и мелкомасштабное программирование (если мне нужно полностью понять формат png, у меня ничего не получится).

Мое текущее изображение идеально, за исключением информации о прозрачности. Мои текущие эксперименты с GIMP всегда приводили к потере информации RGB при экспорте изображения в png или gif.

Любые указатели? Большое спасибо.

Если альфа равна 0, информация RGB в форматах png или gif отсутствует. То, что вы просите, невозможно.
Я бы не осмелился спорить с кем-либо по таким вопросам, так как мои знания практически равны нулю; тем не менее, я хотел бы спросить вас, уверены ли вы в этом на разумных основаниях или уверены без сомнения, чтобы я не тратил больше времени на эти размышления. Спасибо и с наилучшими пожеланиями в любом случае.
Можно ли установить прозрачность 99,9% и сохранить информацию RGB?
Чтобы лучше понять ваши потребности: Как бы вы использовали такое изображение? Например, в программе, которую вы пишете, или на веб-странице?
на веб-странице/программе javascript. Я решил сохранить копию данных изображения в памяти и вывести другую прозрачную копию на холст html 5, который я использую. Затем я проверяю копию памяти, так как любая попытка установить высокую прозрачность на холсте, а затем проверка цвета пикселей на холсте также приводит к сбоям. Было бы проще, если бы вся эта работа была сделана в образе для начала, но я могу жить с 10 строками кода, если нет.
Я уверен, что альфа на 100% = нет данных RGB в форматах PNG и GIF. Включение данных RGB, которые никогда не видны на изображении, приведет к излишнему увеличению размера файла. Поэтому форматы выбрасывают бесполезные данные. Но да, Alpha при 99,9% сохранит данные RGB даже при непрозрачности 0,1%.
В GIMP есть опция для этого в диалоговом окне экспорта PNG, и я сам закодировал эту функцию в свое время. Таким образом, даже если в спецификациях указано, что цвета там быть не должно, это относится к сохраненным файлам GIMP с параметром «Сохранить значения цвета из прозрачных пикселей», установленным при экспорте PNG. Для файлов gif прозрачность задается определенным (и только ) цветовой индекс, поэтому информация о цвете действительно теряется.
@Scott Для GIF и PNG с поддонами это правильно, поскольку одна запись палитры считается «прозрачным цветом», однако для 32-битных изображений PNG каждый пиксель хранится как 4 байта для R, G, B, A - даже если A 0 могут быть заданы значения для R, G, B, иначе данные не будут выровнены, и их будет значительно труднее читать. Большинство программ установит для этих байтов все 0, чтобы увеличить степень сжатия, но это не обязательно для допустимого изображения PNG.

Ответы (1)

В диалоговом окне «Экспорт GIMP» для файлов PNG есть флажок «Сохранить значения цвета из прозрачных пикселей». Я не проверял это, но это должно делать то, что вы хотите.

Похоже, что для GIF нет эквивалентного варианта.

Подробнее о параметрах формата файла экспорта: http://docs.gimp.org/en/gimp-images-out.html#gimp-using-fileformats-export-dialog

Да, это должно сработать, независимо от комментариев @Scott.