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!

Tutorial

JPEG Dateien anzeigen mit jpeg4fb

von RedakteurVoltaSeite 2 von 2

JPEG loader by Antoni Gual, Adapted to FB0.17 by Luke Landriaut

Anzeigen einer JPG - Grafik mit jpeg2screen.

#include "jpeg4fb.bas"

Screen 19, 32

jpeg2screen( "Volta.jpg" )
If jpegerr Then Print printerror

sleep

Einfacher geht es nicht mehr! Mit jpeg2screen("Volta.jpg",X,Y) kann die Grafik auch auf dem Screen positioniert werden.


Laden und anzeigen einer JPG - Grafik mit jpegget.

#include "jpeg4fb.bas"

Screen 19, 32

Dim As Any Ptr bild = jpegget("Flieger.jpg")
If jpegerr Then Print printerror : Sleep : End

Put (20, 40), bild, Pset

If bild <> 0 Then Imagedestroy bild
Sleep

Die Funktion gibt eine Adresse auf das Image zurück, im Fehlerfall ist jpegerr<>0 und über die Funktion printerror kann der Fehlertext angezeigt werden.
Das erstellte Image ist immer ein 32Bit - Format mit dem neuen ImageHeader.


Laden und anzeigen einer JPG - Grafik mit jpeggetmem.

Die Funktion jpeggetmem läd eine JPG - Grafik aus dem Speicherbereich in ein Image, wie hier schon bei der FBpng beschrieben.

Dim As Any Ptr StartFile       'Pointer für den Anfang des Files
Dim As Uinteger LenFile        'Variable für die Länge des Files

Asm
  .balign 16
  jmp START_OF_PROG            'springe zum Label START_OF_PROG

  .balign 4
  START_OF_FILE:               'ab hier beginnt die eingebundene Datei
  .incbin "./Flieger.jpg"
  END_OF_FILE:                 'hier endet die eingebundene Datei

  .balign 16
  START_OF_PROG:
  lea ebx, START_OF_FILE       'Lade die Adresse des Label START_OF_FILE nach ebx
  mov dword Ptr [StartFile], ebx 'Speicher die Adresse im Pointer StartFile
  lea eax, END_OF_FILE         'Lade die Adresse des Label END_OF_FILE nach eax
  Sub eax, ebx                 'berechne eax - ebx = Länge des Files
  mov dword Ptr [LenFile], eax 'Speicher die Länge des Files in der Variablen LenFile
End Asm


#include "jpeg4fb.bas" 'die jpeg4fb.bas wird in unser Programm eingebunden.

Screen 19, 32        'erstellt ein Grafikfenster

Dim As Any Ptr img  'Pointer (Zeiger) auf das Image definieren
'die jpeggetmem - Funktion benötigt
'einen Pointer auf den Anfang der Datei und die Dateilänge
img = jpeggetmem(StartFile, LenFile)

If img <> 0 Then    'wurde dem Pointer eine Adresse mitgegeben?
  Put( 20, 20 ), img, Pset  'ja, dann das Bild anzeigen
  Locate 27,1
  Print "Breite : "; Cast( Integer Ptr, img)[2]; " Pixel"
  Print "Hoehe  : "; Cast( Integer Ptr, img)[3]; " Pixel"
  Imagedestroy img  'den belegten Speicherbereich freigeben
Else
  If jpegerr Then Print printerror
  Print "Fehler beim laden der JPG-Grafik!
End If

Sleep

Viel Spaß damit
Volta

 

Gehe zu Seite Gehe zu Seite  1  2  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 03.10.2007 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 31.01.2013 von RedakteurVolta gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen