【发布时间】:2018-03-15 17:56:10
【问题描述】:
如果我有一个 500x500 的图像作为文件,我们将其命名为 sample.jpg,然后我将一个图像对象添加到一个 1000x1000 的画布上,在 sample.jpg 中加载该图像不会拉伸或重复以适应1000x1000 但它位于图像对象的左上角 500x500 处。
有没有办法强制源图像拉伸到画布上的图像对象以填充整个区域?不要真正关心图像比例的失真,只希望它适合整个更大的区域。要么拉伸它,或者有没有办法重复图像直到它适合整个容器? - 我可能在他们的文件中遗漏了一些东西。
我的意思的示例,深蓝色是 1000x1000 容器(结构 js 图像对象),红色是 500x500 JPG,我想将其拉伸或重复到整个蓝色区域:
var image = fabric.Image.fromURL('<?php echo $object->url; ?>', function(oImg) {
oImg.set({
top:parseInt('<?php echo $object->top; ?>'),
left:parseInt('<?php echo $object->left; ?>'),
width:parseInt('<?php echo $object->width; ?>'),
height:parseInt('<?php echo $object->height; ?>'),
});
designerCanvas.add(oImg);
designerCanvas.renderAll();
});
【问题讨论】:
-
添加蓝色图像后,应调整源图像(红色图像)的大小以适合蓝色图像的大小。这真的是你想要达到的吗?请分享您如何将图像添加到画布的代码。
-
添加了我从 url 加载图像的代码。你可以看到我设置了我需要的对象的宽度和高度,但是因为图像本身小于对象边界的大小,但图像没有填充它。所以这里的蓝色是对象容器,红色是我需要拉伸以适应蓝色的 JPG。到目前为止,我唯一的解决方案是使 JPG 大于对象容器,以便完全适合。
标签: javascript fabricjs