Bezeichnung
PenArrayToBrush -- wandelt ein Stiftfeld in einen Palettenpinsel um (V9.0)
Übersicht
[id] = PenArrayToBrush(id, table, width, height[, t])
Beschreibung
Dieser Befehl erstellt einen neuen Palettenpinsel aus dem in table angegebenen Feld von Stiften. Die Tabelle kann als eine Matrix angesehen werden, die in height die Anzahl der Zeilen enthält und in width die Anzahl der Elemente, die nacheinander gespeichert werden. Die Reihenfolge der Stiftdaten in dieser Tabelle muss wie folgt sein: Zeile für Zeile von oben nach unten, d.h. die Tabelle beginnt mit der ersten Reihe von Stiften. Jede Zeile muss genau die Anzahl der Stifte in width und die Anzahl der Zeilen in height enthalten. Die Tabelle muss eindimensional sein, d.h. sie darf keine Untertabellen für die einzelnen Zeilen verwenden, sondern nur die Stiftwerte nacheinander speichern.

Die Palette, die die Stifte verwenden sollen, kann im optionalen Tabellenargument t festgelegt werden. Die folgenden Tabellenelemente werden derzeit erkannt:

Palette:
Setzen Sie dies auf die ID einer Palette, die mit den Befehlen CreatePalette(), LoadPalette() oder der Präprozessor-Anweisung @PALETTE erstellt wurde. Wenn Sie diesen Tag nicht festlegen, verwendet Hollywood eine Standardpalette, in der alle Farben auf Schwarz initialisiert sind.

TransparentPen:
Mit diesem Tag kann ein Stift angegeben werden, der transparent erscheinen soll. Wenn kein Stift transparent gemacht werden soll, setzen Sie diesen Tag auf #NOPEN, was ebenfalls die Standardeinstellung ist.

Bitte beachten Sie, dass die Tabelle, die Sie an diesen Befehl übergeben, normalerweise viel Speicherplatz beansprucht. Daher sollten Sie diese Tabelle auf Nil setzen, sobald Sie sie nicht mehr benötigen. Andernfalls verschwenden Sie sehr viel Speicher und es kann sogar vorkommen, dass Ihrem Skript der Speicherplatz ausgeht. Denken Sie also daran, dass Sie Pixelfeld-Tabellen immer auf Nil setzen sollten, sobald Sie sie nicht mehr benötigen.

Um einen Palettenpinsel in ein Stiftfeld umzuwandeln, können Sie den Befehl BrushToPenArray() verwenden. Siehe BrushToPenArray für Details.

Siehe auch BrushToRGBArray() und RGBArrayToBrush().

Eingaben
id
ID der neuen Pinselpalette oder Nil für die automatische ID-Zuweisung
table
Tabelle mit einem Feld von Stiften, die den Inhalt des neuen Pinsels beschreiben
width
Anzahl der Elemente in jeder Zeile
height
Anzahl der Zeilen in der Tabelle
t
optional: Tabelle mit weiteren Optionen (siehe oben)
Rückgabewerte
id
optional: Identifikator der neuen Pinselpalette; wird nur zurückgegeben, wenn Sie Nil als Argument 1 angegeben haben (siehe oben)
Beispiel
pixels = {}
For Local y = 0 To 479
   For Local x = 0 To 639 Do pixels[y * 640 + x] = y \ 2
Next

PenArrayToBrush(1, pixels, 640, 480, {Palette = #PALETTE_AGA})
pixels = Nil    ; WICHTIG: Speicher freigeben!
DisplayBrush(1, 0, 0)
Der obige Code erstellt einen Palettenpinsel, der die ersten 240 Stifte aus der Standardpalette #PALETTE_AGA enthält. Jeder Palettenstift verwendet zwei Zeilen. Wichtig: Vergessen Sie nicht, das Pixelfeld auf Nil zu setzen, wenn Sie es nicht mehr benötigen, da es sonst im Speicher bleibt und Pixelfelder sehr viel Speicher verbrauchen!

Navigation zeigen