用pip安装PIL(pillow)的时候会看到检测结果,例如
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
*** OPENJPEG (JPEG2000) support not available
--- ZLIB (PNG/ZIP) support available
--- LIBTIFF support available
--- FREETYPE2 support available
*** LITTLECMS2 support not available
--- WEBP support available
--- WEBPMUX support available
--------------------------------------------------------------------
而默认都有带星星的,就是不支持的意思,然后,总会有地方告诉你怎么样他们全支持,例如官方的说法http://pillow.readthedocs.org/installation.html#linux-installation ,然后非常可惜,centos上没有找到webp的源,只能去google上下载了https://code.google.com/p/webp/downloads/detail?name=libwebp-0.4.0.tar.gz&
下载完安装,其中configure的时候需要添加支持./configure --prefix="/usr/" --enable-libwebpdecoder --enable-libwebpdemux --enable-libwebpmux
最后要做个链接,ln -s /usr/local/libwebp* /usr/lib64/
之后自己检测看能不能处理webp的文件吧。
--------------------------------------吐槽分割线-------------------------------------------
期间发现很奇葩的时候,我用ubuntu开发,直接就支持了,不用折腾。但服务器上装了库也不支持。
报的错误一开始是说不识别WEBP格式,我去,PIL里面都有WebPImagePlugin了,怎么会不支持呢?
于是查代码的时候发现没地方import WebPImagePlugin,那肯定不支持这格式啊,于是手动import一下。
然后继续报错,不支持WEBP格式。这就奇怪了,输出import的错误,原来是找不到libwebp库,于是做了链接,能跑了。
最后还是觉得不对,作者不会忘记import的吧,而且ubuntu上的都能识别,于是去掉手动import,在WebPImagePlugin文件头增加两行 import traceback traceback.print_stack() 发现有自动import,原来一直以来只是libwebp的位置不对而已。