Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/2/17 7:31:31
PHP实例:PHP实现上传文件生成小图加文字的实例_[PHP教程]

PHP实例:PHP实现上传文件生成小图加文字的实例_[PHP教程]

//自动缩图srcFile原文件,大图;photo_small目标文件,小图;dstW,dstH是小图的宽,高。
function makethumb(srcFile,photo_small,dstW,dstH) {
data = GetImageSize(srcFile);
switch (data[2]) {
case 1: //图片类型,1是GIF图
im = @ImageCreateFromGIF(srcFile);
break;
case 2: //图片类型,2是JPG图
im = @imagecreatefromjpeg(srcFile);
break;
case 3: //图片类型,3是PNG图
im = @ImageCreateFromPNG(srcFile);
break;
}
srcW=ImageSX(im);//原始图片的宽度,也可以使用data[0]
srcH=ImageSY(im);//原始图片的高度,也可以使用data[1]
srcX=0;//来源图的坐标x,y
srcY=0;
if((srcW/dstW)>(srcH/dstH)){//得出要生成图片的长宽
dstW2=dstW;//输出图片的宽度、高度
dstH2=srcH*dstW/srcW;
dstX=0;//输出图形的坐标x,y
dstY=(dstH-dstH2)/2;
}
else{
dstH2=dstH;//输出图片的宽度、高度
dstW2=srcW*dstW/srcH;
dstX=(dstW-dstW2)/2;//输出图形的坐标x,y
dstY=0;
}
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); //在显示图片时用,把注释取消,可以直接在页面显示出图片。
}
//生成带有版权信息的图片
function makeCopyright(srcFile,dstFile,dstW,dstH){
data = GetImageSize(srcFile);
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]
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);//画出空白花布的大小
ImageCopyResized(dstimg,srcImg,0,0,0,0,dstW2,dstH2,srcW,srcH);
//定义要写入的文字
word="";//文字
font=5;//字体
wordColor=imagecolorallocate(dstimg,0x08,0x00,0x00);//颜色
wordX=dstW2-200;//x坐标
wordY=dstH2-20;//y坐标
imagestring(dstimg,font,wordX,wordY,word,wordColor);//写入文字
ImageJpeg(dstimg,dstFile);
//ImageJpeg(ni); //在显示图片时用,把注释取消,可以直接在页面显示出图片。
}


//调用
srcFile=pimg_name;//取得文件扩展名:
type=substr(strrchr(pimg_name,"."),1);
photo_ID=date("YmdHis");
dst_small=photo_ID."_s.".type; //小图
dst_big=photo_ID."_b.".type; //大图
makethumb(pimg,"../cpzs/".dst_small,120,90);//120,90为小图宽,高
makeCopyright(pimg,"../cpzs/".dst_big,600,480);
//if(copy(pimg,"../cpzs/".dst_big))
// echo "文件上传成功
";
//else
// echo "文件上传失败
";
?>








If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759