如何使用python和PIL在文件夹中创建一组图像文件

时间:2016-04-02 07:10:14

标签: python python-2.7

我正在调整一组图像并将调整大小的图像存储到新文件夹。我的示例代码是

import cv2
import PIL
import Image
import os

def resize_all(path1,path2):
 resolution = (200,200)
 scaler = Image.ANTIALIAS
 if not os.path.exists(path2):
    os.makedirs(path2)
 listing=os.listdir(path1)
 for file in listing:
    img=Image.open(path1 + file)
    res=img.resize(resolution , Image.ANTIALIAS)
    cv2.imwrite(os.path.join(path2, res),'image')

def main():
 resize_all('d:\\Emmanu\\project-data\\birds\\','d:\\Emmanu\\project-data\\new\\')

if __name__ == '__main__':main()

但是当我执行时,我会收到错误 完全追溯添加编辑

Traceback (most recent call last):
File "D:/Emmanu/ImageClassification/preprocessing.py", line 20, in <module>
if __name__ == '__main__':main()
File "D:/Emmanu/ImageClassification/preprocessing.py", line 18, in main
resize_all('d:\\Emmanu\\project-data\\birds\\','d:\\Emmanu\\project-data\\new\\')
File "D:/Emmanu/ImageClassification/preprocessing.py", line 15, in resize_all
cv2.imwrite(os.path.join(path2, res),'image')
File "C:\Python27\lib\ntpath.py", line 67, in join
p_drive, p_path = splitdrive(p)
File "C:\Python27\lib\ntpath.py", line 115, in splitdrive
if len(p) > 1:
File "C:\Python27\lib\site-packages\PIL\Image.py", line 512, in __getattr__
raise AttributeError(name)
AttributeError: __len__

1 个答案:

答案 0 :(得分:0)

终于得到了答案,修改了for循环

for i,file in enumerate(listing):
    img=Image.open(path1 + file)
    res=img.resize(resolution , Image.ANTIALIAS)
    res.save(path2+'h{}.jpg'.format(i))

现在我的所有图像都已调整大小并保存到新文件夹