欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

HTML5 Canvas像素處理使用接口介紹_HTML5教程

編輯Tag賺U幣

推薦:淺談three.js中的needsUpdate的應(yīng)用
three.js里的很多對象都有一個needsUpdate屬性,文檔中很少有寫(不過three.js的文檔本來就沒多少,很多問題還得靠github上的issues),網(wǎng)上各式各樣的教程中也不太會寫這個,因為對于簡單的入門程序而言,是用不到這個屬性的

內(nèi)容概要:本文通過簡單的代碼實例,以及略猥瑣的圖片demo,展示了canvas在圖像像素數(shù)據(jù)操作方面的常用接口。至于如何利用這幾個接口實現(xiàn)更復(fù)雜的效果,則會在后續(xù)章節(jié)里繼續(xù)講述。
一、canvas圖片填充; 2、設(shè)置/獲取canvas圖片數(shù)據(jù); 3、創(chuàng)建canvas圖片數(shù)據(jù);4、關(guān)于imageData.data的一點補充; 5、寫在后面
一、canvas圖片填充

復(fù)制代碼 代碼如下:www.ghpqjb.com

/**
* @description
* @param {Number} x 圖像起始繪制點距離canvas最左側(cè)的距離
* @param {Number} y 圖像起始繪制點距離canvas最頂部的距離
* @param {Number} width 最終圖像在canvas上繪制出來的寬度
* @param {Number} height 最終圖像在canvas上繪制出來的高度
*/
context.drawImage(image, x, y, width, height)

demo_01如下:
<canvas id="draw_image_canvas" style="background:#ccc;"></canvas>

復(fù)制代碼 代碼如下:www.ghpqjb.com

function $(id) { return document.getElementById(id); }
function getImage(url, callback){
var img = document.createElement('img');
img.onload = function(){
callback && callback(this);
};
img.src = url;
document.body.appendChild(img);
}
function drawImage(){
var url = 'xiangjishi.png';
var canvas = $('draw_image_canvas');
var context = canvas.getContext('2d');
getImage(url, function(img){
canvas.width = img.width;
canvas.height = img.height;
var offsetX = 20;
var offsetY = 20;
var drawWidth = img.width/4;
var drawHeight = img.height/4;
context.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);
});
}
drawImage();

demo說明:加載xiangjishi.png,加載完成后,從相對于畫布左上角坐標(biāo)(0, 0)處開始,將xiangjishi.png繪制在畫布上,效果如下:

看到這里,可能對于 context.drawImage(image, x, y, width, height) 里四個參數(shù)的含義理解還不是特別清楚,可以簡單把幾個參數(shù)修改下看看效果:

復(fù)制代碼 代碼如下:www.ghpqjb.com

var offsetX = 20;
var offsetY = 20;
var drawWidth = img.width/2;
var drawHeight = img.height/2;
context.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);

修改后的demo效果如下,結(jié)合上面API的說明,應(yīng)該不難理解四個參數(shù)所代表的含義
 

復(fù)制代碼 代碼如下:www.ghpqjb.com

context.drawImage(image, x, y, width, height)

二、獲取/設(shè)置canvas圖片數(shù)據(jù)

復(fù)制代碼 代碼如下:www.ghpqjb.com

/**
* @description 獲取canvas特定區(qū)域的像素點信息
* @param {Number} x 獲取信息的起始點距離canvas最左側(cè)的距離
* @param {Number} y 獲取信息的起始距離canvas最頂部的距離
* @param {Number} width 獲取的寬度
* @param {Number} height 最終的高度
*/
context.getImageData(x, y, width, height)

該方法返回一個ImageData對象,該對象主要有三個屬性:
imageData.width:每行有多少個元素
imageData.height:每列有多少個元素
imageData.data:一維數(shù)組,存儲了從canvas中獲取的每個像素的RGBA值。該數(shù)組為每個像素點保存了四個值——紅、綠、藍(lán)和alpha透明度。每個值都在0~255之間。因此,canvas上的每個像素在這個數(shù)組中就變成了四個整數(shù)值。數(shù)組的填充順序從左到右,從上到下。

復(fù)制代碼 代碼如下:www.ghpqjb.com

/**
* @description 用特定的imageData設(shè)置canvas特定區(qū)域的像素信息
* @param {Number} x 從canvas的x點處開始設(shè)置
* @param {Number} y 從canvas的y點處開始設(shè)置
* @param {Number} width 獲取的寬度
* @param {Number} height 最終的高度
*/
context.putImageData(imageData, x, y)

