LoadAnimImage geladenes bild in mehrere bilder unterteilen..
Übersicht

x_toBetreff: LoadAnimImage geladenes bild in mehrere bilder unterteilen.. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmmm..komischerweise unterstützt aber loadimage nicht die bildgröße wie Loadanimimage...
bei größeren bildern versagt es leider... |
||
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Guck mal hier Da hab ich nen code gepostet der sowas ähnliches macht. ![]() Ansonsten guck dir in der Onlinehilfe mal CreateImage(..), imagebuffer(..) und saveimage(...) an. mfg |
||
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was laberst du für nen Bullshit? Er kann den Frame auch einfach via CopyRect in einen neuen ImageBuffer kopieren und dort editieren. | ||
![]() |
kreisman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber wie bekommt er die dann ausm imagebuffer wieder zum AnimImage zusammengesetzt?????Ich kenn da nur den Weg über die Festplatte. | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] SetBuffer ImageBuffer(animbild,frame)Fällt mir spontan dazu ein. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bild=CREATEIMAGE (Breite, Höhe [,Frames] [,Modus])
Praktisch, wusste ich auch noch nicht! ![]() Zitat: Was laberst du für nen Bullshit?
Wen meinst du?! |
||
![]() |
kreisman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Bild=CREATEIMAGE (Breite, Höhe [,Frames] [,Modus])
Tatsache steht so in der OH und ich Idiot mach mir tagelang Gedanken. |
||
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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... ![]() |
||
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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... ![]() |
||
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group