在我的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"})
}
在这里,我可以轻松地剪辑画布与我给定的左,顶,宽度和高度,但我得到了相同的画布与剪辑部分和删除部分与另一种颜色。但在剪辑后,我希望剪辑的部分画在画布上或设置剪辑的部分作为背景。
我该怎么做??
实际上,您裁剪了画布的渲染。
要保存裁剪区域,必须使用画布。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"})
}
我试图在从图库中选择图像后使用intent来裁剪图像。以下是我的代码片段 在这里,我使用PICK_IMAGE_REQUEST意图句柄调用上面的代码段 由于我在裁剪后使用了相同的意图,即PICK_IMAGE_REQUEST,可能会出现什么问题
默认情况下,背景颜色的显示范围为 border-box 区域,不重复的背景图像的显示范围为 padding-box 区域,而重复的背景图像的显示范围为 border-box 区域。然而,有时候却希望控制背景的显示范围。 这时,就可以通过 background-clip属性用来定义元素背景的裁剪区域,即背景的显示范围,可选值有 border-box | padding-box | content-b
问题内容: 我有这个HTML: 使用此CSS: 我正在应用的背景图像是200x100像素,但我只想显示200x50像素的背景图像的裁剪部分。 似乎不是正确的CSS属性。我该怎么用呢? 不应使用,因为我在Sprite上下文中使用了上述CSS,在该Sprite上下文中,我要显示的图像部分小于定义CSS的元素。 问题答案: 您可以将图形放置在具有其自身尺寸上下文的伪元素中: 浏览器支持很好,但是如果需要
本文向大家介绍html5-canvas 使用画布裁剪图像,包括了html5-canvas 使用画布裁剪图像的使用技巧和注意事项,需要的朋友参考一下 示例 本示例显示了一个简单的图像裁剪功能,该功能获取图像和裁剪坐标并返回裁剪后的图像。 使用
问题内容: 我正在尝试裁剪图像,然后将裁剪后的图像粘贴到另一个图像的中心。理想情况下,我希望裁切后的图像小于粘贴的图像,以便在粘贴的图像周围有一个边框,但我不知道这样是否可行。 这是我尝试过的方法(以及由此产生的错误消息): 我可以看到“区域”的大小已设为(0,0),但我不明白为什么。 任何对此的帮助将非常感谢 问题答案: 裁剪方法的PIL文档指出: 返回当前图像的矩形区域。该框是一个四元组,定义
裁剪节点 成员变量 变量 类型 名称 备注 clipRegion number 裁剪区域 无 enableClip boolean 是否开启裁剪 默认true 方法 构造函数 new BK.ClipRectNode(x,y,w,h) 参数 类型 名称 备注 x number 裁剪区域x坐标 y number 裁剪区域y坐标 width number 裁剪区域宽 height number 裁剪区域