我下载了ImageMagick,因此我可以批量处理工作中的图像文件夹,将它们裁剪为大小,然后将它们切成12个相等的部分。我可以单独完成每项任务,但我宁愿使用STDIN和STDOUT在一行中执行它。然而,即使在这里查看答案和网站上的文档之后,我也没有更接近它的工作。
我在Windows Powershell工作。这是我尝试过的,使用单个图像:
convert -crop '5072x3552+87+0' image.jpg jpg:- | convert -crop '1268x1184' - jpg: - | convert -crop '1268x1030+0+0' - C:\folder1\folder2\folder3\square.jpg
这给了我一系列错误:
convert.exe:此图像格式没有解码委托`'@ 误差/ constitute.c / ReadImage / 508。
convert.exe:没有图像定义`jpg: - '@ 误差/ convert.c / ConvertImageCommand / 3253。
convert.exe:此图像格式没有解码委托`'@ 误差/ constitute.c / ReadImage / 508。
convert.exe:未定义图像 `C:\ users \ lmcane \ desktop \ imagem \ test \ leaf.jpg'@ 误差/ convert.c / ConvertImageCommand / 3253
我在Windows 7上使用ImageMagick 7.0.2。Windows PowerShell以管理员身份打开。
欢迎在imagemagick中格式化STDIN和STDOUT的其他指南。
任何帮助表示感谢。
答案 0 :(得分:0)
我无法解释为什么convert
会抛出这些错误,但我能够通过使用xwd
作为传输格式来实现它:
convert -crop '5072x3552+87+0' image.jpg xwd:- |
convert -crop '1268x1184' xwd:- xwd:- |
convert -crop '1268x1030+0+0' xwd:- C:\folder1\folder2\folder3\square.jpg
答案 1 :(得分:0)
我会尝试使用-fuzz
进行边缘的第一次修剪(以允许边框颜色的微小差异)和-trim
。这可以解决这个问题:
convert grid.png -fuzz 30% -trim trimmed.png
然后,我将平铺到4x3并重新拍摄图像,以便忘记原始图像中的位置:
convert trimmed.png -crop 4x3@ +repage step2.png
现在从顶部,底部和侧面裁剪并保存个别12帧:
convert step2.png -crop 130x100+20+20 f-%02d.png
现在你可以使用稍微不同的模糊来修剪多余的部分,因为此处的变化似乎比原始图像的外边缘更少。而且,我还将所有命令放在一起,一次完成所有12个图像的所有步骤:
convert grid.png -fuzz 30% -trim -crop 4x3@ +repage -crop 130x100+20+20 -fuzz 5% -trim f-%02d.png
您可能需要使用其他图像的模糊因子,但您应该看看它现在是如何工作的。