我无法为我的图像添加水印。我使用了此链接中的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);
答案 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);
}
...可以更容易确定错误。