PHP速学教程(入门到精通)
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
php上传图片加水印(图片水印,文字水印) 这是一款比较完整理的在用户上传图片时就自动给图片增加上水印,这款增加水印功能可以增加文字水印与图片水印哦。
php教程上传图片加水印(图片水印,文字水印)
这是一款比较完整理的在用户上传图片时就自动给图片增加上水印,这款增加水印功能可以增加文字水印与图片水印哦。
/* * created on 2010-6-21 * * the class for control image * * made by s71ence * * @$img_path 图片路径 * @$is_auto_reduce 图片是否自动按照大小等级压缩 1是 * @$is_appoint 是否手动进行压缩或放大 1是 * @$multiple 手动指定压缩/放大比例 * @$is_water_str 是否加水印文字 1是 * @$water_str 水印文字 * @$is_watermark 是否加水印图片 1是 * @$logo_path 水印图片路径 * @$is_display 是否显示图片 1是 * @$is_create 是否生成压缩后的图片 1是 * * 注: * 1.生成新图时不可显示图片,即$isdisplay和$iscreate不可同时置为1 * 2.当图片宽或高小于1000时,需手动设置压缩比例进行压缩 * 3.不建议启用水印,若要启用,建议原图片大小最好在1000以内 * 4.水印文字中不可含有中文 * 5.新生成的图片在原目录文件中,支持n个层级 */ class image_control { private $img_path; private $is_auto_reduce; private $is_appoint; private $multiple; private $is_water_str; private $water_str; private $is_watermark; private $logo_path; private $is_display; private $is_create; function __construct($img_path,$is_auto_reduce,$is_appoint,$multiple,$is_water_str,$water_str,$is_watermark,$logo_path,$is_display,$is_create) { $this->img_path=$img_path; $this->is_auto_reduce=$is_auto_reduce; $this->is_appoint=$is_appoint; $this->multiple=$multiple; $this->is_water_str=$is_water_str; $this->water_str=$water_str; $this->is_watermark=$is_watermark; $this->logo_path=$logo_path; $this->is_display=$is_display; $this->is_create=$is_create; } function img_control() { //获取原图 $img_info=getimagesize($this->img_path); switch($img_info[2]) { case 1: $img_get=@imagecreatefromgif($this->img_path); break; case 2: $img_get=@imagecreatefromjpeg($this->img_path); break; case 3: $img_get=@imagecreatefrompng($this->img_path); break; } //文字水印 if($this->is_water_str==1) { //imagettftext(原图,文字大小,文字旋转,水印起始坐标x,水印起始坐标y,$te,'simhei.ttf',$str); $te=imagecolorallocate($img_get,255,255,255); $str=iconv("gbk","utf-8",$this->water_str);//水印文字 imagettftext($img_get,16,0,$img_info[0]-200,$img_info[1]-20,$te,'msyh.ttf',$str); } //图片水印 if($this->is_watermark==1) { //水印图片处理 $logo_info=getimagesize($this->logo_path); switch($logo_info[2]) { case 1: $logo=@imagecreatefromgif($this->logo_path); break; case 2: $logo=@imagecreatefromjpeg($this->logo_path); break; case 3: $logo=@imagecreatefrompng($this->logo_path); break; } //水印logo图片 //函数说明:imagecopy(原图,水印图片,水印坐标x,水印坐标y,水印图片开始坐标x,水印图片开始坐标y,'水印图片宽','水印图片高'); imagecopy($img_get,$logo,0,0,0,0,$logo_info[0],$logo_info[1]); } //自动图片压缩 按图片大小分级自动压缩 //imagecopyresized(画布,原图,画布起始x坐标,画布起始y坐标,原图起始x坐标,原图起始x坐标,新图片宽,新图片高,原图片宽,原图片高); if($this->is_auto_reduce==1) { if($img_info[0]>=3000 || $img_info[1]>=3000) { $new_image_get=imagecreatetruecolor($img_info[0]*0.03,$img_info[1]*0.03);//生成画布 imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.03,$img_info[1]*0.03,$img_info[0],$img_info[1]); } else if($img_info[0]>=2500 || $img_info[1]>=2500) { $new_image_get=imagecreatetruecolor($img_info[0]*0.04,$img_info[1]*0.04); imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.04,$img_info[1]*0.04,$img_info[0],$img_info[1]); } else if($img_info[0]>=2000 || $img_info[1]>=2000) { $new_image_get=imagecreatetruecolor($img_info[0]*0.05,$img_info[1]*0.05); imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.05,$img_info[1]*0.05,$img_info[0],$img_info[1]); } else if($img_info[0]>=1500 || $img_info[1]>=1500) { $new_image_get=imagecreatetruecolor($img_info[0]*0.08,$img_info[1]*0.08); imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.08,$img_info[1]*0.08,$img_info[0],$img_info[1]); } else if($img_info[0]>=1000 || $img_info[1]>=1000) { $new_image_get=imagecreatetruecolor($img_info[0]*0.1,$img_info[1]*0.1); imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.1,$img_info[1]*0.1,$img_info[0],$img_info[1]); } else if($img_info[0]>=500 || $img_info[1]>=500) { $new_image_get=imagecreatetruecolor($img_info[0]*0.2,$img_info[1]*0.2); imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.2,$img_info[1]*0.2,$img_info[0],$img_info[1]); } else if($img_info[0]>=300 || $img_info[1]>=300) { $new_image_get=imagecreatetruecolor($img_info[0]*0.3,$img_info[1]*0.3); imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*0.3,$img_info[1]*0.3,$img_info[0],$img_info[1]); } else { $new_image_get=imagecreatetruecolor($img_info[0]*1,$img_info[1]*1); imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*1,$img_info[1]*1,$img_info[0],$img_info[1]); } } //手动图片压缩 //imagecopyresized(画布,原图,画布起始x坐标,画布起始y坐标,原图起始x坐标,原图起始x坐标,新图片宽,新图片高,原图片宽,原图片高); if($this->is_appoint) { $new_image_get=imagecreatetruecolor($img_info[0]*$this->multiple,$img_info[1]*$this->multiple);//生成画布 imagecopyresized($new_image_get,$img_get,0,0,0,0,$img_info[0]*$this->multiple,$img_info[1]*$this->multiple,$img_info[0],$img_info[1]); } //图像输出 if($this->is_display==1) { header("content-type: image/jpeg"); return imagejpeg($new_image_get); } //新图像生成 if($this->is_create==1) { $new_name=explode("/",$this->img_path); $new_name_string=""; for($i=0;$iimg_path)) { setcookie("img_new_path", $new_img_path); //return "图片生成成功!新图:".$new_img_path."原图:".$this->img_path; } else { return "图片生成失败,请检查配置是否正确!"; } } } function __desctruct() { //clear } }
//调用方法
/* $img_path="../users/user_photo/t2.jpg"; //被操作的图片路径
$is_auto_reduce=1;//图片是否自动按照大小等级压缩 1是
$is_appoint=0;//是否手动进行压缩 1是
$multiple=0.5;//手动指定压缩比例
$is_water_str=0;//是否加水印文字
$water_str="www.bKjia.c0m";//水印文字
$is_watermark=0;//是否加水印图片 1是
$logo_path="../image/logo_about.gif";//水印图片路径
$is_display=0;//是否显示图片 1是
$is_create=1;//是否生成压缩后的图片 1是
$img=new image_control($img_path,$is_auto_reduce,$is_appoint,$multiple,$is_water_str,$water_str,$is_watermark,$logo_path,$is_display,$is_create);
echo $img->img_control();*/
php免费学习视频:立即学习
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!
已抢7336个
抢已抢95473个
抢已抢14936个
抢已抢52722个
抢已抢195929个
抢已抢87510个
抢