您好,欢迎访问一九零五行业门户网

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=http://www.webjx.com;//文字
 $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 文件上传失败
;
?>
其它类似信息

推荐信息