前言
“說到對圖片進行處理,我們經常會想到PhotoShop這類的圖像處理工具。作為前端開發者,我們經常會需要處理一些特效,例如根據不同的狀態,讓圖標顯示不同的顏色?;蛘呤莌over的時候,對圖片的對比度,陰影進行處理。”
你以為這些是經過PS軟件處理出來的?不不不,純粹的是用css寫出來的,很神奇把。
強大的 CSS:filter
CSS濾鏡(filter)屬提供的圖形特效,像模糊,銳化或元素變色。過濾器通常被用于調整圖片,背景和邊界的渲染。 MDN
CSS標準里包含了一些已實現預定義效果的函數。
filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();
filter: none
沒有任何效果,默認filter就為none
filter:blur( ) 高斯模糊
給圖像一個高斯模糊效果,length值越大,圖像越模糊
我們來嘗試一下
img { filter:blur(2px);;}
brightness(%) 線性乘法
可以讓圖片看起來更亮或者更暗
img {filter:brightness(70%);}
contrast(%) 對比度
調整圖像的對比度。
img { filter:contrast(50%);}
drop-shadow(h-shadow v-shadow blur spread color)
給圖像設置一個陰影效果。陰影是合成在圖像下面,可以有模糊度的,可以以特定顏色畫出的遮罩圖的偏移版本。函數接受<shadow>(在CSS3背景中定義)類型的值,除了”inset”關鍵字是不允許的。該函數與已有的box-shadow box-shadow屬性很相似;不同之處在于,通過濾鏡,一些瀏覽器為了更好的性能會提供硬件加速
利用這個方案,我們其實改變類似于一些圖標的顏色,比如黑色的圖標變成藍色的圖標。
PNG格式小圖標的CSS任意顏色賦色技術
img { filter: drop-shadow(705px 0 0 #ccc);}
在這里,我們將圖片投影形成一個同等大小的灰色區域。
hue-rotate(deg) 色相旋轉
img { filter:hue-rotate(70deg);}
看,我的小姐姐變成了阿凡達!
invert(%) 反轉
這個函數的作用是反轉輸入圖像,有點像曝光的效果
img { filter:invert(100%)}
grayscale(%) 將圖像轉換為灰度圖像
這個效果可以將圖片做舊,有一種時代滄桑感。喜歡古風的人一定會喜歡上這個效果的
img { filter:grayscale(80%);}
除了古風還有一種用法是有的時候需要將全站變成灰色,如大屠殺紀念日的時候。
可以這樣設置
*{ filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%);}
sepia(%) 將圖像轉換為深褐色
下面給我的小姐姐一個暖暖的色調。
img { filter:sepia(50%)}
大家是不是發現我并沒有把url()方法寫到這上面來
沒錯,因為我想把這個內容放到最后來說,filter:url()就是css濾鏡改變圖片的終極方法。CSS:filter可以導入一個svg濾鏡,作為他自己的濾鏡。
終極變色解決方案! filter:url();
為什么說filter:url()是圖片變色的終極解決方案呢,請容我慢慢道來。
我們先科普一下PS的工作原理,我們都知道網頁是有三原色的R(紅) G(綠) B(藍),常見的RGBA還包括一個opicity值,而opcity值是根據alpha通道計算出來的。也就是說,我們見到的網頁的每一個像素點都是由紅藍綠再加alpha四個通道組成,每一個通道我們稱之為色板,PS中的8位板的意思就是2的八次方256,意思就是每一個通道的取值范圍都是(0-255) –SVG 研究之路 (11) – filter:feColorMatrix
如果我們可以改變每個通道的值是不是就能完美的得到我們想要的任意顏色了呢,原理上,我們可以像ps那樣利用svg濾鏡得到任何我們想要的圖像,不僅僅是變色。我們甚至可以憑空生成一幅圖像。
svg feColorMatrix大法好
<svg height="0" xmlns="http://www.w3.org/2000/svg"> <defs> <filter id="change"> <feColorMatrix type="matrix" values=" 0 0 0 0 0.55 0 0 0 0 0.23 0 0 0 0 0 0 0 0 0 1" /> </filter> </defs></svg><img src="https://note.youdao.com/yws/res/237/WEBRESOURCE7e77df2551fe1a1db1b9d91f4d518917" alt="">img { filter:url(#change);}
通過單通道我們可以將圖片變成單一的顏色
<svg height="0" xmlns="http://www.w3.org/2000/svg"> <defs> <filter id="change"> <feColorMatrix values="3 -1 -1 0 0 -1 3 -1 0 0 -1 -1 3 0 0 0 0 0 1 0" /> </filter> </defs></svg>
通過雙通道我們可以的到一些非常炫酷的PS效果
當然,在這里,只是舉個例子,通過配置矩陣中的值,我們可以配置每一個像素點的值按照我們定義的規則顯示
我們在這里詳細講一下feColorMatrix 矩陣的計算方式
其中Rin Gi
n Bin a(alpha) 為原始圖片中每個像素點的rgba值
通過矩陣計算,得到的Rout Gout Bout Aout就是最終顯示出來的rgba值。
將圖片轉為單色 拿棕色rgba(140,59,0,1)作為例子
根據上面的公式,我們可以簡化一些計算,同一行中,只設置一個通道的值,其他通道為0
不難得出矩陣
0 0 0 0 目標值R0 0 0 0 目標值G0 0 0 0 目標值B0 0 0 0 1
根據規則,只需要計算,255/想要顯示的顏色對應通道 = 目標值
我們想要的棕色rgba(140,59,0,1) 換算成色板 rgba 為 140 59 0 255
可以算出目標值
0 0 0 0 0.550 0 0 0 0.230 0 0 0 0 0 0 0 0 1
多通道設置出炫酷的效果來
就如同之前我們看到的雙通道形成的炫酷圖片一般
国产精品女视频| 97热精品视频官网| 亚洲国产精品99| 欧美激情手机在线视频| 青青草国产精品一区二区| 91免费人成网站在线观看18| 日韩av手机在线观看| 91精品综合久久久久久五月天| 亚洲成人国产精品| 久久视频国产精品免费视频在线| 在线看片第一页欧美| 欧美大成色www永久网站婷| 亚洲国产小视频| 久久久亚洲福利精品午夜| 亚洲一级免费视频| 国产黑人绿帽在线第一区| 欧美日韩在线视频一区| 自拍偷拍亚洲精品| 精品国产一区av| 亚洲v日韩v综合v精品v| 成人国产亚洲精品a区天堂华泰| 亚洲欧美日韩精品久久亚洲区| 国产欧美亚洲视频| 国内精品小视频在线观看| 亚洲sss综合天堂久久| 亚洲图片制服诱惑| 97成人精品区在线播放| 国产亚洲精品久久| 国产精品爽黄69天堂a| 国产欧美久久久久久| 亚洲视频日韩精品| 国产精品久久久久免费a∨| 久久人人爽人人爽爽久久| 国产精品毛片a∨一区二区三区|国| 97精品欧美一区二区三区| 美日韩丰满少妇在线观看| 在线播放亚洲激情| 国产亚洲精品日韩| 亚洲**2019国产| 最新日韩中文字幕| 国产精品国内视频| 中文字幕亚洲欧美在线| 久久中文字幕国产| 亚洲最大成人免费视频| 一本色道久久88综合亚洲精品ⅰ| 视频在线一区二区| 亚洲国产另类 国产精品国产免费| 日韩中文娱乐网| 一本色道久久综合狠狠躁篇的优点| 国产一级揄自揄精品视频| 国产精品大片wwwwww| 韩国福利视频一区| 久久久久久久久久久91| 精品人伦一区二区三区蜜桃免费| 亚洲美女动态图120秒| 岛国av一区二区三区| 亚洲国模精品一区| 国产精品视频网站| 国产小视频国产精品| 亚洲美女性视频| 伊人久久五月天| 国产一区二区三区日韩欧美| 成人国产精品久久久久久亚洲| 日韩av最新在线观看| 欧美专区在线播放| 免费99精品国产自在在线| 欧美国产日韩xxxxx| 国产精品日韩欧美综合| 精品视频一区在线视频| 国产精品视频久久久| 亚洲欧洲成视频免费观看| 亚洲精品xxxx| 国产精品久久久久久超碰| 人人爽久久涩噜噜噜网站| 日韩成人久久久| 欧美国产日韩xxxxx| 精品日韩视频在线观看| 成人在线播放av| 亚洲新中文字幕| 亚洲成人久久久久| 欧美激情精品在线| 国产成人亚洲综合91| 成人在线观看视频网站| 日韩av一区在线| 欧美黑人xxxⅹ高潮交| 九九热99久久久国产盗摄| 日韩影视在线观看| 亚洲一区中文字幕在线观看| 日韩欧美在线视频| 亚洲欧美成人精品| 色噜噜亚洲精品中文字幕| 国产精品久久久av久久久| 色樱桃影院亚洲精品影院| 国产精品精品久久久久久| 国产精品爱久久久久久久| 久久中文久久字幕| 欧美激情一区二区三区高清视频| 91久久精品一区| www高清在线视频日韩欧美| 在线免费观看羞羞视频一区二区| 亚洲精品日韩av| 欧美性猛交xxxx免费看久久久| 91精品久久久久久久久久久久久久| 精品视频—区二区三区免费| 国产精品久久久久7777婷婷| 久久久精品2019中文字幕神马| 欧美成人第一页| 欧美性视频精品| 欧美国产日韩一区二区三区| 97在线视频免费| 夜夜嗨av一区二区三区四区| 欧美成人免费播放| 中文字幕亚洲综合久久筱田步美| 欧美一级淫片videoshd| 亚洲国产日韩欧美在线图片| 亚洲精品一区中文| 国产视频自拍一区| 欧美精品在线视频观看| 欧美成aaa人片免费看| 自拍偷拍亚洲精品| 亚洲free性xxxx护士hd| 国产精品27p| 亚洲欧美日本另类| 日本高清不卡的在线| 欧美亚洲成人网| 久久精品小视频| 岛国视频午夜一区免费在线观看| 91av免费观看91av精品在线| 国语自产精品视频在线看一大j8| 美日韩精品免费观看视频| 国外视频精品毛片| 日韩免费观看视频| 这里只有视频精品| 亚洲最大激情中文字幕| 最近中文字幕日韩精品| 国产精品久久久久久久久久久不卡| 欧美理论电影在线观看| 日韩久久免费视频| 91在线播放国产| 91久久国产精品91久久性色| 动漫精品一区二区| 一区二区三区四区视频| 久久久久国色av免费观看性色| 欧美大全免费观看电视剧大泉洋| 福利微拍一区二区| 98精品在线视频| 日韩精品在线影院| 日本一区二三区好的精华液| 亚洲一区二区精品| 国产成人在线播放| 久久久久久久色| 91热精品视频| 午夜精品三级视频福利| 国产一区二区黑人欧美xxxx| 日本精品久久久久影院| 国产精品成人av在线| 亚洲女人天堂网| 国产精品久久久久久久av大片| 成人亚洲欧美一区二区三区| 日韩电影视频免费| 亚洲日本欧美日韩高观看| 欧美激情视频在线观看| 亚洲视频网站在线观看| 久久全球大尺度高清视频|