.tga mit Blitz2d und BlitzPlus laden und speichern

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

mangoo

Betreff: .tga mit Blitz2d und BlitzPlus laden und speichern

BeitragSa, Sep 25, 2004 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, da Blitz2d und BlitzPlus keine TGA Bilder laden können, hier eine kleine Abhilfe....

LoadTGA(name$) lädt ein TGA Bild und gibt ein Image Handle zurück
SaveTGA(name$,image) speichert ein Image Handle als TGA Datei

speed optimierung ist erwünscht, also ran ans werk Wink

BlitzBasic: [AUSKLAPPEN]
Function SaveTGA(name$,image)
; saves an image as .tga format

Local f,width,height,tbuffer,x,y
width=ImageWidth(image)
height=ImageHeight(image)
f=WriteFile(name$)
WriteByte(f,0) ;idlength
WriteByte(f,0) ;colormaptype
WriteByte(f,2) ;imagetype 2=rgb
WriteShort(f,0) ;colormapindex
WriteShort(f,0) ;colormapnumentries
WriteByte(f,0) ;colormapsize
WriteShort(f,0) ;xorigin
WriteShort(f,0) ;yorigin
WriteShort(f,width) ;width
WriteShort(f,height) ;height
WriteByte(f,32) ;pixsize
WriteByte(f,8) ;attributes

buffer=ImageBuffer(image)
For y=height-1 To 0 Step -1
For x=0 To width-1
WriteInt f,ReadPixel(x,y,buffer)
Next
Next
CloseFile f
End Function



Function LoadTGA(name$)
;loads an .tga image and returns image handle

Local f,width,height,tbuffer,x,y
f=ReadFile(name$)
ReadByte(f) ;idlength
ReadByte(f) ;colormaptype
ReadByte(f) ;imagetype 2=rgb
ReadShort(f) ;colormapindex
ReadShort(f) ;colormapnumentries
ReadByte(f) ;colormapsize
ReadShort(f) ;xorigin
ReadShort(f) ;yorigin
width=ReadShort(f) ;width
height=ReadShort(f) ;height
ReadByte(f) ;pixsize
ReadByte(f) ;attributes

image = CreateImage(width,height)
buffer=ImageBuffer(image)
For y=height-1 To 0 Step -1
For x=0 To width-1
col = ReadInt(f)
WritePixel(x,y,col,buffer)
Next
Next
CloseFile f

Return image
End Function
 

Apocalyptic

BeitragSa, Sep 25, 2004 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz nett, aber B2D kann TGAs laden, habs grad extra nochmal getestet. Aber wenigstens lernt man was über den Aufbau von TGAs Wink
Und die Speicherfunktion ist wenigstens mal eine Alternative zu den "BB-Standard-Bmps"
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

mangoo

BeitragSa, Sep 25, 2004 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
oh naja unter b+ konnte ich keine .tga dateien laden, ka kann auch sein das meine version veraltet ist
 

morszeck

BeitragMo, Sep 27, 2004 7:36
Antworten mit Zitat
Benutzer-Profile anzeigen
TGA ist ja einfacher aufgebaut als ein BMP. Da werden sie RGB-Werte in einer anderen Reihenfolge vertauscht, sowie das Bild wird von unten rechts nach oben links aufgebaut.

Beherscht TGA nur TrueColor, oder auch andere Depth-Werte?
WinXpProf&SP2, B3D V1.88, B+ V1.40, BMax101Beta, AMD TB1.4GHz, DDR266/768MB, GeForce3@64MB

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group