我遇到了这个错误: libpng警告:使用png_read_image
时应打开隔行处理每个答案我都已经看到,我已经尝试升级我的libpng版本。但是,看来我的系统上安装了多个版本。
libpng12-0 1.2.54-1ubuntu1.1
libpng16-16 1.6.34-1ubuntu0.18.04.2
如果我运行此命令:
ldconfig -p | grep libpng
我看到了:
libpng16.so.16 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libpng16.so.16
libpng12.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpng12.so.0
libpng12.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libpng12.so.0
在尝试更新libpng时,我做了以下事情:
sudo apt-get update
sudo apt-get --only-upgrade install libpng16-16
我以为1.2.54版本是我的罪魁祸首,但是我不确定为什么它仍然存在或我是否应该删除它。
更新
所以我运行了以下命令,试图找出哪些软件包可能取决于1.2.54版本,这就是我得到的:
libpng12-0
Reverse Depends:
usrmerge
libplymouth2
liblemonldap-ng-portal-perl
要获得上述结果,我使用了以下命令:
apt-cache rdepends libpng12-0
更新#2
真的在查看我的apache错误日志,看来该错误是在apache重新启动后专门发生的,通常还会出现此错误:
libpng warning: iCCP: known incorrect sRGB profile
答案 0 :(得分:0)
我为我的狭隘情况解决了这个问题。每次网站访问者注册以获取更多信息时,我都会在 apache error_log 中收到这些警告之一libpng warning: Interlace handling should be turned on when using png_read_image
。在我的情况下,它是由 PHP 脚本在向用户显示之前处理 png 图像引起的。该脚本正在使用使用 libpng 的命令“imagecreatefrompng”。我首先尝试通过使用以下命令插入一行来修复它:imageinterlace($image, 0);
以强制图像为非隔行扫描。但这没有用。我必须找到所有涉及的 png 文件,并使用照片应用程序将它们读入并将它们作为 非 交错 png 文件写出。这消除了那些警告消息。