在PHP处理图像,可使用GD库,而GD库开始时是支持GIF的,但由于GIF使用了有版权争议的LZW算法,会引起法律问题,于是从GD-1.6开始,GD库不再支持GIF,改为支持更好的,无版权争议的PNG。php(gd库)输出中文图像的转换函数首先配置GD库:
1:用dos命令(也可以手动操作,拷贝dlls文件夹里所有dll文件到system32目录下) copy c:\php\dlls\*.dll c:\windows\system32\ 
2:打开php.ini
设置extension_dir = "c:/php/extensions/";
3:
extension=php_gd2.dll;把extension前面的逗号去掉,如果没有php_gd2.dll,php_gd.dll也一样,保证确实存在这一文件c:/php/extensions/php_gd2.dll
4:运行下面程序进行测试PHP代码:--------------------------------------------------------------------------------<?php
Ob_end_flush();
//注意,在此之前不能向浏览器输出任何信息,要注意是否设置了 auto_prepend_file.
header ("Content-type: image/png");
$im = @imagecreate (200, 100)
    or die ("无法创建图像");
$background_color = imagecolorallocate ($im, 0,0, 0);
$text_color = imagecolorallocate ($im, 230, 140, 150);
imagestring ($im, 3, 30, 50,  "A Simple Text String", $text_color);
imagepng ($im);
?>
其实我知道的也不多,具体的你可以搜索一下的,给你一个对GD库中imagecopy的Alpha功能的完善的例子研究一下吧:
<?php 
//**************************************************************************************** 
//带有Alpha值设定的imagecopy函数,实现将一个图片拷贝到另一个图片的同时设置Alpha值的效果。 
//PHP的GD函数库中,没有直接实现带透明度设定的图片复制函数,这里使用的是像素级的复制。 
//所使用到的GD函数: 
//imagealphablending(),imagecolorat(),imagecolorallocatealpha(),imagesetpixel() 
//imagealphablending(resource image,true)是默认值,这里只是显示赋值。 
//版权信息: 
//作者:高铭源  昵称:Gapple  E-mail:[email protected]  创作时间:2004年5月7日 19:00~22:30 
//补充完善版本是在2004-05-10 12:00完成的。感谢PASiO提供帮助:“透明的PNG图片即可而且没有白色杂点 :D ”。 
//**************************************************************************************** 
//已知问题: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."<br>"; 
    $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); 
?> 
<img src="large.png" border=0> 

解决方案 »

  1.   

    都讲完了...厉害的说,不过,还可以补充一点.最新版的PHP5又开始支持gif了,因为gif的版权已经到了,so 又可以支持了.
    如果想使用gif的,不需要再去找老版的GD库了.
      

  2.   

    太高兴了。终于又可以支持gif了。高兴。顶!
      

  3.   

    它有功能和photoshop的功能是不是一样,就是处理图象用的,如果和photohsop一样,那为什么还需要在php程序中调用它的函数来处理图象,为什么不能和photoshop一样,把图片处理好了,在php中<img>直接利用,这样不行吗?
      

  4.   

    就是“图形设备”去http://www.ddvip.net,有最新的php mannul,其中GD库的函数很全,就是有点慢,服务器忙!