73 lines
3.7 KiB
Plaintext
73 lines
3.7 KiB
Plaintext
pngcheck version 2.3.0 of 7 July 2007
|
|
|
|
This version adds a new ANSI-colorized-output option (probably optimized for
|
|
dark-background xterms) and more informative output for interlaced images,
|
|
such as:
|
|
|
|
chunk IDAT at offset 0x000e1, length 8119
|
|
zlib: deflated, 32K window, default compression
|
|
rows per pass: 9, 9, 9, 18, 17, 35, 34 // new summary line
|
|
row filters (0 none, 1 sub, 2 up, 3 avg, 4 paeth):
|
|
0 0 2 4 2 2 4 0 0 | 0 0 3 1 4 4 2 0 2 | 0 4 2 2 2 // vertical bars
|
|
2 2 0 0 | 0 0 2 2 2 2 2 2 2 2 2 2 2 2 4 2 0 0 | 0 // separate passes
|
|
1 4 1 4 4 1 2 2 2 2 2 1 4 2 1 1 | 0 0 0 4 3 2 4 2
|
|
4 2 4 1 2 4 2 2 2 2 2 4 2 2 2 2 2 2 2 4 2 2 2 4 4
|
|
4 0 | 0 0 4 4 3 1 4 4 4 4 4 1 1 4 4 3 2 2 3 3 2 3
|
|
3 3 1 4 1 4 2 4 4 1 3 1 (131 out of 131)
|
|
|
|
It also detects two more of the warning/error cases in brokensuite-20061204,
|
|
bringing the total to 112 of the 114 files, and it fixes some minor problems
|
|
with the output of some of the other cases. In addition, pngsplit now sup-
|
|
ports MNG and JNG files, as originally claimed but not actually implemented
|
|
(oops...).
|
|
|
|
Here's a list of the major enhancements since version 1.98, which was the
|
|
last release before I took over maintenance:
|
|
|
|
- zlib support (to test the compressed stream and, optionally, to print
|
|
out the image's row filters)
|
|
- support for all remaining known PNG chunks (conformance)
|
|
- complete support for all known MNG and JNG chunks (informational)
|
|
- extended support for printing palettes (includes transparency info and
|
|
histograms)
|
|
- color support
|
|
- improved error-checking
|
|
- info on the compression factor of the image (expressed as a percentage,
|
|
where 0% is no compression and 100% would be total compression; note that
|
|
this can be negative since it counts PNG's chunk overhead against the
|
|
compression factor)
|
|
- png-fix-IDAT-windowsize utility
|
|
- pngsplit utility
|
|
- compilation support for Win32 (using MSVC), RISC OS, and Amiga
|
|
|
|
There are also many fixes, of course, including ones from Tom Lane, Glenn
|
|
Randers-Pehrson, Tom Zerucha, Paul Matzke, Darren Salt, John Bowler, and
|
|
others. Thanks also to Chris Nokleberg (brokensuite), Tim Pritlove, Bob
|
|
Friesenhahn, the GraalOnline folks, and others for test images. See the
|
|
included CHANGELOG file for the complete, detailed list of who did what.
|
|
|
|
Note that while MNG support is now complete in the sense of covering all
|
|
registered chunk types, there are still numerous error conditions that
|
|
pngcheck won't detect, plus a few non-error conditions that it will flag
|
|
erroneously. Some of those can and will be fixed (particularly the latter
|
|
class), but many of them involve complex interactions between different
|
|
chunk types and would require virtually a full MNG decoder engine, something
|
|
that is unlikely ever to happen in pngcheck. In other words, consider
|
|
pngcheck a handy MNG debugging tool but not a full validator. Use it in
|
|
conjunction with the MNG specification and a libmng-based viewer for best
|
|
results. (PNG support, on the other hand, is pretty solid.) Also use
|
|
zlib 1.2.x for best results--older versions failed to detect a number of
|
|
invalid deflate/zlib conditions, including out-of-range LZ77 distance codes.
|
|
|
|
I still hope to add support for EBCDIC-based systems (and perhaps UTF-16
|
|
and UTF-32-based ones, if there are any for which "char" defaults to more
|
|
than 8 bits) someday, and the zlib support should be extended to include
|
|
zTXt, iTXt, iCCP, etc. The code could also do a better job with chunks
|
|
whose data exceed the buffer size; and in general, immense if-else blocks
|
|
(e.g., > 3000 lines) are fairly nasty and should be rewritten. Someday...
|
|
|
|
As always, see http://www.libpng.org/pub/png/apps/pngcheck.html for updates.
|
|
|
|
Greg Roelofs
|
|
http://pobox.com/~newt/greg_contact.html
|