使用 bash convert 将 .png 转换为 .gif 时出现巨大的空白
Posted
技术标签:
【中文标题】使用 bash convert 将 .png 转换为 .gif 时出现巨大的空白【英文标题】:Huge whitespace appearing when converting .png to .gif with bash convert 【发布时间】: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 中运行它。
【问题讨论】:
【参考方案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
文件时,原始图像确实被裁剪了。
酷 :-) 请记住,问题(和答案)是免费的,所以如果您遇到困难请回来。祝你的项目好运!以上是关于使用 bash convert 将 .png 转换为 .gif 时出现巨大的空白的主要内容,如果未能解决你的问题,请参考以下文章
PHP imagemagick exec将PDF页面0转换为PNG太小