社区
游戏开发
帖子详情
有兴趣讨论讨论:VC中如何将图象快速显示在屏幕的任意区域
wine
2001-08-14 10:21:05
谁有好办法,只用MFC和API里的函数快速将内存里的内容显示到屏幕的任意矩形区域,
...全文
142
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++绘图参考(翻译版本).
- **在形状
中
平铺图像**:重复
显示
同一张图像以填充整个形状。 - **用渐变色填充形状**:使用 `LinearGradientBrush` 或 `PathGradientBrush` 来创建渐变效果。 #### 图像、位图和图元文件 在 GDI+
中
,可以轻松地...
VC
中
如何在对话框上
显示
位图
在用
VC
开发应用程序的时候,经常要在对话框上
显示
位图。如果把位图加入资源
中
,当然是省时省力,但程序却也增肥不少,并且失去了灵活性。而如果你要动态地
显示
一大堆图片,各个图片大小不一,这岂不…本文就是介绍...
利用
VC
实现图像的特殊
显示
效果
经常看电视的朋友们不知注意到没有,最近的电视连续剧在每集片头或片尾部分都有
显示
一些特殊效果的图像,比如前一阵子
中
央一套放的《长征》、目前
中
央八套正在播放的《康熙王朝》,这些特效称为"图像的浮雕效果"和...
VC
图像编程
图象
拼接是在全景视频系统、地理信息系统等应用
中
经常遇到的一个问题,本文基于网格匹配的方法对边界部分有重叠的
图象
提出了一种行之有效的对准算法,并通过平滑因子对
图象
实现了无缝拼接。并应用文档视窗模型实现...
VC
图像处理(转)
图像处理http://www.cnblogs.com/wiseman/archive/2005/03/31/69701.html 利用
VC
实现图像的特殊
显示
效果经常看电视的朋友们不知注意到没有,最近的电视连续剧在每集片头或片尾部分都有
显示
一些特殊效果的图像,比如...
游戏开发
8,324
社区成员
23,684
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章