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

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

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

Reklama
Reklama

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

Reklama
Reklama
Obrázek ke článku Pracujete u počítače ve stoje? Dbejte na správné držení těla

Pracujete u počítače ve stoje? Dbejte na správné držení těla

Práce ve stoje je jedna z variant, jak změnit polohu těla při dlouhodobé práci u počítače. Především je důležité nezapomínat na správné držení těla, abychom při práci nenamáhali naší krční páteř. Primářka MUDr. Michaela Tomanová představí hlavní bonusy a rizika práce u počítače ve stoje.

Obrázek ke článku Firmy musejí s nástupem Průmyslu 4.0 více dbát na kyberbezpečnost. V ohrožení je i jejich know-how.

Firmy musejí s nástupem Průmyslu 4.0 více dbát na kyberbezpečnost. V ohrožení je i jejich know-how.

Destabilizace firmy či ukradené know-how. To jsou možná hlavní budoucí rizika spojená s nedostatečnou kybernetickou bezpečností průmyslových firem, na která upozorňují experti. Vzhledem k postupující digitalizaci výrobních či technologických procesů a přechodu k takzvanému Průmyslu 4.0 může těchto hrozeb postupně přibývat. Varují před nimi i nejnovější průzkumy. 

Obrázek ke článku Nový CEBIT je připraven: Pochopit digitální dnešek a objevit digitální zítřek

Nový CEBIT je připraven: Pochopit digitální dnešek a objevit digitální zítřek

Nový veletrh  CEBIT je připraven. V polovině června začne v Hannoveru evropský festival obchodu s radikálně změněnou koncepcí věnovaný inovacím a digitalizaci.  CEBIT jedinečnou formou spojuje obchod v digitálním hospodářství 
s festivalovými prvky a posouvá do středu pozornosti téma digitální transformace hospodářství a společnosti.  

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