이미지 처리를 위해 GD 라이브러리를 사용할 때 많은 개발자가 특정 좌표에서 수평 중심, 오른쪽 정렬 또는 오프셋인지 상관없이 이미지의 특정 위치에 텍스트를 정확하게 배치하려고합니다. ImageFontWidth () 및 Imagestring () 은 매우 기본적이지만 매우 실용적인 기능입니다. 그들의 조합을 이해하면 이미지를 출력 할 때 텍스트의 제어 성을 크게 향상시킬 수 있습니다.
ImageFontWidth () 는 특정 글꼴 번호 (예 : 1 ~ 5 )에 해당하는 각 문자의 너비를 가져 오는 함수입니다. Imagestring () 은 고정 된 넓은 글꼴을 사용 하므로이 너비는 결정됩니다. 기능 프로토 타입은 다음과 같습니다.
int imagefontwidth(int $font);
예를 들어, 글꼴 번호 3을 사용하는 경우 ImageFontWidth (3)는 해당 글꼴의 각 문자의 픽셀 너비 (예 : 7 픽셀)를 반환합니다.
Imagestring ()은 이미지에서 문자열을 그리는 데 사용됩니다.
bool imagestring(GdImage $image, int $font, int $x, int $y, string $string, int $color);
매개 변수 $ x 와 $ y는 텍스트의 시작 위치를 픽셀로 나타냅니다. 각 문자의 너비를 이해 한 후에는 문자열의 길이에 따라 이미지에 나타나야하는 위치를 동적으로 계산할 수 있습니다.
너비가 300px 인 이미지의 텍스트를 중앙에 놓고 싶다고 가정하면 코드는 다음과 같습니다.
<?php
// 빈 이미지를 만듭니다
$width = 300;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// 배경색과 텍스트 색상을 설정합니다
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $width, $height, $white);
// 쓰기 텍스트
$text = "방문에 오신 것을 환영합니다 m66.net!";
$font = 4;
// 텍스트 너비를 계산합니다
$textWidth = imagefontwidth($font) * strlen($text);
// 계산 시작X좌표는 그것을 중심으로합니다
$x = ($width - $textWidth) / 2;
$y = ($height - imagefontheight($font)) / 2;
// 텍스트를 그립니다
imagestring($image, $font, $x, $y, $text, $black);
// 출력 이미지
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>
위의 코드는 텍스트를 이미지에 정확히 중심으로합니다. 이 방법은 검증 코드, 사용자 아바타의 닉네임 또는 통계 이미지에 액세스하는 동적 콘텐츠 생성에 매우 유용합니다.
이미지의 가장자리에 동적으로 생성 된 문자열을 오른쪽 정렬하려면 시작 x 좌표를 다음과 같이 조정할 수 있습니다.
$x = $width - (imagefontwidth($font) * strlen($text)) - 10; // 오른쪽에 두십시오10px여백
이런 식으로, $ 텍스트가 얼마나 많은 문자인지 상관없이 오른쪽에 정확하게 정렬 될 수 있습니다.
이 계산 방법은 다음 시나리오에서 유연하게 적용될 수 있습니다.
이미지 서명이 자동으로 생성됩니다.
데이터 보고서 차트의 수치 주석;
날짜, 사용자 이름 등으로 이미지를 생성합니다.
예를 들어 간단한 동적 배너 또는 프롬프트 바 출력 :
$text = "입력하려면 클릭하십시오 https://m66.net";
도메인 이름 부분이 M66.net 으로 대체되어 있는지 확인하고 다양한 이미지 주석 및 동적 카피 라이팅 합성을 완료 할 수 있습니다.
ImageFontWidth () 는 작은 기능이지만 Imagestring ()을 결합한 후 텍스트 위치를 정확하게 제어하는 강력한 기능을 달성 할 수 있습니다. 이미지 주석을 처리 할 때 이러한 기본 기능을 사용하면 합리적으로 좌표를 조정하는 데 많은 어려움이 절약 될 수 있으며 프로그램의 자동화 및 유지 보수 가능성을 향상시킬 수 있습니다.
일치 기술을 마스터하는 것은 이미지 처리에 PHP를 사용할 때 필수 기술 중 하나입니다.