VS图像处理(二)——图像打开与反色

目录

一、打开图像 

二、图像反色处理  ​


一、打开图像 

void CMFCApplication1Doc::OnFileOpen()
{
	// TODO: 在此添加命令处理程序代码
	//打开文件对话框
	CFileDialog Ofd(true);
	//判断是否确认打开文件,不打开则返回
	if (Ofd.DoModal() != IDOK)return;
	//获得文件名称
	filename = Ofd.GetPathName();
	//获得文件扩展名
	extname = Ofd.GetFileExt();
	//显示文件名或扩展名-测试
	//AfxMessageBox(filename);

如果是bpm格式图像,依次读取图像的文件头、信息头、颜色表、数据

if (extname == "bmp")
	{
		BITMAPFILEHEADER bfh;
		BITMAPINFOHEADER bih;

		//读文件头
		logfile.Read(&bfh, 14);
		//读信息头
		logfile.Read(&bih, 40);
		//读颜色表
		for (int i = 0; i < 256; i++)
			logfile.Read(&RGB[i], 4);
		//读数据
		//获得图像宽度和高度
		Width = bih.biWidth;
		Height = bih.biHeight;
		//指针初始化
		GIPImage = new unsigned char[Width * Height];
		//指针读数据
		logfile.Read(GIPImage, Width * Height);
		//文件打开标志
		fileopen = true;
			
	}

不是bmp图像则不打开

else
	{
		AfxMessageBox(_T("not bmp file"));
		return;
	}
}

 上述是一些读取操作,执行后不会看到结果,下面写出展示语句

UpdateAllViews(NULL);语句在每一个功能后都要添加,否则不能正常执行功能  

//显示文件宽度和高度
	CString str;
	str.Format(_T("图像大小%d*%d"), Width, Height);
	AfxGetMainWnd()->SetWindowText(str);
	UpdateAllViews(NULL);

  调试

点击文件->打开 选择一个bmp图像,图像成功打开,并且在左上角显示出图像大小

 

二、图像反色处理 

找到资源视图中的菜单

添加图像处理和子目录图像反色 

 

 修改图像反色ID   右键图像反色   添加事物处理程序  选择Doc类型

在Doc.cpp文件中找到图像反色函数 

void CMFCApplication1Doc::OnReverse()
{
	// TODO: 在此添加命令处理程序代码
	int i;
	for (i = 0; i < Width * Height; i++)
		GIPImage[i] = 255 - GIPImage[i];
	UpdateAllViews(NULL);
}

完美实现反色功能!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值