DrawDib 与 StretchDIBits 选择依据

用完StretchDIBBits后发现有个DrawDib,于是查了下这两的区别,大家你一言我一嘴,其实说得不太好(我自己没搜到好的抓狂)。

后来看看DrawDib的MSDN,一看才发现,原来微软自己已经给出了对比及调用场合建议。

下面把内容贴一下,备忘一下吧。


About the DrawDib Functions

Collectively, the DrawDib functions are similar to the StretchDIBits function in that they provide image-stretching and dithering capabilities. However, the DrawDib functions support image decompression, data-streaming, and a greater number of display adapters.

You will find it beneficial to use the DrawDib functions in some circumstances. Still, StretchDIBits is more diverse than the DrawDib functions and should be used when the DrawDib functions cannot provide the desired functionality. The following list describes factors to consider when deciding whether to use the DrawDib functions or StretchDIBits.

  • Color table information format. DrawDib functions display images that use the DIB_RGB_COLORS format for their color table. If images in your application store color table information with the DIB_PAL_COLORS or DIB_PAL_INDICES format, you must use StretchDIBits to display them.
  • Transfer mode. DrawDib functions require that your application use the SRCCOPY transfer mode. If your application uses StretchDIBits with a transfer mode other than SRCCOPY, you should continue to use StretchDIBits. Similarly, if you need to use other raster operations in your application, such as an XOR, use StretchDIBits.
  • Quality of video and animation playback. You can use the DrawDib functions for data-streaming applications, such as those that play video clips and animated sequences. The DrawDib functions outperform StretchDIBits in that they provide higher-quality images and improve motion during playback.
  • Display adapters. DrawDib functions support a greater number of display adapters than StretchDIBits supports. The DrawDib functions support VGA color adapters that provide 16-color palettes using 4-bit image depth, SVGA adapters that provide 256-color palettes using 8-bit image depth, and true-color display adapters that provide thousands of colors using 16-bit, 24-bit, and 32-bit image depths.

    The DrawDib functions also improve the speed and quality of displaying images on display adapters with more limited capabilities. For example, when using an 8-bit display adapter, the DrawDib functions efficiently dither true-color images to 256 colors. They also dither 8-bit images when using 4-bit display adapters.

  • Image-stretching. Like StretchDIBits, the DrawDib functions use source and destination rectangles to control the portion of an image that is displayed. You can crop unwanted portions of an image or stretch an image by varying the position and size of the source and destination rectangles. If a display driver does not support image-stretching, the DrawDib functions provide more efficient stretching capabilities than StretchDIBits.
  • Compressed images. The DrawDib functions will draw any format for which you have a decompressor, including run-length encoding (RLE), Cinepak, 411 YUV, and Indeo. Windows includes RLE, Cinepak, and Indeo decompressors that can be optionally installed.
Previous Next




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值