PHPで正方形のサムネイルを作る関数(jpegのみ作成)

jpegのサムネイルを作成しようと思ったときにいろいろなライブラリがありすぎて、なにぶんtoo muchなのです。単純にjpegの正方形を作りたいだけななのに意外とよいものがない。



というわけで作りました。



使い方は


bool jpeg_thumbnail($source, $dest, $size);
$source = フォームからアップロードされたファイルパス(/tmpなどにファイルが有ります)

$dest = 保存したい先のファイル名(ファイル名です。間違いなく)

$size = 正方形にしたいpx数。指定しない場合は150pxになります。




function jpeg_thumbnail($source, $dest, $size=150) {

$thumb_size = $size;
$size = getimagesize($source);
if(!$size) return false;

$width = $size[0];
$height = $size[1];
$x = $y = 0;
if($width> $height) {
$x = ceil(($width - $height) / 2 );
$width = $height;
} elseif($height> $width) {
$y = ceil(($height - $width) / 2);
$height = $width;
}
$new_im = ImageCreatetruecolor($thumb_size,$thumb_size);
$im = imagecreatefromjpeg($source);
imagecopyresampled($new_im,$im,0,0,$x,$y,$thumb_size,$thumb_size,$width,$height);
return imagejpeg($new_im,$dest,100);
}