简体   繁体   English

缩小图像以适合div

[英]Scale down image to fit div

I am trying to scale down an inage to fit a div container that are greater then the max width and heights set. 我正在尝试按比例缩小一个装料,以适合大于最大宽度和高度设置的div容器。 I have the code below that gets the width and height of the image and the sets max sizes allowed. 我下面的代码获取图像的宽度和高度以及允许的最大尺寸设置。

This is were I'm out of my depth, the image it loads below is 662x599. 这是我无法进入的深度,它在下面加载的图像为662x599。 The width is greater the the max allowed so I need it to scale down correctly and be placed into the center of the div. 宽度大于允许的最大值,因此我需要将其正确缩小并放置在div的中心。

var max_width = 713;
var max_height = 550;

var img = new Image();
img.onload = function() {
    img.width = this.width;
    img.height = this.height;
}
img.src = 'files.jpg';

Below is an example me resizing the image manually that looks good to give you a rough example of how it should look should. 以下是我手动调整图像大小的示例,它看起来不错,可以为您提供一个粗糙的外观示例。 I intent to use styles "top" and "left" to place the image in the center of the div. 我打算使用样式“ top”和“ left”将图像放置在div的中心。

<img style="width: 613px; height: 550px; top: 0px; left: 50px;" src="files.jpg">

Any help would be great thanks. 任何帮助将非常感谢。

This is code to calculate width , height , top , left . 这是用于计算widthheighttopleft

// max_width  = 713
// max_height = 550
// img.width  = 662
// img.height = 599

scale_width = max_width / img.width;
scale_height = max_height / img.height;

scale = Math.min(scale_width, scale_height);

width = img.width * scale;  // 608
height = img.height * scale;  // 550

left = (max_width - width)/2; // 52
top = (max_height - height)/2;  // 0

Why do you even need JavaScript? 为什么甚至需要JavaScript? Just set the max-width on the image to match that of the containing div (ie, 100%). 只需将图像上的max-width设置为与包含divmax-width (即100%)匹配即可。

http://jsfiddle.net/Pp7Rg/1/ http://jsfiddle.net/Pp7Rg/1/

<div>
    <img src="https://www.google.com/url?q=http://www.photoinpixel.com/mypicture/persian-cat-hd-wallpaper.jpg&ei=dTWZUYHKOoqkiQLto4GYAw&sa=X&oi=unauthorizedredirect&ct=targetlink&ust=1368996989961871&usg=AFQjCNHdsjijJ2oeKrUuvZRMFUuIRxydtg"/>
</div>

div {
    width: 500px;
}

img {
    max-width: 100%;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM