What's new in TGIFImage version 1.5 

The following is a brief list of additions, changes and bug fixes made in TGIFImage since the previous release (version 1.01).

The list only includes high level changes that might affect end-users. For a complete list of modifications, see the file history.txt

 
  General  
New The Warning method has been added to TGIFItem and TColorMap in order to improve centralized error handling.
This was done to handle invalid Background color index values in GIFs produced by Microsoft's free GIF animator tool.
New A GIF with no color tables defined will now cause a sNoColorTable exception.
New New TGIFDrawOption option: "goLoopContinously".
The loop count specified in the GCE will be ignored if this option is set.
New New TGIFDrawOption option: "goDither".
goDither will cause bitmaps produced by the GIF to be dithered to the Netscape 216 color palette.
New New TGIFDrawOption option: "goAutoDither".
The goAutoDither option modifies the behavior of the goDither option. If goAutoDither is set, the goDither option will be ignored on displays which supports more than 256 colors.
Obsolete The gwsOK and gwOK constants has been removed since they were unused.
Obsolete The TGIFDrawOption "goFullDraw" is now obsolete.
Changed The TGIFWarning type has been changed to "procedure of object".
Changed The TGIFDrawOption "goDrawTransparent" has been renamed to "goTransparent".
Changed Management of palettes has been completely rewritten to a more effective design.
 
  TGIFImage class
New New StopDraw method (public) to stop async Draw threads.
New New ThreadPriority property (public).
New New DrawBackgroundColor property (public).
New New TGIFDrawOption option: "goDirectDraw".
goDirectDraw will cause TGIFImage.Draw() to Paint() directly on the destination canvas instead of via the bitmap buffer. This corresponds to the drawing method used in version 1.01.
New The LoadFromStream and SaveToStream methods now produce progress events.
Changed Draw and Paint methods completely rewritten to draw indirectly via a TBitmap.
This should eliminate the goAsync problem for Draw.
Changed Bitmap property is now volatile but still public.
Volatile means that you should not use its value indirectly (i.e. assign it to another variable) since the TBitmap it points to may be freed internally at any time.
Changed The Assign method can now assign from any TPicture that can assign to a TBitmap (TPicture -> TBitmap -> TGIFimage).
Bug fix A potential dead lock problem in the Destroy method has been fixed.
 
  TGIFSubImage class
New New StretchDraw method (public).
Same as the Draw method, but stretches the image to fill the paint rect.
New New ScaleRect method (protected).
New Support for Floyd Steinberg dithering to the Netscape palette.
New New Transparent read-only property (public).
This property is true if transparency is enabled in any of the image's GCEs.
Changed The Decompress method now handles "premature end of file" as a warning.
Changed The Draw method now takes a parameter that specifies if it should draw transparently.
Bug fix Transparent drawing is now handled completely without "help" from the Delphi 3 TBitmap.Transparent feature (which is broken).
This fixes a large number of transparency, disposal and palette problems.
 
  TGIFPainter class
New The animation delay now compensates for the time spent converting the GIF to a bitmap, resulting in a more smooth animation.
Changed The DoPaintFrame method has been completely rewritten to handle transparency, palettes and disposal much better and a new DoPaint method (private) for non-buffered paint has been added.
Changed Use of Sleep() in threaded paint has been replaced with WaitForSingleObject with timeout.
This enables the Stop method to abort the thread immediately even though it is waiting for the delay to expire.
Bug fix A potential leak in the Execute method has been fixed.
If an exception was raised during the extension preprocessing, the frame buffers would not be freed.
Bug fix Fixed loop bug in Execute method where loop would wrap to wrong frame if the loop extension were preceeded by other extensions.
 
  Misc classes
New Added TGIFList.Image property in order to be able to report warnings in LoadFromStream.
New Added TGIFList.Warning method (protected) to enable graceful recovery from non fatal errors.
New New TGIFColorMap.Data property for access to raw colormap data.
New TGIFApplicationExtension.LoadFromStream is now able to handle invalid GIFs produced by older Adobe programs.
Changed The TGIFExtensionList.LoadFromStream method now handles missing extension introducers as a warning.
Changed The TGIFImageList.LoadFromStream method now handles "bad block type" as a warning.

 


Copyright © 1998 Anders Melander. All rights reserved.