我有一个由16x16图像组成的16x512图像。我想将它们分开,分别将每个比例缩小到16x8,然后将它们全部放回完整的16x512。我有一个基本的主意,但执行时遇到困难。
使用unix stackexchange中的命令,我使用convert -crop 16x16 my_image.png crop-%d.png
按文件拆分,生成32张图像(512/16 == 32)。我的下一步是麻烦开始了。在askubuntu中,我找到了命令mogrify -resize 16x8 crop-*.png
,但这不会产生16x8的图像,而是8x8的图像,我不希望这样。此外,stackoverflow上的这篇文章为我提供了合并这些图像的命令,即convert crop-*.png -append my_image_cropped.png
,但是它并没有产生我想要的16x512,而是8x256(8是由于先前的错误,但是我仍然要求高度为512,而不是256)。
我需要完成什么目标?有关图像可以在imgur上找到。
编辑:这是一些描述基本思想的图片
完整图片:
16x16和16x8并排
最终的图像(基本上是16x8)将位于16x16区域(在底部,这很重要),但不会完全填满它。
最佳答案
我不确定我了解您想要做什么。但是,如果您调整16x8的大小,Imagemagick将保持宽高比。如果要强制将其精确设置为16x8并可以接受失真,请使用!旗。但是,然后您说要将这32个块放回原处以形成16x512,但由于您拥有32个高度为8的图像,因此调整大小后将使其变为16x256。因此,您必须再次调整大小。如果这确实是您想要的,请执行以下操作。
创建用于测试的渐变图像:
convert -size 16x512 gradient: grad.png
做加工:
convert grad.png -crop 16x16 -resize 16x8! -append -resize 16x512! newgrad.png
请注意,正确的Imagemagick语法会首先读取输入。
加成:
考虑到您的评论中有新信息,请尝试以下操作:
convert grad.png -crop 16x16 -resize 16x8 -gravity northwest -background none -extent 16x16 -append newgrad.png
根据需要更改背景颜色,并根据需要更改重力设置以进行定位。