C#打开、保存图像

来源:互联网 发布:电视台直播软件 编辑:程序博客网 时间:2024/05/21 09:26
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Gray{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        //文件名        private string curFileName;        //图像对象        private System.Drawing.Bitmap curBitmap;        //打开图像文件        private void 打开图像ToolStripMenuItem_Click(object sender, EventArgs e)        {            OpenFileDialog opnDlg = new OpenFileDialog();            opnDlg.Filter = "所有图像文件 | *.bmp; *.pcx; *.png; *.jpg; *.gif;" +                "*.tif; *.ico; *.dxf; *.cgm; *.cdr; *.wmf; *.eps; *.emf|" +                "位图( *.bmp; *.jpg; *.png;...) | *.bmp; *.pcx; *.png; *.jpg; *.gif; *.tif; *.ico|" +                "矢量图( *.wmf; *.eps; *.emf;...) | *.dxf; *.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);                }            }            //对窗体进行重新绘制,这将强制执行paint事件处理程序            Invalidate();        }        private void Form1_Paint(object sender, PaintEventArgs e)        {            //使用窗体的Paint事件的PaintEventArgs属性来获取一个与窗体相关联的Graphic对象。            Graphics g = e.Graphics;            if (curBitmap != null)            {                //使用DrawImage的方法绘制图像                //160,20 :显示在主窗体内,图像左上角的坐标                //curBitmap.Width, curBitmap.Height图像的宽度和高度                g.DrawImage(curBitmap, 160, 20, curBitmap.Width, curBitmap.Height);            }        }        private void 保存图像ToolStripMenuItem_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;                }            }        }        private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)        {            this.Close();        }    }}

1 0