淺談JavaScript和Canvas實現彩色圖片轉換成黑白圖片
1、convertToGray()
在主體程式碼中使用 canvas 元素的id來獲取畫布,並設定畫布的寬和高為圖片的寬和高,再將上下文初始化為2d畫布;彩色圖片載入完成後,使用 drawImage() 將圖片載入到上下文,呼叫用於完成剩餘繪製工作的 getColorData()和 putColorData();最後為myImage指定彩色圖片的路徑。
2、getColorData()
使用 getImageData()將影像複製到 myImage,然後按照以下方式處理影像:在影像資料陣列中移動,並收集前三個位元組(紅色、綠色和藍色,忽略 alpha)的值;然後,該影像將三個位元組的值相加,並將總和除以3,計算結果將舍入為一個整數,並被寫入到這三個位元組的值中。此值對應於顏色的色調,但灰度值從0到255,得到外觀與原始彩色圖片相同的黑白圖片。
3、putColorData()
putImageData() 將已更改的影像資料寫回到畫布,通常用於讓另一個圖片執行實際處理,並僅在處理完成時顯示結果。
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);
}
相關文章
- 圖片格式轉換,JPG圖片轉換成PDF
- 圖片怎麼轉換成PDF,圖片轉PDF教程
- 如何將圖片轉換成影片?
- canvas實現二維碼和圖片合成Canvas
- Java實現emf轉jpg png 圖片轉換Java
- canvas實現圖片馬賽克Canvas
- 利用 canvas 實現圖片壓縮Canvas
- 前端圖片canvas,file,blob,DataURL等格式轉換前端Canvas
- JPG轉CAD,JPG圖片如何轉換成CAD圖紙?
- js圖片 轉換JS
- 把圖片轉換成CAD圖紙該如何操作?
- 怎麼把圖片文字轉換成word?
- 如何將heic格式轉換成jpg圖片?
- Android 中 Base64 轉換成 圖片Android
- 開源圖片工具箱(Img Toolbox) 格式轉換 新增水印 圖片壓縮 圖片裁剪 圖片旋轉 圖片縮放
- php實現圖片旋轉PHP
- php實現pdf轉圖片PHP
- 怎麼轉換圖片格式並壓縮圖片
- 淺談Flutter web 圖片選擇器及圖片壓縮FlutterWeb
- 圖片轉換文字appAPP
- 使用 JavaScript 壓縮和翻轉圖片JavaScript
- 純前端實現 JPG 圖片壓縮 | canvas前端Canvas
- 【WPF】大量Canvas轉換為本地圖片遇到的問題Canvas地圖
- C# 實現PPT 每一頁轉成圖片C#
- 手機圖片轉換成excel怎麼操作?Excel
- 文件轉換成圖片軟體(convert document to Image)
- 用手機怎麼把圖片轉換成PDF
- 小程式把圖片轉換成base64
- PDF 轉換圖片然後識別圖片內容
- vue+element 將圖片壓縮並轉換成base64上傳圖片Vue
- (H5)canvas實現裁剪圖片和馬賽克功能,以及又拍雲上傳圖片H5Canvas
- canvas 壓縮圖片Canvas
- ??圖片壓縮CanvasCanvas
- PythonGUI工具 圖片大小轉換PythonNGUI
- python批量ppt轉圖片,pdf轉圖片,word轉圖片指令碼Python指令碼
- 識別圖片文字轉換成word文字真的很難嗎?分享圖片轉文字的技巧
- 如何實現圖片轉換成文字?快速錄入方法
- canvas圖片跨域實踐解惑Canvas跨域
- java學習---前端---使用JavaScript和jQuery實現圖片輪播圖前端JavaScriptjQuery