2017-04-02 34 views
0

我正在嘗試調整大小並替換用戶上傳的圖像,但我可以做的最多的是調整大小並將其作爲另一個文件輸出。我已經使用圖書館圖像魔術師來調整大小。調整大小並使用PHP替換圖像

如果有人能解釋我如何做到這一點,而不使用庫它會更好。

public function add() { 
    $f=Base::instance()->get('FILES'); 
    $fext=pathinfo ($f['usrimg']['name'],PATHINFO_EXTENSION); 
    $this->copyFrom('POST'); 
    $this->save(); 
    $newName=str_pad($this->_id,5,"0").'.'.$fext; 
    move_uploaded_file($f['usrimg']['tmp_name'], $newName); 
    $this->load('id='.$this->_id); 
    $this->set('photo',$newName); 
    $this->update(); 

    require_once('php_image_magician.php'); 
    $magicianObj = new imageLib($newName); 
    $magicianObj->resizeImage(100, 200); 
    $magicianObj->saveImage('q.jpg', 100); 
} 
+0

我建議你使用'gd'或'gd2'庫。它非常完整且易於使用。 –

+0

你可以給我一個例子,如果它的大小超過一定的大小,請確定圖片的大小@AmirZojaji – thenoob

+1

我在一個新的答案中找出它。 –

回答

0

如果你想使用gd庫,例如,你可以使用此代碼調整JPEG圖像:

$image=file_get_contents('image.jpg'); 
    $src=imagecreatefromstring($image); 
    $x=imagesx($src); 
    $y=imagesy($src); 
    $y1=100; //new width 
    $x1=intval($y1*$x/$y); //new height proprtional to new width 
    $dst=imagecreatetruecolor($x1,$y1); 
    imagecopyresized($dst,$src,0,0,0,0,$x1,$y1,$x,$y); 
    header("Content-Type: image/jpeg"); 
    imagejpeg($dst); 
+0

變量$ doc_row的用途是什麼?當我嘗試實現這一點時,我收到一條消息,表明它是未定義的 – thenoob

+0

對不起。這是錯誤的。糾正。 –

+0

當我將此代碼添加到函數添加中時,似乎沒有任何事情發生。圖像大小保持不變 – thenoob