2014-01-13 33 views
1

我無法爲我的圖像加水印。我曾經在這個環節無法用php水印圖像

http://www.php.net/manual/en/image.examples-watermark.php

發現PHP手冊和這裏

http://www.sitepoint.com/watermark-images-php/

,但得到了同樣的錯誤嘗試sitepoint教程,圖像無法顯示,因爲它有一些錯誤。有人可以讓我知道代碼有什麼問題,或者建議我一些更好的解決方案。 我的代碼在這裏:

header('content-type: image/jpeg'); 
$watermark = imagecreatefrompng('wm.png'); 
$watermark_width = imagesx($watermark); 
$watermark_height = imagesy($watermark); 
$image = imagecreatetruecolor($watermark_width, $watermark_height); 
$image = imagecreatefromjpeg('img.jpg'); 
$size = getimagesize('img.jpg'); 
$dest_x = $size[0] - $watermark_width - 5; 
$dest_y = $size[1] - $watermark_height - 5; 
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100); 
imagejpeg($image); 
imagedestroy($image); 
imagedestroy($watermark); 

回答

1

檢查您調用函數的所有返回值,例如:

$watermark = imagecreatefrompng('wm.png'); 
if (!$watermark) { 
    die('Sorry ' . __LINE__); // you might want to use something else here - just an example.... 
} 

,然後將內容類型設置爲image/JPEG不是之前你實際上是試圖發送圖像

if (headers_sent($file, $line)) { 
    die('oops '.__LINE__); 
} 
else { 
    header('content-type: image/jpeg'); 
    imagejpeg($image); 
} 

...使得它更容易針點的誤差。

+0

給我同樣的錯誤先生 – codegeek

+0

當你在'View-> Source Code'上點擊你的瀏覽器時,你看到_any_輸出嗎? – VolkerK