GIF89a поддерживает прозрачность, назначая индекс в качестве прозрачной плитки. Он поддерживает только полную прозрачность, то есть переменную прозрачность (как в случае PNG) не поддерживает.
Я попытался прочитать Псевдо RFC для формата GIF89a, который содержит только два упоминания о прозрачности во всем документе. А именно:-
и описание двух вышеприведенных не самое интуитивно понятное.
На странице гифка в Википедии указано, что прозрачная плитка с индексом = 16 (в палитре 256) всегда назначается прозрачной плиткой/индексом. Но затем он указывает «Единственными цветовыми индексами, появляющимися в данных изображения, являются десятичные числа 40 и 255, которые Глобальная таблица цветов сопоставляет с черным и белым соответственно.», что заставило меня поверить, что я, вероятно, неправильно истолковываю информацию, доступную на странице (поскольку я ранее видел значения пикселей индекс < 40 в изображениях).
Вопрос:-
.gif (89a)? Это
постоянный индекс в палитре всегда имеет значение прозрачности?P.S.:- Буду признателен, если кто-нибудь добавит, как включается прозрачность? Использует ли он альфа-плитку (например, в RGBA или LA) или удаляет цвет из этого пикселя, чтобы сделать его прозрачным?


How is transparency incorporated in .gif (89a) images? Is a constant index in the palette always given a value of transparent?
Нет.
Флаг прозрачности TF просто указывает, имеет ли индекс прозрачности TI какое-либо значение для кадра.
Если TF == true, то определенный индекс цвета в текущей (глобальной или локальной) палитре считается прозрачным при объединении текущего кадра с остальной частью изображения. Этот индекс хранится в TI.
If yes, then does the palette stays the same when an image has no transparent regions, and does that mean we only get to use 255 unique index (as 1 index is always given to transparent tile)?
Когда изображение не имеет прозрачных областей, значения TF == false и TI обычно являются мусором, поэтому они не интерпретируются загрузчиками GIF.
As a self-proclaimed GIF expert I tried to document the inner workings of GIF as tersely as I could in the docs and the source code of this tiny loader.
[УПД:]
So, does that mean transparency is only included if the .gif file has frames. Meaning it is not a single image, but a sequence of images?
Нет. Даже однокадровый GIF может содержать заголовок Graphics Control, так что нет.
Does GIF have a fixed palette of 256 colors, meaning the palette could not store more/less then that color range. I am asking this as you mentioned, that in a B/W image, only two color exists black and white, then what happens to the rest of the palette index? or like how does GIF format manages lower color spaces?
GIF поддерживает палитры любого размера, который является степенью 2 и находится в диапазоне от 2 до 256, что дает: 2, 4, 8, 16, 32, 64, 128 или 256.
Размер палитры контролируется биты от 0 до 2 поля флагов в глобальном заголовке GIF.
Во-вторых, не могли бы вы уточнить эту строку вопроса: - "Единственными цветовыми индексами, появляющимися в данных изображения, являются десятичные числа 40 и 255, которые Глобальная таблица цветов сопоставляет с черным и белым соответственно."
@VasuDeo.S Не могли бы вы прислать мне этот GIF, чтобы я мог его проанализировать? Я обновлю свой ответ, когда это будет сделано.
на самом деле у меня нет гифки. Я задаю этот вопрос с концептуальной точки зрения, просто для знания. Я хочу улучшить свое понимание форматов изображений, таких как .png, .gif, .jpg и т. д.
@VasuDeo.S А, понятно. GIF, о котором рассказывает Википедия, был сгенерирован какой-то ранней сборкой MS Paint, которая всегда выделяет палитру из 256 цветов, несмотря ни на что, что, безусловно, является пустой тратой места, учитывая, что целевой GIF имеет только 2 цвета.
Спасибо(+1) Это породило новые сомнения. Имеет ли GIF фиксированную палитру из 256 цветов, что означает, что палитра не может хранить больше/меньше этого цветового диапазона. Я спрашиваю об этом, как вы упомянули, что в черно-белом изображении существует только два цвета: черный и белый, тогда что происходит с остальной частью индекса палитры? или как формат GIF управляет нижними цветовыми пространствами?
Давайте продолжить обсуждение в чате.
Значит ли это, что прозрачность включается только в том случае, если в файле .gif есть рамки. То есть это не одно изображение, а последовательность изображений?