imagemagick - ImageMagick:裁剪但保持原始画布大小并将背景绘制为白色
问题描述
我想将图像裁剪成相同大小的图块,但不是通过将它们分开,而是通过生成子图像,其中只有原始图像中保留了裁剪区域,其余部分被涂成白色。原始画布大小保持不变。
通过阅读手册,这里特别是,我想我可以通过运行轻松获得相同大小的瓷砖:
convert image.jpg -crop 7x6@ +repage +adjoin image_7x6_%d.jpg
然而,这给了我更小的图像。我在 imagemagick 板上发现了一篇帖子,建议将外部涂成白色是可行的,但我还没有弄清楚要使用哪个命令来使其正常工作。
有谁知道如何实现这一目标?
解决方案
这是一种实际将图像的其余部分绘制为颜色的方法。您要求白色,但出于显示目的,我将使用蓝色。
在这里,我使用一些 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
推荐阅读
- c# - 如何让我的文本框接受输入,直到 11 个数字?
- docker - 将私有 ssh 密钥添加到 docker
- kotlin - Kotlin:无法调用表达式,因为找不到函数 invoke()
- html - 折叠表格列表
- python - 套接字服务器的客户端没有抛出一个错误,表明在不是套接字的东西上尝试了操作
- java - 带有非 Oracle JDK 的 Java 8 中的 JavaFX
- firebase - React Native Firebase Analytics:第二个参数必须是一个对象
- php - 未找到基表或视图 未找到表“tenancy.websites”
- reactjs - 在无状态组件上使用 React.memo() 时出错
- haskell - 从用户那里获取输入:Haskell