图片加载到Canvas后,
如果才能保证加载为1:1比例,并且打印也是1:1的比例.我把像素转换为点数了的...但是预览后的图片不为1:1  感觉很大.....
我想可能是图片跟像素的换算问题..
如何控制呢??  等待最佳答案....

解决方案 »

  1.   

    procedure TfrmPicHisData.ShowChangeBmp(const intBmpTag: integer
                                ; const intWidth, intHeigth:integer);
    var
      strBmpPath:string;
      bmp:Tbitmap;
    begin
      DestroyImagePicture;     //图片清空
      strBmpPath:=marayBmpData[intBmpTag].strBmpAllFileName;
      bmp := TBitmap.Create();
      try
        bmp.LoadFromFile(strBmpPath);    mShowBmpData.intBmpTag:=intBmpTag;    mShowBmpData.Bmp.Width:=intWidth;
        mShowBmpData.Bmp.Height:=intHeigth;    mShowBmpData.intWidth:=intWidth;
        mShowBmpData.intHeigth:=intHeigth;    mShowBmpData.Bmp.Left:=15;
        mShowBmpData.Bmp.Top:=10;    mShowBmpData.Bmp.Canvas.StretchDraw(Rect(0, 0, intWidth, intHeigth), bmp);
      finally
        bmp.Free;
      end;
    end;//这是我加载的图片的方法,
    //用一个IMAGE就好了,你要多大的图片就设置多大的IMAGE的宽,跟高,
    //再用mShowBmpData.Bmp.Canvas.StretchDraw(Rect(0, 0, intWidth, intHeigth), bmp);
    //就好了
      

  2.   

    我再 打印的 时候事动态创建的 Canvas 
    预览的时候可能没有向下面这样固定画布的尺寸,
        mShowBmpData.Bmp.Left:=15;
        mShowBmpData.Bmp.Top:=10;由于事控制打印的精确性。代码有点多,我再测试下 看看 。。
      

  3.   

    测试了下,不可行啊..
    图片本身的像素为300dpi,长宽为70,150
    我设置了IMAGE画布的长宽尺寸分别为 70,150,
    预览后,看到的图片是模糊的,不清晰,
    我想应该是跟像素有关,怎么来有效控制显示的尺寸1:1呢?
    并且在不同显示器的DPI可能也不一样,代码如何实现...