【发布时间】:2009-07-27 17:45:17
【问题描述】:
我对 DirectX 比较陌生,必须处理现有的 C++ DX9 应用程序。该应用程序在相机图像上进行跟踪并显示一些 DirectDraw(即 2d)内容。相机的纵横比为 4:3(始终),屏幕未定义。
我想加载一个纹理并将这个纹理用作蒙版,因此内容的跟踪和显示仅在纹理的蒙版区域内完成。因此,我想加载与相机图像大小完全相同的纹理。
我已经完成了加载纹理的所有步骤,但是当我调用GetDesc() 时,D3DSURFACE_DESC 结构的字段Width 和Height 是下一个更大的2 次方大小。我不在乎纹理使用的实际内存是否针对显卡进行了优化,但我没有找到任何方法来获取硬盘上原始图像文件的尺寸。
我确实(并且确实如此,但没有成功)搜索了将图像仅加载到计算机 RAM 中的可能性(不需要显卡)而不向代码添加新的依赖项。否则我将不得不使用 OpenCV(在跟踪方面这可能是个好主意),但目前我仍然尽量避免包含 OpenCV。
感谢您的提示, 诺伯特
【问题讨论】: