And*_*min 20 python python-imaging-library
我正在尝试使用以下调用进行保存并且它会引发错误,但如果我删除渐进式和优化选项,则会保存.
这是我的test.py不起作用:
import Image
img = Image.open("in.jpg")
img.save("out.jpg", "JPEG", quality=80, optimize=True, progressive=True)
Run Code Online (Sandbox Code Playgroud)
它引发了这个错误:
Suspension not allowed here
Traceback (most recent call last):
File "test.py", line 3, in <module>
img.save("out.jpg", "JPEG", quality=80, optimize=True, progressive=True)
File "/Library/Python/2.6/site-packages/PIL/Image.py", line 1439, in save
save_handler(self, fp, filename)
File "/Library/Python/2.6/site-packages/PIL/JpegImagePlugin.py", line 471, in _save
ImageFile._save(im, fp, [("jpeg", (0,0)+im.size, 0, rawmode)])
File "/Library/Python/2.6/site-packages/PIL/ImageFile.py", line 501, in _save
raise IOError("encoder error %d when writing image file" % s)
IOError: encoder error -2 when writing image file
Run Code Online (Sandbox Code Playgroud)
链接到图像:http://static.cafe.nov.ru/in.jpg(4.3 mb)
agf*_*agf 35
import PIL
from exceptions import IOError
img = PIL.Image.open("c:\\users\\adam\\pictures\\in.jpg")
destination = "c:\\users\\adam\\pictures\\test.jpeg"
try:
img.save(destination, "JPEG", quality=80, optimize=True, progressive=True)
except IOError:
PIL.ImageFile.MAXBLOCK = img.size[0] * img.size[1]
img.save(destination, "JPEG", quality=80, optimize=True, progressive=True)
Run Code Online (Sandbox Code Playgroud)
PIL一次编码部分图像.这与"优化"和"渐进"选项不兼容.
编辑:您需要import PIL.Image, PIL.ImageFile更新版本的PIL/Pillow.
Ery*_*Sun 19
这可能有效,但您可能需要使缓冲区更大:
from PIL import Image, ImageFile
ImageFile.MAXBLOCK = 2**20
img = Image.open("in.jpg")
img.save("out.jpg", "JPEG", quality=80, optimize=True, progressive=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27954 次 |
| 最近记录: |