Grafický editor – 9. díl
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Grafický editor – 9. dílGrafický editor – 9. díl

 

Grafický editor – 9. díl

Google       Google       18. 4. 2006       8 153×

Původně jsem měl v plánu vás seznámit s tvorbou elips a kruhů, které jsou necelé, jenže plány se mění. Sice by to byla možnost, ale určitě víc využijete kruhů a elips, které jsou vevnitř vybarvené, a proto se podíváme prve na to, jak vybarvovat různé části obrázků, abychom mohli vytvářet plné elipsy a kružnice. Ale nebude na to psát vlastní funkci.

Reklama
Reklama

Psaní vlastní funkce by bylo moc zdlouhavé a složité. Proto využijeme API funkce ExtFloodFill. Kód bude vypadat takto:


Private Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long
    
Private Sub Vybarvi(Img As PictureBox, X As Single, Y As Single, mode As Boolean, clr As Long, gclr As Long)
    On Error Resume Next
    Imgp = Img.Point(X, Y)
    Img.FillColor = clr
    Img.FillStyle = vbSolid
    If mode = True Then
        rtn = ExtFloodFill(Img.hdc, X, Y, gclr, 0)
    End If
    If mode = False Then
        rtn = ExtFloodFill(Img.hdc, X, Y, Imgp, 1)
    End If
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Vybarvi Picture1, X, Y, True, &H663322, 0
End Sub

Co tento kód umí? No umí vybarvovat části obrázků, které mají něco společného. To, čím bude tato společná vlastnost, má na starost parametr mode. Pokud bude mít hodnotu False, bude se vybarvovat každá plocha, která má stejnou barvu a je spojená. Pokud ale dáme do parametru mode True, budeme využívat speciální typ vybarvování a ten funguje tak, že se vybarví určitá část ohraničená nějakou barvou. Zatím nepočítejte s tím, že by se brala v potaz tolerance nebo tak, to už jsou techniky pokročilejší, na které si budeme muset psát vlastní algoritmy anebo si hledat knihovny.

Ještě bych se vrátil ke kódu a popsal parametry. První z nich (Img) určuje obrázek, ve kterém pracujeme. X a Y určují souřadnice. Mode, jak jsem psal, určuje mód vybarvování, Clr barvu, kterou se vybarvuje a poslední gclr se používá, jen když je mode na true a určuje barvu ohraničení, kterým se vybarvování řídí.

Příště tedy ony slibované částečné kruhy a elipsy.

×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.

Obrázek ke článku Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Bezpečnostní tým Cisco Talos odhalil celkem 4 kampaně dosud neobjeveného malwaru, který dostal jméno KONNI. Ten se dokázal úspěšně maskovat od roku 2014. Zpočátku se malware zaměřoval pouze na krádeže citlivých dat. Za 3 roky se ale několikrát vyvinul, přičemž jeho současná verze umožňuje útočníkovi z infikovaného počítače nejenom krást data, ale i mapovat stisky na klávesnici, pořizovat screenshoty obrazovky či v zařízení spustit libovolný kód. Pro odvedení pozornosti oběti zasílali útočníci v příloze také obrázek, zprávu a výhružkách severokorejského režimu či kontakty na členy mezinárodních organizací.

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ý