Práce s grafikou VII. – Embosing
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Práce s grafikou VII. – EmbosingPráce s grafikou VII. – Embosing

 

Práce s grafikou VII. – Embosing

Google       Google       2. 12. 2005       6 970×

Embosing je jednoduše fungující efekt pracující na rozdílech hodnot vedle sebe ležících pixelů...

Reklama
Reklama

Jak si můžete všimnout v následujícím kódu:


Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

Public Sub Embosing(Img As PictureBox, Img2 As PictureBox)
    Img.DrawWidth = 1
    Img.ScaleMode = 3
    Img.AutoRedraw = True
    RGBMax = 256
    On Error Resume Next
        For x = 0 To Img.ScaleWidth
            For y = 0 To Img.ScaleHeight
                DoEvents
                Imgp = GetPixel(Img.hdc, x, y)
                b = Imgp  RGBMax  RGBMax
                g = (Imgp  RGBMax) Mod RGBMax
                r = Imgp Mod RGBMax
                Imgp1 = GetPixel(Img.hdc, x - 1, y - 1)
                b1 = Imgp1  RGBMax  RGBMax
                g1 = (Imgp1  RGBMax) Mod RGBMax
                r1 = Imgp1 Mod RGBMax
                DoEvents
                
                a = (((b - b1) + (g - g1) + (b - b1)) / 3) + 128
                
                If a >= 255 Then a = 255
                If a <= 0 Then a = 0

                SetPixel Img2.hdc, x, y, RGB(a, a, a)
            Next y
            DoEvents
        Next x
   Img.Refresh
End Sub

Funkčnost a princip celého algoritmu závisí na vzorci,


a = (((b - b1) + (g - g1) + (b - b1)) / 3) + 128

který udělá rozdíl jednotlivých barevných složek a z těchto rozdílů vypočítá průměr, ke kterému je přičteno 128. Hodnota 128 může být předávána jako argument a může být proměnná, ale to vyžaduje drobnou změnu kódu, kterou snad již zvládnete. V některém z dalších dílů si povíme o dalších možnostech Embosingu, a tím je nastavení střední barvy a míra rozdílů.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Jiří ChytilAutor programuje ve VB, zajímá se o elektrotechniku, studuje na SOŠ Elektrotechnické - obor číslicová technika.
Web    

Nové články

Reklama
Reklama
Obrázek ke článku Blockchain & Bitcoin konference

Blockchain & Bitcoin konference

V pátek 19. 5. 2017 se v pražském konferenčním centru Andel’s konala Blockchain & Bitcoin konference. Řada odborníků a podnikatelů v oboru blockchainu a kryptoměn představila možnosti budoucího směřování tohoto oboru. Speakeři většinou rusky mluvící provenience prezentovali řešení svých firem založená na technologii blockchainu.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý