Объединение двух изображений в одно новое изображение - PullRequest
2 голосов
/ 04 декабря 2011

Я пытаюсь повторить PHP-функцию imagecopy в .NET.У меня есть два изображения, которые мне нужно объединить в одно новое изображение.Одно изображение является шаблоном, и мне нужно вставить второе изображение в шаблон, а затем сохранить результат в новом файле.Вот что у меня есть:

//Sized Image
Bitmap sizedImg = (Bitmap)Image.FromFile(Server.MapPath("~/ImageUploads/") + sizedImageName);
sizedImg.MakeTransparent(Color.White);

//Template Image
Bitmap template = (Bitmap)Image.FromFile(Server.MapPath("~/Assets/img/frame_sm.jpg"));

//Combine the two
Graphics newImage = Graphics.FromImage(template);
newImage.DrawImage(sizedImg, 96, 12, 232, 230);
newImage.Save();

//Save the new image
string fileName =  String.Format("{0}_sizedFB.jpg", originalImageName.Substring(0, originalImageName.IndexOf("_")));
//? Save

Во-первых, правильный ли это код для объединения двух изображений в одно?И если да, то как мне сохранить новый образ на диск?

Спасибо.

1 Ответ

1 голос
/ 04 декабря 2011

Сначала вы должны создать новое растровое изображение из вашего открытого файла шаблона, чтобы не изменять ваш шаблон, а создать новое изображение на основе вашего шаблона.

Bitmap template = (Bitmap)Image.FromFile(Server.MapPath("~/Assets/img/frame_sm.jpg"));
Bitmap newimage = new Bitmap(template);

Затем вы рисуете свое изображение наэто новое изображение:

Graphics newImage = Graphics.FromImage(newimage);
newImage.DrawImage(sizedImg, 96, 12, 232, 230);

И, наконец, вы сохраняете новое изображение в заданном файле:

string fileName =  String.Format("{0}_sizedFB.jpg", originalImageName.Substring(0, originalImageName.IndexOf("_")));
newImage.Save(fileName, ImageFormat.Png);
...