为三维PNG添加透明空间

Adding transparent space to PNG for 3d

本文关键字:透明 空间 添加 PNG 三维      更新时间:2023-09-26

我遇到了一个问题,我必须将图像大小调整为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的幂并保持纵横比的正确方法吗?

我想我要找的恰恰相反自动裁剪HTML5画布到内容

这样做完全是错误的。我不需要调整这两个方面的大小,只有一个会做