国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

GD庫是什么,功能是什么?

2009-11-10 14:19:09 14646

PHP處理圖像,可使用GD庫,而GD庫開(kāi)始時(shí)是支持GIF的,但由于GIF使用了有版權爭議的LZW算法,會(huì )引起法律問(wèn)題,于是從GD-1.6開(kāi)始,GD庫不再支持GIF,改為支持更好的,無(wú)版權爭議的PNG。php(gd庫)輸出中文圖像的轉換函數

首先配置GD庫:
1:
dos命令(也可以手動(dòng)操作,拷貝dlls文件夾里所有dll文件到system32目錄下) copy c:phpdlls*.dll c:windowssystem32
2:
打開(kāi)php.ini
設置extension_dir = "c:/php/extensions/";
3:
extension=php_gd2.dll;
extension前面的逗號去掉,如果沒(méi)有php_gd2.dll,php_gd.dll也一樣,保證確實(shí)存在這一文件c:/php/extensions/php_gd2.dll
4:
運行下面程序進(jìn)行測試

PHP
代碼:--------------------------------------------------------------------------------

<?php
Ob_end_flush();
//
注意,在此之前不能向瀏覽器輸出任何信息,要注意是否設置了 auto_prepend_file.
header ("Content-type: image/png");
$im = @imagecreate (200, 100)
or die ("
無(wú)法創(chuàng )建圖像");
$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);
?>
其實(shí)我知道的也不多,具體的你可以搜索一下的,給你一個(gè)對GD庫中imagecopyAlpha功能的完善的例子研究一下吧:
<?php
//****************************************************************************************
//
帶有Alpha值設定的imagecopy函數,實(shí)現將一個(gè)圖片拷貝到另一個(gè)圖片的同時(shí)設置Alpha值的效果。
//PHP
GD函數庫中,沒(méi)有直接實(shí)現帶透明度設定的圖片復制函數,這里使用的是像素級的復制。
//
所使用到的GD函數:
//imagealphablending(),imagecolorat(),imagecolorallocatealpha(),imagesetpixel()
//imagealphablending(resource image,true)
是默認值,這里只是顯示賦值。
//
版權信息:
//
作者:高銘源 昵稱(chēng):Gapple E-mailgapple@sina.com 創(chuàng )作時(shí)間:200457 19:0022:30
//
補充完善版本是在2004-05-10 12:00完成的。感謝PASiO提供幫助:透明的PNG圖片即可而且沒(méi)有白色雜點(diǎn) 。
//****************************************************************************************
//
已知問(wèn)題:1)使用Png文件格式?jīng)]有問(wèn)題,其他圖片顏色會(huì )有雜點(diǎn),也就是無(wú)法干凈鏤空Logo圖片。
// 2)Png
文件不能使用Photoshop生成,而要用Firework MX以上的版本,Firework3.0經(jīng)測試不可以。
//****************************************************************************************
//----------------------------------------
函數參數說(shuō)明------------------------------------
//
//
變量 含義 類(lèi)型
//$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>

提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->