2017-04-20 15 views
0

PHPを使用して画像の品質を下げるにはどうすればよいですか?PHPで画像の品質を下げる

upload_mode = @$this->setting->upload_mode?:'file'; 
      $upload_path = @$this->setting->upload_path?:'uploads/'; 

      $file    = Request::file($name); 
      $fm     = array(); 
      $fm['name']   = $_FILES[$name]['name'];     
      $fm['ext']   = $file->getClientOriginalExtension(); 
      $fm['size']   = $_FILES[$name]['size']; 
      $fm['content_type'] = $_FILES[$name]['type']; 

      if($upload_mode=='database') { 
       $fm['filedata']  = file_get_contents($_FILES[$name]['tmp_name']); 
       DB::table('cms_filemanager')->insert($fm); 
       $id_fm    = DB::getPdo()->lastInsertId(); 
       DB::table('cms_filemanager')->where('id',$id_fm)->update(['id_md5' =>md5($id_fm)]); 
       $filename   = 'upload_virtual/files/'.md5($id_fm).'.'.$fm['ext']; 
      }else{ 
       if(!file_exists($upload_path.date('Y-m'))) { 
        if(!mkdir($upload_path.date('Y-m'),0777)) { 
         die('Gagal buat folder '.$upload_path.date('Y-m')); 
        } 
       } 
       $filename = md5(str_random(12)).'.'.$fm['ext']; 
       $file->move($upload_path.date('Y-m'),$filename);       
       $filename = $upload_path.date('Y-m').'/'.$filename; 
      } 

      $url    = asset($filename); 

は、誰かが私を助けてきましたか?私は必要なもののように動作させるために何を追加する必要がありますか?

+0

あなたはそれのサイズを変更したい、または単に品質を低下させるのですか?それ以外の場合、 'imagejpeg()'は非常に良い解決策です:http://php.net/manual/en/function.imagejpeg.php – Thoby

答えて

1

GDは、プログラマが画像 を動的に作成するためのオープンソースコードライブラリです。 GDはC言語で書かれており、 "wrappers"は Perl、PHPなどの言語で利用可能です。 GDはPNG、JPEG、GIFの画像を他の形式の中で を作成します。 GDはチャート、グラフィックス、 サムネイル、その他ほとんどのものをオンザフライで生成するためによく使用されます。

画像のファイルサイズを小さくするコード:

<?php 
    function compress($source, $destination, $quality) { 

     $info = getimagesize($source); 

     if ($info['mime'] == 'image/jpeg') 
      $image = imagecreatefromjpeg($source); 

     elseif ($info['mime'] == 'image/gif') 
      $image = imagecreatefromgif($source); 

     elseif ($info['mime'] == 'image/png') 
      $image = imagecreatefrompng($source); 

     imagejpeg($image, $destination, $quality); 

     return $destination; 
    } 

    $source_img = 'source.jpg'; 
    $destination_img = 'destination .jpg'; 

    $d = compress($source_img, $destination_img, 90); 
?> 
$d = compress($source_img, $destination_img, 90); 

Reference

関連する問題