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

        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);
                }
            }
        }

转载于:https://www.cnblogs.com/wlts/archive/2012/04/17/2453390.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值