<?php
/*===================================
注释:此程序为图片上传程序,当上传文件超出固定宽度,则最大图为上传图,中等图为宽度720,比例高度的图
当上传文件没有超出固定宽度,则最大图与中等图都为上传图
最小图为长宽比例缩小的图
===================================*/
/*==程序开始==*/
function Upload_Start($fileField,$waterMake_maxImg,$waterMake_maxText,$waterMake_centImg,$waterMake_centText,$waterMake_minImg,$waterMake_minText,$waterPosition_Img,$waterPosition_Text,$transparency,$waterString,$fontStyle,$fontSize){
/*==程序主体==*/
/*==多文件路径==*/
/*==获取文件类型==*/
$fileType=substr(strrchr($_FILES[$fileField]["name"],"."),1);
/*==判断是否已选择图片==*/
if(!is_uploaded_file($_FILES[$fileField]["tmp_name"])){
echo "图片不存在";
exit;
}
/*==判断图片大小==*/
/*==判断是否超出预订大小==*/
if($_FILES[$fileField]["size"]>2*1024*1024){
echo "图片太大,请选择文件小于2M的图片";
exit;
}
/*==判断是否小于预订大小==*/
$imgSize=getimagesize($_FILES[$fileField]["tmp_name"]); //获取图片高和宽
$imgSize_W=$imgSize[0]; //获取图片宽
$imgSize_H=$imgSize[1]; //获取图片高
/*==图片长宽最小限制==*/
if($imgSize_W<180||$imgSize_H<150){
echo "图片太小,请选择尺寸大于180*150的图片";
exit;
}
/*==图片长宽最大限制==*/
//if($imgSize_W>1000||$imgSize_H>1200){
// echo "图片太大,请选择尺寸小于1000*1200的图片";
// exit;
// }
/*==判断文件类型==*/
$ImgType=array("jpg","gif","bmp","jpeg","png");
if(!in_array(strtolower($fileType),$ImgType)){
$text=implode(',',$ImgType);
echo "您只能上传已下类型的文件:".$text."'";
exit;
}
/*==判断图片大小==*/
if($_FILES[$fileField]["size"]>1024*1024){
echo "您上传的图片太大,请重新选择";
exit;
}
/*==文件重新命名==*/
$time=date("dHis").microtime()*1000000; //获取新文件名
$arr=array($time,$fileType); //创建数组
$name=implode(".",$arr); //组合数组 获取完整文件名(文件名+文件类型)
/*==创建图片文件夹==*/
$fileTime=date("Ymd"); //获取新文件夹名
$fileMaxSrc="UploadImg/MaxImg/".$fileTime; //大图新文件夹路径
$fileCentSrc="UploadImg/CentImg/".$fileTime; //中图新文件夹路径
$fileMinSrc="UploadImg/MinImg/".$fileTime; //小图新文件夹路径
if(!file_exists($fileMaxSrc)){
mkdir($fileMaxSrc);
}
if(!file_exists($fileCentSrc)){
mkdir($fileCentSrc);
}
if(!file_exists($fileMinSrc)){
mkdir($fileMinSrc);
}
/*==图片文件路径==*/
$maxImgSrc=$fileMaxSrc."/".$name; //放大图片路径
$centImgSrc=$fileCentSrc."/".$name; //中等图片路径
$minImgSrc=$fileMinSrc."/".$name; //缩小图片路径
/*==执行上传文件==*/
if(move_uploaded_file($_FILES[$fileField]["tmp_name"],$maxImgSrc)){
echo "<div class='Hui'>图片上传完毕,大图预览</div><div><img src=$maxImgSrc></div><br />";
}
else{
echo "<center>图片上传失败</center>";
}
/*============缩略图部分===============*/
/*==设置长与宽的比值==*/
$H_W_Scal=$imgSize_H/$imgSize_W;
/*==获取原图信息==*/
$getImg=getimagesize($maxImgSrc);
/*==在内存中创建图片(内存为操作提供平台)==*/
switch($getImg[2]){ //获取图片格式
case 1:
$createImg=imagecreatefromgif($maxImgSrc);
break;
case 2:
$createImg=imagecreatefromjpeg($maxImgSrc);
break;
case 3:
$createImg=imagecreatefrompng($maxImgSrc);
break;
case 6:
$createImg=imagecreatefrombmp($maxImgSrc);
break;
default:
die("不支持的文件类型");
exit;
}
/*================中等图片================*/
if($imgSize_W>720){
$centImg_W=720; //超过固定宽度,则固定宽
$centImg_H=$centImg_W*$H_W_Scal; //设置高度
$centBgImg=imagecreatetruecolor($centImg_W,$centImg_H); //创建一个临时的背景图
imagecopyresized($centBgImg,$createImg,0,0,0,0,$centImg_W,$centImg_H,$imgSize_W,$imgSize_H); //背景图上按比例投影原图片样式
imagejpeg($centBgImg,$centImgSrc,100); //指定文件夹输出图片
}
else{
$centImg_W=$imgSize_W; //中图文件宽(制作水印时使用)
$centImg_H=$imgSize_H; //中图文件高(制作水印时使用)
copy($maxImgSrc,$centImgSrc); //复制图片
}
echo "<div class='Hui'>中等缩略图预览</div><div><img src=$centImgSrc></div><br />";
/*==========缩小图片(最大宽、高不超过130)==========*/
$min_Scal=min("130"/$imgSize_W,"130"/$imgSize_H); //设置缩略图比例
$minImg_H=floor($imgSize_H*$min_Scal); //获取缩小图高
$minImg_W=floor($imgSize_W*$min_Scal); //获取缩小图宽
$tmpBgImg=imagecreatetruecolor($minImg_W,$minImg_H); //创建一个临时的背景图
imagecopyresized($tmpBgImg,$createImg,0,0,0,0,$minImg_W,$minImg_H,$imgSize_W,$imgSize_H); //背景图上按比例投影原图片样式
imagejpeg($tmpBgImg,$minImgSrc,50); //指定文件夹输出图片
echo "<div class='Hui'>缩略图预览</div><div><img src=$minImgSrc></div><br />";
/*======================水印部分======================*/
/*==============图片水印部分====================*/
/*======图片水印公共部分========*/
$waterImage="UploadImg/Water/water.jpg"; //水印图片路径
$waterImageInfo=getimagesize($waterImage); //获取水印图片信息
$waterImage_W=$waterImageInfo[0]; //获取水印图片宽
$waterImage_H=$waterImageInfo[1]; //获取水印图片高
/*==创建内存水印图==*/
switch($waterImageInfo[2])
{
case 1:
$createWaterImg=imagecreatefromgif($waterImage);
break;
case 2:
$createWaterImg=imagecreatefromjpeg($waterImage);
break;
case 3:
$createWaterImg=imagecreatefrompng($waterImage);
break;
case 6:
$createWaterImg=imagecreatefrombmp($waterImage);
break;
default:
die("不支持的文件类型");
exit;
}
imagealphablending($createWaterImg, true); //设置图片真彩绘画模式,混合模式
/*==大图水印部分==*/
if($waterMake_maxImg=="1"){
/*====================================================
大图文件信息 $maxImgSrc(文件路径) $imgSize_W(水印宽) $imgSize_H(水印高) $createImg(内存中的图)
====================================================*/
/*==图片水印位置==*/
switch($waterPosition_Img) {
case 0://随机
$posX = rand(0,($imgSize_W - $waterImage_W));
$posY = rand(0,($imgSize_H - $waterImage_H));
break;
case 1://1为顶端居左
$posX = 0;
$posY = 0;
break;
case 2://2为顶端居中
$posX = ($imgSize_W - $waterImage_W) / 2;
$posY = 0;
break;
case 3://3为顶端居右
$posX = $imgSize_W - $waterImage_W;
$posY = 0;
break;
case 4://4为中部居左
$posX = 0;
$posY = ($imgSize_H - $waterImage_H) / 2;
break;
case 5://5为中部居中
$posX = ($imgSize_W - $waterImage_W) / 2;
$posY = ($imgSize_H - $waterImage_H) / 2;
break;
case 6://6为中部居右
$posX = $imgSize_W - $waterImage_W;
$posY = ($imgSize_H - $waterImage_H) / 2;
break;
case 7://7为底端居左
$posX = 0;
$posY = $imgSize_H - $waterImage_H;
break;
case 8://8为底端居中
$posX = ($imgSize_W - $waterImage_W) / 2;
$posY = $imgSize_H - $waterImage_H;
break;
case 9://9为底端居右
$posX = $imgSize_W
评论3
最新资源