HTML5-Leinwandbildkontrast

Ich habe ein Bildbearbeitungsprogramm geschrieben, das Effekte durch HTML5-Canvas-Pixelverarbeitung anwendet. Ich habe die Pixelmanipulationen Thresholding, Vintaging und ColorGradient durchgeführt, aber ich kann den Kontrast des Bildes unglaublich nicht ändern! Ich habe mehrere Lösungen ausprobiert, aber ich bekomme immer zu viel Helligkeit im Bild und weniger Kontrasteffektund ich plane nicht, irgendwelche Javascript-Bibliotheken zu benutzen, da ich versuche, diese Effekte nativ zu erzielen.

Der grundlegende Pixelmanipulationscode:

<code>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];
}
</code>
Beispiel für die Pixelmanipulation

Die Werte befinden sich im RGB-Modus, was bedeutet, dass Daten [i] die rote Farbe haben. Also, wenn Daten [i] = Daten [i] * 2; Die Helligkeit wird für den roten Kanal dieses Pixels auf das Doppelte erhöht. Beispiel:

<code>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;
}
</code>

*Hinweis: Ich bitte euch nicht, den Code zu vervollständigen! Das wäre nur ein Gefallen! Ich frage nach einem Algorithmus (sogar Pseudocode), der zeigt, wie Kontrast bei der Pixelmanipulation möglich ist! Ich würde mich freuen, wenn jemand einen guten Algorithmus für den Bildkontrast in HTML5 Canvas bereitstellen kann.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage