- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先是 live code
我想使用 Canvas 用图像填充正方形的样式。
我创建了 2 个矩形:
问题:如何将图像作为图案应用到旋转和平移的粉红色正方形上?
使用这个JS:
$(document).ready(function(){
var c = $('#myCanvas')[0],
ctx = c.getContext('2d');
//starting square.
ctx.translate(100,0);
ctx.fillRect(100, 100, 100, 100);
var gradient = ctx.createLinearGradient(0, 0, 0, c.width);
gradient.addColorStop(0, "rgb(255, 255, 255)");
gradient.addColorStop(1, "rgb(0, 0, 0)");
ctx.save();
//next square
ctx.translate(100,100);
ctx.scale(2,2);
ctx.rotate(Math.PI/4);
var image = new Image();
ctx.fillStyle = 'rgba(200,10,10,.5)';
//the image isnt being applied as a pattern to the sq?
image.src = 'http://lorempixel.com/400/200/';
$(image).load(function(){
var pattern = ctx.createPattern(image, 'repeat');
ctx.fillStyle = pattern;
});
ctx.fillRect(0,0,100,100);
ctx.restore();
});
最佳答案
您尝试在加载图像之前绘制图像。脚本工作流程如下:
image.src = 'http://lorempixel.com/400/200/';
然后
ctx.fillRect(0,0,100,100);
ctx.restore();
然后,当图像加载完成时
var pattern = ctx.createPattern(image, 'repeat');
ctx.fillStyle = pattern;
查看您的 CodePen updated
关于javascript - createPattern 不适用于 Canvas 矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549998/
我在变量“pattern”上收到 TypeError,并且我的脚本不会执行超过标记的断点。我正在使用 JCanvas 和 JQuery,并且所有依赖项都已就位。错误原因是什么。使用了类似的实现 her
我正在尝试绘制一个使用 fillStyle 模式的填充矩形。下面的代码允许绘制一个矩形,但之后,所有后续操作都将放弃绘制。 这是控制填充的代码: var img = new Image(); img.
我有一个简单的函数,旨在使使用 HTML 中的 canvas 标签更轻松地创建模式。我在网站上有一张嵌入此代码的图像: .invisible { di
首先是 live code 我想使用 Canvas 用图像填充正方形的样式。 我创建了 2 个矩形: 问题:如何将图像作为图案应用到旋转和平移的粉红色正方形上? 使用这个JS: $(document)
我有这样的代码: var windowToCanvas = function(canvas, x, y) { var bbox = canvas.getBoundingClien
我使用 PNG 作为 HTML5 Canvas 中充当音频可视化工具的一系列矩形的背景图案,但是,我的代码收到了未捕获的类型错误: HTML: JS: canvas = document.getEl
我正在尝试获取重复的 Canvas 图案。可悲的是,我能找到的所有例子都重复了一张图片。所以我尝试了这个: function init() { var canvas = document.getEle
我使用 Canvas 绘制简单的矩形并用地板图案 (PNG) 填充它们。但是,如果我利用“相机”脚本来处理 HTML5 Canvas 的变换偏移,则矩形形状会适当移动,但填充图案似乎总是从屏幕上的固定
我想在 Canvas(HTML5) 上显示图像,以便稍后能够拖放它。这就是我开始的方式,我使用的是在 Canvas 上绘制的圆形形状,然后我希望其背景纹理是此粘贴代码外部定义的图像。现在我知道纹理/图
我似乎找不到关于如何执行此操作的任何可靠信息,所以我想知道是否有人可以为我指明正确的方向。 我有一个很大的 sprite 表,我们称它为 textures.png。每个纹理都是 64x64 像素,我需
我使用 SVG 图像作为 HTML5 canvas 元素的背景图案,语法如下: var img = new Image(); img.onload = function() { var pat
我遇到一个问题,我传递给 createPattern 的任何图像都会放大超过 2 倍。我尝试使用: contextInQuesiton.scale(1,1) 但是图像最初仍然按照我的明确指示进行放大。
我见过一些关于如何调整图像大小的技巧在 IMG 标签中使用,但我想在里面有一个图像变量一个Javascript,调整它的大小,然后使用里面的图像context.createPattern(图像,“重复
在查找如何将重复的图像背景绘制到 上时(是的,我是 的新手),我看到有两种方法可以做到这一点: 使用drawImage()在for循环以在 中手动重复图像 使用 context.createPa
我从 (https://w.soundcloud.com/player/widget-6c3640e3.js & https://w.soundcloud.com/player/multi-sound
我是一名优秀的程序员,十分优秀!