Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - BLOAD

Referenz-Navigation

 

Syntax: BLOAD (Dateiname[, Adresse][, pal ])
Typ: Funktion
Kategorie: Dateien

BLOAD lädt einen Block binärer Daten aus einer Datei. Der Befehl wird typischerweise benutzt, um Bilder aus externen Dateien (etwa BMPs) zu laden.

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 'Adresse' auslassen oder 0 angeben, werden die Daten als Pixel behandelt und auf die aktuelle Bildschirmseite geladen.

BLOAD unterstützt folgende Dateiformate:

Bilder werden beim Laden in ein FreeBASIC-kompatibles Bildformat konvertiert.

Achtung: Auch wenn BLOAD zum Laden eines Binärdatenblocks verwendet wird, muss die gfxlib eingebunden sein, z. B. durch die Verwendung von BefehlsreferenzeintragSCREENRES.

Das BSAVE-Format von QB erlaubt bis zu 64KB große Binärdaten. Es besitzt einen 7-Byte großen Header, dem die Rohdaten folgen:

OffsetLängeDaten
11 ByteID (= &hFD)
22 BytesDatensegment (DS) zum Speicherzeitpunkt (von FreeBASIC ignoriert)
42 BytesOffset im Datensegment zum Speicherzeitpunkt (von FreeBASIC ignoriert)
62 BytesLänge der Binärdaten

Das BSAVE-Format von FreeBASIC erlaubt bis zu 4GB große Binärdaten. Es besitzt einen 5-Byte großen Header, dem die Rohdaten folgen:

OffsetLängeDaten
11 ByteID (= &hFE)
24 BytesLänge der Binärdaten

Es ist auch möglich, mit BLOAD Bitmaps zu laden. Dazu muss lediglich als Dateiname eine Bitmapdatei (z. B. "MeinBild.bmp") angegeben werden. BLOAD erkennt anhand des Dateianfangs (Externer Link!magic number), dass es sich um eine Bitmap-Grafik handelt. Es werden palette-indizierte BMPs (8 Bit und weniger) und Truecolor-BMPs (15, 16, 24 oder 32 Bit) unterstützt. Die Palette von BMPs mit 8Bit oder weniger wird entweder an die durch den Parameter 'pal' festgelegte Adresse geladen oder, wenn dieser 0 oder unspezifiziert ist, als aktuelle Farbpalette eingesetzt.

Achten Sie beim Laden von Bildern darauf, dass diese die gleiche Farbtiefe aufweisen wie der gewählte Bildschirmmodus (siehe BefehlsreferenzeintragSCREENRES). Laden Sie beispielsweise kein 24-Bit-BMP in ein Grafikfenster mit Farbtiefe 4 Bit. Wenn Bilder in einem der BSAVE-Formate geladen werden sollen, müssen diese im selben Bildschirmmodus mittels BSAVE erstellt worden sein.

Wird die zu ladende Datei nicht gefunden oder ihr Format nicht unterstützt (dies ist 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:
Ein 48x48 Pixel großes Bild in einen Puffer laden und auf dem Bildschirm ausgeben. Das Beispiel benötigt zur korrekten Ausführung ein 48x48 Pixel großes Bild namens "picture.bmp".

SCREENRES 640, 480, 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 auf den Bildschirm zeichnen
ImageDestroy (bild)         'Bildpuffer wieder loeschen
Sleep                       'Auf Tastendruck warten
End

Um Speicherlecks zu vermeiden, sollte man erstellte Bildpuffer nach der Nutzung stets wieder löschen. Dies geschieht mit BefehlsreferenzeintragIMAGEDESTROY. Es empfiehlt sich weiterhin, den BefehlsreferenzeintragPointer 'bild' auf Null zu setzen, um Zugriffsfehler zu vermeiden. Dies ist aber nicht zwingend nötig.

Die Methode, ein Bild in ein selbst erstelltes BefehlsreferenzeintragByte-Array zu laden, ist veraltet und wird hier nur noch zu Dokumentationszwecken aufgeführt:

SCREENRES 640, 480, 32
DIM garray(4 * (48 * 48) + 4) AS Byte
BLOAD "picture.bmp", @garray(0)
PUT (10, 10), garray(0)
SLEEP

Unterschiede zu QB:

Unterschiede zu früheren Versionen von FreeBASIC:

Siehe auch:
BefehlsreferenzeintragBSAVE, BefehlsreferenzeintragPUT (Grafik), BefehlsreferenzeintragGET (Grafik), BefehlsreferenzeintragIMAGECREATE, BefehlsreferenzeintragIMAGEDESTROY, BefehlsreferenzeintragDateien (Files)


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 25.06.2007 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 12.12.2021 von Redakteurnemored gespeichert.
  Versionen Versionen