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],