DirectDraw的问题,24bitRGB和32bitRGB

linxinru 2005-02-02 11:26:37
我使用DirectDraw7来显示RGB图像:
(1)显示的源图像是352×288的RGB 24位图像
(2)建立Primary surface和 back surface
(3)装载24位的图像数据到back surface中。
(4)back surface到primary surface的render。

问题出在步骤(3):调用Lock后发现pixel format是32位,于是我必须把24位的图像转成32位的图像。我希望back surface在Lock后就是24位,这样我好直接使用memcpy,而不用24到32位的转换。请问我该如何做?
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
DentistryDoctor 2005-02-02
  • 打赏
  • 举报
回复
自己设置PixelFormat.
linxinru 2005-02-02
  • 打赏
  • 举报
回复
各位的意见非常的好,晚上回去调试调试,希望能如各位所说,谢谢了!

另外,有没有办法不把jpg图片转成rgb,直接把jpg数据填到surface中,然后让primary surface显示出来?

希望大家不领赐教,谢谢!
popy007 2005-02-02
  • 打赏
  • 举报
回复
分辨率似乎只有8、16、32位,你无法通过SetDisplayMode设置24位的分辨率,因此

你的surface应该也只有8、16、32位,应该不能Lock到24位的surface。不知道有没有

特殊的方法。
ipgk 2005-02-02
  • 打赏
  • 举报
回复
IDirectDraw7::SetDisplayMode
chijingde 2005-02-02
  • 打赏
  • 举报
回复
把pixel format改成24位的不就行了?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