javascript - 有没有办法在 Canvas 路径上平铺背景图像?

标签 javascript dom drawing canvas excanvas

例如,我在页面中有一个带有某种路径的 Canvas 。它是由 javascript 以这种方式创建的:

var context = $('#some_canvas').getContext('2d');
context.beginPath();
context.lineWidth = 5;
context.strokeStyle = '#000000';
context.moveTo(0, 0);
context.lineTo(100, 100);
context.stroke();

有没有办法让这个命令后出现的路径有一些平铺的背景图像?

最佳答案

我相信您正在寻找 createPattern()方法:

var pattern = new Image;
pattern.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAARCAIAAABbzbuTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZtJREFUeNqMUs+rAVEUvjNG2MhClOUsppSEjbWFpOwtMIv5B2ZhZqkkZKkpe+XPYKtsbSxsZIGaQpgi4r3Pu5p3eV45dW/nnPt959zzg5RKpU6n8/WxkHq9LghCs9n8lICjKAohpFwuf0LgcCzLSqfTo9FIVVVd10He7XbX6/V8Pu/3e47jcB+Px0AgkEqlCOXNZjNJkgB1/wg+6XA4ACXPomkasXM1Gg3yj4AZi8WAHgwGgu1dLpcvOKRKJBLZbDaTyYDgdDrvXjtDLpd7yT6dTv8WzdNnaPP53A6Mezgc+v3+N/+jvO12GwwGqQfFYJRQksnker1+MwfIZDLxeDwA+Xy+xWIBT6VSgYk+Hg4HlvAoerVaodNQ8vl8KBSCUqvVAG2326g4EolsNhuYGNQjQ6/XAwh9GI/HbDxZltn/o2OPDBgctaPRKIsQRZEqWJxisXg3aaRCoQBvv99nw59Op3A4DH+1Wu12u09FYwh4w/6wBGwUOhuPx6FfLpfb7fZbtGEYpmnyPM/+x+v1tlotl8sFHdtFnd8CDACAg6Y2weEZQQAAAABJRU5ErkJggg==";
pattern.onload = function () {
    var context = $('#some_canvas').getContext('2d');
    context.beginPath();
    context.lineWidth = 16;
    context.strokeStyle = context.createPattern(pattern, 'repeat');
    context.moveTo(0, 0);
    context.lineTo(150, 150);
    context.stroke();
};

关于javascript - 有没有办法在 Canvas 路径上平铺背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1031909/

相关文章:

php - 阻止非 JavaScript 用户的访问

javascript - TestCafe 未在 headless 和 UI 模式下在 ubuntu 中运行

javascript - 隐藏在可滚动表格标题中的下拉值 - Primeng

javascript - 指针事件 : Detect touching "through" an element

javascript - 向前和向后浏览时 AJAX 事件消失

ios - 在 iOS 上组合相交的 CGPath

javascript - React - 如何强制重新加载类组件?

JavaScript 引起的样式更改不是永久性的

android - 如何在android中的图像上的两点之间画线?

flutter - 添加 appBar 时绘图线偏移 - Flu