2012-05-03 14 views
1

チャーター、ヨット、その他の車両の予約用の管理パネルをセットアップしました。車両の画像を1つだけアップロードし、読み込みに時間がかかるので、phpthumbライブラリを使わずに画像を複数のサイズにリサイズしますリストページでは、まず画像のキャッシュを作成します。そのため、管理者が複数の画像をアップロードしないように、単一の画像のサイズを変更するための簡単な方法が必要です。php thumbを使わずに複数の画像を取得する方法は?

+0

いずれにしても、画像のサイズを変更する必要があります。キャッシングを使用しない場合は、ページの読み込みごとにキャッシュを行う必要があります。キャッシュを使用する場合は、一度しか行われません。最悪の場合は、イメージがアップロードされた後、イメージのすべてのサイズを一度取得して、キャッシュにデータが読み込まれます。アップロード直後にこれを行うと、ユーザーがページを見るときではなく、パフォーマンスが低下することはありません。もちろん、私は、プロキシとブラウザの設定に依存する単純なWebサーバーのキャッシュではなく、ディスクにサイズ変更されたイメージをキャッシュすることを意味すると仮定します。 – Basic

答えて

0

ok thisは、必要な作業を行うための非常に素晴らしいライブラリです。

0

は、私は私が作ったこの機能を使用します。

<?php 
function getImageXY($image, $type='original') { 
    if($type == 'original') { 
     $imgDimsMax = 200; 
    } else if($type == 'thumb') { 
     $imgDimsMax = 60; 
    } else if($type == 'defualt') { 
     $imgDimsMax = 140; 
    } 

    $aspectRatio = 1; // deafult aspect ratio...keep the image as is. 

    // set the default dimensions. 
    $imgWidth = $imgDimsMax; 
    $imgHeight = $imgDimsMax; 

    list($width, $height, $type, $attr) = getimagesize($image); 
    //$imgHeight = floor ($height * ($imgWidth/$width)); 

    if($width == $height) { 
     // if the image is less than ($imgDimsMax x $imgDimsMax), use it as is.. 
     if($width < $imgDimsMax) { 
      $imgWidth = $width; 
      $imgHeight = $height; 
     } 
    } else { 
     if($width > $height) { 
      // set $imgWidth to $imgDimsMax and resize $imgHeight proportionately 
      $aspectRatio = $imgWidth/$width; 
      $imgHeight  = floor ($height * $aspectRatio); 
     } else if($width < $height) { 
      // set $imgHeight to $imgDimsMax and resize $imgWidth proportionately 
      $aspectRatio = $imgHeight/$height; 
      $imgWidth  = floor ($width * $aspectRatio); 
     } 
    } 

    return array($imgWidth, $imgHeight); 
} 
?> 

峠それ元の画像との寸法タイプ(異なる種類が異なるサイズを与える)と、それは新しい幅と高さを返します。希望はすなわち助けます。

+1

あなたのコードに感謝します。 –

関連する問題