-resize
我知道我可以使用或使用 ImageMagick 调整图像大小-scale
,但如何使用ImageMagick重塑-resize
图像?如果我使用或-scale
:
magick image.png -resize 160x a.png
magick image.png -scale 160x b.png
我会得到这个:
但我希望拥有完全相同数量的像素、完全相同的值和完全相同的顺序,但如果这是一个单词,它们将被“重新流动”为不同的形状。
我已经研究出如何使用 Python 图像库和 Numpy 来实现这一点。我的起始图像是 80x80,如下所示:
from PIL import Image
import numpy as np
image = Image.open('a.png').convert('RGB')
npArray = np.array(image)
Image.fromarray(npArray.reshape(-1,160,3)).save('largeur160.png')
Image.fromarray(npArray.reshape(-1,40,3)).save('largeur40.png')
Image.fromarray(npArray.reshape(-1,10,3)).save('largeur10.png')
我得到了宽度为 160、宽度为 40 和宽度为 10 的这些图像:
很酷的问题!基本上,我认为你需要将图片中的所有像素排列成一长行,然后将该行切成你想要的宽度的块。我会分步进行 - 如果你只想要答案,请跳到最后!
首先,将图像切成 1px 高的行,这样就有 80 行像素,每行 80x1:
现在,将所有这些行从左到右连接在一起,使所有像素形成一个长行 6400x1:
现在将那行长切成您想要的新宽度的行,这样您将得到 40 行 160x1:
现在将这些行从上到下连接在一起以获得结果:
将 更改
160x
为40x
和10x
以适合其他宽度。