バレンタインデーも近づいてきた今日この頃皆様どうお過ごしでしょうか。
例年、僕はとても憂鬱なのですが、今年は、ImageMagickがあるのでとてもハッピーになれそうです。
そんなどうでもいいことはおいて、たまに、Webサービスで正方形でサムネイルを出しているサイトがあると思います。
具体的にいうとこんな感じの画像が
sample posted by (C)フォト蔵
こんな感じの画像になるイメージです。
sample_imagick posted by (C)フォト蔵
こういう画像をPHPで作る場合には、imagickを使うと簡単に作れます。
<?php
$width = 200;
$height = 200;
//Imagick
$image = new imagick();
$image->readImage('sample.jpg');
$image->cropThumbnailImage($width, $height);
$image->writeImage('sample_imagick.jpg');
ついでに、MagickWandForPHPで作る場合にはこんな感じで作れます。<?php
$width = 200;
$height = 200;
//MagickWand
$image_handle = NewMagickWand();
MagickReadImage($image_handle, 'sample.jpg');
$width_org = MagickGetImageWidth($image_handle);
$height_org = MagickGetImageHeight($image_handle);
$scale_w = $width / $width_org;
$scale_h = $height / $height_org;
$scale = ($scale_w < $scale_h) ? $scale_h : $scale_w;
$width_thumbnail = $width_org * $scale;
$height_thumbnail = $height_org * $scale;
$x = ($width_thumbnail - $width) / 2;
$y = ($height_thumbnail - $height)/ 2;
MagickThumbnailImage($image_handle, $width_thumbnail, $height_thumbnail);
MagickCropImage($image_handle, $width, $height, $x, $y);
MagickWriteImage($image_handle, 'sample_magickwand.jpg');
皆様のご参考になれば幸いです。