对于我最近的项目,我想使用来自 flickr api 的图像,但是当图像进入时,大多数图像对于我放置它的地方来说太大了。我被告知做一个 if 语句并从来自 api 的原始图像中获取长度和宽度,然后将它们相除,然后将它们乘以所需的宽度。 else 则相反(而不是width height)。这是我想出的,但无法让它发挥作用。谁能告诉我我做错了什么?
var dimensions = getDimensions(photos[p].width_m, photos[p].height_m);
var m1window = addWindow(photos[p].title, photos[p].url_m, dimensions[0], dimensions[1]);
function getDimensions( w, h ) {
var array = [wi, he];
var he;
var wi;
if ( wi > he ) {
wi = 100;
he = w/h*100;
} else {
wi = w/h*100;
he = 100;
}
return array;
}
最佳答案
我不确定我是否理解你的问题,但如果你的问题是你需要将图像调整到具有最大宽度和高度的某个容器,那么我认为你想要的是这样的函数(使用 JQuery):
function resizeImage($image, maxHeight, maxWidth){
var ratio=1;
var ratiox=1;
var ratioy=1;
var imgWidth=$image.width();
var imgHeight=$image.height();
if(imgWidth> maxWidth){
ratiox=maxWidth/imgWidth;
}
if(imgHeight> maxHeight){
ratioy=maxHeight/imgHeight;
}
ratio = (ratiox>ratioy)?ratioy:ratiox;
$image.width(imgWidth*ratio);
$image.height(imgHeight*ratio);
}
JSFiddle 示例: http://jsfiddle.net/8uJbY/2/
(如果这是你需要的,但你不能使用 JQuery,我可以在没有 JQuery 的情况下重写这个函数)
关于javascript - 我如何自动调整来自 flickr api 的照片的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13964271/