亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

HTML5實踐-圖片設置成灰度圖

2024-08-26 00:14:49
字體:
來源:轉載
供稿:網友
以前,在web上要顯示灰度圖片的話,只有手工使用圖片軟件轉換。但是現在借助于HTML5/">html5的canvas可以實現這個過程,而不需要再借助圖片編輯軟件了。我用html5和jquery做了一個demo,來展示如何實現這個功能。

目的
這個demo將會向你展示用html5和jquery,如何實現鼠標在圖片上移動移出時,灰度圖像和原圖之間的切換。在html5出現之前,要實現這個功能就需要準備兩個圖片,一個灰度圖片,一個原圖。但是現在借助于html5可以實現的更快更容易,因為灰度圖片是直接在原圖上生成的。我希望這段js代碼對你在創建文件或者圖片陳列功能的時候有幫助作用。

效果圖
 
jquery 代碼
下面的jquery代碼將會尋找目標圖片,并生成一個灰度的版本。當你鼠標移動到圖片上時,灰度圖片會變成原色。

復制代碼 代碼如下:www.CuoXIn.com

<script src="jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
// 設置 window load事件是為了等待所有圖片加載完畢之后才行運行
$(window).load(function(){
// 使圖片漸入,這樣有顏色的原圖就不會顯示出來了,然后再執行window load 事件
$(".item img").fadeIn(500);
// 復制圖片
$('.item img').each(function(){
var el = $(this);
el.css({"position":"absolute"}).wrap("<div class='img_wrapper' style='display: inline-block'>").clone().addClass('img_grayscale').css({"position":"absolute","z-index":"998","opacity":"0"}).insertBefore(el).queue(function(){
var el = $(this);
el.parent().css({"width":this.width,"height":this.height});
el.dequeue();
});
this.src = grayscale(this.src);
});
// 使圖片漸入
$('.item img').mouseover(function(){
$(this).parent().find('img:first').stop().animate({opacity:1}, 1000);
})
$('.img_grayscale').mouseout(function(){
$(this).stop().animate({opacity:0}, 1000);
});
});
// 使用canvas制作灰色圖片
function grayscale(src){
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var imgObj = new Image();
imgObj.src = src;
canvas.width = imgObj.width;
canvas.height = imgObj.height;
ctx.drawImage(imgObj, 0, 0);
var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height);
for(var y = 0; y < imgPixels.height; y++){
for(var x = 0; x < imgPixels.width; x++){
var i = (y * 4) * imgPixels.width + x * 4;
var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3;
imgPixels.data[i] = avg;
imgPixels.data[i + 1] = avg;
imgPixels.data[i + 2] = avg;
}
}
ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
return canvas.toDataURL();
}
</script>

如何使用
依照下面的步驟:
引用jquery.js
復制上面的代碼
設置目標圖片(eg: .post-img, img, .gallery img, etc.)
你也可以設置動畫的速度(ie. 1000 = 1 second)
 
兼容性
我嘗試了所有支持html5和canvas的瀏覽器,例如:Chrome, Safari, 和 Firefox。如果是不支持html5的瀏覽器,他只會用原圖,不會生成灰度圖片。
注意:如果本地html文件不能在firefox和chrome上運行的話,你就需要將html文件部署到服務器上去了。

自我實踐
我自己按照教程測試了下,發現些需要注意的事項,使用firefox打開頁面,程序不能正確運行,但是將相關代碼部署到服務器之后可以運行。
必須保證是本地圖片,不然要報Security error。
這是因為
Canvas是HTML5標準中的畫布元素,可以用來繪制2D和3D圖像.
但是在調試的時候很容易遇到Security error問題.
目前我在調試時遇到過的Security error主要是出現在toDataURL()和src上.
Security error說明這段代碼沒有語義問題,但因為安全原因無法正常運行.

