免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2379 | 回复: 2
打印 上一主题 下一主题

众长思壮工作室 - 代码发布分享专栏 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-01 21:37 |只看该作者 |倒序浏览
本帖最后由 zcstrong 于 2011-12-04 20:54 编辑

PHP增加图片透明背景 - 众长思壮工作室

大家好,提供大家一个方便的函数,将一张图片增加一个透明的背景,所生成的图片是PNG格式。

博客地址:PHP增加图片透明背景

1.如何引用
  1. <?PHP
  2. #参数一:所要修改图片地址及名称;
  3. #参数二:所要生成图片的名称(不需要后缀);
  4. #参数三:宽度;
  5. #参数四:高度;
  6. overlayjpg("icon_error.gif","1234","800","800");
  7. ?>
复制代码
2.具体方法
  1. <?php
  2. function overlayjpg($imgsrc,$imgdst,$width,$height="")
  3. {
  4. //$imgsrc jpg格式图像路径 $imgdst 图像保存文件名 $imgwidth要改变的宽度 $imgheight要改变的高度
  5. //取得图片的宽度,高度值
  6. $arr = getimagesize($imgsrc);
  7. //计算图片X轴位置
  8. $img_X = ($width - $arr[0])/2;
  9. if($height == ""){
  10.     $heights = $arr[1];
  11.     $img_Y = 0;
  12. }
  13. else{
  14.     if($height <= $arr[1]){
  15.         $heights = $arr[1];
  16.         $img_Y = 0;
  17.     }
  18.     else{
  19.         $heights = $height;
  20.         $img_Y = ($height - $arr[1])/2;
  21.     }
  22. }

  23. $image = imagecreatetruecolor($width,$heights); //创建一个彩色的底图
  24. imagealphablending($image, false);
  25. imagesavealpha($image, true);
  26. $white = imagecolorallocatealpha($image,255,255,255,127);
  27. imagefill($image,0,0,$white);
  28. $imgsrc = LoadIMG($imgsrc,$arr['mime']);
  29. imagecopy($image,$imgsrc,$img_X,$img_Y,0,0,$arr[0],$arr[1]);
  30. //imagejpeg($image,$imgdst,90);
  31. imagepng($image,$imgdst.".png");
  32. imagedestroy($image);
  33. }

  34. function LoadIMG($imgname,$mime)
  35. {
  36.     if($mime == "image/gif"){
  37.         $im = @imagecreatefromgif($imgname); /* Attempt to open */
  38.     }
  39.     elseif ($mime == "image/png"){
  40.         $im = @imagecreatefrompng($imgname); /* Attempt to open */
  41.     }
  42.     else{
  43.         $im = @imagecreatefromjpeg($imgname); /* Attempt to open */
  44.     }
  45.     if(!$im) { /* See if it failed */
  46.         $im = imagecreatetruecolor(150, 30); /* Create a blank image */
  47.         $bgc = imagecolorallocate($im, 255, 255, 255);
  48.         $tc = imagecolorallocate($im, 0, 0, 0);
  49.         imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
  50.         /* Output an errmsg */
  51.         imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
  52.     }
  53.     return $im;
  54. }
  55. ?>
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-12-02 12:27 |只看该作者
第一段代码就是
<?
开头,

起码写成<?php 啊

论坛徽章:
0
3 [报告]
发表于 2011-12-04 20:56 |只看该作者
哈哈 楼上谢谢您的提醒我下次将会严谨一些,<? 与 <?php,根据服务器配置不同,一般都是可以使用的。发布之前很匆忙不好意思了。{:2_168:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP