首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python PIL Pillow:保存图像突然不起作用

python PIL Pillow:保存图像突然不起作用
EN

Stack Overflow用户
提问于 2020-01-23 19:27:45
回答 2查看 682关注 0票数 2

我正在使用Anaconda Jupyter Notebook中的Pillow (PIL.Image)库打开tif图像,将其拆分为几个页面并保存图像。上个星期它还在工作。然而,它在本周突然返回了一个操作系统错误。

我的代码如下:

代码语言:javascript
复制
img = Image.open(file_url)
for i in range(img.n_frames): ## split multi-page tif
    print(i+1)
    try:
        img.seek(i)
        img.save('page_%s.tif'%(i,))
    except EOFError:
        break

现在我得到了这个错误:

代码语言:javascript
复制
> --------------------------------------------------------------------------- OSError                                   Traceback (most recent call
> last) <ipython-input-5-55bb7e23c7a6> in <module>
>       5     try:
>       6         img.seek(i)
> ----> 7         img.save('page_%s.tif'%(i,))
>       8     except EOFError:
>       9         break
> 
> ~\AppData\Local\Continuum\anaconda3\lib\site-packages\PIL\Image.py in
> save(self, fp, format, **params)    2066     2067         # may mutate
> self!
> -> 2068         self._ensure_mutable()    2069     2070         save_all = params.pop("save_all", False)
> 
> ~\AppData\Local\Continuum\anaconda3\lib\site-packages\PIL\Image.py in
> _ensure_mutable(self)
>     587     def _ensure_mutable(self):
>     588         if self.readonly:
> --> 589             self._copy()
>     590         else:
>     591             self.load()
> 
> ~\AppData\Local\Continuum\anaconda3\lib\site-packages\PIL\Image.py in
> _copy(self)
>     580 
>     581     def _copy(self):
> --> 582         self.load()
>     583         self.im = self.im.copy()
>     584         self.pyaccess = None
> 
> ~\AppData\Local\Continuum\anaconda3\lib\site-packages\PIL\TiffImagePlugin.py
> in load(self)    1068     def load(self):    1069         if
> self.use_load_libtiff:
> -> 1070             return self._load_libtiff()    1071         return super().load()    1072 
> 
> ~\AppData\Local\Continuum\anaconda3\lib\site-packages\PIL\TiffImagePlugin.py
> in _load_libtiff(self)    1180     1181         if err < 0:
> -> 1182             raise OSError(err)    1183     1184         return Image.Image.load(self)
> 
> OSError: -2

我已经检查了Pillow库是最新版本。添加文件类型将使群集无限繁忙,但不会真正存储映像。

EN

回答 2

Stack Overflow用户

发布于 2020-01-23 21:14:30

不确定从上周开始库发生了什么,但我通过重新安装找到了解决方案……

使用"python Jupyter pip install Pillow“而不是"pip install Pillow”,然后重启-m笔记本和笔记本电脑。

票数 2
EN

Stack Overflow用户

发布于 2020-08-18 07:39:06

面对同样的情况,tiff到jpeg的转换最初是有效的,但后来在self._load_libtiff上使用OSError: -2失败了。

在浏览了this github post之后,我发现我需要更新libtiff 4.1.0才能从conda-forge通道构建h885aae3_4或更高版本,所以如下所示:

conda install -c conda-forge libtiff=4.1.0=h885aae3_4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59877504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档