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

PHPのimageistruecolor()関数で画像がトゥルーカラー画像かどうかを判定する方法

imageistruecolor() は、PHPに標準で組み込まれている関数の一つで、指定された画像がトゥルーカラー画像であるかどうかを判定するために使用されます。トゥルーカラー画像とは、各ピクセルがRGB(赤・緑・青)のカラー値によって表現される画像のことです。

構文

bool imageistruecolor(resource $image)

パラメータ

imageistruecolor() 関数は、1つのパラメータ $image を受け取ります。このパラメータには、判定対象となる画像リソースを渡します。

戻り値

imageistruecolor() は、指定された画像がトゥルーカラー画像であれば true を返し、そうでなければ false を返します。

補足:トゥルーカラー画像とは

PHPのGDライブラリでは、imagecreatetruecolor() 関数などで作成される画像がトゥルーカラー画像に該当します。一方、imagecreate() で作成される画像はパレット(インデックスカラー)形式となるため、トゥルーカラーとはみなされません。画像処理を行う前にこの関数で判別しておくと、意図しない色の劣化を防ぐことができます。

例1:トゥルーカラー画像を判定する

<?php
    // imagecreatefrompng()関数を使ってPNG画像から画像インスタンスを作成
    $img = imagecreatefrompng('C:\xampp\htdocs\Images\img44.png');

    // 画像がトゥルーカラーかどうかを判定
    $istruecolor = imageistruecolor($img);

    // 結果を出力
    if($istruecolor) {
      echo "指定された入力画像はトゥルーカラーです";
    }
?>

出力結果

// 入力:RGB画像

PHPのimageistruecolor()関数で画像がトゥルーカラー画像かどうかを判定する方法

// 実行結果

指定された入力画像はトゥルーカラーです。

例2:グレー画像(非トゥルーカラー)を判定する

<?php
    // imagecreatefrompng()関数を使ってグレー画像から画像インスタンスを作成
    $img = imagecreatefrompng('C:\xampp\htdocs\Gray.png');
   
    // 画像がトゥルーカラーかどうかを判定
    $istruecolor = imageistruecolor($img);
 
    // 結果を出力
    if(!$istruecolor) {
      echo "指定された入力画像はトゥルーカラーではありません";
    }
?>

出力結果

// 入力:グレースケール画像

PHPのimageistruecolor()関数で画像がトゥルーカラー画像かどうかを判定する方法

// 実行結果

指定された入力画像はトゥルーカラーではありません。

まとめ

imageistruecolor() 関数を使えば、画像がトゥルーカラー形式かどうかを簡単に判別できます。パレット画像を扱う場合は必要に応じて imagetruecolortopalette()imagepalettetotruecolor() などの関数で変換することも可能なので、画像加工の前処理として活用すると良いでしょう。

  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つだけです。ここには、読み込む