因此,我正在研究Web应用程序的新版本。而且,我们发现我们的用户痴迷于懒惰。真的很懒。实际上,我们为他们做的工作越多,他们对服务的热爱就越多。现有应用程序的一部分要求用户选择要使用的配色方案。但是,我们有一张图片(用户网站的屏幕截图),那么为什么我们不能仅仅满足他们的懒惰并为他们做呢?答:我们可以,这将是一个有趣的编程练习!:)
给定图像,如何创建相应的配色方案? 换句话说,如何选择图像中的主要X色(其中X由网络应用定义)。在我们特定情况下使用的图像是用户网站的屏幕截图,以全分辨率(例如1280x1024)拍摄。( 注意: 请简单描述您的算法-无需发布实际的伪代码。)
奖励积分(街道信誉积分,不是实际的SO积分):
现有几个执行类似功能的站点。随时检查一下并问自己:“我将如何重复此操作?我该如何改进它?”
要查找主要的X颜色,请对该应用进行屏幕截图。在图像上运行颜色直方图。直方图中的前X个颜色是主题。编辑:如果使用渐变,您将要选择不同的颜色“峰值”;也就是说,如果橙色是渐变中使用的主要颜色之一,则可能在“橙色”附近有一大堆颜色。实际上,只需在从直方图选择的颜色之间强制一定距离即可。
最好在HSV空间中调整颜色方案。将您的颜色转换为HSV空间,如果用户希望它更“亮”,请增加“值”,如果用户希望它更“丰富多彩”,请增加“饱和度”等。
确定文本颜色最好通过表征高可变性区域(傅立叶空间中的高频)来完成。在这些区域中,您应该具有以下两种颜色之一:文本和背景两种颜色,在这种情况下,文本是使用较少的颜色;否则您将有几种颜色,文本和背景图像颜色,在这种情况下,文本颜色是最常见的颜色。