Используйте ColorMatrix для добавления водяного знака к изображению на C#

Пример Добавьте водяной знак к изображению в C# объясняет, как добавить полупрозрачный водяной знак к изображению. Этот пример делает то же самое в немного другом и, вероятно, более эффективном способе. В этом примере используется следующий метод DrawWatermark.

// Копируем изображение водяного знака по изображению результата.
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.

Источник: http://csharphelper.com/blog/2015/09/use-a-colormatrix-to-add-a-watermark-to-an-image-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector