【问题标题】:Adding transparent space to PNG for 3d为PNG添加3d透明空间
【发布时间】:2015-01-07 16:49:12
【问题描述】:

我遇到了一个问题,我必须将图像大小调整为 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

【问题讨论】:

    标签: javascript canvas 3d three.js


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2011-06-22
      • 1970-01-01
      • 2016-06-03
      相关资源
      最近更新 更多