현재 위치: > 최신 기사 목록> 텍스트 워터 마크를 만들 때 정확한 위치를 달성하기 위해 ImageFontWidth () 함수를 사용하는 방법은 무엇입니까?

텍스트 워터 마크를 만들 때 정확한 위치를 달성하기 위해 ImageFontWidth () 함수를 사용하는 방법은 무엇입니까?

M66 2025-06-05

PHP로 이미지 워터 마크를 만들 때, 우리는 종종 오른쪽 하단 또는 중앙과 같은 이미지의 특정 위치에 텍스트가 정확하게 나타나기를 원합니다. 그러나 글꼴의 크기와 각 문자의 너비 때문에 워터 마크의 위치를 ​​계산하는 것이 종종 번거 롭습니다. 다행히도 PHP의 ImageFontWidth () 함수는 특히 내장 글꼴을 사용할 때이 문제를 해결하여 텍스트 너비를 정확하게 계산하여 텍스트의 정확한 위치를 달성하는 데 도움이 될 수 있습니다.

ImageFontWidth () 란 무엇입니까?

ImageFontWidth () 는 지정된 글꼴 번호로 각 문자의 픽셀 너비를 반환하는 PHP의 GD 라이브러리 기능 중 하나입니다. 구문은 다음과 같습니다.

 int imagefontwidth(int $font);

이 기능은 1 ~ 5 와 같은 GD 라이브러리에 내장 된 글꼴에만 적합합니다. imagetftext () 에서로드 한 TTF 글꼴을 사용하는 경우 imageTtfbbox ()를 사용하여 크기를 계산하십시오.

텍스트 워터 마크 포지셔닝에 대해 자주 묻는 질문

텍스트 워터 마크를 그림에 추가 할 때는 시작 좌표를 결정하려면 워터 마크 텍스트의 너비높이를 명확히해야합니다. 예를 들어, 오른쪽 하단에 워터 마크가 나타나려면 WaterMark 텍스트의 너비를 알아야하여 이미지의 오른쪽에서 x 좌표로 빼낼 수 있습니다.

그러나 많은 사람들은 스트링 길이를 너비 참조로 직접 사용합니다. 각 글꼴의 문자 너비는 다를 수 있으며, 동일한 글꼴에서도 다른 문자 너비가 다를 수 있습니다 (특히 단편 글꼴과 넓은 글꼴).

정확한 물기를 얻으려면 ImageFontWidth ()를 사용하십시오

특정 예를 살펴 보겠습니다. 그림의 오른쪽 하단에“Copyright M66.net”에 텍스트를 추가하고 싶습니다.

 <?php
// 사진로드
$image = imagecreatefromjpeg('background.jpg');

// 글꼴 번호와 텍스트를 설정하십시오
$font = 4; // 내장 글꼴 번호 1-5
$text = '모든 권리 보유 m66.net';

// 텍스트 너비와 높이를 얻으십시오
$textWidth = imagefontwidth($font) * strlen($text);
$textHeight = imagefontheight($font);

// 이미지 크기를 얻으십시오
$imageWidth = imagesx($image);
$imageHeight = imagesy($image);

// 텍스트 색상을 설정하십시오(하얀색)
$textColor = imagecolorallocate($image, 255, 255, 255);

// 텍스트의 왼쪽 상단 코너 좌표를 계산합니다(오른쪽 하단에 오프셋10픽셀)
$x = $imageWidth - $textWidth - 10;
$y = $imageHeight - $textHeight - 10;

// 텍스트를 작성하십시오
imagestring($image, $font, $x, $y, $text, $textColor);

// 출력 이미지
header('Content-Type: image/jpeg');
imagejpeg($image);

// 자원을 파괴하십시오
imagedestroy($image);
?>

이 코드에서 ImageFontWidth ($ font)는 각 문자의 너비를 반환합니다. Strlen ($ 텍스트)은 문자 수를 반환하여 두 텍스트의 픽셀 너비를 얻기 위해 두 가지를 곱합니다. 그런 다음 이미지 너비에서 텍스트 너비와 여백을 빼면 오른쪽 하단의 정확한 좌표가 나타납니다.

요약

ImageFontWidth () 는 간단하지만 매우 유용한 도구로 GD 내장 글꼴을 사용하여 워터 마크 포지셔닝을 처리 할 때보다 정확하게 보일 수 있습니다. ImageFonTheight ()를 사용하면 모든 위치 (왼쪽 상단, 오른쪽, 중앙 등)를 정확하게 제어 할 수 있습니다. 사용자 정의 TTF 글꼴 사용과 같은보다 복잡한 텍스트 렌더링이 필요한 상황의 경우보다 복잡한 경계 계산에 imagetfbbox ()를 사용하는 것을 고려하십시오.

ImageFontWidth ()ImageFonTheight ()를 사용하여 이미지에 워터 마크를 추가해도 정확하고 효율적입니다.