yii2 對遠端圖片下載並壓縮處理
阿新 • • 發佈:2019-01-06
yii2 對遠端圖片壓縮處理的小經驗
要求安裝imageine
在類中 use yii\imagine\Image;
public function getImg($url,$path,$quality=80) { $filename = pathinfo($url)['basename']; // 判斷本地是否存在改檔案 if(file_exists('./img/lvyou/'.$filename)) return false; // 獲得圖片的大小 $re = getimagesize($url); $width = $re['0']; $height = $re['1']; // 若不存在則獲得遠端圖片 $curl = curl_init($url); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $imagedata = curl_exec($curl); curl_close($curl); // 儲存遠端圖片到伺服器 $filePath = \Yii::getAlias('@webroot/img/' . $path . '/' .$filename); $tp = @fopen($filePath,'a'); fwrite($tp,$imagedata); fclose($tp); // 再進行壓縮 $img = new Image(); Image::thumbnail($url, $width, $height) ->save($filePath, ['quality' => $quality]); // 返回壓縮後的圖片 return $filename; }