欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

到底如何把修改后的图片显示出来,求大家帮助!

更新时间: 2014-01-05 03:10:49 责任编辑: Author_N1

 

到底怎么把修改后的图片显示出来,求大家帮助!!
各位好,我做了一个图片的二值化,把打开的图片进行二值化,然后显示出来,二值化成功了,但是怎么也没办法显示,请帮着看一下到底是哪里的问题!!

//这个是打开图片按钮
void CNcistTestDlg::OnBnClickedButOpen()
{
CFileDialog dlg(TRUE, _T("BMP"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
_T("BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*||"));
if(dlg.DoModal() != IDOK)
{
return;
}

//读取BMP文件到m_pBuffer
CString bmpPath = dlg.GetPathName();
HBITMAP hBitmap = SHLoadDIBitmap(bmpPath);
if(false == m_image.IsNull()){
m_image.Destroy();
}
m_image.Attach(hBitmap);


}
//这个是显示
void CNcistTestDlg::OnPaint()
{
//CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
CRect rect;

if(m_image && false == m_image.IsNull())
{
// 居中画
CPaintDC dc(this);
m_image.Draw(dc, 120, 80, 200, 150, 0, 0, 200, 150);
}
CDialog::OnPaint();

}
//这个是二值化按钮
void CNcistTestDlg::OnBnClickedButSearch()
{
COLORREF pixel;
int r,g,b;
int iWidth,iHeight;
int g_imgW;
    int g_imgH;
CPaintDC dc(this);

iWidth = m_image.GetWidth();
    iHeight = m_image.GetHeight();

g_imgW = iWidth;
g_imgH = iHeight;

int i = 0;
int j = 0;
for(i = 0; i < iHeight; i++){
for(j = 0; j < iWidth; j++){
pixel = m_image.GetPixel(j,i);
r = GetRValue(pixel);
g = GetGValue(pixel);
b = GetBValue(pixel);
if((r + g + b) <= 127 * 3){
m_image.SetPixelRGB(j,i,0,0,0);

}
else{
m_image.SetPixelRGB(j,i,255,255,255);
}
}
}

m_image.Draw(dc, 120, 80, 200, 150, 0, 0, 200, 150);}
红色的字能显示吗?或者怎么写?求其大家了
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:10:49
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19266/
本文WWW.DOC100.NET DOC100.NET版权所有。