您的位置:首页 > 编程语言 > PHP开发

PHP实现上传文件生成小图加文字的实例

2011-05-18 15:19 831 查看
<?

//自动缩图$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] wedding jewelry sets

$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坐标wedding jewelry
wholesale

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 "文件上传成功<br>";

//else

// echo "文件上传失败<br>";

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: