如果放大8倍,估计已超出TBitmap的大小限制。

解决方案 »

  1.   

    你当然要分块来处理这个大图像了!
    分块显示,分块打印,其实你本来就是几个图像,何必把它做成一个呢?
    如果要保存成文件,就自己写bmp文件,把几个图象存成一个文件,
    读的时候把一个文件读成几个图像!
    Tbitmap存在着大小限制,他不给你分配那么多的内存(内存分配错),
    好象大概是: 3000*3000*3 bytes的限制吧!
      

  2.   

    to pathe    如何分块打印,
      

  3.   

    是打到一张纸中,不分页。
    为了不失真,不能缩小原图,只能放大
    纸的尺寸为若为 145*105mm, 打印分辨率为 720dpi, 
    你可以算一下,145 / 25.4 * 720 即 4100 多点,
    即是我的图像的尺寸,
      

  4.   

    你用printer直接来做吧!它的Canvas应该可以的,你可以参考
    procedure TCustomForm.Print;
    只是注意把你的图象一张张的写进去!
      

  5.   

    我最多有十六张图,如果直接写到Printer.Canvas中好像不可靠,
    经常会缺少一张(缺的地方空白),所以我现在写到一个临时位图中,
    但又经常会遇到系统提示:参数错误,我想是临时位图太大了,
    该怎么办
    pathe
    能否给点相关代码
      

  6.   

    可以将16张图直接按位置缩放到Printer.Canvas,临时位图反而蛇足。