PHP实现图片添加文字水印

我想要达到的结果

用php语言实现:打开本地格式为jpg/png/gif/bmp类型的文件,添加中文文字水印,并保存

  1. 图片:长96px,宽96px

  2. 水印:可设置背景色,文字颜色,字体大小,字体类型,文字在水印中上下居中;水印位置为图片的left:0;bottom:0;right:0;height:36px;

  3. 存为新的文件

这个很简单。


<?php
//指定图片路径
 
$src = 'j.png';
// var_dump(file_exists('j.png'));exit;
//获取图片信息
 
$info = getimagesize($src);
 
//获取图片扩展名
 
$type = image_type_to_extension($info[2],false);
 
//动态的把图片导入内存中
 
$fun = "imagecreatefrom{$type}";
 
$image = $fun('j.png');
 
//指定字体颜色
 
$col = imagecolorallocatealpha($image,0,0,0,50);
$kefd_color = imagecolorallocate($image, 255, 255, 255);
 
//指定字体内容
 
$content_str = '圣路易斯华盛顿大学辅导介绍';
 
 
$str = preg_replace('/[\x80-\xff]{1,3}/', ' ', $content_str, -1);
 
$num = strlen($str);
//判断文字是否需要换行
$shang = bcdiv($num,8);
 
   for($i=0; $i<=$shang; $i++){
    $add = 10*$i;
    $open=0+$add;
    $content = mb_substr($content_str,$open,10);
    //给图片添加文字
    $x=10;
    $y=50+20*$i;
    imagettftext($image,15,0,$x,$y,$col,"c:/windows/fonts/simhei.ttf",$content);
   }
 
$kefd = '课业辅导';
 
//给图片添加文字
imagettftext($image,15,0,10,120,$kefd_color,"c:/windows/fonts/simhei.ttf",$kefd);
//指定输入类型
 
header('Content-type:'.$info['mime']);
 
//动态的输出图片到浏览器中
$func = "image{$type}";
$func($image);
 
//销毁图片 
imagepng($image, 'image1.png'); //输出到目标文件 
imagedestroy($image); //销毁内存数据流