Práce s grafikou XI. – Převracení obrazu
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Práce s grafikou XI. – Převracení obrazuPráce s grafikou XI. – Převracení obrazu

 

Práce s grafikou XI. – Převracení obrazu

Google       Google       6. 1. 2006       9 017×

Dnes se nebudu zabývat psaním kódu, který zpracovává obraz pixel po pixelu, ale zaměřím se na API funkce, které nám tento proces výrazně zjednodušují a hlavně zrychlují...

KK tomu se používá funkce StretchBlt, jejíž deklaraci právě vidíte.


Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

Podle toho, s jakými parametry tuto funkci voláme, otáčíme obraz. První ho otočíme kolem vertikální osy, tomuto efektu se říká Mirror. Funkci potom voláme takto v proceduře:


Public Sub Mirror(Img As PictureBox)
    Img.AutoRedraw = True
    StretchBlt Img.hdc, Img.ScaleWidth, 0, -Img.ScaleWidth, Img.ScaleHeight, Img.hdc, 0, 0, Img.ScaleWidth, Img.ScaleHeight, vbSrcCopy
    Img.Refresh
End Sub

Takže po dlouhé době je to kratší kód. A teď se podíváme ještě na takzvaný Flip, tento efekt funguje na stejném principu, jen se obraz otáčí kolem osy horizontální. Změna volané funkce je jen nepatrná a spočívá v přehození mínusu a několika parametrů, tak jak to vidíte…


StretchBlt Img.hdc, 0, Img.ScaleHeight, Img.ScaleWidth, -Img.ScaleHeight, Img.hdc, 0, 0, Img.ScaleWidth, Img.ScaleHeight, vbSrcCopy

…pokud nad tím budete chvíli dumat, určitě přijdete na to, proč to tak je. S touto funkcí toho jde dělat spoustu. Co třeba zvětšit si obrázek na 120%? Proč ne? Je to záležitost chviličky a stačí k tomu tohle:


Public Sub Lupa(Img As PictureBox)
    Img.AutoRedraw = True
    StretchBlt Img.hdc, 0, 0, Img.ScaleWidth * 1.2, Img.ScaleHeight * 1.2, Img.hdc, 0, 0, Img.ScaleWidth, Img.ScaleHeight, vbSrcCopy
    Img.Refresh
End Sub

Nebo si zkuste, co umí tohle:


Public Sub xyz(Img As PictureBox)
    Img.AutoRedraw = True
    StretchBlt Img.hdc, 0, 0, Img.ScaleWidth, Img.ScaleHeight, Img.hdc, 50, -50, Img.ScaleWidth, Img.ScaleHeight, vbSrcCopy
    Img.Refresh
End Sub

A vůbec, zkoušejte si a uvidíte co to dokáže :)

Tak někdy u dalšího dílu.

×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

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý