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

プログラムで画像を取得し、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 に答える
2

幅と高さの情報をテキストファイルに保存し、後で読み込むことができます。

于 2013-03-26T19:38:17.297 に答える
2
list($width, $height, $type, $attr) = getimagesize($_FILES["Artwork"]['tmp_name']);

これを使って。

于 2014-04-11T06:40:54.837 に答える