如何移动 png

How to shift png

我的 PNG 图片似乎向下移动了 1 个像素(与它应该是的相比)。我认为这将是一个简单的修复(只需将图像向上移动一个像素),但我似乎无法将其向上拖动,因为底部没有额外的像素可以丢失。我可以切掉顶部多余的像素,但这样我的图像就会比需要的小一个像素。我的默认编辑器 MS Paint 甚至根本无法编辑它,因为它“太小而无法编辑:我们无法编辑任何小于 50 像素的东西。在尝试使用“Paint 3D”和我提供的各种在线编辑器大约一个小时后起来,到这里来。 如果有人知道在底部添加一行像素的任何方法也可以。

您可以在 Windows、macOS 和 Linux 上使用 ImageMagick,如下所示。我将使用带有红色单像素边框的图像。


从图像顶部切掉一行像素:

magick mogrify -gravity north -chop x1 image.png


从图像底部切掉一行像素:

magick mogrify -gravity south -chop x1 image.png


将一行黄色像素拼接到图像顶部:

magick mogrify -gravity north -background yellow -splice x1 image.png


将一行洋红色像素拼接到图像底部:

magick mogrify -gravity south -background magenta -splice x1 image.png


为了完整起见,从右侧切掉一列像素:

magick mogrify -gravity east -chop 1x image.png


然后,在右侧添加一列青色像素:

magick mogrify -gravity east -background cyan -splice 1x image.png


请注意,上面的所有命令都是“原位”完成的,这会覆盖输入图像,并且不必为输入和输出指定相同的文件名。它还允许您使用通配符来指定大量图像,如下所示:

magick mogrify -gravity north -chop x1 *.png *.jpg

但是,如果您想避免覆盖输入图像,请更改此格式:

magick mogrify -gravity north -chop x1 image.png

到这种处理单个输入图像并以不同名称保存结果的格式:

magick INPUT.PNG -gravity north -chop x1 OUTPUT.PNG

或者,如果您想一次处理大量图像,即使用 mogrify 和通配符,但不想覆盖原始图像,您可以使用 mogrify 并制作和使用输出目录:

mkdir OUTPUT
magick mogrify -path OUTPUT -gravity north -chop x1 *.png *.jpg

请注意,您可以将上面的 any/all 结合起来,所以如果您想从答案开头的原始图像开始,从顶部切下一条线并添加一条柠檬绿线在底部:

magick image.png -gravity north -chop x1 -gravity south -background lime  -splice x1 result.png

您可以在 ImageMagick 中复制最后一行像素,然后将其附加到底部。

Unix 语法:

convert image.png \( +clone -gravity south -crop x1+0+0 +repage \) -append new_image.png

Windows 语法:

convert image.png ( +clone -gravity south -crop x1+0+0 +repage ) -append new_image.png