3

是否可以在不使用 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++;
    }

?>
4

5 回答 5

7

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

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

访问此信息的最快方法是在每次上传新文件时维护一个文件尺寸数据库。

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

于 2013-03-26T17:09:43.580 回答
5

这取决于您所说的“不加载它”是什么意思。

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

list($w, $h) = getimagesize($filename);
于 2013-03-26T16:53:38.530 回答
2
list($width, $height, $type, $attr) = getimagesize($_FILES["Artwork"]['tmp_name']);

Use this.

于 2014-04-11T06:40:54.837 回答
2

您可以将 width'n'height 信息存储在文本文件中,稍后再加载。

于 2013-03-26T19:38:17.297 回答
2

您可以使用 Javascript 以编程方式获取图像并检查尺寸...

var img = new Image();
img.onload = function() {
  alert(this.width + 'x' + this.height);
}
img.src = 'http://www.google.com/intl/en_ALL/images/logo.gif';

如果图像不是标记的一部分,这可能很有用;)

于 2013-03-26T16:57:01.397 回答