婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > HTML5邊玩邊學(xué)(3)像素和顏色

HTML5邊玩邊學(xué)(3)像素和顏色

熱門標(biāo)簽:地圖標(biāo)注自己去過的地方 高德地圖標(biāo)注錯(cuò)誤怎么修改 平頂山電子地圖標(biāo)注怎么修改 搜狗星級(jí)酒店地圖標(biāo)注 會(huì)聲會(huì)影怎樣做地圖標(biāo)注效果 江蘇高頻外呼系統(tǒng)線路 洛陽(yáng)市伊川縣地圖標(biāo)注中心官網(wǎng) 標(biāo)準(zhǔn)智能外呼系統(tǒng) 電銷機(jī)器人視頻

一、理解顏色

我們?cè)陔娔X屏幕上可以看到色彩斑斕的圖像,其實(shí)這些圖像都是由一個(gè)個(gè)像素點(diǎn)組成的。那么像素是什么?顏色又是什么呢?(如果您提出這兩個(gè)問題,您一定是個(gè)熱愛思考的人)一個(gè)像素其實(shí)對(duì)應(yīng)著內(nèi)存中的一組連續(xù)的二進(jìn)制位,由于是二進(jìn)制位,每個(gè)位上的取值當(dāng)然只能是 0 或者 1 了!這樣,這組連續(xù)的二進(jìn)制位就可以由 0 ,1 排列組合出很多種情況,而每一種排列組合就決定了這個(gè)像素的一種顏色。先看看下面這幅圖

聲明:為本文為原創(chuàng)文章,作者保留所有權(quán)利!歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者左洸和出處博客園

 

我們可以看到這幅圖描述了六個(gè)像素點(diǎn),一共由24個(gè)小方框組成。

注意:圖中的一個(gè)小方框代表一個(gè)字節(jié),即8個(gè)二進(jìn)制位。

因此,每個(gè)像素點(diǎn)由四個(gè)字節(jié)組成。圖中也分別標(biāo)出了這四個(gè)字節(jié)代表的含義:

第一個(gè)字節(jié)決定像素的紅色值

第二個(gè)字節(jié)決定像素的綠色值

第三個(gè)字節(jié)決定像素的藍(lán)色值

第四個(gè)字節(jié)決定像素的透明度值

每一種分顏色值的大小是從 0 到 255(提問:為什么只能到255?) ,透明度的取值:0 代表完全透明,255代表完全不透明

這樣,我們就可以用(255,0,0,255)來表示一個(gè)純紅色像素

在內(nèi)存中,他是這樣的一個(gè)32位的串: 11111111 00000000 00000000 11111111

 

二、操作像素

了解了顏色和像素的實(shí)質(zhì),我們就可以對(duì)圖形進(jìn)行更加復(fù)雜的處理。

可是,HTML5 目前還沒有提供類似 setPixel 或者 getPixel 這樣直接操作像素點(diǎn)的方法, 但是我們也有辦法

就是使用 ImageData 對(duì)象:

ImageData對(duì)象用來保存圖像像素值,它有 width、height和 data 三個(gè)屬性,其中 data 屬性就是一個(gè)連續(xù)數(shù)組,圖像的所有像素值其實(shí)是保存在 data 里面的。

data 屬性保存像素值的方法和我們?cè)谇懊鎴D片中看到的一模一樣:

imageData.data[index*4 +0]

imageData.data[index*4 +1]

imageData.data[index*4 +2]

imageData.data[index*4 +3]

上面取出了 data 數(shù)組中連續(xù)相鄰的四個(gè)值,這四個(gè)值分別代表了圖像中第 index+1 個(gè)像素的紅色、綠色、藍(lán)色和透明度值的大小。

注意index 從0 開始,圖像中總共有 width * height 個(gè)像素,數(shù)組中總共保存了 width * height * 4 個(gè)數(shù)值

 

上下文對(duì)象 Context 有三個(gè)方法用來創(chuàng)建、讀取和設(shè)置 ImageData 對(duì)象,他們分別是

createImageData(width, height):在內(nèi)存中創(chuàng)建一個(gè)指定大小的 ImageData 對(duì)象(即像素?cái)?shù)組),對(duì)象中的像素點(diǎn)都是黑色透明的,即rgba(0,0,0,0)

getImageData(x, y, width, height):返回一個(gè) ImageData 對(duì)象,這個(gè) IamgeData 對(duì)象中包含了指定區(qū)域的像素?cái)?shù)組

putImageData(data, x, y):將 ImageData 對(duì)象繪制到屏幕的指定區(qū)域上

 

三、一個(gè)簡(jiǎn)單的圖像處理例子

上面說了這么多,我們用了解的知識(shí)來玩玩圖像編程,或許有一天我們就要在 Chrome 中玩 PhotoShop 了。

程序大概是這個(gè)樣子的:

1、將一幅圖片繪制到一個(gè) canvas 元素上,為了不引發(fā)安全錯(cuò)誤(Security_ERR:DOM EXCEPTION 18),我用的是我博客頂部的橫幅背景圖片。你要運(yùn)行這個(gè)例子,可能需要改成自己的圖片

2、有四個(gè)滑動(dòng)條,分別代表 GRBA 四個(gè)分量

3、拖動(dòng)滑動(dòng)條,圖像中對(duì)應(yīng)的顏色分量就會(huì)增加或者減少

4、如果圖像變成透明,就會(huì)顯示 canvas 元素的背景,我把這個(gè)背景設(shè)置成了我的頭像,呵呵。

思路:其實(shí)就是用 getImageData 方法,將你想改變的那一塊區(qū)域的像素?cái)?shù)組取出來,然后根據(jù)你拖動(dòng)的滑動(dòng)條和滑動(dòng)條的數(shù)值,來更改那一塊區(qū)域里所有像素對(duì)應(yīng)顏色分量的值。處理完畢后再用 putImageData 方法繪制到畫布上,就是這么簡(jiǎn)單。

下面是代碼:

簡(jiǎn)單的圖像處理

復(fù)制代碼
代碼如下:

<canvas id="test1" width="507" height="348" style="background-image:url(http://images.cnblogs.com/cnblogs_com/myqiao/262115/r_2204793492575248335.jpg)">你的瀏覽器不支持 &lt;canvas&gt;標(biāo)簽,請(qǐng)使用 Chrome 瀏覽器 或者 FireFox 瀏覽器</canvas>
紅色:<input type="range" min="1" max="100" onchange="colorChange(event,0)"/>
綠色:<input type="range" min="1" max="100" onchange="colorChange(event,1)"/>
藍(lán)色:<input type="range" min="1" max="100" onchange="colorChange(event,2)"/>
透明:<input type="range" min="1" max="100" onchange="colorChange(event,3)"/>
<script type="text/javascript">
//獲取上下文對(duì)象
var canvas = document.getElementById("test1");
var ctx = canvas.getContext("2d");
//畫布的寬度和長(zhǎng)度
var width = parseInt(canvas.getAttribute("width"));
var height = parseInt(canvas.getAttribute("height"));
//裝入圖像
var image = new Image();
image.onload =imageLoaded;
//頂部背景圖片
image.src = "/skins/Valentine/images/banner2.gif";
//用來保存像素?cái)?shù)組的變量
var imageData=null;
function imageLoaded() {
// 將圖片畫到畫布上
ctx.drawImage(image, 0, 0);
//取圖像的像素?cái)?shù)組
imageData = ctx.getImageData(0, 0, width, height);
}
function colorChange(event,offset){
imageLoaded();
for (var y = 0; y < imageData.height; y++) {
for (x = 0;x < imageData.width; x++) {
//index 為當(dāng)前要處理的像素編號(hào)
var index = y * imageData.width + x;
//一個(gè)像素占四個(gè)字節(jié),即 p 為當(dāng)前指針的位置
var p = index * 4;
//改變當(dāng)前像素 offset 顏色分量的數(shù)值,offset 取值為0-3
var color = imageData.data[p + offset] * event.target.value / 50;
// 顏色值限定在[0..255]
color = Math.min(255, color);
//將改變后的顏色值存回?cái)?shù)組
imageData.data[p + offset]=color
}
}
//輸出到屏幕
ctx.putImageData(imageData, 0, 0);
}
</script>

演示效果:

提示:您可以先修改部分代碼再運(yùn)行
 

四、繪制隨機(jī)顏色的點(diǎn)

這個(gè)例子是在畫布上隨機(jī)選擇一個(gè)點(diǎn),然后再給他一個(gè)隨機(jī)的顏色值,其實(shí)用到的方法和上面的例子大同小異,就是需求不同罷了。

下面是代碼和程序?qū)嵗?br />隨機(jī)顏色的點(diǎn)

