GraphicsMagick 1.0 News |
Major changes associated with GraphicsMagick 1.0 (as of April, 2003)
GraphicsMagick support services:
- Master web site at "http://www.GraphicsMagick.org/".
- Mailing lists, bug tracking, and forums available via
"http://sourceforge.net/projects/graphicsmagick/".
- CVSWeb via "http://cvs.graphicsmagick.org/cgi-bin/cvsweb.cgi/".
- CVS via cvs.graphicsmagick.org (find instructions at
"http://www.graphicsmagick.org/www/cvs.html").
- FTP via "ftp://ftp.graphicsmagick.org/pub/GraphicsMagick".
Project maintenance improvements:
- ChangeLog conforms to the GNU standard and all CVS commits include
useful log messages.
- CVS commit messages posted to graphicsmagick-commit mail list.
- CVS commit messages contain CVSWeb URL references.
Footprint changes from ImageMagick:
- Library -lMagick renamed to -lGraphicsMagick.
- Library -lMagick++ renamed to -lGraphicsMagick++.
- Utilities consolidated into a single 'gm' utility (e.g. use 'gm
convert').
- Script Magick-config renamed to GraphicsMagick-config.
- Script Magick++-config renamed to GraphicsMagick++-config.
- Headers installed under ${PREFIX}/include/GraphicsMagick.
- PerlMagick namespace renamed from "Image::Magick" to "Graphics::Magick".
- Pkgconfig files GraphicsMagick.pc and GraphicsMagick++.pc are
installed in $libdir/pkgconfig to assist pkg-config users.
- Coder modules installed to lib/GraphicsMagick-1.0/modules-Q8/coders.
- Filter modules installed to lib/GraphicsMagick-1.0/modules-Q8/filters.
Many performance enhancements:
- Default QuantumDepth is 8 since this is adequate for most purposes
and more efficient than 16.
- The Magick++ demo (compiled with QuantumDepth=8 and -O2) runs about
1.8X faster under SPARC/Solaris than the same demo with ImageMagick
5.5.4.
- Colorspace transformations are much faster.
- Grayscale/monochrome image handling is much faster.
- PseudoClass image handling is faster.
- Text annotations using FreeType are much faster.
- Image file I/O is much faster.
- RLE-compressed MIFF reading much faster.
Code structure enhancements:
- All utility support functions moved to magick/command.c in order to
significantly reduce link dependencies, allowing statically-linked
programs to be smaller.
- Use of MogrifyImage() elminated except for by utilities.
- Re-builds due to changes to <magick/image.h> reduced by splitting the
header into multiple headers.
- ISO C '99 typedefs (gm_int16_t, gm_uint16_t, gm_int32_t, gm_uint32_t,
gm_int64_t, gm_uint64_t) are available for use.
Feature enhancements:
- Module loader always enabled for shared builds to allow extension.
- Loading of arbitrary filter modules (via -process option) supported
under Unix as well as Windows.
- SVG coder allows specifying size and initial background color.
- JPEG-2000 coder (JP2) updated to work with Jasper 1.7.
- HWB and HSL image colorspace translation support.
- JNG/MNG/PNG format support tracks ImageMagick version.
- BMP encoder can write 16-color indexed BMPs now as well as 2-color
BMPs (not restricted to monochrome).
- TIFF decoder now includes optimized support for tiled and stripped
TIFF.
- The -random-threshold option (RandomThresholdImage()) is added to
threshold an image to bilevel using random thresholding.
Major bug fixes:
- 100% successful test completion at all quantum depths (8/16/32).
- A temporary file management subsystem is added to ensure that all
temporary files are removed before program exit. Temporary files are
created and used in a secure fashion to avoid the possibility that a
"trojan" temporary file (e.g. a symbolic link, or a file containing
unsafe content) is created before a delegate has the chance to write
to it. The environment variable MAGICK_TMPDIR allows the user to
specify where temporary files are created without altering where
other programs create their temporary files. Temporary filenames are
created in 8+3 format to hopefully be more acceptable to ralcgm.
- When dithering is disabled, don't dither when converting to a
PseudoClass, grayscale, or monochrome image. Disabling dithering
may cause these translations to be much faster.
- PICON format works with BLOBs.
- No longer removes input file when pinging a FlashPIX file.
- Arc drawing and texture fill fixes from ImageMagick.
- Sample, scale and affine fixes from ImageMagick.
- MIFF colormaps are now scaled properly while reading.
- CMYK translation works for QuantumDepth=32.
- ConstituteImage now works properly for grayscale images.
- Built-in tilde expansion and filename globbing now works properly.
- InitializeMagick now registers signal handlers to ensure that
resources are released before program exit. This helps avoid
temporary file leaks due to the user using "CONTROL-C".
Windows platform enhancements:
- Configure updated for Visual C++ 7.0.
- OLE object (ImageMagickObject) re-written to work with Visual C++ 7.0
- New function, CropImageToHBITMAP(), to return a region of the image
as a Windows HBITMAP.
- Use vsnprintf to format strings under Windows (safer).
On November 19, 2002, GraphicsMagick was created as a fork of
ImageMagick, several days before the ImageMagick 5.5.2 release.
The objectives of GraphicsMagick are to:
- Use an open development model.
- Encourage new developers to join the project.
- Avoid unnecessary source code "churn".
- Establish and preserve a stable API.
- Use efficient coding practices which result in fast code.
- Improve memory efficiency.
- Use a release process which assures a working product.
- Maintain an accurate ChangeLog.
Copyright (C) 2003 GraphicsMagick Group
This program is covered by multiple licenses, which are described in
Copyright.txt. You should have received a copy of Copyright.txt with this
package; otherwise see http://www.graphicsmagick.org/www/Copyright.html.
Image manipulation software that works like magic.