我用以下列印圖片時圖像支旋轉了180度,這是為什麼?
X := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
Y := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(300,300,dbimage1.Picture.Width*x+100,dbimage1.Picture.Height*y+100);
Printer.Canvas.StretchDraw(R,dbimage1.Picture.Bitmap);

解决方案 »

  1.   

    還想請教一個問題:在canvas中怎樣畫線,比如我想在畫布的X軸為200的地方畫一條直線要怎樣寫
      

  2.   

    画线,MoveTo(X,Y)起始点,LineTo(X,Y)终止点.
      

  3.   

    画线,MoveTo(X,Y)起始点,LineTo(X,Y)终止点.這要怎樣用啊,我上面那語句要怎樣修改,快幫幫我,急啊,謝謝啦!
      

  4.   

    //BitMap = dbimage1.Picture.Bitmap
    procedure xxx.Print(PixelsPerInch: Integer);
    const
      pagetype = 'A4';
    var
      ScaleX, ScaleY: Integer;  //打印机 div 屏幕
      R: TRect;
      yw, yh: integer;
    begin
      yw := m_BitMap.Width * m_Percent div 100;
      yh := m_BitMap.Height * m_Percent div 100;
      BitMapClear;
      Paint(m_BitMap.Canvas);
      with Printer do
      try
        BeginDoc;  // **
        ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
        ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
        R := Rect(0, 0, yw * ScaleX, yh * ScaleY);
        Canvas.StretchDraw(R, m_BitMap);  // **
      finally
        EndDoc;  // **
      end;
    end;//画线
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      canvas.MoveTo(1,1);
      canvas.LineTo(100,100);
    end;
      

  5.   

    BitMapClear;
      Paint(m_BitMap.Canvas);
    这两句去掉