Метод 1: сохранение копии и назначение свойства элемента управления
Используйте этот метод, когда объект растрового изображения обрабатывается в более чем одном месте , поэтому нам нужносохранить его для дальнейших разработок / заданий и сохранить на диск после.
Назначьте, сохраните и утилизируйте исходное растровое изображение немедленно, удалив файл изображения:
Bitmap bitmap = null;
//---------------------------------------------
string imagePath = @"[Path of the Image]";
bitmap?.Dispose();
pictureBox1.Image?.Dispose();
using (Bitmap tempImage = new Bitmap(imagePath, true))
{
bitmap = new Bitmap(tempImage);
pictureBox1.Image = bitmap;
}
File.Delete(imagePath);
Метод 2: Назначьте растровое изображение и немедленно утилизируйте его
Этот метод можно использовать, когда необходимо назначить растровое изображение элементу управления, а затем переместить / удалить файл изображения.Изображение удаляется немедленно, поэтому оно доступно только через свойство элемента управления: если мы просим вернуть его, иногда то, что мы получаем, не совсем то, что мы дали.
string imagePath = @"[Path of the Image]";
using (Image image = Image.FromFile(imagePath, true))
{
pictureBox1.Image?.Dispose();
pictureBox1.Image = new Bitmap(image);
}
File.Delete(imagePath);
Обратите внимание, что старое изображение, назначенное контролю, если таковое имеется, удаляется перед назначением нового.
Также обратите внимание, что я всегда указываю на сохранение внутренней информации ICMесли есть, указав true
в качестве второго параметра для new Bitmap(imagePath, true)
и Image.FromFile(imagePath, true)
.
Некоторые изображения не будут выглядеть как исходные, если мы этого не сделаем.