簡體   English   中英

使用PIL在python中調整圖像大小

[英]Resize images in python using PIL

我正在嘗試調整一組圖像的大小,大約是366,所以我創建了一個腳本,我首先在3上測試並且它成功了。

問題是當我處理整個文件夾時,它會返回以下錯誤:

resizeimage.imageexceptions.ImageSizeError: 'Image is too small, Image size : (275, 183), Required size : (399, 399)'

我的腳本應該迭代整個文件夾,調整圖像大小,然后將輸出文件存儲在另一個文件夾中:

import os

from PIL import Image

from resizeimage import resizeimage

path = "/Users/sigc2sige/PycharmProjects/helloworld/photos"
size = (399, 399)

for file in os.listdir(path):
    with open('/Users/sigc2sige/PycharmProjects/helloworld/photos/'+file, 'r+b') as f:
        with Image.open(f) as image:
            cover = resizeimage.resize_cover(image, size, Image.ANTIALIAS)
            cover.save('/Users/sigc2sige/PycharmProjects/helloworld/photos_2/'+file, image.format)

我確實使用了這個指令:

thumb = ImageOps.fit(image, size, Image.ANTIALIAS)但我相信它會thumb = ImageOps.fit(image, size, Image.ANTIALIAS)圖像而不是調整它們的大小。

如果您對如何解決這個問題有任何想法,那就太好了。

對圖像進行下采樣(使其更小)是一回事,並且上采樣(使其更大)是另一回事。 如果你想下采樣,ANTIALIAS是一個不錯的選擇,如果你想上傳,你可以使用其他過濾器。

import os

from PIL import Image

from resizeimage import resizeimage

path = "/Users/sigc2sige/PycharmProjects/helloworld/photos"
size = (399, 399)

for file in os.listdir(path):
    with open('/Users/sigc2sige/PycharmProjects/helloworld/photos/'+file, 'r+b') as f:
        with Image.open(f) as image:
            if (image.size) >= size:
                cover = resizeimage.resize_cover(image, size, Image.ANTIALIAS)
                cover.save('/Users/sigc2sige/PycharmProjects/helloworld/photos_2/'+file, image.format)
            else:
                cover = image.resize(size, Image.BICUBIC).save('/Users/sigc2sige/PycharmProjects/helloworld/photos_2/'+file, image.format)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM