Используйте ColorMatrix для добавления водяного знака к изображению на C#
Пример
// Копируем изображение водяного знака по изображению результата. private void DrawWatermark(Bitmap watermark_bm, Bitmap result_bm, int x, int y) { // Создаем ColorMatrix, которая умножает // альфа-компонент на 0,5. ColorMatrix color_matrix = new ColorMatrix(); color_matrix.Matrix33 = 0.5f; // Создаем ImageAttributes, который использует ColorMatrix. ImageAttributes image_attributes = new ImageAttributes(); image_attributes.SetColorMatrices(color_matrix, null); // Создаем пиксели того же цвета, что и // один в верхнем левом прозрачном. watermark_bm.MakeTransparent(watermark_bm.GetPixel(0, 0)); // Нарисуем изображение с помощью ColorMatrix. using (Graphics gr = Graphics.FromImage(result_bm)) { Rectangle rect = new Rectangle(x, y, watermark_bm.Width, watermark_bm.Height); gr.DrawImage(watermark_bm, rect, 0, 0, watermark_bm.Width, watermark_bm.Height, GraphicsUnit.Pixel, image_attributes); } }
Класс ColorMatrix содержит матрицу коэффициентов, которые умножаются на красные, зеленые и синие цветовые компоненты каждого пикселя в изображении. Запись [3, 3] представляет собой масштабный коэффициент, по которому умножается альфа-компонент пикселя.
В этом примере объект ColorMatrix имеет значение [3, 3], установленное в 0.5, поэтому он умножает альфа-компонент каждого пикселя на 0,5, делая его прозрачным на 50%. Программа создает объект ImageAttributes, который использует ColorMatrix.