【问题标题】:Huge whitespace appearing when converting .png to .gif with bash convert使用 bash convert 将 .png 转换为 .gif 时出现巨大的空白
【发布时间】:2018-03-14 01:32:54
【问题描述】:

我有一个名为“plots_for_gifs”的目录,其中包含 105 个文件,除了以 ...000.png、...001.png ... 等结尾之外,它们的名称相同,直到 ...104 .png。我正在尝试使用以下方法将它们转换为 .gif:

convert -density 150 -trim -delay 35 -loop 0 ./plots_for_gifs/*.png ./river_diff.gif

图像文件为 491x411 像素,但生成的 gif 为 7017x4958 像素!即使我包含“-trim”,即使我添加“-size 491x411”也会发生同样的情况......有什么想法吗?

我在 Ubuntu 16.04.3 的 bash shell 中运行它。

【问题讨论】:

    标签: bash png gif imagemagick-convert image-conversion


    【解决方案1】:

    嗯……有几件事。

    对于PNG 文件,您根本不需要-density,因为它只设置光栅化矢量文件(如SVG)时使用的密度。所以,你可以省略它。

    如您所说,如果您的图片尺寸已经正确,则不需要-trim。所以,你也可以省略它。

    你不需要在文件名前加上./,因为这只是表示“当前目录”,无论如何都是默认的,所以你可以省略它。

    现在到实际问题。我猜你的 PNG 文件是从一些较大的图像中裁剪出来的,并且 “记住” 它们以前的画布大小。让他们忘记的最好方法是在加载后使用+repage

    所以,如果没有看到你的文件,我怀疑你想要更多类似的东西:

    convert -delay 35 -loop 0 plots_for_gifs/*.png +repage river_diff.gif
    

    如果您发现确实需要-trim,请将其添加到上述命令之前 +repage


    如果这不起作用,请运行以下命令并将输出粘贴到您的原始问题中 - 点击下方的edit

    identify plots_for_gifs/*000.png
    

    【讨论】:

    • 非常感谢马克,+repage 成功了,从.ps 转换为.png 文件时,原始图像确实被裁剪了。
    • 酷 :-) 请记住,问题(和答案)是免费的,所以如果您遇到困难请回来。祝你的项目好运!
    猜你喜欢
    • 2013-06-05
    • 2014-03-17
    • 1970-01-01
    • 2018-11-13
    • 2013-04-16
    • 1970-01-01
    • 2021-02-01
    • 2012-01-25
    • 2011-06-21
    相关资源
    最近更新 更多