diff options
Diffstat (limited to 'libpng/contrib/pngminus/README.txt')
-rw-r--r-- | libpng/contrib/pngminus/README.txt | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/libpng/contrib/pngminus/README.txt b/libpng/contrib/pngminus/README.txt new file mode 100644 index 00000000..f7f6ecb3 --- /dev/null +++ b/libpng/contrib/pngminus/README.txt @@ -0,0 +1,120 @@ +PngMinus +-------- +(copyright Willem van Schaik, 1999-2019) + + + +Some history +------------ +Soon after the creation of PNG in 1995, the need was felt for a set of +pnmtopng / pngtopnm utilities. Independently Alexander Lehmann and I +(Willem van Schaik) started such a project. Luckily we discovered this +and merged the two, which later became part of NetPBM, available from +SourceForge. + +These two utilities have many, many options and make use of most of the +features of PNG, like gamma, alpha, sbit, text-chunks, etc. This makes +the utilities quite complex and by now not anymore very maintainable. +When we wrote these programs, libpng was still in an early stage. +Therefore, lots of the functionality that we put in our software can now +be done using transform-functions in libpng. + +Finally, to compile these programs, you need to have installed and +compiled three libraries: libpng, zlib and netpbm. Especially the latter +makes the whole setup a bit bulky. But that's unavoidable given the many +features of pnmtopng. + + +What now (1999) +--------------- +At this moment libpng is in a very stable state and can do much of the +work done in pnmtopng. Also, pnmtopng needs to be upgraded to the new +interface of libpng. Hence, it is time for a rewrite from the ground up +of pnmtopng and pngtopnm. This will happen in the near future (stay +tuned). The new package will get a different name to distinguish it from +the old one: PngPlus. + +To experiment a bit with the new interface of libpng, I started off with +a small prototype that contains only the basic functionality. It doesn't +have any of the options to read or write special chunks and it will do +no gamma correction. But this makes it also a simple program that is +quite easy to understand and can serve well as a template for other +software developments. By now there are of course a couple of programs, +like Greg Roelofs' rpng/wpng, that can be used just as good. + + +Can and can not +--------------- +As this is the small brother of the future PngPlus, I called this fellow +PngMinus. Because I started this development in good-old Turbo-C, I +avoided the use the netpbm library, which requires DOS extenders. Again, +another reason to call it PngMinus (minus netpbm :-). So, part of the +program are some elementary routines to read / write pgm- and ppm-files. +It does not handle B&W pbm-files, but instead you could do pgm with bit- +depth 1. + +The downside of this approach is that you can not use them on images +that require blocks of memory bigger than 64k (the DOS version). For +larger images you will get an out-of-memory error. + +As said before, PngMinus doesn't correct for gamma. When reading +png-files you can do this just as well by piping the output of png2pnm +to pnmgamma, one of the standard PbmPlus tools. This same scenario will +most probably also be followed in the full-blown future PngPlus, with +the addition of course of the possibility to create gamma-chunks when +writing png-files. + +On the other hand it supports alpha-channels. When reading a png-image +you can write the alpha-channel into a pgm-file. And when creating an +RGB+A png-image, you just combine a ppm-file with a corresponding +pgm-file containing the alpha-channel. When reading, transparency chunks +are converted into an alpha-channel and from there on treated the same +way. + +Finally you can opt for writing ascii or binary pgm- and ppm-files. When +the bit-depth is 16, the format will always be ascii. + + +Using it +-------- +To distinguish them from pnmtopng and PngPlus, the utilities are named +png2pnm and pnm2png (2 instead of to). The input- and output-files can +be given as parameters or through redirection. Therefore the programs +can be part of a pipe. + +To list the options type "png2pnm -h" or "pnm2png -h". + + +Just like Scandinavian furniture +-------------------------------- +You have to put it together yourself. I developed the software on MS-DOS +with Turbo-C 3.0 and RedHat Linux 4.2 with gcc. In both cases I used +libpng-1.0.4 and zlib-1.1.3. By now (2019) it is twenty years later and +more current versions are OK. + +The makefile assumes that the libpng libraries can be found in ../.. and +libz in ../../../zlib. But you can change this to for example ../libpng +and ../zlib. The makefile creates two versions of each program, one with +static library support and the other using shared libraries. + +If you create a ../pngsuite directory and then store the basn####.png +files from PngSuite (http://www.schaik.com/pngsuite/) in there, you can +test the proper functioning of PngMinus by running pngminus.sh. + + +Warranty +------- +Please, remember that this was just a small experiment to learn a few +things. It will have many unforeseen features <vbg> ... who said bugs? Use +it when you are in need for something simple or when you want a starting +point for developing your own stuff. + + +The end +------- +Willem van Schaik +mailto:willem at schaik dot com +http://www.schaik.com/png/ + +Oct 1999, Jan 2019 + |