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

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

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

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

1、convertToGray()

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

2、getColorData()

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

3、putColorData()

putImageData() 將已更改的圖像數(shù)據(jù)寫回到畫布,通常用于讓另一個圖片執(zhí)行實際處理,并僅在處理完成時顯示結(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)容感興趣的讀者可查看本站專題:《JavaScript+HTML5特效與技巧匯總》、《JavaScript圖片操作技巧大全》、《JavaScript圖形繪制技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)

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

相關(guān)文章

  • uni-app低成本封裝一個取色器組件的簡單方法

    uni-app低成本封裝一個取色器組件的簡單方法

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

    ES6?class類實現(xiàn)繼承實例詳解

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

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

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

    JavaScript創(chuàng)建對象_動力節(jié)點Java學院整理

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

    通過JS運行機制的角度說說作用域

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

    JS幻想 讀取二進制文件

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

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

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

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

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

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

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

    js彈出div并顯示遮罩層

    彈出div顯示遮罩層的效果,想必大家都有見到過吧,下面有個示例,大家可以參考下
    2014-02-02

最新評論

安远县| 鹤壁市| 祁东县| 交城县| 南投县| 霞浦县| 于都县| 杭州市| 长宁区| 稷山县| 辽阳市| 临夏市| 义马市| 交口县| 安化县| 宣城市| 凯里市| 阿瓦提县| 西贡区| 山丹县| 南丹县| 邵阳市| 喀什市| 老河口市| 阿勒泰市| 武强县| 土默特左旗| 温州市| 南涧| 金乡县| 隆德县| 栾川县| 峨眉山市| 商城县| 化德县| 英山县| 容城县| 叙永县| 喜德县| 丰宁| 阿鲁科尔沁旗|