Bilder in den "Imagebuffer" schreiben und abspeich

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

cdiede

Betreff: Bilder in den "Imagebuffer" schreiben und abspeich

BeitragSa, Apr 25, 2009 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich habe ein kleines Problem beim Programmieren eines Map-Editors.

Der Editor soll zuerst eine große Map laden (das ist ein z.B. 4000x4000 Pixel großes Bild) und dieses in viele kleine 200x200 Pixel Bilder verteilen und seperat in einem Ordner abspeichern.

Ich wollte das nun so machen: Zuerst Map.jpg laden, dann mit CreateImage leere 200x200 Bilder erzeugen, dann in die leeren Bilder jeweils einen Teil der Map mit DrawImageRect speichern und zum Schluss nochmal als Datei abspeichern, z.B. Map_02_09.jpg

Nun weiß ich aber nicht so wirklich, wie die BlitzMax-Befehle dazu heißen.

Soweit bin ich bis jetzt:

Code:
Strict

AppTitle$ = "Mapeditor"

Graphics 800,600,0




'Map laden
Global GesamtMap:TImage = LoadImage("map.jpg")




'Zählervariablen
Global i:Int, j:Int


'Einzelne Map-Teile
Global Map_x:TImage[(ImageWidth(GesamtMap)/200)+1]
Global Map_y:TImage[(ImageHeight(GesamtMap)/200)+1]



For i = 0 To (ImageWidth(GesamtMap)/200)
   For j = 0 To (ImageHeight(GesamtMap)/200)
      
      Map_x[i] = CreateImage(200,200)
      ..... so hier wollte ich jetzt eigendlich sowas wie imagebuffer usw. verwenden... weiß aber nicht wie!..
      
   Next
Next



Flip
WaitKey


Ich hoffe ihr könnt mir ein wenig auf die Sprünge helfen. Habe schon ewig nichts mehr mit Blitzmax zu tun gehabt und möchte mich gerne wieder einarbeiten! Danke!
 

ChristianK

BeitragSa, Apr 25, 2009 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
So große Bilder solltest du auf keinen Fall als TImage laden. Bilder werden als Texturen im VRAM gespeichert und sind dabei auf die Limitierungen der Grafikkarte beschränkt. Manche Karten können nur 2048x2048 Texturen im Speicher halten, sodass das Laden deiner Map fehlschlagen würde.
Vielleicht kannst du die Map stattdessen aus Tiles aufbauen.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

cdiede

BeitragSa, Apr 25, 2009 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ChristianK hat Folgendes geschrieben:
So große Bilder solltest du auf keinen Fall als TImage laden. Bilder werden als Texturen im VRAM gespeichert und sind dabei auf die Limitierungen der Grafikkarte beschränkt. Manche Karten können nur 2048x2048 Texturen im Speicher halten, sodass das Laden deiner Map fehlschlagen würde.
Vielleicht kannst du deine Map stattdessen aus Tiles aufbauen.

Naja ich wollte ja aus der großen Bilddatei Tiles machen, aber dazu muss ich die ja irgendwie zerkleinern.

Wie kann man das Problem lösen?

DaysShadow

BeitragSa, Apr 25, 2009 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Du wirst dich schon an die größte ladbare Größe halten müssen, ganz einfach.

MfG DaysShadow
Blessed is the mind too small for doubt
 

Ava

Gast

BeitragSa, Apr 25, 2009 20:57
Antworten mit Zitat
*mal paar Schlagworten in den Raum werf*

LoadPixmap
... a) DrawPixmap / GrabPixmap
... b) PixmapWindow

Rolling Eyes

kreisman

BeitragSo, Apr 26, 2009 10:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ganze müsste doch gehen, indem du das Map-Bild per LoadAnimImage lädst und jedes Einzelbild 200x200 pixel groß machst. Da müssten dann die passenden Pixmaps rauskommen, die du dann per SavePixmapJPG oder ähnliches speichern kannst.

BtbN

BeitragSo, Apr 26, 2009 20:05
Antworten mit Zitat
Benutzer-Profile anzeigen
DrawPixmap ist mit abstand das lahmste, was man machen kann.
Dabei wird jeder einzelne pixel mit einem Draw-Aufruf an die Graka geschickt.
Bei einem 4000x4000 grossen bild könnte sowas schonmal mehrere sekunden dauern.

Geeecko

BeitragSo, Apr 26, 2009 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann damit aber das Bild in kleinere Aufteilen, abspeichern, und später als TImage laden und zeichnen.
....

HackerBoyZ

BeitragSo, Apr 26, 2009 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
RE: Drawpixmap

aber ist doch eig. egal wenn es lange dauert... soweit ich das mitbekommen habe ist es ja ein tool das große bilder zerlegt und nicht im spiel oder?
somit ist das ja eig net schlimm wenn man DrawPixmap verwendet

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group