Referenz - BLOAD
Syntax: BLOAD (Dateiname[, Adresse][, pal ])
Typ: Funktion
Kategorie: Datei
Lädt einen Block binärer Daten aus einer Datei. BLOAD wird typischerweise benutzt, um Bilder aus externen Dateien (etwa BMPs) zu laden.
'Dateiname' ist der Name der Datei, aus der geladen werden soll.
'Adresse' ist die Adresse, auf die die Daten geladen werden sollen. Wenn Adresse ausgelassen wird, oder 0 (null) angegeben wird, schreibt BLOAD die Daten auf die aktuelle Bildschirmseite.
(erst ab FB 0.20.0):
'pal' ist die Adresse, auf die die Farbpalette geladen werden soll. Wenn Adresse ausgelassen wird, oder 0 (null) angegeben wird, schreibt BLOAD die Daten in die aktuelle Farbpalette.
Der Rückgabewert ist eine der FreeBASIC-Fehlernummern. Wie bei allen Funktionen kann der Rückgabewert verworfen werden; BLOAD wird dann wie eine Anweisung eingesetzt.
BLOAD kann dazu verwendet werden, einen Block binärer Daten zu laden. Ebenso ist es möglich, einen gespeicherten Bildschirmausschnitt direkt auf den Bildschirm zu laden: Wenn Sie keine Adresse angeben, oder als Adresse 0 angeben, werden die Daten als Pixel behandelt und auf die aktuelle Bildschirmseite geladen.
Beispiel 1:
BLOAD "image.bsv", 0
Dieselbe Funktion erfüllt der folgende Code:
SCREENLOCK
BLOAD "image.bsv", SCREENPTR
SCREENUNLOCK
Neben der oben aufgeführten Nutzung ist es auch möglich, mit BLOAD Bitmaps zu laden (seit FreeBASIC-Version 0.12b). Dazu muss lediglich als Dateiname eine Bitmapdatei (z. B. "MeinBild.bmp") angegeben werden. BLOAD erkennt dann automatisch, dass es sich um eine Bitmap-Grafik handelt. Es werden BMPs aller Farbtiefen (u. a. 8 und 24 Bit) unterstützt.
Achten Sie beim Laden von Bildern darauf, dass diese die gleiche Farbtiefe aufweisen wie der gewählte Bildschirmmodus (siehe
SCREEN). Laden Sie beispielsweise kein 24-Bit-BMP in SCREEN 12 (4 Bit = 16 Farben).
Wird die zu ladende Datei nicht gefunden oder ihr Format nicht unterstützt (z. B. bei RLE-komprimierten Bitmaps der Fall), verursacht BLOAD einen Laufzeitfehler. Ebenso wird ein Fehler verursacht, wenn versucht wird, eine Truecolor-BMP in einem Palette-indizierten Bildschirmmodus zu laden.
Beispiel 2: Ein 48x48 Pixel großes Bild in einen Puffer laden, und auf dem Bildschirm ausgeben
SCREEN 18, 32
Dim As Any Ptr bild
bild = ImageCreate(48, 48) 'Bildpuffer der Groesse 48x48 anlegen
BLoad "picture.bmp", bild 'Bilddatei in den Puffer laden
PUT (10, 10), bild 'Bildpuffer an der Position (10|10) auf den Bildschirm zeichnen
ImageDestroy (bild) 'Bildpuffer wieder loeschen
Sleep 'Auf Tastendruck warten
End
Um Speicherlücken zu vermeiden, sollte man erstellte Bildpuffer nach der Nutzung stets wieder löschen. Dies geschieht mit
ImageDestroy.
Es empfiehlt sich weiterhin, den Pointer bild auf Null zu setzen, um Zugriffsfehler zu vermeiden. Dies ist aber nicht zwingend nötig.
bild = 0
Die Methode, ein Bild in ein selbst erstelltes
Byte-Array zu laden, ist veraltet und wird hier nur noch zu Dokumentationszwecken aufgeführt:
SCREEN 18, 32
DIM garray(4 * (48 * 48) + 4) AS Byte
BLOAD "picture.bmp", @garray(0)
PUT (10, 10), garray(0)
Soll BLOAD als
FUNCTION verwendet werden, muss die Funktionsdeklaration zu Rate gezogen werden:
Declare Function BLOAD ( byRef DateiName As String, byVal Adresse As Any Ptr = 0, byVal Palette As Any Ptr = 0 ) As Integer
Hieraus geht hervor, dass der Rückgabewert dieser Funktion ein
INTEGER ist. Daher muss die Variable, die das Ergebnis aufnehmen soll, ebenfalls ein Integer sein.
Ein Aufruf könnte so aussehen:
Ergebnis = BLOAD( DateiName [, [ Adresse ] [, Palette ] ] )
Die Parameter sind:
- DateiName der Name einer Datei, aus der die Daten geladen werden sollen,
- Adresse die Speicheradresse, an die die Daten geladen werden sollen, und
- Palette die Speicheradresse, an die die Palette (falls vorhanden) geladen werden soll.
Rückgabewert:
Wurde BLOAD erfolgreich ausgeführt, ist der Rückgabewert Null, sonst wird ein Wert ungleich Null zurückgegeben, der den Fehler anzeigt.
Beschreibung:
Adresse ist die Speicheradresse, an die die Daten geladen werden sollen. Falls ausgelassen oder 0 (Null), werden die Daten auf die aktuelle Bildschirmseite geladen.
Hinweis:
Bei Verwendung als Funktion müssen die Parameter von Klammern umgeben sein.
Unterschiede zu QB:
- BLOAD unterstützt auch das Laden von Datenblöcken größer als 64KB sowie von Bitmaps.
- BLOAD kann auch als Funktion eingesetzt werden.
Unterschiede zu früheren FreeBASIC-Versionen:
- Die Möglichkeit, Bitmaps zu laden, existiert erst seit FreeBASIC v0.12.
- Die Möglichkeit, BMPs höherer Farbtiefen als 8 Bit zu laden, existiert erst seit v0.14.
Siehe auch:
BSAVE,
PUT (Grafik),
IMAGECREATE,
IMAGEDESTROY
| Zusätzliche Informationen und Funktionen | ||||
|---|---|---|---|---|
|
||||




Versionen