Из архива - вдруг пригодится...
Вроде бы нет ничего проще открытия картинки с диска в C#. А нет, И тут есть свои грабли!
Здесь просто приведу два примера.
Первый способ (неправильный):
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Image img = Image.FromFile(openFileDialog1.FileName);
pictureBox1.Image = img;
}
Второй способ (правильный):
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
System.IO.FileStream fs = new System.IO.FileStream(openFileDialog1.FileName, System.IO.FileMode.Open);
System.Drawing.Image img = System.Drawing.Image.FromStream(fs);
fs.Close();
pictureBox1.Image = img;
}
В первом случае, если мы попытаемся обратиться к нашей картинке повторно, то попросту не сможем этого сделать, этот метод не отпустит файл, поэтому правильно использовать второй вариант. Во втором варианте при повторном обращении к тому же файлу картинки никаких эксцессов не произойдёт.