【问题标题】:storing a PILLOW image in same name after editing编辑后以同名存储 PILLOW 图像
【发布时间】:2021-09-04 19:31:02
【问题描述】:

我想裁剪一组 Pillow 图像并将其以相同的名称保存在打开它的同一文件夹中。它被聚类并存储为 4 组。

我写的代码如下。

for c in range(4):
    for image_file in glob.glob(f"plot_images/{c}/*.jpg"):
        im=Image.open(image_file)
        im = im.convert("RGB")
        im = im.crop(offset)
        im.save(im.filename)

它给了我错误

AttributeError                            Traceback (most recent call last)
<ipython-input-24-9f3d3a38e4e4> in <module>
     15         im = im.crop(offset)
     16         #im.show()
---> 17         im.save(im.filename)
     18         #print(c,end='\r')
     19 

/srv/conda/envs/notebook/lib/python3.8/site-packages/PIL/Image.py in __getattr__(self, name)
    539             )
    540             return self._category
--> 541         raise AttributeError(name)
    542 
    543     @property

AttributeError: filename

我不明白为什么会出现错误。请帮忙。

【问题讨论】:

  • 在转换/裁剪/等之后你会得到没有filename的新图像。使用image_file

标签: python python-3.x python-imaging-library filenames


【解决方案1】:

如果您在不同的时刻检查type(im),那么您应该在加载后看到PIL.JpegImagePlugin.JpegImageFile,但在转换后看到PIL.Image.Image,其中没有filename。使用image_file

im.save(image_file)

im = Image.open(image_file)
print(type(im)) # <class 'PIL.JpegImagePlugin.JpegImageFile'>

im = im.convert("RGB")
print(type(im)) # <class 'PIL.Image.Image'>

im = im.crop(offset)    
print(type(im)) # <class 'PIL.Image.Image'>

im.save(image_file)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2015-10-08
    • 1970-01-01
    • 2011-11-01
    • 2019-01-30
    • 2014-09-10
    • 1970-01-01
    相关资源
    最近更新 更多