이미지 처리에 PHP를 사용하는 경우 내장 GD 라이브러리는 imagestring () , imageTtftext () 등과 같은 기능을 제공하여 텍스트를 그립니다. 비트 맵 글꼴의 경우 imageFontWidth () 및 ImageFonTheight ()를 사용하여 글꼴의 크기를 가져와 이미지의 문자의 위치, 정렬 또는 텍스트 포장 경계를 올바르게 계산할 수 있습니다.
이 기사는이 두 기능의 사용법을 소개하고 이미지의 텍스트 내용을 정확하게 레이아웃 할 수 있도록 텍스트 조각의 전체 너비와 높이를 계산하기 위해 함께 사용하는 방법을 보여줍니다.
int imagefontwidth(int $font);
이 함수는 주어진 글꼴 번호에 해당하는 단일 문자의 너비 (픽셀)를 반환합니다.
int imagefontheight(int $font);
이 함수는 주어진 글꼴 번호에 해당하는 단일 문자의 높이 (픽셀)를 반환합니다.
PHP의 GD 라이브러리는 5 개의 내장 글꼴 (1에서 5로 번호가 매겨짐)을 제공하며 숫자가 클수록 글꼴이 클수록.
전체 문자열을 그린 후 필요한 픽셀 영역 크기를 얻으려면 단일 문자의 너비와 높이를 문자열의 길이와 결합하면됩니다.
$text = "Hello, PHP!";
$font = 3; // 사용 가능한 범위입니다 1 도착하다 5
$charWidth = imagefontwidth($font);
$charHeight = imagefontheight($font);
$textWidth = strlen($text) * $charWidth;
$textHeight = $charHeight;
echo "텍스트 너비: {$textWidth}px\n";
echo "텍스트 높이: {$textHeight}px\n";
이 코드 스 니펫은 글꼴 3을 사용하여 텍스트의 픽셀 너비와 높이를 그리는 방법을 알려줍니다 . "Hello, Php!" .
다음은 텍스트를 보유하고 PNG로 출력하는 이미지에 텍스트를 그리는 완전한 예입니다.
<?php
$text = "Hello, PHP!";
$font = 3;
$charWidth = imagefontwidth($font);
$charHeight = imagefontheight($font);
$textWidth = strlen($text) * $charWidth;
$textHeight = $charHeight;
$image = imagecreate($textWidth, $textHeight);
$background = imagecolorallocate($image, 255, 255, 255); // 흰색 배경
$textColor = imagecolorallocate($image, 0, 0, 0); // 검은 텍스트
imagestring($image, $font, 0, 0, $text, $textColor);
// 출력 이미지
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>
위의 코드를 PHP 파일로 저장하고 서버를 통해 액세스하여 생성 된 이미지를 확인하십시오. 이 예제는 여백 추가, 센터링 정렬 또는 여러 줄의 텍스트를 그리는 등 더 확장 될 수 있습니다.
이 방법은 일반적으로 다음에 사용됩니다.
검증 코드 사진을 동적으로 생성합니다.
워터 마크 이미지를 만듭니다.
간단한 시그니처 바, 사용자 이름 태그 등을 만드십시오.
배경은 아이콘에 숫자를 추가하는 것과 같은 알림 이미지를 생성합니다.
예를 들어, 사이트에 이러한 기능을 배포하면 https://www.m66.net/gen.php?text=hellophp가 매개 변수화 된 이미지 생성을 활성화 할 수 있습니다.
imageFontWidth () 및 ImageFonTheight () 를 사용하여 글꼴의 단일 문자 너비와 높이를 얻은 다음 문자열 길이를 결합하여 텍스트의 픽셀 영역 크기를 쉽게 계산하십시오. 이 방법은 TTF 글꼴만큼 유연하지는 않지만 성능과 단순성이 필요한 시나리오에서는 여전히 매우 실용적입니다. 이 기사가 이미지에서 텍스트의 위치와 레이아웃을 더 잘 제어하는 데 도움이되기를 바랍니다.