画像をコピーし、リサイズ(拡大・縮小) - imagecopyresized()
当ページのリンクには広告が含まれています。
プログラミング言語PHPで、画像をコピーし、リサイズ(拡大・縮小)する関数 imagecopyresized() を紹介します。
画像を編集する場合になどに利用します。
imagecopyresized 関数
bool imagecopyresized ( resource $img1, resource $img2, int $x1, int $y1, int $x2, int $y2, int $w1, int $h1, int $w2, int $h2 ) 指定したオリジナル画像を矩形コピーし、指定したコピー先にリサイズ(拡大・縮小)します。
引数 $img1 コピー先の画像リソースを指定します。 $img2 オリジナル画像のリソースを指定します。 $x1 コピー先画像のx座標。 $y1 コピー先画像のy座標。 $x2 オリジナル画像のx座標。 $y2 オリジナル画像のy座標。 $w1 コピー先画像の横幅。 $h1 コピー先画像の高さ。 $w2 オリジナル画像の横幅。 $h2 オリジナル画像の高さ。
返り値
画像のコピー・リサイズに成功した場合は true を、その他の場合は false を返します。
サンプルコード
ここでは読み込んだPNG画像をコピーし、拡大表示するサンプルコードをみてみます。
imagecopyresized ( コピー先の画像リソース, オリジナル画像のリソース, コピー先のx座標, コピー先のy座標, オリジナルのx座標, オリジナルのy座標, コピー先の横幅, コピー先の高さ, オリジナルの横幅, オリジナルの高さ )
<?php // コンテンツがPNG画像であることをブラウザにお知らせ header ('Content-Type: image/png'); // オリジナル画像のファイルパスを指定 $org_file = 'images/sakura.png'; list($org_w, $org_h) = getimagesize($org_file); // 拡大するサイズを指定 $copy_w = $org_w*2; $copy_h = $org_h*2; // オリジナルファイルの画像リソース $org_img = imagecreatefrompng($org_file); // コピー画像のリソース $copy_img = imagecreatetruecolor($copy_w, $copy_h); // リサイズ imagecopyresized($copy_img, $org_img, 0, 0, 0, 0, $copy_w, $copy_h, $org_w, $org_h); // 拡大したコピー画像を表示 imagepng($copy_img); // 画像リソースを破棄 imagedestroy($org_img); imagedestroy($copy_img); ?>
画像を拡大する PHP スクリプトを以下の HTML から呼び出します。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>imagecopyresized() - PHP入門 - Webkaru</title> </head> <body> <p>オリジナル画像</p> <img src="images/sakura.png" /> <p>拡大画像</p> <img src="function-imagecopyresized.php" /> </body> </html>
それでは画像を表示する HTML へアクセスしてみましょう。
サンプルにアクセスするとこのようにやたらとでかい!拡大された桜のPNG画像が表示されます。