在 GCE Deep Learning VM 中打开 WebP 图片

Open WebP images in GCE Deep Learning VM

在python代码中,我需要处理webp图片。但是当我尝试用 python PIL 模块打开它时,出现错误: OSError: cannot identify image file 'my_image.webp

我的深度学习图像是从GCP Marketplace VM(tensorflow图像)创建的,但webp格式似乎不是枕头级别的"activated"。

python默认支持webp格式吗? 我需要在 VM 上 do/install/import 做什么才能使用 python PIL 打开 webp 图像?

我的 python 代码步骤:

>>>import PIL
​
>>>print(PIL.__version__)
6.0.0.post0

>>>from PIL import features
>>>print (features.check_module('webp'))
False

>>> PIL.Image.open('my_image.webp')
/usr/local/lib/python3.5/dist-packages/PIL/Image.py:2703: UserWarning: image file could not be identified because WEBP support not installed
  warnings.warn(message)
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-4-99a62d35da67> in <module>
----> 1 PIL.Image.open('BATIMENT0000000045936174_flatRoof.webp')

/usr/local/lib/python3.5/dist-packages/PIL/Image.py in open(fp, mode)
   2703         warnings.warn(message)
   2704     raise IOError("cannot identify image file %r"
-> 2705                   % (filename if filename else fp))
   2706 
   2707 #

OSError: cannot identify image file 'my_image.webp'

打开 GCP VM 的 JupyterLab UI 和 运行 终端会话。在终端 运行 这些命令来安装 webp 库:

pip uninstall Pillow
pip uninstall Pillow-SIMD
sudo apt install libwebp-dev
pip install Pillow-SIMD

重启你的 Jupyter 内核。现在 PIL 可以读取 webp 图片了。

运行 在我的一台服务器上遇到了类似的问题。

使用了上面提到的命令,但在 运行 features.check_module('webp')

时仍然得到 False

原来在重新安装 Pillow-SIMD 时,您需要确保您没有使用构建的缓存版本,否则您将无法获得 WEBP 支持。所以将最后一步更改为:pip install Pillow-SIMD --no-cache-dir 为我解决了它。

我会把它添加为评论,但我没有足够的代表!