• アーカイブ

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");

?>
Share on GREE
はてなブックマーク - GDを使ったサムネイル作成
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed
このエントリーをはてなブックマークに追加

コメントをどうぞ

About Author

Written by Dust

発展途上中のデザイナー