PHP
2014.07.09 16:17

GD 라이브러리 간단

조회 수 11684 댓글 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
번호 분류 제목 날짜 조회 수 추천 수
270 Python zip() 함수 2014.04.30 24179 0
269 Python 유용한 Python 함수 및 기능들 2014.04.30 13590 0
268 Python collections.counter() 함수 2014.04.30 16152 0
267 Python filter()와 reduce() 함수 2014.04.30 12913 0
266 Android [apk분석] 개발자가 아니더라도 쉽게 apk를 분석해보자 2014.05.08 21221 0
265 Android 안드로이드에 우분투 설치하기 3 2014.05.09 14744 0
264 Android 약정 벗은 안드로이드, 서버가 되다 2014.05.09 11738 0
263 Python Python 유용한 코드 모음 2014.05.20 16979 0
262 Python C, Python and swig on Windows with Visual Studio 2014.05.29 13751 0
261 Python [Sconscript] Install method 2014.05.29 10536 0
260 PHP Header for XML content in PHP file 2014.06.02 13328 0
259 LINUX 우분투 root 계정 사용하기 2014.06.18 10425 0
258 Python 커맨드 라인에서 컬러로 출력하기 termcolor 2014.06.27 12469 0
257 일반 DivX 기술 간단 개요 2014.07.08 8707 0
» PHP GD 라이브러리 간단 2014.07.09 11684 0
목록
Board Pagination ‹ Prev 1 ... 12 13 14 15 16 17 18 19 20 21 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5