首页 > 解决方案 > libpng 警告:使用 png_read_image 时应打开隔行处理

问题描述

我遇到了这个错误: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

标签: ubuntulibpng

解决方案


我为我的狭隘情况解决了这个问题。libpng warning: Interlace handling should be turned on when using png_read_image每次网站访问者注册以获取更多信息时,我都会在 apache error_log 中收到这些警告之一。在我的情况下,它是由 PHP 脚本在将 png 图像显示给用户之前对其进行操作引起的。该脚本使用使用libpng的命令“imagecreatefrompng” 。我首先尝试通过使用以下命令插入一行来修复它:imageinterlace($image, 0);为了强制图像非隔行扫描。但这没有用。我必须找到所有涉及的 png 文件,并使用照片应用程序将它们读入并将它们写成交错 png 文件。这摆脱了那些警告信息。


推荐阅读