php教程图片处理类(生成缩略图,增加水印,获取图片信息)
本文章提供这款图片处理类,他可以做的事情有把图片生成缩略图,可能给图片增加水印以及获取图片信息,算是比较实用代码又简洁的函数*/
class image { public $info=array(); function __construct() { !extension_loaded('gd') && exit("www.bKjia.c0m提示:服务器环境不支持gd库"); return true; } function image() { $this->__construct(); } function thumb($image,$thumb_width=300,$thumb_height=225) { $info=$this->info($image); $scale=min(1,min($thumb_width/$info['width'],$thumb_height/$info['height'])); //按比例缩放 $thumb_width=intval($info['width']*$scale); $thumb_height=intval($info['height']*$scale); $createfunc='imagecreatefrom'.($info['type']=='jpg'?'jpeg':$info['type']); $im=$createfunc($image); $thumb_im=$info['type']!='gif' && function_exists('imagecreatetruecolor')?imagecreatetruecolor($thumb_width,$thumb_height):imagecreate($thumb_width,$thumb_height); imagecopyresampled($thumb_im,$im,0,0,0,0,$thumb_width,$thumb_height,$info['width'],$info['height']); if($info['type']=='gif' || $info['type']=='png') { $bgcolor=imagecolorallocate($thumb_im,0,255,0); imagecolortransparent($thumb_im,$bgcolor); } $imagefunc='image'.($info['type']=='jpg'?'jpeg':$info['type']); $thumbname='thumb_'.$info['name'].'.'.$info['type']; $imagefunc($thumb_im,$info['path'].$thumbname); imagedestroy($im); imagedestroy($thumb_im); return $info['path'].$thumbname; } function watermark($image,$pos=9,$watermarkimg='images/watermark.gif',$pct=65,$text='',$w_font=5,$w_color='#ff0000') { $imageinfo=$this->info($image); $source_w=$imageinfo['width']; $source_h=$imageinfo['height']; $imagecreatefunc='imagecreatefrom'.($imageinfo['type']=='jpg'?'jpeg':$imageinfo['type']); $im=$imagecreatefunc($image); if(!empty($watermarkimg) && file_exists($watermarkimg)) //添加图片水印 { $iswaterimage=true; $watermarkinfo=$this->info($watermarkimg); $width=$watermarkinfo['width']; $height=$watermarkinfo['height']; $watermarkcreatefunc='imagecreatefrom'.($watermarkinfo['type']=='jpg'?'jpeg':$watermarkinfo['type']); $watermark_im=$watermarkcreatefunc($watermarkimg); } else //添加文字水印 { $iswaterimage=false; if(!empty($w_color) && strlen($w_color)==7) { $r=hexdec(substr($w_color,1,2)); $g=hexdec(substr($w_color,3,2)); $b=hexdec(substr($w_color,5,2)); } $temp = imagettfbbox(ceil($w_font*2.5), 0, 'fonts/alger.ttf', $text); $width = $temp[2] - $temp[6]; $height = $temp[3] - $temp[7]; unset($temp); } switch($pos) { case 0: $wx = mt_rand(0,($source_w - $width)); $wy = mt_rand(0,($source_h - $height)); break; case 1: $wx = 5; $wy = 5; break; case 2: $wx = ($source_w - $width) / 2; $wy = 5; break; case 3: $wx = $source_w - $width-5; $wy = 5; break; case 4: $wx = 5; $wy = ($source_h - $height) / 2; break; case 5: $wx = ($source_w - $width) / 2; $wy = ($source_h - $height) / 2; break; case 6: $wx = $source_w - $width-5; $wy = ($source_h - $height) / 2; break; case 7: $wx = 5; $wy = $source_h - $height-5; break; case 8: $wx = ($source_w - $width) / 2; $wy = $source_h - $height-5; break; default: $wx = $source_w - $width-5; $wy = $source_h - $height-5; break; } if($iswaterimage) { if($imageinfo['type'] == 'png') { imagecopy($im, $watermark_im, $wx, $wy, 0, 0, $width, $height); } else { imagecopymerge($im, $watermark_im, $wx, $wy, 0, 0, $width, $height, $pct); } } else { imagestring($im,$w_font,$wx,$wy,$text,imagecolorallocate($im,$r,$g,$b)); } $imagefunc='image'.($imageinfo['type']=='jpg'?'jpeg':$imageinfo['type']); $imagefunc($im,$image); imagedestroy($im); return true; } function info($image) { $info=array(); $info['size']=filesize($image); $imageinfo=getimagesize($image); $info['width']=$imageinfo[0]; $info['height']=$imageinfo[1]; $info['width_height']=$imageinfo[3]; $info['mime']=$imageinfo['mime']; unset($imageinfo); $imageinfo=pathinfo($image); $info['path']=$imageinfo['dirname'].'/'; $info['type']=strtolower($imageinfo['extension']); //图片类型,不含'.' $info['name']=$imageinfo['filename']; unset($imageinfo,$name); $this->info=$info; return $info; } }
系统共有:常规管理,公告管理,新闻管理,产品管理,采购订单管理,留言反馈管理,短信管理,用户管理,管理员管理,在线邮件管理,系统模板管理,图品缩略图及水印管理,Flash幻灯片管理,统计调查管理,系统数据调用管理,自定义扩展管理,语言标签库管理。18个主要功能模块组成。5月10号更新:1、全新双语模式设计开发2、多级动态JS菜单,支持在线添加,修改,删除3、新增单页管理模块,如扩展企业简介,联系方










