如何使用Delphi将WMF图片转换为GIF或PNG?

如何使用Delphi将WMF图片转换为GIF或PNG?,delphi,png,delphi-2009,gif,wmf,Delphi,Png,Delphi 2009,Gif,Wmf,有没有一种方法可以将图片转换为Delphi 2009(或更新版本)运行时库?PNG并不是那么难,Delphi 2009包括TPNGImage。 对于GIF,您可以使用GDI+或TGifImage组件 代码如下: procedure Test; var p : TPicture; png : TPngImage; begin try p := TPicture.Create; p.LoadFromFile('c:\INPUT.WMF'); png := TPng

有没有一种方法可以将图片转换为Delphi 2009(或更新版本)运行时库?PNG并不是那么难,Delphi 2009包括TPNGImage。 对于GIF,您可以使用GDI+或TGifImage组件

代码如下:

procedure Test;
var
  p : TPicture;
  png : TPngImage;
begin
  try
    p := TPicture.Create;
    p.LoadFromFile('c:\INPUT.WMF');
    png := TPngImage.CreateBlank(COLOR_RGB, 8, p.Width, p.Height);
    png.Canvas.Draw(0,0, p.Graphic);
    png.SaveToFile('C:\OUTPUT.png');
  finally
    Free(p);
    Free(png);
  end;
end;

PNG并没有那么难,Delphi 2009包含了TPNGImage。 对于GIF,您可以使用GDI+或TGifImage组件

代码如下:

procedure Test;
var
  p : TPicture;
  png : TPngImage;
begin
  try
    p := TPicture.Create;
    p.LoadFromFile('c:\INPUT.WMF');
    png := TPngImage.CreateBlank(COLOR_RGB, 8, p.Width, p.Height);
    png.Canvas.Draw(0,0, p.Graphic);
    png.SaveToFile('C:\OUTPUT.png');
  finally
    Free(p);
    Free(png);
  end;
end;

变量p也可以用类型TMetafile声明,其优点是我也可以使用p.LoadFromStream。一般来说,在通过加载input.wmf初始化p.width和p.height之后创建pngimage不是更好吗?当然,这只是演示代码。变量p也可以用类型TMetafile声明,其优点是我也可以使用p.LoadFromStream。一般来说,在通过加载input.wmf初始化p.width和p.height之后创建pngimage不是更好吗?当然,这只是演示代码。