Hilfe

LoadAnimImage

B2D B+ B3D

Aufruf

Bild = LoadAnimImage (Datei$, width, height, Start, Frames [,Modus])

Parameter

Datei$ Beliebige Grafikdatei evtl. mit Pfad (Bmp, Jpg, Png, Pcx, Tga, Iff)
width Breite jedes Animationsbildes in Pixel
height Höhe jedes Animationsbildes in Pixel
Start Startframe (normalerweise 0)
Frames Anzahl der Animationsbilder
Modus Ab BlitzPlus:
1=Managed (Standard)
2=Dynamic
4=Scratch


Rückgabewert

Identität des geladenen Bildes. Wenn eine Null zurückgeliefert wird, dann konnte die Grafikdatei nicht geladen werden.


Beschreibung

Diese Anweisung lädt ein Animationsbild. Es funktioniert eigentlich wie LoadImage, nur enthält dieses Bild gleich mehrere kleine Animationsbilder nebeneinander. Jedes Animationsbild hat die gleiche Breite und Höhe. Es dürfen auch keine Lücken zwischen den Bildern vorkommen. Wenn man die Animation mit DrawImage abspielt, dann muss man das Animation-Frame angeben.

BlitzBasic kann BMP-Bilder laden. Die Vollversion kann zusätzlich noch JPG, PNG, PCX, TGA, IFF laden.

Ab BlitzPlus wurde ein neuer "Modus"-Parameter eingebaut:
1=Managed: Grafiken werden in RAM (und VRAM) gehalten und wenn notwendig nach VRAM konvertiert, so können Grafiken nach Änderung der Auflösung erhalten werden. Solche Grafiken werden schnell gezeichnet - aber dafür sind die bei Änderungen langsam.
2=Dynamic: Grafiken werden nur im VRAM gehalten - Das ist die schnellste Variante. Grafiken gehen jedoch nach Änderung der Auflösung verloren.
4=Scratch: Grafiken werden nur im RAM gehalten - das ist sehr langsam. Das hat jedoch einen Vorteil: Ein PC hat viel mehr RAM als VRAM - deshalb können temporäre Grafiken im RAM gehalten werden.

Achtung: Jedes geladene Bild kostet ein Stückchen Grafikspeicher. Besonders ältere Rechner mit wenig Speicher können nicht so viele Bilder auf einmal im Speicher behalten. Das Bild kann auch nicht einfach in 16 oder 256 Farben abgespeichert werden - beim Laden wird es der Farbtiefe automatisch angepasst.

Eine Bildschirm-Farbtiefe von 16 Bit verbraucht halb soviel Speicher wie 32 Bit. Benutze AvailVidMem, um den freien Speicher zu ermitteln sowie FreeImage, um ein Bild aus dem Speicher zu entfernen


Zusatzinformation

Diese Fehlermeldungen erscheinen, wenn ein Bild im Grafikspeicher nicht gefunden werden konnte. Dafür gibt es mehrere Gründe:

- Ein Bild konnte auf dem Datenträger nicht gefunden werden
- Die Grafikdatei ist fehlerhaft
- Der Grafikspeicher wurde mit Graphics gelöscht
- Wert der Variable "Bild" wurde gelöscht
- Die Variable "Bild" hat einen falschen Namen
- Die Variable "Bild" wurde nicht als Global definiert
- Siehe auch GraphicsLost (nur Blitz3D)


Alternativ könnte auch die Fehlermeldung "Memory access violation" stehen, diese taucht jedoch meist nur bei ausgeschaltetem Debugger auf. Es empfiehlt sich dann den Debugger zu aktivieren um genauere Erkenntnisse über den Fehler zu erhalten.


Beispiel

Standardbeispiel:

Graphics 640, 480, 16
SetBuffer BackBuffer()
gfxSparks = LoadAnimImage("Media\spark.bmp", 32, 32, 0, 3)
MaskImage gfxSparks, 255, 0, 255
While Not KeyHit(1)
   Cls
   If MilliSecs() > tmrSparks + 100 Then
      tmrSparks = MilliSecs()
      frmSparks = (frmSparks + 1) Mod 3
   End If
   DrawImage gfxSparks, MouseX(), MouseY(), frmSparks
   Flip
Wend


Siehe auch

CreateImage, DrawBlock, DrawBlockRect, DrawImage, DrawImageRect, FreeImage, LoadImage, MaskImage

Übersicht 2D Grafik Bilder