SetDIBits在屏幕画图
时间:2011-08-18
来源:互联网
要在屏幕画图,setpixel太慢了,用setDIBits实现,但是没有出来效果,求高手赐教
代码如下:
HDC dc,memdc;
HBITMAP memBmp;
dc = GetDC(mainWindowHandle);
memdc=CreateCompatibleDC(dc);
memBmp=CreateCompatibleBitmap(dc,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));
SelectObject(memdc,memBmp);
DWORD size=512*512; //每行像素位*图高
BYTE* pBuf=new BYTE[size];
BITMAPINFO binfo;
ZeroMemory(&binfo,sizeof(BITMAPINFO));
binfo.bmiHeader.biBitCount=24; //每个像素多少位,也可直接写24(RGB)或者32(RGBA)
binfo.bmiHeader.biCompression=0;
binfo.bmiHeader.biHeight=512;
binfo.bmiHeader.biPlanes=1;
binfo.bmiHeader.biSizeImage=0;
binfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
binfo.bmiHeader.biWidth=512;
GetDIBits(memdc,memBmp,0,binfo.bmiHeader.biHeight,pBuf,(BITMAPINFO*)&binfo,DIB_RGB_COLORS);
//逐点处理,这里是用来作淡出效果
//这里是一个颜色分量8位,而不是一个像素
for(int i=0;i<50000;i++)
{
pBuf[i]=150;
}
//全图处理完毕读出到屏幕dc显示
SetDIBits(dc,memBmp,0,binfo.bmiHeader.biHeight,pBuf,(BITMAPINFO*)&binfo,DIB_RGB_COLORS);
代码如下:
HDC dc,memdc;
HBITMAP memBmp;
dc = GetDC(mainWindowHandle);
memdc=CreateCompatibleDC(dc);
memBmp=CreateCompatibleBitmap(dc,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));
SelectObject(memdc,memBmp);
DWORD size=512*512; //每行像素位*图高
BYTE* pBuf=new BYTE[size];
BITMAPINFO binfo;
ZeroMemory(&binfo,sizeof(BITMAPINFO));
binfo.bmiHeader.biBitCount=24; //每个像素多少位,也可直接写24(RGB)或者32(RGBA)
binfo.bmiHeader.biCompression=0;
binfo.bmiHeader.biHeight=512;
binfo.bmiHeader.biPlanes=1;
binfo.bmiHeader.biSizeImage=0;
binfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
binfo.bmiHeader.biWidth=512;
GetDIBits(memdc,memBmp,0,binfo.bmiHeader.biHeight,pBuf,(BITMAPINFO*)&binfo,DIB_RGB_COLORS);
//逐点处理,这里是用来作淡出效果
//这里是一个颜色分量8位,而不是一个像素
for(int i=0;i<50000;i++)
{
pBuf[i]=150;
}
//全图处理完毕读出到屏幕dc显示
SetDIBits(dc,memBmp,0,binfo.bmiHeader.biHeight,pBuf,(BITMAPINFO*)&binfo,DIB_RGB_COLORS);
作者: a043028448 发布时间: 2011-08-18
有人回答吗
作者: a043028448 发布时间: 2011-08-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28