【问题标题】:Error when uploading certain .png files "Interlace handling should be turned on when using png_read_image"上传某些 .png 文件时出错“使用 png_read_image 时应打开交错处理”
【发布时间】:2018-06-02 01:08:45
【问题描述】:

在处理上传到我的站点的图像时,我看到了一些随机错误,其中某些 .png 文件会导致错误被回显到输出缓冲区,这会破坏对服务器的响应。

错误是 "使用 png_read_image 时应开启隔行处理"

我在某些情况下看到了这种情况,我手动处理上传的文件,现在我刚刚开始在我的 Wordpress 安装中看到这种情况。我没有将这个问题标记为 Wordpress,因为我怀疑它与 wordpress 有什么关系,而它一定是 PHP 中的一些问题。

我最初在 PHP5 中看到了这个问题,但自从我升级到 PHP7 后我也看到了这个问题。我现在正在运行 PHP7.1.9。

到目前为止,谷歌搜索没有返回任何有意义的结果,似乎没有任何特定于 PHP 的答案,大多数答案都说用户需要在上传之前对源文件启用隔行扫描,这是不可接受的Web 服务器的立场,因为我无法控制用户上传的内容。上传后图像似乎仍然可以正常工作,我只需要一种方法来抑制此消息,以免向用户显示错误错误。

错误消息确实提到了使用 png_read_image(),但是我没有在任何地方直接调用此函数。也许它在内部某个地方调用它,但这使得调试变得非常困难。我能想到的最好的结果是它与 imagepng() 或 imagecreatefrompng() 有关。

现在我正在前端解决这个问题,我在尝试解析响应之前剥离错误文本。

如果这有点缺乏细节,我很抱歉,但我现在真的不知道还能提供什么。

【问题讨论】:

  • 你能解决这个问题吗?
  • 我不是。在尝试处理结构化数据之前,我只能通过从前端的响应中剥离文本来解决它

标签: php php-7.1


【解决方案1】:

我收到这条消息(PHP 7.2.3 + GD):

libpng warning: Interlace handling should be turned on when using png_read_image

还有一些人

libpng warning: tRNS: invalid with alpha channel

libpng warning: iCCP: known incorrect sRGB profile

我的代码正在将来自不同来源(然后是不同质量)的 png 图像合并到一张图像中,在使用 Photoshop 处理一些图片后,消息消失了,但似乎有一种解决方法,请参阅下面的说明:

http://php.net/manual/en/function.imageinterlace.php

【讨论】:

  • 您好,我对您的情况并不完全清楚...您有时会遇到同样的问题,并且您有记录的解决方法。解决方法在您的环境中有效吗?
猜你喜欢
  • 2019-10-15
  • 1970-01-01
  • 2012-10-11
  • 2014-03-17
  • 1970-01-01
  • 2014-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多