首页 > 解决方案 > ImageMagick:裁剪但保持原始画布大小并将背景绘制为白色

问题描述

我想将图像裁剪成相同大小的图块,但不是通过将它们分开,而是通过生成子图像,其中只有原始图像中保留了裁剪区域,其余部分被涂成白色。原始画布大小保持不变。

通过阅读手册,这里特别是,我想我可以通过运行轻松获得相同大小的瓷砖:

convert image.jpg -crop 7x6@ +repage +adjoin image_7x6_%d.jpg

然而,这给了我更小的图像。我在 imagemagick 板上发现了一篇帖子,建议将外部涂成白色是可行的,但我还没有弄清楚要使用哪个命令来使其正常工作。

有谁知道如何实现这一目标?

标签: imagemagickimage-manipulationimagemagick-convert

解决方案


这是一种实际将图像的其余部分绘制为颜色的方法。您要求白色,但出于显示目的,我将使用蓝色。

在这里,我使用一些 Unix shell 脚本来完成。

First, crop the image, but do not add +repage or that will remove the virtual canvas.

Save the images as MIFF (or PNG) to preserve the virtual canvas.

Then loop over each one as flatten against your color.

Then remove all the MIFF files.


输入:

在此处输入图像描述

convert lena.png -crop 2x2@ +adjoin lena_%02d.miff
for img in *.miff; do
name=$(convert $img -format %t info:)
convert $img -background blue -flatten $name.jpg
done
rm -f *.miff


在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述


推荐阅读