无法用PHP水印图像

时间:2014-01-13 09:14:00

标签: php

我无法为我的图像添加水印。我使用了此链接中的php手册

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

还尝试了这里的sitepoint教程

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

但是得到的图像无法显示,因为它有一些错误。有人可以让我知道代码的错误或建议我一些更好的解决方案。 我的代码在这里:

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 个答案:

答案 0 :(得分: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);  
}

...可以更容易确定错误。