下面結(jié)合demo_2來說明getImageData()的用法以及各自參數(shù)的對應(yīng)的含義
DEMO_02 源代碼如下,在demo_01的基礎(chǔ)上稍事修改:

復(fù)制代碼 代碼如下:www.ghpqjb.com

<canvas id="draw_image_canvas" style="background:#ccc;"></canvas>
<canvas id="get_image_canvas" style="background:#ccc;"></canvas>


復(fù)制代碼 代碼如下:www.ghpqjb.com

function getAndSetImageData(){
var url = 'xiangjishi.png';
getImage(url, function(img){
$('draw_image_canvas').width = img.width;
$('draw_image_canvas').height = img.height;
var context = $('draw_image_canvas').getContext('2d');
context.drawImage(img, 0, 0, img.width, img.height);
//獲取像素信息
var offsetX = img.width/2;
var offsetY = img.height/2;
var getImgWidth = img.width/2;
var getImgHeight = img.height/2;
var imgageData = context.getImageData(offsetX, offsetY, getImgWidth, getImgHeight);
//設(shè)置像素信息,此處先忽略具體代碼,知道是把上面獲取的像素信息原封不動放到另一canvas里即可
var startX = 0;
var startY = 0;
var ct = $('get_image_canvas').getContext('2d');
$('get_image_canvas').width = img.width;
$('get_image_canvas').height = img.height;
ct.putImageData(imgageData, startX, startY);
});
}

demo_2 展示效果如下

 
到這里,基本能夠清除getImageData方法四個參數(shù)對應(yīng)的含義。putImageData參數(shù)的理解也不難,demo_2的代碼略加修改后看下效果就知道了

復(fù)制代碼 代碼如下:www.ghpqjb.com

function getAndSetImageData(){
var url = 'xiangjishi.png';
getImage(url, function(img){
$('draw_image_canvas').width = img.width;
$('draw_image_canvas').height = img.height;
var context = $('draw_image_canvas').getContext('2d');
context.drawImage(img, 0, 0, img.width, img.height);
//獲取像素信息
var offsetX = img.width/2;
var offsetY = img.height/2;
var getImgWidth = img.width/2;
var getImgHeight = img.height/2;
var imgageData = context.getImageData(offsetX, offsetY, getImgWidth, getImgHeight);
//設(shè)置像素信息
var startX = img.width/2; //這里原先為0
var startY = img.width/2; //這里原先為0
var ct = $('get_image_canvas').getContext('2d');
$('get_image_canvas').width = img.width;
$('get_image_canvas').height = img.height;
ct.putImageData(imgageData, startX, startY);
});
}

demo_3展示效果如下,可是試著把幾個參數(shù)自己改一下試下,可能會有更好的理解:

 
三、創(chuàng)建canvas圖片數(shù)據(jù)

復(fù)制代碼 代碼如下:www.ghpqjb.com

/**
* @description 預(yù)先創(chuàng)建一組圖像數(shù)據(jù),并綁定在canvas對象上
* @param {Number} width 創(chuàng)建的寬度
* @param {Number} height 創(chuàng)建的高度
*/
context.createImageData(width, height)

接口比較簡單,創(chuàng)建的數(shù)據(jù)可以像用getImageData獲取到的數(shù)據(jù)那樣進行同樣的處理,這里僅需要注意的是:這組圖像數(shù)據(jù)不一定會反映canvas的當(dāng)前狀態(tài)。
四、關(guān)于imageData的一點補充
再《HTML5高級程序設(shè)計》以及很多文章里面,都把imageData.data當(dāng)作一個數(shù)組來講,但其實:

復(fù)制代碼 代碼如下:www.ghpqjb.com

imageData.data返回的并不是真正的數(shù)組,而是一個類數(shù)組的對象,可以將imageData.data的類型打印出來
console.log(Object.prototype.toString.call(imgageData.data)); //輸出:[object Uint8ClampedArray]

然后再將imageData.data的具體內(nèi)容打印出來,內(nèi)容較長,僅截取最前面以及最后面的一段,可以看出:
imageData.data其實是一個對象,其索引從0開始,一直到width*height*4-1。


