我用svg图像测试了KineticJS 5.10:
var stage = new Kinetic.Stage({
container: 'container',
width: 400,
height: 400
});
var layer = new Kinetic.Layer();
stage.add(layer);
var img=new Image();
img.onload = function () {
var image = new Kinetic.Image({
image: img,
width: 100,
height: 100,
});
layer.add(image);
layer.draw();
}
img.crossOrigin="anonymous";
img.src = "https://dl.dropboxusercontent.com/u/139992952/stackoverflow/rocket.svg";
之后我缩小图像(保持纵横比):
image.scale({
x: 30,
y: 30
});
layer.draw();
之后我将舞台导出为质量为1.0的jpeg图像:
stage.toDataURL({
mimeType: "image/jpeg",
quality: 1.0,
callback: function(dataUrl) {
// save image dataUrl to file
}
});
事实证明,svg图像的质量只有在你缩小它时才会非常糟糕。当你增加尺寸时,质量不会改变。
使用KineticJS缩小SVG图像时,如何提高质量?
编辑:以下是我制作的示例:http://jsfiddle.net/confile/p6Eey/ 边缘非常脆,不锋利。