PHP上传图片生成略缩图加水印工具类var$annexF older=upload//附件存放点默认为 annexvar $smallFolder=small //缩略图存放路径注必须是放在$annexFolder下的子目录默认为 smallimgvar$markF older=mark//水印图片存放处var$upFileType=jpg gif png//上传的类型默认为 jpg gif png rar zipvar$upFileMax=1024;//上传大小限制单位是“KB”默认为 1024KBvar$fontTyp e;//字体v ar$m ax Width=500; //图片最大宽度var$maxHeight=600; //图片最大高度function UpImages($annexFolder,$smallFo lder,$includeFo lder) {
$this-annexF older=$annexF older;
$this- smallF o lder=$smallF o lder;
$this-fontType=$inc ludeFolder. /04B_08__.TTFfunc tion upLoad($inputName) {
$imageName=time();//设定当前时间为图片名称if(@empty($_F I LES[$inputName][name]))die(没有上传图片信息请确认
$name=explode( . ,$_FILES[$inputName][name ]);//将上传前的文件以“.”分开取得文件类型
$imgCount=c ount($name);//获得截取的数量
$imgTyp e=$name[$imgCount-1];//取得文件的类型if(s trp os($this- upF ileTyp e,$imgTyp e) === fals e) die(error(上传文件类型仅支持.$this-upFileType.不支持.$imgType));
$photo=$imageName. . .$imgType;//写入数据库的文件名
$uploadFile=$this-annexFolder. / .$photo;//上传后的文件名称
$upFileok=move_uploaded_file($_FILES[$inputName][ tmp_name],$uploadFile);if($upFileok) {
$imgSize=$_FILES[$inputName][ size
$kSize=round($imgSize/1024);if($kS ize($this-upF ile Max*1024)) {
@unlink($up lo adF il e);die(error(上传文件超过.$this-upF ileMax.KB));
} els e {die(error(上传图片失败请确认你的上传文件不超过$upFileMax KB或上传时间超时));r eturn$photo;function getInfo($photo) {
$photo=$this-annexF older. / .$photo;
$imageInfo=getimagesize($photo);
$imgInfo[w idth]=$imageInfo[0];
$imgInfo[height ]=$imageInfo[1];
$imgInfo[ typ e]=$imageInfo[2];
$imgInfo[name]=basename($photo);r eturn$imgI nfo;function smallImg($photo,$width=128,$height=128) {
$imgInfo=$this-getInfo($photo);
$photo=$this-annexF older. / .$photo;//获得图片源
$newName=s ub s tr($imgInfo[name],0,s trrpos($imgInfo[name], . ))._thumb.jpg//新图片名称if($im g I n fo[ typ e]==1) {
$img=imagecreatefromgif($photo);
} els eif($imgInfo[ type]==2) {
$img=imagecreatefromjpeg($photo);
} els eif($imgInfo[ type]==3) {
$img=imagecreatefrompng($photo);
} els e {
$img=if(empty($img)) return F als e;
$w idth=($w idth$imgI nfo[w idth]) ?$imgI nfo[w idth] :$w idth;
$height=($height$imgInfo[height ])?$imgInfo[height ] :$height;
$srcW=$imgInfo[width
$srcH=$imgInfo[heightif($src W*$w idth$s rc H* $height) {
$height=round($src H* $w idth/$src W);
} els e {
$w idth=round($src W* $height /$src H);if(func tion_exists( imagec reatetruec olor)) {
$newImg=imagec reatetruec olor($w idth, $height);
ImageCopyRes ampled($new Img, $img, 0, 0, 0, 0, $w idth, $height, $imgInfo[w idth ],$imgInfo[height ]);
} els e {
$newI mg=imag ec r eate($w idth,$height);
ImageCopyRes ized($new Img, $img, 0, 0, 0, 0, $w idth, $height, $imgInfo[ w idth ],$imgInfo[height ]);if($this- toF ile) {if (file_ex is ts($this- annexF older. / .$this- s mallF older. / .$newName))@unlink($this-annexFolder. / .$this- smallFo lder. / .$newName);
ImageJPEG($new Img,$this-annexFolder. / .$this- smallFold er. / .$newName);return$this-annexF older. / .$this- s mallF old er. / .$newName;
} els e {
ImageJPEG($newImg);
ImageDestroy($newImg);
ImageDestroy($img);r eturn$new Nam e;function waterMark($photo,$text) {
$imgInfo=$this-getInfo($photo);
$photo=$this-annexF older. / .$photo;
$newName=subs tr($imgInfo[name],0,s trrpos($imgInfo[name], . )) ._mark.jpgsw itch($imgInfo[ type]) {case 1:
$img=imagecreatefromgif($photo);break;case2:
$img=imagecreatefromjpeg($photo);break;case3:
$img=imagecreatefrompng($photo);break;default:r eturn F als e;if(empty($img))return F als e;
$w idth=($this-m axWidth$im g I n fo[w idth]) ?$im g I n fo[w idth] :$this-m axWidth;
$height=($this-maxHe ight$imgInfo[height ]) ?$img Info[height ] :$this-maxHe ight;
$srcW=$imgInfo[width
$srcH=$imgInfo[heightif($src W*$w idth$s rc H* $height) {
$height=round($src H* $w idth/$src W);
} els e {
$w idth=round($src W* $height /$src H);if(func tion_exists( imagecreatetruec olor)) {
$newImg=imagec reatetruec olor($w idth, $height);
ImageCopyRes ampled($new Img, $img, 0, 0, 0, 0, $w idth, $height, $imgInfo[w idth ],$imgInfo[height ]);
} els e {
$newI mg=imag ec r eate($w idth,$height);
ImageCopyRes ized($newImg, $img, 0, 0, 0, 0, $w idth, $height, $imgInfo[ w idth ],
$imgInfo[height ]);
$white=imageColorAllocate($newImg,255,255,255);
$black=imageColorAllocate($newImg,0,0,0);
$alpha=imageCo lorAlloc ateAlpha($newImg,230,230,230,40);
ImageF illedRec tangle($new Img,0, $height-26,$w idth, $height, $alpha);
ImageFilledRectangle($newImg, 13, $height-20, 15,$height-7, $black);
ImageT TF Text($new Img,4.9,0,20,$height-14, $blac k,$this-fontType, $text[0]);
ImageT TF Text($new Img,4.9,0,20,$height-6, $blac k,$this-fontType, $text[1]);if($this- toF ile) {if (file_ex is ts($this- annexF older. / .$this- markF older. / .$newName))@unlink($this-annexF older. / .$this-markF older. / .$newName);
ImageJPEG($new Img,$this-annexF older. / .$this-markF older. / .$newName);return$this-annexF o lder. / .$this-markF o lder. / .$new Name;
} els e {
ImageJPEG($newImg);
ImageDestroy($newImg);
ImageDestroy($img);r eturn$new Nam e;
Sharktech最近洛杉矶和丹佛低价配置大部分都无货了,只有荷兰机房还有少量库存,商家又提供了两款洛杉矶特价独立服务器,价格不错,CPU/内存/硬盘都是高配,1-10Gbps带宽不限流量最低129美元/月起。鲨鱼机房(Sharktech)我们也叫它SK机房,是一家成立于2003年的老牌国外主机商,提供的产品包括独立服务器租用、VPS主机等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等,主...
从介绍看啊,新增的HostYun 俄罗斯机房采用的是双向CN2线路,其他的像香港和日本机房,均为国内直连线路,访问质量不错。HostYun商家通用九折优惠码:HostYun内存CPUSSD流量带宽价格(原价)购买地址1G1核10G300G/月200M28元/月购买链接1G1核10G500G/月200M38元/月购买链接1G1核20G900G/月200M68元/月购买链接2G1核30G1500G/月...
LOCVPS怎么样?LOCVPS是一家成立于2011年的稳定老牌国人商家,目前提供中国香港、韩国、美国、日本、新加坡、德国、荷兰等区域VPS服务器,所有机房Ping延迟低,国内速度优秀,非常适合建站和远程办公,所有机房Ping延迟低,国内速度优秀,非常适合做站。XEN架构产品的特点是小带宽无限流量、不超售!KVM架构是目前比较流行的虚拟化技术,大带宽,生态发展比较全面!所有大家可以根据自己业务需求...