我通过这两种方法放大缩小图像发现前者失真比较严重,使怎么回事呢?或者说他们放大缩小算法有什么区别?

解决方案 »

  1.   

    试试 SetStretchBltMode HALFTONE 然后用 StretchBlt 再对比一下
      

  2.   

    恩,SetStretchBltMode设置为HALFTONE后,StretchBlt基本就没有失真的感觉了
      

  3.   

    Render方法是Ipicture对象内部集成的一种现实图像的函数,他的参数的格式很是奇怪,各参数的单位也很少见,StretchBlt函数有比Rvender函数更多的可控参数,但是他需要两个DC,而Ipicture只需要有目标DC就可以了。
      

  4.   

    SetStretchBltMode设置为COLORONCOLOR或者是HALFTONE都可以使图形失真变小,但是MSDN上说HALFTONE质量更好,但是我测试并没有发现差别,另外想问一个问题,MemDC的兼容位图大小怎么才能更改阿,好像创建兼容位图后选入后就固定了.
      

  5.   

    但是兼容位图过大时(10000*10000)不能创建成功,这样使得BitBlt到当前DC中的图像大小受到限制,不知道怎么解决,用StretchBlt会影响性能在Onpaint中
      

  6.   

    那没有办法,Windows本身的方法支持的位图大小有限制。
    像PS那种能支持特大图像的软件都是有自己的一套方法的,不是靠windows带的函数解决的。