Einzelnen Beitrag anzeigen

lacky

Registriert seit: 26. Apr 2007
7 Beiträge
 
#1

Problem mit Animation / Bearbeiten von Bildern

  Alt 8. Jan 2008, 15:18
Hallo an alle,
Ich hab hier ein kleines problem und weiß wirklich nicht woran es liegen könnte warum es nicht klappt..
hier erst mal der code:

Delphi-Quellcode:
 
        for m := 1 to 8 do
          begin
            flashbilder[0,0]:=flashbilder[1,0];
            for xi := 1 to 32 do
              begin
                for yi := 1 to 32 do
                begin
                 if flashbilder[0,0].Canvas.Pixels[xi,yi]<>clwhite then
                    begin
                      red := ColorToRGB(flashbilder[0,0].Canvas.Pixels[xi,yi]) and $0000FF;
                      green := (ColorToRGB(flashbilder[0,0].Canvas.Pixels[xi,yi]) and $00FF00) shr 8;
                      blue := (ColorToRGB(flashbilder[0,0].Canvas.Pixels[xi,yi]) and $FF0000) shr 16;
                      red:=red+250-m*30;
                      green:=green-60+m*8;
                      blue:=blue-60+m*8;
                      if green<0 then green:=0;
                      if blue<0 then blue:=0;
                      if red>255 then red:=255;
                      flashbilder[0,0].Canvas.Pixels[xi,yi]:=TColor(red + (green shl 8) + (blue shl 16));
                    end;
                end;
              end;
             flashbilder[1,m]:=flashbilder[0,0];
          end;
aalso, ich möchte hier versuchen, bilder "flashen" zu lassen, also in einer farbe aufleuchten lassen (hier rot) und dann langsam wieder zur normalfarbe zurückzugehen. in diesem code, welcher zu beginn ausgeführt wird, werden nun die bilder analysiert, die farbwerte verändert und in jeweils 8 bilder, welche dann die animation geben sollen, abgespeichert.

flashbilder[0,0] ist nur ne hilfsvariable, in der das aktuell zu bearbeitende bild zwischengespeichert wird.
und unten wird schließlich in flashbilder[1,m] die bilder abgespeichert, wobei m die einzelnen animationsbilder sind (hier 1-8, unter 0 ist das originalbild gespeichert).

später wird dann in einem timer die animation abgerufen und die bilder nacheinander abgerufen..
jedoch ist dann mein bild dauerhaft komplett rot, was nicht sein sollte..
dann hab ich getestet woran das liegen könnte.. der animationscode im timer ist korrekt, also muss es an den einzelnen bildern liegen. und dann hab ichs zum testen so gemacht, dass wenn das ereignis auftreten soll, anstatt der kompletten animation nur ein bild genommen wird, und zwar flashbilder[1,0], welches ja das originalbild sein sollte.. ist es aber nicht wirklich, da es ebenfalls komplett rot ist, was mich sehr verwundert und verwirrt..
wenn man sich den obigen code ansieht sieht man ja, dass in keinem fall an flashbilder[1,0] rumgespielt wird, also kann es gar nicht rot sein, oder sonstwas.. oder?
das einzige mal, wo flashbilder[1,0] im code vorkommt, is am anfang, wo der "hilfsvariable" eben dieses bild zugeordnet wird, aber sonst ja nichts..

ich hoffe ihr wisst was ich meine und könnt mir vielleicht helfen
  Mit Zitat antworten Zitat