2017-06-11 30 views
0

フォルダからMBサイズの画像を取得していて、ページを読み込むのに時間がかかります。アップロードをしていない間に各画像のサイズをmbからkbに縮小します。私が見つけたのは、アップロード中にサイズを減らして表示することが可能なのですか?PHP:表示時の画像サイズを小さくする方法

foreach ($sql_getEachImage->results() as $res_child1) { 
    $ext = pathinfo($res_child1->file_name, PATHINFO_EXTENSION); 
    if($ext == "jpg" || $ext == "png" || $ext == "jpeg" || $ext == "gif"){ 
     $image_path = "ajax/news/".$res_child1->file_name; 
     echo'<div>'; 
     howCanIreduceThisMbSizeImage($image_path, 70); 
     echo'</div>'; 
    }else{ 
     echo'<div style="">'; 
      echo $res_child1->file_name; 
     echo'</div>'; 
    } 
} 

答えて

0

gd libraryを使用して画像のサイズを変更できます。

ファイルサイズが最も小さいので、すべての画像をjpegで保存する方法を作成できます。ブラウザにヘッダーを送信して送信するファイルの種類。あなたは、画像の縮小版を節約する方法を作成し、その画像を確認することができます:

<?php 

function reduceImageSize($source, $destination, $quality = 80) 
{ 
    // Create image based on mime type send the correct header 
    switch (mime_content_type($source)) { 
     case 'image/jpeg': 
      $im = imagecreatefromjpeg($source); 
      break; 

     case 'image/gif': 
      $im = imagecreatefromgif($source); 
      break; 

     case 'image/png': 
      $im = imagecreatefrompng($source); 
      break; 

     default: 
      // Image isn't jpeg, gif or png 
      throw new Exception('Unknown file type'); 
      break; 
    } 

    // Always save as jpeg 
    $path = pathinfo($destination, PATHINFO_DIRNAME); 
    $basename = pathinfo($destination, PATHINFO_BASENAME); 

    // Save reduced file 
    imagejpeg($im, $path . '/' . $basename . '.jpg', $quality); 

    // Clean up 
    imagedestroy($im); 
} 

// Loop through images and reduce size 
foreach ($sql_getEachImage->results() as $res_child1) { 
    try { 
     $basename = pathinfo($res_child1->file_name, PATHINFO_BASENAME); 
     $filename = 'ajax/news/small/' . $basename . '.jpg'; 

     if (!file_exists($filename)) { 
      reduceImageSize('ajax/news/' . $res_child1->file_name, $filename, 70); 
     } 

     echo '<div>' . $filename . '</div>'; 
    } catch (Exception $e) { 
     echo '<div style="">' . $res_child1->file_name . '</div>'; 
    } 
} 

これは、それがすでに縮小に存在しない場合にのみ、画像のサイズを変更し、として保存しようとします低品質のjpeg。

関連する問題