Categories
PHP

imagettftext() 함수: PHP 에서 이미지에 텍스트 추가하기

1. 이미지 오브젝트 생성

이미지 파일을 읽어들여 이미지 오브젝트 (object) 를 생성한다.

$im = imagecreatefrompng(‘cloud.png’);

다음은 읽어들인 cloud.png 파일이다.

2. 이미지에 텍스트 추가하기

텍스트의 색상을 파랑으로 지정한다.

$blue = imagecolorallocate($im, 0, 0, 255);

폰트 사이즈를 지정한다.

$size = 55;

텍스트가 표시되는 각도를 지정한다. 0 으로 지정하면 텍스트가 수평으로 표시된다.

$angle = 0;

텍스트 시작 위치의 X 좌표를 지정한다.

$x = 45;

텍스트 시작 위치의 Y 좌표를 지정한다.

$y = 200;

폰트 파일의 경로를 지정한다.

$font_filename = ‘./DejaVuSansMono-Bold.ttf’;

텍스트의 내용을 지정한다.

$text = “xtmci.com”;

이미지 오브젝트에 텍스트를 쓴다. imagettftext() 함수를 사용한다.

imagettftext($im, $size, $angle, $x, $y, $blue, $font_filename, $text);

3. 브라우저에 이미지 출력하기

이미지 출력을 위한 HTTP 헤더를 보낸다.

header(‘Content-type: image/png’);

브라우저에 이미지를 출력한다.

imagepng($im);

다음은 브라우저에 출력된 이미지이다.

이미지 오브젝트를 클리어 (clear) 한다.

imagedestroy($im);

4. 전체 PHP 소스 코드

<?php
$im = imagecreatefrompng('2023-0302-02.png');
$blue = imagecolorallocate($im, 0, 0, 255);

$size = 55;
$angle = 0;
$x = 45;
$y = 200;
$font_filename = './DejaVuSansMono-Bold.ttf';
$text = "xtmci.com";
imagettftext($im, $size, $angle, $x, $y, $blue, $font_filename, $text);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Categories
PHP

PHP 에서 imagerotate() 함수로 이미지 회전하기

1. 이미지 파일 로드하기

이미지 파일의 이름을 변수에 저장한다.

$filename = “iphone.png”;

이미지 파일을 로드 (load) 한다.

$img = imagecreatefrompng($filename);

다음은 회전하기 전의 이미지이다.

2. imagerotate() 함수

이미지 회전 후에 생기는 빈 영역을 채울 색상을 지정한다.

$blue = imagecolorallocate($img, 0, 0, 255);

여기서 지정한 색상은 파랑이다.

imagerotate() 함수로 이미지를 회전한다.

$img_rotated = imagerotate($img, 45, $blue);

imagerotate() 함수의 1 번째 인자는 이미지 리소스 (resource) 이다.

2 번째 인자는 회전할 각도이다. 단위는 도 (degree) 이고 방향은 시계반대방향이다.

3 번째 인자는 앞에서 설명한 색상이다.

브라우저에서 이미지를 출력한다.

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

3. 출력 결과

다음은 회전한 후의 이미지이다.

원래 이미지가 시계반대방향으로 45 도 회전되었다.

이미지에서 빈 영역은 파란색으로 채워졌다.

4. 전체 코드

<?php
$filename = "iphone.png";
$img = imagecreatefrompng($filename);
$blue = imagecolorallocate($img, 0, 0, 255);
$img_rotated = imagerotate($img, 45, $blue);
header("Content-type: image/png");
imagepng($img_rotated);
?>

Categories
PHP

우분투에서 PHP의 GD 라이브러리 설치하기

우분투에서 PHP 의 GD 라이브러리를 설치하는 방법을 알아보자.

1. php-gd 패키지 설치

아래 명령으로 패키지 정보를 다운로드한다.

apt update

php-gd 패키지를 설치한다.

apt install php-gd

2. 설치 결과 확인

아래 명령으로 GD 라이브러리가 설치되었는지 확인한다.

php -i | grep GD

GD 라이브러리가 설치되었다면 아래와 같이 출력된다.

GD Support => enabled
GD headers Version => 2.3.0
GD library Version => 2.3.0

Categories
PHP

PHP에서 HTML 폼을 다루는 방식: GET 메소드와 POST 메소드

폼 데이터를 처리하는 방식에는 GET 방식과 POST 방식이 있다. 2가지 방식이 PHP 에서 어떻게 구현되는지 알아보자.

1. GET 방식

GET 방식으로 동작하는 HTML 폼을 작성한다.

<form action=”echo.php” method=”GET”>

method 속성을 GET 으로 지정했다.

이름과 전화번호를 입력할 수 있는 <input> 태그를 추가한다.

이름: <input type=”text” name=”name”><br>

전화번호: <input type=”text” name=”phone”><br>

폼을 전송하는 버튼을 추가한다.

<input type=”submit”>

다음은 완성된 HTML 파일의 전체 내용이다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>GET 방식</title>
</head>
<body>
  <form action="echo.php" method="GET">
    이름: <input type="text" name="name"><br>
    전화번호: <input type="text" name="phone"><br>
    <input type="submit">
  </form>
</body>
</html>

HTML 폼으로부터 데이터를 받아 처리하는 echo.php 파일을 작성한다.

GET 방식의 폼 데이터는 전역 변수 $_GET 에 저장되어 있다.

이름을 $name 변수에 저장한다.

$name = $_GET[“name”];

대괄호 안에 있는 “name” 은 <input> 태그에 있는 name 속성의 값이다.

전화번호를 $phone 변수에 저장한다.

$phone = $_GET[“phone”];

이름과 전화번호를 출력한다.

echo “이름: ” . $name . “<br>” . “전화번호: ” . $phone . “<br>”;

다음은 완성된 echo.php 파일의 전체 내용이다.

<?php
$name = $_GET["name"];
$phone = $_GET["phone"];

echo "이름: " . $name . "<br>" . "전화번호: " . $phone . "<br>";
?>

2. POST 방식

POST 방식으로 동작하는 HTML 폼을 작성한다.

<form action=”echo.php” method=”POST”>

method 속성을 POST 로 지정했다.

나머지 내용은 GET 방식의 HTML 폼과 같다.

다음은 완성된 HTML 파일의 전체 내용이다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>POST 방식</title>
</head>
<body>
  <form action="echo.php" method="POST">
    이름: <input type="text" name="name"><br>
    전화번호: <input type="text" name="phone"><br>
    <input type="submit">
  </form>
</body>
</html>

HTML 폼으로부터 데이터를 받아 처리하는 echo.php 파일을 작성한다.

POST 방식의 폼 데이터는 전역 변수 $_POST 에 저장되어 있다.

이름을 $name 변수에 저장한다.

$name = $_POST[“name”];

전화번호를 $phone 변수에 저장한다.

$phone = $_POST[“phone”];

다음은 완성된 echo.php 파일의 전체 내용이다.

<?php
$name = $_POST["name"];
$phone = $_POST["phone"];

echo "이름: " . $name . "<br>" . "전화번호: " . $phone . "<br>";
?>