记录一次libwebp版本造成的问题

Posted ymwh@foxmail.com

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一次libwebp版本造成的问题相关的知识,希望对你有一定的参考价值。

现象简述

公司同事今天告诉我,我们的软件有一个问题,就是一个图像显示的问题,显示的图像有部分镂空缺少的状况。

原因

对比了多个版本的程序,发现仅仅在Linux版本上出现了这个问题,Windows版本没有出现。查看了一下代码历史,并没有发现有代码的不一致。调试了一下程序,发现问题出现在使用libwebp进行图像解码的时候,出来的结果就已经是有缺少的。
看了下Linux下使用的libwebp版本,发现是v0.4.2而windows上使用的是v0.6.1,于是编译了一个新版本的放上去,问题不再出现。

记录下libwebp的编译修改

这里记录一下编译libwebp动态库,便于以后需要的时候使用。

1、下载源码

wget https://github.com/webmproject/libwebp/archive/v0.6.1.tar.gz
#或下载最新版本
wget https://github.com/webmproject/libwebp/archive/v1.0.3.tar.gz

2、修改makefile.unix
因为这个脚本,只提供了编译为.a静态库的操作,所以需要对其进行简单的修改。

不多说,直接上图好了

添加编译选项-fPIC

添加一个libwebp.so的目标(这里设置siname为libwebp.so.4是用于生成的so直接替换掉原来的低版本的,就不去做软链接或者重新编译链接了)

把这个输出目标添加到all中(这里我就简单的直接改了下面一个使用到libwebp.a的,改成.so了)

以上是关于记录一次libwebp版本造成的问题的主要内容,如果未能解决你的问题,请参考以下文章

webp 图形文件操作工具包 win32 (编译 libwebp-20171228-664c21dd 版本)

编译 ImageMagick:找不到“libwebp”,从 Amazon Linux 2 上的源代码编译

编译 SDWebImage 演示:找不到 libwebp/src/utils/random.c

一次修改数据库物理文件造成Mysql宕机的恢复记录

[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段

提效小技巧——记录那些不常用的代码片段