「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP で「getimagesize」を使用するよりも速く画像のサイズを取得するにはどうすればよいですか?

PHP で「getimagesize」を使用するよりも速く画像のサイズを取得するにはどうすればよいですか?

2024 年 11 月 4 日に公開
ブラウズ:792

How Can I Retrieve Image Dimensions in PHP Faster Than Using `getimagesize`?

PHP でのより高速な画像寸法取得の探索

PHP プログラミングの領域では、大量のリモート画像。このボトルネックに対処するために、超高速のパフォーマンスを約束する別のアプローチを詳しく見てみましょう。

file_get_contents 関数を利用することで、画像から限られたバイト数しか読み取ることができません。このデータを注意深く調べて、画像のサイズを決定できます。

このアプローチを開始するには、次のコード スニペットを検討してみましょう。

function ranger($url){
    $headers = array(
    "Range: bytes=0-32768"
    );

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

$start = microtime(true);

$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";

$raw = ranger($url);
$im = imagecreatefromstring($raw);

$width = imagesx($im);
$height = imagesy($im);

$stop = round(microtime(true) - $start, 5);

echo $width." x ".$height." ({$stop}s)";

この関数はレンジャー関数を利用して画像データの一部を取得します。続いて、imagecreatefromstring を使用して、取得したデータから画像リソースを生成します。最後に、imagesx と imagesy は、それぞれ画像の幅と高さを提供します。

画像 URL を使用してテストすると、以下に示すように、このアプローチは驚くべき速度を示しました。

640 x 480 (0.20859s)

この例では、画像の寸法の抽出に要した時間はわずか 0.20859 秒であり、この方法の効率性が際立っています。

限られた量のデータを読み取る能力を利用することにより、リモート画像から、PHP で画像の寸法を取得する非常に高速かつ効率的な方法を考案しました。このテクニックを使用すると、多数の画像を簡単かつ迅速に処理するという課題に取り組むことができます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3