本文用C++实现Photoshop色相/饱和度/明度功能,界面程序使用BCB6;图片操作采用GDI+。代码也可适用于其它C/C++编译器(可能要稍作修改)。
有关Photoshop饱和度调整原理可参见《GDI+ 在Delphi程序的应用 -- 图像饱和度调整》,明度调整原理可参见《GDI+ 在Delphi程序的应用 -- 仿Photoshop的明度调整》。
色相/饱和度/明度功能头文件:
色相/饱和度/明度功能代码文件:
BCB6界面头文件:
BCB6界面代码文件:
界面截图:
上面的代码没作多的优化,速度不是很理想,下面是一段插入汇编码,速度比前面的纯C++代码快很多倍:
修改前面的GdipHSBAdjustment函数:
如有错误或者建议,请来信指导:[email protected]