PHP实现上传文件生成小图加文字的实例
- 作者: 五速梦信息网
- 时间: 2026年03月19日 18:06
以下为引用的内容:
//自动缩图\(srcFile原文件,大图;\)photo_small目标文件,小图;\(dstW,\)dstH是小图的宽,高。
function makethumb(\(srcFile,\)photo_small,\(dstW,\)dstH) {
\(data = GetImageSize(\)srcFile);
switch (\(data[2]) {<br/>
case 1: //图片类型,1是GIF图<br/>
\)im = @ImageCreateFromGIF(\(srcFile);<br/>
break;<br/>
case 2: //图片类型,2是JPG图<br/>
\)im = @imagecreatefromjpeg(\(srcFile);<br/>
break;<br/>
case 3: //图片类型,3是PNG图<br/>
\)im = @ImageCreateFromPNG(\(srcFile);<br/>
break;<br/>
}<br/>
\)srcW=ImageSX(\(im);//原始图片的宽度,也可以使用\)data[0]
\(srcH=ImageSY(\)im);//原始图片的高度,也可以使用\(data[1]<br/>
\)srcX=0;//来源图的坐标x,y
\(srcY=0;<br/>
if((\)srcW/\(dstW)>(\)srcH/\(dstH)){//得出要生成图片的长宽<br/>
\)dstW2=\(dstW;//输出图片的宽度、高度<br/>
\)dstH2=\(srcH*\)dstW/\(srcW;<br/>
\)dstX=0;//输出图形的坐标x,y
\(dstY=(\)dstH-\(dstH2)/2;<br/>
}<br/>
else{<br/>
\)dstH2=\(dstH;//输出图片的宽度、高度<br/>
\)dstW2=\(srcW*\)dstW/\(srcH;<br/>
\)dstX=(\(dstW-\)dstW2)/2;//输出图形的坐标x,y
\(dstY=0;<br/>
}<br/>
\)ni=imagecreatetruecolor(\(dstW,\)dstH);//ImageCreate(\(dstW,\)dstH);画出空白花布的大小
\(colorBody=imagecolorallocate(\)ni,235,234,233);//定义背景颜色
imagefill(\(ni,0,0,\)colorBody);//填充背景颜色
ImageCopyResized(\(ni,\)im,\(dstX,\)dstY,\(srcX,\)srcY,\(dstW2,\)dstH2,\(srcW,\)srcH);
ImageJpeg(\(ni,\)photo_small);
//ImageJpeg(\(ni); //在显示图片时用,把注释取消,可以直接在页面显示出图片。<br/>
}<br/>
//生成带有版权信息的图片<br/>
function makeCopyright(\)srcFile,\(dstFile,\)dstW,\(dstH){<br/>
\)data = GetImageSize(\(srcFile);<br/>
switch (\)data[2]) {
case 1: //图片类型,1是GIF图
\(srcImg = @ImageCreateFromGIF(\)srcFile);
break;
case 2: //图片类型,2是JPG图
\(srcImg = @imagecreatefromjpeg(\)srcFile);
break;
case 3: //图片类型,3是PNG图
\(srcImg = @ImageCreateFromPNG(\)srcFile);
break;
}
\(srcW=ImageSX(\)srcImg);//原始图片的宽度,也可以使用\(data[0]<br/>
\)srcH=ImageSY(\(srcImg);//原始图片的高度,也可以使用\)data[1]
if((\(srcW/\)dstW)>(\(srcH/\)dstH)){//得出要生成图片的长宽
\(dstW2=\)dstW;//输出图片的宽度、高度
\(dstH2=\)srcH\(dstW/\)srcW;
}
else{
\(dstH2=\)dstH;//输出图片的宽度、高度
\(dstW2=\)srcW\(dstW/\)srcH;
}
\(dstimg=imagecreatetruecolor(\)dstW2,\(dstH2);//画出空白花布的大小<br/>
ImageCopyResized(\)dstimg,\(srcImg,0,0,0,0,\)dstW2,\(dstH2,\)srcW,\(srcH);<br/>
//定义要写入的文字<br/>
\)word=“http://www.CuoXIn.com";//文字
\(font=5;//字体<br/>
\)wordColor=imagecolorallocate(\(dstimg,0x08,0x00,0x00);//颜色<br/>
\)wordX=\(dstW2-200;//x坐标<br/>
\)wordY=\(dstH2-20;//y坐标<br/>
imagestring(\)dstimg,\(font,\)wordX,\(wordY,\)word,\(wordColor);//写入文字<br/>
ImageJpeg(\)dstimg,\(dstFile);<br/>
//ImageJpeg(\)ni); //在显示图片时用,把注释取消,可以直接在页面显示出图片。
}
//调用
\(srcFile=\)pimg_name;//取得文件扩展名:
\(type=substr(strrchr(\)pimg_name,”.“),1);
\(photo_ID=date("YmdHis");<br/>
\)dst_small=\(photo_ID."_s.".\)type; //小图
\(dst_big=\)photo_ID.”_b.“.\(type; //大图<br/>
makethumb(\)pimg,”../cpzs/“.\(dst_small,120,90);//120,90为小图宽,高<br/>
makeCopyright(\)pimg,”../cpzs/“.\(dst_big,600,480);<br/>
//if(copy(\)pimg,”../cpzs/“.$dst_big))
// echo ”文件上传成功
“;
//else
// echo ”文件上传失败
“;
?>
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
相关文章
-
三星正研发Galaxy Fold 2 或明年4月发布
三星正研发Galaxy Fold 2 或明年4月发布
- 技术栈
- 2026年03月19日
-
交通强国:智能交通六大战略发展重点被提出
交通强国:智能交通六大战略发展重点被提出
- 技术栈
- 2026年03月19日
-
Java工程师视角:PHP精讲与实战深度解析
Java工程师视角:PHP精讲与实战深度解析
- 技术栈
- 2026年03月19日
-
新基建浪潮下 5G如何助力智慧城市发展?
新基建浪潮下 5G如何助力智慧城市发展?
- 技术栈
- 2026年03月19日
-
教你php中怎么将数据转为json格式
教你php中怎么将数据转为json格式
- 技术栈
- 2026年03月19日
-
Java视角解构PHP:教程与实战深度剖析
Java视角解构PHP:教程与实战深度剖析
- 技术栈
- 2026年03月19日






