PHPで正方形のサムネイルを作る関数(jpegのみ作成)
jpegのサムネイルを作成しようと思ったときにいろいろなライブラリがありすぎて、なにぶんtoo muchなのです。単純にjpegの正方形を作りたいだけななのに意外とよいものがない。
というわけで作りました。
使い方は
$source = フォームからアップロードされたファイルパス(/tmpなどにファイルが有ります)
bool jpeg_thumbnail($source, $dest, $size);
$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);
}