社区
图形处理/算法
帖子详情
新手求教:如何直接操作CDC啊!
shally5
2005-05-11 11:18:27
新手求教:如何直接操作CDC啊!
我想直接对视的CDC中的RGB通道字节进行操作,
比如,对红、绿、蓝通道按不同条件重新赋值。。
一般用CDC的SetPixel();太慢了
(因为加了很多层绘制)
多谢!
...全文
64
3
打赏
收藏
新手求教:如何直接操作CDC啊!
新手求教:如何直接操作CDC啊! 我想直接对视的CDC中的RGB通道字节进行操作, 比如,对红、绿、蓝通道按不同条件重新赋值。。 一般用CDC的SetPixel();太慢了 (因为加了很多层绘制) 多谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
星辰游侠
2005-05-12
打赏
举报
回复
mark
shally5
2005-05-12
打赏
举报
回复
UP一下
qrlvls
2005-05-11
打赏
举报
回复
CSDN中以前的一段代码
void CComposeDoc::DrawFairy(HDC hDC, int left, int top, int mask)
{
LPBITMAPINFO lpbmif;
LPBITMAPINFOHEADER lpbmifh;
if ( m_hDIBFairy == NULL || m_hDIBBack == NULL ) // 分别是精灵图片的DIB对象和背景图片的DIB对象
return;
// // 得到精灵图片信息 //
lpbmifh=(LPBITMAPINFOHEADER)m_hDIBFairy;
lpbmif=(LPBITMAPINFO)m_hDIBFairy;
// 这里假设精灵图片的颜色深度为8位(256色)
ASSERT( lpbmifh->biBitCount==8 );
int cx=lpbmifh->biWidth; // 长度
int cy=lpbmifh->biHeight; // 宽度
int nBytesPerLineFairy=((lpbmifh->biWidth*lpbmifh->biBitCount+31)&~31)/8; // 每行字节数
UINT nColors=lpbmifh->biClrUsed ? lpbmifh->biClrUsed :
1<<lpbmifh->biBitCount; // 颜色数
LPVOID lpvBufFairy=lpbmif->bmiColors+nColors; // 精灵图片数据指针
// // 得到背景图片信息 //
lpbmif=(LPBITMAPINFO)m_hDIBBack;
lpbmifh=(LPBITMAPINFOHEADER)m_hDIBBack;
// 同样假设背景图片的颜色深度是8位(256色)
ASSERT( lpbmifh->biBitCount == 8 );
int cxBack=lpbmifh->biWidth; // 宽度
int cyBack=lpbmifh->biHeight; // 高度
int nBytesPerLineBack=((cxBack*lpbmifh->biBitCount+31)&~31)/8;// 每行字节数
nColors=lpbmifh->biClrUsed ? lpbmifh->biClrUsed :
1<<lpbmifh->biBitCount;
LPVOID lpvBufBack=lpbmif->bmiColors+nColors;// 背景图片数据指针
// // 创建精灵图片的临时DIB对象 //
int nSize=GlobalSize(m_hDIBFairy);
LPVOID lpvBufTemp=GlobalAlloc(0,nSize);
if ( lpvBufTemp == NULL )
return ;
memcpy(lpvBufTemp,m_hDIBFairy,nSize);
// 由于这里假设图片的颜色深度数8位的,用BYTE指针来表示一个像素
LPBYTE lpbBufFairy=NULL;
LPBYTE lpbBufBack=NULL;
for ( int y=cy; y>0; y-- )
{
// 读取的精灵图片数据指针
lpbBufFairy=(LPBYTE)lpvBufFairy+(y-1)*nBytesPerLineFairy;
// 相对位置的背景图片数据指针
lpbBufBack=(LPBYTE)lpvBufBack+(cyBack-top-cy+y-1)*nBytesPerLineBack+left;
for ( int x=0; x<cx; x++ )
{
// 如果当前像素等于我们设定的透明颜色索引值,修改当前像素索引值
if ( *lpbBufFairy == mask )
*lpbBufFairy = * lpbBufBack;
lpbBufFairy++;
lpbBufBack++;
}
}
// 画精灵图片到屏幕上
SetDIBitsToDevice(hDC,left,top,cx,cy,0,0,0,cy,lpvBufFairy,
(LPBITMAPINFO)m_hDIBFairy,DIB_RGB_COLORS);
// 回复原来的精灵图片数据
memcpy(m_hDIBFairy,lpvBufTemp,nSize);
GlobalFree(lpvBufTemp);
}
linux yum makecache,yum make cache 出错
新手
求教
该楼层疑似违规已被系统折叠隐藏此楼查看此楼一切都按照163更改源的文档做的,就是出错
新手
求教
[root@chi yum.repos.d]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo--2015-08-14 08:41:30-- http://mirrors.163.com/.help/CentOS6-Base-163....
c++中非静态函数不能用类名调用,为什么CWnd的成员函数GetDC()可以
直接
调用啊?
c++中非静态函数不能用类名调用,为什么CWnd的成员函数GetDC()可以
直接
调用啊?
CDC
::Lineto提示 非静态成员引用必须与特定对象相对 还有,为什么CWnd的许多函数都可以
直接
调用?
新手
求赐教 在本类实例中隐藏了this其实是this->GetDC( ); 追问 什么时候会隐藏this啊?
CDC
的那
CSDN回帖得分大全(近两年)
√vs2005调用dll的时候Initialize()函数返回错误 [VC/MFC 基础类] 40 ylongwu 05-21 20:486 ylongwu06-28 13:42管理√为什么我创建登陆框之后,然后获取登陆框的数据时候总是出现非法
操作
! [VC/MFC 界面] 40 chencheng8095 05-23 00:2911 xianglitian06-10 11:51管理√CFileFind::FindFile 支持通配符么? [VC/MFC 基础类] 100 wysbk002 05-22
MAPGIS二次开发常见问题汇总
我每次响应CGisview::onmousemove和CGisview::onlfbuttondown这些函数时,获取的cpoint是窗口坐标,每当用_AppendLin()_AppendReg()这些函数时好象又是逻辑坐标,和文件坐标信息一致,但我用_MoveTo(),_LineTo(),_Circle()_Rect()等函数时,用_AppendLin()_AppendReg()中同样的坐标,但显示结果不是一样位置。答:在webgis中能够对点线面文件进行
操作
,可以根据用途的不同,可以进行不同的
操作
。
链接:MSDN UserNet等
Q我想知道如何在VC中实现可塌陷的PanelBar界面(类似于OutlookBar)? T可塌陷的PanelBar界面比outlookbar更有吸引力,Windows XP左边的导航工具面版就是采用这种风格,采用这种风格的应用程序也越来越多,比如各种杀毒软件,可能delphi提供的vcl组件可以简化这种
操作
,对于这种“傻瓜式”的实现我不喜欢。我还是想用C++,实现这种界面,而且我不喜欢附带额外的动
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章