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
Zobrazení části obrázku v DelphiX
12. března 2001, 00.00 | Potřebujete zobrazit pouze část obrázku v DelphiX ? Ukážeme vám, jak na to!
Jistě jste na tento problém již narazili. Máte velký (klidně i malý) obrázek, a potřebujete zobrazit pouze jeho část. Jak na to, vám ukáže dnešní článek.Na začátek bychom si měli říci, jak vůbec DelphiX k zobrazení části obrázků přistupují. Je to celkem jednoduché - rozdělí obrázek na několik menších, které budou mít šířku PatternWidth a výšku PatternHeight (nastavuje se rovnou ve vlastnosti obrázku v DXImageListu) a poté zobrazíte část obrázku vlastností PatternIndex (poslední parametr procedury Draw).
Můžeme si to např. vyzkoušet na jednoduchém obrázku, který jsem nakreslil. Má velikost 120x120 pixelů a PatternWidth i PatternHeight jsou nastaveny na 30, tudíž vznikne 16 možných částí obrázku (pro lepší pochopení je v každé části obrázku nakresleno, která část velkého obrázku se právě zobrazuje). Zde je již obrázek a zdrojový kód procedury DXTimer1.OnTimer:
|
Nyní ještě definujte proměnnou skip typu integer, která nám bude říkat, kterou část obrázku máme právě zobrazovat, do procedury OnCreate přidejte skip:=0; a program můžete spustit. Pokud je vše správně nastaveno, zobrazuje se vám postupně jednoduchá animace.
Kromě vlastností PatternWidth a PatternHeight obsahuje vlastnost obrázku v DXimageListu ještě dvě vlasnosti, která s tímto blízce souvisí. Jedná se o SkipWidth a SkipHeight, které mezi jednotlivými částmi obrázků vynechají nastavené mezery. Jednoduchý příklad je, pokud máte pohyb spritu v jednom obrázku a pro lepší přehled máte mezi jednotlivými částmi obrázku zelené rámečky. Samozřejmě byste mohli tyto rámečky vymazat a poté zobrazovat obrázek, ale lepší je si prostě podle šířky rámečků nastavit SkipWidth a SkipHeight a rámečky vidět nebudou. Pro demonstraci použijeme již hotový projekt, pouze nahrajeme nový obrázek, tentokrát o velikost 160 x 160 pixelů. PatternWidth a PatternHeight budou stejné jako minule (30 pixelů), ovšem mezi jednotlivými částmi budou desetipixelové mezery. Změníme tedy SkipWidth a SkipHeight na 10 a program můžete spustit. Zde je pro lepší pochopení ještě obrázek použitého obrázku a screenshot projektu.
Nakonec ještě podotknu, že tento článek vzniknul hlavně kvůli mnoha dotazům právě na tento problém. Máte-li ještě nějaký dotaz, stačí napsat...
ZDE si můžete stáhnout dnes vytvořený projekt.
-
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