LoadAnimImage geladenes bild in mehrere bilder unterteilen..

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

x_to

Betreff: LoadAnimImage geladenes bild in mehrere bilder unterteilen..

BeitragSo, Jul 02, 2006 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich in BB+ mit LoadAnimImage ein bild lade habe ich bisher das frame tag genutzt um das richtige bild zu zeichnen...

allerdings will ich jetzt jedes frame einzeln bearbeiten und bräuchte für jedes frame ein einzelnes handle...allerdings weiß ich nicht wie ich das anstellen soll...

könnte mir da jemand helfen..???

kreisman

BeitragSo, Jul 02, 2006 13:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenns nicht auf geschwindigkeit ankommt,würd ich es so machen.Du lädst das bild mit LoadImage, bearbeitest den ensprechenden Frame.Speichert das bild temporär auf der Festplatte und lädst es dann mit LoadAnimImage.
 

x_to

BeitragDi, Jul 04, 2006 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
hmmm..komischerweise unterstützt aber loadimage nicht die bildgröße wie Loadanimimage...

bei größeren bildern versagt es leider...

Rone

BeitragDi, Jul 04, 2006 23:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Guck mal hier
Da hab ich nen code gepostet der sowas ähnliches macht.Wink

Ansonsten guck dir in der Onlinehilfe mal CreateImage(..), imagebuffer(..) und saveimage(...) an.

mfg
 

konstantin

BeitragMi, Jul 05, 2006 2:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Was laberst du für nen Bullshit? Er kann den Frame auch einfach via CopyRect in einen neuen ImageBuffer kopieren und dort editieren.

kreisman

BeitragMi, Jul 05, 2006 8:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wie bekommt er die dann ausm imagebuffer wieder zum AnimImage zusammengesetzt?????Ich kenn da nur den Weg über die Festplatte.

Hubsi

BeitragMi, Jul 05, 2006 9:00
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
SetBuffer ImageBuffer(animbild,frame)
Rect 10,10,10,10,1 ; Lustig bearbeiten
Fällt mir spontan dazu ein.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Rone

BeitragMi, Jul 05, 2006 11:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Bild=CREATEIMAGE (Breite, Höhe [,Frames] [,Modus])

Praktisch, wusste ich auch noch nicht! Smile

Zitat:
Was laberst du für nen Bullshit?

Wen meinst du?!

kreisman

BeitragMi, Jul 05, 2006 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Bild=CREATEIMAGE (Breite, Höhe [,Frames] [,Modus])

Tatsache steht so in der OH und ich Idiot mach mir tagelang Gedanken.
 

x_to

BeitragFr, Jul 07, 2006 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm...danke erstmal für eure hilfe...

gibt es denn noch andere wege außer über der festplatte aus einem animloadimage einzelne frames zu "rippen"...????

Rone

BeitragSa, Jul 08, 2006 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,
entweder so:
Code: [AUSKLAPPEN]

Local Ani = LoadAnimImage("test.png",48,48,0,16)
Dim frames(16)
For i=0 To 15
   frames(i) = CreateImage(48,48)
   SetBuffer ImageBuffer(frames(i))
   DrawImage Ani,0,0,i
Next

oder so:
Code: [AUSKLAPPEN]

Local Ani = LoadAnimImage("test.png",48,48,0,16)
Dim frames(16)
For i=0 To 15
   frames(i) = CreateImage(48,48)
   CopyRect 0,0,48,48,0,0,ImageBuffer(Ani,i),ImageBuffer(frames(i))
Next

mfg Cool
 

x_to

BeitragSa, Jul 08, 2006 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist doch mal kurzer, knapper und sehr effektiver code...

also dann kann ich nun mit "frames(i)" jedes einzelne frame zeichnen, wobei i die "framenummer" darstellt...

genial... Very Happy
 

x_to

BeitragSo, Jul 16, 2006 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
soweit, so gut...nun würde ich gerne alle einzelnen tiles gespiegelt direkt ansprechen können...

d.h. erst horizontal gespiegelt, dann vertikal und zum schluß horizontal und vertikal...


bei einer reihe von tiles von 0 - 49 sind alle tiles normal wie in der bilddatei...ab 50 bis 99 dann horizontal, von 100 bis 199 vertikal und zu guter letzt von 200 bis 299 horizontal und vertikal..

dabei sollte dann jedes einzelne tile durch "frames(x)" ansprechbar sein...

klingt kompliziert, deswegen frage ich hier mal nach... Very Happy
 

x_to

BeitragMi, Jul 19, 2006 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm..ich habs mal selbst probiert, aber es funktioniert irgendwie nciht....

kann mir da wirklich keiner helfen..??

Code: [AUSKLAPPEN]
Dim frames(framecount*4)
      For i = 0 To framecount-1
         frames(i) = CreateImage (tilebreite,tilehoehe)
         SetBuffer ImageBuffer (frames(i))
         DrawImage tilemap,0,0,i
         ;horizontal spiegeln
            frames(i+framecount) = CopyImage (frames(i))
            HandleImage frames(i+framecount),0,-tilehoehe
            ScaleImage frames(i+framecount),1,-1
         ;vertikal spiegeln
            frames(i+(2*framecount)) = CopyImage (frames(i))
            HandleImage frames(i+(2*framecount)),-tilebreite,0
            ScaleImage frames(i+(2*framecount)),-1,1
            
         ;horizontal und vertikal spiegeln
            frames(i+(3*framecount)) =CopyImage (frames(i))
            HandleImage frames(i+(3*framecount)),-tilebreite,-tilehoehe
            ScaleImage frames(i+(3*framecount)),-1,-1
          
      Next

Rone

BeitragMi, Jul 19, 2006 22:57
Antworten mit Zitat
Benutzer-Profile anzeigen
moin,

du musst einfach nur die 'Minus' bei HandleImage wegmachen:

Code: [AUSKLAPPEN]
breite=32
hohe=32
frameAnz=50
Local Ani = LoadAnimImage("test.png",breite,hohe,0,frameAnz)
Dim frames(frameAnz*4)

For i=0 To frameAnz-1
   
  frames(i) = CreateImage(32,32)
  CopyRect 0,0,breite,hohe,0,0,ImageBuffer(Ani,i),ImageBuffer(frames(i))

  frames(i+frameAnz)= CopyImage(frames(i))
  HandleImage frames(i+frameAnz),0,hohe
  ScaleImage frames(i+frameAnz),1,-1

  frames(i+frameAnz*2)= CopyImage(frames(i))
  HandleImage frames(i+frameAnz*2),breite,0
  ScaleImage frames(i+frameAnz*2),-1,1

  frames(i+frameAnz*3)= CopyImage(frames(i))
  HandleImage frames(i+frameAnz*3),breite,hohe
  ScaleImage frames(i+frameAnz*3),-1,-1

Next


mfg

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group