|
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
|
|
|
|
|
|
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 ]
|
|
|