Dobrý den, každý barevný bod je určen hodnotou 3 barev RGB a průhledností A, tedy maticí ve tvaru (R,G,B,A,1). Tato matice se vynásobí zmíněnou transformační maticí (5x5) a výsledkem je opět matice ve tvaru (R,G,B,A,1), kde hodnoty R,G,B,A určují novou barvu pixelu. Postup násobení matic nalezenete např. na wikipedii. Jednotková matice (neprovede žádnou změnu):
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Inverze barev, průhlednost zůstane zachována:
-1 0 0 0 0
0 -1 0 0 0
0 0 -1 0 0
0 0 0 1 0
1 1 1 0 1
Odstranění zelené složky:
1 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Lze provést i složitější úpravy obrazu. Jednotlivé pixely lze změnit voláním Bitmap.SetPixel(). To je však časově velmi náročný postup. Efektivnější řešení (Bitmap.LockBits()) popisuje tento článek: http://www.zive.cz/clanky/stante-se-prog...
|