在保持纵横比的同时缩小图像的最有效方法?

时间:2017-01-18 14:14:06

标签: java image scaling

所以我有一个显示图像的字段,我的最大高度可以是375,最大宽度是775.我希望它尽可能接近这些值之一,以便在保持宽高比的同时获得最大尺寸这就是我想出来的,它实际上似乎工作得很好,但我认为有一种更好的方式我没想到。

$(document).ready(function() {
 $(".user-show-delete").on("click", function(e){
  var id = $(this).data("id");
  var pain_id = $(this).data("id-pain");
  console.log(id)
  console.log(pain_id)
  var current_index = $("#tabs").tabs("option","active");
  swal ({
    title: 'Effacer',
    text: 'Voulez-vous supprimer cette prière ?',
    type: 'question',
    showCancelButton: true,
    confirmButtonColor: '#B56969',
    cancelButtonColor: '#B4D8C0',
    confirmButtonText: 'Oui',
    cancelButtonText: 'Non'
  }).then(function() {
    $.ajax({
      type: 'DELETE',
      url: '/pains/' + pain_id + '/prayers/' + id,
      success: location.reload(),
    });
  });
 });
});

1 个答案:

答案 0 :(得分:2)

你知道你将使用两个最大值之一(如果你不是图像仍然可以放大)。

所以这只是一个确定问题的问题。如果图像的纵横比大于最大面积比,则宽度是您的限制因素,因此您将宽度设置为最大值,并根据比率确定高度。

相同的过程可适用于较小的比率

代码类似于以下

float maxRatio = maxWidth/maxHeight;
if(maxRatio > ratio) {
    width = maxWidth;
    height = width / ratio;
} else {
    height = maxHeight;
    width = height * ratio;
}