从EMF文件转到BMP文件时,为何转换后的图像中出现十字黑线,请高手指点。 (100分)

  • 主题发起人 主题发起人 huabinhong
  • 开始时间 开始时间
H

huabinhong

Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码如下:
procedure ConvertEMFToBMP(const EMFFileName, BMPFileName: String);
var
MetaFile : TMetafile;
Bitmap : TBitmap;
Rect: TRect;
begin
Metafile := TMetaFile.Create;
Bitmap := TBitmap.Create;
try
MetaFile.LoadFromFile(EMFFileName) ;
with Bitmap do
begin
Height := 600; //Metafile.Height;
Width := 800; //Metafile.Width;
//Canvas.Draw(0, 0, MetaFile);
Rect.Left := 0;
Rect.Top := 0;
Rect.Right := 800;
Rect.Bottom := 600;
BitMap.PixelFormat := pf24bit;
//Canvas.CopyMode := cmSrcCopy;
Canvas.StretchDraw(Rect,Metafile);
SaveToFile(BMPFileName) ;
end;
finally
Bitmap.Free;
MetaFile.Free;
end;
end;
 
procedure ConvertEMFToBMP(const EMFFileName, BMPFileName: String);
var
MetaFile : TMetafile;
Bitmap : TBitmap;
Rect: TRect;
begin
Metafile := TMetaFile.Create;
Bitmap := TBitmap.Create;
try
MetaFile.LoadFromFile(EMFFileName) ;
with Bitmap do
begin
Height := 600; //Metafile.Height;
Width := Round((600 / MetaFile.Height) * MetaFile.Width); //Metafile.Width;
//Canvas.Draw(0, 0, MetaFile);
Rect.Left := 0;
Rect.Top := 0;
Rect.Right := Width;
Rect.Bottom := Height;
BitMap.PixelFormat := pf24bit;
//Canvas.CopyMode := cmSrcCopy;
Canvas.StretchDraw(Rect,Metafile);
SaveToFile(BMPFileName) ;
end;
finally
Bitmap.Free;
MetaFile.Free;
end;
end;
 
接受答案了.
 
后退
顶部