$file = "./01.jpg";
$logoFile = "./logo.gif";
$spacer = 15;
$imageResource = imagecreatefromjpeg($file);
$imgWidth = imagesx($imageResource);
$imgHeight = imagesy($imageResource);
$logoResource = imagecreatefromgif($logoFile);
$logoWidth = imagesx($logoResource);
$logoHeight = imagesy($logoResource);
imagecopymerge($imageResource,$logoResource,($imgWidth-$logoWidth-$spacer),($imgHeight-$logoHeight-$spacer),0,0,$logoWidth,$logoHeight,100);
imagejpeg($imageResource,"watermark_01.jpg");
imagedestroy($imageResource);
?>
效果如下:
三、 文件上传+生成缩略图+水印效果
操作步骤如下:
1. 创建图形化的用户界面(如下图)
2. 上传文件并添加水印
<?php
$filename = $_FILES["file"]["name"];
$tmpName = $_FILES["file"]["tmp_name"];
$errCode = $_FILES["file"]["error"];
$scalePercent = 0.5;
if($errCode == 0)
{
list($imgWidth,$imgHeight,$imgType) = getimagesize($tmpName);
$destWidth = ceil($imgWidth * $scalePercent);
$destHeight = ceil($imgHeight * $scalePercent);
$destImage = imagecreatetruecolor($destWidth,$destHeight);
if($imgType == 1)
{
$createImage = "imagecreatefromgif";
$outImage = "imagegif";
}
elseif ($imgType == 2)
{
$createImage = "imagecreatefromjpeg";
$outImage = "imagejpeg";
}
elseif ($imgType == 3)
{
$createImage = "imagecreatefrompng";
$outImage = "imagepng";
}
else
{
echo("文件类型错误!");
exit;
}
$imageResource = $createImage($tmpName);
imagecopyresampled($destImage,$imageResource,0,0,0,0,$destWidth,$destHeight,$imgWidth,$imgHeight);
$text = "Wuhua Blog";
$fontfile = "verdana.ttf";
$x = ($destWidth - 200);
$y = ($destHeight - 35);
$white = imagecolorallocate($destImage,255,255,255);
imagettftext ($destImage,20,0,$x,$y ,$white,$fontfile,$text);
$outImage($destImage,"watermark_{$filename}");
imagedestroy($imageResource);
imagedestroy($destImage);
}
?>
具体的例子在附件中!
另外,因为51CTO中的附件字节数不能超过2MB,所以在案例2中将字体省略了!
本文出自 “吴华” 博客,转载请与作者联系!