Delphi - Kép transzformációs műveletek

forráskód letöltése
Windows NT alatt lehetőségünk van egy olyan tranformációs művelet elvégzésére egy képen, mellyel könnyedén elérhető, hogy az adott képet elforgassuk, torzítsuk, stb.

Mellékelt példában ennek a lehetőségnek nézünk utána. A függvény, mely ezt a varázslatot megvalósítja nem más, mint PlgBlt.

Nézzük a paraméterezését sorrendben:

1. Itt kell megadnunk a cél terület azonosítóját, ahová szeretnénk a rajzolást elvégezni
2. Szükségünk lesz egy tömbre, melynek minden eleme egy TPoint típus. Ez a tömb három elemből kell hogy álljon. Ezzel a három ponttal egy paralelogrammát határozunk meg. A forrás kép ezen a területen jelenik meg, úgy torzulva, hogy a kép beleférjen az általunk megadott paralelogrammába. E három pont közül az első a bal felső sarkot határozza meg, a második a jobb felsőt, a harmadik a bal alsót. A paralelogrammának a negyedik pontja e három pontból már egyértelműen számítható, így ezt ezért nem is kell megadnunk.
3. A forrás kép azonosítója
4. A forrás kép X koordinátája, ahonnan a másolást meg kell kezdeni
5. A forrás kép Y koordinátája, ahonnan a másolást meg kell kezdeni
6. A forrás kép szélessége
7. A forrás kép magassága
8. Szükséges esetén megadhatunk egy fekete-fehér bitmap-ot is maszként.
9. A mono bitmap X koordinátája
10. A mono bitmap Y koordinátája

Mellékelt példában lehetőségünk van arra, hogy a második paraméterként megadott tömb egyes értékeit futási időben megváltoztassuk. Hogy a tömb melyik elemének akarunk új értéket adni, azt a TRadioGroup komponensben választhatjuk ki. Ezek után egy kis sárga kör jelenik meg a kép adott sarkán. Ezt egérrel megfogva új helyre vonszolhatjuk, és ezzel változtatjuk az adott paramétert. Mivel a képet rögtön ki is rajzoljuk, így láthatóvá válik a mozgatás eredménye is azonnal.