bmp位图的问题.急急急

flood75 2001-12-10 05:21:50
将一幅bmp位图load到屏幕上显示后,如何从屏幕上获取点的数据(RGB分量) 写入后台数组中.谢谢
...全文
197 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wq_quake 2001-12-10
  • 打赏
  • 举报
回复
void CImageformatView::OnMouseMove(UINT nFlags, CPoint point)
{
if (m_capturl == true)
SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR_HAND));
if (m_capturr == true)
SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR_HANDR));

int r,g,b; // 存放各颜色的亮度值
RGBQUAD* pointer; // 定义颜色的结构体指针
COLORREF m_color; // RGB 的数值类型对象
CClientDC dc(this); // 获取设备指针
CString value;
// 得到应用程序的窗体对象的句柄,主要是状态条对象
CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CStatusBar* pStatus = &pFrame->m_wndStatusBar;

CRect temprect; // 由于自定义的鼠标中心点
// 与原始的起始点不同,做一下调整
temprect.top = m_rect.top - 16;
temprect.left = m_rect.left - 16;
temprect.bottom = m_rect.bottom - 16;
temprect.right = m_rect.right - 16;
// 由于本程序窗体没有以CSCROLLVIEW为基类不具滚动特性
// 因而对大于视窗尺寸的图像不能完整显示
// 此种情况下处理不能完整显示的图像的测量
m_color = dc.GetPixel(point);
pointer = (RGBQUAD*)&m_color;
r = (int)(pointer->rgbBlue);
g = (int)(pointer->rgbGreen);
b = (int)(pointer->rgbRed);
if (pStatus){
value.Format("%d",r);
pStatus->SetPaneText(7,value);
value.Format("%d",g);
pStatus->SetPaneText(9,value);
value.Format("%d",b);
pStatus->SetPaneText(11,value);
}
if (temprect.PtInRect(point)){
// 由于自定义的鼠标中心与实际点有一定的偏差
// 所以要经过反向再移回来
SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR_CACULATE));
m_color = dc.GetPixel(point.x + 16,point.y + 16);
pointer = (RGBQUAD*)&m_color;
r = (int)(pointer->rgbBlue);
g = (int)(pointer->rgbGreen);
b = (int)(pointer->rgbRed);
if (pStatus){
value.Format("%d",r);
pStatus->SetPaneText(7,value);
value.Format("%d",g);
pStatus->SetPaneText(9,value);
value.Format("%d",b);
pStatus->SetPaneText(11,value);
}
}
}
Martens 2001-12-10
  • 打赏
  • 举报
回复
如果你用mfc的show图函数的话,直接得到当前的dc,使用dc的GetPixel函数就可以了。就是GZCompiler说的
hoco 2001-12-10
  • 打赏
  • 举报
回复
你是用loadbitmap()的吗?最好自己编写一个load函数吧!直接从bmp文件里面将数据读取出来。那样的话,准确一点。
sunyuzhe114 2001-12-10
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/411/411075.shtm
代码有13000行的超cool表格程序,如何开发成activeX控件,有兴趣的人留下email,我把源程序发给你们
分数为150分
十万火级,如能给出答案,再送300分
有兴趣的人留下email
我把程序发给你们。
一个很cool的表格程序,请问如何改为activeX控件,有兴趣的我把源代码发给你们,感兴趣的人留下email,
是vc写的非常cool

GZCompiler 2001-12-10
  • 打赏
  • 举报
回复
用Getpixel()函数,他返回一个COLORREF类型的值,该值记录了该点的RGB分量值。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