![]() ![]() |
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
![]() |
||
![]() |
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. |
|
![]() |
A GIF with no color tables defined will now cause a sNoColorTable exception. | |
![]() |
New TGIFDrawOption option: "goLoopContinously". The loop count specified in the GCE will be ignored if this option is set. |
|
![]() |
New TGIFDrawOption option: "goDither". goDither will cause bitmaps produced by the GIF to be dithered to the Netscape 216 color palette. |
|
![]() |
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. |
|
![]() |
The gwsOK and gwOK constants has been removed since they were unused. | |
![]() |
The TGIFDrawOption "goFullDraw" is now obsolete. | |
![]() |
The TGIFWarning type has been changed to "procedure of object". | |
![]() |
The TGIFDrawOption "goDrawTransparent" has been renamed to "goTransparent". | |
![]() |
Management of palettes has been completely rewritten to a more effective design. | |
![]() |
||
![]() |
New StopDraw method (public) to stop async Draw threads. | |
![]() |
New ThreadPriority property (public). | |
![]() |
New DrawBackgroundColor property (public). | |
![]() |
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. |
|
![]() |
The LoadFromStream and SaveToStream methods now produce progress events. | |
![]() |
Draw and Paint methods completely rewritten to draw indirectly via a TBitmap. This should eliminate the goAsync problem for Draw. |
|
![]() |
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. |
|
![]() |
The Assign method can now assign from any TPicture that can assign to a TBitmap (TPicture -> TBitmap -> TGIFimage). | |
![]() |
A potential dead lock problem in the Destroy method has been fixed. | |
![]() |
||
![]() |
New StretchDraw method (public). Same as the Draw method, but stretches the image to fill the paint rect. |
|
![]() |
New ScaleRect method (protected). | |
![]() |
Support for Floyd Steinberg dithering to the Netscape palette. | |
![]() |
New Transparent read-only property (public). This property is true if transparency is enabled in any of the image's GCEs. |
|
![]() |
The Decompress method now handles "premature end of file" as a warning. | |
![]() |
The Draw method now takes a parameter that specifies if it should draw transparently. | |
![]() |
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. |
|
![]() |
||
![]() |
The animation delay now compensates for the time spent converting the GIF to a bitmap, resulting in a more smooth animation. | |
![]() |
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. | |
![]() |
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. |
|
![]() |
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. |
|
![]() |
Fixed loop bug in Execute method where loop would wrap to wrong frame if the loop extension were preceeded by other extensions. | |
![]() |
||
![]() |
Added TGIFList.Image property in order to be able to report warnings in LoadFromStream. | |
![]() |
Added TGIFList.Warning method (protected) to enable graceful recovery from non fatal errors. | |
![]() |
New TGIFColorMap.Data property for access to raw colormap data. | |
![]() |
TGIFApplicationExtension.LoadFromStream is now able to handle invalid GIFs produced by older Adobe programs. | |
![]() |
The TGIFExtensionList.LoadFromStream method now handles missing extension introducers as a warning. | |
![]() |
The TGIFImageList.LoadFromStream method now handles "bad block type" as a warning. |