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