首頁 > web前端 > H5教程 > 主體

HTML5 canvas平舖的程式碼詳解

黄舟
發布: 2017-04-18 09:59:11
原創
2704 人瀏覽過

最近在做個網站項目,用到很多canvas,有個需求是drawImage把圖片畫在canvas裡面,圖片比較小,需要平鋪效果,當背景圖。 PS(背景圖高寬10px,需要畫的畫布高寬200px)

#由於一開始是drawImage出來的,所以採用了方法one

var canvas = document.getElementById("canvasId");
var ctx = canvas.getContext("2d");
var img = new Image();
//需要平铺的图片
img.src = "test1_bg.jpg";
img.onload = function (){
    var can = document.createElement("canvas");
    can.width = 10;
    can.height = 10;
    var ctx2 = can.getContext("2d");
    ctx2.drawImage(img,0,0,10,10,0,0,10,10);
    ctx.fillStyle = ctx.createPattern(can,"repeat");
    ctx.fillRect(0,0,200,200);
}
登入後複製

用到了背景圖的高寬度10,有點繁瑣,為什麼不一步到位呢?所以改成了這種方式

var canvas = document.getElementById("canvasId");
var ctx = canvas.getContext("2d");
var img = new Image();
//需要平铺的图片
img.src = "test1_bg.jpg";
img.onload = function (){
    var pat = ctx.createPattern(img,"repeat");
    ctx.rect(0,0,200,200);
    ctx.fillStyle = pat;
    ctx.fill();
}
登入後複製

 

GOOD!
再來重申下createPattern定義

createPattern() 方法在指定的方向內重複指定的元素。
元素可以是圖片、影片,或是其他 元素。
被重複的元素可用於繪製/填滿矩形、圓形或線條等等。

JavaScript 語法:

context.createPattern(image,"repeat|repeat-x|repeat-y|no-repeat");
登入後複製

  參數 描述



#repeat #預設。規定要使用的圖片、畫布或影片元素。
repeat-x 此模式只在水平方向重複。
repeat-y 此模式只在垂直方向重複。
no-repeat 此模式只顯示一次(不重複)。

以上是HTML5 canvas平舖的程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!