PHPのImageCopyで中央寄せしたい

ある画像に別の画像を中央に貼り付けたいってことないかな?

以下の様なことがしたい!
背景
背景画像

ロゴ
ロゴ画像

合成後画像
合成後画像


PHPのサンプルソース


$background = imagecreatefrompng ( "res/background.png" );
$bkWidth = imagesx ( $background );
$bkHeight = imagesy ( $background );

$logo = imagecreatefrompng ( "res/php1_2_logo.png" );
$logoWidth = imagesx ( $logo );
$logoHeight = imagesy ( $logo );

ImageCopy ( $background, $logo, 
            ($bkWidth - $logoWidth) / 2, ($bkHeight - $logoHeight) / 2,
             0, 0, $logoWidth, $logoHeight );

imagepng ( $background, "out/output.png", 9 );

以下補足情報

画像周りのPHPの関数紹介


imagecreatefrompng ( filePath );
指定したパスからpng画像を読み込むことができます。
pngのところを変えればjpeg,gifも読み込めます。

imagecreatefromstring( imageData );
イメージストリームから新規イメージを作成します。
画像がbase64形式でアップロードされた時なんかに使うかも(使った)
拡張子は割りと融通がきくみたいです。

imagex( imageData );
imagey( imageData );
画像リソースの高さと幅を取得します。

imagepng ( imageData, filPath, quality );
ファイル出力
これもpngの部分を変えればjpegとかgifとかいけます。

主要なものを上げてみたけどマニュアル見たほうが早いかもね。
http://php.net/manual/ja/ref.image.php

2015年10月22日木曜日