Bezeichnung
RGBArrayToBrush -- wandelt ein Pixelarray in einen Pinsel um (V5.0)
Übersicht
[id] = RGBArrayToBrush(id, table, width, height[, transtype, invalpha])
Beschreibung
Dieser Befehl erstellt einen neuen Pinsel mit dem Array von RGB-Pixel, welche in table angegeben wurde. Die Tabelle kann als Matrix angesehen werden: Die Pinselhöhe ist die Anzahl der Zeilen, die Pinselbreite die Anzahl Elemente. Die Reihenfolge der Pixeldaten in dieser Tabelle geht von oben nach unten, das heißt die Tabelle mit der ersten Reihe von Pixeln beginnt. Jede Zeile muss genau die Breite width des Pinsels haben und und es muss mindestens die Anzahl Zeilen height für die Pixelhöhe vorhanden sein. Die einzelnen Pixel müssen im RGB-Format mit einem optionalen Alphawert übergeben werden. Das Argument transtype ermöglicht es Ihnen, den Transparenztyp anzugeben, welcher der neue Pinsel verwenden soll. Dies kann entweder #NONE (ohne Transparenz), #MASK (monochrome Transparenz) oder #ALPHACHANNEL (Alphakanal Transparenz) sein.

Das optionale Argument invalpha kann verwendet werden, damit RGBArrayToBrush() alle Alphakanalwerte invertiert. Dies bedeutet, dass ein Wert von 0 100% sichtbar und ein Wert von 255 völlig unsichtbar ist. Normalerweise ist es genau umgekehrt. Aus historischen Gründen verwendet die Darstellungsbibliothek von Hollywood invertierte Alphawerte und aus diesem Grund wird dies auch von RGBArrayToBrush() unterstützt, obwohl es nicht der Standard ist.

Wenn transtype auf #NONE gesetzt ist, werden die Alphawerte ignoriert und invalpha hat keine Auswirkungen.

Bitte beachten Sie, dass die Tabelle, die Sie diesem Befehl übergeben, in der Regel viel Speicher in Anspruch nimmt. Daher sollten Sie diese Tabelle auf Nil setzen, sobald Sie sie nicht mehr benötigen. Andernfalls werden Sie riesige Mengen an Speicher verschwenden und es könnte sogar passieren, dass Ihrem Skript kein Speicher mehr zur Verfügung steht.

Um einen Pinsel in ein Pixelarray zu konvertieren, können Sie den Befehl BrushToRGBArray() verwenden.

Siehe auch BrushToPenArray() und PenArrayToBrush().

Eingaben
id
ID des neuen Pinsels oder Nil für die automatische ID-Zuweisung
table
Tabelle mit Array aus RGB-Pixel, die den Inhalt des neuen Pinsels beschreibt; wenn transtype gesetzt ist (#MASK oder #ALPHACHANNEL), müssen Sie auch Alphawerte in den höchsten 8 Bits angeben
width
Anzahl der Elemente in jeder Reihe
height
Anzahl der Spalten in der Tabelle
transtype
optional: gewünschte Transparenz für den Pinsel (voreingestellt ist #NONE)
invalpha
optional: ob Alphawerte invertiert werden sollen (voreingestellt ist False, somit werden Alphawerte nicht invertiert)
Rückgabewerte
id
optional: Identifikator des Pinsels; Wird nur zurückgegeben werden, wenn Sie Nil als Argument 1 angegeben haben (siehe oben)
Beispiel
pixels = {}
col = #BLUE
stp = 256 / 480
For Local y = 0 To 479
   For Local x = 0 To 639 Do pixels[y * 640 + x] = col
   col = col - stp
Next

RGBArrayToBrush(1, pixels, 640, 480)
pixels = Nil    ; WICHTIG: Speicher freigeben!
DisplayBrush(1, 0, 0)
Der obige Code erzeugt einen Farbverlauf von Rot nach Schwarz (#BLACK) und wandelt ihn mit RGBArrayToBrush() in einen Pinsel um. Wichtig: Vergessen Sie nicht, den Pixelarray auf Nil zu setzen, wenn Sie ihn nicht mehr benötigen, weil Pixelarrays eine riesige Mengen an Speicher beanspruchen!

Navigation zeigen