我要做一个程序将主表面的部分内容截取并加工后显示在覆盖表面
而主表面创建时不能指定像素格式(刚学DX,不知道是不是这样,如果有错误请更正),通过调试可以看到它创建的是RGB565的
而覆盖表面不能创建RGB的(运行DXSDK附带的OVERLAY演示时也是如此,请顺便告诉我下如何获得显卡支持哪些像素格式覆盖表面的信息),但可以创建YUY2的,但直接Blt后颜色显示不正常(废话,格式都不同),白色显示为粉色,黑色显示为绿色
望高手们帮我解决,最好就是能告知如何创建格式一样的主表面和覆盖表面,这样的话性能也不会损失
实在不行的话告诉我RGB-〉YUY2的转换算法我自己来转换
这个问题烦着好几天了,急!!!分不多,全部100送上
而主表面创建时不能指定像素格式(刚学DX,不知道是不是这样,如果有错误请更正),通过调试可以看到它创建的是RGB565的
而覆盖表面不能创建RGB的(运行DXSDK附带的OVERLAY演示时也是如此,请顺便告诉我下如何获得显卡支持哪些像素格式覆盖表面的信息),但可以创建YUY2的,但直接Blt后颜色显示不正常(废话,格式都不同),白色显示为粉色,黑色显示为绿色
望高手们帮我解决,最好就是能告知如何创建格式一样的主表面和覆盖表面,这样的话性能也不会损失
实在不行的话告诉我RGB-〉YUY2的转换算法我自己来转换
这个问题烦着好几天了,急!!!分不多,全部100送上
解决方案 »
- 关于MFC多线程中对控件变量的访问问题
- Onpaint()函数为什么在窗口打开的时候经常会执行2次呢
- MFC中用函数传参ShellExecute如何接受参数?
- 如何设置字体及单文档的大小?
- 请问:如何更改系统默认的屏幕保护程序?
- ListCtrl中编辑问题 大侠快来救命啊(100分呀)
- 我要在excel中加入一条菜单条,怎么做?
- ◆哪里有窗口消息、命令消息、通知消息、反射消息、钩子消息等各种消息处理的示例源码和讲解?
- 关于键盘消息,在线着急
- debug和release版本有什么区别?
- 为什么用 HtmlView 看到的效果与 IE 不一样?
- 请问VC2003中什么文件包含 原来VC6中的fstream.h
有过实际经验的大虾来帮忙啊
从RGB转换到YUYV/UVYV有很大的优化空间,可以在网上找个xvid(是开源的)的源码,里面有各种格式的RGB与YUV格式的转换代码(C++和MMX asm)。
#define RGB565_MASK_RED 0xF800
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F
R = (wPixel & RGB565_MASK_RED) >> 11; // 取值范围0-31
G = (wPixel & RGB565_MASK_GREEN) >> 5; // 取值范围0-63
B = wPixel & RGB565_MASK_BLUE; // 取值范围0-31
现在终于找到合理一点的公式,但是颜色还是有一定的失真,不知道问题出在哪
PS:既然叫RGB565那么提取出来的RGB范围就应该是5位6位5位,也就是说那篇文章里的提取方法是正确的,我在使用中是把值分别乘8、4、8,不知道这样对不对,感觉精度会损失,但是就如我前面说的,主表面的像素格式我也改不了啊(是不是这样,还没人回答呢),否则就用24位的了
没有人提供更多的信息了吗,再看看没有的话只能先给上面几位结了