pngtastic
pngtastic copied to clipboard
PNGCheck Error
Output of PNGCheck:
File: ..\..\OneDrive\Desktop\elephant.png (379013 bytes) ..\..\OneDrive\Desktop\elephant.png: invalid chunk name "" (00 00 00 00) ..\..\OneDrive\Desktop\elephant.png illegal (unless recently approved) unknown, public chunk ..\..\OneDrive\Desktop\elephant.png: invalid chunk name "" (00 00 00 00) ..\..\OneDrive\Desktop\elephant.png illegal (unless recently approved) unknown, public chunk ..\..\OneDrive\Desktop\elephant.png: invalid chunk name "" (00 00 00 00) ..\..\OneDrive\Desktop\elephant.png illegal (unless recently approved) unknown, public chunk ..\..\OneDrive\Desktop\elephant.png: invalid chunk name "" (00 00 00 00) ..\..\OneDrive\Desktop\elephant.png illegal (unless recently approved) unknown, public chunk ..\..\OneDrive\Desktop\elephant.png: invalid chunk name "╥ⁿσ" (ffffffd2 fffffffc ffffffe5 02) ..\..\OneDrive\Desktop\elephant.png illegal reserved-bit-set chunk ╥ⁿσ ..\..\OneDrive\Desktop\elephant.png: invalid chunk name Pb" (15 08 50 62) ..\..\OneDrive\Desktop\elephant.png illegal critical, safe-to-copy chunkPb ..\..\OneDrive\Desktop\elephant.png invalid chunk length (too large) ERROR: ..\..\OneDrive\Desktop\elephant.png
Original file: https://cdn.discordapp.com/attachments/588735889325162496/588954686279909377/elephant.png
Optimized file: https://cdn.discordapp.com/attachments/588735889325162496/588954899363135498/temp.0.2801077039369998-0.3276898964993583elephant.pngout.png
Some decoders fail on the optimized image and I "assume" this is why...
Looks like the original is an apng: https://en.wikipedia.org/wiki/APNG
According to that spec, the first frame follows the regular png spec, and all the other frames of the animation are stored in private ancillary chunks. Pngtastic looks to have optimized the first frame and thrown all the others away, which seems reasonable to me.
The optimized file shows this output from pngcheck for me:
> 18:04:00 fluxcapacitor:~/Downloads$ pngcheck -v temp.0.2801077039369998-0.3276898964993583elephant.pngout.png
zlib warning: different version (expected 1.2.8, using 1.2.11)
File: temp.0.2801077039369998-0.3276898964993583elephant.pngout.png (12008 bytes)
chunk IHDR at offset 0x0000c, length 13
480 x 400 image, 32-bit RGB+alpha, non-interlaced
chunk IDAT at offset 0x00025, length 11951
zlib: deflated, 32K window, maximum compression
chunk IEND at offset 0x02ee0, length 0
No errors detected in temp.0.2801077039369998-0.3276898964993583elephant.pngout.png (3 chunks, 98.4% compression).
I imagine the original file might fail in some decoders (ones that don't support apng), but the optimized file should render (first frame only, no animation) in any png decoder. It renders ok for me in Preview.app on the mac and in Chrome.
Well, for example, the decoder Discord uses fails to load to optimized image(and their decoder does not support apng and it renders first frame fine on original). Though the more I think about it, it could be the compressor used. Maybe its the fact the newer zopfli compression may not be supported so it may be a discord bug... even though its first release was 2013...
Odd, I just tried both the images you posted here in Discord and they both seem to work for me.
Could be a Mac versus PC issue in Discord, but doesn't seem to be a pngtastic bug to me, or at least I can't reproduce it.
Oh, that's interesting! And a bit odd. The zopfli stuff in pngtastic was an outside contribution and I haven't had a chance to dig into it much, but that info could help sort out mysterious issues it has with some images.
On Sat, Jun 15, 2019 at 11:10 AM Moocow9m [email protected] wrote:
After a few tests, the zopfli compression is not compatible with any filters other than NONE and UP. All other filters cause invalid images to be generated(some even cause the image to distort).
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/depsypher/pngtastic/issues/16?email_source=notifications&email_token=AAA3T4QKTGBAAVXPMKUYPWLP2UWBTA5CNFSM4HYESDY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXY5JTY#issuecomment-502387919, or mute the thread https://github.com/notifications/unsubscribe-auth/AAA3T4RZBTSG4GN7RAJTMW3P2UWBTANCNFSM4HYESDYQ .
Should native code be reintroduced as optional(either build-time or run-time setting) until the pure java impl is stable? I plan to pull the last commit where native code was still in use and see if the issue is still present tomorrow. Also, mac 's discord png code works with the image? That is quite interesting.
After testing, native code ran successfully and loaded by discord perfectly.