>백엔드 개발 >PHP 튜토리얼 >PHP 이미지에 텍스트 워터마크를 추가하는 예제 코드

PHP 이미지에 텍스트 워터마크를 추가하는 예제 코드

WBOY
WBOY원래의
2016-07-25 08:51:521227검색
  1. $img='22.jpg';

  2. $arr=getimagesize($img);
  3. //print_r($arr); //$arr[0]为图片的宽度,$arr[1]为图片的高度,$arr[2]为图片的类型,即图片的扩展名,
  4. switch($arr[2]){
  5. case 1:
  6. $imgn = imagecreatefromgif($img);
  7. break;
  8. case 2:
  9. $imgn = imagecreatefromjpeg($img);
  10. break;
  11. case 3:
  12. $imgn = imagecreatefrompng($img);
  13. break;
  14. case 6:
  15. $imgn = imagecreatefromwbmp($img);
  16. break;
  17. default:
  18. die("不支持的文件类型");
  19. exit;
  20. }

  21. //开始打水印。准备打上的文字(php文字水印)

  22. $str = "要打印的文字";
  23. $str1 = "要打印的文字";

  24. //$str = iconv("gb2312","utf-8","要打印的文字"); //(这个语句最后说明);

  25. //然后以用调色板设置文字的颜色:
  26. //$dest=imagecreatetruecolor(100,100);
  27. $bg = imagecolorallocate($imgn,255,255,255);

  28. //$bg = imagecolorallocate($imgn,0,0,0 );

  29. //php5无法获知文字的字体,所以载入文字字体,此处载入windows自带的simhei.ttf黑体字,(载入之前把该字体文件复制到项目的文件夹下面) 如下:
  30. imagettftext($imgn,10,0,20,10,$bg,'simhei.ttf',$str); //这样就将$str文字打到$imgn上
  31. imagettftext($imgn,10,0,20,46,$bg,'simhei.ttf',$str1);
  32. header('content-type:image/jpeg');
  33. $uploaddir = './image/';
  34. $thumb_path = './image/'.date("Ymd").'/';
  35. if(!is_dir($uploaddir)){
  36. mkdir($uploaddir,0777);
  37. }
  38. if(!is_dir($thumb_path)){
  39. mkdir($thumb_path,0777);
  40. }
  41. $imgs = $thumb_path.time().'.jpg';
  42. imagejpeg($imgn,$imgs,'80');
  43. echo "";
  44. //:GetImageSize,$str = iconv("gbk","utf-8","要打上的文字");说明将页面默认的编码属性gbk改成utf-8国际标准编码。$bg = imagecolorallocate()将图片的前景文字设置成白色其中0,0,0分别代表red green blue颜色的分量,imagettftext函数 12代表字体大小 9标示倾斜度 10,10为打上水印的颜色的像素位置 header('content-type:image/jpeg'); imagejpeg($imgn);表示该php5页面输出的文件类型是图片类型。
  45. ?>

复制代码


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.