最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript+Canvas實(shí)現(xiàn)彩色圖片轉(zhuǎn)換成黑白圖片的方法分析

 更新時(shí)間:2018年07月31日 10:23:06   作者:筱葭  
這篇文章主要介紹了JavaScript+Canvas實(shí)現(xiàn)彩色圖片轉(zhuǎn)換成黑白圖片的方法,結(jié)合實(shí)例形式分析了javascript結(jié)合HTML5相關(guān)函數(shù)修改頁(yè)面圖片元素顯示效果相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了JavaScript+Canvas實(shí)現(xiàn)彩色圖片轉(zhuǎn)換成黑白圖片的方法。分享給大家供大家參考,具體如下:

1、convertToGray()

在主體代碼中使用 canvas 元素的id來(lái)獲取畫(huà)布,并設(shè)置畫(huà)布的寬和高為圖片的寬和高,再將上下文初始化為2d畫(huà)布;彩色圖片加載完成后,使用 drawImage() 將圖片加載到上下文,調(diào)用用于完成剩余繪制工作的 getColorData()putColorData();最后為myImage指定彩色圖片的路徑。

2、getColorData()

使用 getImageData()將圖像復(fù)制到 myImage,然后按照以下方式處理圖像:在圖像數(shù)據(jù)數(shù)組中移動(dòng),并收集前三個(gè)字節(jié)(紅色、綠色和藍(lán)色,忽略 alpha)的值;然后,該圖像將三個(gè)字節(jié)的值相加,并將總和除以3,計(jì)算結(jié)果將舍入為一個(gè)整數(shù),并被寫(xiě)入到這三個(gè)字節(jié)的值中。此值對(duì)應(yīng)于顏色的色調(diào),但灰度值從0到255,得到外觀(guān)與原始彩色圖片相同的黑白圖片。

3、putColorData()

putImageData() 將已更改的圖像數(shù)據(jù)寫(xiě)回到畫(huà)布,通常用于讓另一個(gè)圖片執(zhí)行實(shí)際處理,并僅在處理完成時(shí)顯示結(jié)果。

var canvas, ctx, myImage;
function convertToGray() {
  myImage = document.getElementById("img");
  canvas = document.getElementById("myCanvas");
  canvas.width = img.width;
  canvas.height = img.height;
  if (canvas.getContext) {
    ctx = canvas.getContext("2d");
    myImage.onload = function() {
      ctx.drawImage(myImage, 0, 0);
      getColorData();
      putColorData();
    }
    myImage.src = "images/img8.jpg";
  }
}
function getColorData() {
  var length = canvas.width * canvas.height;
  myImage = ctx.getImageData(0, 0, canvas.width, canvas.height);
  for (var i = 0; i < length * 4; i += 4) {
    var myRed = myImage.data[i];
    var myGreen = myImage.data[i + 1];
    var myBlue = myImage.data[i + 2];
    myGray = parseInt((myRed + myGreen + myBlue) / 3);
    myImage.data[i] = myGray;
    myImage.data[i + 1] = myGray;
    myImage.data[i + 2] = myGray;
  }
}
function putColorData() {
  ctx.putImageData(myImage, 0, 0);
}

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《JavaScript+HTML5特效與技巧匯總》、《JavaScript圖片操作技巧大全》、《JavaScript圖形繪制技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • uni-app低成本封裝一個(gè)取色器組件的簡(jiǎn)單方法

    uni-app低成本封裝一個(gè)取色器組件的簡(jiǎn)單方法

    最近想實(shí)現(xiàn)一個(gè)uniapp取色器組件,實(shí)現(xiàn)后發(fā)現(xiàn)效果還不錯(cuò),下面這篇文章主要給大家介紹了關(guān)于uni-app低成本封裝一個(gè)取色器組件的相關(guān)資料,文中通過(guò)圖文介紹的介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • ES6?class類(lèi)實(shí)現(xiàn)繼承實(shí)例詳解

    ES6?class類(lèi)實(shí)現(xiàn)繼承實(shí)例詳解

    傳統(tǒng)的javascript中只有對(duì)象,沒(méi)有類(lèi)的概念,下面這篇文章主要給大家介紹了關(guān)于ES6?class類(lèi)實(shí)現(xiàn)繼承的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • VS2008中使用JavaScript調(diào)用WebServices

    VS2008中使用JavaScript調(diào)用WebServices

    這篇文章主要介紹了VS2008中使用JavaScript調(diào)用WebServices,需要的朋友可以參考下
    2014-12-12
  • JavaScript創(chuàng)建對(duì)象_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    JavaScript創(chuàng)建對(duì)象_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了JavaScript創(chuàng)建對(duì)象的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 通過(guò)JS運(yùn)行機(jī)制的角度說(shuō)說(shuō)作用域

    通過(guò)JS運(yùn)行機(jī)制的角度說(shuō)說(shuō)作用域

    這篇文章主要給大家介紹了如何通過(guò)JS運(yùn)行機(jī)制的角度說(shuō)說(shuō)作用域的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用JS作用域具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JS幻想 讀取二進(jìn)制文件

    JS幻想 讀取二進(jìn)制文件

    如果說(shuō)讓JavaScript讀取站點(diǎn)上一文本文件,那不過(guò)是個(gè)再簡(jiǎn)單不了的事了;但若說(shuō)要換成一個(gè)二進(jìn)制的文件,并且是完全靜態(tài)的讀取,那似乎有點(diǎn)天方夜譚了。
    2009-04-04
  • 讓瀏覽器崩潰的12行JS代碼(DoS攻擊分析及防御)

    讓瀏覽器崩潰的12行JS代碼(DoS攻擊分析及防御)

    現(xiàn)在有一段12行的JavaScript代碼,可以讓firefox、chrome、safari瀏覽器崩潰,而且還能讓iphone重啟、安卓閃退,本文作者對(duì)于該12行代碼進(jìn)行了分析解讀并且提出了相應(yīng)的防御辦法,歡迎大家一同探討。有需要的朋友們可以參考借鑒。
    2016-10-10
  • 用JS實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲

    用JS實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲

    這篇文章主要為大家詳細(xì)介紹了用JS實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • JS實(shí)現(xiàn)可針對(duì)算術(shù)表達(dá)式求值的計(jì)算器功能示例

    JS實(shí)現(xiàn)可針對(duì)算術(shù)表達(dá)式求值的計(jì)算器功能示例

    這篇文章主要介紹了JS實(shí)現(xiàn)可針對(duì)算術(shù)表達(dá)式求值的計(jì)算器功能,可實(shí)現(xiàn)基本的數(shù)字四則運(yùn)算功能,涉及javascript基本數(shù)值運(yùn)算與流程控制、判斷等操作技巧,需要的朋友可以參考下
    2018-09-09
  • js彈出div并顯示遮罩層

    js彈出div并顯示遮罩層

    彈出div顯示遮罩層的效果,想必大家都有見(jiàn)到過(guò)吧,下面有個(gè)示例,大家可以參考下
    2014-02-02

最新評(píng)論

右玉县| 通许县| 大理市| 鸡东县| 界首市| 东至县| 廊坊市| 杂多县| 广水市| 溧阳市| 东光县| 苍溪县| 白水县| 无棣县| 黄石市| 和顺县| 田东县| 长兴县| 安康市| 嘉善县| 绿春县| 辽源市| 合作市| 大丰市| 喀喇| 枣庄市| 隆林| 德格县| 崇文区| 洛阳市| 青海省| 泗阳县| 长顺县| 卢龙县| 绥芬河市| 兴海县| 电白县| 三都| 大丰市| 青岛市| 禹州市|