我正在使用Anaconda Jupyter Notebook中的Pillow (PIL.Image)库打开tif图像,将其拆分为几个页面并保存图像。上个星期它还在工作。然而,它在本周突然返回了一个操作系统错误。
我的代码如下:
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现在我得到了这个错误:
> --------------------------------------------------------------------------- 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库是最新版本。添加文件类型将使群集无限繁忙,但不会真正存储映像。
发布于 2020-01-23 21:14:30
不确定从上周开始库发生了什么,但我通过重新安装找到了解决方案……
使用"python Jupyter pip install Pillow“而不是"pip install Pillow”,然后重启-m笔记本和笔记本电脑。
发布于 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
https://stackoverflow.com/questions/59877504
复制相似问题