麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
[原创]gapple函数之imagealphacopy(),大家批批,我做的!
悬赏分:20 - 2007年06月05日

[PHP] <?php //**************************************************************************************** //带有Alpha值设定的imagecopy函数,实现将一个图片拷贝到另一个图片的同时设置Alpha值的效果。 //PHP的GD函数库中,没有直接实现带透明度设定的图片复制函数,这里使用的是像素级的复制。 //所使用到的GD函数: //imagealphablending(),imagecolorat(),imagecolorallocatealpha(),imagesetpixel() //imagealphablending(resource image,true)是默认值,这里只是显示赋值。 //版权信息: //作者:高铭源 昵称:Gapple E-mail:gapple@sina.com 创作时间:2004年5月7日 19:00~22:30 //补充完善版本是在2004-05-10 12:00完成的。感谢PASiO提供帮助:“透明的PNG图片即可而且没有白色杂点 ”。 //**************************************************************************************** //已知问题:1)使用Png文件格式没有问题,其他图片颜色会有杂点,也就是无法干净镂空Logo图片。 // 2)Png文件不能使用Photoshop生成,而要用Firework MX以上的版本,Firework3.0经测试不可以。 //**************************************************************************************** //----------------------------------------函数参数说明------------------------------------ // //变量 含义 类型 //$dst_im 目标图像 resource //$src_im 源图像 resource //$dst_x 目标图像x坐标 int //$dst_y 目标图像y坐标 int //$dst_w 目标图像宽度 int //$dst_h 目标图像高度 int //$src_w 源图像宽度 int //$src_h 源图像高度 int //$tran_color 期望的源图像中透明的颜色 int //$alpha 透明度设定值(0~127) int // //**************************************************************************************** function imagealphacopy($dst_im,$src_im,$dst_x,$dst_y,$dst_w,$dst_h,$src_w,$src_h,$tran_color,$alpha) { //判断是否越界 if (($src_w+$dst_x)>$dst_w) { return(false); } if (($src_h+$dst_y)>$dst_h) { return(false); } //判断完毕! imagealphablending($dst_im,true); for ($j=0;$j<=$src_h-1;$j++) { for ($i=0;$i<=$src_w-1;$i++) { $rgb = imagecolorat($src_im,$i,$j); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $now_color=imagecolorallocate($dst_im,$r,$g,$b); if ($now_color==$tran_color) { continue; } else { //echo $now_color."
"; $color=imagecolorallocatealpha($dst_im,$r,$g,$b,$alpha); imagesetpixel($dst_im,$dst_x+$i,$dst_y+$j,$color); } } } } $im_in=imagecreatefrompng("in.png"); $insize=getimagesize("in.png"); $im_out=imagecreatefromjpeg("out.jpg"); $outsize=getimagesize("out.jpg"); $white=imagecolorallocate ($im_out,255,255,255); imagealphacopy($im_out,$im_in,70,180,$outsize[0],$outsize[1],$insize[0],$insize[1],$white,75); imagepng($im_out,"large.png"); imagedestroy($im_in); imagedestroy($im_out); ?> [/PHP]

提问者:gapple   06-05 02:02
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
31 + 90 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM