失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php图片水印和缩略图的功能实现

php图片水印和缩略图的功能实现

时间:2023-08-10 08:36:14

相关推荐

php图片水印和缩略图的功能实现

php教程|PHP源码

php图片水印和缩略图的功能实现

php教程-PHP源码

跳至

[1]

日志系统 php源码,Ubuntu安装显卡命令,便宜的小爬虫,php 1034,安徽seo网络lzw

[全屏预览]

check($img) || !$this->thumb_on) return FALSE;//定义缩略图的初始值 $t_type = $t_type ? $t_type : $this->thumb_type; $t_w = $t_w ? $t_w : $this->thumb_width; $t_h = $t_h ? $t_h : $this->thumb_height;//获取到原图的信息 $img_info = getimagesize($img); $img_w = $img_info[0]; $img_h = $img_info[1]; //取得图像类型的文件后缀 $img_type = image_type_to_extension($img_info[2]); //获取到相关尺寸 $thumb_size = $this->thumb_size($img_w,$img_h,$t_w,$t_h,$t_type); //确定原始图像类型 //利用自定义函数来实现图片类型的确定 $func = "imagecreatefrom".substr($img_type, 1); $res_img = $func($img);//缩略图资源 编辑图片资源moon if( $img_type == .jpg || $img_type == .jpg ){ $res_thumb = imagecreate($thumb_size[0], $thumb_size[1]); $color = imagecolorallocate($res_thumb, 255, 0, 0); }else{ $res_thumb = imagecreatetruecolor($thumb_size[0], $thumb_size[1]); }//制作缩略图 if(function_exists( "imagecopyresampled" ) ){ imagecopyresampled($res_thumb, $res_img, 0, 0, 0, 0, $thumb_size[0],$thumb_size[1],$thumb_size[2],$thumb_size[3]); }else{ imagecopyresized($res_thumb, $res_img, 0, 0, 0, 0, $thumb_size[0],$thumb_size[1],$thumb_size[2],$thumb_size[3]); } //处理透明色 if( $img_type ==.jpg || $img_type == .jpg ){ imagecolortransparent($res_thumb,$color); }//配置输出文件名 $outfile = $outfile ? $outfile : $outfile.substr($img,0,strripos($img,.)).$this->thumb_fix.$img_type;//文件的保存输出 $func = "image".substr($img_type, 1); $func($res_thumb,$outfile); if(isset($res_thumb)) imagedestroy ($res_thumb); if(isset($res_img)) imagedestroy ($res_img); return $outfile; }public function watermark( $img,$pos=\,$out_img=\,$water_img=\,$text=\ ){ if(!$this->check($img) || !$this->watermark_on) return false;$water_img = $water_img ? $water_img : $this->water_img; //水印的开启状态 $waterimg_on = $this->check($water_img) ? 1 : 0; //判断是否在原图上操作 $out_img = $out_img ? $out_img : $img; //判断水印的位置 $pos = $pos ? $pos : $this->pos; //水印文字 $text = $text ? $text : $this->text; $img_info = getimagesize($img); $img_w = $img_info[0]; $img_h = $img_info[1]; //判断水印图片的类型 if( $waterimg_on ){ $w_info = getimagesize($water_img); $w_w = $w_info[0]; $w_h = $w_info[1]; if ( $img_w < $w_w || $img_h color)!=7 ) return FALSE; $text_info = imagettfbbox($this->size, 0, $this->font, $text); $w_w = $text_info[2] - $text_info[6]; $w_h = $text_info[3] - $text_info[7]; }//建立原图资源switch ( $img_info[2] ){ case 1:$res_img = imagecreatefromgif($img);break; case 2:$res_img = imagecreatefromjpeg($img);break; case 3:$res_img = imagecreatefrompng($img);break; } //确定水印的位置 switch ( $pos ){ case 1:$x = $y =25;break; case 2:$x = ($img_w - $w_w)/2; $y = 25;break; case 3:$x = $img_w - $w_w;$y = 25;break; case 4:$x = 25;$y = ($img_h - $w_h)/2;break; case 5:$x = ($img_w - $w_w)/2; $y = ($img_h - $w_h)/2;break; case 6:$x = $img_w - $w_w;$y = ($img_h - $w_h)/2;break; case 7:$x = 25;$y = $img_h - $w_h;break; case 8:$x = ($img_w - $w_w)/2;$y = $img_h - $w_h;break; case 9:$x = $img_w - $w_w;$y = $img_h - $w_h;break; default :$x = mt_rand(25, $img_w - $w_w);$y = mt_rand(25, $img_h - $w_h); }//写入图片资源 if( $waterimg_on ){ imagecopymerge($res_img, $w_img, $x, $y, 0, 0, $w_w, $w_h, $this->pct);}else{ $r = hexdec(substr($this->color, 1,2)); $g = hexdec(substr($this->color, 3,2)); $b = hexdec(substr($this->color, 5,2)); $color = imagecolorallocate($res_img, $r, $g, $b); imagettftext($res_img, $this->size, 0, $x, $y, $color, $this->font, $text); } //生成图片类型 switch ( $img_info[2] ){ case 1: imagecreatefromgif($res_img,$out_img); break; case 2: //imagecreatefromjpeg($res_img,$out_img); imagejpeg($res_img,$out_img); break; case 3: imagepng($res_img,$out_img); break; } if(isset($res_img)) imagedestroy ($res_img); if(isset($w_img)) imagedestroy($w_img); return TRUE;} //验证图片是否存在 private function check($img){ $type = array(.jpg,.jpeg,.jpg,.jpg); $img_type = strtolower(strrchr($img, .)); return extension_loaded(gd) && file_exists($img) && in_array($img_type, $type); } //获取缩略图的相关比例 //获取到图片的处理类型 private function thumb_size( $img_w,$img_h,$t_w,$t_h,$t_type){ //定义缩略图尺寸 $w = $t_w; $h = $t_h; //定义图片的原始尺寸 $cut_w = $img_w; $cut_h = $img_h; //当要目标图像小于缩略图的尺寸时; if( $img_w <= $t_w && $img_h 0 ){ switch ( $t_type ){ //当宽度固定时 case 1: $h = $t_w/$img_w*$img_h; break; //高度固定时 case 2: $w = $t_h/$img_h*$img_w; break; //宽度固定,高度裁切 case 3: $cut_h = $img_w/$t_w*$t_h; break; //高度固定,宽度裁切 case 4: $cut_w = $img_h/$t_h*$t_w; break; //等比例缩放 default : if( ($img_w/$t_w) > ($img_h/$t_h) ){ $h = $t_w/$img_w*$t_h; }elseif( ($img_w/$t_w) < ($img_h/$t_h) ){$w = $t_h/$img_h*$t_w; }else{$w = $t_w;$h = $t_h; } }} } $arr[0] = $t_w; $arr[1] = $t_h; $arr[2] = $cut_w; $arr[3] = $cut_h; return $arr; }}

