[英]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.