Stufenlose Größenänderung von Bildern - ECHT Realtime von ??? |
[code:1:03c1c942b0] Graphics 800,600,0,2 SetBuffer BackBuffer() Global temporary=CreateImage(800,600) ;<<<WICHTIG! Global image =LoadImage("c:eigenesgrafik erminator1.bmp") ClsColor 0,0,255 While Not KeyHit(1) x2=x1 y2=y1 x1=MouseX() y1=MouseY() If x1<>x2 Or y1<>y2 Then Cls drawscaled image,BackBuffer(),0,0,x1,y1 Flip EndIf Wend WaitKey() FreeImage temporary FreeImage image End ;--------------------------------------------------------------------- Function drawscaled(src,dest,x,y,width,height) src_width =ImageWidth (src) src_height =ImageHeight(src) src_buffer =ImageBuffer(src) tmp_buffer =ImageBuffer(temporary) div_x# =Float#(src_width) /Float#(width) div_y# =Float#(src_height)/Float#(height) If width=0 Or height=0 Or src_width=0 Or src_height=0 Then Return For i=0 To width-1 CopyRect i*div_x#,0,1,src_height,i,0,src_buffer,tmp_buffer Next For i=0 To height-1 CopyRect 0,i*div_y#,width,1,x,y+i,tmp_buffer,dest Next End Function [/code:1:03c1c942b0] PS: Bild darf nicht größer als Fenster sein |
von ??? |
Bin ich der einzige, der was dazu schreibt? Geiler Code! |
von ??? |
Verdammt schnell. Wirklich gut... |
von ??? |
Gut...aber normal, oder? Danke. |
von ??? |
Hi.... jo... der Code hat was. |
von ??? |
Hi! Hey cool! Damit könnte ich vieleicht bei meinem Projekt die diese hässliche Verwischung entfernen. Sau schnell! mfg olli |
von ??? |
schließe mich an. Der Code ist wirklich gut und sehr schnell ! Kann man gut gebrauchen ! cu netmaster |
von ??? |
ja ich komm so auf 40 fps im vollbild |
von ??? |
jau, echt coool! damit dauert das laden bei meinem projekt bestimmt nur halb so lange... @freax: [quote:3f530e842c="Freax"]Hi! Hey cool! Damit könnte ich vieleicht bei meinem Projekt die diese hässliche Verwischung entfernen. Sau schnell! mfg olli[/quote:3f530e842c] was für verwischungen? vielleich hilft ja "tformfilter 0" :D |
von ??? |
Hi! [quote:5a3a480e50] was für verwischungen? vielleich hilft ja "tformfilter 0" [/quote:5a3a480e50] Ja in 2D ist das ja auch korrekt, aber in 3D nicht. Um es mal kurz zu erklähren: ich habe eine Plain die mit einer 256 mal 256 großen Textur texturiert ist. ich brauche aber nur ein Bild von 160 * 144 Texel größe. Übergebe ich an die Plain die UV Werte 0,0 1,0 0,1 und 1,1 so würde ich die restlichen Pixel auch sehen. Übergebe ich aber die UV Koordinaten so, das nur das 160 * 144 Texe große Bild angezeigt wird, so skaliert DirectX die Textur, und macht eigenständig eine Verwischung mit rein, so das es nicht mehr Pixel für Pixel skaliert wird. (nent man glaube ich pointsampling oder so). Naja und um diesen Effekt zu korrigieren, muss ich in realtime das 160 * 144 große Bild auf 256 mal 256 skalieren, damit das ganze schön pixelig aussieht. Somit muss DirectX die Textur nicht skalieren, und macht mir keinen Verwischeffekt rein. mfg olli |
von ??? |
[ot] achso [/ot] |
pseudo-setup von ??? |
kann jemand mit xp mal diese Variation von TheShadow testen? Danke! [code:1:a93378c20d] Graphics 1024,768,16,1 windowsverzeichnis$= SystemProperty$("WINDOWSDIR") Global bild = LoadImage(windowsverzeichnis$ +"setup.bmp") Global frei = CreateImage(1024,768) SetBuffer BackBuffer() ClsColor 0,0,64 MoveMouse ImageWidth(bild),ImageHeight(bild) While Not KeyHit(1) x2=x1: x1=MouseX() y2=y1: y1=MouseY() If x1<>x2 Or y1<>y2 Then Cls:SKALIERUNG bild,BackBuffer(),0,0,x1,y1:Flip Wend WaitKey() FreeImage frei FreeImage bild End Function SKALIERUNG(quelle,ziel,x,y,bz,hz) ba=ImageWidth (quelle) ha=ImageHeight(quelle) qbuffer=ImageBuffer(quelle) fbuffer=ImageBuffer(frei) xfaktor# =Float#(ba)/Float#(bz) yfaktor# =Float#(ha)/Float#(hz) If bz=0 Or hz=0 Or ba=0 Or ha=0 Then Return For i=0 To bz-1: CopyRect i*xfaktor#, 0, 1,ha,i, 0,qbuffer,fbuffer: Next For i=0 To hz-1: CopyRect 0,i*yfaktor#,bz, 1,x,y+i,fbuffer, ziel : Next End Function [/code:1:a93378c20d] |
von ??? |
[quote:edb307fc6d]kann jemand mit xp mal diese Variation von TheShadow testen? Danke! [/quote:edb307fc6d] ob du xp, 2k, me, se oder sonstwas hast ist völlig egal. Wichtig ist nur DirectX und GrakaTreiber. Wieso soll das jemand für dich testen ? |
xp-test von ??? |
ganz einfach: weil ich nicht wusste, ob xp eine datei "setup.bmp" im windows-verzeichnis hat... |
von ??? |
dafür gibts aber ne suchfunktion in windows. außerdem ist das setup-bild glaube ich keine bmp,png oder jpg-datei... |
von ??? |
Finde ich gut, das Ding! Ich hab jetzt nur die ganz obn gepostete Urversion probiert. Viele Grüße, Thomas |