Создание прозрачных фонов анимированных GIF-файлов

13

Я создавал анимированные GIF-файлы с использованием GIMP из нескольких кадров в формате PNG, которые я создал с помощью Jmol, и теперь я хотел бы знать, как сделать фон получающихся GIF-файлов прозрачным. Любое программное обеспечение или веб-сайты, которые вы предлагаете, должны быть доступны бесплатно, пожалуйста.

BH2017
источник
Вы сделали некоторые усилия? Смотрите здесь и там .
Паоло Гибеллини
Я делал это раньше, но это не подходит, если посмотреть, как этот GIF анимирован, а не статичен, так как эти методы полезны только для статических изображений. Чтобы сделать то, что вы предлагаете, показав мне эти два вопроса, я должен сделать каждый из файлов PNG, которые я конвертирую в GIF, прозрачным по отдельности и посмотреть, как я использую 60 кадров на GIF, что займет какое-то время, особенно учитывая, как По моему опыту, каждое изображение занимает не менее 5 минут, поскольку цветовая альфа не идеальна и требует некоторой возни для работы.
BH2017
1
Я не знаю Jmol, но здесь есть тема, связанная с альфа-фоном (см. Также здесь ). Вы экспортировали как PNGT кадры?
Паоло Гибеллини
GIMP уже может создавать GIF-файлы с прозрачностью.
Билли Керр

Ответы:

16

Вы можете сделать это с помощью GIFsicle , используя следующие параметры:

gifsicle -U --disposal=previous --transparent="#ffffff" -O2 anim.gif > anim_trans.gif

где anim.gifи anim_trans.gif- исходные и конечные имена файлов, а #ffffffтакже шестнадцатеричный код цвета, который вы хотите сделать прозрачным (здесь чисто белый).

(Здесь важными параметрами являются -U/ --unoptimizeи --disposal=previous, которые вместе преобразуют анимацию в «режим флипбука», где каждый кадр полностью стирается перед рисованием следующего. Это позволяет добавить дополнительную прозрачность к кадрам, не позволяя более ранним кадрам показываться через прозрачные части. Этот -O2параметр не является строго обязательным, но он может уменьшить размер файла получаемой анимации путем оптимизации кадров, чтобы избежать ненужного повторного рисования статических частей анимации.)

Для демонстрации приведем анимацию фермента человеческой глиоксазы I (GLO1) из Wikimedia Commons (слева) и ту же анимацию с прозрачностью, добавленной с помощью метода, показанного выше (справа):

Оригинальная анимация с белым фоном Модифицированная анимация с прозрачным фоном
Оригинальная анимация пользователя Wikimedia Commons WillowW , используемая по лицензии CC-By 3.0 .

Стоит отметить одну деталь: если команда GIFsicle, кажется, не имеет никакого эффекта, вы должны проверить, что цвет фона действительно правильный. Например, для анимации, показанной выше, фактический цвет фона оказался #fdfffc(то есть очень слегка желто-зеленовато-белым), а не #ffffff(чисто белым). Вы не можете увидеть разницу на глаз (или, по крайней мере, я не могу сделать это на этом экране), но этого достаточно, чтобы GIFsicle рассматривал два цвета по-разному.

Также обратите внимание, что файлы GIF поддерживают только 1-битную прозрачность, что означает, что края прозрачных областей не будут сглаживаться. Это нормально, если фон, на котором вы отображаете анимацию, не слишком далеко от исходного цвета фона, но если это так, вы можете обнаружить, что по краям анимации появятся какие-то уродливые цвета . К сожалению, с этим ничего не поделаешь, кроме выбора более подходящего фона или повторного рендеринга анимации.

Илмари Каронен
источник
У вас есть Windows 7-дружественное программное обеспечение, альтернативное gifsicle, которое я мог бы использовать вместо этого? Я попытался установить двоичные файлы Win32 и 64 (я использую 64-битную Windows 7, по ссылке на официальном сайте gifsicle), и ни одна из них не сработала. Это просто выдало командную строку, на секунду, а затем эта подсказка закрылась. С тех пор я открыл командную строку (как я понимаю, gifsicle - это редактор на основе командной строки) и скопировал ваши команды (с реальными именами файлов, ofc), и он выдал пустой файл с предупреждением о том, что gifsicle не был распознан в моей системе.
BH2017 12.12.14
Хм ... вы пробовали использовать командную строку и указывать полный путь к gifsicle.exe? Или cdв папку, в которую вы установили gifsicle, и запустите команду оттуда? Или добавить эту папку в вашу%PATH% ?
Ильмари Каронен
cdЧто касается каталога, то выполнение этой команды работало без сбоев, поэтому я приму ваш ответ.
BH2017 12.12.14
1

Попробуйте http://www.gifmagic.com

Это очень просто.

Выберите: 1) изменить

2) прозрачность

3) добавить и

4) выберите область, которую вы хотите применить.

Dchris
источник
1

Как и GIFsicle и GIFmagic, EzGIF - это онлайн-набор инструментов GIF, который (помимо прочего) позволяет вам сделать это:

  1. Выберите «Эффекты»
  2. загрузить GIF
  3. затем используйте «Заменить цвет прозрачностью»
  4. и применить

(Вы также можете оптимизировать результат, если хотите)

danicotra
источник
0

Если у вас есть imagemagick, вы можете запустить команду convert input.gif -transparent white output.gifв терминале.

user1964638
источник
Можете ли вы объяснить, что делает эта команда? Мы ищем более длинные ответы с объяснением, а не с одной строкой. Кроме того, похоже, что он преобразует белый цвет в прозрачный, поэтому он также выделит все белое на изображении?
Лучано
0

Вы можете сделать это прямо из фотошопа.

Используйте параметр «Сохранить в Интернете» и сохраните его в формате GIF с прозрачностью. Найдите цвет, который вы хотите сделать прозрачным, из таблицы цветов. Нажмите на нее, а затем нажмите на кнопку, которую я обвел красным.

Прозрачность таблицы цветов

Это сделает любой выбранный вами цвет прозрачным. Сохранить.

фанфара
источник