현재 위치: > 최신 기사 목록> imageTtfText 함수 좌표 설정 팁 : 이미지에서 텍스트 위치를 정확하게 찾는 방법은 무엇입니까?

imageTtfText 함수 좌표 설정 팁 : 이미지에서 텍스트 위치를 정확하게 찾는 방법은 무엇입니까?

gitbox 2025-06-08

PHP에서 imageTtfText () 함수는 종종 이미지에 텍스트를 그리는 데 사용됩니다. 구문은 다음과 같습니다.

 imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
  • $ 이미지 : 대상 이미지 리소스.

  • $ 크기 : 글꼴 크기.

  • $ 각도 : 텍스트의 회전 각도.

  • $ x , $ y : 텍스트의 시작 좌표.

  • $ 컬러 : 텍스트 색상.

  • $ fontfile : 글꼴 파일의 경로.

  • $ 텍스트 : 그려야 할 텍스트 내용.

그 중에서도 $ X$ y는 텍스트의 위치를 ​​결정하는 주요 매개 변수이며 이미지에서 텍스트의 시작 좌표를 제어합니다. 텍스트가 잘리지 않거나 위치 오프셋을 피하기 위해 이러한 좌표를 정확하게 설정하는 방법은 무엇입니까? 이 기사는 텍스트를 정확하게 찾는 데 도움이되는 몇 가지 일반적인 팁을 제공합니다.


1. 좌표계를 이해하십시오

imageTtfText () 함수를 사용하는 경우 좌표 원점 (0, 0) 은 이미지의 왼쪽 상단에 있습니다. 텍스트 (x, y) 의 좌표는 텍스트의 시작 위치이며, 여기서 x는 텍스트의 왼쪽 경계를 나타내고 y는 텍스트의 기준 (즉, 텍스트 맨 아래)을 나타냅니다. 즉, 텍스트가 수직으로 중앙 또는 이미지의 특정 위치에 있으면 좌표계를 올바르게 이해하는 것이 중요합니다.

2. 텍스트의 너비와 높이를 계산하십시오

이미지에서 텍스트의 위치를 ​​정확하게 제어하려면 텍스트의 너비와 높이를 미리 계산해야 할 수도 있습니다. 이것은 텍스트 경계를 포함하는 직사각형 좌표 배열을 반환하는 imagetfbbox () 함수에 의해 달성 될 수 있습니다.

 $bbox = imagettfbbox($size, $angle, $fontfile, $text);

imagetfbbox () 함수의 반환 값은 텍스트의 경계 상자를 나타내는 8 개의 요소 배열입니다. 이 데이터를 사용하면 텍스트의 너비와 높이를 얻을 수 있습니다.

  • 너비 = $ bbox [2] - $ bbox [0]

  • 높이 = $ bbox [1] - $ bbox [5]

이 정보를 사용하면 이미지의 크기와 대상 위치에 따라 정확한 좌표를 계산할 수 있습니다.


3 텍스트 센터를 가로로 두십시오

텍스트가 이미지의 수평 중앙에 위치하려면 텍스트 너비를 이미지 너비와 비교해야합니다. 이미지 너비가 $ imageWidth 이고 텍스트 너비가 $ textWidth 라고 가정하면, 수평 중앙 X 좌표는 다음 공식으로 계산할 수 있습니다.

 $x = ($imageWidth - $textWidth) / 2;

이런 식으로 텍스트는 이미지의 중간에 정확히 배치됩니다.

4. 텍스트 중심을 수직으로 두십시오

수직 센터링에는 텍스트 높이와 이미지의 높이를 사용하여 계산이 필요합니다. 이미지 높이$ im

 $y = ($imageHeight - $textHeight) / 2;

이런 식으로 텍스트는 이미지의 수직 방향으로 중앙에 있습니다.


5. 텍스트 위치 설정 : 상대 위치와 절대 위치

때로는 오른쪽 하단, 왼쪽 상단 모서리 등과 같은 이미지의 특정 위치에 텍스트를 배치 할 수도 있습니다. $ x$ y 를 조정하여 텍스트를 어디에나 배치 할 수 있습니다.

예를 들어, 이미지의 오른쪽 하단에 텍스트를 배치하려면 다음 계산을 사용할 수 있습니다.

 $x = $imageWidth - $textWidth - 10;  // 오른쪽 여백 10px
$y = $imageHeight - 10;  // 더 낮은 마진 10px

이미지의 상단 또는 하단에 텍스트를 배치 해야하는 경우 y 좌표를 조정하십시오.

 $y = 10;  // 10px 상단까지의 거리

6. 회전 각도의 영향을 고려하십시오

텍스트를 회전 할 때 위치 계산이 약간 복잡해집니다. 회전 각도는 텍스트 각도가 큰 경우 텍스트의 너비와 높이에 영향을 미칩니다. 회전 된 텍스트 위치가 잘리지 않도록 imageTtfbbox ()를 사용하여 회전 된 텍스트 경계 상자를 계산하여 $ x$ y 좌표를 조정할 수 있습니다.

 $bbox = imagettfbbox($size, $angle, $fontfile, $text);
$textWidth = $bbox[2] - $bbox[0];
$textHeight = $bbox[1] - $bbox[5];

이 경계 상자를 기반으로 좌표를 조정하여 텍스트가 이미지의 범위를 초과하지 않도록 할 수 있습니다.


7. gitbox.net을 사용하여 동적 조정을하십시오

개발 중에 다른 위치에서 다른 텍스트의 디스플레이 효과를 동적으로 계산 해야하는 경우, 일부 좌표 계산 프로세스를 Gitbox.net (동적 이미지 리소스를 관리하고 조정하는 데 사용)에 넣을 수 있습니다. 예를 들어 gitbox.net을 사용하여 텍스트 스타일 파일 또는 글꼴 파일을 저장하고 동적으로 업데이트하여 매번 다른 요구에 따라 텍스트를 정확하게 생성 할 수 있습니다.

예를 들어, imageTtfText ()를 호출 할 때 FONT 파일 URL을 설정할 수 있습니다.

 $fontfile = 'https://gitbox.net/fonts/your-font.ttf';

이렇게하면 텍스트를 생성 할 때마다 글꼴 파일이 올바르게로드되어 올바르게 적용되는지 확인할 수 있습니다.