css 圖片變黑白效果 使用CSS將圖片轉(zhuǎn)換成黑白的
發(fā)布時(shí)間:2013-01-08 13:55:28 作者:佚名
我要評(píng)論

時(shí)代發(fā)展,如今,CSS3的逐步推進(jìn),我們也開(kāi)始看到“黑白效果”大規(guī)模應(yīng)用于實(shí)際的可能,接下來(lái)介紹CSS3 greyscale 濾鏡實(shí)現(xiàn),感興趣的朋友可以了解下
可能早就知道,像汶川這種糟糕的日子網(wǎng)站全灰在IE下是可以輕松實(shí)現(xiàn)的(filter: gray;),不過(guò),當(dāng)時(shí),其他瀏覽器是無(wú)解的。不過(guò),時(shí)代發(fā)展,如今,CSS3的逐步推進(jìn),我們也開(kāi)始看到“黑白效果”大規(guī)模應(yīng)用于實(shí)際的可能。
CSS3 greyscale 濾鏡實(shí)現(xiàn)
如下測(cè)試代碼:
復(fù)制代碼
代碼如下:.gray {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
filter: gray;
}
HTML代碼:
復(fù)制代碼
代碼如下:<img src="mm1.jpg" />
<img src="mm1.jpg" class="gray" />
如果你手上的瀏覽器是Chrome18+, 您可以狠狠地點(diǎn)擊這里:CSS3 greyscale 濾鏡與照片黑白?
可以看到類(lèi)似文章一開(kāi)始展示的黑白對(duì)比效果圖。
其他些瀏覽器,如FireFox很快就會(huì)跟上實(shí)現(xiàn)。當(dāng)然,要實(shí)現(xiàn)(比方說(shuō))FireFox 4瀏覽器上照片變黑白的效果,也是可以的。可以使用SVG的灰度濾鏡效果。
SVG濾鏡實(shí)現(xiàn)
我們新建一個(gè)空白文本文件,比如說(shuō):gray.txt. 拷貝進(jìn)去如下的XML代碼:
復(fù)制代碼
代碼如下:<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<filter id="grayscale">
<feColorMatrix type="matrix" values="0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"/>
</filter>
</svg>
然后,修改后綴.txt → .svg. 然后就可以調(diào)用了~~

如下CSS調(diào)用代碼:
filter: url(gray.svg#grayscale);然后,效果就出來(lái)了。如果你手上的瀏覽器是FireFox4+,您可以狠狠地點(diǎn)擊這里:SVG濾鏡實(shí)現(xiàn)照片黑白demo?
別忘了IE瀏覽器
IE下實(shí)現(xiàn)上面已經(jīng)提過(guò),就是:
filter: gray;至少I(mǎi)E7~9都是支持的。最近較懶,IE6懶得去測(cè),支持與否不知。經(jīng)驗(yàn)來(lái)看,應(yīng)該是支持的。
我需要一個(gè)一統(tǒng)江山的方法
一統(tǒng)江山(完全兼容),如果單純想通過(guò)CSS,也是可以的,你所要做的就是:天天拿個(gè)魚(yú)竿去黃浦江釣魚(yú),年復(fù)一年,日復(fù)一日……然后,兩年后,只要兩年,把上面兩個(gè)demo頁(yè)面F5一下,就可以了!很簡(jiǎn)單吧!
如果嫌上面的做法過(guò)于倫敦,且你也不是一根筋,到是有個(gè)一統(tǒng)江山的方法,不過(guò)不是CSS的干貨,一個(gè)貌似有點(diǎn)名氣的Greyscale.js。
用法很簡(jiǎn)單,引用JavaScript文件,如下:
<script src="http://james.padolsey.com/demos/grayscale/grayscale.js"></script>然后,一句話(huà):
grayscale(document.getElementById("thisImage"));或DOM元素集:
grayscale(document.getElementsByTagName("img"));如果你喜歡使用jQuery,還可以使用:
grayscale($("#thisImage"));很簡(jiǎn)單吧。
實(shí)現(xiàn)原理:IE瀏覽器下是添加灰度濾鏡,這個(gè)大家都懂的。其他瀏覽器貌似使用Canvas中的getImageData方法,然后對(duì)每個(gè)像素點(diǎn)進(jìn)行灰度轉(zhuǎn)換~~
因此,在現(xiàn)代瀏覽器下,對(duì)于該方法,圖片的灰度處理有兩個(gè)局限性:
1. 速度。300*300這張一般般大小的圖片變灰就要數(shù)秒之久;
2. 跨域。安全性機(jī)制,無(wú)法轉(zhuǎn)換跨域的圖片為黑白色。
相關(guān)文章
修改CSS樣式實(shí)現(xiàn)網(wǎng)頁(yè)灰色(沒(méi)有顏色只有淺色黑白)的幾個(gè)方法整理
一般在清明節(jié),全國(guó)哀悼日,大地震的日子,還有這次疫情,以及一些影響力很大的偉人逝世或紀(jì)念日的時(shí)候,身為站長(zhǎng)的我們都會(huì)響應(yīng)國(guó)家的號(hào)召讓自己的網(wǎng)站的全部網(wǎng)頁(yè)變成灰色2020-04-04網(wǎng)站變黑白色CSS一行代碼實(shí)現(xiàn)
5.12地震給四川帶來(lái)了巨大災(zāi)難,5月19日到5月21日為全國(guó)哀悼日,有很多網(wǎng)站界面今天都變成了黑白色,從而紀(jì)念那些在地震中死去的逝者2008-10-17- 在頁(yè)面上,有時(shí)會(huì)需要展示一些透明背景的圖片,為了展示其透明的背景,通常會(huì)像PS一樣,使用黑白相間的格子組成背景,從而告訴用戶(hù),這是一張透明的圖片,本文給大家介紹使2022-05-30