繁体   English   中英

Python 复制 PIL 图像 object

[英]Python copy on PIL image object

我正在尝试创建一组缩略图,每个缩略图都从原始图像单独缩小。

image = Image.open(path)
image = image.crop((left, upper, right, lower))
for size in sizes:
  temp = copy.copy(image)
  temp.thumbnail((size, height), Image.ANTIALIAS)
  temp.save('%s%s%s.%s' % (path, name, size, format), quality=95)

上面的代码似乎工作正常,但在测试时我发现一些图像(我无法说出它们有什么特别之处,可能只适用于 PNG)引发了这个错误:

/usr/local/lib/python2.6/site-packages/PIL/PngImagePlugin.py in read(self=<PIL.PngImagePlugin.PngStream instance>)
line: s = self.fp.read(8)
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'read' 

如果没有copy() ,这些图像就可以正常工作。

我可以为每个缩略图重新打开并裁剪图像,但我宁愿有一个更好的解决方案。

我猜copy.copy()不适用于 PIL Image class。 尝试改用Image.copy() ,因为它的存在是有原因的:

image = Image.open(path)
image = image.crop((left, upper, right, lower))
for size in sizes:
  temp = image.copy()  # <-- Instead of copy.copy(image)
  temp.thumbnail((size, height), Image.ANTIALIAS)
  temp.save('%s%s%s.%s' % (path, name, size, format), quality=95)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM