【发布时间】:2014-11-30 02:12:09
【问题描述】:
我正在尝试在 FabricJS 中创建效果,其中我添加到画布中的某些文本的颜色由纹理决定。应该很容易,但是当我将纹理应用为图案时,我无法计算出使其工作所需的比例、旋转等组合。在我看来,图案被“局部”应用于对象,因此 (0,0) 是对象的左上角坐标,而不是整个图像的坐标。
所以如果这是我的文本颜色纹理,
我在中间放了一些文字,我想要的效果是这样的:
我已经尝试过使用静态画布等各种方法,但我遇到了死胡同。请问有人可以帮忙吗?这是我目前的尝试:
var patternSourceCanvas = new fabric.StaticCanvas();
oImg.setAngle(-angles[i]);
patternSourceCanvas.add(oImg);
var pattern = new fabric.Pattern({
source: function() {
patternSourceCanvas.setDimensions({
width: oImg.getWidth(),
height: oImg.getHeight()
});
return patternSourceCanvas.getElement();
},
repeat: 'no-repeat'
});
var text = new fabric.Text(entry, {
originX: 'center',
originY: 'center',
left: (coords[i][0] * bufWidth),
top: (coords[i][1] * bufHeight),
fill: pattern,
centeredRotation: true,
angle: angles[i],
fontFamily: 'Kapra',
fontSize: 42
});
提前非常感谢!
【问题讨论】:
标签: javascript canvas fabricjs