Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调整最小图像尺寸_Javascript_Css_Image Resizing_Aspect Ratio - Fatal编程技术网

Javascript 调整最小图像尺寸

Javascript 调整最小图像尺寸,javascript,css,image-resizing,aspect-ratio,Javascript,Css,Image Resizing,Aspect Ratio,这似乎是以前会问的问题,但我找不到副本,所以 我希望图像的最小尺寸在保持纵横比的情况下最大缩放200。因此: 600x400图像的最小尺寸为400,应为200,因此按0.5的比例缩放:新图像将为300x200 同样,400x800将是200x400 100x300的最小尺寸已经小于200,因此将保持100x300 显然,如果可以使用css来完成,那么这比javascript更可取。是的,您需要JS: function scale(W, H, max) { var min = Math.

这似乎是以前会问的问题,但我找不到副本,所以

我希望图像的最小尺寸在保持纵横比的情况下最大缩放200。因此:

  • 600x400图像的最小尺寸为400,应为200,因此按0.5的比例缩放:新图像将为300x200
  • 同样,400x800将是200x400
  • 100x300的最小尺寸已经小于200,因此将保持100x300
显然,如果可以使用css来完成,那么这比javascript更可取。

是的,您需要JS:

function scale(W, H, max) {
  var min = Math.min(W, H),        // Get the smallest size
      nr  = min>max,               // NeededResize (Boolean)
      rat = Math.min(max/W, max/H);// Ratio
  return {
    W: nr?W*rat:W, // if NeededResize do W*rat, else just use the image W
    H: nr?H*rat:H
  };
}

这些不是复制品,它们的最大尺寸为200…你不想颠倒逻辑,做同样的事情吗?你试过什么吗?而且,我认为这不能用纯css来实现。。可能您应该编写一些JS来测试最大维度,然后相应地设置宽度/高度。另一个维度应该设置为“自动”,这样图像就会保持比例。这把小提琴会让你开始-@George Stocker:那怎么办?我可以通过将其安装在一个200x200的盒子中来获得最大尺寸200。我会选择哪个盒子使最小尺寸为200?(我问这个只是为了说明为什么不可能)。
// Use like: scale(imageWidth, imageHeight, maxSizeToRespect);
var resize = scale(this.width, this.height, 200);
// Where from now on
resize.W // is the returned width scale
resize.H // is the returned height scale