Linux 调整大小不符合分辨率规范
我有一个由16x16个图像组成的16x512图像。我想把它们分开,分别缩放到16x8,然后将它们全部放回完整的16x512。我有一个基本的想法,但执行起来有困难 使用中的命令,我通过使用Linux 调整大小不符合分辨率规范,linux,shell,graphics,imagemagick,png,Linux,Shell,Graphics,Imagemagick,Png,我有一个由16x16个图像组成的16x512图像。我想把它们分开,分别缩放到16x8,然后将它们全部放回完整的16x512。我有一个基本的想法,但执行起来有困难 使用中的命令,我通过使用convert-crop 16x16 my_image.png crop-%d.png按文件分割,这将生成32个图像(512/16==32)。我的下一步就是麻烦开始的地方。从中,我找到了命令mogrify-resize16x8 crop-*.png,但是这不会生成16x8图像,而是生成8x8图像,这是我不想要的。
convert-crop 16x16 my_image.png crop-%d.png
按文件分割,这将生成32个图像(512/16==32)。我的下一步就是麻烦开始的地方。从中,我找到了命令mogrify-resize16x8 crop-*.png
,但是这不会生成16x8图像,而是生成8x8图像,这是我不想要的。此外,这篇文章给了我合并这些图像的命令,它是convert crop-*.png-append my_image\u croped.png
,但是它不会产生我想要的16x512,而是8x256(8是由于之前的错误,但我仍然希望高度为512,而不是256)
我需要什么来实现我的目标?有问题的图像可以在上找到
编辑:以下是一些描述基本想法的图片
完整图像:
16x16和16x8并排
最终的图像,基本上16x8将位于16x16区域(在底部,这是必要的),但不会完全填充它
我不确定我是否理解你想做什么。但如果调整16x8的大小,Imagemagick将保持纵横比。如果您想强制它精确到16x8并且可以接受失真,那么使用!旗帜但是你说你想把32块放回16x512的形状,但是调整大小会使它变成16x256,因为你有32个高度为8的图像。因此,您必须再次调整大小。如果这真的是你想要的,下面是如何做到这一点 创建用于测试的渐变图像:
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
根据需要更改背景颜色和重力设置以进行定位。差不多了。基本上,我不想强行拉伸最终的图片(就像你对
-append-resize
所做的那样),而是想将16x8安装到16x16区域中。我将用图表更新我的答案,使其更清晰)请参见我的答案中的添加内容。