1. 程式人生 > >canvas系類-載入/裁剪圖片一

canvas系類-載入/裁剪圖片一

一.知識點:


二.操作

1.獲取圖片的方式

①建立一個新的 HTMLImageElement 物件。要實現這個方法,我們可以使用很方便的Image()建構函式。
var img = new Image();   // 建立一個<img>元素
    img.src = 'myImage.png'; // 設定圖片源地址
使用這個方法的時候,要等載入完畢後才可以使用這個圖片,所以要用
img.onload = function(){
  // 執行drawImage語句
}
②用 document.getElementsByTagName 
或 document.getElementById 方法來獲取圖片,
var img= document.getElementById("img");
ctx.drawImage(img,0,0,150,150,45,45,150,150);
③data:url載入
其優點就是圖片內容即時可用,無須再到伺服器兜一圈。(還有一個優點是,可以將 CSS,JavaScript,HTML 和 圖片全部封裝在一起,遷移起來十分方便。)缺點就是影象沒法快取,圖片大的話內嵌的 url 資料會相當的長:
img.src = 'data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA'

2.編輯程式碼

2.1獲取canvas上下文,建立二維環境

var canvas=document.getElementById('canvas1');

var context=canvas.getContext('2d');

2圖片處理

2.2圖片載入

var img=new Image();
img.src="uploads/1.jpg";
img.onload=function (){
context.drawImage(img,10,10);

}


2.3.設定圖片大小
var img=new Image();
img.src="uploads/1.jpg";
img.onload=function (){
context.drawImage(img,10,10,150,150);

}
 
4. 剪下影象,並在畫布上定位被剪下的部分
var img=new Image();
img.src="uploads/1.jpg";
img.onload=function (){
context.drawImage(img,10,10);
context.drawImage(img,50,50,50,50,320,100,150,100);
//(圖片,開始剪下x(可選),開始剪下y(可選),被剪下圖形的寬(可選),,被剪下圖形的高(可選),放置圖片的位置x,放置圖片的位置y,圖片的寬,圖片的高)

}


5.指定的方向內重複指定的元素
var img=new Image();
img.src="uploads/2.jpg";
img.onload=function (){
var ptn=context.createPattern(img,"repeat");


context.fillStyle=ptn;
context.fillRect(0,0,500,500);
}