? ? ? ? 之前給學科同事做了一個學情報告,主要是用echarts來展示一些學情數(shù)據(jù)。
? ? ? ? 然后臨近報告生產(chǎn)的時候,學科老師問我圖表的顏色能不能調(diào)整一下,因為生產(chǎn)的時候是黑白打印,肉眼幾乎無法區(qū)分,如下圖所示。

原始報告圖片

打印效果
????????這個時候老夫是懵逼的,彩色的時候能清楚的分辨出對應(yīng)顏色啊,誰知道黑白打印之后為什么區(qū)分不了。
????????然后一頓查資料,發(fā)現(xiàn)了一個詞叫灰度值。黑白打印時,會將彩色按照一定算法,轉(zhuǎn)化成灰度值。
????????這里我使用了一個不那么精確的計算公式,畢竟我只是要解決黑白打印時不同顏色對比度而已。有興趣的同學可以自行百度灰度值計算公式。
????????RGB顏色與灰度值之間的換算規(guī)則:Gray = (R*30 + G*59 + B*11 + 50) / 100。也就是說,RGB顏色rgb(R, G, B)通過該規(guī)則轉(zhuǎn)化成灰度值之后的顏色為rgb(Gray, Gray,?Gray)
????????既然發(fā)現(xiàn)問題所在,那么就要開始解決問題了。怎么樣定義圖表的顏色,才能讓他的灰度不同呢?
????????于是我寫了一個方法,根據(jù)灰度值,隨機生成rgb顏色,這樣反向推導,就能快速的找到我們想要的結(jié)果。

根據(jù)灰度值生成rgb顏色

獲取不同灰度的隨機顏色

控制臺打印的顏色

實際展示效果

打印展示效果
????????多次隨機,選取一組自己滿意的色值組合,替代colorList,完美解決打印對比度問題