Delphi - Kép pixelenkénti változtatása

GDI 6. rész

forráskód letöltése
Ebben a példában azt vizsgáljuk meg, hogy hogyan tudunk egy képet pixelenként manipulálni a Windows GDI függvények segítségével. A mellékelt példaprogramban egy egyszerű szökőkutat varázsolunk egy Form-ra. A TCanvas osztálynál megszokhattuk, hogy a kép pixeleit egy tömbön keresztül érhetjük el. A Windows GDI-ben ez egy kicsit másképpen van, mivel itt függvényeket kell használnunk egy pixel színének lekérdezéséhez, illetve megváltoztatásához.
A pixel színének lekérdezése a GetPixel függvénnyel történik. Ennek paraméterei a következők:
DC: a rajzterület azonosítója (pl. Form1.Canvas.Handle)
X, Y: a pixel koordinátái.
A függvény visszatérési értéke a pixel színe RGB formátumban (COLORREF).

A pixel színének meghatározása szintén egyszerű, a SetPixel függvénnyel történik. A függvény paraméterei hasonlóak a GetPixel-éhez, de még egy plusz paramétert is meg kell adnunk, a pixel színét RGB formátumban. A színt tehát nem adhatjuk meg közvetlenül a speciális konstansokkal (pl. clBtnface), hanem előtte a ColorToRGB függvénnyel át kell alakítanunk RGB formátumra:
  SetPixel(Image1.Canvas.Handle, x, y, ColorToRGB(col));


GDI cikksorozat