如何在Python中保存调整大小的图像?

2024-04-27 00:04:33 发布

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

也许这是因为我对Python还不熟悉。但我似乎无法调整大小和保存图像。在

有人能告诉我我做错了什么吗?我首先调整大小,然后将图像裁剪为256x256。输出保存为原始图像。函数调用如下:resizeAndCrop("path/to/image.png")

当前行为是脚本以原始大小保存图像。。。在

# function for resizing and cropping to 256x256
def resizeAndCrop(imgPath):

    im = Image.open(imgPath)

    # remove original
    os.remove(imgPath)

    # Get size
    x, y = im.size

    # New sizes
    yNew = 256
    xNew = yNew # should be equal

    # First, set right size
    if x > y:
        # Y is smallest, figure out relation to 256
        xNew = round(x * 256 / y)
    else:
        yNew = round(y * 256 / x)

    # resize
    im.resize((int(xNew), int(yNew)), PIL.Image.ANTIALIAS)

    # crop
    im.crop(((int(xNew) - 256)/2, (int(yNew) - 256)/2, (int(xNew) + 256)/2, (int(yNew) + 256)/2))

    # save
    print("SAVE", imgPath)
    im.save(imgPath)

Tags: to图像cropimagesizesaveremoveint
1条回答
网友
1楼 · 发布于 2024-04-27 00:04:33

根据文档:https://pillow.readthedocs.io/en/4.0.x/reference/Image.html

对图像调用resize“将返回此图像的已调整大小的副本。”因此您需要将结果分配给一个新变量:

resizedImage = im.resize((int(xNew), int(yNew)), PIL.Image.ANTIALIAS)

对于裁剪也同样适用,但在文档中指出“在Pillow 3.4.0之前,这是一个懒惰的操作。”因此现在您需要将对crop的调用分配给另一个变量

相关问题 更多 >