虽然不同平台或标准中ColorMatrix的实现有所不同,但是基本原理和实现思路基本上是一样的。先分享几个链接,关于GDI+中ColorMatrix的实现原理:
上篇—ColorMatrix原理揭秘:http://tech.ddvip.com/2008-09/122095148662296.html
下篇—ColorMatrix的Delphi实现:http://tech.ddvip.com/2008-09/122095172462301.html
GDI+中的ColorMatrix是5X5的矩阵,而Android平台中实现的ColorMatrix则是(5X4, 此处有点问题,因为developer中ColorMatrix Class写的是5X4,但是介绍的时候其实是4X5,并且在ColorFilterColorMatrix中写的是4X5)4X5的矩阵,接着分享Android中ColorMatrix及Matrix详解:
http://www.cnblogs.com/dongtaochen2039/archive/2012/03/29/2423443.html
之所以ColorMatrix不用4X4的矩阵是因为4X4矩阵只能实现旋转、缩放等线性变换,而不能实现平移等非线性变换,
估计5X5和5X4都能完成非线性变换,具体还需要探讨下。。
PS:老说后续会补充,但是后续就忘记了。。