HOME   入り口   MENU


No29.大きさを変えようっ ---- GDライブラリ[3]




画像ができて文字も入れたらその画像の大きさを変えたいなぁ〜
なんて思います。(^_^)
画像の大きさを変える手順を書いてみましょう〜。
まず、大きさを変える画像の縦横サイズを調べます。

list($width,$height)=getimagesize("img/php/20040218.jpg");

getimagesize関数を使います。

listを使っているのは配列で戻り値が帰ってきます。
要素は (1)幅サイズ、(2)縦サイズ、(3)画像のタイプ、(4)width="xxx",hegiht="zzz"
の4つが返ってきますが、ここでは幅と縦だけを使うので
list($width,$height)を左辺に入れます(^_^)

<?php
list($width,$height)=getimagesize("img/php/20040218.jpg");
echo "幅:" .$width ." 縦:" .$height;
?>

としてタイトル画像のサイズを調べてみましょう(^_^)

幅:289 縦:206

と上の画像を持った2人の画像はこのサイズだということが分ります。

画像の大きさが分ったら次はファイルからプログラムで操作できる新規画像を作ります。
この画像が元画像になります。

$src=@imagecreatefromjpeg("img/php/20040218.jpg");

今回はjpg画像なのでimagecreatefromjpegを使いますが
png画像のときはimagecreatefrompngとなります。
-- gif画像はライセンスの問題などで現在のGDでは操作できません。--

次にサイズ変更後の画像領域を作成します。
大きさは元画像の半分にしてみましょう。
$awidth=$width/2;
$aheight=$height/2;
$dst=imagecreatetruecolor($awidth,$aheight);


まとめて書くと

<?php
src=@imagecreatefromjpeg("img/php/20040218.jpg");
$awidth=$width/2;
$aheight=$height/2;
$dst=imagecreatetruecolor($awidth,$aheight);
imagecopyresized($dst,$src,0,0,0,0,$awidth,$aheight,$width,$height);
imagejpeg($dst,"img/php/20040218small.jpg");
?>




縦横1/2になった画像を作れました。

サンプル: こう書くと   ==>    こうなる!

文字を描く



(オマケ)

getimagesizeの4つめの要素はにそのまま使えますっ♪
<?php
list($width,$height,$type,$imgtag)=getimagesize("img/php/20040218.jpg");
echo "<img src=\"img/php/20040218.jpg\" $imgtag>";
?>

この画像のソース
<img src="img/php/20040218.jpg" width="289" height="206">











  HOME