php 水印文字

来源:互联网 发布:智尊宝cad软件下载 编辑:程序博客网 时间:2024/06/05 10:32

php 水印文字 水印图片

不经意间成为了php coder,边学边做
因为项目需要用用到水印文字 ,水印图片自己就整理了一下,留作记录,便于日后学习

$text_list                 = array();//一次性加多个水印文字$text_list[0]['dst_path']   = "img/1.png";//水印底图路径$text_list[0]['size']      =20;//字体大小$text_list[0]['angle']         =0;//水印文字旋转角度$text_list[0]['x']             =100;//水印文字x坐标$text_list[0]['y']             =200;//水印文字y坐标$text_list[0]['color']         =array(255,0,0); //水印文字颜色$text_list[0]['font_file']  = "1.ttf"; //水印文字用到的字体文件$text_list[0]['content']   = "晨露微凉"; //水印内容$text_list[1]['dst_path']   = "img/1.png";//水印底图路径$text_list[1]['size']      =20;//字体大小$text_list[1]['angle']         =0;//水印文字旋转角度$text_list[1]['x']             =222;//水印文字x坐标$text_list[1]['y']             =300;//水印文字y坐标$text_list[1]['color']         =array(255,255,0); //水印文字颜色$text_list[1]['font_file']  = "1.ttf"; //水印文字用到的字体文件$text_list[1]['content']   = "jokechat"; //水印内容$text_list['avatar']['dst_path']   ="img/1.png";//底图路径$text_list['avatar']['src_path']   ="img/avatar.jpg";//资源图路径$text_list['avatar']['x']              =100;$text_list['avatar']['y']              =200;$text_list['avatar']['w']              =100;$text_list['avatar']['h']              =100;   $text_list['avatar']['opacity']    =100;  //资源图片透明度water_text($text_list);/*给图片加文字水印的方法*/function water_text($text_list) {    $dst_path = $text_list[0]['dst_path'];    $dst = imagecreatefromstring(file_get_contents($dst_path));    /*imagecreatefromstring()--从字符串中的图像流新建一个图像,返回一个图像标示符,其表达了从给定字符串得来的图像     图像格式将自动监测,只要php支持jpeg,png,gif,wbmp,gd2.*/    foreach($text_list as $key=> $text)    {        //如果是数字就处理一下 数字表示批量水印文字        if(is_numeric($key))        {            $black = imagecolorallocate($dst, $text['color'][0], $text['color'][1], $text['color'][2]);            imagefttext($dst, $text['size'], $text['angle'], $text['x'], $text['y'], $black, $text['font_file'], $text['content']);           }    }    //获取图片原始信息    $src_info = getimagesize ( $text_list['avatar']['src_path']  );    // 创建图片的实例    $src = imagecreatefromstring ( file_get_contents ( $text_list['avatar']['src_path'] ) );    // 创建一个彩色的底图    $image = imagecreatetruecolor ( $text_list['avatar']['w']  , $text_list['avatar']['h']   );    // 设定水印图片大小    imagecopyresized ( $image, $src, 0, 0, 0, 0, $text_list['avatar']['w'], $text_list['avatar']['h'], $src_info [0], $src_info [1] );    // copy图片并且重置图片大小    // 将水印图片复制到目标图片上,最后个参数是设置透明度,可以半透明效果    imagecopymerge ( $dst, $image, $text_list['avatar']['x'] , $text_list['avatar']['y'] , 0, 0, $text_list['avatar']['w'] , $text_list['avatar']['h'] , $text_list['avatar']['opacity']  );    /*imagefttext($img,$size,$angle,$x,$y,$color,$fontfile,$text)     $img由图像创建函数返回的图像资源     size要使用的水印的字体大小     angle(角度)文字的倾斜角度,如果是0度代表文字从左往右,如果是90度代表从上往下     x,y水印文字的第一个文字的起始位置     color是水印文字的颜色     fontfile,你希望使用truetype字体的路径*/    list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);    /*list(mixed $varname[,mixed $......])--把数组中的值赋给一些变量     像array()一样,这不是真正的函数,而是语言结构,List()用一步操作给一组变量进行赋值*/    /*getimagesize()能获取到什么信息?     getimagesize函数会返回图像的所有信息,包括大小,类型等等*/     //存储的文件名称  如果是windows系统存储中文文件名称需要转换为GBK编码     $name =iconv('UTF-8', 'GBK', "晨露微凉");    switch($dst_type) {        case 1 :            //GIF            header("content-type:image/gif");            imagegif($dst, $name . ".gif");//          /imagegif($dst);            break;        case 2 :            //JPG            header("content-type:image/jpeg");            imagejpeg($dst, "./inviter/".$name . ".jpg");            //imagejpeg($dst);            break;        case 3 :            //PNG            header("content-type:image/png");            imagepng($dst, "./inviter/".$name . ".png");            //imagepng($dst);            break;        default :            break;        /*imagepng--以PNG格式将图像输出到浏览器或文件         imagepng()将GD图像流(image)以png格式输出到标注输出(通常为浏览器),或者如果用filename给出了文件名则将其输出到文件*/    }    imagedestroy($dst);}

从网上copy而来,具体来源补课追踪,加一改良,留待后续完善

0 0