使用 ImageMagic 裁剪图像会产生错误尺寸的图像 - 为什么?
Cropping images with ImageMagic produces wrong size images - why?
有一堆代表页面的图像,是从一本书中扫描的,并且已经用 ImageMagic 裁剪过。它们都是统一的,629x625 像素。我需要进一步处理它们以准备创建 PDF:将它们分成奇数页和偶数页。他们被命名为 canvas-00.png
到 canvas-53.png
当我使用以下命令首先获取奇数页时,我得到了从错误的水平偏移中提取的 275x563 像素的完全屠宰图像:
convert canvas-??.png -crop 314x625+0+0 ~/Pictures/odd/canvas.png
我做错了什么?
PS:最初图像更大,包含额外的边距,扫描仪的盖子可见,我使用非常相似的命令成功地将它们裁剪为 629x625,但当然有 [=13 的非零偏移量=].所以让我感到困惑的是,一个明显更简单的零偏移命令根本不起作用。
我怀疑您的 PNG 文件中有页面偏移 "remembered",您需要清除它们。
例如,让我们创建一个 500x300 像素的图像:
convert xc:red xc:lime +append \
\( xc:blue xc:magenta +append \) -append -resize 500x300\! start.png
现在让我们在右下角剪出一块,我特意把它做成了洋红色,这样你就可以看到我得到的是哪一块:
convert start.png -crop 200x100+250+150 z.png
但是如果我们现在用 identify
查看它,您可以看到它 "remembers" 它在原始图片中的位置:
identify z.png
输出
z.png PNG 200x100 500x300+250+150 16-bit sRGB 51.1KB 0.000u 0:00.000
这可能会影响(即搞乱)您将来对图像所做的任何操作。解决方案是使用 +repage
重置所有页面几何和布局,这样它就会忘记。您可以在裁剪时执行此操作,也可以在稍后使用裁剪后的图像时执行此操作 - 取决于您是否要保留裁剪信息。 (有时你在做拼图游戏时确实需要它,并且可能想稍后重新组装)。
convert start.png -crop 200x100+250+150 +repage z.png
identify z.png
z.png PNG 200x100 200x100+0+0 16-bit sRGB 51.1KB 0.000u 0:00.000
对于您的情况,如果您已经裁剪并保存而没有重新分页,您可以在实际使用之前加载图像并重新分页:
convert canvas-??.png +repage -crop 817x1040+0+0 ~/Pictures/odd/canvas.png
有一堆代表页面的图像,是从一本书中扫描的,并且已经用 ImageMagic 裁剪过。它们都是统一的,629x625 像素。我需要进一步处理它们以准备创建 PDF:将它们分成奇数页和偶数页。他们被命名为 canvas-00.png
到 canvas-53.png
当我使用以下命令首先获取奇数页时,我得到了从错误的水平偏移中提取的 275x563 像素的完全屠宰图像:
convert canvas-??.png -crop 314x625+0+0 ~/Pictures/odd/canvas.png
我做错了什么?
PS:最初图像更大,包含额外的边距,扫描仪的盖子可见,我使用非常相似的命令成功地将它们裁剪为 629x625,但当然有 [=13 的非零偏移量=].所以让我感到困惑的是,一个明显更简单的零偏移命令根本不起作用。
我怀疑您的 PNG 文件中有页面偏移 "remembered",您需要清除它们。
例如,让我们创建一个 500x300 像素的图像:
convert xc:red xc:lime +append \
\( xc:blue xc:magenta +append \) -append -resize 500x300\! start.png
现在让我们在右下角剪出一块,我特意把它做成了洋红色,这样你就可以看到我得到的是哪一块:
convert start.png -crop 200x100+250+150 z.png
但是如果我们现在用 identify
查看它,您可以看到它 "remembers" 它在原始图片中的位置:
identify z.png
输出
z.png PNG 200x100 500x300+250+150 16-bit sRGB 51.1KB 0.000u 0:00.000
这可能会影响(即搞乱)您将来对图像所做的任何操作。解决方案是使用 +repage
重置所有页面几何和布局,这样它就会忘记。您可以在裁剪时执行此操作,也可以在稍后使用裁剪后的图像时执行此操作 - 取决于您是否要保留裁剪信息。 (有时你在做拼图游戏时确实需要它,并且可能想稍后重新组装)。
convert start.png -crop 200x100+250+150 +repage z.png
identify z.png
z.png PNG 200x100 200x100+0+0 16-bit sRGB 51.1KB 0.000u 0:00.000
对于您的情况,如果您已经裁剪并保存而没有重新分页,您可以在实际使用之前加载图像并重新分页:
convert canvas-??.png +repage -crop 817x1040+0+0 ~/Pictures/odd/canvas.png