为PNG添加透明空间为3d

时间:2014-11-11 07:33:41

标签: javascript canvas 3d three.js

我遇到了一个问题,我必须将图像调整为2的幂才能加载到Three.js中。我使用以下内容来调整它们的大小:

            var w = powerOf2Down(this.width);
            var scale = w / this.width;
            var scaledHeight = this.height * scale;
            var h = powerOf2Up(scaledHeight);

            var scaleFactor  =  ( this.width / w) * ( this.height / h ) * 0.1;
            photo.scale.normalize().multiplyScalar(scaleFactor);


function powerOf2Down(value)
{
    if(value < 80) 
        return 64;
    else if(value < 150) 
        return 128;
    else if(value < 400) 
        return 256;
    else if(value < 800)
        return 512;

    return 1024;
}

 function powerOf2Up(value)
{
    if(value <= 64) 
        return 64;
    else if(value <= 128) 
        return 128;
    else if(value <= 256) 
        return 256;
    else if(value <= 512)
        return 512;

    return 1024;
}

这适用于大多数地方,但有时会扩大太多。我想知道在最小的一侧增加空白区域而不是缩放可能控制更好。

是否可以在画布中执行此操作并为PNG添加透明空间?

修改

这是将图像缩放到2的幂并保持纵横比的正确方法吗?

我想要的是我认为与此相反 Automatically Crop HTML5 canvas to contents

1 个答案:

答案 0 :(得分:0)

完全以错误的方式解决这个问题。我不需要调整两个方面,只有一个会做