You can find a listing of Imaging versions on this page. There is the release date of each version together with a short note and a list of the most important changes that were made. You can find the change tags explained here Changes Legend.
Version 0.26.4 - 11th October 2009 For complete list of changes seeFile Notes
section at the end of each source file.
[+]
APNG
file format (Animated PNG) loading, animating, and saving
added to existing PNG support.
[+]
Arbitrary angle image rotation.
[*]
Mac OS X (Intel) compatibility (garbled LCL bitmaps in Carbon, JPEG 2000 support, ...).
[+]
XPM
file format saving added, JPEG 2000 file format loading
improved.
[+/F]
New canvas methods: premultiply and unpremultiply alpha.
New methods for TFastARGB32Canvas: InvertColors, DrawAlpha/StretchDrawAlpha.
Fixed DrawAlpha/StretchDrawAlpha destination alpha calculation.
[+]
Three new extensions in Extras/Extensions
directory:
ImagingJpegIJL.pas uses Intel Jpeg Library to load/save Jpegs (DLL needed),
ImagingSquishLib.pas uses Squish DXTC library with Imaging (DLL needed),
ElderImagerySky.pas loads SKY images from Daggerfall.
[+]
Conversions between RGB and YCoCg colorspaces.
[F]
Bug fixes: loading of some GIFs when using D2009+ failed,
bugged XPM loading in Linux, indexed images resizing leak,
PNM saving using D2009+, DXT3 alpha encoding, RGB>>CMYK conversion,
garbled images in Lazarus GTK IDE.
[*]
Delphi 2010 and Lazarus 0.9.28 compatibility fixes.
File Notes
section at the end of each source file.
[*]
Delphi 2009 and Lazarus 0.9.26 compatibility fixes.
New project files for Delphi 2009 added. Kylix and CLX
stuff removed.
[+]
New canvas methods: flood and boundary fills, color channel
fills, color level adjustment, histogram calculation.
[+]
Animated GIF support rewritten and it now
properly animates all tested GIFs (several thousand, true color ones too).
[+]
Added new Extras/Contrib
directory with
Imaging modifications, extensions, demos, etc. contributed
by users (now with ExtraGIF, NIF loader, and HqResampler).
[*]
Changed LINK defined symbols that control which file formats will be
automatically registered. More in File Format Extensions[+]
PSD
images with alpha channel are now saved as layers
to get proper transparency when opened in Photoshop.
[*]
Changed conditional compilation of ImagingComponents.pas
unit to properly work with LCL widget sets other than
Win32 and GTK.
[*]
Removed linking against libstdc++ library in JPEG 2000 headers in Unix
(replaced with libc and Pascal functions).
[F]
Fixed problem with loading of progressive JPEGs (out of memory)
when using FPC Win32.
File Notes
section at the end of each source file.
[+]
New data formats using 3Dc compression added: ifATI1N
and ifATI2N
.
DDS file format updated to be able to load and save
images in this format.
OpenGL and Direct3D extensions were updated
to allow creating textures in these formats.
[+]
Canvas class was extended with many new methods and effects.
They include image drawing with blending (custom blending factors),
filtered image stretching, nonlinear filters (min, max, median),
point transforms (contrast, brightness, gamma, threshold), and blended
rectangle filling.
[+]
New unit ImagingBinary.pas was added to Extras
extensions with morphologic operations on binary images.
[+]
XPM
file format loader was added to Extras
extensions.
[E]
LCL Imager
and Image Browser demos were extended
with new functionality provided by canvas class (blending, filters,
morphology, etc.).
[*]
Updated OpenJpeg library (JPEG 2000) to version with
my CDEF patch that saves JP2 files with alpha properly.
[*]
Changed some file format loaders/savers to be more thread safe
so more images can be loaded concurrently..
[F]
Many bugs in library fixed (GIF, BMP, and PNM loaders,
ConvertSpecial, linear filters, ...).
File Notes
section at the end of each source file.
[*]
Updated OpenJpeg library (JPEG 2000) to latest
revision and added Imaging JPEG support for 64bit Linux.
[F]
Fixed various user reported bugs in file format
support for GIF and JPEG images.
[*/+]
Compatibility changes and project files for new Pascal
compilers/IDEs: Lazarus 0.9.24 (LCL support update),
FPC 2.2, RAD Studio 2007 (project files).
[D]
LCL Imager demo updated - operation timing added. Supports
alpha blending with new Lazarus.
[+]
New features added to OpenGL texture builder: skip mipmap levels
and alternate pow2 texture resizing.
[+]
Pascal translation of Hq resampler with Imaging demo added
to Extras directory.
[F]
Some bugs in library fixed.
File Notes
section at the end of each source file.
[D]
Documentation updated to version 0.24.
[+]
TIFF
image file format
loading and saving added to Extras
.
Not yet native Object Pascal.
[+]
GIF
image file format
loading and saving added to core library.
[+]
New compressed image data format added: ifBTC
(block truncation coding).
[*]
Changed headers of some low level interface functions.
[+]
High level
interface in ImagingClasses.pas unit
was slightly extended.
[+]
Other library enhancements (color conversions for 16bit channels,
new buffered file IO, ...).
[+/*/F]
Compatibility enhancements (Bitmap saving, JPEG loading,
DDS loading/saving,
UNIX compilation, Win64 compilation, FPC compilation, ...).
[F]
Many bugs in library fixed.
[+]
Photoshop PSD
image file format
loading and saving added to Extras
.
File Notes
section at the end of each source file.
[D]
Documentation updated to version 0.22.
[E]
Some demos were extended, updated, and some bugs were fixed.
[+]
New unit ImagingColors.pas added.
Some color space conversion functions are there now.
[*/F]
High level
interface in ImagingClasses.pas unit
was extended and many bugs were fixed there.
[+]
Canvas
class was extended. FrameRect, Rectangle, Ellipse, and Line methods
were added, and you can now specify PenColor, PenMode, and FillMode.
New convolution kernels were added too.
[+]
JPEG 2000
image file format
loading and saving added to Extras
.
Not yet native Object Pascal.
[+]
PCX (ZSoft Paintbrush)
image file format
loading added to Extras
.
[+]
PBM, PGM, PPM, PAM, PFM (Portable Maps)
image file formats
loading and saving added.
[+]
Elder Imagery
extension added to Extras
for loading and saving images from older Bethesda games (Daggerfall mainly).
[+]
Added new Extras
package (located in
(ImagingRoot)\Extras
folder)
with additional extensions, demos, and tools for Imaging.
[+]
Functions added to the low level interface:
EnumFileFormats.
[+/*]
Many changes to image file format loader/saver classes
for easier creation of new formats (old formats were updated
and some (Bitmap, DDS) have various parts rewritten).
Some new stuff added (file name masks).
Also file format enumeration functions were added.
[F]
Many bugs in library fixed.
[E]
New demo VampConvert replaced old DXTTool.
Demo High Level was removed because other demos
now use high level interface more.
[+]
Added new unit ImagingCanvases.pas with
classes for drawing/effects functions added
(not much functionality here yet).
[+/F]
High level interface in ImagingClasses.pas unit
was extended and several bugs here were fixed.
[*]
Imaging now compiles and works on 64bit
AMD64 CPU architecture (tested in Linux).
[+]
VCL/CLX/LCL support in ImagingComponents.pas unit
was extended.
[+]
New image data formats based on half-float (FP16) type added:
ifR16F
, ifA16R16G16B16F
, ifA16B16G16R16F
.
Direct3D and OpenGL extensions now create textures in these formats too.
[+]
New low level interface functions:
IsFileFormatSupported, GetPixelDirect, SetPixelDirect,
GetPixel32, SetPixel32, GetPixelFP, SetPixelFP
.
GetPixelBytes
was removed (same data can be obtained by
GetImageFormatInfo
).
[F/*]
Many many bug fixes in many parts of the library as well as some optimizations,
changes, and tweaks.
[D]
Documentation updated to version 0.18.
[E]
Demos were extended or updated.
[+]
High level interface in ImagingClasses.pas unit
was extended.
[*/+]
Mipmap generation in library core and
in Direct3D 9
and OpenGL
extensions is now filtered.
Also Direct3D 9
extension was extended and works
with D3D surfaces now.
[F]
There was a bug in conversion between Imaging image
and TBitmap
in ImagingComponents.pas
unit when using LCL component set (with GTK interface).
[*]
Imaging now compiles and works in
FreeBSD and maybe in other Unixes as well.
[+]
Functions added to the low level interface:
StretchRect
.
[+/*]
Filtered resizing and stretching implemented. ResizeImage
and other functions now take advantage of it.
[+]
MNG (Multiple Network Graphics)
image file format loading and
saving added. Supports usage of PNG and JNG frames, animation
capabilities are not used.
[+]
JNG (JPEG Network Graphics)
image file format loading and
saving added. Supports 8 bit gray and 24 bit RGB images with
optional alpha channel.
[*/-]
PNG
support moved from ImagingPng
unit to
the new ImagingNetworkGraphics.pas unit. Old unit was
removed from Imaging.
[+]
New unit ImagingNetworkGraphics.pas added for
future handling of all Network Graphics image formats.
[D]
Documentation updated to version 0.16.
[E]
New demos created: D3D Demo, OpenGL Demo (Object Pascal).
[+]
Functions added to the low level interface:
RotateImage
.
[E]
New demos created: SDL Demo, LCL Demo (Object Pascal).
[+]
Extension for creating/loading/saving Direct3D 9
textures using Imaging added to the new ImagingDirect3D9.pas unit.
[+]
Extension for creating/loading/saving SDL
surfaces using Imaging added to the new ImagingSDL.pas unit.
[+]
Extension for creating/loading/saving OpenGL
textures using Imaging added to the new ImagingOpenGL.pas unit.
[+]
Functions added to the low level interface:
ReplaceColor
.
[+]
TGraphic
descendant classes which use Imaging
added for VCL
, CLX
and
LCL
components sets. They are in the new
ImagingComponents.pas unit.
[F*]
Bugs (in 48/64 bit image handling) fixed in
PNG (Portable Network Graphics) image file format
handling and support for color keying (if present in image) added.
[F]
Headers of some functions exported from Imaging dll/so library were
changed in ImagingExport.pas unit and in the wrappers for
the other languages.
[+]
New options ImagingLoadOverrideFormat
and
ImagingSaveOverrideFormat
added. Also all
option values are checked for validity before they are used.
[D]
Documentation updated to version 0.14.
[E]
New demos created: High Level (Object Pascal),
dotNET Demo01 (Delphi.NET).
[*]
You can now use Imaging with MPL or LGPL license.
[*]
Large changes in Delphi.NET wrapper. Function names and
parameter types are now almost same as in Object Pascal
without using dll. Some .NET only things added too.
[+]
Functions added to low level interface:
NewPalette, CopyPalette, FreePalette,
DetermineFileFormat, DetermineStreamFormat, DetermineMemoryFormat, GetPixelsSize
.
[*]
Pixel format conversions rewritten to get better color
quality when converting from low bitcounts to higher
(visible mainly when using formats like ifR3G3B2
or ifA4R4G4B4
).
[+]
Functions added to low level interface:
MapImageToPalette, FillRect, SplitImage, MakePaletteForImages
.
[+]
Basic high level interface created. Classes
TSingleImage
and TMultiImage
added to ImagingClasses.pas unit.
[+]
Functions added to low level interface:
CopyRect
.
[+]
New image formats added: ifA16Gray16
.
[+]
PNG (Portable Network Graphics)
image file format loading and
saving added. Supports 1, 2, 4, 8, 16, 24, 32, 48 and 64 bit images.
1, 2 and 4 bit images can be only loaded.
[F]
Various bugs fixed in Imaging, ImagingBitmap
and ImagingExport
units,
look there for details.
[+]
Functions added to low level interface:
GenerateMipMaps, TestImagesInArray
.
[+]
Added wrapper unit for Delphi.NET.
[*]
DXTC
compression and decompression code optimized
and it is now about 20% faster.
[T]
VampyreDoc
tool for documentation management created.
It can create XHMTL and HTMLHelp documentation
from XML based projects.
[+]
New field IsRBSwapped
added to TImageFormatInfo record.
It is used in conversions and in channel related functions to
distinguish between ARGB and ABGR formats.
[+]
New image formats added: ifA32R32G32B32F, ifA16B16G16R16, ifB16G16R16
.
[+]
Functions added to low level interface:
ReduceColors, GetImageFormatInfo
.
[*]
Image format conversions between all types of formats are now
supported (ChannelToIndex
and
FloatToIndex
implemented).
[+]
Color quantization with support
for alpha channel (using Median Cut algorithm) added.
[F]
Fixed huge memory leak in Windows Bitmap file format (occurred when
loading 8bit uncompressed image).
[E]
Demos created: DXT Tool (Object Pascal), Test (C/C++),
VCL Image Browser (Object Pascal).
[U]
Vampyre Imaging Library
project registered at
SourceForge (03.12.2004).
[+]
Added PushOptions
and
PopOptions
low level functions for
pushing and popping Imaging options.
[*]
SwapChannels
and
SwapChannelsOfPalette
low level functions extended
to allow to swap all channels, not only red and blue.
[*]
Checked and if necessary added support for special image formats
(only DXTC images now) in all low level functions.
[+]
DXT1, DXT3
and DXT5 decoding and encoding added.
[+]
DDS (DirecDraw Surface)
image file format saving added.
Supports mipmaps, cube maps, volume textures and ordinary images.
[E]
Demos created: Benchmark (Object Pascal/C++).
[+]
New image format added: ifR32F, ifDXT1, ifDXT3, ifDXT5
.
[+]
DDS (DirecDraw Surface)
image file format loading added.
Supports mipmaps, cube maps, volume textures and ordinary images.
[+]
New image formats added: ifX8R8G8B8, ifX1R5G5B5, ifX4R4G4B4
.
[+]
Property SupportedFormats
added to
TImageFileFormat
class.
It is set of TImageFormat
values
which can be saved by this file format. Also
MakeCompatible
method was added.
It converts unsupported formats to supported before saving.
[*]
Made PasZLib library compatible with all compilers and platforms
supported by Imaging (needed for PNG support).
[+]
New low level functions for palette support added: FindColor, FillGrayscalePalette, FillCustomPalette, SwapChannelsOfPalette
.
[+]
Added import unit and header for Object Pascal and C/C++ to
enable using Imaging library compiled into dynamic link library (dll/so).
[+]
BMP (Windows Bitmap)
image file format loading and saving added.
Supports 1, 4, 8, 16, 24 and 32 bit images with or without RLE compression.
1 and 4 bit images can be only loaded.
[+]
Added support for function inlining in Delphi 2005 (although not tested yet)
and Free Pascal (although compiler crashes on this now).
[+]
New image formats added: ifA8Gray8, ifR3G3B2, ifR1G1B1
.
[+]
New low level functions added: ConvertImage, FlipImage, MirrorImage, SwapChannels, CloneImage,
FreeImagesInArray, ResizeImage
.
[+]
Added image format conversion engine which will support all
members of TImageFormat
.
Some indexed and special format conversions are not implemented yet.
[+]
TGA (Truevision Targa)
image file format loading and saving added.
Supports 8, 15/16, 24 and 32 bit images with or without RLE compression.
[+]
JPEG (Joint Photographic Experts Group)
image file format loading and saving added.
Supports 8 and 24 bit images.
[*]
Made PasJpeg library compatible with all compilers and platforms
supported by Imaging.
[+]
Initial low level functions added: InitImage, NewImage, TestImage, FreeImage,
LoadImageFromFile, LoadImageFromStream, LoadImageFromMemory,
LoadMultiImageFromFile, LoadMultiImageFromStream, LoadMultiImageFromMemory,
SaveImageToFile, SaveImageToStream, SaveImageToMemory, SaveMultiImageToFile,
SaveMultiImageToStream, SaveMultiImageToMemory, SetOption, GetOption,
SetUserFileIO, ResetFileIO, GetPixelBytes
.
[+]
Initial image formats added: ifUnknown, ifDefault, ifIndex8, ifGray8, ifGray16, ifGray32,
ifGray64, ifR5G6B5, ifA1R5G5B5, ifA4R4G4B4, ifR8G8B8, ifA8R8G8B8,
ifR16G16B16, ifA16R16G16B16, ifA32B32G32R32F
.
[*]
Basic structure of library created.
[U]
Vampyre Imaging Library
project started (about 08.09.2004).
[+]
Addition (new features, functions etc.)[-]
Removal (old features, functions etc.)[*]
Change (existing features, functions etc. changed or extended)[F]
Bug fix[D]
Documentation related[E]
Examples and demos related[T]
Tools related[U]
Unique event