[id] = RGBArrayToBrush(id, table, width, height[, transtype, invalpha])
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().
transtype
gesetzt ist
(#MASK
oder #ALPHACHANNEL
), müssen Sie auch Alphawerte in den
höchsten 8 Bits angeben#NONE
)False
, somit werden Alphawerte nicht invertiert)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!