1. 程式人生 > >Canvas大小改變後進行影象重繪

Canvas大小改變後進行影象重繪

        Canvas的大小如果改變了,會把所有影象進行清除,但是實際應用中經常會出現需要改變Canvas大小的需求,尤其是安卓裝置上,如果頁面的輸入法打開了再關閉就會引起Canvas的大小改變。現在尋找到了在大小改變之前進行儲存影象,改變後再重繪影象的辦法,順便將Canvas的大小設定進行記錄。

        Canvas的大小設定不能採用CSS的style進行設定,CSS的方式只是對Canvas進行縮放,影象會隨之變大或變小,但是採用Canvas提供的方式改變其大小則圖片不會隨之縮放,即直接設定畫布的width和height屬性。

function canvasOnResize(height, width)
{
	ctx = context; 
	var imageData = cxt.getImageData(0,0,canvas.width,canvas.height);// 儲存當前影象
<pre name="code" class="javascript"><span style="white-space:pre">	</span>canvas.height = height;
<span style="white-space:pre">	</span>canvas.width = width;
<pre name="code" class="javascript"><span style="white-space:pre">	</span>cxt.putImageData(imageData,0,0); //重繪大小改變前儲存的影象
}