ホームページ > バックエンド開発 > PHPチュートリアル > PHP で画像の寸法をすばやく抽出する方法: ライブラリは最良の解決策ですか?

PHP で画像の寸法をすばやく抽出する方法: ライブラリは最良の解決策ですか?

Barbara Streisand
リリース: 2024-11-02 16:13:29
オリジナル
881 人が閲覧しました

How to Extract Image Dimensions in PHP Quickly: Are Libraries the Best Solution?

PHP で画像のサイズを迅速に決定する方法: 最適化ガイド

Web 開発の領域では、多くの場合、リモート画像の寸法を効率的に調整します。ただし、ネイティブ PHP 関数 getimagesize() は、大規模なデータセットに対して時間がかかる可能性があります。

代替アプローチの探索

このプロセスを迅速化するには、 file_get_contents 関数を使用して、画像から限られた量のバイトを読み取ります。このバイナリ データ内では、画像の寸法に関する重要な情報を抽出できます。

バイナリ データの検査

バイナリ データの検査には、形式固有のテクニックが必要です。たとえば、通常、JPEG 画像には最初の 16 バイト以内に寸法が含まれますが、PNG 画像では IHDR チャンクを解析する必要があります。

ライブラリの活用

多数のライブラリによりこれが簡素化されます。バイナリ データから画像の寸法を読み取るための事前構築された関数を提供することで処理します。これらのライブラリは多くの場合、複数の画像形式をサポートしているため、タスクがさらに簡素化されます。

最適化されたコード例

以下は、file_get_contents とライブラリを使用して迅速に実行する方法を示すコード サンプルです。画像寸法の取得:

<code class="php">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;
}
$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";
$raw = ranger($url);
$im = imagecreatefromstring($raw);
// Javascript exif module can be used to extract meta information from image
$exif = $javascriptExif->getAllTags($raw);
$width = $exif['PixelXDimension'];
$height = $exif['PixelYDimension'];
$stop = round(microtime(true) - $start, 5);
echo $width." x ".$height." ({$stop}s)";</code>
ログイン後にコピー

ベンチマークと結果

このアプローチは、特に大規模な画像セットの場合、処理時間を大幅に短縮することが証明されています。たとえば、640x480 ピクセルの画像の 32KB のデータをロードするには、約 0.20859 秒かかりました。

画像の寸法を取得するプロセスを最適化することで、Web 開発者はアプリケーションのパフォーマンスと効率を向上させることができます。

以上がPHP で画像の寸法をすばやく抽出する方法: ライブラリは最良の解決策ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート