Wie werden BMP Dateien von BB intern verwaltet ???
Übersicht

x_toBetreff: Wie werden BMP Dateien von BB intern verwaltet ??? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hätte folgende frage:
wenn ich ein bmp file lade, dann liegt es ja irgendwo im Speicher und es ist über das handle (speicheradresse) ansprechbar. wie werden diese BMPs von BB eigentlich intern verwaltet....weiß das jemand ?? ich habe ein programm geschrieben mit dem man aus tiles und original leveldaten ganze level als bmp file abspeichern kann... allerdings gibt es ab bestimmten bildgrößen probleme mit BB diese abzuspeichern, deswegen wollte ich gern eine eigene funktion schreiben um die bmps nach meinen vorstellungen zu speichern.... nur bräuchte ich ja die farb informationen und color indizes für die tiles und wo finde ich die wenn BB das bmp geladen hat ??? |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum benutzt du überhaupt ein Bild um Leveldaten zu speichern? Ich mein ja nur, weil dann ja im Grunde Grafikspeicher da drunter leiden muß, statt der dafür gemachte RAM.
Eine Bank zum Beispiel kann dynamisch (gibt ein Handle zurück) erstellt werden, lässt sich per Laufzeit in der Größe verändern und kann sogar in einem Rutsch ohne eigene Speicherroutinen in oder aus eine Dateir transformiert werden. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
es handelt sich um eine app um gamemaps für diese seite zu erstellen...![]() http://hol.abime.net/ so wie diese maps aus den original tiles und map data erstellt wurden..: http://hol.abime.net/1535/gamemap |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cool Turrican II, hach. ![]() Also in deinem Fall könnte http://www.wotsit.org eine gute Anlaufstelle sein. Viele unkomprimierte Bilddateiformate sind einfach aufgebaut. Diese könnte man dann selbst schreiben und dann später mit einem Grafikprogramm auf das beliebige Format konvertieren. Speichermanipulation bezüglich BB um große Bilddaten verwerten zu können stelle ich mir viel komplizierter vor. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die lade funktionen von BB will ich ja nutzen...die speicherfunktion über den Imagebuffer wiederum nicht....weil ab einer bestimmten größe probleme auftauchen.....
das BMP format hab ich schon "studiert".. ![]() aber wie könnte ich die geladenen daten separat aufrufen um sie zum speichern zu verwenden....????? |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also das Ding ist, dass zum Beispiel 1535_gamemap6.png etwa 48MB an Grafikspeicher benötigt. Dafür braucht man mindestens eine 64MB-Grafikkarte (falls es überhaupt ausreicht). Schon aus diesem Grund kann man so ein Programm ja nicht im Umlauf bringen.
Zitat: aber wie könnte ich die geladenen daten separat aufrufen um sie zum speichern zu verwenden....?????
Wenn du das BMP-Dateiformat schon so gut kennst, dann kannst du doch ganz einfach mit Write-Befehlen eine Datei selbst schreiben. Du lädst die Mapdaten - dessen Dimension du kennst - einzelnder Tiles ab, und speicherst für jedes Tile in die Datei das Tile an gegebener Position. Dazu habe ich mal ein kleines Beispielprogramm geschrieben: Code: [AUSKLAPPEN] Local Fileout=WriteFile("d:\mydata.dat")
WriteInt(Fileout,1) WriteInt(Fileout,2) WriteInt(Fileout,3) WriteInt(Fileout,4) SeekFile(Fileout,100) WriteInt(Fileout,5) CloseFile(Fileout) Wie man unschwer erkennen kann, ist die Datei am Ende 104 Bytes groß, obwohl nur 5 Integer Zahlen geschrieben wurden. Das liegt daran, dass mit SeekFile die Position für das letzte Integer an Position 100 gesetzt wurde. Wenn du nun einfach drauf los die einzelnen Tiles einer selbst geschriebenen Bilddatei einzeichnest, dann sollte ja alles klappen. Du musst nicht einmal von oben (bzw. bei BMP von unten) beginnen zu schreiben/zeichnen, da du für jede Tilezeile einmal mit SeekFile die Dateiposition festlegst. Du musst am Anfang nur wissen, wie viele Tiles die Map maximal horizontal hat, dammit du das Offset pro Zeile (plus natürlich noch den Dateiheader) bestimmen kannst. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmmm..vielleicht habe ich mich nur falsch ausgedrückt...
die app lädt eine tilemap und weist jedem einzelnen tile eine variable zu dabei werden die tiles noch gespiegelt... BlitzBasic: [AUSKLAPPEN] framecount = (ImageWidth(tile_image_handle)/tilebreite)*(ImageHeight(tile_image_handle)/tilehoehe) das ist der ladevorgang... zum speichern wollte ich aber jedes einzelne "frames(x)" aus dem speicher lesen und in die zieldatei speichern... also eigentlich nur die indizes.... nur ich weiß die struktur der images im speicher nicht... mit BB kann man ja auch nicht den speicher manuell bearbeiten... damals mit BB auf dem Amiga gabs wenigstens die pointer...aber die fehlen hier... ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group