我一直在尝试使用PIXI进行SVG缩放,但结果并不是我预期的结果。正如您在图像中看到的那样,debian徽标(这是一个SVG文件)似乎模糊而且前卫。我写错了代码:
来自https://github.com/kevguy/D3-Svg-Comparison/blob/master/src/components/SvgCompare.vue:
// initialization
this.renderer = new PIXI.Application(800, 600, {backgroundColor: 0x1099bb})
document.getElementById('svg-canvas').appendChild(this.renderer.view)
this.container = new PIXI.Container()
this.stage = this.renderer.stage
this.stage.addChild(this.container)
// appending the svg file
const texture = PIXI.Texture.fromImage(this.chosenImage)
this.svg = new PIXI.Sprite(texture)
this.svg.anchor.x = 0.8
this.svg.anchor.y = 0.8
this.svg.position.x = 400
this.svg.position.y = 300
this.svg.scale.x = this.selectedScale
this.svg.scale.y = this.selectedScale
this.container.addChild(this.svg)
chosenImage
是使用import * as choesnImage from 'the-file-path'
selectedScale
是选定的缩放值,可以通过VueJS 答案 0 :(得分:0)
根据this issue,您需要像这样加载svg以生成缩放的svg纹理。
PIXI.Texture.fromImage(this.chosenImage, undefined, undefined, newVal)
需要清理纹理缓存,然后为每次新的比例更改创建新纹理。
PIXI.utils.clearTextureCache()
在gist
上修改了SvgCompare.vue