ImageEn, unit iemiscplugins

TIEMiscPluginsImageMagick_OptimizeGIF


Declaration

function TIEMiscPluginsImageMagick_OptimizeGIF(InFileName, OutFilename: String; OptimizeLayers: Boolean = True; OptimizeTransparency: Boolean = True): Boolean;


Description

Optimizes a GIF animation (or multi-page GIF) by detecting differences between each frame and removing any data that is duplicated. The resulting file will only include differences between frames and can be significantly smaller.

Parameter Description
InFileName The GIF file to be optimized
OutFilename The file to save the resulting GIF too
OptimizeLayers Compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the animation
OptimizeTransparency Compares the overlayed pixels against the disposal image resulting from all the previous frames in the animation. Any pixel that does not change the disposal image (and thus does not effect the outcome of an overlay) is made transparent

Note:
 You can also optimize GIF files with native ImageEn code using IEOptimizeGIF
 If you have an older download of the ImageMagick plug-in, you may need to move IM_MOD_RL_gif_.dll from the "Extra_Files" folder to your EXE folder


Examples

ImageEnMView1.MIO.SaveToFile('D:\temp.gif');
TIEMiscPluginsImageMagick_OptimizeGIF ('D:\temp.gif', 'D:\output.gif' );

// Create an animated GIF file from ten source images
mbmp := TIEMultiBitmap.create;
for i := 0 to 9 do
begin
  mbmp.AppendImage( format( 'D:\Source\Frame %d.bmp', [i] ));
  mbmp.Params[i].GIF_DelayTime := 10; // Display each frame for 1/10th of a second
end;
mbmp.Write( 'D:\animated.gif' );
mbmp.Free;
TIEMiscPluginsImageMagick_OptimizeGIF( 'D:\animated.gif', 'D:\animated-Opt.gif' );


See Also

 IEOptimizeGIF
 CheckAniGIF
 DeleteGifIm
 EnumGifIm (Image Count)
 Global Image Methods
 SaveToFileGIF
 SaveToStreamGIF
 ReplaceFileGIF
 InsertToFileGIF