HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Képek, képrészek másolása


Canvas objektum 6. rész

Példaprogram letöltése

123595 bájt


Ha készítendő rajzunkon néhány előre elkészített képet is fel szeretnénk használni, akkor erre is van lehetőségünk. Gondoljunk például egy olyan komponensre, amin kis ikonok is megjelenhetnek (pl. TSpeedButton). A cikksorozat ezen része az ilyen képek felhasználásának, illetve képrészletek másolásának módjáról szól.

A legegyszerűbb módszer egy kép kirajzolására, amikor megadjuk azt a pozíciót (koordinátát), ahová képet szeretnénk másolni, illetve megadjuk magát a képet. Erre való a Draw eljárás.
var
  kep. TBitmap;
...
  Canvas.Draw(30, 40, kep);
Az első két paraméter a kép pozíciója, míg a harmadik maga a kép. A kép egy TGraphic osztályból származó objektum lehet, a fenti példában TBitmap típusú. Ha ez utóbbi típust használjuk, akkor a kép megjelenítésénél a CopyMode property értéke is figyelembe lesz véve. Ez utóbbiról később még lesz szó.

Előfordulhat olyan eset, amikor egy bitképet nem az eredeti méretében szeretnénk megjeleníteni. Ekkor használhatjuk a StretchDraw eljárást. Ennek első paramétere egy TRect típusú érték, amiben nem csak a kép bal felső sarkának koordinátáit tudjuk megadni, hanem a jobb alsót is. A második paraméterként megadott kép tehát nem az eredeti méretben, hanem a koordináták által meghatározott méretben jelenik meg.
  StretchDraw(Rect(100, 50, 350, 120), kep);

Ha egy képnek csak egy bizonyos részletét szeretnénk a Canvas-ra másolni, akkor erre a CopyRect eljárást használjuk. Ennek első paramétere TRect típusú, és a célterület koordinátáit adja meg. A második paraméter az a Canvas, amiről a képrészletet másolni szeretnénk. Az utolsó paraméter szintén TRect típusú, és a másolandó terület koordinátáit tartalmazza.
  Canvas.CopyRect(Rect(10, 10, 80, 80), kep.Canvas, Rect(x0, y0, x1, y1));

Mindhárom műveletre hatással van a CopyMode property értéke. Ebben konstansokkal adhatjuk meg, hogy milyen logikai művelettel kerüljenek a képek másolásra, vagyis a forrás és a célkép pixelei között milyen logikai műveletet használjon az új kép pixeleinek kiszámításakor.
A következő értékeket adhatjuk meg:
  • cmBlackness: az új pixelek színe fekete lesz.
  • cmDstInvert: invertálja a célterület pixeleit.
  • cmMergeCopy: a célkép és a forráskép pixelei között ÉS műveletet végez.
  • cmMergePaint : a forráskép pixeleit invertálja és a célkép pixelei között VAGY műveletet végez.
  • cmNotSrcCopy: invertálja a forrás kép pixeleit.
  • cmNotSrcErase: a pixelek közötti VAGY műveletet végez, és invertálja az eredményt.
  • cmPatCopy: a forrás mintát másolja.
  • cmPatInvert: kombinálja a forrás mintát a célképpel XOR műveletet használva.
  • cmPatPaint: a forrás kép pixeleit kombinálja VAGY művelettel a forrás mintával, és az eredményt kombinálja a célképpel, szintén VAGY művelettel.
  • cmSrcAnd: a forráskép és a célkép pixelei között ÉS műveletet végez.
  • cmSrcCopy: átmásolja a forrásképet a célképre.
  • cmSrcErase: invertálja a célképet, és az eredményt kombinálja a forrás képpel ÉS műveletet használva.
  • cmSrcInvert: XOR művelettel kombinálja a célkép és a forráskép pixeleit.
  • cmSrcPaint: OR művelettel kombinálja a célkép és a forráskép pixeleit.
  • cmWhiteness: a célkép pixelei fehérek lesznek.



Cikksorozat

#IDKategóriaCikk címeSorozat
1166DelphiOsztály hierarchia lekérdezése1. rész
1180DelphiOsztály hierarchia lekérdezése2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 530. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |