diff options
Diffstat (limited to 'libraries/irrlicht-1.8/source/Irrlicht/libpng/contrib/pngminus/README')
-rw-r--r-- | libraries/irrlicht-1.8/source/Irrlicht/libpng/contrib/pngminus/README | 306 |
1 files changed, 153 insertions, 153 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/libpng/contrib/pngminus/README b/libraries/irrlicht-1.8/source/Irrlicht/libpng/contrib/pngminus/README index b0516ec..bbe7407 100644 --- a/libraries/irrlicht-1.8/source/Irrlicht/libpng/contrib/pngminus/README +++ b/libraries/irrlicht-1.8/source/Irrlicht/libpng/contrib/pngminus/README | |||
@@ -1,153 +1,153 @@ | |||
1 | PngMinus | 1 | PngMinus |
2 | -------- | 2 | -------- |
3 | (copyright Willem van Schaik, 1999) | 3 | (copyright Willem van Schaik, 1999) |
4 | 4 | ||
5 | 5 | ||
6 | License | 6 | License |
7 | ------- | 7 | ------- |
8 | 8 | ||
9 | Permission to use, copy, modify, and distribute this software and | 9 | Permission to use, copy, modify, and distribute this software and |
10 | its documentation for any purpose and without fee is hereby granted, | 10 | its documentation for any purpose and without fee is hereby granted, |
11 | provided that the above copyright notice appear in all copies and | 11 | provided that the above copyright notice appear in all copies and |
12 | that both that copyright notice and this permission notice appear in | 12 | that both that copyright notice and this permission notice appear in |
13 | supporting documentation. This software is provided "as is" without | 13 | supporting documentation. This software is provided "as is" without |
14 | express or implied warranty. | 14 | express or implied warranty. |
15 | 15 | ||
16 | 16 | ||
17 | Some history | 17 | Some history |
18 | ------------ | 18 | ------------ |
19 | Soon after the creation of PNG in 1995, the need was felt for a set of | 19 | Soon after the creation of PNG in 1995, the need was felt for a set of |
20 | pnmtopng / pngtopnm utilities. Independantly Alexander Lehmann and I | 20 | pnmtopng / pngtopnm utilities. Independantly Alexander Lehmann and I |
21 | (Willem van Schaik) started such a project. Luckily we discovered this | 21 | (Willem van Schaik) started such a project. Luckily we discovered this |
22 | and merged the two together into pnmtopng.tar.gz, which is available | 22 | and merged the two together into pnmtopng.tar.gz, which is available |
23 | from a/o ftp://ftp.simplesystems.org/pub/libpng/png/. | 23 | from a/o ftp://ftp.simplesystems.org/pub/libpng/png/. |
24 | 24 | ||
25 | These two utilities have many, many options and make use of most of the | 25 | These two utilities have many, many options and make use of most of the |
26 | features of PNG, like gamma, alpha, sbit, text-chunks, etc. This makes | 26 | features of PNG, like gamma, alpha, sbit, text-chunks, etc. This makes |
27 | the utilities quite complex and by now not anymore very maintainable. | 27 | the utilities quite complex and by now not anymore very maintainable. |
28 | When we wrote these programs, libpng was still in an early stage. | 28 | When we wrote these programs, libpng was still in an early stage. |
29 | Therefore, lots of the functionality that we put in our software can now | 29 | Therefore, lots of the functionality that we put in our software can now |
30 | be done using transform-functions in libpng. | 30 | be done using transform-functions in libpng. |
31 | 31 | ||
32 | Finally, to compile these programs, you need to have installed and | 32 | Finally, to compile these programs, you need to have installed and |
33 | compiled three libraries: libpng, zlib and netpbm. Especially the latter | 33 | compiled three libraries: libpng, zlib and netpbm. Especially the latter |
34 | makes the whole setup a bit bulky. But that's unavoidable given the many | 34 | makes the whole setup a bit bulky. But that's unavoidable given the many |
35 | features of pnmtopng. | 35 | features of pnmtopng. |
36 | 36 | ||
37 | 37 | ||
38 | What now | 38 | What now |
39 | -------- | 39 | -------- |
40 | At this moment libpng is in a very stable state and can do much of the | 40 | At this moment libpng is in a very stable state and can do much of the |
41 | work done in pnmtopng. Also, pnmtopng needs to be upgraded to the new | 41 | work done in pnmtopng. Also, pnmtopng needs to be upgraded to the new |
42 | interface of libpng. Hence, it is time for a rewrite from the ground up | 42 | interface of libpng. Hence, it is time for a rewrite from the ground up |
43 | of pnmtopng and pngtopnm. This will happen in the near future (stay | 43 | of pnmtopng and pngtopnm. This will happen in the near future (stay |
44 | tuned). The new package will get a different name to distinguish it from | 44 | tuned). The new package will get a different name to distinguish it from |
45 | the old one: PngPlus. | 45 | the old one: PngPlus. |
46 | 46 | ||
47 | To experiment a bit with the new interface of libpng, I started off with | 47 | To experiment a bit with the new interface of libpng, I started off with |
48 | a small prototype that contains only the basic functionality. It doesn't | 48 | a small prototype that contains only the basic functionality. It doesn't |
49 | have any of the options to read or write special chunks and it will do | 49 | have any of the options to read or write special chunks and it will do |
50 | no gamma correction. But this makes it also a simple program that is | 50 | no gamma correction. But this makes it also a simple program that is |
51 | quite easy to understand and can serve well as a template for other | 51 | quite easy to understand and can serve well as a template for other |
52 | software developments. (By now there are of course a couple of programs, | 52 | software developments. (By now there are of course a couple of programs, |
53 | like Greg Roelofs' rpng/wpng, that can be used just as good.) | 53 | like Greg Roelofs' rpng/wpng, that can be used just as good.) |
54 | 54 | ||
55 | 55 | ||
56 | Can and can not | 56 | Can and can not |
57 | --------------- | 57 | --------------- |
58 | As this is the small brother of the future PngPlus, I called this fellow | 58 | As this is the small brother of the future PngPlus, I called this fellow |
59 | PngMinus. Because I started this development in good-old Turbo-C, I | 59 | PngMinus. Because I started this development in good-old Turbo-C, I |
60 | avoided the use the netpbm library, which requires DOS extenders. Again, | 60 | avoided the use the netpbm library, which requires DOS extenders. Again, |
61 | another reason to call it PngMinus (minus netpbm :-). So, part of the | 61 | another reason to call it PngMinus (minus netpbm :-). So, part of the |
62 | program are some elementary routines to read / write pgm- and ppm-files. | 62 | program are some elementary routines to read / write pgm- and ppm-files. |
63 | It does not read b&w pbm-files. | 63 | It does not read b&w pbm-files. |
64 | 64 | ||
65 | The downside of this approach is that you can not use them on images | 65 | The downside of this approach is that you can not use them on images |
66 | that require blocks of memory bigger than 64k (the DOS version). For | 66 | that require blocks of memory bigger than 64k (the DOS version). For |
67 | larger images you will get an out-of-memory error. | 67 | larger images you will get an out-of-memory error. |
68 | 68 | ||
69 | As said before, PngMinus doesn't correct for gamma. When reading | 69 | As said before, PngMinus doesn't correct for gamma. When reading |
70 | png-files you can do this just as well by piping the output of png2pnm | 70 | png-files you can do this just as well by piping the output of png2pnm |
71 | to pnmgamma, one of the standard PbmPlus tools. This same scenario will | 71 | to pnmgamma, one of the standard PbmPlus tools. This same scenario will |
72 | most probably also be followed in the full-blown future PngPlus, with | 72 | most probably also be followed in the full-blown future PngPlus, with |
73 | the addition of course of the possibility to create gamma-chunks when | 73 | the addition of course of the possibility to create gamma-chunks when |
74 | writing png-files. | 74 | writing png-files. |
75 | 75 | ||
76 | On the other hand it supports alpha-channels. When reading a png-image | 76 | On the other hand it supports alpha-channels. When reading a png-image |
77 | you can write the alpha-channel into a pgm-file. And when creating an | 77 | you can write the alpha-channel into a pgm-file. And when creating an |
78 | RGB+A png-image, you just combine a ppm-file with a corresponding | 78 | RGB+A png-image, you just combine a ppm-file with a corresponding |
79 | pgm-file containing the alpha-channel. When reading, transparency chunks | 79 | pgm-file containing the alpha-channel. When reading, transparency chunks |
80 | are converted into an alpha-channel and from there on treated the same | 80 | are converted into an alpha-channel and from there on treated the same |
81 | way. | 81 | way. |
82 | 82 | ||
83 | Finally you can opt for writing ascii or binary pgm- and ppm-files. When | 83 | Finally you can opt for writing ascii or binary pgm- and ppm-files. When |
84 | the bit-depth is 16, the format will always be ascii. | 84 | the bit-depth is 16, the format will always be ascii. |
85 | 85 | ||
86 | 86 | ||
87 | Using it | 87 | Using it |
88 | -------- | 88 | -------- |
89 | To distinguish them from pnmtopng and PngPlus, the utilities are named | 89 | To distinguish them from pnmtopng and PngPlus, the utilities are named |
90 | png2pnm and pnm2png (2 instead of to). The input- and output-files can | 90 | png2pnm and pnm2png (2 instead of to). The input- and output-files can |
91 | be given as parameters or through redirection. Therefore the programs | 91 | be given as parameters or through redirection. Therefore the programs |
92 | can be part of a pipe. | 92 | can be part of a pipe. |
93 | 93 | ||
94 | To list the options type "png2pnm -h" or "pnm2png -h". | 94 | To list the options type "png2pnm -h" or "pnm2png -h". |
95 | 95 | ||
96 | 96 | ||
97 | Just like Scandinavian furniture | 97 | Just like Scandinavian furniture |
98 | -------------------------------- | 98 | -------------------------------- |
99 | You have to put it together yourself. I did test the software under | 99 | You have to put it together yourself. I did test the software under |
100 | MS-DOS with Turbo-C 3.0 and under RedHat Linux 4.2 with gcc. In both | 100 | MS-DOS with Turbo-C 3.0 and under RedHat Linux 4.2 with gcc. In both |
101 | cases I used libpng-1.0.4 and zlib-1.1.3. Later versions should be OK, | 101 | cases I used libpng-1.0.4 and zlib-1.1.3. Later versions should be OK, |
102 | however some older libpng versions have a bug in pngmem.c when using | 102 | however some older libpng versions have a bug in pngmem.c when using |
103 | Turbo-C 3.0 (see below). | 103 | Turbo-C 3.0 (see below). |
104 | 104 | ||
105 | You can build it using one of the two makefiles (make -f makefile.###) | 105 | You can build it using one of the two makefiles (make -f makefile.###) |
106 | or use the batch/script files pngminus.bat / pngminus.sh. This assumes | 106 | or use the batch/script files pngminus.bat / pngminus.sh. This assumes |
107 | that you have built the libraries in ../libpng and ../zlib. Using Linux, | 107 | that you have built the libraries in ../libpng and ../zlib. Using Linux, |
108 | make sure that you have built libpng with makefile.std and not | 108 | make sure that you have built libpng with makefile.std and not |
109 | makefile.linux (also called .lnx in earlier versions of libpng). The | 109 | makefile.linux (also called .lnx in earlier versions of libpng). The |
110 | latter creates a .so shared-library, while the PngMinus makefile assumes | 110 | latter creates a .so shared-library, while the PngMinus makefile assumes |
111 | a normal .a static library. | 111 | a normal .a static library. |
112 | 112 | ||
113 | If you create a ../pngsuite directory and then store the basn####.png | 113 | If you create a ../pngsuite directory and then store the basn####.png |
114 | files from PngSuite (http://www.schaik.com/pngsuite/) in there, you can | 114 | files from PngSuite (http://www.schaik.com/pngsuite/) in there, you can |
115 | test in one go the proper functioning of PngMinus, see png2pnm.bat and | 115 | test in one go the proper functioning of PngMinus, see png2pnm.bat and |
116 | pnm2png.bat (or the .sh versions). | 116 | pnm2png.bat (or the .sh versions). |
117 | 117 | ||
118 | 118 | ||
119 | Warranty | 119 | Warranty |
120 | ------- | 120 | ------- |
121 | Please, remember that this was just a small experiment to learn a few | 121 | Please, remember that this was just a small experiment to learn a few |
122 | things. It will have many unforeseen features <vbg>. Who said bugs? Use | 122 | things. It will have many unforeseen features <vbg>. Who said bugs? Use |
123 | it when you are in need for something simple or when you want to start | 123 | it when you are in need for something simple or when you want to start |
124 | developing your own stuff. | 124 | developing your own stuff. |
125 | 125 | ||
126 | 126 | ||
127 | The Turbo bug | 127 | The Turbo bug |
128 | ------------- | 128 | ------------- |
129 | ** pngmem.old | 129 | ** pngmem.old |
130 | hptr = (png_byte huge *)((long)(hptr) & 0xfffffff0L); | 130 | hptr = (png_byte huge *)((long)(hptr) & 0xfffffff0L); |
131 | hptr += 16L; | 131 | hptr += 16L; |
132 | ** pngmem.c | 132 | ** pngmem.c |
133 | hptr = (png_byte huge *)((long)(hptr) & 0xfffffff0L); | 133 | hptr = (png_byte huge *)((long)(hptr) & 0xfffffff0L); |
134 | hptr = hptr + 16L; | 134 | hptr = hptr + 16L; |
135 | ** | 135 | ** |
136 | 136 | ||
137 | ** pngmem.old | 137 | ** pngmem.old |
138 | png_ptr->offset_table_ptr[i] = (png_bytep)hptr; | 138 | png_ptr->offset_table_ptr[i] = (png_bytep)hptr; |
139 | hptr += (png_uint_32)65536L; | 139 | hptr += (png_uint_32)65536L; |
140 | ** pngmem.c | 140 | ** pngmem.c |
141 | png_ptr->offset_table_ptr[i] = (png_bytep)hptr; | 141 | png_ptr->offset_table_ptr[i] = (png_bytep)hptr; |
142 | hptr = hptr + 65536L; | 142 | hptr = hptr + 65536L; |
143 | ** | 143 | ** |
144 | 144 | ||
145 | 145 | ||
146 | The end | 146 | The end |
147 | ------- | 147 | ------- |
148 | Willem van Schaik | 148 | Willem van Schaik |
149 | mailto:willem@schaik.com | 149 | mailto:willem@schaik.com |
150 | http://www.schaik.com/png/ | 150 | http://www.schaik.com/png/ |
151 | ------- | 151 | ------- |
152 | Oct 1999 | 152 | Oct 1999 |
153 | 153 | ||