サーバー側で画像サイズを調整すると、ブラウザーで処理する場合に比べて多くの利点があります。
この記事では、PHP がサーバー側で画像のサイズを変更する方法を紹介します。
コードには 2 つの部分が含まれています。
- imageResizer()は画像の処理に使用されます
- loadimage() は画像 URL をより単純な形式で挿入します
-
- function imageResizer($url, $width, $height) {
- header('Content-type: image/jpeg');
- list($width_orig, $height_orig) = getimagesize ($url);
- $ratio_orig = $width_orig/$height_orig;
- if ($width/$height > $ratio_orig) {
- $width = $height*$ratio_orig;
- } else {
- $height = $ width/$ratio_orig;
- }
- // 画像をリサンプリングします
- $image_p = imagecreatetruecolor($width, $height);
- $image = imagecreatefromjpeg($url);
- imagecopyresampled($image_p, $image, 0, 0 , 0, 0, $width, $height, $width_orig, $height_orig);
- // 画像を出力します
- imagejpeg($image_p, null, 100);
- }
- // POST と GET の両方で動作します
- $method = $_SERVER['REQUEST_METHOD'];
- if ($method == 'GET') {
- imageResize($_GET['url'], $_GET['w'], $_GET['h' ]);
- } elseif ($method == 'POST') {
- imageResize($_POST['url'], $_POST['w'], $_POST['h']);
- }
- // 処理が簡単になります
- function loadImage($url, $width, $height){
- echo 'image.php?url=', urlencode($url) ,
- '&w=',$width,
- '&h= ',$height;
- }
- ?>
-
コードをコピー
- //上記のコードは、image.php.というファイル内にあります。
- //画像は次のように表示されます:
コードをコピー
|