Canvas
復(fù)習(xí):
獲取繪圖上下文
var gd = oC.getContext('2d');
設(shè)置起點(diǎn)
gd.moveTo()
設(shè)置終點(diǎn)
gd.lineTo()
描邊
gd.stroke()
填充
gd.fill()
描邊顏色
gd.strokeStyle
填充顏色
gd.fillStyle
重新開始路徑
gd.beginPath()
清屏
gd.clearRect()
閉合路徑
gd.closePath()
矩形
a).
gd.rect()
gd.stroke()/fill()
b).
gd.fillRect()/strokeRect()
弧形
gd.arc(cx,cy,r,s,e,b)
cx,cy 圓心位置
r 半徑
s 開始弧度
e 結(jié)束弧度
b 是否逆時針
文字
gd.font = '字體大小 字體類型';
水平對齊方式
gd.textAlign center
基線對齊方式
gd.textBaseline middel
gd.fillText(str,x,y);
gd.strokeText(str,x,y);
線性漸變
var lg = gd.createLinearGradient(x1,y1,x2,y2);
lg.addColorStop(系數(shù)(0-1),color);
徑向漸變
var rg = gd.createRadialGradient(cx1,cy1,r1,cx2,cy2,r2);
rg.addColorStop(系數(shù)(0-1),color);
獲取canvas圖片
oC.toDataURL(Mime-Type)
image/png 默認(rèn)
image/jpeg
base64 文件流
直接可以放在src或者background里
Mime-Type
abc.html text/html
abc.jpg image/jpg
abc.png image/png
abc.avi video/avi
abc.mp3 audio/mp3
????canvas添加事件
????????給canvas添加事件
????????判斷范圍
????gd.isPointInPath(x,y);
jcanvas???????? javascript canvas的庫
????http://jcscript.com/
變形
????旋轉(zhuǎn)
????????gd.rotate
(弧度);
????平移
????????gd.translate(x,y);
????縮放
????????gd.scale(x,y);
????注意:
????????canvas的變形圓心永遠(yuǎn)都是畫布的左上角
????????操作的并不是圖形珠增,而是畫布
????????圖形一旦畫上去,就不變了
保存 gd.save();
變形操作
畫圖
還原 gd.restore();
????引入圖片背景
var cp = gd.createPattern(oImg,'平鋪方式')
repeat
repeat-x
repeat-y
no-repeat
????引入圖片
gd.drawImage(
oImg,
dx,dy
);
gd.drawImage(
oImg,
dx,dy,dw,dh
);
gd.drawImage(
oImg,
sx,sy,sw,sh,
dx,dy,dw,dh
);
????像素級操作
var result = gd.getImageData(x,y,w,h);
var d = result.data;
d所有像素點(diǎn)
四個為一組
r,g,b,a,r,g,b,a,r,g,b,a...
操作
gd.putImageData(result,0,0);
讀取文件
ondrop = function(ev){
var oFile = ev.dataTransfer.files[0];
oFile.name; 名字
oFile.size; 大小
oFile.type; 類型
var reader = new FileReader();
進(jìn)度
reader.onprogress = function(ev){
ev.loaded 已加載
ev.total 總數(shù)
var scale = ev.loaded/ev.total;
};
完成
reader.onload = function(ev){
ev.target.result 文件內(nèi)容
相等
reader.result 文件內(nèi)容
};
以文本形式讀取
reader.readAsText(oFile);
以Base64形式讀取
reader.readAsDataURL
};
sum(4)(5).sub(1) 最終返回結(jié)果8
function sum(a){
return function(b){
return {
sub:function(c){
return a+b-c;
}
};
};
}
function show(a,b){
arguments[0].push(5);
arguments[1] = 6;
alert(a.length,b); 4
}
var arr = [1,2,3,5];
var b = 3;
show(arr,b);
alert(arr); 1,2,3,5
alert(b); 3