PHPのimagepalettecopy()関数で画像から画像へパレットをコピーする方法
imagepalettecopy() は、PHPに標準で組み込まれている関数の一つで、ある画像から別の画像へカラーパレットをコピーするために使用されます。ソース画像(コピー元)のパレット情報を、デスティネーション画像(コピー先)へそのまま複製できます。
構文
void imagepalettecopy(resource $destination, resource $source)
パラメータ
imagepalettecopy() は $source と $destination の2つの引数を受け取ります。
$destination − パレットのコピー先となる画像リソースを指定します。
$source − パレットのコピー元となる画像リソースを指定します。
戻り値
imagepalettecopy() は戻り値を返しません。
使用例1
<?php
// imagecreate()関数を使って2つのパレット画像を作成します
$palette1 = imagecreate(700, 300);
$palette2 = imagecreate(700, 300);
// 1つ目のパレット画像の背景として
// グレー色を割り当てます
$gray = imagecolorallocate($palette1, 122, 122, 122);
// 画像1から画像2へパレットをコピーします
imagepalettecopy($palette2, $palette1);
// imagecolorallocate() を再度呼び出さなくても、
// コピーされたパレット経由でグレー色を使用できます
imagefilledrectangle($palette2, 0, 0, 99, 99, $gray);
// 画像をブラウザへ出力します
header('Content-type: image/png');
imagepng($palette2);
imagedestroy($palette1);
imagedestroy($palette2);
?>
出力結果

この例では、画像1で定義したグレー色がパレットごと画像2へ引き継がれるため、画像2側で改めて色を割り当てることなく、同じ色で図形を描画できています。
使用例2
<?php // imagecreate()関数を使って2つのパレット画像を作成します $palette1 = imagecreate(500, 200); $palette2 = imagecreate(500, 200); // 緑色を作成します $green = imagecolorallocate($palette1, 0, 255, 0); // 作成した緑色をパレット1の背景として塗りつぶします imagefilledrectangle($palette1, 0, 0, 99, 99, $green); // 画像1から画像2へパレットをコピーします imagepalettecopy($palette2, $palette1); // 各画像に含まれる色の数を取得します $color1 = imagecolorstotal($palette1); $color2 = imagecolorstotal($palette2); echo "画像1の色数は " . $color1 . "<br>"; echo "画像2の色数は " . $color2; ?>
出力結果
画像1の色数は 1 画像2の色数は 1
このように、imagecolorstotal() 関数で各画像のパレット内の色数を確認すると、コピー元とコピー先の両方が同じ色数(この例では1色)になっていることが分かります。パレットベースの画像処理において、imagepalettecopy() を使えば色情報の再定義の手間を省き、効率的に画像を生成できるのが大きなメリットです。
-
PHPのimagecreatefrompng()関数でPNGファイルやURLから新しい画像を作成する方法
PHPのimagecreatefrompng()は、標準で用意されている組み込み関数のひとつで、PNGファイルまたはURLから新しい画像を作成します。指定されたファイル名から取得した画像を表す「画像リソース識別子」を返します。なお、この関数を利用するには、PHP環境にGDライブラリが組み込まれている必要があります。構文resource imagecreatefrompng(string $filename)パラメータimagecreatefrompng()が受け取るパラメータは$filenameのひとつだけです。この引数には、読み込みたいPNG画像のファイル名、または画像へのパス(URL)を指
-
PHPのimagecreatefromjpeg()関数でJPEGファイルから新しい画像を作成する方法
imagecreatefromjpeg()は、PHPに組み込まれている関数の一つで、JPEGファイルから新しい画像を生成するために使用されます。指定したファイル名から取得した画像を表す画像リソース識別子(イメージID)を返します。この関数は、GDライブラリが有効になっている環境で動作し、JPEG画像の読み込み、編集、再保存など、さまざまな画像処理の起点としてよく利用されます。構文resource imagecreatefromjpeg(string $filename)パラメータimagecreatefromjpeg()が受け取るパラメータは$filenameの1つだけです。ここには、読み込む