打印的问题?同一副BMP图片,用画图程序和我的D程序打出来的大小不一????(50分)

  • 主题发起人 主题发起人 Fucool
  • 开始时间 开始时间
F

Fucool

Unregistered / Unconfirmed
GUEST, unregistred user!
打印的问题?同一副BMP图片,用画图程序和我的D程序打出来的大小不一????
程序代码如下:
请高人指教??????

procedure TForm1.Button1Click(Sender: TObject);

var
ScaleX, ScaleY: Integer;
R: TRect;

begin
//setWinDowextex(canvas.Handle ,2,2,nil);
Printer.BeginDoc; // **
with Printer do
try
Image1.Picture.LoadFromFile('c:/fu.bmp');
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(0, 0, Image1.Picture.Width * ScaleX,
Image1.Picture.Height * ScaleY);
Canvas.StretchDraw(R, Image1.Picture.Bitmap); // **
finally
EndDoc; // **
end;

{
begin
inherited;
self.Image1.Picture.LoadFromFile('c:/fu.bmp');

printer.begindoc;
printer.canvas.StretchDraw(canvas.ClipRect,image1.Picture.Bitmap);
printer.enddoc;
}

end;
 
var
DC: HDC;

dc := getdc(0);
with Printer do
try
....
R := Rect(0, 0, round(image1.picture.bitmap.width * GetDeviceCaps(Handle , HORZRES)/GetDevicecaps(dc, HORZRES)),
round(image1.picture.bitmap.height * GetDeviceCaps(Handle, VERTRES)/GetDeviceCaps(dc, VERTRES)));
....

releasedc(0,dc);
 
因该是分辨率没有处理对
Pearl说得好象有些道理呀
 
多人接受答案了。
 
后退
顶部