今日の人気記事

  1. HTML内でPHPスクリプトを実行 - 埋め込み
  2. PHP + Apacheのインストール - Linux環境 - CentOS
  3. PHPのダウンロードとインストール - Windows環境
  4. PHP + Apache 環境の構築
  5. 外部コマンドを実行 - exec()、system()

画像をコピーし、リサイズ(拡大・縮小) - 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 へアクセスしてみましょう。

imagecopyresized() のサンプル

function-imagecopyresized-01
サンプルにアクセスするとこのようにやたらとでかい!拡大された桜のPNG画像が表示されます。

スポンサーリンク