Die meisten Bilder haben drei Datenkanäle: Rot, Grün und Blau, oft als RGB-Daten bezeichnet. Jedes Pixel im Bild hat einen Wert für jeden Farbkanal, und in JMP ist (0,0,0) schwarz, (1,1,1) weiß, (1,0,0) rot und (0,5,0,5 ,0,5) grau.
Webdesigner mögen einen anderen Informationskanal für Transparenz; Symbole haben oft transparente Bereiche, die den Hintergrund durchscheinen lassen. Dieser Kanal wird Alphakanal genannt und wird zu RGBA.
Der Alphakanal kann wie die Farbkanäle Bruchwerte haben; alpha und 1 - alpha sind die Anteile des Vordergrunds und des Hintergrunds, die verwendet werden, um das Ergebnis zu erzeugen. Die Ergebnisse sind ganz nett, wenn man nicht zu genau hinschaut.
Alpha transparency around JMP's iconAlpha transparency around JMP's iconAlpha transparency around JMP's iconAlpha transparency around JMP's iconAlpha-Transparenz um das Symbol von JMP
Sie können damit experimentieren, indem Sie die angehängte AlphaIcon.jmpapp ausführen. Der Farbverlauf hinter dem Symbol scheint durch die transparenten Bereiche hindurch, und die Ränder überblenden zwischen Blau und Grün oder Blau und Orange. Ein Alpha-Wert von 0,0 lässt den Farbverlauf sichtbar werden; 1,0 zeigt das Symbol und Bruchwerte zeigen die Überblendung. (Ich habe eine Lupen-App verwendet, um das große verpixelte Bild zu erhalten. Ich habe App Builder verwendet, um das Symbolfeld über einem Diagramm mit einem Farbverlauf schweben zu lassen.)
Das obige Beispiel ist die typische Art und Weise, wie der Alphakanal verwendet wird. Das folgende Beispiel ist eine Variation. Die JSL zeichnet die Farbe mit den RGB-Werten und die weißen (oder schwarzen) Linien mit dem Alpha-Wert. Es gibt andere Möglichkeiten, denselben Effekt zu erzielen, aber auf diese Weise war kein zusätzlicher Code erforderlich, um die Daten zusammenzuführen. Die Farbe der Linie wird durch die Hintergrundfarbe der Rahmenbox bestimmt, die die Bildbox enthält. Wenn der Alphawert 0 ist, wird der Hintergrund angezeigt. In der Renderfunktion werden zwei Arrays, Bitcolor und Bitcurve, kombiniert, um das Bild zu erstellen. bitcurve wird mit 1.0 erstellt, wo die Linie erscheinen sollte, also erzeugt 1-bitcurve den Alphakanal, der benötigt wird.
{red,green,blue} = colortorgb(bitcolor);
image=newimage("rgba",{red,green,blue,1-bitcurve});Das Ändern der Ergebnisse von weißer Linie auf schwarzem Hintergrund zu schwarzer Linie auf weißem Hintergrund erfolgt durch Ändern der Rahmenfarbe.
newwindow("curves",bb=borderbox(textbox("")));
bb<<SETBACKGROUNDCOLOR></SETBACKGROUNDCOLOR>Die Rahmenbox wird mit einem untergeordneten Dummy-Textfeld erstellt, das durch das erste Bild ersetzt wird.
(bb<<CHILD></CHILD>
Bitkurve links, Bitfarbe in der Mitte, RGBA rechts. In diesem Bild sind die RGB-Daten größtenteils schwarz und der weiße Hintergrund scheint durch, wo der Alphakanal > 0,0 ist.
Border box with a white backgroundBorder box with a white backgroundBorder box with a white backgroundBorder box with a white backgroundRahmen mit weißem Hintergrund
In diesem Bild sind die RGB-Daten größtenteils weiß, und stattdessen scheint der schwarze Hintergrund durch.
Border box with a black backgroundBorder box with a black backgroundBorder box with a black backgroundBorder box with a black backgroundRahmen mit schwarzem Hintergrund
In beiden obigen Bildern zeigt die rechte Seite die Alpha-Mischung der Farben über der Hintergrundfarbe des Rahmens.
Die angehängte curveyBlog.jsl erstellt das Bild, indem die aktiven Zeilen erhöht, zufällig verzweigt und ein Bild aufgenommen werden. Das Video ist Hier und maximiert werden will.
Vorheriges Beispiel .
Danke! Ich mag Algorithmen mit mehreren einstellbaren Parametern, die dabei helfen, die Verwendung der zufälligen Elemente zu steuern. Dieser lief, bis die Reben genug Platz verbrauchten, um weiteres Wachstum zu verhindern. Sobald die Parameter ausgewählt waren, ließ ich es mehrmals laufen, um eine Reihe von Bildern zu erhalten, die mir gefielen, mit der richtigen Schrittgröße, um eine Videolänge zu erstellen, die mir gefiel.