您將如何開發類似於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. phpstorm配色方案
- 3. Java Swing模塊化配色方案
- 4. 我如何能在配色方案「VIM」
- 5. 如何更改Word的配色方案?
- 6. 如何改變ggvis的配色方案?
- 7. flash cs5配色方案
- 8. Netbeans配色方案設置
- 9. 更改配色方案
- 10. 找不到配色方案
- 11. Qt Creator配色方案
- 12. Netbeans的配色方案
- 13. IDE配色方案插件
- 14. 配色方案在ggplot2 facet_wrap
- 15. VIM配色方案錯誤
- 16. vim中的配色方案
- 17. 的Vim solarized配色方案
- 18. 更改配色方案vim
- 19. Vi配色方案問題
- 20. Current Notepad ++配色方案
- 21. PDT的深色配色方案
- 22. 更改Android藍色配色方案
- 23. 256色的vim和如何安裝新的配色方案
- 24. iPhone配色方案的好地方?
- 25. 如何在Visual Studio中將我的VIM配色方案設置爲相同的默認配色方案?
- 26. 方案模式匹配
- 27. 如何模仿
- 28. Emacs中的方案吹掉配色方案
- 29. 根據現有方案創建配色方案
- 30. 自動創建配色方案
即將作出迴應,應該指出的是,根據圖像的大小,第二種方法將非常強大的服務器。 – tplaner 2009-11-17 21:50:31
@evolve掃描每個像素?強化?是啊,你說得對。我更新了答案以反映這一點。對於「平均」顏色問題,最好減少到1px。 – 2009-11-17 22:00:26
@Tim:偉大的回答人,謝謝。=) – 2009-11-23 13:20:58