新年快乐,年前最后一个问题,200分悬赏,有关超大图片的打印问题。难死思归等五星级高手哟
nga96 2005-02-04 02:33:11 这个问题困了我半年,估计只能拖到年后解决了。现200分悬赏高手求解。
客户需求如下:有一张超大的BMP图片,A4纸相当于50页吧,要求打印出来。
打印我做过,于是打那图片读入到内存中,先分好页,然后一页一页打。这些偶都会。
问题是:将图片读入内存大约耗了我50M的内存,这个可以接受。可是,打印时,发现每打印一页,就又要消耗40M内存,这样,当打印到20页时,就耗了1G的内存了,死机啦。
于是偶进行了跟踪,发现在打印事件中,对PrintDocument画图时,调用e.graphics.drawimage()方法时,要消耗40M内存。这样,当客户连续打印时,肯定要死机的。偶于是怀疑是否每打印一页时是否要释放资源,可是试了好几次dispose()方法,发现就是不能释放内存,哭。非得等程序退出时才释放。
难道 Graphics.Drawimage()方法在画BMP时处理不好?