您将如何开发类似于described in this DabbleDB blog post的东西?如何模仿Dabble配色方案?
1
A
回答
2
刚回答了一个kinda related SO question yesterday。那里的一些概念,以及由此产生的test code (on git hub)可能是一个好的开始。
由于evolve提到,扫描图像中的每个像素(甚至只是边界)可能是资源密集型的。然而,在这种情况下(因为你想识别的不仅仅是平均颜色),它可能是一条路。将徽标尺寸调整为合理的尺寸将有助于减少服务器负载,并且不应该影响输出。
更新:对于这些示例假设的图像对象已经创建并$width
和$height
已经使用imagesx()
,getimagesize()
等
背景颜色
第一确定我们需要做的是找出标志的背景颜色。这就是所有的第一个版本,通过使用角落像素。
这里使用imagecolorat()
找到角落的颜色。或者,使用顶部参考答案中的平均边框颜色方法。
$color = imagecolorat($image, 0, 0); //do this for each corner
$rgb = imagecolorsforindex($image, $color); //convert each color to a RGB array
//average colors
饱和
原来色彩理论具有测量兴趣的一种方式:饱和度。所以我们从标志中剔除了一个有趣的颜色。使用相同颜色的边框和文字使事情比我们想要的更单调一些,所以最后我们决定试着抓住两个有趣的颜色,如果它们存在。
您可以在上面提到的发现颜色值具有高饱和度的pixel scanning code一起在imagecolorsforindex()
manual page使用RGB到HSL的功能。
亮度
我们再次转向色彩理论和意识到,我们可以使用边框颜色的亮度来决定的黑色或白色文本是否更适合。
这个SO thread列出了不同的RGB到亮度计算。我不确定哪种方法最好(或技术上正确)转换0-255 RGB图像。但是,为了完成这个任务(文本应该是黑暗的还是光明的),我不认为很重要。
相关问题
- 1. 如何模仿好图案
- 2. Java Swing模块化配色方案
- 3. 如何改变ggvis的配色方案?
- 4. 如何定义配色方案选项?
- 5. 我如何能在配色方案“VIM”
- 6. Netbeans配色方案设置
- 7. 配色方案在ggplot2 facet_wrap
- 8. Netbeans的配色方案
- 9. 找不到配色方案
- 10. VIM配色方案错误
- 11. flash cs5配色方案
- 12. 的Vim solarized配色方案
- 13. Qt Creator配色方案
- 14. Vi配色方案问题
- 15. IDE配色方案插件
- 16. vim中的配色方案
- 17. PDT的深色配色方案
- 18. 如何在Visual Studio中将我的VIM配色方案设置为相同的默认配色方案?
- 19. 方案模式匹配
- 20. 如何模仿
- 21. 根据现有方案创建配色方案
- 22. iPhone应用程序的配色方案
- 23. css框架和配色方案
- 24. 随机配色方案与jquery
- 25. 更改所有应用配色方案
- 26. rxvt/cygwin下没有git配色方案
- 27. 多种配色方案的WordPress主题
- 28. 全球CSS配色方案/皮肤
- 29. 参数的名称配色方案pycharm
- 30. VIM配色方案不是默认
即将作出回应,应该指出的是,根据图像的大小,第二种方法将非常强大的服务器。 – tplaner 2009-11-17 21:50:31
@evolve扫描每个像素?强化?是啊,你说得对。我更新了答案以反映这一点。对于“平均”颜色问题,最好减少到1px。 – 2009-11-17 22:00:26
@Tim:伟大的回答人,谢谢。=) – 2009-11-23 13:20:58