C++

初心教育 | 学以知道 , 教以成德!         

问题描述

C++,在线求解答
精选答案
最佳答案

一个比较简单的办法:在图片中找到一个颜色和主色调一致的像素点作为基准点,计算图片中每个像素点RGB值和基准点RGB值的差值(像素点-基准点),用该差值和新的主色调颜色RGB值进行加算,即得到该像素点的新值,在把该值SetPixel就行了。

需要注意的是,加算的时候需要把RGB值每个分量单独拿出来计算,最大值是0xFF,如果该分量的加算结果超过了0xFF,那么它就等于0xFF,同时对该分量的前一个分量加1。 例如0x1000FF + 0xEA8466 结算结果应该是0xFA85FF,而不是0xFA8565。这种算法只能得到近似值,不过在视觉上基本符合要求。

更多推荐
(c)2008-2025 广知网 All Rights Reserved 鄂ICP备2023002720号-19