using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
class ImageOpen: Form
{
protected string strProgName;
protected string strFileName;
protected Image image;
MenuItem miSaveAs;
public static void Main()
{
Application.Run(new ImageOpen());
}
public ImageOpen()
{
ResizeRedraw = true;
Menu = new MainMenu();
Menu.MenuItems.Add("&File");
Menu.MenuItems[0].MenuItems.Add(new MenuItem("&Open...",
new EventHandler(MenuFileOpenOnClick),
Shortcut.CtrlO));
Menu.MenuItems[0].Popup += new EventHandler(MenuFileOnPopup);
miSaveAs = new MenuItem("Save &As...");
miSaveAs.Click += new EventHandler(MenuFileSaveAsOnClick);
Menu.MenuItems[0].MenuItems.Add(miSaveAs);
}
void MenuFileOnPopup(object obj, EventArgs ea)
{
miSaveAs.Enabled = (image != null);
}
void MenuFileSaveAsOnClick(object obj, EventArgs ea)
{
SaveFileDialog savedlg = new SaveFileDialog();
savedlg.InitialDirectory = Path.GetDirectoryName(strFileName);
savedlg.FileName = Path.GetFileNameWithoutExtension(strFileName);
savedlg.AddExtension = true;
savedlg.Filter = "Windows Bitmap (*.bmp)|*.bmp|" +
"Graphics Interchange Format (*.gif)|*.gif|" +
"JPEG File Interchange Format (*.jpg)|" +
"*.jpg;*.jpeg;*.jfif|" +
"Portable Network Graphics (*.png)|*.png|" +
"Tagged Imaged File Format (*.tif)|*.tif;*.tiff";
if (savedlg.ShowDialog() == DialogResult.OK)
{
try
{
image.Save(savedlg.FileName);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, Text);
return;
}
strFileName = savedlg.FileName;
Text = strProgName + " - " + Path.GetFileName(strFileName);
}
}
void MenuFileOpenOnClick(object obj, EventArgs ea)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "All Image Files|*.bmp;*.ico;*.gif;*.jpeg;*.jpg;" +
"*.jfif;*.png;*.tif;*.tiff;*.wmf;*.emf|" +
"Windows Bitmap (*.bmp)|*.bmp|" +
"Windows Icon (*.ico)|*.ico|" +
"Graphics Interchange Format (*.gif)|*.gif|" +
"JPEG File Interchange Format (*.jpg)|" +
"*.jpg;*.jpeg;*.jfif|" +
"Portable Network Graphics (*.png)|*.png|" +
"Tag Image File Format (*.tif)|*.tif;*.tiff|" +
"Windows Metafile (*.wmf)|*.wmf|" +
"Enhanced Metafile (*.emf)|*.emf|" +
"All Files (*.*)|*.*";
if (dlg.ShowDialog() == DialogResult.OK)
{
try
{
image = Image.FromFile(dlg.FileName);
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
return;
}
strFileName = dlg.FileName;
Text = Path.GetFileName(strFileName);
Invalidate();
}
}
protected override void OnPaint(PaintEventArgs pea)
{
Graphics grfx = pea.Graphics;
if (image != null)
grfx.DrawImage(image, 0, 0);
}
}