您的位置:首页 > 编程语言 > C#

c#与图像处理学习笔记(一)

2009-07-12 02:31 127 查看
http://blog.ednchina.com/cola123/203676/message.aspx#
1、 打开一幅图像
首先加入一个PictureBox 控件pictureBox1,然后打开一幅图像在该控件中显示:

private void buttonOpen_Click(object sender, System.EventArg e)
{
OpenFileDialog ofdlg = new OpenFileDialog();
ofdlg.Filter = “BMP 格式(*.BMP)|*.BMP|所有格式(*.*)|*.*”;
if(ofdlg.ShowDialog() == DialogResult.OK)
{
Bitmap image = new Bitmap(ofdlg.FileName);
pictureBox1.Image = image;
}
}
2、 保存一幅图像
像上面那样已经打开一幅图像的前提下,将打开的图像保存:

private void buttonSave_Click(object sender, System.EventArg e)
{
string str;
Bitmap box1 = new Bitmap(pictureBox1.Image);
SaveFileDialog sfdlg = new SaveFileDialog();
sfdlg.Filter =”BMP 格式(*.BMP)|*.BMP|所有格式(*.*)|*.*”;
sfdlg.ShowDialog();
str=sfdlg.FileName;
pictureBox1.Image.Save(str);
}

3、 图像拷贝和粘贴
在visual C#中,ClipBoard类提供了将数据放在系统剪贴板以及从系统剪贴板恢复数据的方法。ClipBoard类只有三个成员,他们是剪贴板构造器,GetDataObject和SetDataObject。
剪贴板构造器用来创建一个剪贴板对象,GetDataObjec方法用来将数据复制或剪切到剪贴板上,SetDataObject方法负责从剪贴板中恢复数据,它将返回IDataObject。

拷贝:(将图像拷贝到剪贴板,前提是已经建立了两个PictureBox控件pictureBox1和pictureBox2,并且pictureBox1已经打开了一幅图像)
private void buttonCopy_Click ()
{
CilpBoard.SetDataObject(pictureBox1.Image);
}

粘贴:(将pictureBox1中复制到粘贴板中的图像粘贴到pictureBox2中)
private void buttonPaste_Click()
{
IDataObject iData="Clipboard".GetDataObject();
if(iData.GetDataPresent(DataFormats.Bitmap))
{
pictureBox2.Image=(Bitmap)iData.GetData(DataFormats.Bitmap);
}
}

相关MSDN:
(1) public interface IDataObject
System.Windows.Forms 的成员
摘要[b]: [/b]为传送数据提供与格式无关的机制。
(2) bool GetDataPresent(System.Type format)
System.Windows.Forms.IDataObject 的成员
摘要: 确定此实例中存储的数据是否与指定的格式关联,或是否可以转换成指定的格式。
参数:
format: System.Type 表示要检查的格式。请参见 System.Windows.Forms.DataFormats 以获取预定义的格式。
返回值: 如果此实例中存储的数据与指定的格式关联,或者可以转换成指定的格式,则为 true;否则为 false。
(3) object GetData(System.Type format)
System.Windows.Forms.IDataObject 的成员
摘要: 检索与指定的类类型格式关联的数据。
参数:
format: System.Type 表示要检索的数据的格式。请参见 System.Windows.Forms.DataFormats 以获取预定义的格式。
返回值: 与指定格式关联的数据,或为 null。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: