GDを使ったサムネイル作成
- 2011年09月09日
- web
よーやっと、よーやっと出来た!!!!
GDを使ったサムネイル出来ましたよ。
長った…。本当に長かった。
5月のゴールデンウィークから調べてたけど、PHP基本知識が無いから
サイトで紹介されているコードを丸コピーしても動かない。
なんや知らんがexec(“convert -resize {$new_width}x{$new_height}! $destFilename $thumbnailFilename”, $result, $status);を使ったやり方で動いたので良しとしていたが
一度に3タイプサイズのサムネイルがやりたくて、質問サイトに質問したら
『 まぁまともなPHPを理解している人ならこんなめんどくさい環境調査するよりPHPならGDを利用するのが常識でしょうね。』
との回答でした。
ここでやはりGDでは無くては恥ずかしいのかと思い再度挑戦・研究をし始めて一応起動。
【SimpleImage.php】を使った方法。
素晴らしい!!!!http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php
<?php include('SimpleImage.php'); $imgDir = 'img'; $thumbnailDir = 'thumbnail'; $file_nm = $_FILES['upfile']['name']; $extension = pathinfo($file_nm, PATHINFO_EXTENSION);//拡張子取得 $image = new SimpleImage(); $image->load($_FILES['upfile']['tmp_name']); $image->resizeToWidth(150); $image->save($thumbnailDir ."/" . "test".$extension); ?>
こちらが基本タイプかな?
<?php $updir = "img";//保存ディレクトリ // -- ① // 画像を読み込む。 $file_path = $_FILES["upfile"]["tmp_name"]; $image = ImageCreateFromJPEG($file_path); //JPEGファイルを読み込む // -- ② // 画像のサイズを取得。 $width = ImageSX($image); //横幅(ピクセル) $height = ImageSY($image); //縦幅(ピクセル) // -- ③ // 縮小した画像のサイズを決める。 // 例えば、幅を100ピクセルに固定したい場合は以下のとおり。 $new_width = 100; $rate = $new_width / $width; //圧縮比 $new_height = $rate * $height; // -- ④ // 空の画像を作成する。 $new_image = ImageCreateTrueColor($new_width, $new_height); // -- ⑤ // 画像を普通にリサイズコピーする場合。 ImageCopyResized($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height); $updirthum = $updir . "/thum/" . $_FILES["upfile"]["name"]; //imageJPEGで圧縮した画像をJPEGとして保存します。 imageJPEG($new_image, $updirthum, 70)or die("could not save image"); ?>