復(fù)制代碼
代碼如下:

<canvas id="test2" width="300" height="300" style=" background-color: black">你的瀏覽器不支持 &lt;canvas&gt;標(biāo)簽,請(qǐng)使用 Chrome 瀏覽器 或者 FireFox 瀏覽器</canvas>
<input type="button" value="畫隨機(jī)點(diǎn)" onclick="interval=setInterval(randomPixel,1);" />
<input type="button" value="停止" onclick="clearInterval(interval);"/>
<input type="button" value="清除" onclick="clearCanvas();"/>
<script type="text/javascript">
//獲取上下文對(duì)象
var canvas = document.getElementById("test2");
var ctx = canvas.getContext("2d");
//畫布的寬度和長(zhǎng)度
var width = parseInt(canvas.getAttribute("width"));
var height = parseInt(canvas.getAttribute("height"));
var imageData = ctx.createImageData(width, height);
function randomPixel(){
var x= parseInt(Math.random()*width);
var y= parseInt(Math.random()*height);
var index = y * width + x;
var p = index * 4;
imageData.data[p + 0] = parseInt(Math.random() * 256);
imageData.data[p + 1] = parseInt(Math.random() * 256);
imageData.data[p + 2] = parseInt(Math.random() * 256);
imageData.data[p + 3] =parseInt(Math.random() * 256);
ctx.putImageData(imageData,0,0);
}
function clearCanvas(){
ctx.clearRect(0,0,width,height);
imageData = ctx.createImageData(width, height);
}
</script>

演示效果:

提示:您可以先修改部分代碼再運(yùn)行

