Maybe I was mislead when saying that “a recent update” caused libpng to fail. However, I can say that with an opensuse 12.3 installation having libpng15.so.15, the icons load perfectly.
As to wolfi’s suggestion, I tried to use xv to “transform” the icon - the file size changes somewhat, but the error messages are the same.
Also, following his suggestion, I tried optipng with the -fix and -force options (I dodn’t use -force before), and now indeed the output is changed:
optipng -fix -force -out output_opti.png fileimport.png
** Processing: fileimport.png
16x16 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 8 bits/pixel, 193 colors (75 transparent) in palette
Input IDAT size = 736 bytes
Input file size = 851 bytes
Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 241
zc = 9 zm = 8 zs = 0 f = 5 IDAT size = 236
zc = 9 zm = 8 zs = 1 f = 5 IDAT size = 234
zc = 9 zm = 8 zs = 3 f = 5 IDAT size = 231
Selecting parameters:
zc = 9 zm = 8 zs = 3 f = 5 IDAT size = 231
Output file: output_opti.png
Output IDAT size = 231 bytes (505 bytes decrease)
Output file size = 1019 bytes (168 bytes = 19.74% increase)
However, the new file is also not read into the Qt application. Anyway, both xv and optipng seem to be able to read the *.png quite well.
The icon has been uploaded to URL: http://susepaste.org/51514864
All this leads me to the conclusion that libpng is not the real problem, but rather zlib - remember the first error message is
libpng error: bad parameters to zlib
or whatever calls this (Qt?).
I have experimented with the code (by the way, to answer cmcgrath’s question, I am maintaining some code for an electrochemical simulation package developed here; this was originally written to use Qt3, but later adapted to Qt4) where the problem appears, and I find that the `bad parameters to zlib’ message appears when the icon is read by Qt into the program. The other error messages
libpng error: Invalid IHDR data
appear some time later during the run (I would assume, when the icons are becoming to be displayed).
The zlib version on the opensuse 13.1 system is 1.2.8, while the opensuse 12.3 has zlib 1.2.7.
I guess it would make sense to downgrade zlib on the 13.1 system as a test. However, unfortunately, I will be quite busy with urgent work for a couple of days, and can only do more testing after the other stuff is finished. So, I might be a little slow in answering questions as well.