이미지 처리를 수행 할 때 그림의 텍스트를 동적으로 중심으로하는 것이 일반적인 요구 중 하나입니다. PHP의 GD 라이브러리는 개발자가 이러한 작업을 처리 할 수 있도록 일련의 기능을 제공하며, 그 중 ImageFontWidth () 와 Imagestring () 은 두 가지 중요한 기능입니다. 이 기사는 간단한 예제를 사용 하여이 두 기능을 사용하여 수평 센터링 텍스트 표시를 달성하는 방법을 설명합니다.
이 함수는 지정된 글꼴 너비의 픽셀 값을 반환합니다. 글꼴 번호는 GD로 1에서 5까지 사전 정의되어 숫자가 클수록 글꼴이 커집니다.
int imagefontwidth(int $font);
이 함수는 이미지에 문자열을 작성하는 데 사용됩니다.
bool imagestring(GdImage $image, int $font, int $x, int $y, string $string, int $color);
매개 변수 설명 :
$ 이미지 : 이미지 리소스
$ font : 글꼴 번호 (1 ~ 5)
$ x , $ y : 텍스트 쓰기의 시작 위치
$ string : 작성할 텍스트
$ 색상 : 색 인덱스 값
예를 들어 너비가 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);
?>
글꼴 제한 : ImageFontWidth ()는 imagestring () 에서 사용하는 내장 글꼴에만 적용됩니다. 텍스트 스타일과 위치를보다 세분화 해야하는 경우 imagetftext ()를 고려해야합니다.
다중 바이트 문자 : strlen () 은 중국어를 처리 할 때 부정확합니다. 대신 mb_strlen ()을 사용하거나 문자 너비를 추정 할 수 있습니다.
성능 최적화 : 자주 생성되는 이미지 컨텐츠의 경우 반복적 인 작동을 피하기 위해 캐시 메커니즘을 고려하십시오.
이 방법은 https://m66.net 과 같은 사용자 정의 짧은 URL 플랫폼에서 검증 코드, 이미지 워터 마크, QR 코드 캡션 또는 이미지 텍스트 합성을 동적으로 생성하는 데 적합합니다.
여러 기능의 간단한 조합을 통해 실용적이고 유연한 텍스트 센터링 기능을 달성하여 사용자 경험과 이미지 프리젠 테이션의 전문성을 크게 향상시킬 수 있습니다.