2010-09-23 8 views

Répondre

3

Utilisez ce code

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; 
1

Essayez quelque chose comme:

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

Si vous voulez dessiner la FEM avec Anti-Aliaising, vous pouvez utiliser notre bibliothèque SynGdiPlus freeware:

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); 

Le dessin est fait en utilisant GDI +, donc le rendu sera beaucoup mieux que la méthode directe Canvas.Draw directe. Vous pouvez essayer d'utiliser anti-aliaising de base en étirant le bitmap à une taille plus petite, mais dans ce cas, le rendu de la police sera modifié. Notre dessin GDI + natif produit une meilleure qualité de rendu. Voir http://synopse.info/forum/viewtopic.php?id=10