У меня есть тип «Растровое изображение», содержащий некоторые случайные данные растрового изображения. Я написал свои собственные настройки яркости, цвета, насыщенности и оттенка, которые влияют на каждый бит по отдельности и, что неудивительно, это ужасно медленно.
В своем исследовании я заметил, что с помощью матриц можно очень быстро их корректировать. Кроме того, в .NET есть ColorMatrix, где вы можете применять матричные эффекты при рисовании DrawImage ().
Матрица, которую мы создали, выглядит следующим образом (с веб-сайта MSDN):
float[][] colorMatrixElements = {
new float[] {2, 0, 0, 0, 0}, // red scaling factor of 2
new float[] {0, 1, 0, 0, 0}, // green scaling factor of 1
new float[] {0, 0, 1, 0, 0}, // blue scaling factor of 1
new float[] {0, 0, 0, 1, 0}, // alpha scaling factor of 1
new float[] {.2f, .2f, .2f, 0, 1}}; // three translations of 0.2
Но я не смог найти правильные диапазоны или то, что на самом деле делает любое из этих чисел. Я понятия не имею, как настроить яркость, цвет, насыщенность и оттенок.
Любая помощь? Я где-то пропускаю хорошую документацию?
Спасибо !!