CakePHP 画像のサイズを決めて出力する
アップロードした画像を任意のサイズにして表示する
画像のアップロードが出来たらその画像を丁度いいサイズにして出したいでよね ということでやり方をアップします。
前提として「webroot」に「upimg」というフォルダを作っているものとします。
今回は私は記事一覧を表示するところで画像の表示を行いました。 なのでforeachの中だと考えてください。
まず画像のファイルパスを取得していきます。
$article_id = $article['Article']['id']; $id = "/img/" . $article_id . ".jpg" ; // コピー元画像の指定 $path = WWW_ROOT . "upimg/" . $article_id . ".jpg"; //出力先のファイル $file = WWW_ROOT . "img/" . $article_id . ".jpg";
続いて画像サイズの取得や表示するサイズ設定をしていきます。
// ファイル名から、画像インスタンスを生成 $in = imagecreatefromjpeg($path); //元画像サイズ取得 $size = GetImageSize($path); $width = 200; $height = 200; //サイズを指定した背景画像を生成 $out = ImageCreateTrueColor($width, $height); //サイズ変更・コピー ImageCopyResampled($out, $in, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
最後に出力と不要なデータの削除を行います。
//画像保存 imagejpeg($out, $file ,100); echo $this->Html->image($id, array('alt' => 'baz')); ImageDestroy($in); ImageDestroy($out);
これで画像のサイズを指定して出力することができます。
それでは