Преобразование файла AVI в анимированный GIF с прозрачным фоном
У меня есть несколько файлов AVI, которые я хочу преобразовать в анимированные GIF-файлы с прозрачным фоном для размещения в форме.net Windows. Я могу конвертировать из AVI в анимированные GIF-изображения, но по какой-то причине фон анимированного GIF является розовым, а не прозрачным. Есть ли какой-нибудь простой способ избавиться от розовых цветов из получившегося анимированного GIF-файла? Я пробовал ffmpeg, но он также давал розовый цвет. Я попытался ffmpeg -i FINDFILE.avi FINDFILE.gif. Это произвело анимированный GIF, но цвет фона - розовый. Спасибо, что прочитали это.
1 ответ
Попробуйте отредактировать палитру с помощью IrfanView или любой сложной программы для редактирования изображений. Где-то должен быть флажок для "прозрачного фона".
Если вы не можете найти какой-либо инструмент, который работает, вам, возможно, придется копать глубже и редактировать двоичный файл. http://www.u229.no/stuff/gifformat/ объясняет формат данных: Интересная часть - это Расширения управления графикой, которые содержат индекс прозрачного цвета и флаг прозрачного цвета в упакованном поле.
Осторожно: каждый кадр может иметь свой собственный GCE. Но каждый блок начинается с подписи из трех байтов \x21\xf9\x04
поэтому их легко отследить.
Следующий байт после подписи является упакованным полем; бит 0 - флаг прозрачного цвета. Так что ищите \x00\x21\xf9\x04
, если значение следующего байта является четным: добавьте единицу (установите бит 0 в этом байте).
Сохраните файл, и фон должен быть прозрачным на всех кадрах.
Или... только что нашел... взгляните на эту тему: Как сделать прозрачный фон для анимации GIF?