현재 위치: > 최신 기사 목록> ImageFontWidth ()가 반환하는 일반적인 원인과 솔루션

ImageFontWidth ()가 반환하는 일반적인 원인과 솔루션

M66 2025-05-31

이미지 처리에 PHP를 사용하는 경우 ImageFontWidth () 함수는 지정된 내장 글꼴의 너비를 얻는 일반적인 도구입니다. 이 기능의 기본 구문은 다음과 같습니다.

 int imagefontwidth ( int $font )

글꼴 번호를 매개 변수로 받아들이고 해당 글꼴의 각 문자의 픽셀의 너비를 반환합니다. 일반적으로 ImageFontWidth ()는 긍정적 인 정수를 반환하지만 때로는 0을 반환하여 이미지 처리 로직에 대한 예외가 발생한다는 것을 알게됩니다. 이 기사는 이것이 왜 발생하는지 탐구하고 일반적인 원인과 해결책을 제공합니다.


1. ImageFontWidth ()가 왜 0을 반환합니까?

  1. 들어오는 글꼴 번호가 유효하지 않습니다

    ImageFontWidth ()는 PHP의 5 개의 내장 글꼴에 해당하는 1과 5 사이의 정수 만 허용 할 수 있습니다.

    • 1 - 작은 글꼴

    • 2 - 작은 글꼴

    • 3 - 중간 글꼴

    • 4 - 큰 글꼴

    • 5 - 거대한 글꼴

    이 범위 외부의 숫자가 전달되거나 integer 비 값이 전달되면 함수는 0을 반환합니다.

  2. GD 라이브러리가 올바르게 설치되지 않았거나 활성화되지 않았습니다.

    PHP의 이미지 처리 기능은 GD 라이브러리에 따라 다릅니다. GD 라이브러리가 설치되지 않았거나 활성화되지 않은 경우 ImageFontWidth ()가 호출되면 글꼴 너비가 정상적으로 반환되지 않을 수 있습니다.

  3. 기능 통화 환경이 불완전합니다

    경우에 따라 PHP 런타임 환경이 불완전하거나 이미지 리소스가 올바르게 초기화되지 않은 경우 기능이 0을 반환 할 수 있습니다.


2. ImageFontWidth () 반환 0의 문제를 해결하는 방법은?

1. 들어오는 글꼴 번호가 올바른지 확인하십시오

ImageFontWidth ()를 호출 할 때 전달되는 글꼴 번호가 1에서 5 사이인지 확인하십시오.

 $font = 3; // 올바른 글꼴 번호 범위
$width = imagefontwidth($font);
echo "글꼴 너비는입니다:$width";

2. GD 라이브러리가 설치되어 있고 활성화되어 있는지 확인하십시오.

다음 코드는 GD 라이브러리를 감지하는 데 사용할 수 있습니다.

 if (function_exists('gd_info')) {
    $info = gd_info();
    echo "GD라이브러리가 활성화되었습니다,버전 정보:" . $info['GD Version'];
} else {
    echo "GD라이브러리가 설치되지 않았거나 활성화되지 않았습니다!";
}

활성화되지 않은 경우 PHP 환경에 GD 확장을 설치하고 활성화해야합니다.

3. 올바른 통화 환경을 사용하십시오

ImageFontWidth ()를 호출하기 전에 환경이 초기화되어 있는지 확인하십시오. 예를 들어, 일반적으로 Imagestring () 함수와 함께 사용됩니다.

 header('Content-Type: image/png');
$im = imagecreatetruecolor(100, 30);
$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefill($im, 0, 0, $bg);

$font = 4;
$text = "Hello";

$width = imagefontwidth($font) * strlen($text);
$height = imagefontheight($font);

imagestring($im, $font, (100 - $width) / 2, (30 - $height) / 2, $text, $black);
imagepng($im);
imagedestroy($im);

3. 요약

  • ImageFontWidth ()가 0을 반환하는 가장 일반적인 이유는 잘못된 글꼴 번호가 전달되기 때문입니다.

  • GD 라이브러리가 설치되어 활성화되어 있는지 확인하십시오.

  • 이미지 리소스를 올바르게 초기화하고 환경을 호출하십시오.

위의 조사를 통해 ImageFontWidth () 함수 0의 문제를 기본적으로 해결하여 이미지 처리 프로세스의 원활한 완료를 보장 할 수 있습니다.