Information Technology Reference
In-Depth Information
Durch Aufsummieren der multiplizierten Komponenten können in jeder der
drei Berechnungen natürlich auch Werte größer als 255 entstehen - in diesen
Fällen wird 255 als neuer Wert eingesetzt.
Sehr einfach ist das Invertieren von Farben im Filter invertColor() , denn jede
RGB-Komponente muss nur von 255 abgezogen werden.
var invertColor = function(r,g,b,a) {
return [
(255-r),
(255-g),
(255-b),
a
];
};
Der Filter swapChannels() modifiziert die Reihenfolge der Farbkanäle. Dazu
müssen wir als vierten Parameter die gewünschte Neuanordnung in einem
Array definieren, wobei 0 für Rot, 1 für Grün, 2 für Blau und 3 für den Alpha-
Kanal anzugeben ist. Beim Vertauschen der Kanäle hilft uns das Array rgba
mit den entsprechenden Eingangswerten, das wir in neuer Reihung zurücklie-
fern. Ein Wechsel von RGBA nach BRGA, wie in unserem Beispiel, lässt sich mit
order=[2, 0, 1, 3] realisieren.
var swapChannels = function(r,g,b,a,order) {
var rgba = [r,g,b,a];
return [
rgba[order[0]],
rgba[order[1]],
rgba[order[2]],
rgba[order[3]]
];
};
Die letzte Methode, monoColor() , setzt die RGB-Komponente jedes Pixels auf
eine bestimmte Farbe und verwendet den Grauwert des Ausgangspixels als
Alpha-Komponente. Der vierte Parameter beim Aufruf definiert die gewünsch-
te Farbe als Array von RGB-Werten - in unserem Fall ist dies Blau mit color=
[0, 0, 255] .
var monoColor = function(r,g,b,a,color) {
return [
color[0],
color[1],
Search WWH ::




Custom Search