Fabric.js:在 canvas 中设置新图像,但 canvas 未更改
Fabric.js : Set new image in canvas but canvas not changing
我向 canvas 添加了多张图片,但我想更改单击按钮时添加的第一张图片。现在,canvas 没有更新。我不知道为什么(我在 nuxt js 中使用 fabric)。 例如: 首先将图像添加到 canvas in mounted 然后我单击“添加”按钮,第二个图像将添加到 canvas (addPattern 方法)。之后,我单击“更改”按钮 (changeImage) 方法,但显示的 canvas 未更新
我的代码
<template>
<div>
<canvas ref="can" width="500" height="500"></canvas>
<button @click="addPattern">add</button>
<button @click="changeImage">change</button>
</div>
</template>
<script>
let canvas = new fabric.Canvas('c')
mounted() {
const ref = this.$refs.can
canvas = new fabric.Canvas(ref)
fabric.Image.fromURL('https//www.test.com/test.png', function (productImage) {
productImage.set({
width: 500,
height: 500,
selectable: false,
name: 'product',
})
canvas.add(productImage)
})
},
method: {
addPattern() {
fabric.Image.fromURL(image, function (patternImage) {
patternImage.set({
selectable: true,
})
patternImage.scaleToHeight(120)
patternImage.scaleToWidth(120)
canvas.add(patternImage)
})
}
changeImage() {
canvas.item(0).set({
src: "https//www.test.com/test2.png",
width: 500,
height: 500,
selectable: false,
name: 'product',
})
canvas.renderAll()
}
}
</script>
要更改src
属性,您需要使用setSrc
方法。
http://fabricjs.com/docs/fabric.Image.html#setSrc
canvas.item(0).set({
width: 500,
height: 500,
selectable: false,
name: 'product',
})
.setSrc("https//www.test.com/test2.png", () => {
canvas.renderAll()
})
我向 canvas 添加了多张图片,但我想更改单击按钮时添加的第一张图片。现在,canvas 没有更新。我不知道为什么(我在 nuxt js 中使用 fabric)。 例如: 首先将图像添加到 canvas in mounted 然后我单击“添加”按钮,第二个图像将添加到 canvas (addPattern 方法)。之后,我单击“更改”按钮 (changeImage) 方法,但显示的 canvas 未更新
我的代码
<template>
<div>
<canvas ref="can" width="500" height="500"></canvas>
<button @click="addPattern">add</button>
<button @click="changeImage">change</button>
</div>
</template>
<script>
let canvas = new fabric.Canvas('c')
mounted() {
const ref = this.$refs.can
canvas = new fabric.Canvas(ref)
fabric.Image.fromURL('https//www.test.com/test.png', function (productImage) {
productImage.set({
width: 500,
height: 500,
selectable: false,
name: 'product',
})
canvas.add(productImage)
})
},
method: {
addPattern() {
fabric.Image.fromURL(image, function (patternImage) {
patternImage.set({
selectable: true,
})
patternImage.scaleToHeight(120)
patternImage.scaleToWidth(120)
canvas.add(patternImage)
})
}
changeImage() {
canvas.item(0).set({
src: "https//www.test.com/test2.png",
width: 500,
height: 500,
selectable: false,
name: 'product',
})
canvas.renderAll()
}
}
</script>
要更改src
属性,您需要使用setSrc
方法。
http://fabricjs.com/docs/fabric.Image.html#setSrc
canvas.item(0).set({
width: 500,
height: 500,
selectable: false,
name: 'product',
})
.setSrc("https//www.test.com/test2.png", () => {
canvas.renderAll()
})