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

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

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

Google       Google       6. 1. 2006       7 702×

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

Obrázek ke článku Využití .htaccess na malém webu

Využití .htaccess na malém webu

V dnešní době existuje spoustu cms, které mnohdy ale vůbec nepotřebujeme a stačila by nám pouze základní funkčnost k úpravě url, přesměrování. K tomuto účelu je ideální .htaccess soubor, který nám se všemi těmato úpravami umí pomoct.

Reklama
Reklama
Obrázek ke článku Češi tlačí obce do otevřené komunikace – Mobilní Rozhlas si loni pořídilo dalších 171 měst a obcí

Češi tlačí obce do otevřené komunikace – Mobilní Rozhlas si loni pořídilo dalších 171 měst a obcí

Obyvatelé Česka se mnohem více zapojují do veřejného dění. Umožňují jim to přímo samosprávy, které stále častěji využívají nástroje takzvané chytré komunikace a participace. Dokládají to data za rok 2019 ekosystému Mobilní Rozhlas, lídra v oblasti chytré obecní komunikace. Zapojilo se do něj 171 nových měst a obcí, zaregistrovalo celkem 100 tisíc občanů a místní samosprávy jeho prostřednictvím rozeslaly třikrát více adresných zpráv než v roce 2018

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