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

PHPのimagecolortransparent()関数とは?使い方とサンプルコードを解説

PHPのimagecolortransparent()関数は、画像内の指定した色を透明色として設定するために使用される関数です。この関数を使うことで、PNG形式などの画像で特定の色を透過させることができます。

構文

imagecolortransparent ( img, color )

パラメータ

  • img:imagecreatetruecolor()関数などで作成した画像リソースを指定します。

  • color:imagecolorallocate()関数で作成したカラー識別子(色ID)を指定します。

戻り値

imagecolortransparent()関数は、新しく設定された透明色の識別子を返します。なお、colorが指定されておらず、かつ画像に透明色が設定されていない場合は -1 を返します。

使用例

以下に、imagecolortransparent()関数を使用した具体的なサンプルコードを示します。

<?php
   // 500×400の画像を作成
   $img = imagecreatetruecolor(500, 400);
   // 青色を割り当てる
   $blue = imagecolorallocate($img, 0, 0, 255);
   // 黒色を割り当てる(これを透明色にする)
   $transparent = imagecolorallocate($img, 0, 0, 0);
   // 黒色を透明色として設定
   imagecolortransparent($img, $transparent);
   // 青色の塗りつぶし矩形を描画
   imagefilledrectangle($img, 80, 90, 400, 220, $blue);
   // PNG画像として出力
   header('Content-Type: image/png');
   imagepng($img);
   // メモリを解放
   imagedestroy($img);
?>

出力結果

上記のコードを実行すると、黒色部分が透明化されたPNG画像が出力されます。背景が透明になっているため、画像を重ね合わせた際に下のコンテンツが透けて見えるようになります。

PHPのimagecolortransparent()関数とは?使い方とサンプルコードを解説

注意点

  • 透明色として設定できるのは1色のみです。複数の色を透明にしたい場合は、あらかじめそれらの色を同じ色IDに統一しておく必要があります。

  • 透明色の設定は主にPNGやGIF形式で有効です。JPEG形式では透過をサポートしていないため、期待した結果が得られません。

  • 処理が完了したら、imagedestroy()関数を呼び出してメモリを解放することをおすすめします。

  1. PHPのimagefilledrectangle()関数の使い方 – 塗りつぶし矩形を描画する方法

    PHPのimagefilledrectangle()関数は、指定した座標をもとに、色で塗りつぶされた矩形(長方形)を画像上に描画するためのGDライブラリ関数です。図形の作成やグラフィック処理などでよく利用されます。構文imagefilledrectangle( $img, $x1, $y1, $x2, $y2, $color )パラメータimgimagecreatetruecolor() などで作成した画像リソースを指定します。x1矩形の1つ目の頂点(始点)のX座標を指定します。y1矩形の1つ目の頂点(始点)のY座標を指定します。x2矩形の2つ目の頂点(対角の終点)のX座標を指定します。y2矩

  2. PHPのimagefilledellipse()関数とは?塗りつぶし楕円の描画方法を解説

    PHPのimagefilledellipse()関数は、指定した座標を中心として塗りつぶしのある楕円を描画するために使用されるGDライブラリの関数です。図形描画や画像生成を行う際に非常に便利な関数の一つです。 構文 imagefilledellipse( $img, $cx, $cy, $width, $height, $color ) パラメータ img:imagecreatetruecolor()関数などで作成した画像リソースを指定します。この画像に対して楕円が描画されます。 cx:楕円の中心のX座標(横方向の位置)を指定します。 cy:楕円の中心のY座標(縦方向の位置)を指定します。