摘要:前言說(shuō)到對(duì)圖片進(jìn)行處理,我們經(jīng)常會(huì)想到這類(lèi)的圖像處理工具。或者是的時(shí)候,對(duì)圖片的對(duì)比度,陰影進(jìn)行處理。過(guò)濾器通常被用于調(diào)整圖片,背景和邊界的渲染。最后,安利我們的公眾號(hào)前端指南。
前言
“說(shuō)到對(duì)圖片進(jìn)行處理,我們經(jīng)常會(huì)想到PhotoShop這類(lèi)的圖像處理工具。作為前端開(kāi)發(fā)者,我們經(jīng)常會(huì)需要處理一些特效,例如根據(jù)不同的狀態(tài),讓圖標(biāo)顯示不同的顏色。或者是hover的時(shí)候,對(duì)圖片的對(duì)比度,陰影進(jìn)行處理。”
你以為這些是經(jīng)過(guò)PS軟件處理出來(lái)的?不不不,純粹的是用css寫(xiě)出來(lái)的,很神奇把。
強(qiáng)大的 CSS:filterCSS濾鏡(filter)屬提供的圖形特效,像模糊,銳化或元素變色。過(guò)濾器通常被用于調(diào)整圖片,背景和邊界的渲染。 MDN
CSS標(biāo)準(zhǔn)里包含了一些已實(shí)現(xiàn)預(yù)定義效果的函數(shù)。
filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();
通過(guò)雙通道我們可以的到一些非常炫酷的PS效果
當(dāng)然,在這里,只是舉個(gè)例子,通過(guò)配置矩陣中的值,我們可以配置每一個(gè)像素點(diǎn)的值按照我們定義的規(guī)則顯示
我們?cè)谶@里詳細(xì)講一下feColorMatrix 矩陣的計(jì)算方式
其中Rin Gin Bin a(alpha) 為原始圖片中每個(gè)像素點(diǎn)的rgba值
通過(guò)矩陣計(jì)算,得到的Rout Gout Bout Aout就是最終顯示出來(lái)的rgba值。
將圖片轉(zhuǎn)為單色 拿棕色rgba(140,59,0,1)作為例子根據(jù)上面的公式,我們可以簡(jiǎn)化一些計(jì)算,同一行中,只設(shè)置一個(gè)通道的值,其他通道為0
不難得出矩陣
0 0 0 0 目標(biāo)值R 0 0 0 0 目標(biāo)值G 0 0 0 0 目標(biāo)值B 0 0 0 0 1
根據(jù)規(guī)則,只需要計(jì)算,255/想要顯示的顏色對(duì)應(yīng)通道 = 目標(biāo)值
我們想要的棕色rgba(140,59,0,1) 換算成色板 rgba 為 140 59 0 255
可以算出目標(biāo)值
0 0 0 0 0.55 0 0 0 0 0.23 0 0 0 0 0 0 0 0 0 1多通道設(shè)置出炫酷的效果來(lái)
就如同之前我們看到的雙通道形成的炫酷圖片一般
我們今天要把圖片的飽和度提高,該怎麼做呢?首先當(dāng)然是想想飽和度的成因,就是紅的越紅,藍(lán)的越藍(lán),綠的越綠,由這個(gè)成因出發(fā),我們的矩陣就可以寫(xiě)成下面的樣子,看到矩陣當(dāng)中出現(xiàn)了 3 和 -1,一定會(huì)很那悶這是怎麼來(lái)的,箇中原理其實(shí)很容易理解,讓我們假設(shè)某一個(gè)像素的 RGB 分別是 (200/255),(100/255),(50/255),呈現(xiàn)的應(yīng)該是有點(diǎn)暗沉的橘色,經(jīng)過(guò)矩陣的換算,R 變成了 200/255x3-100/255-50/255= 1.76, G 變成 200/255x(-1)+100/255*3-50/255=0.2,B 變成 200x(-1)+100x(-1)+50x3=-0.59,因此 RGB 轉(zhuǎn)換後就是:200x1.76,100x0.2,50x-0.5。SVG 研究之路 (11) - filter:feColorMatrix其他方案
除了feColorMatrix svg濾鏡還有很多的方法可以定義濾鏡,他們同樣可以作用到圖片上。由于篇幅限制,這里就不詳細(xì)展開(kāi)了
總結(jié)css3提供了filter這個(gè)屬性,使得通過(guò)前端技術(shù)實(shí)現(xiàn)更多炫酷的特效成為了可能
依賴(lài)于svg的濾鏡,我們可以實(shí)現(xiàn)復(fù)雜的濾鏡效果
注意css:filter與ie上的filter并不是相同的概念
css:filter在不同的瀏覽器上兼容性不一樣,您在使用的時(shí)候需要注意瀏覽器的兼容性
參考文獻(xiàn)SVG 研究之路 (11) - filter:feColorMatrix
css:filter MDN
Color Filters Can Turn Your Gray Skies Blue
PNG格式小圖標(biāo)的CSS任意顏色賦色技術(shù)
寫(xiě)在最后本次源碼我已經(jīng)放在了codePen上 https://codepen.io/nanhupatar... 歡迎查看
文章難免會(huì)有疏漏,希望大家能夠指正批評(píng)。如果您覺(jué)得本文對(duì)您有幫助,請(qǐng)點(diǎn)個(gè)贊支持作者。
最后,安利我們的公眾號(hào):前端指南。致力于前端技術(shù)分享,精品文章,深度好文,同時(shí)也歡迎您給我們投稿,本公眾號(hào)用戶(hù)留存率95%哦,對(duì)了,更新時(shí)間是每天早上六點(diǎn)
轉(zhuǎn)載請(qǐng)注明出處與作者,原創(chuàng)不易,歡迎轉(zhuǎn)載
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/116974.html
摘要:前言說(shuō)到對(duì)圖片進(jìn)行處理,我們經(jīng)常會(huì)想到這類(lèi)的圖像處理工具。或者是的時(shí)候,對(duì)圖片的對(duì)比度,陰影進(jìn)行處理。過(guò)濾器通常被用于調(diào)整圖片,背景和邊界的渲染。最后,安利我們的公眾號(hào)前端指南。 前言 說(shuō)到對(duì)圖片進(jìn)行處理,我們經(jīng)常會(huì)想到PhotoShop這類(lèi)的圖像處理工具。作為前端開(kāi)發(fā)者,我們經(jīng)常會(huì)需要處理一些特效,例如根據(jù)不同的狀態(tài),讓圖標(biāo)顯示不同的顏色。或者是hover的時(shí)候,對(duì)圖片的對(duì)比度,陰影...
CSS學(xué)習(xí)筆記 在學(xué)習(xí)CSS的過(guò)程中做的一些記錄,用于未來(lái)的快速回憶。 HTML常見(jiàn)元素和理解 head中的元素 指定字符集 meta name=viewport content=...定義視圖大小與設(shè)備屏幕大小的比例,用戶(hù)是否可縮放 指定基準(zhǔn)路徑 body中的元素 a[href, target] img[src, alt] table td[colspan, rowspan] for...
摘要:維護(hù)起來(lái)更加方便不足雪碧的最大問(wèn)題是內(nèi)存使用拼圖維護(hù)比較麻煩使的編寫(xiě)變得困難雪碧調(diào)用的圖片不能被打印我們可以使用綜合屬性制作通天,什么是通天呢,就是一般我們電腦的屏幕都是但是設(shè)計(jì)師給我們的圖都會(huì)比這個(gè)大,那么我們可以此屬性來(lái)制作通天。 要說(shuō)頁(yè)面布局的話,那就必須說(shuō)說(shuō)margin,padding,和background。這三個(gè)屬性其實(shí)都是前面講過(guò)的,這里還是再次講解以下,為什么呢?因?yàn)槭沁@樣的...
摘要:使用的場(chǎng)景多為頁(yè)面內(nèi)容的圖片,較大的頭圖,顏色過(guò)多的圖片。就是頁(yè)面中的背景,并不是內(nèi)容,修飾作用。 warn: 這是一篇沒(méi)有一張圖片的講圖片的文章 1. 圖片格式 通常在網(wǎng)頁(yè)中使用的圖片有三種格式,jpg,png和gif。jpg是有損壓縮格式,就算你在ps里用100%質(zhì)量保存,保存多次會(huì)產(chǎn)生質(zhì)量損失,而png和gif則不會(huì)。因此如果開(kāi)發(fā)者相對(duì)圖片進(jìn)行微處理,改動(dòng)jpg不是明智的選擇。p...
閱讀 2027·2021-11-08 13:14
閱讀 2935·2021-10-18 13:34
閱讀 2021·2021-09-23 11:21
閱讀 3582·2019-08-30 15:54
閱讀 1752·2019-08-30 15:54
閱讀 2918·2019-08-29 15:33
閱讀 2569·2019-08-29 14:01
閱讀 1940·2019-08-29 13:52