Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)归海一刀published in(发表于) 2014/2/17 7:31:31 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 "文件上传失败";?>
赞