python - 编辑后以同名存储 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
我不明白为什么会出现错误。请帮忙。
解决方案
如果您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)
推荐阅读
- firebase - 保持 Firestore 写入的原子性对于批处理操作来说太大(>500)
- python - 如何使用范围不等式向 pyomo 添加约束
- docker - 将 Kafka docker run 命令转换为 Kubernetes
- c++ - C++ 中的 ^(按位异或)与布尔值
- perl - 已解决:哈希内容访问与不同的 perl 版本不一致
- ffmpeg - 如何从 Apple Live Photo 中提取地理位置元数据?
- arrays - NodeJs Mongoose:无法在 forEach 循环之外接收配方数据,即使它似乎在循环内迭代时显示
- python - 我可以将蒙特卡洛策略梯度算法与其他策略梯度算法结合起来吗
- c - 有没有办法给 fgets() 设置时间限制?
- python - 如何将合并的元组初始化为 init 函数?