如何获得网站的主色?

Adr*_*ore 2 colors css-parsing

我在想是否有可能获得网站的"特色"颜色.例如,TechCrunch将为绿色,ReadWriteWeb将为红色,CNN也为红色,Microsoft为蓝色,PHP为紫色等...

它不一定准确,只是最好的猜测.

我有些想法:

  • 解析所有css规则并找到与大多数元素匹配的规则
  • 解析所有css规则并找到具有最大尺寸的元素的背景颜色
  • 获取body元素的背景图像并获得其主要颜色(对于图像来说这是可能的)
  • 以某种方式找到网站的"标题"(DOM中的第一个元素,背景css属性设置?)并获得其背景

我还需要一种消除黑色,灰色和白色的方法.

这可行吗?你还有其他建议吗?

PS抱歉我的英文

slh*_*hck 5

肯定是可行的.您可以使用该wget工具和一些简单的正则表达式来解析CSS颜色.然后,您可以收集所有这些颜色,并查看最常用的颜色.然而,这并不总是很好地代表网站中的实际主要颜色,因为很多CSS规则中可能会出现多种颜色,但不经常使用.

这实际上是你在这里的一个重要项目.

我的方法如下:

  • 下载并解析CSS颜色并查找不同颜色的总数.如果只有很少的颜色,你更有可能找到主要的颜色.它通常是用于<a>标签或<h1>标签的颜色(但如果它们是灰色或黑色/白色则不会).
  • 在解析时,您应该"汇集"颜色,以便例如#FFEEEE相同#FFEAEA,因为它们只是略有不同.
  • 您需要携带不同的CSS颜色为相同的格式,例如#FFF,#FFFFF,"white",rgb(255,255,255),等.
  • 您需要一个规则集以及良好的编程知识
  • 寻找图像中的主要颜色并不是那么简单.最简单的方法是每个像素的每个R,G和B分量确定哪个是主要的.如果您的像素具有值R(120), G(240), B(80),则很可能是绿色.然后对所有像素计数并找到主要组件.
  • @mu太短,建议将值转换为HSV并仅提取色调.
  • 另一种高级方法包括创建三种颜色分量的直方图,然后计算直方图下的面积.

总而言之,你所定义的任务值得一篇论文,在我看来:)