Imagemagick 裁剪成瓷砖并强制所有尺寸相同?
Posted
技术标签:
【中文标题】Imagemagick 裁剪成瓷砖并强制所有尺寸相同?【英文标题】:Imagemagick crop into tiles and force all to have same size? 【发布时间】:2019-05-02 11:11:34 【问题描述】:我想将图像裁剪成 2048x2048 的切片,如下所示:
convert big.jpg -crop 2048x2048 tile%04d.jpg
但是,例如,如果原件是 5764x3888,则图块最终会像这样:
2048x2048 2048x2048 1668x2048 2048x1840 2048x1840 1668x1840如何强制每个图块为 2048x2048 并位于左上角?
如果我可以在没有脚本的情况下仅在命令行中执行此操作,我会更喜欢,因为我将在 Mac 和 Windows 上执行此操作。
还是我必须先将原始图像设为 6144x4096,这样才能被 2048 整除,然后再裁剪?
谢谢!
【问题讨论】:
【参考方案1】:我会用这个:
convert big.jpg -crop 2048x2048 -background blue -gravity northwest -extent 2048x2048 tile%04d.jpg
显然选择不同的颜色背景以满足您的需要,并选择不同的-gravity
来确定裁剪后的图像在其扩展画布上的位置。
【讨论】:
谢谢!我实际上是在转换透明的 PNG 图像,所以我添加了-transparent white
以保持透明度。
您应该可以使用-background none
,这样会更好,否则您可能会无意中将原始图像的白色部分渲染为透明。
我首先尝试过,但这会使背景变成白色而不是透明。不确定它是否取决于源是 8 位还是 24 位 png。
不知道为什么会这样。您可以尝试在-background none
之前添加-alpha on
,并且可以尝试强制所有输出图块具有convert ... -extent 2048x2048 PNG32:tile%04d.png
的alpha 通道
谢谢,最后一个命令有效。我看到使用透明白色的缺点,非常感谢! :)以上是关于Imagemagick 裁剪成瓷砖并强制所有尺寸相同?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Imagemagick 从图像中自动裁剪文本(签名)并更改背景颜色