Я использую библиотеку Pillow (PIL.Image) в Anaconda Jupyter Notebook, чтобы открыть изображение 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 самая новая версия Добавление типа файла сделает кластер бесконечно занятым, но на самом деле не сохраняет изображение.