С System.Drawing
:
Image GetLayeredImage(int width, int height, params Image[] layers)
{ Point layerPosition = new Point(0,0);
Bitmap bm = new Bitmap(width,height);
using(Graphics g = Graphics.FromImage(bm))
{ foreach(Image layer in layers) g.DrawImage(layer, layerPosition);
}
return bm;
}
В вышеприведенном примере определен метод GetLayeredImage () , который принимает ширину / высотусоставное изображение вместе с массивом Image
объектов, по одному на каждый слой.Точка в (0,0) определяется как верхняя левая позиция для каждого слоя.Создается объект Bitmap
, из которого создается объект Graphics
для рисования на растровом изображении.Каждое изображение в массиве затем рисуется на растровом изображении в точке (0,0) - вы можете изменить это, создавая различное значение Point
для каждого слоя.Полученное растровое изображение затем возвращается.Возвращаемым значением является изображение со всеми нарисованными слоями.
Вот пример того, как вызвать этот метод:
Image layer1 = Image.FromFile("layer1.jpg");
Image layer2 = Image.FromFile("layer2.jpg");
Image layeredImg = GetLayeredImage(width,height,layer1,layer2);
pictureBox.Image = layeredImg;