Italia
Fonte/ Codesnippets

Bildmanipulation Echtzeit Filter Spielerei

 
iF, Beitrag=54696, Zeitpunkt=30.10.2009
Echtzeit-Bildmanipulation Spielerei...


Download


KompilierenMarkierenSeparieren
 $I compatible.inc
cls
long hpic=create("hnewPic",256,256,0)
startPaint hPic
useFont "Arial",26,0,0,0,0
textcolor $FFFFFF,0
drawText 10,10,"Hallo Welt"
endPaint
drawPic hPic,0,0;0

while 1

    filterTest(hPic,%bmpx,%bmpy)
    drawSizedPic hPic,0,0 - width(%hWnd),height(%hWnd);0
    startPaint hPic
    useFont "Arial",26,0,0,0,0
    textcolor $FFFFFF,-1
    drawText sin(getTickCount*0.001)*75+75,sin(getTickCount*0.00077777)*110+110,"Hallo Welt"
    textcolor $0000FF,-1
    drawText -sin(getTickCount*0.001)*75+75,sin(getTickCount*0.00088887)*110+110,"Hallo Welt"
    textcolor $FF0000,-1
    drawText -sin(getTickCount*0.0013)*75+75,-sin(getTickCount*0.00088887)*110+110,"Hallo Welt"
    textcolor $00FF00,-1
    drawText sin(getTickCount*0.0023)*75+75,-sin(getTickCount*0.00022222)*110+110,"Hallo Welt"
    endpaint
    waitinput 10

wend

//mcopysizedbmp 0,0 - 767,255 > 0,0 - width(hWnd),height(hWnd);0
waitinput
end

nProc filterTest

    Parameters h&,_width&,_height&
    var a&=GetPixels(h&,_width&,_height&)
    filter.dith(a&,_width&,_height&)
    filter.blur(a&,_width&,_height&)
    SetPixels(h&,a&,_width&,_height&)
    dispose(a&)

endproc

nProc filter.dith

    parameters a&,_width&,_height&
    var x&=0
    var y&=0
    var c&=0
    var p&=0
    var ww4&=_width&*4

    whileLoop _height&-1,0

        y&=&loop*ww4&

        whileLoop 0,ww4&-4,4

            p&=y&+&loop
            c&=long(a&,p&)

            ifnot rnd(10)

                c&=rgb.mix(c&,rnd($FFFFFF))

            endif

            long a&,p&=c&

        wend

    wend

endproc

nProc filter.blur

    parameters a&,_width&,_height&
    var x&=0
    var y&=0
    var c&=0
    var c2&=0
    var p&=0
    var p1&=0
    var p2&=0
    var p3&=0
    var p4&=0
    var p6&=0
    var p7&=0
    var p8&=0
    var p9&=0
    var r&=0
    var g&=0
    var b&=0
    var ww4&=_width&*4

    whileLoop _height&-1,0

        y&=&loop*ww4&

        whileLoop 0,ww4&-4,4

            p&=y&+&loop
            c&=long(a&,p&)
            c&=rgb.mix(rgb.mix(rgb.mix(rgb.mix(long(a&,p&-4),long(a&,p&+4)),long(a&,p&)),long(a&,p&-ww4&)),long(a&,p&+ww4&))
            p1&=long(a&,p&+ww4&-4)
            p2&=long(a&,p&+ww4&+4)
            p3&=long(a&,p&+ww4&)
            p4&=long(a&,p&-4)
            p6&=long(a&,p&+4)
            p7&=long(a&,p&-ww4&-4)
            p8&=long(a&,p&-ww4&+4)
            p9&=long(a&,p&-ww4&)
            r&=getRValue(p1&)+getRValue(p2&)+getRValue(p3&)+getRValue(p4&)+getRValue(c&)+getRValue(p6&)+getRValue(p7&)+getRValue(p8&)+getRValue(p9&)
            g&=getGValue(p1&)+getGValue(p2&)+getGValue(p3&)+getGValue(p4&)+getGValue(c&)+getGValue(p6&)+getGValue(p7&)+getGValue(p8&)+getGValue(p9&)
            b&=getBValue(p1&)+getBValue(p2&)+getBValue(p3&)+getBValue(p4&)+getBValue(c&)+getBValue(p6&)+getBValue(p7&)+getBValue(p8&)+getBValue(p9&)
            div r&,9
            div g&,9
            div b&,9
            long a&,p&=bgr(r&,g&,b&)

        wend

    wend

endproc

nproc rgb.mix

    parameters c1&,c2&
    var r&=getRValue(c1&)+getRValue(c2&)
    div r&,2
    var g&=getGValue(c1&)+getGValue(c2&)
    div g&,2
    var b&=getBValue(c1&)+getBValue(c2&)
    div b&,2
    return a>(r&,g&,b&)

endproc


Nachtrag: Speicherleck gefixt.

Siehe auch: Pixels.Inc [...] 
 
31.10.2009  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.928 Views

Untitledvor 0 min.
H.Brill10.02.2022
Frank16.04.2021
Seanser25.05.2019
p.specht06.07.2018
Di più...

Themeninformationen

Dieses Thema hat 1 subscriber:

iF (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie