• 技术文章 >php教程 >php手册

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

    2016-06-21 09:00:41原创450

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



    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp dstW dstH srcFile srcW
    上一篇:PHP动态网页编程常用技巧四则 下一篇:利用PHP和CSS改变网页文字大小
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• PHP过滤器的实现方法第1/2页• php自动跳转中英文页面• 投票管理程序_php基础• 实现分十页分向前十页向后十页的处理_php基础• PHP数据库操作之基于 Mysqli 的数据库操作类库
    1/1

    PHP中文网