티스토리 뷰

[php] 이미지위에 글자쓰는 방법

PHP를 사용하시는 분들이라면 


이미지위에 글자를 쓰실떄도 있는데요!


그럴때 좋은 예제와 쉬운설명이 있어서 가져왔습니다!!


예제1 > study1.php

<?php


$im = imagecreatetruecolor(300, 100);

$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);

$black = imagecolorallocate($im, 0x00, 0x00, 0x00);


imagefilledrectangle($im, 0, 0, 299, 99, $red);


$font_file = './Daum_Regular.ttf';


imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');


header('Content-Type: image/png');


imagepng($im);

imagedestroy($im);


?>



브라우져에서 위파일을 띄우게 되면 빨간 배경에 까만 글씨로 `PHP Manual` 이라고 쓰여진 이미지가 보이게 됩니다.


resource imagecreatetruecolor ( int $width , int $height )

전달받은 너비와 높이로 이미지를 생성하여 그 리소스를 반환합니다.


위의 예제 에서는 300 X 100 짜리 이미지를 생성하였습니다.


int imagecolorallocate ( resource $image , int $red , int $green , int $blue )


현재 만들고 있는 이미지에 사용할 색상을 미리 만들어 할당합니다.

위의 예제에서는 빨강색과 검정색을 미리 할당하였습니다.


0xFF, 0x00, 0x00 은 16진수로서 색상표에서 얻어진 색상값을 #을 제거한후에

두자씩 잘라서 0x 와 붙인것이라고 생각하시면 됩니다.


즉, 내가 원하는 색이 흰색이면 #FFFFFF 에서 0xFF, 0xFF, 0xFF 와 같이 만들어서 사용하시면 됩니다.


bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )


이미지에 네모난 직사각형을 그리고 그안에 지정한 색을 채워 넣습니다.


$x1 은 왼쪽 x 좌표

$y1 은 상단 y 좌표

$x2 는 오른쪽 x 좌표 

$y2 는 하단 y 좌표

위 예제와 같이 300 X 100 짜리 이미지에 모두 색을 채울려면 0, 0, 299, 99 를 넣는데 

299, 99 로 사용하는 이유는 0 부터 시작하기 때문에 1을 빼주는 것입니다.


array imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text [, array $extrainfo ] )


지정한 ttf 폰트를 가지고 지정한 크기로 지정한 지점을 시작점으로 하여 지정한 기울기로 이미지에 글을 씁니다.



위 예제에서는  

폰트 크기는 13

기울기는 0, 기울기가 양수 이면 위로 기울고, 음수이면 아래로 기웁니다.

글자의 시작점 x 좌표는 105 즉 왼쪽으로 부터 105 떨어진 지점에 글을 쓴다는 뜻입니다.

글자의 시작점 y 좌표는 55 즉 위에서 부터 55 떨어진 지점에 글을 쓴다는 뜻입니다.

x 좌표는 크게 상관이 없으나 y 좌표는 기준점이 글자의 아래부분입니다. 

따라서 글자를 상단에 붙여서 만들고 싶을때는 0 을 주는것이 아니라 폰트 크기 만큼을 주어야  합니다. 


위치나 기울기를 다양하게 조절하여 테스트 해보시면 내용이 쉽게 이해됩니다. 


http://apmusers.com/lecture/study1.php


출처 : https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=teach&wr_id=2825&page=1

Recent Comments