[PHP] PHP 이미지에 글씨 넣기

Posted by [하늘이]
2016. 1. 21. 22:43 IT/PHP Web JS CSS HTML..
반응형

이미지를 다루기 위하여는 GD를 Enable 시켜야 된다.

GD Enable 시키기 아래 링크 참고

http://iam777.tistory.com/301


생활코딩 사이트에서 공부하며 정리한 내용입니다

https://opentutorials.org/course/62/5137


◆ 이미지에 Text 글자 넣기

연결 옵션이 get 방식으로 올때 아래와 같은 url 이다.

http://localhost/image/button.php?text=coding

여기서 text 값에 있는 내용이 이미지에 들어가는 것이다.

1

2

3

4

5

6

7

8

9

10

<?php

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

$string = $_GET['text'];

$im = imagecreatefrompng("button.png");

$orange = imagecolorallocate($im, 60, 87, 156);

$px = (imagesx($im) - 7.5 * strlen($string)) / 2;

imagestring($im, 4, $px, 9, $string, $orange);

imagepng($im);

imagedestroy($im);

?>

라인 2 : 컨텐츠 타입을 정의

   header() 는 구문의 가장 위쪽에 위치해야 된다.

   공백을 포함한 다른 값이 오면 에러가 발생한다.

   여러개 다른 header 값을 넣을 수 있다.

라인 3 : 'text' 에 있는 값을 가져온다.

라인 4 : png  형식의 이미지를 가져와서 생성한다.

   http://php.net/manual/kr/function.imagecreatefrompng.php

라인 5 : 생성한 이미지에 RGB 값을 칠하기 위한 정의를 해준다.

   http://php.net/manual/kr/function.imagecolorallocate.php

라인 6 : x측 좌표 정보를 만드는 것이다.

   imagesx()로 캔버스의 전체 x 길이를 알아온 후 (스트링 갯수 * 7.5) 로 한 후 2로 나누어

   중간에 글씨가 오도록 하였다. 7.5 라는 값은 한글자의 width 라고 보면 될 것 같다.

   strlen() : c와 동일하게 스트링의 길이를 가져온다.

   좌측 상단이 0,0 이다.

라인 7 : $im에 폰트 크기, x좌표, y좌표, 입력할 스트링, 스트링 색 으로 스트링을 그릴 것이다.

   라고 정의한다.

   [bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )]

라인 8 : png 이미지를 브라우져 혹은 파일에 전달한다. 라인 2에 header 정보로 이미 png 이미지를

   전달한다는 정의를 하였다.

   [imagepng — Output a PNG image to either the browser or a file

     http://php.net/manual/kr/function.imagepng.php]

라인 9 : 다 사용한 자원을 반환한다.


반응형