Tipp 0470 JPG-Grafiken mit DirectDraw verwenden
Autor/Einsender:
Datum:
  Alexander Csadek
05.09.2001
Entwicklungsumgebung:
DirectX-Version:
  VB 6
DirectX 7
Die häufig gestellte Frage "kann ich mit DirectDraw auch JPEG-Grafiken verwenden?" sollte mit diesem Beispiel endlich eine Antwort finden.
Es war ja schon bisher möglich, wenn auch umständlich, eine JPEG-Grafik in eine DirectDraw Surface zu bekommen. Da gibt es die Möglichkeit das JPEG in eine PictureBox zu laden und von dieser das Bild als Bitmap temporär zu speichern.
Die andere Variante wäre das JPEG in eine PictureBox zu laden und dann die einzelnen Pixel mittels SetLockedPixel in eine Surface zu zeichnen. Beide Varianten sind nicht besonders effizient und elegant. Mit der Intel® JPEG Library geht das schon viel leichter.
Der abgebildete Code bezieht sich nur auf das Laden der JPG-Grafik in die Surface. Da der Code für die Initialisierung von DirectX meist immer gleich bleibt, wird dieser hier nicht mehr gesondert abgebildet.
 
Sub JPGLaden()

  Dim BmpDesc As DDSURFACEDESC2
  Dim JPG As New cDIBSection
  Dim BmpDC As Long

  BmpDesc.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH
  BmpDesc.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN

  BmpDesc.lWidth = 400
  BmpDesc.lHeight = 500

  'Ein normales Surface wird angelegt in der Größe des zu ladenden JPGs
  Set bmpBild1 = DD7.CreateSurface(BmpDesc)

  'Das JPG wird geladen
  Call LoadJPG(JPG, App.Path & "\husky.jpg")

  'und in die Surface kopiert
  BmpDC = bmpBild1.GetDC
  JPG.PaintPicture BmpDC
  bmpBild1.ReleaseDC BmpDC

End Sub
 
Weitere Links zum Thema
GIF- & JPG-Grafiken ohne OCX in DD-Surface laden
Hinweis
Dieses Beispiel verwendet die Intel® JPEG Library, die mit allen notwendigen Dateien sowie dem VB-Klassenmodul cDIBSection, das alle Funktionen für das Ansprechen der DLL enthält.
Um dieses Beispiel ausführen zu können, wird die DirectX 7 for Visual Basic Type Library benötigt (siehe dazu die Erläuterungen in der DirectX-Rubrik).

Windows-Version
95
98
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (102 kB) Downloads bisher: [ 820 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Dienstag, 30. August 2011