社区
游戏开发
帖子详情
有兴趣讨论讨论:VC中如何将图象快速显示在屏幕的任意区域
wine
2001-08-14 10:21:05
谁有好办法,只用MFC和API里的函数快速将内存里的内容显示到屏幕的任意矩形区域,
...全文
139
11
打赏
收藏
有兴趣讨论讨论:VC中如何将图象快速显示在屏幕的任意区域
谁有好办法,只用MFC和API里的函数快速将内存里的内容显示到屏幕的任意矩形区域,
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wine
2001-08-16
打赏
举报
回复
不好意思问题找到了:
pbMem[i*3] = clrr;
pbMem[i*3+1] = clrg;
pbMem[i*3+2] = clrb;
偶还是希望对SetDIBitsToDevice()更深点了解,哪位大虾有这方面的资料请
MIAL:zh_x_l@263.net
或告知 ths :)
这作为小游戏的屏幕刷新挺好的
wine
2001-08-15
打赏
举报
回复
那bmiColors[]在24、32位时填何内容,SetDIBitsToDevice()速度确实快,里面的参数太费解,填得不对,
没看出效果,哪为大侠有相关源码MIAL:zh_x_l@263.net或贴出来让偶研究研究,先谢了
c_z_y
2001-08-15
打赏
举报
回复
bmiColors[]在256色时是调色版,在16位色的时候,是颜色掩膜。24,32色没有意义。
c_z_y
2001-08-15
打赏
举报
回复
bmiColors[]是调色版,在16位色的时候,是颜色掩膜。
gamedragon
2001-08-15
打赏
举报
回复
24、32位色不需要调色板,图像数据里就直接包含了颜色的RGB分量
wine
2001-08-15
打赏
举报
回复
我试了在一对话框中画东西,但画出的矩形是黑的或灰的且矩形上3分之2部分一直是黑的,
下3分之1一直是按灰度方式闪烁,而没出现设想的彩色块,现附上关键源码,哪位大侠帮忙看看
//初始值
BITMAPINFOHEADER bmhead =
{sizeof(BITMAPINFOHEADER),
400, //宽
300, //高
1,
24, //24位真彩
BI_RGB, //非压缩
0,0,0,0,3000
};//不知此结构值是否有问题,未给bmiColors赋值
rgbBMINFO.bmiHeader = bmhead;
void* pviMem = ::GlobalAlloc(GMEM_FIXED,400*300*3);//分配全局内存
SetTimer(1, 50, NULL);
iWidth=400;
iHight=300;
//主要刷新工作
void CVideoDlg::OnTimer(UINT nIDEvent)
{
HDC hdc = this->GetDC()->GetSafeHdc() ;
long i,j;
BYTE clrr,clrg,clrb;
byte* pbMem = (byte*)pviMem;
if(!bStop)
{if(hdc)
{
clrr = rand();
clrg = rand();
clrb = rand();
for(i = 0; i <= 400*300; i++)//iWidth*iHight
{
pbMem[i] = clrr;
pbMem[i+1] = clrg;
pbMem[i+2] = clrb;
}
SetDIBitsToDevice(hdc,5,0,iWidth,iHight,0,
iHight,iHight,iHight,pviMem,&rgbBMINFO,DIB_RGB_COLORS);
}
CDialog::OnTimer(nIDEvent);
}
gamedragon
2001-08-14
打赏
举报
回复
用SetDIBitsToDevice()函数,只需要建一个BITMAPINFO结构
wine
2001-08-14
打赏
举报
回复
内存里的东西有近1M,只有数据没结构信息,我不想用CBITMAP类再耗一块存储区,各位谁编过类似程序的请指教
wine
2001-08-14
打赏
举报
回复
谁知道BITMAPINFO结构中RGBQUAD bmiColors[]是起什么作用的,我理解为使用到的颜色数组,如果24位的图片启不要分配2^24,本人理解有误请指教,
c_z_y
2001-08-14
打赏
举报
回复
SetDIBitsToDevice()速度极快,据我猜测,可能是用DMA方式传输内存到显存。不需要另外的
数据存储区。
wine
2001-08-14
打赏
举报
回复
gamedragon(gamedragon) 用SetDIBitsToDevice()需要额外的存储开销吗?如果还要另外的数据存储区的话,就得将1M的东西再拷贝一下,速度肯定快不了。
VC
++使用GDI++绘图参考(翻译版本).
VC
++使用GDI++绘图参考(翻译版本).
VC
中
如何在对话框上
显示
位图
在用
VC
开发应用程序的时候,经常要在对话框上
显示
位图。如果把位图加入资源
中
,当然是省时省力,但程序却也增肥不少,并且失去了灵活性。而如果你要动态地
显示
一大堆图片,各个图片大小不一,这岂不…本文就是介绍如何在对话框上
显示
位图,并且如何让对话框自动适应位图的大小的。 ----
VC
对位图的操作比较烦琐,要
显示
一个位图到对话框上去,很麻烦。我在开发的过程
中
走通了两条路:一是使用Kodak
图象
利用
VC
实现图像的特殊
显示
效果
经常看电视的朋友们不知注意到没有,最近的电视连续剧在每集片头或片尾部分都有
显示
一些特殊效果的图像,比如前一阵子
中
央一套放的《长征》、目前
中
央八套正在播放的《康熙王朝》,这些特效称为"图像的浮雕效果"和"图像的雕刻效果",经过这些特效处理后的图像增强了观众们的视觉效果,它们看上去仿佛是使用3D技术作的,这也是为什么这种技术那么流行的原因吧。其实,我们完全可以用一些简单的数字图像处理算法来实现这些看似...
VC
图像编程
--
VC
多媒体编程 -- Visual C++
中
基于多文档视窗模型的重叠
图象
拼接技术 摘要
图象
拼接是在全景视频系统、地理信息系统等应用
中
经常遇到的一个问题,本文基于网格匹配的方法对边界部分有重叠的
图象
提出了一种行之有效的对准算法,并通过平滑因子对
图象
实现了无缝拼接。并应用文档视窗模型实现了该算法,并完成了位图文件的
显示
、存储等操作,具有一定的普遍意义。
VC
图像处理(转)
图像处理http://www.cnblogs.com/wiseman/archive/2005/03/31/69701.html 利用
VC
实现图像的特殊
显示
效果经常看电视的朋友们不知注意到没有,最近的电视连续剧在每集片头或片尾部分都有
显示
一些特殊效果的图像,比如前一阵子
中
央一套放的《长征》、目前
中
央八套正在播放的《康熙王朝》,这些特效称为"图像的浮雕效果"和"图像的雕刻效果",经过这些
游戏开发
8,325
社区成员
23,684
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章