현재 위치: > 최신 기사 목록> 동적 텍스트 센터링을 구현하려면 ImageFontWidth () 및 Imagestring ()을 사용하십시오

동적 텍스트 센터링을 구현하려면 ImageFontWidth () 및 Imagestring ()을 사용하십시오

M66 2025-05-28

이미지 처리를 수행 할 때 그림의 텍스트를 동적으로 중심으로하는 것이 일반적인 요구 중 하나입니다. PHP의 GD 라이브러리는 개발자가 이러한 작업을 처리 할 수 ​​있도록 일련의 기능을 제공하며, 그 중 ImageFontWidth ()Imagestring () 은 두 가지 중요한 기능입니다. 이 기사는 간단한 예제를 사용 하여이 두 기능을 사용하여 수평 센터링 텍스트 표시를 달성하는 방법을 설명합니다.

1. 기능 소개

imageFontWidth ()

이 함수는 지정된 글꼴 너비의 픽셀 값을 반환합니다. 글꼴 번호는 GD로 1에서 5까지 사전 정의되어 숫자가 클수록 글꼴이 커집니다.

 int imagefontwidth(int $font);

imagestring ()

이 함수는 이미지에 문자열을 작성하는 데 사용됩니다.

 bool imagestring(GdImage $image, int $font, int $x, int $y, string $string, int $color);

매개 변수 설명 :

  • $ 이미지 : 이미지 리소스

  • $ font : 글꼴 번호 (1 ~ 5)

  • $ x , $ y : 텍스트 쓰기의 시작 위치

  • $ string : 작성할 텍스트

  • $ 색상 : 색 인덱스 값

2. 구현 단계

예를 들어 너비가 400 픽셀의 너비와 높이가 100 픽셀의 사진을 찍어 텍스트 단락을 그림에 중앙에 찍어 봅시다.

 <?php
// 캔버스를 만듭니다
$width = 400;
$height = 100;
$image = imagecreate($width, $height);

// 색상 설정
$background_color = imagecolorallocate($image, 255, 255, 255); // 흰색 배경
$text_color = imagecolorallocate($image, 0, 0, 0); // 검은 텍스트

// 쓰기 텍스트
$text = "방문에 오신 것을 환영합니다 m66.net";
$font = 5;

// 텍스트 너비를 계산합니다
$text_width = imagefontwidth($font) * strlen($text);

// 믿다X동등 어구,텍스트를 중심으로하십시오
$x = ($width - $text_width) / 2;

// Y동등 어구(수직 위치)사용자 정의 가능,다음은 단순히 수직 센터로 설정됩니다
$y = ($height - imagefontheight($font)) / 2;

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

// 브라우저에 이미지를 출력합니다
header("Content-Type: image/png");
imagepng($image);

// 무료 메모리
imagedestroy($image);
?>

3. 주목할만한 것들

  1. 글꼴 제한 : ImageFontWidth ()는 imagestring () 에서 사용하는 내장 글꼴에만 적용됩니다. 텍스트 스타일과 위치를보다 세분화 해야하는 경우 imagetftext ()를 고려해야합니다.

  2. 다중 바이트 문자 : strlen () 은 중국어를 처리 할 때 부정확합니다. 대신 mb_strlen ()을 사용하거나 문자 너비를 추정 할 수 있습니다.

  3. 성능 최적화 : 자주 생성되는 이미지 컨텐츠의 경우 반복적 인 작동을 피하기 위해 캐시 메커니즘을 고려하십시오.

4. 응용 프로그램 시나리오

이 방법은 https://m66.net 과 같은 사용자 정의 짧은 URL 플랫폼에서 검증 코드, 이미지 워터 마크, QR 코드 캡션 또는 이미지 텍스트 합성을 동적으로 생성하는 데 적합합니다.

여러 기능의 간단한 조합을 통해 실용적이고 유연한 텍스트 센터링 기능을 달성하여 사용자 경험과 이미지 프리젠 테이션의 전문성을 크게 향상시킬 수 있습니다.