|
yab - Zeichne ein Bild Pixel für Pixel System: BeOS, Haiku, Zeta Auch wenn es nicht sinnvoll erscheint, ein Bild Pixel für Pixel in einem Programm zu zeichen, da man genausogut auch ein externes Bild verwenden und anzeigen kann, möchten wir hier einmal beschreiben, wie man dieses machen kann. Das größte Problem dabei ist, die Bilddatei auszulesen und dann jeden einzelnen Pixel zu definieren. Hierzu habe ich leider derzeit keine Möglichkeit gefunden, dies unter BeOS, Haiku oder Zeta zu machen. Statt dessen habe ich von René Passier (chaotic) ein kleines Tool für Windows bekommen, welches ein angegebenes Bild in eine yab Subroutine umwandelt. Das Programm heißt bmp2yab und kann hier bezogen werden: BeSly Downloads Unter Windows... ![]() Nach dem Entpacken der Datei, startet man dieses durch einen Doppelklick. ![]() Nachdem das Programm gestartet wurde, gehen wir auf "Bild Öffnen" und wählen das zu konvertierende Bild aus. ![]() Da der yab Code in einer Subroutine gespeichert wird, gibt man bei "Name der Subroutine" den Namen für die Subroutine an. ![]() Bei "Name des View's" geben wir den Namen des View an, auf welchen das Bild gezeichnet werden soll. ![]() Anschließend drücken wir auf "YAB-Code speichern", wählen ein Ziellaufwerk aus und geben einen Namen für die Ausgabedatei an, um den yab Code zu speichern. ![]() An dem angegebenen Ausgabeort sollte jetzt die konvertierte Datei liegen. Unter BeOS, Haiku oder Zeta... Um jetzt das Bild in das Projekt inzufügen, kopieren wir den Inhalt der Ausgabedatei (Die komplette Subroutine) in den Zwischenspeicher. Danach fügen wir diese in das Projekt ein.
Wie man sehen kann, wird jeder einzelne Pixel mit dem Befehl draw dot gezeichnet. Zuvor wird mit mit dem Befehl draw set "highcolor" die Farbe des jeweiligen Pixels angegeben. In den Klammern der Subroutine sind zwei Zahlenvariablen (xpos, ypos) angegeben, diese definieren die Position des Bildes auf dem View. Die Variable xpos gibt an, ab wie viele Pixel vom linken Rand des Views das Bild beginnen soll und die Variable ypos gibt an, ab wie viele Pixel vom oberen Rand des View das Bild beginnen soll.
Um das Bild nun zeichnen zu lassen, müssen wir nur noch die beiden Variablen (xpos,ypos) mit einem Wert versehen und dann die Subroutine aufrufen. ![]() Soweit sogut, jedoch birgt das ganze ein Problem, denn je größer die Quell- Bilddatei, desto größer der Sourcecode. Schon das kleine Bild, welches wir hier für dieses Tutorial verwendet haben (ca. 50 x 50 Pixel) wird mit etwa 2500 Zeilen Code ausgegeben. Bei einigen Versuchen für dieses Tutorial, haben wir versucht große Bilder zu verwenden, jedoch hat die yabIDE Ewigkeiten benötigt um den Code einzufügen. Oftmals haben wir dieses Prozess abgebrochen, da unsere Gedult am Ende war. Es macht daher also wenig Sinn große Bilder selber zu malen, hier sollte immer auf eine externe Datei zurückgegriffen werden. Bereitgestellt durch BeSly, der BeOS, Haiku and Zeta Wissensbasis. |