Преобразовать ARGB в RGB - C#

Узнай цену своей работы

Формулировка задачи:

Подскажите пожалуйста, у меня есть BITMAP, и мне нужно получить значение красного цвета в каждом пикселе. Получаю пиксель функцией GetPixel(), она возвращает значение типа Color. Там цветовая схема ARGB. Типа (200,120,30,50). A - это "прозрачность". Вопрос в том как получить значение R? просто взять R = 120? Или его надо умножить на A, на прозрачность?

Решение задачи: «Преобразовать ARGB в RGB»

textual
Листинг программы
public static Color RemoveAlpha(Color foreground, Color background)
    {
        if (foreground.A == 255)
            return foreground;
 
        var alpha = foreground.A / 255.0;
        var diff = 1.0 - alpha;
        return Color.FromArgb(255,
            (byte)(foreground.R * alpha + background.R * diff),
            (byte)(foreground.G * alpha + background.G * diff),
            (byte)(foreground.B * alpha + background.B * diff));
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5