首页 > 开发 > PHP > 正文

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

2024-05-04 23:03:32
字体:
来源:转载
供稿:网友

<?
//自动缩图$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.VeVb.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 "文件上传成功<br>";
    //else
    //    echo "文件上传失败<br>";
?>



收集最实用的网页特效代码!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表