当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP实现上传文件生成小图加文字的实例

PHP
php 服务器调试 Zend Debugger 的安装教程
从Web查询数据库之PHP与MySQL篇
php 应用程序安全防范技术研究
php 不同编码下的字符串长度区分
php 生成饼图 三维饼图
PHP 字符截取 解决中文的截取问题,不用mb系列
PHP5 操作MySQL数据库基础代码
php面向对象全攻略 (一) 面向对象基础知识
php面向对象全攻略 (二) 实例化对象 使用对象成员
php面向对象全攻略 (三)特殊的引用“$this”的使用
php面向对象全攻略 (四)构造方法与析构方法
php面向对象全攻略 (五) 封装性
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
php面向对象全攻略 (七) 继承性
php面向对象全攻略 (八)重载新的方法
php面向对象全攻略 (九)访问类型
php面向对象全攻略 (十) final static const关键字的使用
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
php面向对象全攻略 (十二) 抽象方法和抽象类
php面向对象全攻略 (十四) php5接口技术

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 276 ::
收藏到网摘: n/a

以下为引用的内容:

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