我把bmp中的数据读出来了,在Print的时候,是用StretchDIBits函数画到PrintDC上的,目标高和宽是自己设置的,预览和打印出来有花的条纹。不知道是什么问题,希望大家给点意见,谢谢!  另外,我看有人说先画到MemDC上再StretchBlt到PrintDC上,不知道这样行不?  希望大家给点意见,谢谢!

解决方案 »

  1.   

    显示清楚吗?有花的条纹?图像倾斜吗?如果不清晰画到MemDC上也照样不清晰。
      

  2.   

    找找你数据排列是不是正确吧。
    倾斜有时是图像宽度与显示的宽度不一致,更大的可能是图像宽度问题,如果
    每行字节数 = 宽度*3(假设真彩)不能被4整除,就给它补几个字节强迫它被4整除,图像数据总的大小=每行字节数*图像高。有这个问题的图像除了扭曲还有偏色现象。估计你不是打开现成的BMP图像,自己合成的吧。
      

  3.   

    我bmp图像是截取屏幕上的图片,宽度是4的倍数,这个没问题。是不是目标区域宽度像素也应该是4的倍数呢?我是MM_LOMETRIC映射模式,目标区域宽和高都是mm为单位的,这影响不?
    谢谢!
      

  4.   

    使用 BitBlt 看看效果, 估计是StretchDIBits导致图像失真了
      

  5.   

    StretchDIBits会缩放,导致图像失真,只有按照图像真实尺寸打印才不会出现这个问题。