- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我似乎找不到关于如何执行此操作的任何可靠信息,所以我想知道是否有人可以为我指明正确的方向。
我有一个很大的 sprite 表,我们称它为 textures.png。每个纹理都是 64x64 像素,我需要能够从这些纹理中创建图案。
createPattern() 是一个很棒的函数,但它似乎只有两个参数,图像源和是否重复。如果您为每个纹理加载单个图像,这很好,但我想知道如何使用 textures.png 执行此操作。
我找到了这个答案 https://gamedev.stackexchange.com/questions/38451/repeat-a-part-of-spritesheet-as-background但我不确定接受的答案指的是 generatePattern() 方法,据我所知,这甚至不是 Canvas 方法。
提前致谢!
最佳答案
好的,我已经找到了解决方案。基本上,createPattern() 可以将图像或 Canvas 元素作为其第一个参数。因此,您需要执行以下操作:
var pattern_canvas = document.createElement('canvas');
pattern_canvas.width = texture_width;
pattern_canvas.height = texture_height;
var pattern_context = pattern_canvas.getContext('2d');
pattern_context.drawImage(img , texture_sx , texture_sy , texture_width , texture_height);
var final_pattern = canvas_context.createPattern(pattern_canvas , "repeat");
canvas_context.fillStyle = final_pattern;
canvas_context.fillRect( 0 , 0 , canvas.width , canvas.height );
如果您这样做,那么您的 Canvas 元素将重复绘制 pattern_canvas 以覆盖其尺寸。
关于html - 使用带有 createPattern() 的 Sprite 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21084169/
我在变量“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
我是一名优秀的程序员,十分优秀!