Загрузка изображения в память - C#
Формулировка задачи:
Есть загрузка файла на прямую в picturebox. Нужно чтоб картинка сначала загружалась в память, а далее уже в picturebox.
Это нужно для того чтоб получить возможность сохранять файл с заменой.
Вот код:
Впервые работаю с памятью, а чтоб научиться - нужно увидеть код и понять как он работает...
Заранее примного благодарен.
private void metroButton19_Click(object sender, EventArgs e)
{
OpenFileDialog dialog1 = new OpenFileDialog();
dialog1.Filter = "Все изображения (*.JPG;*.PNG;*.JPEG;*.PNG)|*.JPG;*.PNG;*.JPEG;*.PNG";
dialog1.Title = "Выбор файла...";
if (dialog1.ShowDialog() == DialogResult.OK)
{
images1 = new Bitmap(dialog1.FileName);
textBox16.Text = dialog1.FileName;
}
pictureBox1.Image = images1;
}Решение задачи: «Загрузка изображения в память»
textual
Листинг программы
private void Button3_Click(object sender, EventArgs e)
{
string image1 = TextBox1.Text;
string image2 = TextBox2.Text;
//Размеры первой картинки
Bitmap result = new Bitmap(images1);
//Далее для подгона
using (Graphics graphics = Graphics.FromImage(result))
{
//Качество
graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//Добавляем изображение 2 в изображение 1
graphics.DrawImage(Image.FromFile(image1), 0, 0, result.Width, result.Height);
Image img = Image.FromFile(image2);
graphics.DrawImage(img, 0, 0, img.Width / ((float)images2.Width / images1.Width * (metroTrackBar1.Value / 5)), img.Height / ((float)images2.Height / images1.Height * (metroTrackBar1.Value / 5)));
}
pictureBox3.Image = result;
}