【问题标题】:How to convert images in order如何按顺序转换图像
【发布时间】:2014-10-24 15:33:55
【问题描述】:

我有一个脚本,我想将图像转换为动画 gif。唉,它们的顺序不对!上升为 10,11,12...19,1,20,21... 我真正需要它的地方是 1,2,3,4....

#!/bin/bash
for i in `seq 0 22`
do
 convert -size 99x99 xc:red -font Palatino-Bold -pointsize 66 \
         -fill black -draw "text 20,55 '$i'" $i.png  
done
convert -delay 50 -loop  *.png output.gif

我应该怎么做才能以正确的顺序制作 gif 动画?

【问题讨论】:

    标签: bash imagemagick imagemagick-convert


    【解决方案1】:

    首先正确命名它们。

    "$(printf "%02d" "$i").png"
    

    【讨论】:

    • 这很好用,前提是 png 的数量是 99 或更少。部分问题是我不知道用户可以选择制作的帧数。如果有 100+ 个 png,那么这个方法也会搞砸。
    • 因此,将空格数设置为尽可能大,例如%08d.
    【解决方案2】:

    另一种解决方案:

    在将文件传递给转换之前对文件进行数字排序。

    convert -delay 50 -loop  $(ls *.png | sort -n) output.gif
    

    【讨论】:

    • 当我运行这一行时,imagemagick 会抛出某种错误:"IHDRc��N��PLTE��s��8����`@error/convert.c/ConvertImageCommand /1901 年。”
    猜你喜欢
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多