Контрастность изображения HTML5 Canvas

Я писал программу обработки изображений, которая применяет эффекты посредством обработки пикселей холста HTML5. Я выполнил манипуляции с пикселями Thresholding, Vintaging и ColorGradient, но, невероятно, я не могу изменить контрастность изображения! Я пробовал несколько решений, но всегда получаю слишком большую яркость изображения и меньший эффект контраста , и я не планирую использовать какие-либо библиотеки Javascript, поскольку я пытаюсь добиться этих эффектов изначально.

Базовый код манипулирования пикселями:

var data = imageData.data;
for (var i = 0; i < data.length; i += 4) {
 //Note: data[i], data[i+1], data[i+2] represent RGB respectively
data[i] = data[i];
data[i+1] = data[i+1];
data[i+2] = data[i+2];
}

Пример манипулирования пикселями

Значения находятся в режиме RGB, что означает, что data[i] имеет красный цвет. Итак, если данные [i] = данные [i] * 2; яркость будет увеличена вдвое для красного канала этого пикселя. Пример:

var data = imageData.data;
for (var i = 0; i < data.length; i += 4) {
 //Note: data[i], data[i+1], data[i+2] represent RGB respectively
 //Increases brightness of RGB channel by 2
data[i] = data[i]*2;
data[i+1] = data[i+1]*2;
data[i+2] = data[i+2]*2;
}

* Примечание. Я не прошу вас, ребята, завершать код! Это было бы просто одолжением! Я прошу алгоритм (даже псевдокод), который показывает, как возможен контраст в манипулировании пикселями! Я был бы рад, если бы кто-нибудь мог предоставить хороший алгоритм для контраста изображения в холсте HTML5.

22
задан Schahriar SaffarShargh 9 May 2012 в 18:38
поделиться