【发布时间】:2017-04-01 05:55:19
【问题描述】:
我需要将 PNG 图像中的像素偏移 X 轴 -1 和 Y 轴 -4。
图像是从 Corel Draw 创建的 PDF 转换而来的,它添加了偏移量,破坏了我正在使用的图像处理系统。 处理这些文件时,来自 hugin-tools 包的 align_image_stack 崩溃,这就是我求助于尝试固定偏移校正的原因。
我试过这些命令:
$ convert a.png: -geometry 100%-100-100 b.png
$ convert -region '100%+500px+100px' a.png b.png
$ convert -page '100%+500px+100px' a.png b.png
$ convert -repage '100%+500px+100px' a.png b.png
$ convert -crop '100%+500px+100px' a.png b.png
$ convert a.png -geometry 100%-100px-100px b.png
他们都完成了,没有错误,但是给了我相同的图像作为输入。
a.png = b.png
我做错了什么?为什么 Covert 命令不移动图像内容?
编辑:
这里有一对图片来说明我的问题。第一个图像是我想要的,第二个是 Corel Draw 产生的,我想应用任意 X/Y 偏移来补偿这种差异。图片是伪造的,只是为了说明问题,这不是真实数据。
新的一点是我能够产生偏移一次,但我无法重现这一点。在我看来,它就像 ImageMagick 中的一个错误,因为我正在尝试我之前使用的相同命令,但它现在不起作用。
我也尝试使用 GraphicsMagick 来仔细检查。
我能够将偏移量写入 PNG 标头,但这不会让 Blender 使用该偏移量,因此我需要将该偏移量“刻录”到位图数据中,而不仅仅是在元数据中指定它。
这个命令做了一个改变,但似乎只有 GIMP 明白这一点,我需要让 Blender 应用偏移:
convert a.png -repage '100%x100%+100+1000' b.png
我尝试使用 -sample 来应用转换,但它没有被应用并保留在元数据中 - 我可以使用 GIMP 进行检查。
convert a.png -repage '100%x100%+100+1000' -sample 100% b.png
我不敢相信我不能做这么简单的事情。
【问题讨论】:
-
分享一张带偏移量的图片怎么样?
-
我无法发布确切的图像,因为它们属于客户。但我可以用不同的文件来说明问题。
-
无法从您的插图中诊断问题,这只是两张图片的屏幕截图。获取
pngcheck并查看pngcheck -v a.png和pngcheck -v b.png的结果。如果 PNG 包含偏移量,它将位于oFFs块中。
标签: linux image-processing imagemagick imagemagick-convert