Laravel 4.1,如何在函数中比较图像高度和宽度



我正在尝试确定必须以哪种方式裁剪图像才能完美地适合方形用户配置文件图像。

我发现了Laravel软件包"干预图像",但据我所知,这个包没有提供比较图像是水平还是垂直的功能。

http://intervention.olivervogel.net/

在调整大小和裁剪图像之前,有什么好方法可以确定图像是正方形还是水平或垂直?

这是我目前所做的:

$img->resize(400, null, true)->crop(400, 400);

它显然非常适合正方形,适用于垂直图像,但不适用于水平图像。

任何帮助将不胜感激。

谢谢!

所以,这是我的看法。

http://jsfiddle.net/SinisterSystems/PD4a2/1/

.HTML:

<img id="img1" src="http://hdwallpaper2013.com/wp-content/uploads/2013/02/Download-Flower-Background-Images-HD-Wallpaper.jpg" />
<img id="img2" src="http://1.bp.blogspot.com/_74so2YIdYpM/TEd09Hqrm6I/AAAAAAAAApY/rwGCm5_Tawg/s1600/tall%2Bcopy.jpg" />
<img id="img3" src="http://upload.wikimedia.org/wikipedia/commons/8/89/Love_Heart_symbol_square.svg" />

.CSS:

img {
    max-width:500px;
    max-height:500px;
    border:1px solid #000;
}

Javascript:

function findSize(x){
    var h = x.height();
    var w = x.width();
    if(h<w){
       alert("Image is wider than it is tall.");
    } else if(w<h){
       alert("Image is taller than it is tall.");
    } else {
       alert("Image is square.");
    }
}
findSize($('#img1'));
findSize($('#img2'));
findSize($('#img3'));

明确比较哪些值更高、更宽或更方形。

否则,您所要做的就是包含我在上一个问题中为每个条件发布的代码中提供的add css代码。我设置了一个horizontal类,vertical类和一个square类。像这个小提琴。您必须在 CSS 中定义类

显然,我只是设置了边框颜色,但此时您可以做任何您想做的事情。

您可以使用

getimagesize($link) ,它返回具有图像宽度和高度的数组。 然后只需使用以下方法检查水平或垂直或正方形:

<?php
function WvsH ($link) {
    $size = getimagesize($link);
    if ($size[0] < $size[1]) {
        return 'vertical';
    }
    else if ($size[1] < $size[0]) {
        return 'horizontal';
    }
    else {
        return 'square';
    }
}
?>

当然,这是假设链接存在。

相关内容

  • 没有找到相关文章

最新更新