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

        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);
                }
            }
        }
posted @ 2012-04-17 11:34  trirocky  阅读(325)  评论(0编辑  收藏  举报