標(biāo)簽:阿克蘇 常德 廣西 鄂爾多斯 蚌埠 果洛 松原 廣東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5邊玩邊學(xué)(3)像素和顏色》,本文關(guān)鍵詞  HTML5,邊玩,邊學(xué),像,素和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTML5邊玩邊學(xué)(3)像素和顏色》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于HTML5邊玩邊學(xué)(3)像素和顏色的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一区二区三区中文字幕精品精品 | 国产经典欧美精品| 欧美一区二区精品| 视频一区二区三区在线| 欧美一区二区三区视频| 麻豆国产精品官网| 久久综合九色综合97婷婷女人 | 五月激情综合色| 欧美精品一卡两卡| 日本不卡中文字幕| 久久久久久久久久久黄色| 成人一区二区三区中文字幕| 中文字幕一区二区在线观看| 色综合色狠狠综合色| 亚洲国产精品久久不卡毛片 | 在线不卡a资源高清| 久久99精品久久久久| 久久久国际精品| 91视视频在线观看入口直接观看www | 久久一留热品黄| av一二三不卡影片| 亚洲h动漫在线| 久久亚洲春色中文字幕久久久| 丰满放荡岳乱妇91ww| 亚洲午夜免费视频| 精品国产伦一区二区三区观看体验 | 白白色 亚洲乱淫| 亚洲国产日韩精品| 精品99一区二区| 色94色欧美sute亚洲线路一久 | 三级影片在线观看欧美日韩一区二区| 欧美videossexotv100| 99re热这里只有精品视频| 日韩精品成人一区二区在线| 国产亚洲1区2区3区| 欧美日韩国产区一| 国产成人免费高清| 婷婷久久综合九色综合绿巨人 | 欧美日韩在线播放一区| 国产精品中文字幕日韩精品| 亚洲精品免费在线| 国产亚洲欧美一区在线观看| 欧美人妇做爰xxxⅹ性高电影| 国产大陆亚洲精品国产| 日本在线不卡一区| 一区二区三区鲁丝不卡| 亚洲国产精品t66y| 精品日韩欧美一区二区| 欧美中文字幕亚洲一区二区va在线 | 国产成人一级电影| 蜜桃一区二区三区在线| 一区二区三区国产精品| 中文一区在线播放| 26uuuu精品一区二区| 91麻豆精品国产91久久久久久| 99精品视频在线观看免费| 国产999精品久久久久久绿帽| 全国精品久久少妇| 偷窥少妇高潮呻吟av久久免费| 国产精品久久久久久久久免费丝袜 | 免费在线成人网| 一区二区在线观看视频| 中文字幕一区二区三区不卡在线| 精品国产精品网麻豆系列| 欧美精品电影在线播放| 欧美亚洲动漫另类| 91在线视频18| av一本久道久久综合久久鬼色| 国产成人午夜精品5599| 国产精品羞羞答答xxdd| 九九国产精品视频| 麻豆国产欧美日韩综合精品二区| 日韩av成人高清| 麻豆极品一区二区三区| 韩国在线一区二区| 久久99精品久久只有精品| 国产中文一区二区三区| 国产一区不卡在线| 久久99精品一区二区三区| 国产一区福利在线| 国产精品白丝jk白祙喷水网站 | 99国产欧美久久久精品| 99精品黄色片免费大全| 色欧美乱欧美15图片| 在线观看国产91| 在线电影欧美成精品| 欧美变态凌虐bdsm| 欧美经典一区二区三区| 中文字幕日韩av资源站| 一区二区在线观看免费视频播放 | 亚洲精品网站在线观看| 一区二区理论电影在线观看| 亚洲午夜久久久久久久久久久| 午夜精品视频在线观看| 久久精品国产**网站演员| 韩国精品主播一区二区在线观看 | 日本一区二区三区高清不卡| 亚洲欧美在线视频观看| 亚洲亚洲人成综合网络| 免费欧美日韩国产三级电影| 韩国一区二区在线观看| 99精品偷自拍| 欧美一区二区视频网站| 中文字幕av一区二区三区| 亚洲激情图片一区| 蓝色福利精品导航| 成人在线视频一区二区| 日本高清免费不卡视频| 欧美一区三区二区| 国产精品天美传媒| 午夜欧美大尺度福利影院在线看| 老司机午夜精品| 色综合久久久网| 2020国产精品自拍| 亚洲精品成人精品456| 免费欧美日韩国产三级电影| 成人免费不卡视频| 欧美一区二区黄| 国产精品乱码一区二区三区软件| 亚洲成精国产精品女| 国产ts人妖一区二区| 欧美区一区二区三区| 欧美国产精品一区二区| 日日欢夜夜爽一区| av一本久道久久综合久久鬼色| 日韩视频永久免费| 亚洲欧美日韩中文播放| 国产精品夜夜嗨| 91精品国产综合久久久久久久久久| 国产精品三级av| 日本少妇一区二区| 欧美午夜精品久久久久久孕妇| 国产人成亚洲第一网站在线播放 | 69堂亚洲精品首页| 国产精品久久久久久久午夜片| 捆绑调教美女网站视频一区| 在线日韩av片| 亚洲天堂2016| 国产mv日韩mv欧美| 久久亚洲捆绑美女| 日本美女一区二区| 欧美午夜免费电影| 亚洲黄一区二区三区| 成人理论电影网| 亚洲精品一区二区三区蜜桃下载| 天使萌一区二区三区免费观看| 91精品福利视频| 专区另类欧美日韩| 成人免费视频caoporn| 久久精品欧美日韩| 欧美一区二区三区色| 亚洲综合精品自拍| 91久久一区二区| 亚洲丝袜另类动漫二区| 国产成人av自拍| 久久久综合网站| 国产一区二区在线视频| 日韩一区二区三区精品视频| 亚洲va欧美va天堂v国产综合| 色久优优欧美色久优优| 亚洲乱码中文字幕| 91小宝寻花一区二区三区| 国产精品乱码一区二三区小蝌蚪| 高清成人免费视频| 国产欧美中文在线| 成人国产电影网| 综合色天天鬼久久鬼色| 色天天综合色天天久久| 亚洲第一激情av| 欧美挠脚心视频网站| 日日摸夜夜添夜夜添亚洲女人| 91精品国产综合久久精品图片| 日韩精品一二三区| 精品国产乱码久久久久久牛牛| 蜜桃av噜噜一区二区三区小说| 日韩欧美一二区| 国产一区不卡在线| 国产精品盗摄一区二区三区| 99re这里都是精品| 亚洲成av人片| www久久精品| 国产精品久久久久永久免费观看 | 一区二区在线看| 欧美电影在线免费观看| 免费久久99精品国产| 精品盗摄一区二区三区| 国产成人免费视| 亚洲综合色网站| 欧美一区二区免费观在线| 国产精品影视在线观看| 亚洲欧美综合在线精品| 欧美日韩国产综合一区二区三区| 麻豆国产精品官网| 国产精品久线在线观看| 欧美色图12p| 国产成人精品免费视频网站| 一区二区三区中文字幕精品精品 | 激情丁香综合五月| 亚洲视频在线观看一区| 欧美一区二区三区思思人|