PHPで画像を取り扱う
画像サイズを取得
$array = getimagesize("img/aaa.jpg");
// 幅
$width = $array[0];
// 高さ
$height = $array[1];
画像を縮小してバイナリデータを取得
$max_width = 120; // 最大幅
$max_height = 160; // 最大高さ
$img = $_FILES["jpg_source"]["tmp_name"];
$arrImg = getimagesize($img);
$old_width = $arrImg[0]; // 幅
$old_height = $arrImg[1]; // 高さ
if ($old_width > $max_width || $old_height > $max_height) {
// 幅が最大幅を超えている場合
if ($old_width > $max_width) {
$new_width = $max_width;
// 係数
$coefficient = $max_width / $old_width;
$new_height = $old_height * $coefficient;
$new_height = floor($new_height);
} else {
$new_width = $old_width;
$new_height = $old_height;
}
// 高さが最大高さを超えている場合
if ($new_height > $max_height) {
$new_height = $max_height;
$coefficient = $max_height / $old_height;
$new_width = $old_width * $coefficient;
$new_width = floor($new_width);
}
$src_im = ImageCreateFromJPEG($img);
$dst_im = imagecreatetruecolor($new_width,$new_height);
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$new_width,$new_height,$old_width,$old_height);
// バイナリデータを取得
ob_start();
ImageJPEG($dst_im);
$binary_data = ob_get_contents();
ob_end_clean();
unset($src_im,$dst_im);
} else {
// バイナリデータを取得
$fp = fopen($img, 'rb');
$binary_data = fread($fp, filesize($img));
$new_width = $old_width;
$new_height = $old_height;
}