图像文件的读入、显示、保存

        private Bitmap srcBitmap = null;

       private Bitmap showBitmap = null;
读入图像
        private void button1_Click(object sender, EventArgs e)

        {

            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = @"位图文件|*.bmp|"+

                                    @"JPEG|*.jpg;*.jpeg;*.jpe;*.jfif|" +

                                    @"GIF|*.gif|"+

                                    @"TIFF|*.tif;*.tiff|"+

                                    @"PNG|*.png|"+

                                    @"ICO|*.ico|"+

                                    @"所有图片文件|"+

                                    @"*.bmp;*.jpg;*.jpeg;*.jpe;*.jfif;*.gif;*.tif;*.tiff;*.png;*.ico|"+

                                    @"所有文件|*.*";

            openFileDialog.Title = "打开图像文件";

            openFileDialog.FilterIndex = 7;

            if (DialogResult.OK == openFileDialog.ShowDialog())

            {

                srcBitmap = (Bitmap)Bitmap.FromFile(openFileDialog.FileName, false);

                showBitmap = srcBitmap;

                this.AutoScroll = true;

                this.AutoScrollMinSize = new Size((int)(showBitmap.Width), (int)(showBitmap.Height));

                this.Invalidate();

            }

        }

显示图像

        protected override void OnPaint(PaintEventArgs e)

        {

            base.OnPaint(e);

            if (showBitmap != null)

            {

                Graphics g = e.Graphics;

                g.DrawImage(showBitmap, 

                    new Rectangle(

                        this.AutoScrollPosition.X, 

                        this.AutoScrollPosition.Y, 

                        (int)(showBitmap.Width), 

                        (int)(showBitmap.Height)));

            }

        }

保存图像

        private void button2_Click(object sender, EventArgs e)

        {

            if (showBitmap == null)

                return;

            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter = @"位图文件|*.bmp|" +

                                    @"JPEG|*.jpg|" +

                                    @"GIF|*.gif|" +

                                    @"TIFF|*.tif|" +

                                    @"PNG|*.png|" +

                                    @"ICON|*.ico";

            saveFileDialog.FilterIndex = 2;

            saveFileDialog.RestoreDirectory = true;

            if (DialogResult.OK == saveFileDialog.ShowDialog())

            {

                ImageFormat format = ImageFormat.Jpeg;

                switch (Path.GetExtension(saveFileDialog.FileName).ToLower())

                {

                    case ".bmp":

                        format = ImageFormat.Bmp;

                        break;

                    case ".jpg":

                        format = ImageFormat.Jpeg;

                        break;

                    case ".gif":

                        format = ImageFormat.Gif;

                        break;

                    case ".tif":

                        format = ImageFormat.Tiff;

                        break;

                    case ".png":

                        format = ImageFormat.Png;

                        break;

                    case ".ico":

                        format = ImageFormat.Icon;

                        break;

                    default:

                        MessageBox.Show(this, "Unsupported image format was specified", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        return;

                }

                try

                {

                    showBitmap.Save(saveFileDialog.FileName, format);

                }

                catch (Exception)

                {

                    MessageBox.Show(this, "Failed writing image file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                }

            }

        }

你可能感兴趣的:(文件)