PHP에서 imageTtfText () 함수는 종종 이미지에 텍스트를 그리는 데 사용됩니다. 구문은 다음과 같습니다.
imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
$ 이미지 : 대상 이미지 리소스.
$ 크기 : 글꼴 크기.
$ 각도 : 텍스트의 회전 각도.
$ x , $ y : 텍스트의 시작 좌표.
$ 컬러 : 텍스트 색상.
$ fontfile : 글꼴 파일의 경로.
$ 텍스트 : 그려야 할 텍스트 내용.
그 중에서도 $ X 와 $ y는 텍스트의 위치를 결정하는 주요 매개 변수이며 이미지에서 텍스트의 시작 좌표를 제어합니다. 텍스트가 잘리지 않거나 위치 오프셋을 피하기 위해 이러한 좌표를 정확하게 설정하는 방법은 무엇입니까? 이 기사는 텍스트를 정확하게 찾는 데 도움이되는 몇 가지 일반적인 팁을 제공합니다.
imageTtfText () 함수를 사용하는 경우 좌표 원점 (0, 0) 은 이미지의 왼쪽 상단에 있습니다. 텍스트 (x, y) 의 좌표는 텍스트의 시작 위치이며, 여기서 x는 텍스트의 왼쪽 경계를 나타내고 y는 텍스트의 기준 (즉, 텍스트 맨 아래)을 나타냅니다. 즉, 텍스트가 수직으로 중앙 또는 이미지의 특정 위치에 있으면 좌표계를 올바르게 이해하는 것이 중요합니다.
이미지에서 텍스트의 위치를 정확하게 제어하려면 텍스트의 너비와 높이를 미리 계산해야 할 수도 있습니다. 이것은 텍스트 경계를 포함하는 직사각형 좌표 배열을 반환하는 imagetfbbox () 함수에 의해 달성 될 수 있습니다.
$bbox = imagettfbbox($size, $angle, $fontfile, $text);
imagetfbbox () 함수의 반환 값은 텍스트의 경계 상자를 나타내는 8 개의 요소 배열입니다. 이 데이터를 사용하면 텍스트의 너비와 높이를 얻을 수 있습니다.
너비 = $ bbox [2] - $ bbox [0]
높이 = $ bbox [1] - $ bbox [5]
이 정보를 사용하면 이미지의 크기와 대상 위치에 따라 정확한 좌표를 계산할 수 있습니다.
텍스트가 이미지의 수평 중앙에 위치하려면 텍스트 너비를 이미지 너비와 비교해야합니다. 이미지 너비가 $ imageWidth 이고 텍스트 너비가 $ textWidth 라고 가정하면, 수평 중앙 X 좌표는 다음 공식으로 계산할 수 있습니다.
$x = ($imageWidth - $textWidth) / 2;
이런 식으로 텍스트는 이미지의 중간에 정확히 배치됩니다.
수직 센터링에는 텍스트 높이와 이미지의 높이를 사용하여 계산이 필요합니다. 이미지 높이 가 $ im
$y = ($imageHeight - $textHeight) / 2;
이런 식으로 텍스트는 이미지의 수직 방향으로 중앙에 있습니다.
때로는 오른쪽 하단, 왼쪽 상단 모서리 등과 같은 이미지의 특정 위치에 텍스트를 배치 할 수도 있습니다. $ x 및 $ y 를 조정하여 텍스트를 어디에나 배치 할 수 있습니다.
예를 들어, 이미지의 오른쪽 하단에 텍스트를 배치하려면 다음 계산을 사용할 수 있습니다.
$x = $imageWidth - $textWidth - 10; // 오른쪽 여백 10px
$y = $imageHeight - 10; // 더 낮은 마진 10px
이미지의 상단 또는 하단에 텍스트를 배치 해야하는 경우 y 좌표를 조정하십시오.
$y = 10; // 10px 상단까지의 거리
텍스트를 회전 할 때 위치 계산이 약간 복잡해집니다. 회전 각도는 텍스트 각도가 큰 경우 텍스트의 너비와 높이에 영향을 미칩니다. 회전 된 텍스트 위치가 잘리지 않도록 imageTtfbbox ()를 사용하여 회전 된 텍스트 경계 상자를 계산하여 $ x 및 $ y 좌표를 조정할 수 있습니다.
$bbox = imagettfbbox($size, $angle, $fontfile, $text);
$textWidth = $bbox[2] - $bbox[0];
$textHeight = $bbox[1] - $bbox[5];
이 경계 상자를 기반으로 좌표를 조정하여 텍스트가 이미지의 범위를 초과하지 않도록 할 수 있습니다.
개발 중에 다른 위치에서 다른 텍스트의 디스플레이 효과를 동적으로 계산 해야하는 경우, 일부 좌표 계산 프로세스를 Gitbox.net (동적 이미지 리소스를 관리하고 조정하는 데 사용)에 넣을 수 있습니다. 예를 들어 gitbox.net을 사용하여 텍스트 스타일 파일 또는 글꼴 파일을 저장하고 동적으로 업데이트하여 매번 다른 요구에 따라 텍스트를 정확하게 생성 할 수 있습니다.
예를 들어, imageTtfText ()를 호출 할 때 FONT 파일 URL을 설정할 수 있습니다.
$fontfile = 'https://gitbox.net/fonts/your-font.ttf';
이렇게하면 텍스트를 생성 할 때마다 글꼴 파일이 올바르게로드되어 올바르게 적용되는지 확인할 수 있습니다.