為什么不直接用數(shù)組存放?因為數(shù)組的長度有個上限,假設(shè)為limitLength,超過limitLength的元素,均以鍵值的方式存儲,如 data[limitLength + 100] 其實是 data['limitLength + 100 + ''](limitLength具體值記不得了,有興趣的童鞋可以查下)
至于最后面的byteLength、byteOffset、buffer屬性,未深究,此處不展開以防誤導(dǎo)讀者。
五、寫在后面
水平有限,如有疏誤,敬請指出


分享:基于HTML5超酷攝像頭(HTML5 webcam)拍照功能實現(xiàn)代碼
基于HTML5實現(xiàn)的超酷攝像頭(HTML5 webcam)拍照功能,需要了解的朋友可以參考下

來源:未知//所屬分類:HTML5教程/更新時間:2013-04-22
相關(guān)HTML5教程
亚洲精品一二区| 亚洲高清电影| 久久久久久久一区| 这里只有精品视频| 一区二区三区的久久的视频| 成人性生活毛片| 国产精品17p| 久久久久久久久久电影| 最近2019年手机中文字幕| 中国女人做爰视频| 天天干天天色综合| 欧美永久精品| 91搞黄在线观看| 亚洲在线免费视频| 亚洲国产无码精品| 榴莲视频成人app| 久久久久久久久97黄色工厂| 欧美大奶子在线| 色婷婷综合久久久久中文字幕| 国产精品国产三级国产aⅴ| 极品裸体白嫩激情啪啪国产精品| 日韩欧美成人网| 91性高湖久久久久久久久_久久99| 手机在线成人av| 成人综合日日夜夜| 久久夜色精品国产噜噜av| 久久91超碰青草是什么| 欧美激情精品久久久久久小说| 99热这里只有精品在线观看| 日韩精品成人一区二区三区| 亚洲电影中文字幕| 经典三级在线视频| 无码人妻一区二区三区免费| 一区二区动漫| 欧美一区二区三区不卡| 欧美亚洲丝袜| 国产成人在线视频观看| 欧美三区视频| 欧美一区二区三区精品| 亚洲mv在线看| 91视频在线视频| 国产农村妇女毛片精品久久莱园子| 这里只有精品视频在线观看| 神马影院午夜我不卡影院| 日本少妇毛茸茸高潮| 欧美国产免费| 欧美军同video69gay| 欧美日韩免费观看一区| 99久在线精品99re8热| 极品日韩av| 日韩欧美高清一区| 只有这里有精品| 国产精品久久久久久久免费看| 国产中文字幕免费| 岛国精品在线| 国产欧美精品一区aⅴ影院 | 美女100%露胸无遮挡| 高清精品视频| 亚洲午夜一二三区视频| 91日韩久久| 免费三级在线观看| 欧美 亚欧 日韩视频在线| 91麻豆精品国产91久久久使用方法 | 国产一区二区三区四区hd| 久久久久免费看| 国产中文一区| 亚洲精品国精品久久99热| 男女激情无遮挡| 日韩中文字幕免费观看| 91在线丨porny丨国产| 51精品国产黑色丝袜高跟鞋| 风间由美一二三区av片| 久久综合欧美| 欧美日韩色综合| 黄色小视频大全| 欧美自拍偷拍第一页| 91色.com| 国产精品美女久久| 国精产品久拍自产在线网站| 欧美黄色aaaa| 亚洲精品按摩视频| 久久人妻精品白浆国产 | 久久精品夜夜夜夜夜久久| 国产精品久久久久久9999| 日本综合精品一区| 红桃视频成人在线观看| 六月婷婷久久| 亚洲精品日韩在线观看| 国产精品密蕾丝袜| 欧美在线电影| 欧美一区二区美女| www污在线观看| 国产成人精品123区免费视频| 国产精品萝li| 成人资源视频网站免费| www.毛片.com| 日本少妇在线观看| 一区二区三区四区在线视频| 国产在线视频二区| 久久人人超碰| 精品久久在线播放| 亚洲日本va在线观看| 亚洲91精品在线| 久久久久久国产免费a片| 亚洲a一区二区三区| 欧美成人官网二区| 久久婷婷国产精品| 国产精品日本一区二区不卡视频| 亚洲成人av一区二区三区| 欧美一区国产一区| 99国产精品欲| 日本一二三不卡| 国产精品永久入口久久久| 天天天天天天天干| 成人福利视频网站| 国产精品久久久久高潮| 国产一级一片免费播放| 久久国产乱子精品免费女| 国内精品国产三级国产在线专| 亚洲一区二区自偷自拍| 国模吧视频一区| 日韩视频精品在线| 国产欧美综合一区| 亚洲成人网在线播放| 中文字幕亚洲精品乱码| 亚洲最新中文字幕| 欧美一区二区成人6969| 杨幂一区欧美专区| 婷婷在线免费观看| 99久久人爽人人添人人澡| 国产精品精品软件男同| 韩国一区二区三区视频| 一本到不卡精品视频在线观看| 精品一区二区成人免费视频| 浪潮色综合久久天堂 | 亚洲私人影院在线观看| 欧美韩国日本精品一区二区三区| 亚洲精品视频专区| 自拍偷拍欧美精品| 亚洲v国产v在线观看| 免费看av不卡| 精品久久香蕉国产线看观看gif| 国产成人生活片| 国产欧美88| 7777精品伊人久久久大香线蕉经典版下载| 日韩a在线播放| 亚洲妇女av| 亚洲国产精品va在线| 少妇熟女视频一区二区三区 | 亚洲精品456| 日韩精品免费在线| 少妇激情一区二区三区视频| 亚洲电影成人| 性视频1819p久久| 国产乱码久久久久久| 国产成人在线视频网站| 51精品国产人成在线观看| 国产精品久久久久久久免费看| 中文字幕永久在线不卡| 成人免费视频a| 日韩美女免费观看| 午夜一区二区三区免费| 亚洲影视在线| 欧美亚洲激情在线| 亚洲永久精品在线观看| 久久久久亚洲综合| 日本一区二区三区在线视频| 日韩经典一区| 91精品国产一区二区人妖| 欧美精品色视频| 激情另类综合| 欧美综合在线观看| 日韩欧美国产另类| 国产精品毛片久久久久久久| 最新视频 - x88av| 国产成人tv| 亚洲欧美成人精品| 91导航在线观看| 国产成人免费视频网站高清观看视频| 99re6在线| 成人看片视频| 无码人妻黑人中文字幕| 中文字幕一区二区三区四区不卡 | 91麻豆成人久久精品二区三区| 精品无人乱码一区二区三区的优势| 国产熟人av一二三区| 91麻豆精品国产91久久久更新资源速度超快 | 国产精品久久999| 一区二区三区午夜| 亚洲一线二线三线视频| 日本三区在线观看| 欧美午夜一区| 国产成人av在线播放| 国产又粗又猛视频免费| 午夜电影一区二区三区| 五月婷婷六月合| 影音先锋久久资源网| 国产精品精品国产| 国产 欧美 自拍| 国产精品每日更新| aaa欧美日韩| 成人黄色网址在线观看| 91天堂素人约啪| 色偷偷成人一区二区三区91 | 制服诱惑一区二区| 国产精品www| 亚洲av少妇一区二区在线观看| 91免费视频大全| 亚洲视屏在线播放| 国产成人av免费在线观看| 99视频在线精品| 日韩在线中文视频| 久久久综合香蕉尹人综合网| 性xxxx搡xxxxx搡欧美| 7777精品伊人久久久大香线蕉完整版 | 日韩丰满少妇无码内射| 成人久久久精品乱码一区二区三区| 日本一区美女| 日韩激情网站| 欧美另类交人妖| 一区二区三区午夜| 色综合天天在线| 久久久无码人妻精品无码| 青青草91视频| 久久精彩视频| 成人三级av在线| 欧美老肥婆性猛交视频| 依依成人在线视频| 色视频欧美一区二区三区| 精品人妻一区二区免费| 国产做a爰片久久毛片| 日本三级中国三级99人妇网站| 成人在线tv视频| 久久夜色精品国产亚洲aⅴ| 中文在线字幕av| 在线观看一区二区视频| 亚洲一区二区三区无码久久| 成人国产电影网| www.日本三级| 国产一区日韩欧美| 99九九视频| 青草伊人久久| 欧美成人精品在线播放| 国产精品无码一区二区桃花视频| 欧美日韩午夜在线视频| av手机在线播放| 国产女人水真多18毛片18精品视频| 无罩大乳的熟妇正在播放| 亚洲国产一区二区三区a毛片 | 精品久久久99| 中国女人特级毛片| 久久国产精品久久w女人spa| 久久大片网站| 日韩av中文字幕一区| 国模极品一区二区三区| 成人小说亚洲一区二区三区| 亚洲成人av片| 全部毛片永久免费看| 日韩欧美在线一区| 无码国产69精品久久久久同性| 久久精品一二三| 国产精品69页| 麻豆精品久久精品色综合| 影音先锋欧美资源| 欧美 日韩 国产精品免费观看| www国产亚洲精品| 日韩av不卡一区| 国产精品igao视频| 亚洲欧美在线人成swag| 久久综合五月天| 蜜桃在线一区二区| 一道本无吗dⅴd在线播放一区| 中文字幕永久在线观看| 欧美一区二区三区啪啪| 国产精品第九页| 日韩欧美在线一区| 女性裸体视频网站| 欧美aaaaa级| 亚洲级视频在线观看免费1级| 国产精品黄色大片| 日本乱码高清不卡字幕| 中文字幕久热精品视频在线| 亚洲免费成人在线视频| 国内精品写真在线观看| 中国女人做爰视频| 国产精品久久久久9999高清| 亚洲高清视频在线观看| 中文字幕亚洲精品乱码| 精品在线不卡| 无码一区二区三区视频| 精品免费国产| 五月天综合网站| 精品一区二区视频| 国产精品7m凸凹视频分类| 国精产品99永久一区一区| 精品日韩欧美一区| 99在线影院| 日韩一区电影| 国产午夜精品一区| 99成人在线视频| 精品亚洲一区二区三区四区五区高| 日韩欧美视频| 精品久久精品久久| 中文字幕日韩欧美精品高清在线| 久久久久久99| 欧美日韩p片| 日韩国产欧美精品| 亚洲第一精品影视| 亚洲va久久久噜噜噜久久狠狠 | 91精品一区二区三区四区| 欧美视频在线观看| 五月天亚洲综合情| 国产日韩1区| 日本乱人伦一区| 一色道久久88加勒比一| 亚洲国产人成综合网站| 精品一区二区6| 欧美特级www| 久久网中文字幕| 91精品婷婷国产综合久久竹菊| 亚洲不卡视频在线观看| 亚洲精品一区二区在线观看| 一本大道伊人av久久综合| 亚洲欧美中文日韩在线| 你懂的网站在线| 欧美日韩aaaa| 日本精品在线观看| 国产日韩在线亚洲字幕中文| 国模吧精品视频| 欧美激情视频一区二区三区| 亚洲精品在线二区| 色偷偷一区二区三区| 成品人视频ww入口| 蜜臀精品久久久久久蜜臀| 一女被多男玩喷潮视频| 国产酒店精品激情| 国产精品嫩草影院8vv8 | 97在线免费观看| 无码国模国产在线观看| 成人黄色影片在线| 日韩中文在线电影| 日韩欧美视频第二区| 葵司免费一区二区三区四区五区| 午夜精品久久久久久久无码| 99久久国产免费看| av在线播放网址| 亚洲成av人片一区二区| 日本五十路女优| 日韩成人中文字幕在线观看| 日韩高清第一页| 亚洲永久精品唐人导航网址| 亚洲www视频| 欧美国产日本| 久久综合久久久久| 成人av在线影院| 制服丝袜第一页在线观看| 欧美成人在线免费| 成人写真视频福利网| 不卡视频在线| 亚洲巨乳在线观看| 蜜桃精品视频在线| 亚洲免费一级视频| 国产精品入口麻豆九色| 五月婷婷六月香| 欧美日韩不卡一区| 国产日本精品视频| 欧美激情视频网| 里番精品3d一二三区| 免费成人看片网址| 视频一区二区三区在线| 国产精品久久久毛片| 18成人在线观看| 欧美精品一区二区成人| 亚洲精品999| 黄色精品视频| 亚洲一区二区在线播放| 最新亚洲激情| 国产三级日本三级在线播放| 最好看的中文字幕久久| 久久久久久免费观看| 精品呦交小u女在线| 97精品国产99久久久久久免费| 91系列在线观看| 国产精品色网| 一级做a免费视频| 午夜精品久久久| 免费观看黄色大片| 夜夜嗨av一区二区三区网站四季av| 女人和拘做爰正片视频| 亚洲国产电影在线观看| 免费无遮挡无码永久在线观看视频 | xvideos亚洲| 大桥未久女教师av一区二区| 精品一区二区三区免费毛片| 精品一区二区在线观看| www.17c.com喷水少妇| 欧美色图天堂网| 日韩一区二区三区不卡| 国产精品成人播放| 国产精品99免费看|