2 个回答

new Image()的时候,本身可以指定宽高(基于css像素的值)。

参考:
1. MDN - Image


思路:
用离屏Canvas,设置好宽高后绘制图片进去,然后作为.createPattern()的渲染对象。

示例代码:

<canvas id="canvas" width="400" height="200" class="playable-canvas"></canvas>
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

var into = document.createElement("canvas");
var ctx2 = into.getContext('2d');
into.width = 50;
into.height = 50;

var img = new Image();
img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png';
img.onload = function() {
    ctx2.drawImage(img,0,0,50,50);
    var pattern = ctx.createPattern(into, 'repeat');
    ctx.fillStyle = pattern;
    ctx.fillRect(0, 0, 400, 400);
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题