根据PaperJS中的屏幕大小调整栅格大小

时间:2015-04-01 04:29:22

标签: paperjs

当我通过PaperJS调整画布大小时,我想调整栅格(图像)的大小。我使用以下代码:

var last_point = view.center;
var img = new Raster('images/test.png', view.center);
img.onLoad = function() {
    resizeImg();
}
function onResize(event) {
    view.scrollBy(last_point.subtract(view.center));
    last_point = view.center;
    resizeImg();
}
function resizeImg() {
    var width = paper.view.size.width; 
    var scale = (width / img.width) * 0.75;
    img.scale(scale);
}

但是,一旦通过resizeImg()功能,图像就会消失(注释掉该功能会使图像重新出现)。

我在功能中错过了什么? 我想这只是计算中的一个简单错误

2 个答案:

答案 0 :(得分:1)

对象的宽度由其bounds.width属性引用,而不仅仅width

function resizeImg() {
    var width = paper.view.size.width; 
    var scale = (width / img.bounds.width) * 0.75;
    img.scale(scale);
}

答案 1 :(得分:0)

以下内容保留了图像的宽高比,让你省去了做数学的麻烦。 fitBoundsdoc)和view.onFramedoc)使这一切自动生效。

…

function resizeImg () {
  img.fitBounds(view.bounds)
}

view.onFrame = function (event) {
  resizeImg()
}