throw Security error的情況:
在Canvas中使用跨域圖片
在本地無服務器環境下進行調試
無法獲取當前域與圖片的關系
在stackoverflow上查到的一些解決方法通常是讓你解決跨域問題.
但實際上如果你本地調試時不使用服務器軟件也會造成這個問題.
例如: 本地調試時使用toDataURL功能,此時的Canvas中使用了本地的圖片文件.在Chrome和Firefox中仍然會throw security error.
常見的解決方法是在本地架設一個服務器環境,或者將內容提交到服務器上再進行調試.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一偷拍网| 不卡av电影院| 97视频人免费观看| 国产精品视频在线播放| 国产一区二区三区直播精品电影| 91精品国产自产在线| 欧美日韩精品中文字幕| 日韩中文在线不卡| 亚洲午夜未满十八勿入免费观看全集| 亚洲欧美日韩直播| 国产成人啪精品视频免费网| 欧美日韩国产123| 日韩高清免费观看| 国产69精品久久久| 亚洲激情在线观看| 亚洲国产成人精品久久| 亚洲免费人成在线视频观看| 91亚洲精品在线观看| 中日韩午夜理伦电影免费| 精品国产视频在线| 欧美成人免费小视频| 亚洲人线精品午夜| 美女视频久久黄| 欧美日韩中文字幕在线| 日韩电视剧在线观看免费网站| 久久久精品视频成人| 欧美极品少妇xxxxⅹ喷水| 2024亚洲男人天堂| 亚洲男人天堂久| 亚洲a级在线播放观看| 国产精品黄视频| 视频在线观看一区二区| 亚洲性线免费观看视频成熟| 国产成人福利夜色影视| 中文字幕日韩有码| 欧美大秀在线观看| 日韩久久免费电影| 蜜臀久久99精品久久久无需会员| 国产精品视频xxx| 性欧美亚洲xxxx乳在线观看| 91欧美精品成人综合在线观看| 欧美精品中文字幕一区| 91精品国产高清久久久久久久久| 久久久久久成人精品| 久久伊人精品天天| 亚洲综合在线中文字幕| 亚洲精品国产精品国自产在线| 亚洲国产日韩精品在线| 日韩高清有码在线| 日韩欧美在线观看视频| 高清欧美性猛交| 久久久精品2019中文字幕神马| 日韩av电影手机在线| 久久激情视频久久| 欧美电影在线观看网站| 日韩电影大片中文字幕| 亚洲国产精品资源| 久久精品久久久久久| 欧美午夜美女看片| 欧美在线免费视频| 国产成人精品视频在线| 国内精品久久久久影院优| 久久九九有精品国产23| 91免费福利视频| 欧美成人午夜免费视在线看片| 日韩精品在线免费| 欧美成人第一页| 久久久噜噜噜久久| 91久久久久久久久久久| 日韩美女写真福利在线观看| 久久五月天色综合| 亚洲**2019国产| 中文字幕亚洲天堂| 宅男66日本亚洲欧美视频| 成人黄色片在线| 日韩av综合网站| 亚洲美女精品久久| 国产一区av在线| 欧美理论片在线观看| 福利视频一区二区| 亚洲男人天堂手机在线| 欧美xxxx做受欧美| 欧美黄色三级网站| 久久亚洲国产精品| 亚州欧美日韩中文视频| 久久国产精品久久国产精品| 97国产在线观看| 欧美国产日韩精品| 亚洲欧洲日产国产网站| 日本欧美一二三区| 国产日韩欧美电影在线观看| 中文字幕亚洲精品| 久久久久久久成人| 日韩av在线一区二区| 国产精品91一区| 色青青草原桃花久久综合| 久久久国产精品一区| 成人国内精品久久久久一区| 国产精品视频午夜| 韩日精品中文字幕| 亚洲精品不卡在线| 国产成人av网址| 国产欧美 在线欧美| 亚洲a区在线视频| 久久精品99无色码中文字幕| 日韩欧美黄色动漫| 国产精品最新在线观看| 国产亚洲一区二区精品| 日本三级韩国三级久久| 久久人人爽人人爽爽久久| 精品久久久久久久久久久久久久| 久久久在线视频| 1769国内精品视频在线播放| 国产欧美日韩精品专区| yellow中文字幕久久| 欧美日韩激情美女| 亚洲国产一区二区三区在线观看| 国产这里只有精品| 成人午夜在线影院| 国产午夜精品久久久| 欧美第一黄网免费网站| 亚洲国内精品视频| 国产丝袜一区二区三区免费视频| 日韩久久精品电影| 久久69精品久久久久久国产越南| 亚洲自拍偷拍一区| 国产精品嫩草影院久久久| 亚洲成人黄色在线观看| 最近2019中文字幕大全第二页| 成人精品一区二区三区| 国产精品视频免费在线观看| 国产精品久久久久av| 日韩精品视频在线| 一本色道久久综合狠狠躁篇怎么玩| 夜夜嗨av一区二区三区免费区| 国产精自产拍久久久久久蜜| 26uuu久久噜噜噜噜| 久久精品视频中文字幕| 欧美成人三级视频网站| 国外视频精品毛片| 国产成人亚洲综合青青| 亚洲精品综合精品自拍| 成人美女免费网站视频| 日本精品一区二区三区在线播放视频| 亚洲精品久久久久中文字幕二区| 97视频在线观看免费高清完整版在线观看| 国产女同一区二区| 亚洲精品国精品久久99热一| 亚洲人成人99网站| 伊人一区二区三区久久精品| 欧美人成在线视频| 国产玖玖精品视频| 亚洲欧洲日产国产网站| 亚洲最大成人在线| 国产精品揄拍一区二区| 伊人成人开心激情综合网| 久久好看免费视频| 中文字幕欧美日韩精品| 国产精品高清在线观看| 亚洲欧美制服丝袜| 免费97视频在线精品国自产拍| 97av在线视频免费播放| 黑人巨大精品欧美一区二区免费| 亚洲免费中文字幕|