이미지 처리에 PHP를 사용할 때는 종종 그림에 텍스트를 추가해야합니다. 텍스트를보다 아름답게 보이게하기 위해 수평 센터링은 일반적이고 중요한 작업입니다. 이 기사는 PHP의 imageFontWidth () 함수를 다른 관련 함수와 결합하여 그림에서 텍스트의 수평 중심 정렬 효과를 달성하는 방법을 소개합니다.
ImageFontWidth () 는 PHP GD 라이브러리에서 지정된 글꼴 크기로 단일 문자의 너비를 가져 오는 기능입니다. 기본 사용량은 다음과 같습니다.
int imagefontwidth ( int $font )
$ font 는 글꼴 크기이며 값은 1에서 5입니다.
리턴 값은 해당 글꼴 크기에서 단일 문자의 너비 (픽셀)입니다.
단일 문자의 너비를 이해 한 후, 우리는 문자열의 길이에 따라 전체 텍스트 조각의 너비를 계산하여 수평 중심 시작 X 좌표를 계산할 수 있습니다.
사진을 만듭니다.
글꼴 크기와 텍스트 내용을 설정합니다.
텍스트의 픽셀 너비를 계산하십시오 : 문자 너비 × 문자 수.
중앙에 시동 X 좌표를 계산하십시오 : 이미지 너비를 텍스트 너비에서 2로 나눕니다.
Imagestring () 함수를 사용하여 이미지에 텍스트를 그립니다.
사진을 출력하거나 저장하십시오.
다음은 ImageFontWidth ()를 사용하여 수평 중앙 텍스트 정렬을 달성하는 방법을 보여주는 완전한 예입니다.
<?php
// 넓은 시트를 만듭니다 400px,높은 100px 진짜 컬러 사진
$width = 400;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// 색상을 정의하십시오
$bg_color = imagecolorallocate($image, 255, 255, 255); // 흰색 배경
$text_color = imagecolorallocate($image, 0, 0, 0); // 검은 텍스트
// 배경색을 채우십시오
imagefilledrectangle($image, 0, 0, $width, $height, $bg_color);
// 텍스트 내용 및 글꼴 크기
$text = "방문에 오신 것을 환영합니다 m66.net";
$font = 5; // 글꼴 크기,범위1-5
// 단일 문자 너비를 얻으십시오
$char_width = imagefontwidth($font);
// 전체 텍스트의 너비를 계산하십시오
$text_width = $char_width * strlen($text);
// 텍스트의 시작을 계산하십시오x동등 어구,중심 수준을 달성하십시오
$x = ($width - $text_width) / 2;
// y동등 어구,수직으로 중심
$char_height = imagefontheight($font);
$y = ($height - $char_height) / 2;
// 그림에 텍스트를 작성하십시오
imagestring($image, $font, $x, $y, $text, $text_color);
// 브라우저에 사진을 출력합니다
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>
이 코드에서 :
imagefontwidth ($ font) 글꼴 크기가 5 인 경우 단일 문자의 너비 (픽셀)를 반환합니다.
Strlen ($ 텍스트)을 사용하여 문자열 문자 수를 계산하십시오.
제품은 텍스트의 총 너비입니다.
이미지 너비를 사용하여 텍스트 너비를 빼고 2로 나누어 중앙 시작점 x를 계산하십시오.
이런 식으로 텍스트는 수평으로 표시 될 수 있습니다.
ImageFontWidth () 는 텍스트 수준 센터링을 달성하기위한 주요 기능 중 하나입니다. 이를 통해 문자열 길이와 이미지 크기를 결합하여 텍스트의 시작 도면 위치를 쉽게 계산하여 텍스트가 중앙에 표시되도록합니다. ImageFonTheight () 와 결합하여보다 정확한 수직 센터링을 달성 할 수 있습니다.