查看: 5189|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2007-10-4 22:41:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
  1. <?
  2. //自动缩图$srcFile原文件,大图;$photo_small目标文件,小图;$dstW,$dstH是小图的宽,高。
  3. function makethumb($srcFile,$photo_small,$dstW,$dstH) {
  4. $data = GetImageSize($srcFile);
  5. switch ($data[2]) {
  6. case 1: //图片类型,1是GIF图
  7.   $im = @ImageCreateFromGIF($srcFile);
  8.   break;
  9. case 2: //图片类型,2是JPG图
  10.   $im = @imagecreatefromjpeg($srcFile);
  11.   break;
  12. case 3: //图片类型,3是PNG图
  13.   $im = @ImageCreateFromPNG($srcFile);
  14.   break;
  15. }
  16. $srcW=ImageSX($im);//原始图片的宽度,也可以使用$data[0]

  17. $srcH=ImageSY($im);//原始图片的高度,也可以使用$data[1]
  18. $srcX=0;//来源图的坐标x,y
  19. $srcY=0;
  20. if(($srcW/$dstW)>($srcH/$dstH)){//得出要生成图片的长宽
  21.   $dstW2=$dstW;//输出图片的宽度、高度
  22.   $dstH2=$srcH*$dstW/$srcW;
  23.   $dstX=0;//输出图形的坐标x,y
  24.   $dstY=($dstH-$dstH2)/2;
  25. }
  26. else{
  27.   $dstH2=$dstH;//输出图片的宽度、高度
  28.   $dstW2=$srcW*$dstW/$srcH;
  29.   $dstX=($dstW-$dstW2)/2;//输出图形的坐标x,y
  30.   $dstY=0;
  31. }
  32. $ni=imagecreatetruecolor($dstW,$dstH);//ImageCreate($dstW,$dstH);画出空白花布的大小
  33. $colorBody=imagecolorallocate($ni,235,234,233);//定义背景颜色
  34. imagefill($ni,0,0,$colorBody);//填充背景颜色
  35. ImageCopyResized($ni,$im,$dstX,$dstY,$srcX,$srcY,$dstW2,$dstH2,$srcW,$srcH);
  36. ImageJpeg($ni,$photo_small);
  37. //ImageJpeg($ni); //在显示图片时用,把注释取消,可以直接在页面显示出图片。
  38. }
  39. //生成带有版权信息的图片
  40. function makeCopyright($srcFile,$dstFile,$dstW,$dstH){
  41. $data = GetImageSize($srcFile);
  42. switch ($data[2]) {
  43. case 1: //图片类型,1是GIF图
  44.   $srcImg = @ImageCreateFromGIF($srcFile);
  45.   break;
  46. case 2: //图片类型,2是JPG图
  47.   $srcImg = @imagecreatefromjpeg($srcFile);
  48.   break;
  49. case 3: //图片类型,3是PNG图
  50.   $srcImg = @ImageCreateFromPNG($srcFile);
  51.   break;
  52. }
  53. $srcW=ImageSX($srcImg);//原始图片的宽度,也可以使用$data[0]
  54. $srcH=ImageSY($srcImg);//原始图片的高度,也可以使用$data[1]

  55. if(($srcW/$dstW)>($srcH/$dstH)){//得出要生成图片的长宽
  56.   $dstW2=$dstW;//输出图片的宽度、高度
  57.   $dstH2=$srcH*$dstW/$srcW;
  58. }
  59. else{
  60.   $dstH2=$dstH;//输出图片的宽度、高度
  61.   $dstW2=$srcW*$dstW/$srcH;
  62. }
  63. $dstimg=imagecreatetruecolor($dstW2,$dstH2);//画出空白花布的大小
  64. ImageCopyResized($dstimg,$srcImg,0,0,0,0,$dstW2,$dstH2,$srcW,$srcH);


  65. //定义要写入的文字
  66. $word="http://www.webjx.com";//文字
  67. $font=5;//字体
  68. $wordColor=imagecolorallocate($dstimg,0x08,0x00,0x00);//颜色
  69. $wordX=$dstW2-200;//x坐标
  70. $wordY=$dstH2-20;//y坐标
  71. imagestring($dstimg,$font,$wordX,$wordY,$word,$wordColor);//写入文字
  72. ImageJpeg($dstimg,$dstFile);
  73. //ImageJpeg($ni); //在显示图片时用,把注释取消,可以直接在页面显示出图片。
  74. }

  75. //调用
  76. $srcFile=$pimg_name;//取得文件扩展名:
  77. $type=substr(strrchr($pimg_name,"."),1);
  78. $photo_ID=date("YmdHis");
  79. $dst_small=$photo_ID."_s.".$type; //小图
  80. $dst_big=$photo_ID."_b.".$type; //大图
  81. makethumb($pimg,"../cpzs/".$dst_small,120,90);//120,90为小图宽,高
  82. makeCopyright($pimg,"../cpzs/".$dst_big,600,480);
  83. //if(copy($pimg,"../cpzs/".$dst_big))
  84.     //     echo "文件上传成功
  85. ";
  86.     //else
  87.     //    echo "文件上传失败
  88. ";
  89. ?>
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表