如果我创建了一个DIB使用 CreateDIBSection(), 我可以指定是否应该自上而下或自下而上通过设置 biHeight 现场的 BITMAPINFOHEADER 结构,消极或积极的价值。然而,如果我呼叫 GetObject() 在诸位,以填补一个 DIBSECTION 结构,然后这两个 dsBm.bmHeightdsBmih.biHeight 似乎总是积极的。

有没有办法找出如果一个DIB自上而下或自下而上的时候我已经是的 HBITMAP?

有帮助吗?

解决方案

我想最好你是要能够获得从HBITMAP要GetDIBits.该问题与GetDIBits但是,它也需要一个裂和HBITMAP是一个恒.

参见: GetDIBits功能

我不是积极的,但其可能你会失去任何顶downness在转换。

其他提示

没有;你需要的BITMAPINFOHEADER,这是不可恢复从HBITMAP.

没有方法检索这一信息从GDI。如你所发现的实实在在的位图和BITMAPINFOHEADER bmHeight领域检索到通过许总是积极的。该bmWidthBytes场是,同样,积极的。如果你画上(或)的DIBSection使用GDI处理GDI会提请DIBSection的正确方法。使用萃取BITMAPINFOHEADER是会得到顶下位图错误的。

唯一的方式来告诉从用户模式似乎是使用GDI试SetPixel左顶部和底左素位于两个不同的数值,然后读取的缓冲区看到其中写降落在第一个存储位置。

真的是最好的选择是建立进入你的API-whever你传递一个DIBSection作为一个HBITMAP,确保至少有一个bool fIsDibSectionTopDown传递或储存。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top