Перейти к содержанию
    

Прозрачность в GIF картинке

Приветствую.  Появилась задача сделать показ GIF анимации.  Сделали файл, но с просмотром что-то не то. Если фон задан, то все показывает нормально, но что под фоном, соотв. не видно, если фон убирают - на компе все ок, у меня все смазывается в непойми что. Задача - как показывать  "прозрачную анимацию", пошел вспоминать данный ормат и уперся в стенку, а именно, в индексированной таблице цветов только 3 байта цвета, соотв, куда "сунуть" альфу? Или альфа по-любому там должна быть 0 (т.е. полностью прозрачна), если индекс "прозрачного" цвета указывает на данную позицию в таблице?  И вообще, че-то не понятно мне, как 24 бит цвет сделать прозрачным?  Может кто более осведомлен?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поскольку прозрачность монохромна, полутоновую можно сделать только рандомизацией. Есть APNG, но работать будет не везде, потому что он участник войны форматов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а со статическими GIF что получается у вас ?

вот к примеру создал две тестовых ссылка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 часов назад, Plain сказал:

Поскольку прозрачность монохромна, полутоновую можно сделать только рандомизацией. Есть APNG,

Не понял - прозрачность - это всего-лишь коэффициент от 0-полная до 255 - непрозрачно, причем тут монохром??

Мне другое интересно, например в одной картинке, как мне заявили - с прозрачностью, Transparent Index=255, по значениям палитры там 255,255,255. В другой картинке индекс 250 и значения 140,38,190  Как понять, какой коэффициент альфа канала для этих картинок? В том и другом случае флаг прозрачности установлен.

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, megajohn сказал:

вот к примеру создал две тестовых ссылка

Проверю... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 минут назад, mantech сказал:

Не понял - прозрачность - это всего-лишь коэффициент от 0-полная до 255 - непрозрачно, причем тут монохром?

Потому что Вы очевидно ещё на что-то надеетесь, но зря — нет там никакого альфа, точка либо на 100% прозрачна, либо на 100% нет. Поскольку прозрачность является последующим довеском к формату, можно объявить ею один раз любой из 256 указателей, но при этом то, что по нему было записано, станет игнорироваться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообщем отвечаю сам себе, неправильно обрабатывался флаг работы с картинкой

[04] — 
    (000) – зарезервировано. Рекомендуется заполнять нулями.
    (001) — метод обработки. Определяет, что делать после отображения. 
                0 – к картинке не будет применяться никакой обработки
                1 – картинка останется без изменений
                2 – картинка затрется фоном
                3 – восстановится изображение под картинкой
                4-7 – не определены
    (0) – флаг ввода пользователя. Если 1, то для продолжения обработки изображения требуется реакция пользователя.
    (0) – флаг цвета прозрачности. Указывает, будет ли какой-нибудь цвет использоваться как прозрачный.

 

Состояния 1 и 2 обрабатывались как 0 поэтому и происходила "мешанина", с прозрачностью все было норм...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если её значение совпадает со значением, указанным в соответствующем поле GCE.

 

Не понятно, в чём проблема. Для создания и воспроизведения GIF ничего изобретать не требуется, потому что давно существует куча программ, просто замените неисправную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, Plain сказал:

просто замените неисправную.

Это декодер в моем проекте, зачем чего-то менять, если надо пару строчек добавить было... Предпочитаю разобраться в своем, чем копипастить непонятно что и потом мучительно тестировать баги..

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, mantech said:

Это декодер в моем проекте

С нуля писали или что-то за основу брали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, Integro сказал:

С нуля писали или что-то за основу брали?

Наверно что-то брал, несколько кусочков, но половина точно самописная была... Проект давнишний, подзабылось уже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...