maven生成源码,vscode 文件模板,ubuntu raid,tomcat优雅下线,sqlite数据恢复工具,jquery mobile listview 插件,web前端开发框架之间的联系,python爬虫的图片找不到,php ajax文件上传,南通seo推广介绍,网站程序数据库文件,网页h5动态效果代码,官网html模板下载地址lzw

hspid功能块 源码,vscode安装黑屏,烧录ubuntu,tomcat 分割日志,sqlite3 中文输入,dedecms模板需要什么插件啊,jsp可以用前端框架吗,爬虫采集数据存储方案,php 手机应用,东莞seo怎么投放,dedecms 网站安装教程,dede此网页包含重定向循环,小米wifi模板lzw

.code_report{float:right}.code_report div{ float: left; margin-left: 5px; background: url(“/img/ask-icon.jpg”) no-repeat; padding: 6px 0 6px 15px; padding-left: 15px; height: 16px;}.code_report a{ background: url(“/img/ask-icon.jpg”) 0 -160px no-repeat;padding-left: 20px; line-height: 15px;height: 16px; color: #333; text-decoration: none; display:inline-block; zoom:1; vertical-align: middle;}.code_report em{ height: 28px; line-height:28px; width: 14px; display: inline-block; float: left; background: url(“/img/ask-icon.jpg”) top right;}

如果觉得《php图片水印和缩略图的功能实现》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。