2017-05-29 135 views
0

有什麼我在這裏失蹤?如果我將imagejpeg($thumb, $newImage); 更改爲imagejpeg($thumb);,它會迴響一堆不可讀的字符。存在拇指圖像目錄。保存imagejpeg輸出文件

我的最終目的是複製低質量的圖像。

$filename = $imageDirectory . '/1.jpg'; 
$percent = 0.5; 
$newImage = $imageDirectory . '/thumbs/1.jpeg';  
echo "image: <br>"; 
echo $filename; 
list($width, $height) = getimagesize($filename); 
$newwidth = $width * $percent; 
$newheight = $height * $percent;  
// Load 
$thumb = imagecreatetruecolor($newwidth, $newheight); 
$source = imagecreatefromjpeg($filename);  
// Resize 
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  
// Output 
imagejpeg($thumb, $newImage); 

更新:我現在認識到,第二個參數必須與新名稱的圖片位置。所以...我已經重新定義了$ newImage。路徑很好......如果我手動將名爲1.jpg的圖像上傳到該位置,它將存在於該路徑中。

+0

是否要存儲多個圖像?你必須檢查文件的名稱,如果它已經存在,可能會改變它。 –

+0

不,不,我現在很不清楚。我已經嘗試過,當圖像已經存在,當它不存在(我認爲如果它確實存在,那麼它會覆蓋它),但無論如何,我的觀點是,它不是路徑問題。我只有一個用上面的這個函數來存儲一個圖像。我不知道爲什麼這個函數不起作用:$ thumb顯然是我想要複製的圖像,$ newImage顯然是新圖像的路徑。 – Atrag

+0

'$ imageDirectory'是相對還是絕對? –

回答

-1

你必須,如果你想輸出的圖像瀏覽器添加正確的Content-Type頭的響應:

header('Content-Type: image/jpeg'); 
imagejpeg($yourimage); 

請檢查first example in the documentation以獲取更多信息。如果想在輸出到瀏覽器之前降低質量,請檢查第三個示例。

+0

謝謝。當我試圖說我得到一個內部錯誤。無論如何,我想保存文件而不是顯示它。我只是以此爲例來說明它是如何處理圖像的。 – Atrag

+0

@Atrag如果你檢查第三個例子而不是把NULL放在你想要存儲文件的位置(第三個參數降低質量)。 –

+0

那麼我的代碼沒有錯?因爲那不起作用。 $ thumbimageDirectory是它找到原始圖像的子文件夾。 – Atrag