到底如何把修改后的图片显示出来,求大家帮助!
到底怎么把修改后的图片显示出来,求大家帮助!!
各位好,我做了一个图片的二值化,把打开的图片进行二值化,然后显示出来,二值化成功了,但是怎么也没办法显示,请帮着看一下到底是哪里的问题!!
//这个是打开图片按钮
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);}
红色的字能显示吗?或者怎么写?求其大家了
各位好,我做了一个图片的二值化,把打开的图片进行二值化,然后显示出来,二值化成功了,但是怎么也没办法显示,请帮着看一下到底是哪里的问题!!
//这个是打开图片按钮
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);}
红色的字能显示吗?或者怎么写?求其大家了
图片
bmp
二值化,wince
- 1SendARP失去的地址不能动态改变
- 2pda条码扫描上传到服务器有关问题
- 3C#程序在winCE系统上串口通信出现内存泄露,该如何处理
- 4Wince Compact framework 2.0下有sqlite的开发库么解决办法
- 5EVC4.0上用的WINCE4.2的SDK为何VS2005上不能用
- 6wince 6.0下UDP通信亟需注意MAC地址
- 7wince7.0 + IE7.0 在浏览器中打开A 网页,再在A网页中跳转到B页,然后在B页跳转到A页,如此循环几次,就会产生死机,请高手帮忙,多谢
- 8wince nand分区的有关问题
- 9wince里面的CListCtrl是不是可以把长按后打点去掉
- 10wince里的错误是如何捕获的
文章评论
相关解决方案