|
|
使用gdi,性能上肯定不如Lock表面,但作为软件制作或者图形处理的学习,基本就行了。
既然用GetPixel,SetPixel这么慢的东西,使用MATRIX结构体也损失不了多少性能了,
关键是,(试验,学习用),要方便,可读性高,不宜出错!
头文件请从这里下载:
http://cpp.instemast.com/
代码如下:
#include <instMatrix.h>
using namespace inst;
Float3x3 TO_YUV = { 0.299f, 0.587f, 0.114f,
-0.148f, -0.289f, 0.437f,
0.615f, -0.515f, -0.100f };
Float3x3 TO_RGB = { 1.0000f, -0.0000f, 1.1398f,
1.0000f, -0.3938f, -0.5809f,
1.0000f, 2.0279f, 0.0018f };
/////////////////////////////////////////////////////////////////////////////////////
// 这里是核心算法:
BEGIN_FUNC(Light, rgb, arg) // rgb: current pixel, arg: delta Y,U,V
Float3 yuv = TO_YUV * rgb;
yuv += arg;
rgb = TO_RGB * yuv;
END_FUNC()
|
|