Нарисуйте изображение поверх другого изображения с помощью режима смешивания цветов

В Photoshop вы можете выбрать «Цвет» (второй снизу), чтобы установить режим смешивания на следующий нижний слой:

Если у вас есть только градиент поверх изображения, результат может выглядеть так:

Описание режима смешивания цветов, которое я нашел где-то:

Цвет меняет оттенок и насыщенность нижнего слоя на оттенок и насыщенность верхнего слоя, но оставляет только яркость.

Мой код до сих пор:

using(var g = Graphics.FromImage(canvas))
{
    // draw the lower image
    g.DrawImage(lowerImg, left, top);

    // creating a gradient and draw on top
    using (Brush brush = new LinearGradientBrush(new Rectangle(0, 0, canvasWidth, canvasHeight), Color.Violet, Color.Red, 20))
    {
        g.FillRectangle(brush, 0, 0, canvasWidth, canvasHeight);
    }
}

Но это - конечно - просто закрашивание нижнего изображения.

Итак, вопрос:

Как нарисовать изображение поверх другого изображения, используя режим наложения «Цвет», как это доступно в Photoshop?

РЕДАКТИРОВАТЬ:

Чтобы было немного яснее, чего я хочу достичь:

И если кто-то хочет использовать изображения для тестирования:

Ответы на вопрос(3)

Ваш ответ на вопрос