将emf转换为bmp

时间:2010-09-23 13:47:10

标签: delphi delphi-2010

如何使用delphi 2010将emf转换为bmp?

3 个答案:

答案 0 :(得分:4)

如果您想使用Anti-Aliaising绘制EMF,您可以使用我们的免费软件SynGdiPlus库:

Gdip := TGDIPlusFull.Create;
MF := TMetaFile.Create;
MF.LoadFromFile(Files[Tag]);
Bmp := Gdip.DrawAntiAliased(MF,100,100); // 100% zoom in both axis
img1.Picture.Assign(Bmp);

绘图是使用GDI +完成的,因此渲染将比直接的Canvas.Draw直接方法好得多。 您可以尝试通过将位图拉伸到更小的尺寸来使用基础反对,但在这种情况下,字体渲染将被更改。我们的原生GDI +绘图可以产生更好的渲染质量。 见http://synopse.info/forum/viewtopic.php?id=10

答案 1 :(得分:3)

使用此代码

procedure ConvertEMF2BMP(EMFFileName, BMPFileName: String) ;
var
   MetaFile : TMetafile;
   Bitmap : TBitmap;
begin
   Metafile := TMetaFile.Create;
   Bitmap := TBitmap.Create;
   try
     MetaFile.LoadFromFile(EMFFileName) ;
     with Bitmap do
     begin
       Height := Metafile.Height;
       Width := Metafile.Width;
       Canvas.Draw(0, 0, MetaFile) ;
       SaveToFile(BMPFileName) ;
     end;
   finally
     Bitmap.Free;
     MetaFile.Free;
   end;
end;

答案 2 :(得分:1)

尝试类似:

var
  bmp: TBitmap;
  wmf: TMetafile;
bmp.SetSize(wmf.Width, wmf.Height);
bmp.Canvas.Draw(0, 0, wmf);