为什么Bitmap.scale不起作用?

时间:2018-01-08 18:27:06

标签: javascript canvas bitmap createjs easeljs

我想将我的图像添加到画布中,并对其进行定位和缩放。 我知道如何定位它,但每次我缩放它都会从我的画布上消失。

我目前的代码与此类似:

function init() {
    var canvas = new createjs.Stage("canvas");

    var image = new createjs.Bitmap("assets/image.png");
    image.scale(600, 600);
    canvas.addChild(image);
    canvas.update(image);
}

除非我删除image.scale(600, 600),否则我的图片不会显示在画布上。

1 个答案:

答案 0 :(得分:2)

根据documentationscale属性是比例因子。例如,比例为2表示图像的两倍。你的图像是600倍。因此64x64px图像将成为38400x38400px图像。您需要根据图像的尺寸计算因子:

const imageBounds = image.getBounds()
image.scaleX = 600 / imageBounds.width;
image.scaleY = 600 / imageBounds.height;

另请注意,scale是一个属性,您也可以直接分配给它:

image.scale = 1.6;