Почему этот GIF не воспроизводится плавно?

Черт возьми, раз awkответа еще нет...

awk -v FS="" '
{
    for (i=1;i<=NF;i++) {
        if ($i==" " || $i=="/") {
            part=""
        } else if ($i==".") {
            printf "%s.", part
        } else {
            part=part FS $i
        }
    }
}
END { printf "\n" }'

Устанавливает разделитель полей на "", чтобы он мог циклически перебирать каждый символ. Ищет " " или "/" в текущем символе и сбрасывает переменную части держателя (), если находит. Если он находит "." распечатать держатель, в противном случае соединить текущий символ с держателем. Добавляет перевод строки, когда это делается.

Вывод на примере:

I.01.a.
II.03.d.
2
11.06.2020, 17:16
1 ответ

Имена файлов заканчиваются на 0 -0.png, 0 -1.png,..., 0 -9.png, 0 -10.png, 0 -11.png,...

Но с *алфавитным расширением порядок, в котором вы их используете, оказывается следующим: 0 -0.png, 0 -1.png, 0 -10.png, 0 -11.png,..., 0 -19.png, 0 -2.png, 0 -21.png,...

Таким образом, вы обрабатываете кадры не по порядку, что приводит к неустойчивой анимации.

Чтобы обойти эту проблему, вы можете использовать 0-?.png 0-??.pngвместо 0*.pngили написать как 0-{0..35}.png(, если всего 36 кадров, как в этом примере ).

Или в первой команде используйте "0%06d.png"в качестве имени выходного файла, чтобы числа имели ведущие нули, чтобы сделать алфавитный и числовой порядок идентичными.

Другими проблемами являются потеря скорости/задержек исходной анимации GIF (, в данном случае она кажется -delay 4), и полное отсутствие оптимизации GIF(-layers Optimize)для файлов меньшего размера.

ImageMagick дает мне с этими добавленными параметрами гладкий файл размером 1,9 МБ, хотя и с некоторыми графическими артефактами, у оптимизатора GIF IM, похоже, есть некоторые проблемы. Использование -layers OptimizePlusработает для меня, но приводит к несколько большему размеру файла. Вы можете попытать счастья с другим программным обеспечением, чтобы оптимизировать размер анимации GIF.

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

2
28.04.2021, 23:20

Теги

Похожие вопросы