| Код | using System; using System.Drawing; using System.Drawing.Imaging;
class Program { // объединяет несколько картинок в одну, выстраивая их по горизонтали static Bitmap CombineImages(Image[] images) { // определяем размер выходной картинки // высота будет = максимальной картинке, ширина = сумме int width = 0, height = 0; foreach (Image image in images) { width += image.Width; height = Math.Max(height, image.Height); }
// склеиваем картинку Bitmap result = new Bitmap(width, height); using (Graphics gr = Graphics.FromImage(result)) { // фон будет белым gr.FillRectangle(Brushes.White, new Rectangle(0, 0, width, height));
int x = 0; foreach (Image image in images) { // центрируем по вертикали int y = (height - image.Height) / 2; // рисуем картинку gr.DrawImage(image, new Point(x, y)); // сдвигаемся вправо x += image.Width; } }
return result; }
static void Main() { // к примеру, грузим 3 картинки из файлов Image[] images = new Image[] { Image.FromFile(@"c:\1.jpg"), Image.FromFile(@"c:\2.gif"), Image.FromFile(@"c:\3.jpg") };
// склеиваем в одну и сохраняем на диск Bitmap result = CombineImages(images); result.Save(@"c:\result.bmp", ImageFormat.Bmp); } } |
|