Delphi - Térhatás készítése egy tetszőleges kép alapján

forráskód letöltése
Ha adott egy színes kép, akkor ezt egyszerűen átalakíthatjuk programból úgy, hogy a képen lévő különböző színeknek csak a körvonala jelenjen meg. Ha ezt a körvonalat két színnel rajzoljuk meg, mondjuk fehérrel és sötétszürkével, oly módon hogy egy adott szögben, de ellentétes irányban eltoljuk a két színt, akkor máris egy olyan hatást érünk el, amely térhatás érzetét kelti. Ha adott egy színes kép, akkor ezt egyszerűen átalakíthatjuk programból úgy, hogy a képen lévő különböző színeknek csak a körvonala jelenjen meg. Ha ezt a körvonalat két színnel rajzoljuk meg, mondjuk fehérrel és sötétszürkével, oly módon hogy egy adott szögben, de ellentétes irányban eltoljuk a két színt, akkor máris egy olyan hatást érünk el, amely térhatás érzetét kelti.


A grafika elkészítéséhez három TBitmap típusú változót kell létrehoznunk, melyet a feldolgozás ideje alatt használunk. Ebből az első kettő esetében nem true color, hanem csupán egy fekete-fehér képet hozunk létre (PixelFormat:=pf1bit;).

Két BitBlt művelettel létrehozzuk az egyik irányban a körvonalat, míg két másikkal a másik irányban látható körvonalat, 45 fokos szög mentén egy-egy pixellel eltolva az eredetihez képest, egyszer az egyik majd a másik irányba.

Ezek után a kép háttérszínét szürkére festjük a PatBlt függvénnyel. Majd ezt követően rámásoljuk fehér színnel az egyik körvonalat, majd sötét szürkével a másikat és már készen is vagyunk.