c++ - 16 bpp 到 32 bpp 的转换

标签 c++ winapi gdi

我们有一个采用 32 bpp 数据的编码器库。我们有一个屏幕捕获库,它也需要支持 16 bpp。每当我需要将新的屏幕截图传递给编码器时,我想将 16bpp 的原始数据转换为 32bpp。如何有效地完成它,还有其他选择吗?

我不想更改编码器库,因为这也需要更改编码器的上游。

谢谢!

最佳答案

您可以将源位图加载到 HBITMAP 中,创建具有所需像素格式的目标位图,然后将源位图绘制到目标位图上。这将是最简单的方法。

如果您想直接使用这些位,那是可能的,但让系统为您操心会更容易。系统执行此操作时可能会更快,因为它会得到很好的优化。

关于c++ - 16 bpp 到 32 bpp 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4387830/

相关文章:

c# - 从 WindowsFormsHost 中的 Windows 窗体控件获取 WPF 窗口

c++ - 避免或改进暴力破解方法 : Counting character repetition from all words in a dictionary text file

c++ - 如何将闪存驱动器设置为只读?

c++ - 在 Qt 中获取原始鼠标移动

c++ - GDI 函数在绘图时将 Alpha channel 设置为 0。为什么?

c - 什么是 Windows DIB?

c++ - 如果尝试将负数分配给未签名的容器,是否有导致编译错误的方法?

c++ - 如何返回 C++ 中递归函数被调用的次数?

从 LPVOID 转换为结构体 - C

linux - 我们为添加到系统的任何文件向操作系统注册的事件