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

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

 

Grafický editor – 9. díl

Google       Google       18. 4. 2006       7 965×

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 Mobilní datový provoz vzroste sedmkrát.

Mobilní datový provoz vzroste sedmkrát.

Už v roce 2021 bude mít více obyvatel zeměkoule mobilní telefon (5,5 miliardy) než bankovní účet (5,4 miliardy), tekoucí vodu (5,3 miliardy) nebo pevnou telefonní linku (2,9 miliardy). Vyplývá to z analytické studie Cisco Visual Networking Index (VNI) Global Mobile Data Traffic Forecast (2016 to 2021). Analytici také předpovídají, že se tento výrazný růst, spolu s rozmachem chytrých telefonů a připojení do internetu věcí promítne i do celkového objemu přenesených mobilních dat. Studie říká, že do roku 2021 vzroste sedminásobně, k čemuž přispěje i zvyšování přenosové rychlosti sítí a nárůst sledování videa na mobilních zařízeních.

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ý