PHP - 获取有关图像(高度和宽度)的信息而不加载它

Phi*_*lip 3 php height image width

是否可以在不使用PHP加载实际图像的情况下获取图像信息?在我的情况下,我想要高度和宽度.

我有这个代码从目录中获取图像.我回显了图像的url并用JS获取它.

<?php

    $directory = "./images/photos/";
    $sub_dirs = glob($directory . "*");
    $i = 0;
    $len = count($sub_dirs);
    foreach($sub_dirs as $sub_dir)
    {
        $images = glob($sub_dir . '/*.jpg');
        $j = 0;
        $len_b = count($images);
        foreach ($images as $image) 
        {

            if ($j == $len_b - 1) {
                echo $image;
            } else {
                echo $image . "|";
            }

            $j++;

        }

        if ($i == $len - 1) {
        } else {
            echo "|";
        }
        $i++;
    }

?>
Run Code Online (Sandbox Code Playgroud)

Ton*_*rra 7

getImageSize() 是在PHP中获取此信息的正确方法

它根据图像类型进行最少量的工作.例如,GIF图像的高度/宽度存储在标题中.非常容易访问和阅读.所以这就是函数最有可能从文件中获取信息的方式.对于JPEG,它需要使用SOFn标记做更多的工作.

访问此信息的最快方法是每次上传新文件时维护文件维度数据库.

鉴于你目前的情况.我建议编写一个PHP脚本来获取所有当前的图像文件,使用此函数获取大小,然后将信息插入数据库以备将来使用.


Cal*_*Cal 5

这取决于你的意思是"不加载它".

内置的getimagesize()可以做到这一点.

list($w, $h) = getimagesize($filename);
Run Code Online (Sandbox Code Playgroud)

  • 至少在getImageSize()中,他可以偷看你的脚,而不是俯视你的整个身体来弄明白. (3认同)