PHP生成图片水印和文字水印

之前很多读者发邮件问我如何使用PHP生成水印,今天我就来给大家讲解一下。本篇PHP教程使用了两个函数来生成水印:watermark_text()和watermark_image()。你可以将本篇教程的示例整合到你的WEB项目中,比如上传图片的版权水印。

文本水印

我们使用函数watermark_text()来生成文本水印,你必须先指定字体源文件、字体大小和字体文本,具体代码如下:

 
 
 
 
  1. $font_path = "GILSANUB.TTF"; // Font file
  2. $font_size = 30; // in pixcels
  3. $water_mark_text_2 = "phpfuns"; // Watermark Text
  4. function watermark_text($oldimage_name, $new_image_name)
  5. {
  6. global $font_path, $font_size, $water_mark_text_2;
  7. list($owidth,$oheight) = getimagesize($oldimage_name);
  8. $width = $height = 300;
  9. $image = imagecreatetruecolor($width, $height);
  10. $image_src = imagecreatefromjpeg($oldimage_name);
  11. imagecopyresampled($image, $image_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
  12. $blue = imagecolorallocate($image, 79, 166, 185);
  13. imagettftext($image, $font_size, 0, 68, 190, $blue, $font_path, $water_mark_text_2);
  14. imagejpeg($image, $new_image_name, 100);
  15. imagedestroy($image);
  16. unlink($oldimage_name);
  17. return true;
  18. }

可以在这里查看demo。

图片水印

我们使用函数watermark_image()来生成图片水印,你必须先水银图片的源文件。具体代码如下:

 
 
 
 
  1. $image_path = "phpfuns.png";
  2. function watermark_image($oldimage_name, $new_image_name)
  3. /{
  4. global $image_path;
  5. list($owidth,$oheight) = getimagesize($oldimage_name);
  6. $width = $height = 300;
  7. $im = imagecreatetruecolor($width, $height);
  8. $img_src = imagecreatefromjpeg($oldimage_name);
  9. imagecopyresampled($im, $img_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
  10. $watermark = imagecreatefrompng($image_path);
  11. list($w_width, $w_height) = getimagesize($image_path);
  12. $pos_x = $width - $w_width;
  13. $pos_y = $height - $w_height;
  14. imagecopy($im, $watermark, $pos_x, $pos_y, 0, 0, $w_width, $w_height);
  15. imagejpeg($im, $new_image_name, 100);
  16. imagedestroy($im);
  17. unlink($oldimage_name);
  18. return true;
  19. }

你可以在这里查看demo。

上传图片表单

我们使用下面的表单来上传图片:

 
 
 
 
  1. $demo_image= "";
  2. if(isset($_POST['createmark']) and $_POST['createmark'] == "Submit")
  3. {
  4. $path = "uploads/";
  5. $valid_formats = array("jpg", "bmp","jpeg");
  6. $name = $_FILES['imgfile']['name'];
  7. if(strlen($name))
  8. {
  9. list($txt, $ext) = explode(".", $name);
  10. if(in_array($ext,$valid_formats) && $_FILES['imgfile']['size'] <= 256*1024)
  11. {
  12. $upload_status = move_uploaded_file($_FILES['imgfile']['tmp_name'], $path.$_FILES['imgfile']['name']);
  13. if($upload_status){
  14. $new_name = $path.time().".jpg";
  15. // Here you have to user functins watermark_text or watermark_image
  16. if(watermark_text($path.$_FILES['imgfile']['name'], $new_name))
  17. $demo_image = $new_name;
  18. }
  19. }
  20. else
  21. $msg="File size Max 256 KB or Invalid file format.";
  22. }
  23. }
  24. ?>
  25. // HTML Code
  26. Upload Image
  27. Image :
  28. if(!emptyempty($demo_image))
  29. echo '';
  30. ?>

实际上就是PHP的gd库,一切就是这么简单!

此处下载

本文名称:PHP生成图片水印和文字水印
标题URL:http://www.shufengxianlan.com/qtweb/news13/332813.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联