Fabricjs在裁剪后将裁剪对象设置为画布的背景
fabricjs set clipped object as background to canvas after clipping
在我的fabricjs中,我正在制作画布并向其添加图像并将图像设置为背景。然后我将腔体裁剪成一定的宽度和高度。
在我剪辑画布之后,我想要一个新的画布或相同的画布,剪切区域作为背景,所有覆盖画布的宽度和高度,或者可以创建一个新的画布,剪切区域的高度和宽度
当前我正在做这个…
function crop(url, name, left, top, width, height, callback) {
var c = document.createElement('canvas')
var id = "canvas_" + name
c.id = id
var canvas = new fabric.Canvas(id)
fabric.Image.fromURL(url, function(oImg) {
oImg.set({
selectable:false,
})
canvas.setDimensions({width:oImg.width, height:oImg.height})
canvas.add(oImg)
canvas.clipTo = function (ctx) {
ctx.rect(left, top, width, height)
console.log(ctx)
};
canvas.centerObject(oImg)
canvas.renderAll()
var img = canvas.toDataURL('image/png')
console.log(img)
callback(img)
}, {crossOrigin: "Anonymous"})
}
在这里,我可以很容易地夹画布与我给定的左,顶,宽度和高度,但我得到相同的画布与剪切剪切部分和删除部分与另一种颜色。但是在剪辑之后,我想要剪辑的部分画在画布上或设置剪辑部分作为背景。
我该怎么做??
实际上您裁剪了画布的呈现。
要保存裁剪的区域,你必须使用Canvas.toDataURL()方法,正如你可以看到的,top, left, width, height
的参数与ctx.rect(left, top, width, height)
的参数相同,它将返回一个字符串,表示裁剪的区域(base64编码)。
然后使用canvas . setbackgrounsimage
将此字符串作为画布的新背景图像你的代码应该是这样的:function crop(url, name, left, top, width, height, callback) {
var c = document.createElement('canvas')
var id = "canvas_" + name
c.id = id
var canvas = new fabric.Canvas(id)
fabric.Image.fromURL(url, function(oImg) {
oImg.set({
selectable:false,
})
canvas.setDimensions({width:oImg.width, height:oImg.height})
canvas.add(oImg)
canvas.centerObject(oImg)
canvas.renderAll()
var img = canvas.toDataURL({
format: 'image/png',
left: left,
right: right,
width: width,
height: height
})
console.log(img)
canvas.setBackgroundImage(img)
callback(img)
}, {crossOrigin: "Anonymous"})
}
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 可以在这里为背景图像设置滤镜吗
- 如何使用jquery更改html中的背景颜色
- 使用 js 将背景图像设置为 HTML
- 使用带括号的图像URL作为jQuery的背景
- 如何使用css动画/javascript使具有背景图像的元素出现
- 循环浏览多个身体背景图像
- 将淡入淡出添加到“我的身体背景滑块”
- 浮动图像左作为背景-css
- Fullpage.js-视频+背景在同一部分
- 背景图像顶部的滚动图像不移动
- 在pdfmake中嵌入背景图像
- PhoneGap选项卡栏自定义字体,背景图案
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 不同页面背景的body标记上的角度ng样式
- 如何在不调整大小或裁剪的情况下制作整页背景图像
- Fabricjs在裁剪后将裁剪对象设置为画布的背景
- 是否有可能使用css裁剪图像并将其显示为css背景
- 如何确定边框的背景是否在裁剪区域内?
- 背景图像裁剪小尺寸