PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

【PHP】imageresolution()関数で画像の解像度(DPI)を取得・設定する方法

imageresolution()関数とは

imageresolution()は、PHPに組み込まれている関数の一つで、画像の解像度をDPI(dots per inch/1インチあたりのドット数)単位で取得または設定するために使用します。オプションの引数を何も指定しなかった場合、現在の解像度がインデックス配列として返されます。逆に、引数を1つだけ指定した場合は、水平・垂直の両方の解像度がその値に設定されます。

ここで注意したいのは、解像度の情報はあくまでメタ情報だという点です。この値が実際に使われるのは、PNGやJPEGのように解像度情報を保持できるフォーマットで画像を読み書きするときだけであり、描画処理そのものには一切影響しません。新しく作成した画像のデフォルト解像度は96DPIです。

なお、この関数はPHP 7.2.0以降で利用可能です(GD拡張モジュールが必要です)。

構文

mixed imageresolution(resource $image, int $res_x, int $res_y)

パラメータ

imageresolution()は、以下の3つのパラメータを受け取ります。

  • $image − 操作対象となる画像リソースを指定します。

  • $res_x − 水平方向の解像度をDPI(ドット毎インチ)で指定します。

  • $res_y − 垂直方向の解像度をDPI(ドット毎インチ)で指定します。

戻り値

取得モードで呼び出した場合、imageresolution()は画像の解像度をインデックス配列として返します(要素[0]が水平解像度、要素[1]が垂直解像度)。設定モードの場合は、成功時にtrue、失敗時にfalseを返します。

使用例1:新しい画像に解像度を設定する

<?php
    // 100x100の空画像を作成
    $img = imagecreatetruecolor(100, 100);

    // 解像度を200DPIに設定(水平・垂直共通)
    imageresolution($img, 200);
    print_r(imageresolution($img));

    // 水平300DPI・垂直72DPIとして個別に設定
    imageresolution($img, 300, 72);
    print_r(imageresolution($img));
?>

出力結果

Array
(
    [0] => 200
    [1] => 200
)
Array
(
    [0] => 300
    [1] => 72
)

使用例2:既存のPNG画像の解像度を取得・変更する

<?php
    // imagecreatefrompng()関数でPNG画像を読み込む
    $img = imagecreatefrompng('C:\xampp\htdocs\Images\img34.png');

    // 画像の解像度を設定
    imageresolution($img, 300, 100);

    // 画像の解像度を取得して表示
    $imageresolution = imageresolution($img);
    print("<pre>".print_r($imageresolution, true)."</pre>");
?>

出力結果

Array
(
    [0] => 300
    [1] => 100
)

まとめ

imageresolution()関数を使えば、PNGやJPEG画像に対してDPI単位の解像度情報を簡単に取得・設定できます。印刷用途などで画像の正確な物理サイズが求められる場面で特に役立つ関数です。ただし、解像度はあくまでメタ情報であり、ピクセルデータそのものには影響しないため、画像の見た目が変わることはない点を覚えておきましょう。

  1. PHPのimagecreatefrompng()関数でPNGファイルやURLから新しい画像を作成する方法

    PHPのimagecreatefrompng()は、標準で用意されている組み込み関数のひとつで、PNGファイルまたはURLから新しい画像を作成します。指定されたファイル名から取得した画像を表す「画像リソース識別子」を返します。なお、この関数を利用するには、PHP環境にGDライブラリが組み込まれている必要があります。構文resource imagecreatefrompng(string $filename)パラメータimagecreatefrompng()が受け取るパラメータは$filenameのひとつだけです。この引数には、読み込みたいPNG画像のファイル名、または画像へのパス(URL)を指

  2. PHPのimagecreatefromjpeg()関数でJPEGファイルから新しい画像を作成する方法

    imagecreatefromjpeg()は、PHPに組み込まれている関数の一つで、JPEGファイルから新しい画像を生成するために使用されます。指定したファイル名から取得した画像を表す画像リソース識別子(イメージID)を返します。この関数は、GDライブラリが有効になっている環境で動作し、JPEG画像の読み込み、編集、再保存など、さまざまな画像処理の起点としてよく利用されます。構文resource imagecreatefromjpeg(string $filename)パラメータimagecreatefromjpeg()が受け取るパラメータは$filenameの1つだけです。ここには、読み込む