PHP
2014.07.09 16:17

GD 라이브러리 간단

조회 수 5538 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

먼저 PHP.ini를 보세여

extension=php_gd.dll이란 항목이 보일겁니다.

여기에 ";"로 주석처리 되어 있다면 이걸 제거해주시고 저장후에 본 강좌를 따라와주

세여~

GD라이브러리에 대해 간단히 알아보면

GIF, PNG, JPEG 포멧을 지원합니다.

하지만 GIF는 현재 저작권 문제로 지원하고 있지 않구여~

JPEG를 지원합니다.


imageCreate - 새이미지 생성

예) $img=imageCreate(100,100); //100*100짜리 이미지를 $img에 저장

imageCreatefromGif - 기존 GIF이미로부터 새로 만듬

예) $img=imageCreate("kakaka.gif"); //kakaka.gif로부터 이미지 생성

imageGif - 생성한 이미지를 브라우저나 파일로 출력

예) imagejpeg($img,"kekeke.jpeg); //브라우저에 kekek.gif로 출력

imageDestroy - Create함수에 의해 점유된 메모리 반환

기타 등등등 입니다. 절라 많져 -.-;;

일단~

200*200 이미지를 만들어 보져 =)


< ?
$img=imageCreate(200,200);
imagejpeg($img);
?>


여기서 이미지 뒤에 스트링을 안쓴것은 그 폴더가 웹폴더이기 때문입니다.

이게 뭔소리냐??하면여 읽기 전용이라는 겁니다.

쓰기가 안되니까 에러가 나겠져? 그래서 화일이름없이 걍 쓰는 겁니다.

넘 쉬운거라서 설명없이 넘어 가겠습니다.

이제 또 할일이 있네여~ 본격적인 그레프 생성

다음 표를 보져


대상 | 1월 | 2월 | 3월

A군 | 100 | 130 | 140

B군 | 150 | 140 | 120


A군과 B군은 친구입니다. 그런데 수능모의고사를 봤는데 위와 같이 나왔습니다.

정말 다정한 친구입니다. 여러분들은 담임선생님이 알아 보기 쉽게 이걸 이미지로 보

여 주려 합니다. 현재 A군은 어쩌구 B군은 어쩌구 하는걸 보여주기 위해서엽~

이제 만들어 봅시다.

위에서 설명한 걸로는 많이 부족하기 때문에

함수가 더 있는지 알아 봅시다.

먼저 색깔을 지정하는 함수입니다.

$white=imagecolorAllocate($img,255,255,255);

RGB로 255,255,255는 화이트입니다. 즉 화이트란 색을 준겁니다. $img에 생성되있

는 이미지에 적용하겠다란 뜻입니다.

imageLine($img,10,10,190,10,$white);

$img에 생성된 변수에 10,10에서 190,10까지 선을 그으란 소립니다. 흰색으로...


그럼 함 만들어 보져 


현재 확인된 DATA는 3줄입니다.점을 찍어서 보여 드릴수도 있겠구...

또는 직선으로 그어서 보여 줄수도 있겠네여

그럼 선으로 그려봅시다.

좌우 여백 10씩 빼보져

그럼 x축은 10-190까지입니다. Y축역시 위아래 빼고 다면 10-190까지이군요

^^;;

적용된 공식을 만들어보져

4개의 축이 있다면

X1-190*1/4

X2-190*2/4

X3-190*3/4

X4-190*4/4


5개가 되어도 마찬가지겠네여???

^^;; 약간의 버그가 있기는 하지만 10-190까지의 범위를 벋어나지는 않을겁니다.


y축도 같겠네여??? 당빠~ 그런데 왜 이렇게 어려운 이야길 하냐구엽?

여러분들이 나중에 sql에서 바로 데이타를 뽑아와서 할때는 어쩔거져? ^^??

하여간 이것가지 생각하시고 하셔야 겠져???


이제 그려봅시다.


< ?
$img=imageCreate(200,200);
$black=imagecolorAllocate($img,0,0,0);
$white=imagecolorAllocate($img,255,255,255);
$pink=imagecolorAllocate($img,255,100,255);
imageLine($img,10,100,95,130,$white);
imageLine($img,95,130,190,150,$white);
imageLine($img,10,150,95,140,$pink);
imageLine($img,95,140,190,120,$pink);
imagejpeg($img);
?>


드뎌 다 만들었네여~

먼저 $black에서 배경이미지 색을 검은색으로 정의 했습니다.

그리고 다른색을 쓸거라고 화이트와 핑크를 정의 했으며 라인을 2번식 그어 A군과 B

군의 성적데이타를 그레픽하게 실시간으로 그려 줬습니다.

그리고 10번에서 출력~~~


SQL에서 바로 불러온다면 좀 머리아프시겠지만 잘 응용만 하신다면 가능합니다.

다른사람이 해 놨으니까여~ ^^;;




