最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

網(wǎng)頁是如何變灰的

2020-04-05 22:00 作者:今天修bug了嗎  | 我要投稿

純技術探討。

0.目錄

  1. 光的三原色、灰色和灰階算法

  2. HTML和CSS

  3. 套用全局CSS filter使網(wǎng)頁變灰

1?光的三原色、灰色和灰階算法

1.1 光的三原色

初中物理告訴我們光的三原色是紅綠藍,顏料的三原色是紅黃藍(印刷業(yè)界是品紅/黃/青+黑)。由于顯色原理不同,光的三原色是一個加色模型(等量的紅、綠、藍在混合之后輸出的顏色是白色),而顏料的三原色是一個減色模型。

光和顏料的三原色|http://optica.cocolog-nifty.com/blog/2012/04/post-ab6f.html

顯示器發(fā)光自然靠的是光,因此適用光的三原色模型。一臺色域為sRGB的顯示器,在紅、綠、藍三個維度上分別能發(fā)出0-255級的光。當紅、綠、藍三種光線的強度都為255(最亮)時,顯示器理論上應該顯示純白色。

1.2 灰色

不同程度的灰色|https://www.coursera.org/specializations/graphic-design

用(x,?y,?z)分別描述某一個給定顏色當中的紅、綠、藍色的數(shù)值。(0, 0, 0)代表純黑色,(255, 255, 255)代表純白色,那么(a, a, a)(其中0<a<255)是什么顏色?

對,都是灰色,不同程度的灰色。

那么如果通過某種算法可以將一張彩色的圖像轉(zhuǎn)換為灰階圖像(grayscale image, 僅含有灰色的圖像),這種算法就統(tǒng)稱為灰階算法。

1.3 灰階算法

灰階算法只是一類算法的統(tǒng)稱。它的作用是把圖像上每一個像素【RGB=(x,y,z)】通過一定的處理,映射成為一個灰色像素點【RGB=(a,a,a)】。

完成這種映射的算法千奇百怪。目前比較常用的一種計算灰度取值(即上文中的參數(shù)a)的算法是:

Gray = (Red * 0.2989 + Green * 0.5870 + Blue * 0.1140)

其中0.2989、0.5870和0.1140都是經(jīng)驗參數(shù):俺不知道為什么,但俺尋思這個值能用。

另外一些算法有暴力平均法、去飽和法(轉(zhuǎn)換為HSL模型后設置飽和度0)等等。它們最終的目的都是一樣的:將給定內(nèi)容中全部像素點映射為灰色像素點,實現(xiàn)整體內(nèi)容的灰度處理。

2 HTML和CSS

2.1 HTML

HTML(HyperText Markup Language, 超文本標記語言)是一種標記語言(不是編程語言)。一個HTML文檔(一個網(wǎng)頁)由層層嵌套的標簽組成。純HTML只告訴瀏覽器“我這個網(wǎng)頁上有哪些內(nèi)容”,比如“一只青蛙一張嘴,兩只眼睛四條腿”就描述了青蛙的結(jié)構:眼睛×2,嘴,腿×4.

2.2 CSS

層疊樣式表(Cascading Style Sheet)通常與HTML一起使用(在目前的大部分網(wǎng)站來說算是官配cp了)。它可以為HTML文檔中出現(xiàn)的標簽添加額外的描述,比如顏色、形狀、大小。

HTML和CSS之間的關系|https://zhuanlan.zhihu.com/p/77958196

3 CSS filter

在CSS規(guī)范當中,有一類比較特殊的規(guī)則“濾鏡(filters)”,一般用于處理圖像。跟大部分人認知中的濾鏡功能一樣,濾鏡可以改變圖像的一些屬性,比如灰度、亮度、陰影、顏色反轉(zhuǎn)和模糊。

“灰度”這一函數(shù)的標準語法是:

filter: grayscale(0-1取值或0%-100%)

它可以把一張彩色圖像通過灰度算法映射為一張灰度圖像。

如果在WebStorm或者類似的面向網(wǎng)頁前端的編輯器中使用,編輯器會自動補全幾種針對不同瀏覽器的語法。所以一般通過審查元素看到的內(nèi)容會是下面的樣子:

-webkit-filter: grayscale(100%);

-moz-filter: grayscale(100%);

-ms-filter: grayscale(100%);

-o-filter: grayscale(100%);

filter: grayscale(100%);

類比Photoshop中的圖層,在一個網(wǎng)頁當中,不同的元素也有不同的疊放順序和主次之分。要使這個灰色濾鏡對整個網(wǎng)站上的內(nèi)容都生效,有兩種思路:

  1. 為主div中添加filter: grayscale。

  2. 為html標簽或body標簽添加filter: grayscale。但是如果直接在body標簽中添加的話,position: fixed這條屬性就會失效。所以個人建議盡可能地在html標簽中添加。

4. 參考/擴展閱讀

1.?光と色の三原色 色が見える仕組み(7): 光と色と:http://optica.cocolog-nifty.com/blog/2012/04/post-ab6f.html

2. 6種圖片灰度轉(zhuǎn)換算法:https://github.com/aooy/blog/issues/4

3.?filter - CSS(層疊樣式表) | MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter

網(wǎng)頁是如何變灰的的評論 (共 條)

分享到微博請遵守國家法律
靖远县| 婺源县| 靖州| 葵青区| 城步| 宁陕县| 景德镇市| 九江县| 克什克腾旗| 册亨县| 额敏县| 玉门市| 东山县| 西昌市| 楚雄市| 连城县| 通山县| 嘉鱼县| 永康市| 沅江市| 郑州市| 梧州市| 柳河县| 崇阳县| 万荣县| 景东| 嫩江县| 桂东县| 天峨县| 阳东县| 衡阳市| 湘阴县| 游戏| 乐亭县| 宽城| 大厂| 修文县| 广河县| 晋宁县| 沾益县| 扎赉特旗|