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