我使用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位的转换。请问我该如何做?

解决方案 »

  1.   

    把pixel format改成24位的不就行了?
      

  2.   

    分辨率似乎只有8、16、32位,你无法通过SetDisplayMode设置24位的分辨率,因此你的surface应该也只有8、16、32位,应该不能Lock到24位的surface。不知道有没有特殊的方法。
      

  3.   

    各位的意见非常的好,晚上回去调试调试,希望能如各位所说,谢谢了!另外,有没有办法不把jpg图片转成rgb,直接把jpg数据填到surface中,然后让primary surface显示出来?希望大家不领赐教,谢谢!