矩形图像的squ整形

2024-10-01 09:42:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把矩形图像转换成正方形图像。 但是,我有问题。在

我的Python测试代码在这里:

from PIL import Image
import numpy as np

im = Image.open('aa.png')
pixMap = im.load()

img = Image.new( im.mode, im.size)
sqrWidth = np.ceil(np.sqrt(im.size[0]*im.size[1])

pixNew = Image.new(im.mode, (im.size[0]*im.size[1], 1))
pixSave = Image.new(im.mode, (sqrWidth, sqrWidth))

k=0
for i in range(img.size[0]):
    for j in range(img.size[1]):
        pixNew[k] = pixMap[i, j]
        k=k+1

k=0
for i in range(sqrWidth):
    for j in range(sqrWidth):
        pixSave[i, j] = pixNew[k]
        k=k+1

im.close()
img.show()       
img.save("out.png") 
img.close()

我的错误是:

^{pr2}$

怎么了?在


Tags: in图像imageimportimgnewforsize
2条回答

您可以在PIL中使用调整大小图像过滤器。在

from PIL import Image
import numpy as np

im = Image.open('image.png')
sqrWidth = np.ceil(np.sqrt(im.size[0]*im.size[1])).astype(int)
im_resize = im.resize((sqrWidth, sqrWidth))
im_resize.save('output.png')

这将把你的形象压缩成一个正方形。这是你想要的吗?在

输入图像

input

输出图像

output

如果你想保持原始图像的形状并且仍然是正方形,那么考虑添加填充使其成为正方形,然后按照Robbie的建议调整大小

相关问题 更多 >