tiff tests extracted from t10formats.t
[imager.git] / Changes
1Revision history for Perl extension Imager.
30.01 Thu May 6 15:25:03 1999
4 - original version; created by h2xs 1.18
60.02 Mon May 10 20:20:20 1999
7 - Added PPM writer, and a new return type to
8 be used to return undef() from a function returning
9 (int)0.
110.03 Thu May 20 23:23:23 1999
12 - Added Pseudo image handling thingies, now
13 you can use your own get and put pixel routines.
150.04 Mon May 24 22:14:55 1999
16 - Rewrote parts of jpeg support.
180.05 Tue May 25 23:40:01 1999
19 - Added png support with libpng
20 fixed error reporting and return types from
21 some format routines.
230.06 Wed May 26 19:05:39 1999
24 - Fixed Data::Dumper being used when it shouldn't have
25 added feature checking to see at run time if
26 certain formats are avaliable.
27 removed some ancient C++ style comments that hadn't
28 been properly removed, some out of bounds errors in ppm.c
29 fixed tests so missing features are skipped.
310.07 Thu May 27 03:15:00 1999
32 - Fixed the typemap for i_img and i_color so that you can pass
33 a null pointer to them without getting a warning when warnings
34 are enabled. Maybe this is counter perl but it greatly increases
35 the usability of the functions.
370.08 Fri May 28 14:13:21 1999
38 - Added support for gif via, giflib or libungif.
39 gif is so ridden with patent issues but the user
40 can decide which library to use since they have the same
41 include files and calling interface.
430.09 Mon May 31 17:52:32 1999
44 - Added image scaling per axis - faster than doing both
45 axes at the same time. The current method uses lancoz
46 kernel and filtering. But more types should be added -
47 including: nearest neighbor, linear, and bicubic.
490.10 Mon Jun 7 03:25:54 1999
50 - Added T1 postscript font handling. It's very primitive
51 at the moment but creative people can do nice stuff
52 with it. Currently it is not possible to have it
53 generate an image of the correct size for a given string
54 but that is on the way.
560.11 Mon Jun 7 14:43:35 1999
57 - Added T1 features for direct to image rendering in
58 a single color. fixed some debug messages going to
59 stderr instead of a log file.
610.12 Tue Jun 8 02:58:43 1999
62 - Fixed bugs in jpeg.c when loading images. Also specified
63 prototype behaviour to on in the Imager.xs file. The
64 Makefile.PL step doesn't complain anymore so that is
65 hopefully fixed.
670.13 Wed Jun 9 06:55:58 1999
68 - Fixed Imager.xs for init_log call. Minor fixes here
69 and there.
710.14 Thu Jun 10 14:11:22 1999
72 - Rewrote most of the logging stuff so that it is now
73 possible to remove all logging from the XS part of the
74 module. Also some primitive check of memory usage was
75 added. Claes Jacobsson sent in some filters, inverter,
76 contrast and a noise filter.
780.15 Mon Jun 14 08:13:29 1999
79 - Wrote minor enhancement on the calling syntax list.
80 Started on the object interface - added better support
81 for quering avaliable filetypes. Fixed memory leaks in
82 most loaders. New filters from Claes in this version
83 are bumpmap, postlevels and mosaic.
850.16 Wed Jun 16 20:54:33 1999
86 - Added fixes to the BEGIN and END parts, added writer
87 function for the OO interface. Also added basic IPTC
88 reading support for jpegs. Also a few filters have been
89 added to the OO interface.
910.17 Thu Jun 24 11:09:15 1999
92 - Added dynamic loading stuff - It's still missing a nice
93 global symbol table. This will be fixed in next release.
94 also calling the plugins is not all to easy at the moment.
970.18 Mon Jun 28 12:31:33 1999
98 - Added global symbol table - plugins now need a symbol
99 table pointer in them. When the module is loaded it is
100 set to point at the global symbol table. Also some barebones
101 Makefile.PL has been made in the dynfilt directory - it works
102 on my system - I hope it does on yours.
1050.19 Fri Jul 1 15:00:03 1999
106 - Added a way new scaling method for creating easy previews.
107 It only uses nearest neighbor, so it's doesn't look very nice
108 but it may be better for applications like remote sensing.
1100.20 Mon Jul 5 10:15:37 1999
111 - Added and rewrote documentation.
1130.21 Mon Jul 6 19:15:37 1999
114 - Fixed a bug in the scaling routine - it wasn't
115 handling 0< cases.
1170.22 Sat Oct 9 07:04:14 1999
118 - Added a new method to write gif images - now
119 it is possible to have a part of a palette fixed.
120 this is very usefull if one needs to make sure that
121 some color like white is in the pallete. This method
122 also allows some ditherding and gives better colormap
123 than the mediancut from the gif libraries. It does
124 need much more cpu power though. Hopefully later versions
125 will be faster.
1270.23 **************** Internal release only
128 - Fixed the %instances bug - caused ALL memory to be leaked.
129 Added real noise function - need feedback on how it should
130 be used. Also box(), and polyline are now in place. Polygon
131 is missing but antialiased line drawing with integer endpoints are
132 done but should be replaced with a version that can have
133 floating point endvalues. Two noise filters addded.
1350.24 **************** Internal release only
136 - Converted i_color into an object from a reference, so now it's
137 giving an object instead of a void ptr or an integer or something.
1390.25 **************** Internal release only
140 - Added basic Truetype functionality - still needs a rewrite
141 to be decent. Currently it's a port of a demo program that
142 uses an awful amount of global variables and there is much IO since
143 no caching of glyphs is done.
1450.26 Tue Nov 23 03:57:00 1999 > Development release <
146 - Added transformations so that an image can be wrapped.
147 To achive decent speed a C based stackmachine is included. As a result
148 transformations need to be specified in rpn (postfix) notation. It
149 also can use the Affix::Infix2Postfix class to do the conversion for it.
1510.27 Tue Dec 28 03:57:00 1999 > CPAN release <
152 - This is a bugfix version mostly, thanks to claes for pointing
153 out the problems - fixed palette saving wasn't working correctly after
154 version 0.24 - rather surprised this didn't crash everything.
155 Also fixed that for t1 fonts the bounding box wasn't being reported
156 unless the font had been used before. This is either a bug in t1lib
157 or a mistake in it's documentation. Another lingering bug since 0.24
158 what that $img->box() wasn't creating it's default color properly.
159 Added i_tt_text() method and more debuging to the truetype routines.
160 truetype testcase fixed and old debug rubish removed.
1620.28 Tue Jan 4 05:25:58 2000 > CPAN release <
163 - Only fixes to truetype test and transformation tests.
164 Thanks to schinder of cpan testers for testing and reporting.
1660.29 Tue Jan 4 21:49:57 2000 > CPAN release <
167 - fixes to get rid of warnings under pre 5.005,
168 Fixed broken preproccessor directives to work on non gnu
169 compilers. Fixed DSO test on HPUX - both code errors and
170 HPUX creates .sl instead of .so so the tests were failing.
1720.30 Sun Jan 7 05:00:06 2000 > Bunch of Alpha releases <
173 - An attempt to automate installation.
1750.31 Sat Jan 15 03:58:29 2000 > Fixes fixes fixes <
176 - Fixed a bug pointed out by Leolo where loading gifs
177 skips the first line of the imageload() has been
178 by read() - for now load is an alias for read. It will
179 be removed in the future. Also, fixes dynamic loading on
180 systems that prepend an underscore to symbols. At the present
181 the only system that I know of that needs this is OpenBSD.
183 Added getchannels() method ( How did I manage to delay this
184 untill now ). Some document changes but nothing substantial.
185 Also fixed the png read/write routines to handle all colorspaces
186 and images with alpha information. Also now it's possible to
187 have Imager guess the format of the files to load or save
188 when passing files to read or save from the filename.
189 Also all of the tests except dynamic loading now pass on OS/2.
1910.32 Tue Feb 29 17:26:00 2000 CPAN RELEASE
192 - Added the getcolorcount method. Fixed interlace handling
193 on png images. Fixed the missing channel count in crop()
194 method. Rewrote most of t1lib database stuff - created color
195 and font classes. T1 stuff is mostly done - TT things were
196 rewritten too and now include most of what is needed for
197 pixmap caching. Added documentation for fonts. Comments have
198 been added to some of the relevant c-routines. Added a copy()
199 function in Imager.xs and a corresponding method name.
200 Changed the underlying data type for the raw XS images from
201 pointers to objects - this will hopefully catch the most
202 basic errors and keep the segfaulting down. This means that
203 all of the underlying XS calls for readjpeg, readgif, readpng
204 and readraw do not take the first parameter any more.
205 Made fixes to keep it not spewing warning on 5.004 perl.
207 **** If you had any code that didn't use the OO interface ****
208 **** It will probably not work any longer ****
2100.33 Beta -- No final
211 - Fixed the end message from Imager 0.32. Destroy called
212 on an empty image. Did some work on the polygon method.
213 Some clean up in the Makefile.PL script. Fixed a buffer
214 overrun in the t_transform in Imager.XS. Fixed the
215 error handling in the jpeg loader. It now correctly
216 returns undef if a load on an image fails. It also
217 sends the error messages to the log file. Added errstr()
218 method to the image object. Added a new way to read()
219 objects from scalars. So far this is only implemented for
220 jpeg, png and gif. ppm and raw soon - as always if someone
221 wants to do an overhaul on the ppm stuff feel free. It seems
222 like such a basic format that interfacing with a library is more
223 work than implementing all of the needed routines instead.
2250.34 Beta -- No final
226 - Bunch of documentation fixes, backed out ppm code.
227 Put in TonyC's giant transform2 patch. Fixed the patch
228 to make it ansi compliant. Fixed a bunch of bugs in the
229 Freetype code with regard to vertical and horizontal
230 positioning and bounding boxes. Cleaned up a lot of the
231 code so it runs under -Wall. Code that is still in
232 development such as the polygon converter do not compile
233 cleanly. Fixed the non antialiased versions of truetype
234 dump to image routines. Also removed the FIXME for the
235 hardcoding of antialias in the Imager string method.
236 Fixed sign error and a missing cache of the bounding box
237 calculation for the rasterize function. Removed some
238 debugging code I forgot to remove. Added iolayer.h
239 and iolayer.c but they don't do anything for now.
2410.35 pre2 -- No time yet
242 - Fixed some compile warnings for various files under -Wall.
243 Added functionality for jpeg reading of seekable files, it's not
244 really working yet. This version is pretty much *not* working.
245 Do not install unless you intend to do a lot of development.
246 Repeat - it doesn't even pass tests (but it compiles). Ok now reading
247 jpegs works from scalars, my guess is that it also works from non
248 seeking sources such as sockets or pipes.
2500.35 pre3 - No time yet
251 - Added the *right* patch from Tony which combines
252 the common code from i_readgif and i_readgif_scalar into
253 i_readgif_low. Added tiff reading support through iolayer.
2550.35 pre4 - No time yet
256 - Added tiff writing (no options) support through
257 iolayer. Also made some small fixes for the iolayer reading
258 (was always doing two reads when one was needed). Patched the
259 Imager::read() call so that it now uses a mixture of old and new
260 functions.
2620.35 pre5 - No time yet
263 - Fixed various gnu'isms in the c code (some bugs in the link list
264 implmentation). Fixed missing #skip codes when gif format is not
265 present in any form. Added fixes for 5.004_04 in the transform2 function.
266 Made sure it compiles cleanly with sun's cc. Switched from a .jpeg
267 for transform2 check to a .ppm file so it runs when jpeg is not
268 present. Added a test for tiff files in t10formats.t.
2710.35 pre6 - No time yet
272 - Fixes to Makefile.PL. Should find freetype includes on more
273 distributions now. Ran tests on Solaris and Hpux, minor fixes.
274 Compiles with some warnings on with both hpux and solaris' cc.
275 Made some minor changes to the documentation. Fixes to tiff.c log
276 code.
2780.35 pre7 - No time yet
279 - Fixes 64 bit bug on freebsd. While libtiff mirrors the effects of
280 lseek it's toff_t is a uint32, while lseek uses off_t which can be a 64
281 bit quantity. Added the IM_LFLAGS environment variable to help
282 people with broken libgifs (that want to link with X).
2840.35 Sun Jan 28 19:42:59 EST 2001
285 - More makefile fixes, fixed a few signedness warnings.
286 Checked to see if it compiled cleanly on Solaris and HPUX.
287 Fixed a 5.004_04 warning and added more ENV flags for makefile.
2890.36 Mon Jan 29 09:36:11 EST 2001
290 - String as 0 or "" caused an error in $img->string(). Fixed a
291 documentation error invoving string() method syntax. Merged a patch
292 for non antialised truetype fonts. Fixed an error in the Makefile.PL
293 which caused a makefile to be generated that bombed with sgi's make.
2950.37 Mon Tue 30 09:36:11 EST 2001
296 - Several documentation fixes. Pod documentation for almost every
297 function in image.c. Added sys/types.h include in iolayer which was
298 causing problems on various linux systems.
3000.38 pre1 - No time yet
301 - Fixed a braindamaged fix on the Makefile.PL file. Moved the
302 code for Imager::Color into lib/Imager/Color.pm. Wrote some pod
303 about how it works. Made the names of Imager::Color XS routines
304 all begin with ICL_ and used the prefix rules of XS to get nice names
305 in perl. Found a bug (not fixed) in how XS handles
306 returning an object to an object it had as a parameter (double
307 free).
3090.38 pre2 - No time yet
310 - Fixes lots of for documentation, patch for freetype bounding
311 box handling. Split put code for Imager::Font into Font.pm and added
312 more documentation for Font.pm. Added string local ascender and
313 descender for tt fonts. Note that this needs to be added to t1 fonts
314 before 0.38 final.
3160.38 pre3 - No time yet
317 - Fixed an in consistency in the bounding box functions for t1
318 fonts. Now both versions get the 6 argument bounding_box method
319 described in Imager::Font. Started converting the comments in
320 font.c so that they are viewable by doco.perl. Added two examples
321 of filters. Need to make them more usefull and then add more
322 notes than are in compile.txt.
3250.38 pre4 - No time yet
326 - Completed adding pod comments to font.c, tiff.c and iolayer.c.
327 Those along with image.c should now have every single function
328 described in pod format.
3300.38 pre5 - No time yet
331 - Replaced ppm.c with pnm.c which adds support for pbm/pgm/ppm
332 files ascii and binary formats. Added patches for the gif routines.
333 Patched some of the color quantizing routines (Leolo and TonyC).
334 There is one bomb and one warning in this test, and frankly I don't
335 see why they are suddenly there.
3370.38 pre6 - No time yet
338 - Patch from Tony that fixes infix when Parse::RecDescent is present.
339 Checked some cases where malloc/free were used instead of mymalloc/myfree.
340 Added bufchain iolayer code. You can now write to a chain of buffers and
341 later slurp it all into a single perl scalar. Found some oddity of t/t10
342 test not giving the right return value when malloc debugging was enabled.
343 Fixed some of the logging code and the malloc debugging options. Added
344 more tests for tiffs.
3460.38 pre7 - No time yet
347 - Added i_gradgen code and put it into the filters hash. Think a
348 seperate pod for filters would be a good idea. Also removed some of the
349 debugging code from the iolayer. Added pod comments to filters.c and
350 looked over the code.
3520.38 pre8 - No time yet
353 - limited Win32 support, Imager installs and builds using VC++,
354 but there's no image/font format support yet.
3560.38 pre9 - No time yet
357 - Added lots of color quantization code from Tony with benchmarks.
358 Also fixes ugly stack overrun in old version. Added fixes for the lmfixed
359 problem. Four of them, let's see which is fastest. This version adds
360 some voronoi partitioning - it's dog slow but it's a reference implementation
361 to check if faster algorithms are doing the right thing [tm]. Added a check
362 for giflib 3.
363 - Win32 support for libpng
364 - fixed set_internal creating 2 refs to one object
22741fb5 365 - Win32 support for jpeg
24079794 366 - Win32 support for tiff
367 - base level error reporting code added, I still need to modify
368 older code to use it
369 - fix translate=>'giflib' handling of single-colour images.
370 Previously a single colour image would cause an error in
371 MakeMapObject().
372 - fix t/t10formats.t tests against giflib3
373 - added test for transparent gifs
374 - minor doc fixes for transparent gifs
375 - make it less error-prone to write transparent gifs
378~~~~~~~~~~~~~^ ^ ^~~~~~~~~~~~~~
3810.40 TODO list
382 iolayer:
383 - Add scalar/mmap to iolayer
384 - Add close() code to iolayer
385 - Merge callback interface into iolayer
386 - Add interface for writing to all formats but tiff
387 - Add interface for reading for png (started),
388 gif (merge with cb patch), ppm and raw
389 - Add make new tests once all formats support io_layer
390 - Implment the maxread threshold (Indicates how far
391 a library can read before it indicates that it's done).
393 MultiImage & metadata support:
394 - Figure what interface should be between C and perl?
395 - How to store data in the C interface for tags/metadata?
397 Old sins:
398 - Make sure everything is doable with the OO interface
399 - Split the other classes into seperate files
400 - Compile with memory debugging enabled and fix leaks
401 - Check if hashbox code is choosing the wrong closest color
7d861e83 402 - dynaload.c is strongly tied to perl
404 Documentation:
405 - Add to the documentation
406 - Write a tutorial?
407 - Write a guide to installing the helper libraries
408 - Go through the entire project and add comments in pod
409 so doco.perl can be used to read them.
413 For latest versions check the Imager-devel pages:
414 http://www.eecs.umich.edu/~addi/perl/Imager/devel/