KineticJS:降尺度时如何提高SVG图像质量?

时间:2014-05-20 14:16:29

标签: javascript html5 canvas svg kineticjs

我用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/ 边缘非常脆,不锋利。

0 个答案:

没有答案