2014-11-11 3 views
-1

У меня проблема, когда мне нужно изменить размеры изображений на Power of 2 для загрузки в Three.js. У меня есть следующее, чтобы изменить их размер:Добавление прозрачного пространства в PNG для 3d

  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

ответ

0

Going об этом полностью неправильно. Мне не нужно было изменять размеры обоих аспектов, только один будет делать

Смежные вопросы