Français
Source/ Codesnippets

Weichzeichnen, filtre, Box-Blur

 

Sven
Bader
ici habe je une Code pour une Weichzeichen-filtre, aus Performance-Trouvé plutôt pour kleine Grafiken approprié.



Über den dritten paramètre qui Blur-Funktion peut sich steuern, comment souvent qui filtre angewendet wird.
Proc Blur

    Paramètres width&, height&, passes&
    Déclarer avg_red&, avg_green&, avg_blue&, new_image&[width&-1, height&-1, 2]
    Déclarer count&, box&, x&, y&, i&, j&

    whileLoop passes&

        box& = 1

        WhileLoop 0, width& - 1

            i& = &loop

            WhileLoop 0, height& - 1

                j& = &loop
                clear avg_red&, avg_blue&, avg_green&, count&

                WhileLoop (i& - box&), (i& + box&)

                    x& = &loop
                    Cas (x& = width&)  : Pause
                    Cas (x& < 0) : Continue

                    WhileLoop (j& - box&), (j& + box&)

                        y& = &loop
                        cas (y& = height&) : Pause
                        cas (y& < 0) : Continue
                        inc count&
                        avg_red&   = avg_red&   + image&[x&, y&, 0]
                        avg_green& = avg_green& + image&[x&, y&, 1]
                        avg_blue&  = avg_blue&  + image&[x&, y&, 2]

                    Endwhile

                Endwhile

                new_image&[i&, j&, 0] = avg_red&   / count&
                new_image&[i&, j&, 1] = avg_green& / count&
                new_image&[i&, j&, 2] = avg_blue&  / count&

            Endwhile

        Endwhile

        MAT image&[] = new_image&[]

    Endwhile

ENDPROC

Cls
Déclarer x&, y&, px&, width&, height&
'===================== Bild dans Array einlesen
DrawIcon "EIS", 50, 50
width& = 32
height& = 32
Déclarer image&[width&-1, height&-1, 2]

WhileLoop 0, height& - 1

    y& = &loop

    WhileLoop 0, width& - 1

        x& = &loop
        px& = GetPixel(50 + x&, 50 + y&)
        image&[x&, y&, 0] = GetRValue(px&)
        image&[x&, y&, 1] = GetGValue(px&)
        image&[x&, y&, 2] = GetBValue(px&)

    Endwhile

Endwhile

'===================== filtre anwenden
Blur(width&, height&, 5)
'===================== geglättetes Bild Montrer

WhileLoop 0, height& - 1

    y& = &loop

    WhileLoop 0, width& - 1

        x& = &loop
        SetPixel 100 + x&, y& + 50, RGB(image&[x&, y&, 0], image&[x&, y&, 1], image&[x&, y&, 2])

    Endwhile

Endwhile

WaitKey
Fin

qui Flaschenhals ist ici pas einmal qui filtre selbst (wobei qui aussi) mais cela GetPixel et SetPixel. tourner autour de pourrait on cela zum Beispiel sur une 24-Bit-Bitmap-Dossier, qui on comme Block einliest.

un qualitativer Tweak wäre, qui Funktion seulement une Teilbereich glätten trop laisser, qui Ränder mais quand même im Array vorzuhalten. ensuite würden qui Randbereiche pas so abgehackt air. Hierzu devrait on ensuite qui 4 Cas-Abfragen entfernen et den x/y-Offset comme paramètre mitgeben.

Viel Amusement beim Glätten

23 kB
Hochgeladen:16.11.2021
Downloadcounter77
Download
 
16.11.2021  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.535 Views

Untitledvor 0 min.
Sven Bader22.12.2022
Ernst29.05.2022
ByteAttack20.05.2022
Michael W.30.03.2022
plus...

Themeninformationen

cet Thema hat 1 participant:

Sven Bader (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie