说明:
该系列读书笔记为《C#数字图像处理算法典型事例》(赵春江 编著,人民邮电出版社,2009)读书笔记。
详细内容,请参考原始图书。
================================================
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Demo1
{
public partial class Form1 : Form
{
private string curFileName;
private System.Drawing.Bitmap curBitmap;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void open_Click(object sender, EventArgs e)
{
OpenFileDialog opndlg = new OpenFileDialog();
opndlg.Filter = "所有文件|*.bmp;*.pcx;*.png;*.jpg;*.gif;" +
"*.tif;*.ico;*.dcx;*.cgm;*.cdr;*.wmf;*.eps;*.emf;|" +
"位图(*.bmp;*.jpg;*.png;...)|*.bmp;*.pcx;*.png;*.jpg;*.gif;*.tif;*.ico|" +
"矢量图(*.wmf;*.eps;*.emf;...)|*.dcf;*.cgm;*.cdr;*.wmf;*.eps;*.emf";
opndlg.Title = "打开图形文件";
opndlg.ShowHelp = true;
if (opndlg.ShowDialog() == DialogResult.OK)
{
curFileName = opndlg.FileName;
try
{
curBitmap = (Bitmap)Image.FromFile(curFileName);
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}
Invalidate();
}
private void save_Click(object sender, EventArgs e)
{
if (curBitmap == null)
return;
SaveFileDialog saveDlg = new SaveFileDialog();
saveDlg.Title = "保存为";
saveDlg.OverwritePrompt = true;
saveDlg.Filter = "BMP文件(*.bmp)|*.bmp|" + "Gif文件(*.gif)|*.gif|" +
"JPEG文件(*.jpg)|*.jpg|" + "PNG文件(*.png)|*.png";
saveDlg.ShowHelp = true;
if (saveDlg.ShowDialog() == DialogResult.OK)
{
string fileName = saveDlg.FileName;
string strFilExtn = fileName.Remove(0, fileName.Length - 3);
switch (strFilExtn)
{
case "bmp":
curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp);
break;
case "jpg":
curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "gif":
curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Gif);
break;
case "tif":
curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Tiff);
break;
case "png":
curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
break;
default:
break;
}
//设定文件格式,Ctrl+E,D
}
}
private void close_Click(object sender, EventArgs e)
{
this.Close();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
if (curBitmap != null)
{
g.DrawImage(curBitmap, 160, 20, curBitmap.Width, curBitmap.Height);
}
}
}
}
结果如图:
需要注意的问题:
在写好paint事件后,需要在窗体的事件中进行关联,开始没有关联,所以总是不能显示。
如下:
分享到:
相关推荐
用C#和office COM功能(VS2010版本),将Excel的文件里的Sheet1的列表读入,并转换成XML格式文件。文件内容较多的时候请使用异步Delegate的功能完成转换功能。使用Regex检查Email和学号的合法性(读入Excel时)。 将...
读入图像文件,做图像反转,然后显示图像在屏幕上
这是一个用来读入图像并显示的例子,很简单,适合初学者了解MFC,
将文本文件读入c#数组 并排序
《图像处理与计算机视觉》课程简介 本课程是计算机专业研究生教学的“图象处理与计算机视觉”专业选修课程的配套实验课程,是以计算机专业研究生为教学对象,强调理论和上机实践相结合的一门课程。重点培养学生的...
①读入图像文件并把图像转为灰度图像,显示图像,X轴标注为图(a); ②计算图像旋转θ角后的四个顶点坐标(以便确定旋转后的图像大小); ③根据四个顶点坐标,计算移动偏移量△x、△y,移动图像(目的使旋转后的...
图像处理的通过读入图像,再分析该图像,并显示图像的同时也将图像的直方图分析显示出来。
使用VC编程对bmp图像进行读入、保存操作,并对灰度的图像进行直方图均衡化处理。程序中将图像以文件方式读入,对学习bmp文件的结构有一定的帮助。
将AutoCAD软件生成的DXF文件通过VS建立WPF工程,实现将AutoCAD软件中生成的工件图在WPF的Canvas中画出来,并实现一定的功能。
C#学习,在制作固件升级的上位机时候常用到BIN文件和HEX文件加载,BIN文件相对特殊,是纯粹的二进制数据域,没有多余的协议格式,所以会用到特殊的加载方式,两种方法实现BIN文件加载,速度上的却别让你领悟技巧的...
读入YUV文件,以及一些图像方面的处理,设计类的处理等等,主要是CPP和H文件形式,可以再VC下面直接看,比较全,值得借鉴
用VC编程,实现图像的读入和显示,包括使用DIB的程序
BMP图像格式数据的读入函数及其计算机显示毕业论文,全套论文,程序源码,外文翻译,程序截图,答辩ppt
读入JPEG格式的图片文件,打开JPEG格式图片文件,运行环境vc++6.0,构造显示界面
顺序读入XML文件中所有数据 将数据库参数读入数据结构中(dbLocal) 将PLC参数读入PLC结构中(plcdot)
(2)通过设置阈值T,实现读入图像的二值化处理,并显示结果; (3)通过设置参数a,b,利用公式,实现图像的线性变换; (4)读入图像,实现画图像的直方图。 (5)读入一幅非均衡化的图像实现图像均衡化; 实验二:...
二进制文件的读写,当前时间写入到dat文件中,可以读入读出.C#源代码 用VisualStudio2008创建 http://download.csdn.net/user/gouyue下载
了解图片的文件的输入与显示,附带了一些有用的C语言程序,有利于初学者学习使用