使用php获取图片尺寸

日期: 标签:phpWeb网页设计
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

     在网页设计中,为图像<img>指定 height 和 width 属性是一个好习惯,至于为什么是一个好习惯,你可以点此查看文档说明。但是在动态网页中,有些图像的尺寸是不固定的,有时候你不能为图像<img>指定固定的 height 和 width 属性,那怎么办呢?其实php有现成的函数getimagesize用于获取图像的尺寸,具体的函数使用方法以及代码示例,可以点此查看php的文档,下面简单介绍一下用法:

<?php/* 1.jpg为你想获得其尺寸的图片 */
$arr = getimagesize("1.jpg");

/**
 * 这里$arr为一个数组类型
 * $arr[0] 为图像的宽度
 * $arr[1] 为图像的高度
 * $arr[2] 为图像的格式,包括jpg、gif和png等
 * $arr[3] 为图像的宽度和高度,内容为 width="xxx" height="yyy"
 */

/* 以下两行代码输出的内容都是一样的 */
echo "<img src="1.jpg" $arr[3] alt="" />";
echo "<img src="1.jpg" width="$arr[0]" height="$arr[1]" alt="" />";
?>

以上php代码被解释为内容为:

<img src="1.jpg" width="xxx" height="yyy" alt="" />
<img src="1.jpg" width="xxx" height="yyy" alt="" />

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/php-get-images-size.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者。

3 条留言

点此留言
  1. 侯永禄 侯永禄

    露兜,你好。请问这个函数的原理是什么?假如我要获取大量图片的尺寸,会不会对服务器造成很大的压力?(因为虚拟主机对内存、宽带、执行时间等的限制比较严格)

  2. Ludou

    @侯永禄 不管什么样的主机都会php执行时间限制的。
    以上代码使用的是php的内置函数,不需要操作数据库。执行一次的时间可以使用下面的代码测算:
    https://www.ludou.org/how-to-create-a-password-generator-using-php.html#time-contrast

    大概也就几毫秒吧,假设你的主机设置的php执行时间限制20s,你可以一次性进行几万次的图片尺寸计算。

  3. kim

    //img From
    function post_thumbnail_src(){
    global $post;
    if( $values = get_post_custom_values("thumb") ) { //输出自定义域图片地址
    $values = get_post_custom_values("thumb");
    $post_thumbnail_src = $values [0];
    } elseif( has_post_thumbnail() ){ //如果有特色缩略图,则输出缩略图地址
    $thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
    $post_thumbnail_src = $thumbnail_src [0];
    } else {
    $post_thumbnail_src = '';
    ob_start();
    ob_end_clean();
    $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
    $post_thumbnail_src = $matches [1] [0]; //获取该图片 src
    };
    echo $post_thumbnail_src;
    }

    请教楼主一个问题,如何结合获取第一个缩略图 让他自己有宽和高
    <img src="1.jpg" width="xxx" height="yyy" alt="" />

发表留言