Fixed an overflow bug in png.c where reading images with a palette or
[imager.git] / README
CommitLineData
02d1d628
AMH
1================================================================
2Copyright (c) 1999, 2000 Arnar M. Hrafnkelsson. All rights reserved.
3This program is free software; you can redistribute it and/or
4modify it under the same terms as Perl itself.
5================================================================
6
7>> THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY WHATSOEVER <<
8
9================================================================
10
11
12========================
131. Patent infringements?
14========================
15
16Imager as such contains no patented algorithms. The external
17libraries (which are not written by me) may or may not contain
18patented algorithms. YOU ARE SOLELY RESPONSIBLE FOR OBTAINING
19LICENSE(S) TO USE SUCH LIBRARIES SHOULD YOU NEED ANY.
20
21
22========================
232. Compiling and testing
24========================
25
26Some care has been taken to make the installation as smooth as
27possible. This is rather hard due to the difference between operating
28systems and site setups. To get started just type
29
30$ perl Makefile.PL
31
32It should blurb out a list of which libraries were found and which
33not. If you add a library to the machine after installing Imager it
34does not automatically become available in Imager. It only uses the
35libraries that are found. If the list of found libraries is not what
36you expected, then the Makefile.PL is either not searching in the
37right directories or your box does not have the libraries you think it
38does. For a list of where to get the libraries have a look at
393. External dependencies. To widen the search path for libraries and
40include files set the IM_INCPATH and IM_LIBPATH variables. The
41environment variables that matter when Makefile.PL is run are
42
43IM_INCPATH colon separated list of paths to extra include files
44IM_LIBPATH colon separated list of paths to extra library files
45
46IM_VERBOSE turns on verbose mode for the library scanning and such
47IM_MANUAL to manually select which libraries are used and which not
48IM_NOLOG if true logging will not be compiled into the module
49IM_DEBUG_MALLOC if true malloc debugging will be compiled into the module
50 do not use IM_DEBUG_MALLOC in production - this slows
51 everything down
52
53IM_CFLAGS Extra flags to pass to the compiler
54IM_LFLAGS Extra flags to pass to the linker
55IM_DFLAGS Extra flags to pass to the preprocessor
56
57
58
59When finding the libraries has been sorted out it's time for
60
61$ make
62
63and if that works then do
64
65$ make test
66
67If either fails do take a peek at the file errep.perl. It's creates a
68file report.txt. This is some information which will help me discover
69where the problem is so I can try to fix it in future releases. If
70you find running it ok (just remember - no warranty!) please send the
71report.txt via email to addi@umich.edu .
72
73Troubleshooting tips:
74
75A common problem is that libgif/libungif are sometimes linked to the X
76libraries and then running the tests fails. In that case something
77like:
78
79$ IM_LFLAGS="-L/usr/X11R6/lib -lX11" perl Makefile.PL
80
81Which simply sets the environment variables for the extra libraries
82to include the X libraries (which we do not use at all, but must
83included since libgif has been linked with it).
84
85Also note that libgif has a few bugs: You can run something like
86
87$ perl -Iblib/lib -Iblib/arch t/t10formats.t
88
89This way you can see what comments the test script prints out.
90t/t10formats.t checks for an bug in libgiff and prints out a patch
91if that bug is present, note that this bug only affects the more
92"advanced" features of libgif.
93
94Imager needs to have a fairly recent libtiff installed (we know it
95it runs fine with 3.5.5). In the future we might consider supporting older
96libtiff versions. For now you can either configure Imager manually (by
97setting the IM_MANUAL environment variable to 1, in sh:
98
99$ IM_MANUAL=1 perl Makefile.PL
100
101and simply say no to tiff support when asked if you want it, the same thing
102can be used to circumvent problems in gifs to get Imager going.
103
104
105If it worked just continue with the installation as normally
106(with make install).
107
108========================
1093. External dependencies
110========================
111
112Some hints about getting the Imager module to find the libraries it
113needs for specific features. The libraries it uses are:
114
115 jpeg: ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
116
117 png: ftp://ftp.uu.net/graphics/png
118 you also need zlib to use png: ftp://ftp.uu.net/pub/archiving/zip/zlib
119
120 gif: http://www.arrakeen.demon.co.uk/giflib/
121or at: http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml
122
123 tiff: http://www.libtiff.org/
124
125 t1: ftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/t1lib/
126or at: ftp://sunsite.unc.edu/pub/Linux/libs/graphics/
127
128 tt: http://www.freetype.org/
129
130
131Precompiled versions of some of the libraries might be found at:
132
133AIX:
134 http://www.bull.de/
135 ftp://ftp.rge.com/pub/systems/aix/bull/
136
137
138
139========================
1404. Logging and debugging
141========================
142
143Logging is compiled in by default - if you should want to get of it
144from the binaries you can do so by setting the env IMAGER_NOLOG
145to something. If you want to enable malloc debugging to check for leaks
146then set IMAGER_DEBUG_MALLOC to something. Needless to say it is
147pretty pointless to have malloc debug enabled with no logging since you
148can never see the malloc information that way.
149
150
151========================
1525. Truetype information
153========================
154
155If you enable the truetype part and want it to be TESTED you MUST set
156the environment variable TTFONTTEST to a complete path to a truetype
157font.
158
159
160=================
1616. Win32 Support
162=================
163
164Imager can be installed on Win32 systems. This was ported and tested
7579fa72
TC
165with Microsoft Visual C++ 6.0 with build 623 of ActivePerl. If you
166have the appropriate libraries installed you can read and write PNG,
167TIFF, PPM and JPEG files. There is currently no support for fonts
168under Win32, though it might be preferable to try to use Win32's
169native font support over the external librarie - why force the user to
170install yet another library?
02d1d628
AMH
171
172I haven't tried to target compilers other than VC++, since I don't
173have them installed.
174
175If you have any problems with the Win32 support, please email
176tony@develop-help.com (don't forget to use nmake instead of make).
177
178=======================
1797. General information
180=======================
181
182The Imager module homepage is currently at:
183
184 http://www.eecs.umich.edu/~addi/perl/Imager/
185
186The current docs are rather bad as I've been busy adding features
187but hopefully they will be updated soon. Until then you'll just
188have to use the source. The test scripts might also be a good idea.
189By activating the the #init_log lines in the test script you can get
190rather verbose debugging output from the C code.
191
192
193========================
1948. Thanks
195========================
196
197Thanks go to:
198 Tony Cook ( TonyC )
199 Claes Jacobson ( Claes )
200 Philip Gwyn ( Leolo )
201 Brad Murray ( HalfJack )
202 Nicholas Dronen ( Veblen )
203 Michael G Schwern ( Schwern )
204 Rocco Caputo ( Dngor )
205 Graham barr ( Gbarr )
206 Mark-Jason Dominus ( Mjd )
207 Jerome
208 Jason Alexander ( Jalex )
209 Randal R. Schwartz ( Merlyn )
210 Tkil ( )
211 Artur Bergman ( Sky )
212 Luc St-Louis ( Lucs )
213 PerlJam ( )
214 Roderick Schertler ( Roderick )
215 Nathan Torkington ( gnat )
216
217(and just to play it safe) all those I forgot to mention.