-
-
//ソース画像のパス(ローカルファイルまたはリモート画像にすることができます)
- $src_path = '1.jpg';
- //最終的に保存された画像の幅
- $width = 160 ;
- //最終的に保存される画像の高さ
- $height = 120;
//ソース画像オブジェクト
- $src_image = imagecreatefromstring(file_get_contents($src_path));
- $src_width = imagex($ src_image);
- $src_height = imagey($src_image);
//同じ比率のサムネイルを生成します
- $tmp_image_width = 0;
- $tmp_image_height = 0;
- if ($src_width / $ src_height >= $width / $height) {
- $tmp_image_width = $width;
- $tmp_image_height =round($tmp_image_width * $src_height / $src_width);
- } else {
- $tmp_image_height = $height;
- $tmp_image_width =round ($tmp_image_height * $src_width / $src_height);
- }
$tmpImage = imagecreatetruecolor($tmp_image_width, $tmp_image_height);
- imagecopyresampled($tmpImage, $src_image, 0) , 0, 0, 0, $tmp_image_width, $tmp_image_height, $src_width, $src_height);
//白いエッジを追加します
- $final_image = imagecreatetruecolor($width, $height);
- $ color = imagecolorallocate($final_image, 255, 255, 255);
- imagefill($final_image, 0, 0, $color);
$x =round(($width - $tmp_image_width) / 2);
- $y =round(($height - $tmp_image_height) / 2);
imagecopy($final_image, $tmpImage, $x, $y, 0, 0, $ tmp_image_width, $tmp_image_height) ;
//出力画像
- header('Content-Type: image/jpeg');
- imagejpeg($final_image);
-
コードをコピー
|