- added log() and exp() functions to transform2()
[imager.git] / Changes
CommitLineData
02d1d628
AMH
1Revision history for Perl extension Imager.
2
30.01 Thu May 6 15:25:03 1999
fd9f67c1 4 - original version; created by h2xs 1.18
02d1d628
AMH
5
60.02 Mon May 10 20:20:20 1999
7 - Added PPM writer, and a new return type to
fd9f67c1
TC
8 be used to return undef() from a function returning
9 (int)0.
02d1d628
AMH
10
110.03 Thu May 20 23:23:23 1999
12 - Added Pseudo image handling thingies, now
fd9f67c1 13 you can use your own get and put pixel routines.
02d1d628
AMH
14
150.04 Mon May 24 22:14:55 1999
16 - Rewrote parts of jpeg support.
17
180.05 Tue May 25 23:40:01 1999
fd9f67c1
TC
19 - Added png support with libpng
20 fixed error reporting and return types from
21 some format routines.
02d1d628
AMH
22
230.06 Wed May 26 19:05:39 1999
24 - Fixed Data::Dumper being used when it shouldn't have
fd9f67c1
TC
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.
02d1d628
AMH
30
310.07 Thu May 27 03:15:00 1999
32 - Fixed the typemap for i_img and i_color so that you can pass
fd9f67c1
TC
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.
02d1d628
AMH
36
370.08 Fri May 28 14:13:21 1999
38 - Added support for gif via, giflib or libungif.
fd9f67c1
TC
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.
02d1d628
AMH
42
430.09 Mon May 31 17:52:32 1999
44 - Added image scaling per axis - faster than doing both
fd9f67c1
TC
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.
02d1d628
AMH
48
490.10 Mon Jun 7 03:25:54 1999
50 - Added T1 postscript font handling. It's very primitive
fd9f67c1
TC
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.
02d1d628
AMH
55
560.11 Mon Jun 7 14:43:35 1999
57 - Added T1 features for direct to image rendering in
fd9f67c1
TC
58 a single color. fixed some debug messages going to
59 stderr instead of a log file.
02d1d628
AMH
60
610.12 Tue Jun 8 02:58:43 1999
62 - Fixed bugs in jpeg.c when loading images. Also specified
fd9f67c1
TC
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.
02d1d628
AMH
66
670.13 Wed Jun 9 06:55:58 1999
68 - Fixed Imager.xs for init_log call. Minor fixes here
fd9f67c1 69 and there.
02d1d628
AMH
70
710.14 Thu Jun 10 14:11:22 1999
72 - Rewrote most of the logging stuff so that it is now
fd9f67c1
TC
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.
02d1d628
AMH
77
780.15 Mon Jun 14 08:13:29 1999
fd9f67c1
TC
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.
84
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.
90
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.
95
96
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.
103
104
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.
109
1100.20 Mon Jul 5 10:15:37 1999
111 - Added and rewrote documentation.
112
1130.21 Mon Jul 6 19:15:37 1999
114 - Fixed a bug in the scaling routine - it wasn't
115 handling 0< cases.
116
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.
126
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
02d1d628 132 done but should be replaced with a version that can have
fd9f67c1 133 floating point endvalues. Two noise filters addded.
02d1d628 134
fd9f67c1
TC
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.
02d1d628 138
fd9f67c1
TC
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.
02d1d628
AMH
144
1450.26 Tue Nov 23 03:57:00 1999 > Development release <
fd9f67c1
TC
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.
02d1d628
AMH
150
1510.27 Tue Dec 28 03:57:00 1999 > CPAN release <
fd9f67c1
TC
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.
02d1d628
AMH
161
1620.28 Tue Jan 4 05:25:58 2000 > CPAN release <
fd9f67c1
TC
163 - Only fixes to truetype test and transformation tests.
164 Thanks to schinder of cpan testers for testing and reporting.
02d1d628
AMH
165
1660.29 Tue Jan 4 21:49:57 2000 > CPAN release <
fd9f67c1
TC
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.
02d1d628
AMH
171
1720.30 Sun Jan 7 05:00:06 2000 > Bunch of Alpha releases <
fd9f67c1 173 - An attempt to automate installation.
02d1d628
AMH
174
1750.31 Sat Jan 15 03:58:29 2000 > Fixes fixes fixes <
fd9f67c1
TC
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.
182 BUT YOU MUST RECOMPILE ALL OF YOUR OLD MODULES AGAINST THIS BUILD.
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.
02d1d628
AMH
190
1910.32 Tue Feb 29 17:26:00 2000 CPAN RELEASE
192 - Added the getcolorcount method. Fixed interlace handling
fd9f67c1
TC
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.
206
207 **** If you had any code that didn't use the OO interface ****
208 **** It will probably not work any longer ****
209
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.
02d1d628
AMH
224
2250.34 Beta -- No final
fd9f67c1
TC
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.
240
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.
02d1d628
AMH
249
2500.35 pre3 - No time yet
fd9f67c1
TC
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.
02d1d628
AMH
254
2550.35 pre4 - No time yet
fd9f67c1
TC
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.
02d1d628
AMH
261
2620.35 pre5 - No time yet
fd9f67c1
TC
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.
02d1d628
AMH
269
270
2710.35 pre6 - No time yet
fd9f67c1
TC
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.
02d1d628
AMH
277
2780.35 pre7 - No time yet
fd9f67c1
TC
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).
02d1d628
AMH
283
2840.35 Sun Jan 28 19:42:59 EST 2001
fd9f67c1
TC
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.
288
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.
294
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.
299
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).
308
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.
315
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.
323
324
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.
329
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.
336
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.
345
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.
351
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.
02d1d628
AMH
355
3560.38 pre9 - No time yet
fd9f67c1
TC
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
365 - Win32 support for jpeg
366 - Win32 support for tiff
367 - base level error reporting code added, I still need to modify
6829f5f6 368 older code to use it
930c963d 369 - fix translate=>'giflib' handling of single-colour images.
fd9f67c1
TC
370 Previously a single colour image would cause an error in
371 MakeMapObject().
930c963d 372 - fix t/t10formats.t tests against giflib3
0e03521f
TC
373 - added test for transparent gifs
374 - minor doc fixes for transparent gifs
375 - make it less error-prone to write transparent gifs
fd9f67c1 376 - documented the options for reading raw images
6829f5f6
AMH
377 - Changes switched to use spaces for formatting
378 - switch gif.c to new error reporting with related changes to
379 Imager.xs, Imager.pm
fd9f67c1
TC
380 - each of the image formats now have their own test file,
381 extracted from t10formats.t, usually with som extra tests
df917a00
AMH
382 - Added flip() and docs to Imager.pm and i_flipxy to image.c.
383 Added testcases too.
6829f5f6
AMH
384 - Fixed an overflow bug in png.c
385 - added the colors parameter to Imager::read() which receives
386 the arrayref of colours that i_readgif(_scalar) returns
387 - fixed a problem in makemap_addi in quant.c where only the first
388 image was compared against the palette when the palette was being
389 refined. I screwed up on this originally (TC). This is the other
390 half of a fix for Leolo's lmfixed problem <sigh>.
391 - makemap_addi() now only puts colours into the palette that it
392 found while optimizing the palette (so we don't get 256 colour
393 palettes for 2 colour images :)
394 - initial implementation of a row-based interface to low-level
395 images (for performance)
396 - changed Imager::read() for GIF so that the arrayref pointed to
397 by the ref supplied in colors contains Imager::Color objects
398 instead of more arrayrefs, keep this interface stable until we
399 can make an informed choice about i_readgif()
400 - incorporated Micksa's faxable tiff support, treating as a type
401 of tiff rather than a separate format
402 - t/t70newgif.t now checks for gif support
403 - added the convert() method
404 - Added support for transparent to alpha conversion during loading
ae448e5a 405 of png files. Note that libpng 1.0.1 is broken in handling this,
7828ca98
AMH
406 we know that 1.0.5 works.
407 - support for writing PGM (portable gray map) files
408 - Fix for i_gifread_low() for images with only a local and no global
409 colormap and an abort if no colormap is present (which is legal
410 in gif).
43a881d3 411 - several fixes to i_readgif_low()
299a3866 412 - Fixed crop() method so that it is consistent with documentation.
de2b8bae 413 - make clean now removes the testout directory
4c2d6970
TC
414 - added tests for the OO interface for tiff, added an option to
415 choose the resolution for fax tiffs, removed some unused code,
416 fixed minor problems with Imager::write() handling of image types
e3ddf807
TC
417 - changed README note on libgif bug to refer to t105gif.t instead
418 of t10formats.t
02d1d628 419
96190b6e
TC
4200.39 pre1
421 - split Imager::Font into a base, *::Type1 and *::Truetype
faa9b3e7
TC
422 - writing faxable tiff now allows 2 and 4 channel images
423 - virtual image interface - 8-bit/sample images
424 - paletted images
425 - 16-bit/sample images
426 - masked images
427 - writing non-8bit images to raw
428 - writing '' '' to tiff
429 - i_convert support for high-bit images and paletted images
430 - i_copy for high-bit and paletted images
431 - tests for rubthru
432 - rubthru can now rub a 2 channel image over a 1 or 3 channel
433 image
434 - rubthru for high-bit images
435 - i_readgif_multi functions, which return all the frames from a
436 GIF file, along with a bunch of meta-information as tag
437 - OO interface to tags
438 - OO interface read_multi() to read multi-image files (just GIF
439 so far)
440 - documentation for the multi-image GIF reading and tags
441 - rotate() method with rotate by steps of 90 degrees (and docs)
442 - fixed a bug in i_img_pal_new_low()
443 - added gaussian to the filters list
444 - documented the individual filters
445 - fixed the right-hand side of bounding boxes for TT fonts
446 where the last character overlaps the advance width (eg.
447 italic fonts)
448 - added rotation by exact amounts in degrees or radians,
449 implemented using the matrix idea from Addi. The procedural
450 matrix transformer is exposed, but still needs testing (as XS)
451 and needs an OO interface, hopefully with some helper tools,
452 like the preset interface with ->convert().
453 - MY::postamble() in Makefile.PL included a broken rule
454 (Makefile.PL 1.13.2.5)
455 - support for GDI fonts under Win32
456 - made that work for cygwin too (needs the w32api package)
457 - freetype1 support under Win32
458 - t1lib support under Win32
459 - fixed a minor bug in font.c (invalid font files caused a SEGV)
460 - checked cygwin for both t1lib and freetype1
461 - freetype 2 support
462 - exposed the matrix_transform() function to the OO interface
463 - added Imager::Matrix2d convenience class
464 - support for setting the resolution when writing to PNG
465 - retrieve physical resolution to tags when reading from PNG
466 - found an XS bug in the interface to i_tags_add()
467 - fixed handling of writing text to a channel with freetype2
468 (sometimes the edge of a character would damage the edge of the
469 previous character)
470 - some utf8 support for freetype2
471 - some vertical layout support for freetype2
472 - named parameters for specifying colors, with quite a few options.
c3cc977e 473 - glyph size issues for freetyp2
6064813e 474 - minor problem in handling of canon option
261f91c5 475 - low-level bmp writing (moving it to laptop)
705fd961 476 - Windows BMP reading and writing
d08b8f85
TC
477 - added OO interfaces for the mosaic, bumpmap, postlevels and
478 watermark filters
479 - added t/t61filters.t to test the filters
c3cc977e 480 - fixed some problems in jpeg handling from the exp_represent merge
cf692b64 481 - fixed buffer flushing for wiol jpeg code
c3cc977e 482 - added some tests that will hopefully catch it in the future
6607600c
TC
483 - added the OO interfaces to the mosaic, bumpmap, postlevels and
484 watermark filters, and documented them
485 - fixed a sample size conversion problem in i_gpixf_d() etc.
486 - added simple color representation conversion functions (used
487 in i_fountain().)
488 - added the fountain filter:
489 - creates gradients similar to paint software
490 - 90% support for GIMP gradient files
491 - OO interface and documentation
492 - Imager::Fountain for building/loading fill definitions
493 - named value translation for filters
f1ac5027
TC
494 - added a generic fill mechanism
495 - created versions of i_box() and i_arc() that can fill using
496 generic fills
497 - solid generic fills (with alpha blending if asked for)
498 - hatched generic fills (with some options)
499 - fountain generic fills
500 - sample code to generate an examples page
7a606d29 501 - improved the scale* hatches a bit
cc6483e0
TC
502 - add the flood_fill() method (using the existing i_flood_fill)
503 - implement i_flood_cfill() based on i_flood_fill, and
504 add general fills to the flood_fill() method
55268d8f
TC
505 - generalize the combine parameter to get different ways of
506 combining the fill with the target
aa6e55eb
TC
507 - the tt driver (freetype 1) didn't handle the first character
508 hanging off the left of the character cell
509 - the tt driver produces some artifacts when characters
510 overlapped
f873cb01 511 - error handling for writing jpeg images
bf9dd17c
TC
512 - writing paletted images to GIF now uses the image palette
513 if it's small enough
0d321238
TC
514 - $img->arc() now calls i_circle_aa() if a complete circle is
515 being drawn in a plain color
f576ce7e 516 - image based fills
b6381851 517 - unsharp mask
0958329a
TC
518 - make i_conv() clamp the bottom end of the samples range too
519 (makes it useful for sharpening)
a923fade
TC
520 - adjust ascender/descender values for FT1.x to avoid losing
521 descenders (specifically the bottom of "g" in ImUgly.ttf or
522 arial.ttf at 14pixels)
c3cc977e
AMH
523 - added tga.c to read targa images
524 - added i_bumpmap_complex to do more accurate bumpmapping
365ea842 525 - added an image type with doubles as samples
af3c2450 526 - change i_copy() and i_sametype() to handle double/sample images
bf94b653
TC
527 - added basic POD to trans2.c
528 - transform2 now uses the error interface
c3cc977e 529 - myrealloc() is implemented for malloc debug mode
07d70837 530 - now buffer chains are freed when destructor for Imager::IO
c3cc977e 531 is called
cd388046
AMH
532 - adjusted the Lanczos window width for the scaling code and
533 added code to normalize the filter generated to preserve
534 intensity scaling.
535 - constant edge extension for scaling operations
569795e8 536 - better error checking of automatic fill conversions
4c033fd4 537 - fix some range checking for the fountain fill segment type
07d70837 538
38e6b53d
AMH
5390.39 pre2
540 - A few scattered mymalloc/free fixes
541 - io_buffer implemented as a source for io layer and
542 XS and perl OO code added.
543 - Test for iolayer t/t07iolayer.t implemented.
412e7a35 544 - Fixed known memory leaks.
46a04ceb 545 - gif screen was wasn't being calculated correctly
96190b6e 546
412e7a35
AMH
5470.39 Released: Nov 2 2001.
548
43c5dacb
TC
5490.40 pre1
550 - anti-aliased polygon fill
551 - add general fill to polygon fill
3a9a4241 552 - make color values smarter for the drawing functions
fd9a31d2
TC
553 - implemented reading and writing the TIFF text tags
554 - added prototypes for some of the derivative tags functions
5bb828f1
TC
555 - read paletted tiff images into Imager paletted images
556 - on partial tiff image reads, set the i_incomplete tag
557 - tiff reading now uses the error stack
558 - use the error stack value from reading bmp files
559 - fix an error message in bmp.c
3dec2c92 560 - added has_chars() method to Imager::Font::FreeType2
f62b2d84
TC
561 - freetype 2 bounding box function didn't know UTF8 (doh!)
562 - write paletted images as paletted to tiff
230e675b 563 - initialize counter for packing 4 bit data
9cfd5724
TC
564 - don't allocate hashboxes as locals since it overflows the
565 stack by default in Darwin
6b012d62 566 - applied T1 afm patch from Claes Jacobsson
d67f1b7b
TC
567 - split IM_INCPATH and IM_LIBPATH with $Config{path_sep}, so they
568 work on Windows
10461f9a
TC
569 - Added memory pools for easy cleanup of temp buffers
570 - Added read support for sgi .rgb files.
571 - io_new_fd() now creates a FDSEEK io object
572 - implemented i_readgif_wiol()
573 - Imager->read() now uses i_readgif_wiol();
574 - extend callback iolayers at C and Perl levels
575 - implemented i_writegif_wiol()
576 - split out Perl iolayer initialization into private methods
577 - add tests for each type of iolayer in t50basicoo.t
578 - read/write multi-image tiff files
579 - tests in t50basicoo.t for multi-image/file
91492c5e 580 - ASCII PBM files were reading white as dark gray (255 vs 1)
db6d10cc
TC
581 - modify the Freetype2 font code to pick it's own encoding
582 rather than using whatever strange translation FT2 happens to
583 pick
27e79497
TC
584 - modify the FT1 font code to use the first encoding as a default
585 if we don't find a unicode encoding
586 - use the glyph bbox to calculate the glyph bitmaps for rendering
587 with FT1 rather than the global ascender/descender. This helps
588 with fonts that have broken metrics.
b72644d0
TC
589 - fix calculation of descender for FT2, it was calculating the
590 minimum decent rather than the maximum for the characters in
591 the string
fec2a434
TC
592 - didn't set default for bounding_box() utf8 parameter (caused a
593 warning when calling bounding_box() on a FT2 font with no utf8
594 parameter)
7144e056 595 - Added lib/Imager/Draw.pod documentation of primitives.
8435f780 596 - Added lib/Imager/Transformations.pod, some docs of simple transforms.
83dadefe 597 - Added lib/Imager/ImageTypes.pod, draft of ImageType pod.
cdd23610 598 - Added lib/Imager/Filters.pod, draft of Filters pod.
3e1be2c1 599 - Added lib/Imager/Engines.pod, draft of Engines pod.
591b5954 600 - added getpixel() and setpixel() methods
b6cfd214
TC
601 - added Artur's OSX dlload() emulation, with minor changes
602 - modified _color() to work around a 5.6.0 bug
97c4effc
TC
603 - replaced old gif options with tags
604 - we now log which memory block is being freed before giving
605 an error on it being re-freed
606 - fixed stupid bug in deleting tags
55b287f5 607 - fixed minor pod errors involving &gt;
72b26604 608
f83bf98a 6090.40pre2
4cb58f1b 610 - make t1log optional, defaulting to off. You can enable the log
f31bcf12 611 with Imager::init(t1log=>1) (Ticket #369)
a9fa203f 612 - quote a few hash key strings to prevent warnings on 5.004
18accb2a
TC
613 - modify quantization code to handle 1 channel images
614 correctly (Ticket #365)
615 - make channel pointer to i_gsamp() const int * so we can pass
616 const arrays
feba68a3
TC
617 - handle the presence of the default broken giflib better,
618 by giving them some more prose about the problem, and skipping
619 all but the first test that fails with the broken giflib
2de568dc
TC
620 - i_box_cfill() went into an infinite loop on fountain fills
621 or fills on images with more than 8-bits/sample
e375fbd8
TC
622 - hide more of our Darwin dlload emulation to prevent runtime
623 symbol conflicts
624 - use INT2PTR() and PTR2IV() macros instead of direct casts to
625 prevent pointer vs int size warnings on 64-bit builds of perl.
626 - add our own INT2PTR and PTR2IV definitions when perl doesn't
627 supply them
dff75dee 628 - difference() method
dad1427f
TC
629 - hide (with static) or rename many symbols that could possibly
630 cause conflicts with other libraries or perl
bd57feec
AMH
631 - Fix runaway cache problem for freetype1 font cache.
632 - Added version logging when log is started.
633
35342ea0
TC
6340.40
635 - difference() wasn't setting an alpha channel when the input
636 image didn't have one
fb19e83e
TC
637 - improve crop() documentation, see
638 http://perlmonks.org/index.pl?lastnode_id=155767&node_id=155428
65931431
TC
639 - handle the first "buggy giflib" test more portably. Previously
640 it used fork() which caused problems on systems that didn't have
641 a real fork().
35342ea0 642
6d0ed98a 6430.41
7df84b45
TC
644 - skip() in testtools should be skipn() and it should use the
645 loop variable for the test number
646
3a6bb91b 6470.42
6d0ed98a
TC
648 - quote the 'min' parameter to scale in Imager::Transformations
649 and at least mention it in the docs beyond the examples
f6af7cb4
TC
650 - document the values for the read() and write() method type
651 parameter
4f68b48f 652 - support UTF8 text with Freetype 1.x
21e952df 653 - second parameter to SvPV() must be of type STRLEN
26fd367b
TC
654 - Doc pathces from cogent.
655 - Fixed out of bounds access on bitmap for flood fills.
656 - some char * vs unsigned char * casts missing on OSF1 v4.0
657 - some enums had , on the last item in datatypes.h, which OSF1
658 didn't like
eeaa33fd 659 - Compaq C 6.4 (OSF1) claims to be C99 but doesn't provide
26fd367b
TC
660 stdint.h, don't try to use it under OSF
661 - fix missing initialization in tags.c
aa833c97 662 - Change i_draw to i_line and have it use Bresenham's line
eeaa33fd
TC
663 drawing algorithm.
664 - support has_chars() method for Freetype 1.x
665 - fixed log message for i_ft2_has_chars()
666 - fixed some broken checking for UTF8 in FT2 code
1bd75e4c
TC
667 - handle UTF8 strings passed to T1 low-level functions
668 - handle flags for underline, strikethrough and overline for T1
669 low-level output functions
670 - OO interfaces to UTF8 and flags, for now leaving the flags as
671 specific to Imager::Font::Type1
42127e0c 672 - mc_web_map was storing colors with an alpha of 0
ee0083bf 673 - update the URLs for libpng and zlib
135fb460
TC
674 - Fixed empty string handling for tt font driver.
675 - Fixed tiff handling of images all contained in a
676 single strip (rowsperstrip = -1) and added a hack
677 for images missing the rowsperstrip tag.
678 - Fixed default parameters for crop()
679 - Added Preliminary specialized scaling code.
680 - Added image type detection.
681 - added smoke test for win32 font bounding_box() method, and
682 fixed the problem reported in ticket #1748.
683 - update t37w32font.t to use i_line() instead of i_draw()
684 - replaced non-portable call to rint() with (int)(dy+0.5) (so we
685 can build on Win32)
be371490
TC
686 - the default tifflib warning handler was crashing on Win32
687 under ActivePerl, when an unrecognized tag was read from the
688 file. For now we'll just drop the warnings in the bit bucket.
689 (Ticket #1513)
690 - the code to read multiple tiffs didn't handle files with more
691 than five images correctly, causing a memory overrun.
0cb68c19 692 - fix some minor test code hiccups
3799c4d1
TC
693 - implemented i_t1_has_chars(), tests for same
694 - added ExistenceTest.{pfb,afm,ttf} for testing $font->has_chars
695 - tests for Imager::Font::Type1::has_chars();
696 - tests for Imager::Font::Truetype::has_chars();
697 - internal and external bounding box calculations now use
698 the same hint flags as text output for Freetype 2.x
699 - made the i_foo_bbox() interface more expandable by using
700 symbolic constants for the sizes and array offsets
701 - added a / character to the ExistenceTest.foo fonts that
702 overlaps the right side of the character cell, to test the
703 advance width reporting.
704 - added advance width to the i_foo_bbox() interface, and
705 implemented it for FT2, FT1 and Type 1
706 - Imager::Font::bounding_box() now returns an Imager::Font::BBox
707 object in scalar context.
708 - implemented $font->align() text output method, for simple output
709 of aligned text
710 - created Imager::Font::Wrap::wrap_text to perform simple text
711 wrapping
712 - FT1, FT2 and T1 fonts now support the face_name method
713 - FT1, FT2 and T1 now support the glyph_names() method
72e425d5
TC
714 - Debian woody supplied FT2.0.9, which didn't support
715 FT_Has_PS_Names(), so we use the FT_HAS_GLYPH_NAMES() macro
716 instead.
a90b253d
TC
717 - some older FT1 don't define TT_MS_LANGID_ENGLISH_GENERAL,
718 which we use, define it if freetype doesn't.
71dc4a83
AMH
719 - Added extra options to rubthrough() so only a subpart of
720 source image is used.
cde2dbc7
TC
721 - the image fills didn't handle filling with source images of
722 less than four channels correctly
e5744e01
TC
723 - added comment support the postfix transform2() expression
724 parser
725 - transform2() can now produce images with other than 3 channels.
726 - added a correct T_AVREF input mapping to the typemap to
727 simplify parameter lists
3a6bb91b
AMH
728 - shut off one of the align subtests in the ft2 test. The triggering
729 is likely an ft2 bug.
730 - removed some half written scaling optimization code.
731 - added /sw/lib and /sw/include to the Makefile.PL code for osX.
732 - removed all references to the www.eecs.umich.edu page and changed
733 them to imager.perl.org ones.
cde2dbc7 734
aed9d070
TC
7350.43pre1
736 - added log() and exp() functions to transform2()
737 - change the getpN() functions in transform2() to set a
738 reasonable alpha if the input image has no alpha
739 - document the constants that transform2() defines
740
b921d414 741=================================================================
02d1d628 742
fd9f67c1 743 For latest versions check the Imager-devel pages:
3a6bb91b 744 http://imager.perl.org/~addi/perl/Imager/
02d1d628 745
b921d414 746=================================================================
02d1d628 747