|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 28.04.2005, 19:15 Titel: BMPs einbinden in Free Basic |
|
|
Hallo
Hat vieleicht einer fon euch eine gute Methode parat um BMPs einzubinden
meine alte Variante von QB 4.5 leuft nemlich nicht mehr
MFG Thorben |
|
Nach oben |
|
|
Bernd
Anmeldungsdatum: 14.09.2004 Beiträge: 498 Wohnort: Kulmbach
|
Verfasst am: 29.04.2005, 12:50 Titel: |
|
|
Hallo, das ist eigentlich kein Problem mehr, dank der integrierten Grafiklib...
hier mal ein Code:
Code: |
DIM image(64004) AS UBYTE
SCREEN (beliebiger Graphikscreen)
BLOAD "image.bmp", VARPTR(image(0))
PUT (0,0), image
|
achtung, das BMP muss mit 256 Farben gespeichert werden und darf auch nicht zu groß sein, so jedenfalls meine Erfahrung...
Bernd _________________ Neue Homepage: http://www.glubb.rockt.de
UND
Der Wahnsinn hat seine eigene Homepage: http://pulmollwand.rulz.de |
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 29.04.2005, 14:23 Titel: |
|
|
Für 16/24-Bit-BMPs kann ich dir nur freeImage empfehlen.
Code: |
'$INCLUDE: 'FREEIMAGE.BI'
declare Sub ShowBMP (File AS STRING, x as integer, y as integer)
screen 19, 24
Freeimage_Initialise
ShowBMP "bild.jpg", 100, 100
GetKey
sub ShowBMP (file as string, xs as integer, ys as integer)
dim fif as Free_Image_Format
dim Info as FIBitMap ptr
fif = 2
Info = FreeImage_Load (fif, file)
bpp = FreeImage_GetBPP (Info)
wid = FreeImage_GetWidth (Info)
hei = FreeImage_GetHeight (Info)
for x = 0 to wid - 1
for y = 0 to hei - 1
c = 0
c = c or Peek(ubyte, Info + ((bpp \ 8) * x) + ((bpp \ 8) * wid * y) + 386) 'Rot
c = c shl 8
c = c or Peek(ubyte, Info + ((bpp \ 8) * x) + ((bpp \ 8) * wid * y) + 385) 'Gruen
c = c shl 8
c = c or Peek(ubyte, Info + ((bpp \ 8) * x) + ((bpp \ 8) * wid * y) + 384) 'Blau
PSET (x + xs, y + ys), c
next
next
end sub
|
Wie du siehst, kannst du mit FI auch JPGs verwenden. Wenns trotzdem ne BMP sein soll, einfach in der SUB ShowBMP (a bisl falscher Name, was?) des FIF = 2 zu FIF = 0 ändern.
und natürlich den dateinamen.
Es sollte auch ne FUNCTION FI_GetPictureType (File AS STRING) geben, aber ich bin mir momentan ned ganz sicher.
Einziger Nachteil des ganzen: Die DLL is ca 900KB groß, und für miniprogs daher ned wirklich geeignet. wenns aber was größeres wird (n Spiel oder so), kanns dir sehr viel arbeit abnehmen. _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|