현재 위치: > 최신 기사 목록> PHP에서 텍스트 맵을 만드는 효과를 달성하기 위해 ImageFontWidth () 및 imageCopy () 함수의 조합을 사용하는 방법?

PHP에서 텍스트 맵을 만드는 효과를 달성하기 위해 ImageFontWidth () 및 imageCopy () 함수의 조합을 사용하는 방법?

M66 2025-06-15

PHP에서 일반적으로 사용되는 GD 라이브러리는 이미지를 동적으로 생성하는 데 도움이되는 풍부한 기능을 제공합니다. 이 기사는 텍스트 맵 효과를 달성하기 위해 ImageFontWidth () 기능의 조합을 사용하는 방법에 중점을 둡니다. 소위 텍스트 맵은 텍스트를 작은 조각이나지도로 "잘라낸 다음"대상 그림에 스 플라이싱하여보다 유연한 텍스트 표현식 양식을 달성하는 것입니다.


1. 기능 소개

  • ImageFontWidth (int $ font) : int
    내장 글꼴 문자 너비를 반환하고 $ font는 값이 1-5 인 글꼴 크기 식별입니다. 이 기능은 텍스트의 너비를 결정하는 데 유용하며 접합 위치의 계산을 용이하게합니다.

  • imageCopy (자원 $ dst_im, resource $ src_im, int $ dst_x, int $ dst_y, int $ src_x, int $ src_y, int $ src_y, int $ src_w, int $ src_h) : bool
    소스 이미지의 영역을 대상 이미지의 지정된 위치로 복사하십시오. 개별 문자를 복사하여 붙여 넣거나 텍스트 부품을 자르는 데 사용할 수 있습니다.


2. 텍스트 스티커를 만드는 아이디어

  1. 필요한 텍스트가 포함 된 소스 이미지를 준비합니다 (일반적으로 텍스트는 작은 그림으로 작성됩니다).

  2. 글꼴 너비와 문자 수에 따르면, 문자 별 덩어리는 소스 이미지에서 가져옵니다.

  3. imageEcopy () 함수를 통해 대상 이미지의 지정된 위치로 문자 블록을 복사하십시오.

  4. 일관된 텍스트 맵 효과를 달성하기 위해 위치 매개 변수를 조정하십시오.


3. 샘플 코드 데모

 <?php
// 대상 이미지를 만듭니다(흰색 배경)
$dst_width = 300;
$dst_height = 50;
$dst_im = imagecreatetruecolor($dst_width, $dst_height);
$white = imagecolorallocate($dst_im, 255, 255, 255);
imagefill($dst_im, 0, 0, $white);

// 소스 맵,텍스트라고 가정합니다"HELLO"게시,너비와 높이는 각 문자의 너비입니다.*캐릭터 번호와 캐릭터 높이
// 그것을 사용할 때는 완전한 텍스트가 포함 된 사진 자원을 준비해야합니다.
$src_im = imagecreatefrompng('http://m66.net/images/letters.png');

// 글꼴 크기를 설정하십시오(내장 글꼴,1-5)
$font = 5;
$char_width = imagefontwidth($font);
$char_height = imagefontheight($font);

// 게시 할 텍스트
$text = "HELLO";
$len = strlen($text);

// 텍스트의 시작 위치를 계산하십시오,텍스트를 중심으로하십시오
$start_x = ($dst_width - $char_width * $len) / 2;
$start_y = ($dst_height - $char_height) / 2;

// 문자 별 문자 사본
for ($i = 0; $i < $len; $i++) {
    $char = $text[$i];
    // ASCII오프셋,假设소스 맵文字排列是从'A'지속적으로 정리하기 시작하십시오
    $offset = ord($char) - ord('A');
    $src_x = $offset * $char_width;
    $src_y = 0;

    // 단일 문자를 대상 그래프에 복사하십시오
    imagecopy(
        $dst_im, 
        $src_im, 
        $start_x + $i * $char_width, 
        $start_y, 
        $src_x, 
        $src_y, 
        $char_width, 
        $char_height
    );
}

// 출력 사진
header('Content-Type: image/png');
imagepng($dst_im);

// 리소스를 자유롭게합니다
imagedestroy($dst_im);
imagedestroy($src_im);
?>

4. 설명과 확장

  • 이 예제는 텍스트 자료 다이어그램 ( letters.png )이 순서대로 문자가 순서대로 배열 된 그림이라고 가정합니다. 단일 문자의 너비는 문자 수와 글꼴 높이의 높이를 곱합니다.

  • ImageFontWidth ()ImageFonTheight ()는 문자의 너비와 높이를 정확하게 얻으려면 구두를 쉽게 복사 할 수 있도록 도와줍니다.

  • 텍스트 내용이 복잡한 경우 imageTtfText ()를 사용하여 처리하기 전에 글꼴을 렌더링하거나 imageCopyResAmped ()를 사용하여 스케일링을 달성 할 수도 있습니다.

  • 이 방법을 사용하면 흥미로운 텍스트 애니메이션 효과, 문자 조각 스타일 맵 및 사용자 정의 워터 마크를 만들 수 있습니다.