当前位置:Gxlcms > PHP教程 > php在图片上增加矩形框并加入水印

php在图片上增加矩形框并加入水印

时间:2021-07-01 10:21:17 帮助过:2人阅读

php在图片下增加矩形框并加入水印
  1. <!--? //统计混合汉字英文字符的实际字符数,只对gb2312码有效
  2. function str_len($str){
  3. $length=0;
  4. for($i=0;$i<strlen($str);$i++){
  5. if(ord($str[$i])-->0x80)
  6. $i++;
  7. $length++;
  8. }
  9. return $length;
  10. }
  11. //待添加水印图片
  12. $imagefile = "3.jpg";
  13. //待添加文字
  14. $str = "照片由戈多上传于".date("Y年m月d日H时i分s秒");
  15. //由于掺杂汉字,原生函数无法统计真实字符数,造成水印文字无法居中
  16. //所以自己写了个函数统计,如果有mbstring库支持,换用mb_strlen也可以
  17. $len = str_len($str);
  18. //如果源程序基于utf-8编码,不需要做字符转换,删除此行
  19. $str = iconv('gb2312','utf-8',$str);
  20. //获取原图大小
  21. $size = getimagesize($imagefile);
  22. //底边矩形高度
  23. $bottom_height = 20;
  24. //字体大小
  25. $font_size = 10;
  26. $im = imagecreatetruecolor($size[0], $size[1]+$bottom_height);
  27. //底边矩形背景色,修改最后三个RGB参数改变颜色
  28. $bgcolor = imagecolorallocate($im,100,120,100);
  29. //字体颜色
  30. $ftcolor = imagecolorallocate($im,255,255,255);
  31. imagefill($im,0,0,$bgcolor);
  32. //默认从jpeg创建,如从其他图片创建,可根据扩展名选择函数
  33. $jpeg = imagecreatefromjpeg($imagefile);
  34. imagecopy($im,$jpeg,0,0,0,0,$size[0],$size[1]);
  35. $start_x = ($size[0]-$len*$font_size)/2;
  36. $start_x = ($start_x>0?$start_x:0);
  37. $start_y = $size[1]+$font_size+($bottom_height-$font_size)/2;
  38. //C:/windows/fonts/SIMHEI.TTF为ttf字库文件,此处为黑体
  39. imagettftext($im,$font_size,0,$start_x,$start_y,$ftcolor,"C:/windows/fonts/SIMHEI.TTF",$str);
  40. header("Content-type: image/jpeg");
  41. imagejpeg($im);
  42. imageclose($im);
  43. imageclose($jpeg);
  44. ?>

?

人气教程排行