현재 위치: > 최신 기사 목록> 텍스트가 이미지 범위를 초과하는지 여부를 결정하기 위해 imagesx ()와 결합

텍스트가 이미지 범위를 초과하는지 여부를 결정하기 위해 imagesx ()와 결합

M66 2025-06-03

PHP 이미지 처리에서는 이미지에 텍스트를 그려야하며 텍스트가 이미지의 경계를 초과하지 않도록하는 것이 매우 중요한 부분임을 확인해야합니다. 이 기사는 텍스트의 전체 표시를 보장하기 위해 텍스트 너비가 이미지 범위를 초과하는지 여부를 결정하기 위해 imagefontwidth () 함수와 imagesx () 함수를 사용하는 방법을 소개합니다.


1. 기능 소개

  • ImageFontWidth ($ font)
    이 함수는 지정된 내장 글꼴 ( $ font )에서 단일 문자의 너비 (단위 : 픽셀)를 반환합니다. PHP 용 5 개의 내장 글꼴이 있으며 숫자가 클수록 글꼴이 커집니다.

  • imagesx ($ image)
    이미지 너비 (단위 : 픽셀)를 반환합니다.


2. 구현 아이디어

  1. 이미지 너비를 가져옵니다 ( imagesx () ).

  2. 각 문자의 너비를 가져옵니다 ( ImageFontWidth () ).

  3. 텍스트의 전체 단락 = 문자 수 × 각 문자의 너비에 의해 차지하는 너비를 계산하십시오.

  4. 텍스트 너비가 이미지 너비를 초과하는지 확인하십시오.


3. 샘플 코드

 <?php
// 너비를 만듭니다200px,높이입니다50px빈 이미지
$image = imagecreate(200, 50);

// 배경색을 설정하십시오(하얀색)
$bgColor = imagecolorallocate($image, 255, 255, 255);

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

// 캐릭터 내용
$text = "Hello, world!";

// 내장 글꼴을 선택하십시오,범위1-5
$font = 3;

// 이미지 너비를 계산합니다
$imageWidth = imagesx($image);

// 단일 문자 너비를 계산합니다
$charWidth = imagefontwidth($font);

// 총 텍스트 너비를 계산하십시오
$textWidth = strlen($text) * $charWidth;

// 텍스트가 이미지 너비를 초과하는지 확인하십시오
if ($textWidth > $imageWidth) {
    echo "文字宽度超出图像범위!";
} else {
    echo "文字宽度在图像범위内,정상적으로 표시 할 수 있습니다。";
    // 이미지에 텍스트를 그립니다,중앙 디스플레이
    $x = ($imageWidth - $textWidth) / 2;
    $y = (imagesy($image) - imagefontheight($font)) / 2;
    imagestring($image, $font, $x, $y, $text, $textColor);
    
    // 출력 이미지
    header("Content-Type: image/png");
    imagepng($image);
}

// 이미지 리소스 릴리스
imagedestroy($image);
?>

4. 설명

  • 코드에서 ImageFontWidth ($ font)는 단일 문자의 너비를 리턴하여 문자열의 길이를 곱하여 전체 텍스트 너비를 얻습니다.

  • imagesx ($ image) 별로 이미지의 너비를 얻으면 두 가지를 비교하여 텍스트가 이미지 범위를 초과할지 판단 할 수 있습니다.

  • 텍스트가 너무 길면 글꼴 크기를 줄이거 나 텍스트를 자르거나 이미지 너비를 조정하는 것을 고려할 수 있습니다.

  • 예제의 imagestring () 함수는 이미지에 텍스트를 그리는 데 사용됩니다. 매개 변수의 $ x 및 $ y 좌표는 텍스트가 수평 및 수직으로 중앙에있는 것을 허용하는 것입니다.


5. 결론

ImageFontWidth ()ImagesX () 함수를 결합하여 텍스트 너비가 현재 이미지에 적합한 지 쉽게 결정하여 텍스트가 자르거나 표시되는 예외를 피할 수 있습니다. 이것은 검증 코드, 포스터 등과 같은 텍스트로 이미지를 동적으로 생성하는 데 매우 실용적입니다.