我有一个由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区域(在底部,这是必不可少的),但不会完全填充它。
答案 0 :(得分:1)
我不确定我知道你想做什么。但是,如果您调整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
根据需要更改背景颜色,并根据需要更改重力设置。