canvas要點

注意:

       1.不要用CSS控制它的寬和高,會走出圖片拉伸

        2.重新設置canvas標籤的寬高屬性會讓畫布擦除所有的內容

        3.可以給canvas畫布設置背景色

瀏覽器不兼容處理

       1.ie9以上才支持canvas,其他chromeff、蘋果瀏覽器等都支持

       2.只要瀏覽器兼容canvas,那麼就會支持絕大部分api(個別最新api除外)

       3.移動端的兼容情況非常理想,基本上隨便使用

       4.2d的支持的都非常好,3dwebglie11才支持,其他都支持

       5.瀏覽器不兼容,可以使用flash等手段進行降級。

  Canvas自身無法繪製任何內容。Canvas的繪圖是使用JavaScript操作的Context對象就是JavaScript操作Canvas的接口使用[CanvasElement].getContext(‘2d’)來獲取2D繪圖上下文。


基本的繪製路徑

canvas座標系,從最左上角0,0開始。x向右增大, y向下增大

設置繪製起點(moveTo)

    語法:ctx.moveTo(x, y);

   解釋:設置上下文繪製路徑的起點。相當於移動畫筆到某個位置

  參數:x,y 都是相對於 canvas盒子的最左上角

  注意:繪製線段前必須先設置起點,不然繪製無效。

繪製直線:

 語法:ctx.lineTo(x, y);

 解釋:從x,y的位置繪製一條直線到起點或者上一個線頭點

 參數:x,y 線頭點座標。

路徑開始和閉合

 開始路徑:ctx.beginPath();

 閉合路徑:ctx.closePath();

 解釋:如果複雜路徑繪製,必須使用路徑開始和結束。閉合路徑會自動把最後的線頭和開始的線頭連在一起; 

  beginPath: 核心的作用是將不同繪製的形狀進行隔離,
    *ctx.fillText()      在畫布上繪製被填充的文本
    * ctx.strokeText()    在畫布上繪製文本(無填充)
    * ctx.measureText()   返回包含指定文本寬度的對象
    * 單詞:measure 測量;估量;權衡    
    ctx.moveTo( 300, 300 );
    ctx.fillStyle = "purple";  //設置填充顏色爲紫色
    ctx.font = '20px "微軟雅黑"';  //設置字體
    ctx.textBaseline = "bottom"; //設置字體底線對齊繪製基線
    ctx.textAlign = "left"; //設置字體對齊的方式
    //ctx.strokeText( "left", 450, 400 );
   ctx.fillText( "Top-g", 100, 300 ); //填充文字
繪製圖片(drawImage
基本繪製圖片的方式
                context.drawImage(img,x,y);
參數說明: x,y 繪製圖片左上角的座標, img是繪製圖片的dom對象。
在畫布上繪製圖像,並規定圖像的寬度和高度context.drawImage(img,x,y,width,height);
  如果指定寬高,最好成比例,不然圖片會被拉伸</em>
    等比公式:  toH = Height * toW   /  Width;  //等比
             設置高 = 原高度 * 設置寬/ 原寬度;

圖片裁剪,並在畫布上定位被剪切的部分context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height)
   參數說明:
    sx,sy 裁剪的左上角座標,
    swidth:裁剪圖片的高度。 sheight:裁剪的高度
   其他同上)

JavaScript創建img對象
第一種方式:
   var img = document.getElementById("imgId");
第二種方式:
    var img = new Image();//這個就是 img標籤的dom對象
    img.src = "imgs/arc.gif";
    img.alt = "文本信息";
    img.onload = function() {
        //圖片加載完成後,執行此方法
    }




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章