GD Library사용하기
페이지 정보
작성자 MintState 댓글 0건 조회 12,062회 작성일 08-10-31 11:11본문
GD Library사용하기
Apache+PHP+MySQL+GD+Imap를 설치해 놓고도 GD를 사용하지 않았죠...
이번에 GD를 사용해 보겠습니다.
아시겠지만 GD1.6이후부터 gif방식을 지원하지 않습니다. 현제 설치한 Version이 1.8.3
혹 gif방식으로 사용하시는 분은 다음과 같은 Error을 보게 될겁니다.
"ImageGif: No GIF support in this PHP build in "
gif를 대신하여 png(Portable Network Graphics)를 사용하겠습니다.
png는 웹상에서 이미지 전송을 위해 특별히 고안된 포맷이라 합니다.
gif보다 크기와 품질이 더 우수하다고 합니다. 물론 Netscape와 IE모두 지원합니다.
간단한 예를 하나 보고 시작하겠습니다.
결과보기) gd1.php3 [ImageLine]
결과보기) gd2.php3 [Image DashedLine]
결과보기) gd3.php3 [Image Arc]
결과보기) gd4.php3 [ImageArc]
결과보기) gd5.php3 [ImagePolygon]
결과보기) gd6.php3 [ImageFilledPolygon & Rectangle]
결과보기) gd7.php3 [ImageFill]
결과보기) gd8.php3 [ImageFillToBorder]
결과보기) gd-char1.php3 [ImageChar]
결과보기) gd-char2.php3 [ImageString]
GD를 이용해 만든 간단한 서버 정보보기
결과보기) gd-info.php3
Apache+PHP+MySQL+GD+Imap를 설치해 놓고도 GD를 사용하지 않았죠...
이번에 GD를 사용해 보겠습니다.
아시겠지만 GD1.6이후부터 gif방식을 지원하지 않습니다. 현제 설치한 Version이 1.8.3
혹 gif방식으로 사용하시는 분은 다음과 같은 Error을 보게 될겁니다.
"ImageGif: No GIF support in this PHP build in "
gif를 대신하여 png(Portable Network Graphics)를 사용하겠습니다.
png는 웹상에서 이미지 전송을 위해 특별히 고안된 포맷이라 합니다.
gif보다 크기와 품질이 더 우수하다고 합니다. 물론 Netscape와 IE모두 지원합니다.
간단한 예를 하나 보고 시작하겠습니다.
결과보기) gd1.php3 [ImageLine]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(100,100);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
//배경색
ImageLine($im,0,0,99,99,$white);
//흰색의대각선그림
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
결과보기) gd2.php3 [Image DashedLine]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(100,100);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
//배경색
ImageDashedLine($im,0,50,99,50,$white);
//흰색점선을그림
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
결과보기) gd3.php3 [Image Arc]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(100,100);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
//배경색
ImageArc($im,50,50,50,25,0,360,$white);
//50,50을기준으로50,25의원을0도에서360도까지white색상으로그림
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
결과보기) gd4.php3 [ImageArc]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(100,100);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
//배경색
ImageRectangle($im,10,10,80,80,$white);
//흰색의사각형그림
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
결과보기) gd5.php3 [ImagePolygon]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(100,100);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
//배경색
$points[0]=30;$points[1]=10;
$points[2]=70;$points[3]=10;
$points[4]=90;$points[5]=50;
$points[6]=70;$points[7]=90;
$points[8]=30;$points[9]=90;
$points[10]=10;$points[11]=50;
//좌표입력값
ImagePolygon($im,$points,6,$white);
//각좌표값으로다각형그리기
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
결과보기) gd6.php3 [ImageFilledPolygon & Rectangle]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(200,200);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
//배경색
$points[0]=30;$points[1]=10;
$points[2]=70;$points[3]=10;
$points[4]=90;$points[5]=50;
$points[6]=70;$points[7]=90;
$points[8]=30;$points[9]=90;
$points[10]=10;$points[11]=50;
//좌표입력값
ImageFilledPolygon($im,$points,6,$white);
//속이찬다각형그리기
ImageFilledRectangle($im,125,125,175,175,$white);
//속이찬사각형그리기
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
결과보기) gd7.php3 [ImageFill]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(200,200);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
$red=ImageColorAllocate($im,255,0,0);
//배경색
ImageArc($im,50,25,98,48,0,360,$white);
//흰색원을그림
ImageFill($im,50,50,$red);
//바탕을red로채움
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
결과보기) gd8.php3 [ImageFillToBorder]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(200,200);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
$red=ImageColorAllocate($im,255,0,0);
//배경색
ImageArc($im,50,25,98,48,0,360,$white);
//흰색원을그림
ImageFillToBorder($im,50,25,$white,$red);
//타원을적새으로채움,보드는흰색
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
결과보기) gd-char1.php3 [ImageChar]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(100,100);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
$red=ImageColorAllocate($im,255,0,0);
//배경색
$char="L";
//입력할문자
ImageChar($im,5,45,40,$char,$white);
//문자(1개)출력을한다.
ImageCharUp($im,5,45,40,$char,$white);
//문자(1개)90도회전출력을한다.
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
결과보기) gd-char2.php3 [ImageString]
<?php
Header("Content-Type:image/png");
//Png이미지를생성하겠다는해더를보냄
$im=ImageCreate(800,600);
//100X100크기의새로운이미지생성
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
$red=ImageColorAllocate($im,255,0,0);
//배경색
$char="Linuxand.net";
//입력할문자
ImageInterlace($im,1);
$strart_x=400-(strlen($char)*ImageFontWidth(5)/2);
$strart_y=300-ImageFontHeight(5)/2;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
//문자열을출력을한다.
$strart_x=400-ImageFontHeight(5)/2;
$strart_y=300+(strlen($char)*ImageFontWidth(5)/2);
ImageStringUp($im,5,$strart_x,$strart_y,$char,$white);
//문자열을90도회전출력을한다.
ImagePng($im);
//Png이미지생성
ImageDestroy($im);
//생성된이미지파기
?>
GD를 이용해 만든 간단한 서버 정보보기
결과보기) gd-info.php3
<?php
Header("Content-Type:image/png");
$im=ImageCreate(800,600);
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
$red=ImageColorAllocate($im,255,0,0);
$yellow=ImageColorAllocate($im,255,255,0);
//메모리체크부분
$mem=file("/proc/meminfo");
//물리적메모리
$get[total]=eregi_replace("[^0-9]","",$mem[3]);//메모리합계Kb
$get[free]=eregi_replace("[^0-9]","",$mem[4]);//여유메모리Kb
$get[used]=$get[total]-$get[free];//사용한메모리Kb
$get[freepercent]=round(($get[free]/$get[total])*100);//여유메모리퍼센트
$get[usedpercent]=100-$get[freepercent];//사용한메모리퍼센트
$get[total]=number_format($get[total]);
$get[free]=number_format($get[free]);
$get[used]=number_format($get[used]);
$char="MemoryInfo";
ImageInterlace($im,1);
$strart_x=100;
$strart_y=60;
ImageString($im,5,$strart_x,$strart_y,$char,$yellow);
ImageRectangle($im,100,80,200,90,$yellow);
ImageFilledRectangle($im,102,82,100+$get[usedpercent],88,$red);
$char="Total".$get[total]."Kbyte";
ImageInterlace($im,1);
$strart_x=100;
$strart_y=100;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
$char="Free".$get[free]."Kbyte".$get[freepercent]."%";
ImageInterlace($im,1);
$strart_x=100;
$strart_y=120;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
$char="Used".$get[used]."Kbyte".$get[usedpercent]."%";
ImageInterlace($im,1);
$strart_x=100;
$strart_y=140;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
//메모리체크부분
//Swap디스크사용량
$get[swaptotal]=eregi_replace("[^0-9]","",$mem[count($mem)-2]);//스왑합계Kb
$get[swapfree]=eregi_replace("[^0-9]","",$mem[count($mem)-1]);//스왑여유Kb
$get[swapused]=$get[swaptotal]-$get[swapfree];//스왑사용량Kb
$get[swapfreepercent]=round(($get[swapfree]/$get[swaptotal])*100);//스왑여유공간퍼센트
$get[swapusedpercent]=100-$get[swapfreepercent];//사용한스왑퍼센트
$get[swaptotal]=number_format($get[swaptotal]);
$get[swapfree]=number_format($get[swapfree]);
$get[swapused]=number_format($get[swapused]);
$char="SwapInfo";
ImageInterlace($im,1);
$strart_x=400;
$strart_y=60;
ImageString($im,5,$strart_x,$strart_y,$char,$yellow);
ImageRectangle($im,400,80,500,90,$yellow);
ImageFilledRectangle($im,402,82,400+$get[swapusedpercent],88,$red);
$char="Total".$get[swaptotal]."Kbyte";
ImageInterlace($im,1);
$strart_x=400;
$strart_y=100;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
$char="Free".$get[swapfree]."Kbyte".$get[swapfreepercent]."%";
ImageInterlace($im,1);
$strart_x=400;
$strart_y=120;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
$char="Used".$get[swapused]."Kbyte".$get[swapusedpercent]."%";
ImageInterlace($im,1);
$strart_x=400;
$strart_y=140;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
//Swap디스크사용량
$DataFile="/usr/local/apache/htdocs/counter.data";
if(file_exists($DataFile))
{
$fp=fopen($DataFile,'r');
$buffer=fread($fp,filesize($DataFile));
fclose($fp);
$Temp=explode("|",$buffer);
$Count=intval($Temp[0]);
$LastIP=$Temp[1];
$Time=intval($Temp[2]);
}
$server_name=getenv("SERVER_NAME");
$server_software=getenv("SERVER_SOFTWARE");
$remote_ip="ConnectIP:".getenv("REMOTE_ADDR");
$server_count="Visit:".$Count;
$char=$server_name;
ImageInterlace($im,1);
$strart_x=400-(strlen($char)*ImageFontWidth(5)/2);
$strart_y=300-ImageFontHeight(5)/2;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
$char=$server_software;
ImageInterlace($im,1);
$strart_x=400-(strlen($char)*ImageFontWidth(5)/2);
$strart_y=320-ImageFontHeight(5)/2;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
$char=$remote_ip;
ImageInterlace($im,1);
$strart_x=400-(strlen($char)*ImageFontWidth(5)/2);
$strart_y=340-ImageFontHeight(5)/2;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
$char=$server_count;
ImageInterlace($im,1);
$strart_x=400-(strlen($char)*ImageFontWidth(5)/2);
$strart_y=360-ImageFontHeight(5)/2;
ImageString($im,5,$strart_x,$strart_y,$char,$white);
ImagePng($im);
ImageDestroy($im);
?> |
|
댓글목록
등록된 댓글이 없습니다.





GD Library사용하기