【问题标题】:How to get Image Height and Width from Image which Location is stored in the database?如何从存储在数据库中的图像中获取图像高度和宽度?
【发布时间】:2014-08-20 01:53:08
【问题描述】:

我需要获取图像的高度和宽度,以便根据 div 的大小设置拉伸它。我本可以使用 max-width:100% 和 max-height:100% 但有些图像比 div 小,所以我决定手动分配宽度和高度。

我更喜欢在 php imagesy() 和 imagesx() 中获取这些尺寸。

   <?php $h=imagesy($list['Image1']); 
    $ w = imagesy($list['Image1'])?>

   <img src="<?php echo $list['Image1']; ?>"
    <?php if($h>$w) echo"style='height:100%;'";
    else echo"style='width:100%;'"; ?> />

【问题讨论】:

  • 顺便说一句,$list['Image1']的内容;是照片的链接:
  • 例如。 admin/products/Test 1/10384747_680658022002661.jpg

标签: php html css


【解决方案1】:

getimagesize() 之类的 PHP 函数将返回图像的尺寸。但是您首先要将图像加载到函数中。换句话说,您必须先获取图像。

如果您启用了allow_url_fopen,那么您应该能够使用绝对 URL 调用它:

$size = getimagesize("http://www.example.com/gifs/logo.gif");

【讨论】:

  • 谢谢!我刚才读到宽度和高度存储在一个数组中。 :)
【解决方案2】:

好的,我刚才读到 getimagesize 返回一个宽度为 [0] 且高度为 [1] 的数组。所以我仍然可以直接比较它们,因此,动态调整它们的大小以适应包含图像的 div。 ;)

    <?php $h=(getimagesize($list['Image1']));?>
    <img src="<?php echo $list['Image1']; ?>" 
    style="<?php 
    if($h[0]>$h[1])
    {
        echo'width:100%;margin:0 auto;';    
    }
    else
    {
        echo'height:100%;vertical-alignment:auto;'; 
    } ?>"
    alt="<?php echo $list['Image1']; ?>" />

【讨论】:

  • 我无法理解的是你为什么不只使用 CSS。就像您提到的 max-width:100% 和 max-height:100% 一样,只需添加 width:auto;高度:自动;并且您的编码和相同的渲染会少很多
  • 有些图片比包含它们的 div 还小。
  • 是的,宽度:自动; height:auto 将覆盖它(然后将 max-width 和 max-height 设置为 100%)
猜你喜欢
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 2010-11-18
  • 1970-01-01
  • 2014-07-15
  • 1970-01-01
相关资源
最近更新 更多