$img_number = imagecreate(300,240); // 그림판 생성
$backcolor = imagecolorallocate($img_number,000,000,000);  // 배경 색상 생성
$textcolor = imagecolorallocate($img_number,119,114,211);  // 스트링 색상 생성
$lineColor = imagecolorallocate($img_number, 255, 23, 47); // 선 색상 생성
 
 
 
/**
        [선그리기] 
        그림판 객체
        시작 좌표 X
        시작 좌표 Y
        종료 좌표 X
        종표 좌표 Y
        선 색상
*/
imageline($img_number, 0, 0, 100, 100, $lineColor);
 
 
/**
    [배경색상 채우기]
    그림판 객체
    X 좌표
    Y 좌표
    배경색상 객체
*/
imagefill($img_number,0,0,$backcolor);
 
/**
    출력될 스트링 지정
*/
$number = "IP - $_SERVER[REMOTE_ADDR]";
 
/**
    [그림판에 문자열 출력]
    그림판 크기,
    글자크기,
    X 위치
    Y 위치
    출력될 스트링
    문자열 색상
*/
Imagestring($img_number,10,10,10,$number,$textcolor);
Imagestring($img_number,10,10,30,$number,$textcolor);
 
/**
    헤더 파일 생성
*/
header("Content-type: image/jpeg");
 
/**
    지금 파일을 이미지로 변환
*/
imagejpeg($img_number);



[그냥 GD로 PNG 이미지 파일 만들기]


출처


<? 
    header ("Content-type: image/png"); 

    $width = "271"; 
    $height = "131"; 

    $im=ImageCreate($width,$height);  // 이미지의 크기를 정합니다. 

    $white = ImageColorAllocate ($im, 255, 255, 255);// 사용할 색상 설정  
    $gray = ImageColorAllocate($im,200,200,200);  // 사용할 색상 설정 

    ImageRectangle($im,0,0,270,130, $gray); 

    ImageTTFText($im,10,0,5,128,$gray,"fonts/H2SA1M.TTF","Create By Wizard."); 

    ImagePNG($im); 
    ImageDestroy($im); // 이미지에 사용한 메모리 제거 
?>

처음에 이미지를 Create 한다.
$white 색상을 alloc 해주면 Create된 이미지 바탕색이 흰색으로 칠해진다.
만약 $white 보다 $gray를 먼저 Alloc 해주면 바탕색이 회식이 된다.
그다음에 ImageRectangle 해서 걍 테두리 회색으로 칠하고
ImageTTFText 로 걍 글씨 썼음.
[1의 실행예]

이것을 다른 이미지 파일을 포게보장..

2. 1과 다른 이미지를 포갠다.


<? 
    header ("Content-type: image/png"); 

    include "gdkorea.php"; 

    $width = "271"; 
    $height = "131"; 

    $im=ImageCreate($width,$height);  // 이미지의 크기를 정합니다. 
    $im2    = imagecreatefromgif("intro.gif"); 

    $white = ImageColorAllocate ($im, 255, 255, 255);// 사용할 색상 설정  
    $gray = ImageColorAllocate($im,200,200,200);  // 사용할 색상 설정 

    ImageCopyMerge ($im, $im2, 0, 0, 0, 0, 271,131,100); 

    ImageRectangle($im,0,0,270,130, $gray); 

    ImageTTFText($im,10,0,5,128,$gray,"fonts/H2SA1M.TTF","Create By Wizard."); 

    ImagePNG($im); 
    ImageDestroy($im); // 이미지에 사용한 메모리 제거 
?> 

1과 똑같은데 $im2 즉, gif 파일읽어오는 부분이 흰색 Alloc 해주기전에 있다는것과 ImageCopyMerge를 해줬다는것.. 맨뒤에 100 이란 숫자가 있는데 이것은 투명도라고 생각하면 될것 같다.
[2의 실행예]
[2의 intro.gif 그림파일]


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
12 PHP 윈도우용 센드메일 구축 2016.03.30 3567 0
11 PHP php 배열 사용하기 2015.10.28 6375 0
10 PHP 파일 데이터 저장하고 불러오기(파일 입출력) 2015.09.30 3770 0
9 PHP PHP 문자열 다루기 2015.06.30 14880 0
8 PHP Simple GD example 2014.07.10 4370 0
7 PHP GD 및 이미지 함수 정리 2014.07.09 7876 0
6 PHP PHP GD 설명 2014.07.09 5992 0
» PHP GD 라이브러리 간단 2014.07.09 5538 0
4 PHP Header for XML content in PHP file 2014.06.02 5507 0
3 PHP move_uploaded_file() 2014.04.29 6710 0
2 PHP MySQL 기본 문법 2014.03.01 6926 0
1 PHP php 기본 문법 정리 secret 2014.01.16 0 0
목록
Board Pagination ‹ Prev 1 Next ›
/ 1

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5