画像をリサイズ
function createThumbs( $imagePath) {
// 画像の情報を取得
$size = getimagesize( $path . $actual_image_name);
// JPEG
if ($size['mime'] == 'image/jpeg') {
$image = imagecreatefromjpeg( $path . $actual_image_name );
} else
// PNG
if ($size['mime'] == 'image/png') {
$image = imagecreatefrompng( $path . $actual_image_name);
} else
// GIF
if ($size['mime'] == 'image/gif') {
$image = imagecreatefromgif( $path . $actual_image_name);
}
$width = imagesx( $image );
$height = imagesy( $image );
if ($width >= $height ) {
// 横長の画像の時
$side = $height;
$x = floor( ( $width - $height) / 2);
$y = 0;
$width = $side;
} else {
// 縦長の画像の時
$side = $width;
$y = floor( ( $height - $width) / 2);
$x = 0;
$height = $side;
}
$thumbnail_width = 150;
$thumbnail_height = 150;
$thumbnail = imagecreatetruecolor( $thumbnail_width, $thumbnail_height );
// PNG
if ($size['mime'] == 'image/png') {
imagealphablending( $thumbnail, false); // アルファブレンディングをoffにする
imagesavealpha( $thumbnail, true); // 完全なアルファチャネル情報を保存するフラグをonにする
} else
// GIF
if ($size['mime'] == 'image/gif') {
$alpha = imagecolortransparent( $image); // 元画像から透過色を取得する
imagefill( $thumbnail, 0, 0, $alpha); // その色でキャンバスを塗りつぶす
imagecolortransparent( $thumbnail, $alpha); // 塗りつぶした色を透過色として指定する
}
imagecopyresampled( $thumbnail, $image, 0, 0, $x, $y, $thumbnail_width, $thumbnail_height, $width, $height);
// JPEG
if ($size['mime'] == 'image/jpeg') {
imagejpeg( $thumbnail, $path . $actual_image_name . '_thumb' );
} else
// PNG
if ($size['mime'] == 'image/png') {
imagepng( $thumbnail, $path . $actual_image_name . '_thumb' );
} else
// GIF
if ($size['mime'] == 'image/gif') {
imagegif( $thumbnail, $path . $actual_image_name . '_thumb' );
}
}
画像の形式を取得する
$size = getimagesize( 'ファイルパス');
// $sizeデバッグ
Array
(
[0] => 599 // 画像の幅
[1] => 450 // 画像の高さ
[2] => 3 //
[3] => width="599" height="450" //
[bits] => 8 //
[mime] => image/png // MIMEタイプ
)
関連記事
-
-
Composer インストール
# curl -sS https://getcomposer.org/installer | php # mv composer.phar /usr/local/bin/composer
-
-
時刻系関数
PHP ミリ秒/マイクロ秒 現在時刻をミリ(マイクロ)秒まで表示やログ出力する。microtime()を使用します。 list( $microSec, $timeStamp) = expl
-
-
文字列操作
パディング str_pad 対象文字列に対して、特定の文字でパディング(埋める)を行います。 str_pad ( 対象文字列, パディング後の文字数, パディングの文字, パディングの方向) st






