网站制作学习网PHP→正文:GD库
字体:

GD库

PHP 2009/11/5 9:03:18  点击:不统计

在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);
?>
//www.forasp.cn 整理
<?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图片即可而且没有白色杂点  ”。   
//----------------------------------------函数参数说明------------------------------------   
//   
//变量       含义             类型   
//$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   
//    www.forasp.cn整理
//****************************************************************************************   
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> www.forasp.cn整理
原文载于:http://hi.baidu.com/lnln22/blog/item/1b45d1de769bc21963279889.html
 

·上一篇:php判断天干地支星座 >>    ·下一篇:smarty判断字符串内含有字符 >>
推荐文章
最新文章