📜  PHP |想象一下 getImageSize()函数(1)

📅  最后修改于: 2023-12-03 15:18:26.764000             🧑  作者: Mango

PHP | 想象一下 getImageSize() 函数

在 PHP 中,getImageSize() 函数是用于获取给定图像文件的尺寸和类型信息,并以数组形式返回这些信息。该函数可用于读取 JPEG、PNG、GIF、BMP 以及 WEBP 等多种图像格式的信息。

语法
array getImageSize(string $filename [, array &$imageinfo])

参数:

  • $filename:要获取信息的图像文件的文件名或 URL。
  • $imageinfo(可选):如果该参数指定了一个变量,则函数将向该变量中添加额外的信息,包括文件格式、文件大小和 IPTC 信息(如果存在)。

返回值:

如果成功获取了图像文件的信息,则以数组形式返回尺寸和类型信息。如果失败,则返回 FALSE。

示例

下面是一个使用该函数获取图像信息的示例代码:

<?php
    $filename = 'example.jpg';
    $info = getImageSize($filename);
    if ($info !== false) {
        list($width, $height, $type) = $info;
        switch ($type) {
            case IMAGETYPE_JPEG:
                echo 'JPEG 图像,宽度:' . $width . ',高度:' . $height . '。';
                break;
            case IMAGETYPE_GIF:
                echo 'GIF 图像,宽度:' . $width . ',高度:' . $height . '。';
                break;
            case IMAGETYPE_PNG:
                echo 'PNG 图像,宽度:' . $width . ',高度:' . $height . '。';
                break;
            default:
                echo '未知图像类型。';
                break;
        }
    } else {
        echo '读取图像信息失败。';
    }
?>
附加信息

除了尺寸和类型信息外,getImageSize() 函数还可以返回一些额外的信息,包括文件格式、文件大小和 IPTC 信息。如果需要获取这些信息,则需要在调用该函数时传入一个用于存储这些信息的数组变量。

下面是一个获取额外信息的示例代码:

<?php
    $filename = 'example.jpg';
    $info = array();
    $result = getImageSize($filename, $info);
    if ($result !== false) {
        $width = $info[0];
        $height = $info[1];
        $type = $info[2];
        $bits = $info['bits'];
        $channels = $info['channels'];
        $mime = $info['mime'];
        $size = $info['filesize'];
        $iptc = $info['APP13'];
        echo '图像类型:' . $type . ',宽度:' . $width . ',高度:' . $height;
        echo ',位深度:' . $bits . ',通道数:' . $channels;
        echo ',文件格式:' . $mime . ',文件大小:' . $size;
        if ($iptc !== false) {
            echo ',IPTC 信息:' . print_r($iptc, true);
        }
    } else {
        echo '读取图像信息失败。';
    }
?>

总之,getImageSize() 函数是一个非常实用的函数,可用于获取多种图像文件的尺寸和类型信息。但请注意,该函数只能获取静态图像文件的信息,无法获取动画 GIF 或动态 WebP 文件的信息。如果需要处理动态图像,请使用其他方式。