BitBlt打印BMP,数据量太大问题

fengrx 2009-05-18 04:44:36
问题说明:
我使用BitBlt将BMP打印至物理打印机的HDC上,只打印了一页,但在打印机窗口中大小列中显示有40M,因此导致打印时速度很慢。有什么办法可以解决此问题,谢谢!
代码:
::BitBlt(hdc,leftMargin, topMargin, pageDx, pageDy, hBmpDC,0,0,SRCCOPY);
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengrx 2009-05-19
  • 打赏
  • 举报
回复
我是把图像缩放到和纸张1:1然后打印的。

由于里边有公章,所以不能失真太明显了,图片太小不能满足要求了。

我已经把此问题解决了,方法:
点击打印时启动新的线程,在此线程中生成BMP,然后打印。这样不影响原主线程。
另外,打印时采用的分块打印。
huofen2005 2009-05-19
  • 打赏
  • 举报
回复
在本地把图片缩小下再打印吧。
纸就那么点大小,图片本身分辨率再高也是没用的。

图片缩放,推荐CxImage
fengrx 2009-05-18
  • 打赏
  • 举报
回复
图像:
宽:2000多,高3000多。Pixel。

用的是网络打印机,本机安装的打印机的驱动。
所以打印驱动把数据发过去的,程序有点死机效果了,呵呵。

本来想加SLEEP,但一页就已经这样了。

4楼的分块打印我确实也想尝试下。数据量没变,就是发的次数增多,CPU可能就不会占那么多了。
发的数据量上有什么办法减小不?
xsc2001 2009-05-18
  • 打赏
  • 举报
回复
不会吧,你这图片有多大?分块打印就行了嘛,我一般都是对于大图片分块打印。没遇到过这种问题。
greatws 2009-05-18
  • 打赏
  • 举报
回复
我觉得也没什么好方法
biweilun 2009-05-18
  • 打赏
  • 举报
回复
没什么好的建议,不好意思
fengrx 2009-05-18
  • 打赏
  • 举报
回复
大家帮下忙,解决问题后马上结帖!

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