ImageCopyResampledの引数

PHPは画像を扱うことができます。
点や線、四角、楕円などを描くことができます。
もっと複雑な場合には既存の画像からのコピー&ペーストが便利です。

「ImageCopyResampled」という関数があります。
コピー元となる画像の特定の四角の部分をコピーして、ペースト先の特定の部分に貼り付けることができます。
四角の大きさや縦横の比率が異なっても自動的に調整して貼り付けてくれます。

とても便利ですが、その反面、引数が複雑です。
公式マニュアルには次のように書かれています。

bool imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )

日本語に書き直すと次の通り。
関数名は大文字まじりとしても動作します。この方が分かりやすいです。

ImageCopyResampled(先_画像, 元_画像, 先_x座標, 先_y座標, 元_x座標, 元_y座標, 先_幅, 先_高さ, 元_幅, 元_高さ)

x座標、y座標はコピー元の四角の左上の座標です。
幅、高さはコピー元の四角の幅と高さです。
ペースト先の四角も同様です。

さらに表形式にしてみます。

ImageCopyResampled(
先_画像, 元_画像,
先_x座標, 先_y座標, 元_x座標, 元_y座標,
先_幅, 先_高さ, 元_幅, 元_高さ)

ペースト先画像とコピー元画像が交互に出てくる感じです。
なお、四角を描く関数「ImageRectangle」は左上の座標と右下の座標を指定するのに対し、「ImageCopyResampled」は四角の左上の座標と幅・高さを指定します。PHPの奇妙な点の一つかもしれません。

コメント

タイトルとURLをコピーしました