Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Delphi
Alpha blending 2.díl
alpha_blending2
10. srpna 2001, 00.00 | Chcete si před spuštěním vaší aplikace zobrazit SplashScreen s Alpha průhledností ? Po přečtení tohoto článku to jistě nebude žádný problém !
...spustíte program, první se postupně objeví splash screen a po krátké pauze i hlavní okno... Že to není váš program ? Může být, vždyť na tom nic není, přesvědčte se o tom v dnešním článku !
Vzledem k úspěšnosti minulého článku o Alpha Blendingu se vám nyní do rukou dostalo jeho druhé pokračování. Dozvíte se v něm, jak na alpha blending přes windows funkce, které jsou o poznání rychlejší než naše procedura z minulého článku. Díky rychlosti si tak můžete třeba před startem samotné aplikace postupně zobrazit splash screen. Dost ale povídání, dáme se do práce.
Největší problém funkce, s kterou budeme kreslit je ten, že není v nápovědě. Jedná se o windows funkci AlphaBlend. Její parametry jsou následující:
- DC - Handle prvního canvasu
- p2, p3, p4, p5 - souřadnice prvního obrázku
- DC6 - Handle druhého canvasu
- p7, p8, p9, p10 - souřadnice druhého obrázku
- p11 - blend funkce
Prvních pár parametrů je snad jasných, problémy nastanou až u posledního. Musíme si nejprve definovat funkci, například udtBlender typu TBlendFunction, které přiřadíme jednotlivé parametry, a potom ji použijeme ve funkci AlphaBlend. Zde jsou vlastnosti, které musíme definovat pro správné zobrazení:
|
Nejdůležitější je SourceConstantAlpha, ve které je uložena průhednost, a to typu byte, tedy od 0 do 255. Nyní již známe vše potřebné, a tak si vytvoříme nová projekt a na formulář přidáme tři komponenty Image a jedno tlačítko. Komponenty Image pojmenujeme SplashImage, BackImage a FinishImage. Do první rovnou nahrajeme nějaký ten obrázek, pokud nemáte žádný při ruce, můžete použít tento, který jsem pro vás připravil:
Do druhé zkopírujeme část obrazovky, na kterou budeme kreslit a v třetím si zobrazíme výsledek, který nakonec zkopírujeme znovu na obrazovku. Až toto celé dokončíme, zkopírujeme na obrazovku obrázek BackImage, čímž ji vymažeme. Zde je již procedura v celé své kráse, kterou jsem doufám dostatečně okomentoval, takže další komentář není snad nutný:
|
Zdá se vám to složíté ? Věřím, že určitě ne, a že ve vašich aplikacích určitě najde procedura využití. Bohužel však procedura nefunguje ve Windows 95, neměl jsem však příležitost to vyzkoušet, takže toto zbývá na vás. Nakonec ještě přikládám screenshot, jak vypadá zobrazování splash screenu přibližně v polovině, a tím zároveň končím dnešní článek:
Download
ZDE si můžete stáhnout dnes vytvořený program a jeho zdrojáky (335 kB)
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007