如何使用delphi 2010将emf转换为bmp?
答案 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);