GD라는 것은 php에서 이미지를다룰 수 있도록 해주는 도구를 말한다

이미지사이즈를 알려주는 함수 GetImageSize
저장될 배열 = GetImageSize ("이미지파일");

형식은 위와 같으며, 저장될배열에는 이미지 파일의 정보가 저장된다.
이때 배열의 원소에는 순서대로 가로사이즈, 세로사이즈, 이미지타입, 사이즈정보가 저장되는데,
사이즈는 픽셀단위로 나타내지고
이미지 타입은 gif는 1, jpg는 2, png는 3으로 저장되며,
사이즈 정보는 <img>태그에 적용될 수 있도록 width와 height가 사용된 형태로 나타내진다

<?
$info = GetImageSize ("banner.gif");
echo "
가로사이즈: $info[0] <br>
세로사이즈: $info[1] <br>
이미지타입: $info[2] <br>
$info[3]";
?>
결과는
가로사이즈: 205
세로사이즈: 20
이미지타입: 1
width="205" height="20"



이미지생성
이미지구분자=ImageCreate (가로,세로);

<?
$image=ImageCreate(300,300); //사이즈가 300*300인 이미지 생성
?>

이미지구분자 = ImageCreateFromGif ("gif파일");
이미지구분자 = ImageCreateFromJpeg ("jpeg파일);
이미지구분자 = ImageCreateFromPng ("png파일);


<?
$image = ImageCreateFromGif ("banner.gif"); //banner.gif를 가져와 이미지생성
?>



ImageDestroy
-이미지를 생성하면 메모리가 사용되므로 나중에는 제거해 줄때 사용되는 함수
ImageDestroy(이미지구분자);

<?
$image = ImageCreateFromGif ("banner.gif");
ImageDestroy ($image); //메모리에서 이미지 제거
?>



이미지출력
ImageGif (이미지 구분자, 저장할 파일이름);
ImageJpeg (이미지 구분자, 저장할 파일이름);
ImagePng (이미지 구분자, 저장할 파일이름);


두번째 매개변수인 저장할 파일이름은 적어주지 않아도 상관은 없다.
그런데 파일이름을 적어주게 되면 적어준 이름으로 이미지가 저장되게 되는데,
이때 해당디렉토리에 쓸 수 있는 권한이 있어야 한다.

<?
$image = ImageCreate (300,300); //사이즈가 300*300인 이미지생성
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거
?>

<?
$image = ImageCreateFromGif ("banner.gif"); //baner.gif를가져와 이미지생성
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거
?>


색의지정 ImageColorAllocate
색구분자 = ImageColorAllocate (이미지구분자, R,G,B);

<?
$image = ImageCreate (300,300);
$color_blue= ImageColorAllocate ($image, 0,0,255); //파란색설정
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거

?>

우리가 보통 사용하는 16진수 칼라코드인 #0000FF 등과 같은 모양을 사용하려면
0x00, 0x0, 0xFF 와 같이 넣어 주면된다
#0000FF 는 파란색이므로 RGB로 나눠보면 00,00,FF가 된다.
그런데 16진수이므로 앞에 0x를 붙여 16진수임을 알려주면 사용이 가능하다

<?
$image = ImageCreate (300,300);
$color_blue= ImageColorAllocate ($image, 0x00,0x00,0xff); //파란색설정
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거

?>



그리기

ImageSetPixel
-점을 찍어는 함수
ImageSetPixel (이미지구분자, x좌표, y좌표, 색구분자);

<?
$image = ImageCreate (300,300);
$color_black= ImageColorAllocate ($image, 0x00,0x00,0x00); //검정설정
$color_white= ImageColorAllocate ($image, 0xff, 0xff, 0xff); //흰색
ImageSetPixel ($image, 150,150, $color_white); //(150,150)에 흰색점 찍기
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거

?>


ImageLine
-선을 그어주는 함수
ImageLine (이미지구분자, x1좌표, y1좌표, x2좌표, y2좌표, 색구분자);

이미지구분자에 해당하는 이미지에 색 구분자에 해당하는 색으로
(x1,y1) 부터 (x2,y2) 까지의 선을 그어 준다

<?
$image = ImageCreate (300,300);
$color_black= ImageColorAllocate ($image, 0x00,0x00,0x00); //검정설정
$color_white= ImageColorAllocate ($image, 0xff, 0xff, 0xff); //흰색
ImageLine ($image, 0,0,300,300, $color_white); //지정된 점까지 선긋기
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거

?>


ImageRectangle
-사각형을 그려주는 함수
ImageRectangle (이미지구분자, x1좌표, y1좌표, x2, y2, 색구분자);

<?
$image = ImageCreate (300,300);
$color_black= ImageColorAllocate ($image, 0x00,0x00,0x00); //검정설정
$color_white= ImageColorAllocate ($image, 0xff, 0xff, 0xff); //흰색
ImageRectangle ($image, 10,10,290,290, $color_white); //지정된 점까지 사각형그리기
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거
?>



ImagePolygon
-다각형을 그려주는 함수
ImagePolygon (이미지구분자, 좌표배열, 꼭지점개수, 색구분자);

좌표배열을 바탕으로 꼭지점 개수에 맞는 다각형을 그린다

배열[0]=x1좌표;
배열[1]=y1;
배열[2]=x2;
배열[3]=y2;
.
.
.
이런식의 규칙을 따른다

예를들어
$xy[] = 150;
$xy[] = 10;
$xy[] = 290;
$xy[] = 290;
$xy[] = 10;
$xy[] = 290;

또 다른 방법으로 어레이함수를 이용하면 더 간편하다
$xy = array ( 150,10,290,290,10,290);

<?
$image = ImageCreate (300,300);
$color_black= ImageColorAllocate ($image, 0x00,0x00,0x00); //검정설정
$color_white= ImageColorAllocate ($image, 0xff, 0xff, 0xff); //흰색
$xy = array ( 150,10,290,290,10,290); //좌표배열생성
ImagePolygon ($image, $xy, 3, $color_white); //꼭지점이 3개인 다각형 그리기
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거
?>



ImageArc
-원을 그려주는 함수, 매개변수 조정으로 정원, 타원, 호를 그릴수도 있다.
ImageArc (이미지구분자, x좌표, y좌표, 폭, 높이, 시작위치, 종료위치, 색구분자);

<?
$image = ImageCreate (300,300);
$color_black= ImageColorAllocate ($image, 0x00,0x00,0x00); //검정설정
$color_white= ImageColorAllocate ($image, 0xff, 0xff, 0xff); //흰색
ImageArc ($image, 150,150,200,200,0,360, $color_white); //원그리기
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거
?>




색칠하기 ImageFill
ImageFill (이미지구분자, x좌표, y좌표, 색구분자);
(x,y)에 해당하는 위치가 속해있는 공간을 칠해준다

<?
$image = ImageCreate (300,300);
$color_black= ImageColorAllocate ($image, 0x00,0x00,0x00); //검정설정
$color_white= ImageColorAllocate ($image, 0xff, 0xff, 0xff); //흰색
ImageArc ($image, 150,150,200,200,0,360, $color_white); //원그리기
ImageFill ($image, 100,100, $color_white); //점이 속해 있는 공간 칠하기
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거
?>


글씨쓰기

ImageString (이미지구분자, 폰트크기, x좌표, y좌표, 문자열, 색구분자);
주어진위치에 문장열을 입력해 준다

<?
$image = ImageCreate (300,300);
$color_black= ImageColorAllocate ($image, 0x00,0x00,0x00); //검정설정
$color_white= ImageColorAllocate ($image, 0xff, 0xff, 0xff); //흰색
//ImageArc ($image, 150,150,200,200,0,360, $color_white); //원그리기
ImageString ($image, 5,100,150, "taeker", $color_white); //(100,150)에 taeker입력
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거
?>


ImageTTFtext
원하는 트루타입폰트로 다양한 문자 표현을 할 수 있도록 하는 함수
ImageTTFtext (이미지구분자, 크기, 각도, x좌표, y좌표, 색구분자, TTF파일, 문자열);

<?
$image = ImageCreate (300,300);
$color_black= ImageColorAllocate ($image, 0x00,0x00,0x00); //검정설정
$color_white= ImageColorAllocate ($image, 0xff, 0xff, 0xff); //흰색
//ImageArc ($image, 150,150,200,200,0,360, $color_white); //원그리기
ImageTTFtext ($image, 30,45,100,150, $color_white, "moon.ttf", "taeker"); //원하는 폰트로 글씨쓰기
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거
?>


[예제]
<?
$image = ImageCreate (500,400); //500*400이미지생성
$color_black= ImageColorAllocate ($image, 0x00,0x00,0x00); //검정설정
$color_white= ImageColorAllocate ($image, 0xff, 0xff, 0xff); //흰색
ImageRectangle($image, 50,50,450,350, $color_white); // (50,50)부터 (450,350)까지 흰색의 사각형그리기

for  ($i=150; $i <= 350; $i=$i+100) { //세로눈금그리기
 ImageLine ($image, $i, 50,$i,350,$color_white);
}

for ($i=100; $i <=300; $i=$i+50) {//가로눈금그리기
 ImageLine( $image, 50,$i, 450, $i, $color_white);
}

$data = array (148,212,150,292); //데이터
ImageLine ($image, 150, 350-$data[0], 250, 350-$data[1], $color_white);//그래프그리기
ImageLine ($image, 250, 350-$data[1], 350, 350-$data[2], $color_white);
ImageLine ($image, 350, 350-$data[2], 450, 350-$data[3], $color_white);
//ImageArc ($image, 150,150,200,200,0,360, $color_white); //원그리기
//ImageTTFtext ($image, 30,45,100,150, $color_white, "moon.ttf", "taeker"); //원하는 폰트로 글씨쓰기
ImageGif ($image); //이미지출력
ImageDestroy ($image); //메모리에서 이미지 제거
?>



+ Recent posts