gpt4 book ai didi

c - LoadImage 的工作方式因获胜颜色设置而异

转载 作者:太空宇宙 更新时间:2023-11-04 04:07:28 27 4
gpt4 key购买 nike

嗨, 我正在使用 loadImage 加载一个 24 位 bmp 文件,然后尝试获取 bmp 信息

 hBitmap = (HBITMAP)LoadImage(NULL, "logo.bmp", IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_DEFAULTSIZE)
GetObject( hBitmap, sizeof(BITMAP), &bm );

当我对 Windows 颜色显示设置 32 hi color 执行相同的操作时,我得到了以下值bmBitsPixel = 32 但如果我将 Windows 颜色显示设置为 16 比我得到的bmBitsPixel = 16

谁能解释一下这是什么意思。 如果我使用以下公式计算 bmp 的大小而不是 bmp 的大小取决于窗口颜色设置。

大小 = bmWidth * bmHeight * bmBitsPixel/8

感谢和问候

最佳答案

HBITMAP 是一个 device-dependent bitmap : 它的内部表示取决于屏幕的颜色格式。

相应地,如果您将显示颜色格式设置为每像素 32 位 (bpp),那么您的位图将使用 32 bpp。如果您将颜色格式切换为 16 bpp,位图将跟随并使用 16 bpp。

您的公式是正确的,在计算位图大小时必须考虑 bmBitsPixel

关于c - LoadImage 的工作方式因获胜颜色设置而异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com