图象怎么变大了?(200分)

  • 主题发起人 主题发起人 czx_china
  • 开始时间 开始时间
C

czx_china

Unregistered / Unconfirmed
GUEST, unregistred user!
我拷贝WORD的内容,然后从粘贴板中取出图片,
mg.Picture.Assign(Clipboard);
bmp := TBitmap.Create;
Bmp.Width := pWidth;
Bmp.Height := pHeight;
cm := Bmp.Canvas.CopyMode;
Bmp.Canvas.Brush.Color := clBlack;
Bmp.Canvas.Brush.Style := bsSolid;
Bmp.Canvas.CopyMode := cmMergePaint;
Bmp.Canvas.Rectangle(0, 0, bmp.Width, bmp.Height);
Img.Picture.Metafile.Width := 不知道这两个该怎么取值
Img.Picture.Metafile.Height :=
Bmp.Canvas.Draw(0,0,Img.Picture.Metafile);//但到这边BMP图象很大,拷贝到画图软件正常,为什么?该怎么做?
 
Metafile没用过,但看楼主的意思是要把剪贴板里的图像Draw在Bmp上,如果是则Img.Picture.Metafile.Width 和 Img.Picture.Metafile.Height 的值应该是源图所以不需设置,需设置的只是Bmp的宽高:
BMP.WIDTH := Img.Picture.Metafile.Width;
Bmp.Height := Img.Picture.Metafile.Height;
 
MetaFile := TMetaFile.Create;
MetaFile.Assign(ClipBoard);
BMP:=TBitmap.Create;
BMP.PixelFormat:=pf24Bit;
BMP.Width:=MetaFile.Width;
BMP.Height:=MetaFile.Height;
BMP.Canvas.Draw(0,0,MetaFile);
BMP.SaveToFile(ExtractFilePath(Application.ExeName)+'out_.bmp');
BMP.Free;
MetaFile.SaveToFile(ExtractFilePath(Application.ExeName)+'out_.wmf');
MetaFile.free;

以上是测试代码,保存的'out_.bmp'长和宽都比'out_.wmf'大1倍还多,为什么?
 
不太清楚,可能是矢量图和位图的差别吧。
 
后退
顶部