画像リサイズ処理の修正
Showing
1 changed file
with
12 additions
and
24 deletions
... | @@ -1257,7 +1257,6 @@ class WFFileBrowser extends JObject | ... | @@ -1257,7 +1257,6 @@ class WFFileBrowser extends JObject |
1257 | 1257 | ||
1258 | // 登録する画像の幅がリサイズ後の幅(1000px)より大きいことを確認(1000px以上でリサイズ処理) | 1258 | // 登録する画像の幅がリサイズ後の幅(1000px)より大きいことを確認(1000px以上でリサイズ処理) |
1259 | if ($width > $new_width) { | 1259 | if ($width > $new_width) { |
1260 | |||
1261 | // 画像情報から画像の高さを取得 | 1260 | // 画像情報から画像の高さを取得 |
1262 | $height = (int) $image_info[1]; | 1261 | $height = (int) $image_info[1]; |
1263 | // 画像タイプを取得 | 1262 | // 画像タイプを取得 |
... | @@ -1267,43 +1266,32 @@ class WFFileBrowser extends JObject | ... | @@ -1267,43 +1266,32 @@ class WFFileBrowser extends JObject |
1267 | // リサイズ後の高さを定義(アスペクト比を維持して定義) | 1266 | // リサイズ後の高さを定義(アスペクト比を維持して定義) |
1268 | $new_height = $new_width * $aspect_ratio; | 1267 | $new_height = $new_width * $aspect_ratio; |
1269 | 1268 | ||
1270 | $base_image = null; | ||
1271 | switch ($image_type) { | 1269 | switch ($image_type) { |
1272 | // 画像タイプがPNGの場合の処理 | 1270 | // 画像タイプがPNGの場合の処理 |
1273 | case 'image/png': | 1271 | case 'image/png': |
1274 | // 元の画像から新しい画像を作る準備 | 1272 | // 元の画像から新しい画像を作る準備 |
1275 | $base_image = imagecreatefrompng($tmp_file); | 1273 | $base_image = imagecreatefrompng($tmp_file); |
1274 | // サイズを指定して新しい画像のキャンバスを作成 | ||
1275 | $new_image = imagecreatetruecolor($new_width, $new_height); | ||
1276 | // 画像のコピーと伸縮 | ||
1277 | imagecopyresampled($new_image, $base_image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); | ||
1278 | // コピーした画像を出力 | ||
1279 | imagepng($new_image, $tmp_file); | ||
1276 | break; | 1280 | break; |
1277 | // 画像タイプがJPEGの場合の処理 | 1281 | // 画像タイプがJPEGの場合の処理 |
1278 | case 'image/jpeg': | 1282 | case 'image/jpeg': |
1279 | // 元の画像から新しい画像を作る準備 | 1283 | // 元の画像から新しい画像を作る準備 |
1280 | $base_image = imagecreatefromjpeg($tmp_file); | 1284 | $base_image = imagecreatefromjpeg($tmp_file); |
1285 | // サイズを指定して新しい画像のキャンバスを作成 | ||
1286 | $new_image = imagecreatetruecolor($new_width, $new_height); | ||
1287 | // 画像のコピーと伸縮 | ||
1288 | imagecopyresampled($new_image, $base_image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); | ||
1289 | // コピーした画像を出力 | ||
1290 | imagejpeg($new_image, $tmp_file); | ||
1281 | break; | 1291 | break; |
1282 | default: | 1292 | default: |
1283 | break; | 1293 | break; |
1284 | } | 1294 | } |
1285 | |||
1286 | // $base_imageがnullから更新されている場合を確認 | ||
1287 | if ($base_image) { | ||
1288 | // サイズを指定して新しい画像のキャンバスを作成 | ||
1289 | $new_image = imagecreatetruecolor($new_width, $new_height); | ||
1290 | // 画像のコピーと伸縮 | ||
1291 | imagecopyresampled($new_image, $base_image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); | ||
1292 | switch ($image_type) { | ||
1293 | // 画像タイプがPNGの場合の処理 | ||
1294 | case 'image/png': | ||
1295 | // コピーした画像を出力 | ||
1296 | imagepng($new_image, $tmp_file); | ||
1297 | break; | ||
1298 | // 画像タイプがJPEGの場合の処理 | ||
1299 | case 'image/jpeg': | ||
1300 | // コピーした画像を出力 | ||
1301 | imagejpeg($new_image, $tmp_file); | ||
1302 | break; | ||
1303 | default: | ||
1304 | break; | ||
1305 | } | ||
1306 | } | ||
1307 | } | 1295 | } |
1308 | } | 1296 | } |
1309 | 1297 | ... | ... |
-
Please register or sign in to post a comment