Что лучший способ состоит в том, чтобы установить компоненты RGB каждого пикселя в a System.Drawing.Bitmap
к единственному, сплошному цвету? Если возможно, я хотел бы избежать вручную цикличного выполнения через каждый пиксель, чтобы сделать это.
Примечание: Я хочу сохранить тот же альфа-компонент от исходного растрового изображения. Я только хочу изменить значения RGB.
Я изучил использование a ColorMatrix
или ColorMap
, но я не мог найти способ установить все пиксели на определенный данный цвет с любым подходом.
Да, используйте ColorMatrix. Это должно выглядеть так:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 1 0
R G B 0 1
Где R, G и B - масштабированные значения цвета замещающего цвета (разделить на 255.0f)
Лучший (по крайней мере с точки зрения производительности) вариант - использовать Bitmap.LockBits и перебирать пиксельные данные в строке сканирования, задав значения RGB.
Поскольку вы не хотите изменять альфа-канал, вам придется перебирать каждый пиксель в цикле - нет единого назначения памяти, которое сохраняло бы альфа-канал и заменяло RGB, поскольку они чередуются вместе.