Наложение двух картинок (C#)

97
26 января 2022, 13:30

Делаю программу. Понадобилось наложение двух картинок, которые будут задаваться в методе. Вот как пример: Я попробовал что-то в SFML, но не выходило. Нет идей даже как это сделать.. :(

Answer 1

Можно сделать так. Картинки одного размера:

var image1 = Image.FromFile("1.jpg");
var image2 = Image.FromFile("2.jpg");
var image3 = new Bitmap(image1.Width, image1.Height);
using (var graphics = Graphics.FromImage(image3))
{
    var matrix = new ColorMatrix();
    var attrs = new ImageAttributes();
    // нижнюю картинку рисуем непрозрачной
    matrix.Matrix33 = 1f;
    attrs.SetColorMatrix(matrix);
    graphics.DrawImage(image1, new Rectangle(0, 0, image3.Width, image3.Height), 0, 0, image3.Width, image3.Height, GraphicsUnit.Pixel, attrs);
    // верхнюю рисуем полупрозрачной
    matrix.Matrix33 = 0.5f;
    attrs.SetColorMatrix(matrix);
    graphics.DrawImage(image2, new Rectangle(0, 0, image3.Width, image3.Height), 0, 0, image3.Width, image3.Height, GraphicsUnit.Pixel, attrs);
}
image3.Save("3.jpg");
READ ALSO
HtmlAgilityPack Как спарсить данные и положить их в коллекцию?

HtmlAgilityPack Как спарсить данные и положить их в коллекцию?

Использую код с сайта, он работает и с ним все хорошоНо я не понимаю принципа

156
Как отследить изменение DisplayIndex DataGridView у Column C#

Как отследить изменение DisplayIndex DataGridView у Column C#

Мне нужно отследить, что пользователь менял столбцы местами, но такого события я не обнаружилПодскажите как это можно реализовать

173
Как построить linq?

Как построить linq?

Как сформировать linq запрос чтобы, поле Clients было заполнено через запятую кратким названием организации?

85
Как запустить yii2 advanced на сервере apache?

Как запустить yii2 advanced на сервере apache?

Пытаюсь запустить yii2 advanced проект на сервере apache 24

169