兩行 CSS 代碼實現圖片任意顏色賦色技術
阿新 • • 發佈:2019-01-18
分享圖片 rip user 場景 ges icon gif enter 假設 如何通過純 CSS 技術實現任意圖片的任意顏色賦色技術呢?
使用 background-blend-mode: lighten 實現任意圖片顏色賦色技術
假設我們有這樣一張圖片,JPG、PNG、GIF 都可以,但是有一個前提要求,就是黑色純色,背景白色:
利用 background-blend-mode ,我們可以在圖片下疊加多一層其他顏色,通過 background-blend-mode: lighten 這個混合模式實現改變圖片主體顏色黑色為其它顏色的目的。
簡單的 CSS 代碼示意如下:
.pic { width: 200px; height: 200px; background-image: url($img); background-size: cover; } .pic1 { background-image: url($img), linear-gradient(#f00, #f00); background-blend-mode: lighten; background-size: cover; }
註意,上面 CSS 這一句是關鍵 background-image: url($img), linear-gradient(#f00, #f00); ,這裏我疊加了一層漸變層 linear-gradient(#f00, #f00) ,實現了一個純紅色背景,而不是直接使用 #f00 實現紅色背景。
使用 background-blend-mode: lighten 實現主色改為漸變色
這個方法更厲害的地方在於,不單單可以將純×××片由一種顏色改為另一種顏色,而且可以將圖片內的黑色部分由單色,改為漸變顏色!
簡單的 CSS 代碼如下:
.pic { background-image: url($img), linear-gradient(#f00, #00f); background-blend-mode: lighten; background-size: cover; }
可以得到這樣的效果:
OK,看到這裏,大家夥肯定會有疑問了,這是怎麽實現的呢?
這裏就有必要解釋一下 lighten 這個混合模式了。變亮,變亮模式與變暗模式產生的效果相反:
1.用黑色合成圖像時無作用,用白色時則仍為白色
2.黑色比任何顏色都要暗,所以黑色會被任何色替換掉。反之,如果素材的底色是黑色,主色是白色。那就應該用變暗(darken)的混合模式
兩行 CSS 代碼實現圖片任意顏色賦色技術