再求教PNG warning

启动后在缓冲里提示如下: PNG warning: Interlace handling should be turned on when using png_read_image 嗯嗯,这次把全论坛spacemacs主题扫了一遍,确认没找到类似问题,网上也搜不到,真的是没办法了-_-! 补充: 系统:arch版本:比较新 emacs版本:25.1.1 spacemacs:最新 libpng: extra/libpng 1.6.25-1 community/libpng12 1.2.56-4 community/png++ 0.2.9-1 multilib/lib32-libpng 1.6.24-1 multilib/lib32-libpng12 1.2.56-4

呃……stackoverflow大法好

stackoverflow大法似乎也没有明确的解决办法,而且咱水平浅,不知道说的是不是同一种问题。奇怪,莫非大家都没这毛病?

我并不用spacemacs,也从未遇到过这个问题,所以爱莫能助咯 但是,还是想给些建议,比如 这个warning是在启动时出现的?还是在特定的条件下出现的?你的操作系统环境?看stackoverflow上的描述和libpng有一定关系,你的libpng版本? 先试着定位一下问题,水平浅不要怕,多学习就会懂的。

另外,对于一字不差的warning/error,要相信开源软件的作者们不会让它对应太多不同的问题,基本上搜出来的结果都可以作为参考,就算不能解决你的问题,也能涨涨经验

倒是找到几个答案,可惜完全不明白,但还是谢谢了,先对付着用吧,本来想的也就是先让spacemacs没毛病了,用起来后,再慢慢往深里了解。 这小毛病,暂时也看不出有什么影响,就先这么用着吧。

报错应该是来自libPNG的pngread.c这段代码

else { if (png_ptr->interlaced != 0 && (png_ptr->transformations & PNG_INTERLACE) == 0) { /* Caller called png_start_read_image or png_read_update_info without * first turning on the PNG_INTERLACE transform. We can fix this here, * but the caller should do it! / png_warning(png_ptr, "Interlace handling should be turned on when " “using png_read_image”); / Make sure this is set correctly / / Make sure this is set correctly */this is set correctly */

也就是说某个应用调用方式有问题,调用png_read_update_info前应该先调用png_set_interlace_handling判断png的交错性。

所以这个错误依据你使用的场景,比如启动载入的某个插件调用libpng顺序错误,所以提示了这个警告。

解决方法也很简单,找到是哪个程序去读png有问题,查看相应的源码,然后找作者的邮箱发issue告诉他。

1 个赞

也就是说应该是spacemacs中某个插件的问题吧?

我的也出现的这个问题,而且在message里面出现了两次。不知道怎么解决。

把 dotspacemacs-startup-banner 从 official 改为 nil 不加载 logo 图片就可以了(如果真的有强迫症的话)

应该图片格式的问题,转换一下就好了,直接把格式png-24转换为png-8。参考这个问题