Schöner Effekt

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

sbrog

Betreff: Schöner Effekt

BeitragDo, Sep 02, 2004 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Dieser Effekt "verwandelt" ein Bild zu einem anderen. D.H , zuerst ist das erste Bild sichtbar, dann kommt das zweite zum Vorschein und das erste verschwindet. Ach , egal, sehts euch selbst an.

http://sbrog.tim-koepsel.de/Verwandlung.rar

wunderkind

BeitragFr, Sep 03, 2004 0:25
Antworten mit Zitat
Benutzer-Profile anzeigen
http://sbrog.tim-koepsel.de/Verwandlung.rar

Sehr langsam, aber nett. Am Ende allerdings tritt ein unschöner Effekt auf. Solltest du auch gesehen haben.

sbrog

BeitragFr, Sep 03, 2004 0:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Ahnung ,was für nen Fehler du meinst,bei mir läuft alles glatt.

wunderkind

BeitragFr, Sep 03, 2004 1:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Diesen Fehler meine ich:
user posted image

Travis

BeitragFr, Sep 03, 2004 1:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Richtig lustig wäre es, wenn man diesen Effekt absichtlich herbeiführen würde. Man könnte ein Loch in das erste Bild "hineinbrennen", wodurch das zweite langsam sichtbar werden würde.
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

DivineDominion

BeitragFr, Sep 03, 2004 8:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, und wenn jemand hier noch diese Lichtstrahlen aus dem Bild in BB nachzeichnen könnte wär der Effekt super Wink
christian.tietze@gmail.com - https://christiantietze.de
macOS
 

hot-bit

Gast

BeitragFr, Sep 03, 2004 9:18
Antworten mit Zitat
Hoi,

Kann das leider nicht nachvollziehen. Bei mir gibt es den Fehler nicht .....

Toni

sbrog

BeitragFr, Sep 03, 2004 10:08
Antworten mit Zitat
Benutzer-Profile anzeigen
@Wunderkind

Im Debugmodus hab ich den Fehler auch. Stell ihn mal aus

regaa

BeitragDo, Sep 09, 2004 9:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Also falls es dich interessiert: Hab weil ich nix zu tun hab auf Arbeit, mir erlabut deine Version abzuändern:

BlitzBasic: [AUSKLAPPEN]

;Ein Bild langsam zu einem anderen übergehen lassen

Graphics 800,600 ,32


bild1 = LoadImage("HM1.jpg")
bild2 = LoadImage("HM2.jpg")

Global bildbreite = ImageWidth(bild1)
Global bildhoehe = ImageHeight(bild2)
Global abstufungen = Input("Stufen ->")
Global spanne=Input("Zeitspanne ->")
Global frequenz=abstufungen/spanne
Global timer=CreateTimer(frequenz)

Dim bilder(abstufungen)

;Die informationen von Bild 1
Dim rot1#(bildbreite,bildhoehe)
Dim gruen1#(bildbreite,bildhoehe)
Dim blau1#(bildbreite,bildhoehe)
;Die Informatieonen von Bild 2
Dim rot2(bildbreite,bildhoehe)
Dim gruen2(bildbreite,bildhoehe)
Dim blau2(bildbreite,bildhoehe)
;Differenzen der Pixelfarben
Dim rotdif#(bildbreite,bildhoehe)
Dim gruendif#(bildbreite,bildhoehe)
Dim blaudif#(bildbreite,bildhoehe)








;Bild 1 einlesen
SetBuffer ImageBuffer(bild1)
LockBuffer ImageBuffer(bild1)
For i = 0 To bildbreite-1
For j = 0 To bildhoehe-1
rgb = ReadPixelFast(i,j)
rot1(i,j) =(rgb And $FF0000)/$10000 ;Rot einlesen
gruen1(i,j) =(rgb And $FF00)/$100 ;Grün einlesen
blau1(i,j) =rgb And $FF ;Blau einlesen
Next
Next
UnlockBuffer ImageBuffer(bild1)


;Bild 2 einlesen
SetBuffer ImageBuffer(bild2)
LockBuffer ImageBuffer(bild2)
For i = 0 To bildbreite-1
For j = 0 To bildhoehe-1
rgb = ReadPixelFast(i,j)
rot2(i,j) =(rgb And $FF0000)/$10000 ;Rot einlesen
gruen2(i,j) =(rgb And $FF00)/$100 ;Grün einlesen
blau2(i,j) =rgb And $FF ;Blau einlesen
Next
Next
UnlockBuffer ImageBuffer(bild2)

For i = 0 To bildbreite-1
For j = 0 To bildhoehe-1
rotdif(i,j) =Float (rot1(i,j)-rot2(i,j))/abstufungen*(-1)
gruendif(i,j) =Float (gruen1(i,j) -gruen2(i,j))/abstufungen*(-1)
blaudif(i,j) =Float (blau1(i,j) - blau2(i,j))/abstufungen*(-1)
Next
Next

For bi=1 To abstufungen
bilder(bi)=CreateImage(bildbreite,bildhoehe)
SetBuffer ImageBuffer(bilder(bi))
LockBuffer
For i = 0 To bildbreite-1
For j = 0 To bildhoehe-1
rot1(i,j)=rot1(i,j)+ rotdif(i,j)
gruen1(i,j)=gruen1(i,j) + gruendif(i,j)
blau1(i,j)=blau1(i,j) +blaudif(i,j)
WritePixelFast i,j, rgb(rot1(i,j),gruen1(i,j),blau1(i,j))
Next
Next
UnlockBuffer
DebugLog bi+" Bild erstellt."
Next



bi=0
SetBuffer BackBuffer()
Repeat
bi=bi+1
If bi>abstufungen
Color 255,255,255
SetBuffer FrontBuffer()
Text bildbreite+10,10,"Animation beendet"
End
EndIf

DrawImage bilder(bi),0,0
Flip
WaitTimer( timer)
Until KeyHit(1)

Function rgb(rot,gruen,blau)
Return blau Or(gruen Shl 8) Or ( rot Shl 16)
End Function


Die Anzeige geht nun in Echtzeit,, zwar wird es langsam vorberechnet aber bestimmt lässt sich da noch viel dran optimieren. Ausserdem kann man nun Spanne einstellen in Sekunden, wie lange die Auflösung dauern soll.
Wink
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

sbrog

BeitragDo, Sep 09, 2004 10:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Version gefällt mir. Es sollte irgendwie eine Möglichkeit geben, die vielen Felder zu vermeiden,denn bei einem 800*600 Bild sind das 4320 KiloByte

regaa

BeitragDo, Sep 09, 2004 10:18
Antworten mit Zitat
Benutzer-Profile anzeigen
was mir nicht gefällt ist das die vorberechnung so lange dauert, hab zwar hier schon ne version gemacht die ist 10% schneller, aber wirklich n bringer ist es nicht.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net
 

Apocalyptic

BeitragDo, Sep 09, 2004 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
sbrog hat Folgendes geschrieben:
Es sollte irgendwie eine Möglichkeit geben, die vielen Felder zu vermeiden,denn bei einem 800*600 Bild sind das 4320 KiloByte


Das dürften sogar 16875 KiloByte sein: 800*600*9*4/1024
Um nen paar Byte zu sparen hilft das:
BlitzBasic: [AUSKLAPPEN]
Dim rot1#(bildbreite-1,bildhoehe-1) 
Dim gruen1#(bildbreite-1,bildhoehe-1)
...
Wink

Ohne "-1" sinds nämlich ca 16924 KiloBytes
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group