php 缩略图封装类 制作缩略图
2017-11-14 15:29
363 查看
<?php class ImageLib{ private $error; public function getError(){ return $this->error; } /* * 制作缩略图 * @param $src_path string 源图的路径 * @param $max_w int 画布的宽度 * @param $max_h int 画布的高度 * @param $flag bool 是否等比 * @param $prefix string 缩略图的前缀 */ public function thumb($src_path,$max_w,$max_h,$prefix='s_',$flag=false){ $ext= strtolower(strrchr($src_path,'.')); //获取文件的后缀 switch($ext){ case '.jpg': $type='jpeg'; break; case '.gif': $type='gif'; break; case '.png': $type='png'; break; default: $this->error='文件格式不正确'; return false; } $open_fn='imagecreatefrom'.$type; //拼接打开图片的函数 $src=$open_fn($src_path); //打开源图 $dst=imagecreatetruecolor($max_w,$max_h); //创建目标图 $src_w=imagesx($src); //源图的宽度 $src_h=imagesy($src); //源图的高度 if($flag){ //等比缩放 if($max_w/$max_h<$src_w/$src_h){ $dst_w=$max_w; $dst_h=$max_w*$src_h/$src_w; }else { $dst_h=$max_h; $dst_w=$max_h*$src_w/$src_h; } //在目标图上显示的位置 $dst_x=(int)(($max_w-$dst_w)/2); $dst_y=(int)(($max_h-$dst_h)/2); }else{ //不等比 $dst_x=0; $dst_y=0; $dst_w=$max_w; $dst_h=$max_h; } //生成缩略图 imagecopyresampled($dst,$src,$dst_x,$dst_y,0,0,$dst_w,$dst_h,$src_w,$src_h); $filename=basename($src_path); //文件名称 $foldername=substr(dirname($src_path),-10); //文件夹名 $thumb_path=$GLOBALS['config']['app']['upload_path'].$foldername.DS.$prefix.$filename;//保存路径 imagepng($dst,$thumb_path); imagedestroy($dst); imagedestroy($src); return $foldername.'/'.$prefix.$filename; } }
相关文章推荐
- php制作圆形用户头像,思路+自定义封装类源代码
- php实现常见图片格式的水印和缩略图制作(面向对象)
- php实现常见图片格式的水印和缩略图制作(面向对象)
- 教你用php制作一个缩略图教程
- PHP使用GD函数库制作缩略图+保存本地
- php用流方式制作缩略图
- php制作圆形用户头像的实例_自定义封装类源代码
- php 缩略图 封装一个方法
- php制作缩略图
- PHP生成缩略图、验证码类封装
- PHP缩略图生成和图片水印制作
- php用流方式制作缩略图
- php中封装一个缩略图生成类
- PHP ThinkPHP 上传文件(图片),制作缩略图
- php封装的图片(缩略图)处理类完整实例
- php封装的图片(缩略图)处理类完整实例
- PHP根据图片制作缩略图
- PHP ThinkPHP ,上传文件(图片),制作缩略图,批量上传文件
- PHP制作图片缩略图、加水印、加字体
- php----图片上传封装类:单张,多张图片上传,生成缩略图