PHPのimagecopy()関数とは?画像の一部をコピーする方法を解説
PHPのimagecopy()関数は、ある画像(ソース画像)の一部を別の画像(コピー先画像)にコピーするために使用されるGDライブラリの関数です。画像の合成やサムネイル作成、ウォーターマークの追加など、さまざまな画像処理に活用できます。
構文
imagecopy( dst_img, src_img, dst_x, dst_y, src_x, src_y, src_w, src_h)
パラメータ
imagecopy()関数には、以下の8つのパラメータを指定します。
dst_im:コピー先の画像リンクリソースを指定します。
src_im:コピー元の画像リンクリソースを指定します。
dst_x:コピー先のX座標を指定します。
dst_y:コピー先のY座標を指定します。
src_x:コピー元のX座標を指定します。
src_y:コピー元のY座標を指定します。
src_w:コピーする領域の幅(ピクセル)を指定します。
src_h:コピーする領域の高さ(ピクセル)を指定します。
戻り値
imagecopy()関数は、コピーが成功した場合にTRUEを、失敗した場合にFALSEを返します。
使用例
以下は、GIF画像を読み込んで新しい画像にコピーする基本的な例です。
<?php
$srcImg = imagecreatefromgif('https://www.tutorialspoint.com/images/html.gif');
$dest = imagecreatetruecolor(170, 140);
imagecopy($dest, $srcImg, 0, 0, 0, 0, 180, 260);
header('Content-Type: image/gif');
imagegif($dest);
imagedestroy($dest);
imagedestroy($srcImg);
?>
このコードでは、imagecreatefromgif()でGIF画像を読み込み、imagecreatetruecolor()で170×140ピクセルの空の画像を作成した後、imagecopy()でコピー元の画像を転送しています。
出力結果
上記のコードを実行すると、次のような画像が出力されます。

画像の一部をコピーする例
次に、画像の一部だけを指定してコピーする例を見てみましょう。
<?php
$srcImg = imagecreatefromgif('https://www.tutorialspoint.com/images/html.gif');
$dest = imagecreatetruecolor(170, 140);
imagecopy($dest, $srcImg, 10, 20, 0, 0, 100, 280);
header('Content-Type: image/gif');
imagegif($dest);
imagedestroy($dest);
imagedestroy($srcImg);
?>
この例では、コピー先の座標を(10, 20)にずらし、コピー元から幅100ピクセル・高さ280ピクセルの領域を切り取ってコピーしています。このようにパラメータを調整することで、任意の位置とサイズの部分コピーが可能になります。
出力結果
上記のコードを実行すると、次のような画像が出力されます。

まとめ
imagecopy()関数を使うことで、PHPで簡単に画像の一部を別の画像へコピーできます。座標とサイズを自由に指定できるため、画像のトリミングや合成など、柔軟な画像処理を実現したい场合にぜひ活用してみてください。
-
PHPのimagecopymergegray()関数の使い方を徹底解説
PHPのimagecopymergegray()関数は、画像の一部をグレースケールに変換しながらコピーし、別の画像に合成(マージ)するための関数です。GDライブラリに含まれる画像処理関数の一つで、透かし(ウォーターマーク)の作成や画像の重ね合わせなどに活用できます。構文imagecopymergegray ( dst_img, src_img, dst_x, dst_y, src_x, src_y, src_w, src_h, pct )パラメータdst_imコピー先の画像リンクリソースを指定します。src_imコピー元の画像リンクリソースを指定します。dst_xコピー先のX座標を指定します。
-
PHPのimagecopymerge()関数とは?画像のコピーと合成方法を解説
imagecopymerge()関数とはPHPのimagecopymerge()関数は、ある画像(コピー元)の一部分を別の画像(貼り付け先)にコピーし、指定した透明度で合成(マージ)するためのGDライブラリ関数です。透かし(ウォーターマーク)の追加など、複数の画像を重ね合わせたい場面でよく利用されます。構文imagecopymerge ( dst_img, src_img, dst_x, dst_y, src_x, src_y, src_w, src_h, pct )パラメータdst_img:貼り付け先の画像リンクリソースを設定します。src_img:コピー元の画像リンクリソースを設定します。