日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

html5图片灰度显示,HTML5 组件Canvas实现图像灰度化

發(fā)布時間:2023/11/27 HTML 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html5图片灰度显示,HTML5 组件Canvas实现图像灰度化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

HTML5發(fā)布已經(jīng)有很長一段時間了,一直以來從來沒有仔細的看過,過年剛來隨便看看

發(fā)現(xiàn)HTML5中的Canvas組件功能是如此的強大,不怪很多牛人預言Flash已死,死不死

不是我要關心的,我關心的Canvas可以很輕松在網(wǎng)頁中實現(xiàn)簡單相框和圖像灰度化。

一起來看看HTML5 Canvas是怎么做到的吧!

1. 新建一個html頁面,在body tag之間加入

Gray Filter2. 添加一段最簡單的JavaScript代碼:window.onload = function() { var canvas = document.getElementById("myCanvas"); // do something here!! }從Canvas對象獲取繪制對象上下文Context的代碼如下:

var context = canvas.getContext("2d");在html頁面中加入一幅圖像的html代碼如下:

從html?img對象中獲取image?對象的javascript代碼如下:

var image = document.getElementById("imageSource");將得到的圖像繪制在Canvas對象中的代碼如下:

context.drawImage(image, 0, 0);

從Canvas對象中獲取圖像像素數(shù)據(jù)的代碼如下:

var canvasData = context.getImageData(0, 0, canvas.width, canvas.height);讀取像素值與實現(xiàn)灰度計算的代碼如下:

for ( var x = 0; x < canvasData.width; x++) { for ( var y = 0; y < canvasData.height; y++) { // Index of the pixel in the array var idx = (x + y * canvasData.width) * 4; var r = canvasData.data[idx + 0]; var g = canvasData.data[idx + 1]; var b = canvasData.data[idx + 2]; // calculate gray scale value var gray = .299 * r + .587 * g + .114 * b; // assign gray scale value canvasData.data[idx + 0] = gray; // Red channel canvasData.data[idx + 1] = gray; // Green channel canvasData.data[idx + 2] = gray; // Blue channel canvasData.data[idx + 3] = 255; // Alpha channel // add black border if(x < 8 || y < 8 || x > (canvasData.width - 8) || y > (canvasData.height - 8)) { canvasData.data[idx + 0] = 0; canvasData.data[idx + 1] = 0; canvasData.data[idx + 2] = 0; } } }其中計算灰度公式為?gray?color?=?0.299×?red?color?+0.578×?green?color?+0.114*?blue?color

讀取出來的像素值順序為RGBA?分別代表red?color,?green?color,?blue?color,?alpha?channel

處理完成的數(shù)據(jù)要重新載入到Canvas中。代碼如下:

context.putImageData(canvasData, 0, 0);程序最終的效果如下:

完全源代碼如下:

Hello World!

Gray Filter 代碼中的文件可以替換任意你想要看到的圖片文件,HTML5,?原來如此神奇。

程序在google瀏覽器中測試通過千萬不要在本地嘗試運行上面的代碼,google

瀏覽器的安全檢查會自動阻止從瀏覽器中讀寫非domain的文件最好在tomcat或

者任意個web?container的server上發(fā)布以后從google瀏覽器查看效果即可。

總結

以上是生活随笔為你收集整理的html5图片灰度显示,HTML5 组件Canvas实现图像灰度化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:html5图片灰度显示,HTML5 组件Canvas实现图像