EIn Bild in kleinere Einzelteile aufteilen
Übersicht

EquilibriumBetreff: EIn Bild in kleinere Einzelteile aufteilen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so hier erst mal meine ersten gehversuche mit blitzmax:
Code: [AUSKLAPPEN] '--------------------------Program Settings----------------------------------------------------------------
Strict Global width:Int=1024 Global height:Int=768 Global mapname:String="test1.bmp" Graphics width,height '--------------------------Load Images-------------------------------------------------------------------- Global spr_start_terrain:TImage=LoadImage("maps/"+mapname) '--------------------------Map Settings------------------------------------------------------------------- Global width_tile:Int=(width/32) Global height_tile:Int=(height/32) Global terrain_part:TImage[width_tile, height_tile] DrawImage(spr_start_terrain,0,0) Local i,j For i=0 To width_tile-1 For j=0 To height_tile-1 terrain_part:TImage[i,j] = CreateImage(32,32,0,) GrabImage (terrain_part[i,j],i*32,j*32) Next Next '***************************MAIN-"LOOP"********************************************************************* Cls For i=1 To width_tile-1 For j=1 To height_tile-1 DrawImage(terrain_part[i,j],i*32,j*32) Next Next Flip WaitKey() End In blitz3d hat das ganze mit setbuffer imagebuffer, dim-feldern, grabimage etc geklappt... aber hier bekomme ich es irgendwie ned hin... statdessen kommt diese fehlermeldung: "Unhandled Exception: Attempt to index array element beyond array length" Meine Frage: Was mache ich falsch? ^^ Danke schon mal für eure Antworten... |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meines Wissens geht das mit Images gar nicht. Du solltest dir mal Pixmaps ansehen. | ||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Seltsam.
Der Fehler tritt in GrabImage Befehl auf o_O In SetPixmap um genau zu sein und wenn man dem Debugger glauben kann. GrabImage scheint ja echt irgendwie kaputt zu sein? Ersetz das mal mit dem inhalt der ersten For-Schleife: Code: [AUSKLAPPEN] Local img:TPixmap = GrabPixmap (i*32,j*32,32,32)
terrain_part[i,j] = LoadImage(img) |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum denn bloß mit GrabPixmap? Er hat doch ein Image, welches wiederrum ein Pixmap enthält, richtig? So, nun will er ein 32x32 großes Stück davon in ein neues Image kopieren, richtig?
Code: [AUSKLAPPEN] MeinNeuesImage:TImage = LoadImage(MeinOriginalImage.Pixmaps[0].Window(MeinX,MeinY,32,32).Copy())
Im obrigen Code kopiere ich einen Teil des ersten Frames (0) der Pixmap des original Images in eine neue Pixmap, die wiederum direkt mit LoadImage in ein neues Image geladen wird. Mit LoadImage ist es nämlich möglich eine Pixmap direkt in ein Image zu laden. cheers |
||
Equilibrium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
erst mal danke vielmals für eure antworten
mit foody's vorschlag hat es geklappt ![]() aus Code: [AUSKLAPPEN] MeinNeuesImage:TImage = LoadImage(MeinOriginalImage.Pixmaps[0].Window(MeinX,MeinY,32,32).Copy())
werde ich allerdings ned wirklich schlau :S Dieses ganze Konzept von Pixmaps ist völlig neu für mich... Kennt jemand vieleicht ein Tutorial oder sonst eine Übersicht/Einführung in dieses Thema? (darf auch englisch sein) Wozu eignen sich Pixmaps? Wozu nicht? (ich erinnere mich zbsp. irgendwo gelesen zu haben dass die umwandlung von pixmaps zu bildern rel. langsam sei und sich deshalb nicht für dinge in echtzeit eignet) In Blitz3d habe ich viel mit "Setbuffer Imagebuffer(img)" gearbeitet... das Bild liess sich dann ja handhaben wie sonst der Backbuffer... man konnte zum Beispiel ein weiteres Bild darauf zeichnen. In BlitzMax lässt es sich allerdings nicht mehr so realisieren.. man könnte das erste Bild auf den Backbuffer zeichnen dann das zweite darüber und das ganze wieder grabben.... oder aber mit Pixmaps arbeiten (nehme ich mal an ^^) Wie würdet ihr jetzt diese letzte Aufgabe lösen? Ja ich sehe schon sind wieder mal viele Fragen... ich hoffe ihr könnt mir möglichst viele davon beantworten ^^ Thx schonmal/nochmal und beste Wünsche fürs neue Jahr Equilibrium |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group