현재 위치: > 최신 기사 목록> ImageFontWidth ()를 사용하여 사격 텍스트 레이어를 만듭니다

ImageFontWidth ()를 사용하여 사격 텍스트 레이어를 만듭니다

M66 2025-05-28

<?php // 设置内容类型为图像 header('Content-Type: image/png'); // 创建画布 $width = 800; $height = 100; $image = imagecreatetruecolor($width, $height); // 定义颜色 $backgroundColor = imagecolorallocate($image, 0, 0, 0); // 黑色背景 $textColor = imagecolorallocate($image, 255, 255, 255); // 白色文字 // 填充背景 imagefilledrectangle($image, 0, 0, $width, $height, $backgroundColor); // 要显示的弹幕文字 $danmuTexts = [ "欢迎来到m66.net!", "PHP制作弹幕图层演示", "让文字飞一会儿~" ]; // 使用内置字体编号(1-5) $font = 5; // 获取字体的宽度与高度 $charWidth = imagefontwidth($font); $charHeight = imagefontheight($font); // 初始Y位置 $y = 10; // 循环绘制每条弹幕 foreach ($danmuTexts as $index => $text) { // 计算文字总宽度 $textWidth = strlen($text) * $charWidth; // 设置X位置为图像右侧外边界,用于模拟从右向左滚动 $x = $width - ($index * 50); // 模拟不同起始偏移 // Y位置随行数递增 $textY = $y + $index * ($charHeight + 5); // 绘制文字 imagestring($image, $font, $x, $textY, $text, $textColor); } // 输出图像 imagepng($image); imagedestroy($image); ?>


자세한 설명 단계 :


  1. imageCreatetRueColor ()를 사용하여 지정된 너비와 높이의 빈 캔버스를 만듭니다.

  2. 색상 설정 :
    imageColorAllother ()를 사용하여 각각 배경과 텍스트에 색상 값을 할당하십시오.

  3. 배경색 채우기 :
    ImageFilledRectangle ()을 사용하여 전체 레이어를 검은 색으로 채우려면 일반적인 사격 배경을 시뮬레이션하십시오.

  4. 텍스트 내용 및 글꼴 설정 :
    표시 할 텍스트의 몇 단락을 정의하고 PHP 내장 글꼴 (1-5)을 선택하십시오. imageTtfText ()를 사용하는 경우 사용자 정의 TTF 글꼴 파일을 지원할 수도 있습니다.

  5. 텍스트 너비 계산 :
    ImageFontWidth ()는 현재 글꼴에서 각 문자의 픽셀 너비를 반환합니다. strlen () 과 결합하여 전체 텍스트의 필요한 폭을 계산할 수 있습니다.

  6. 텍스트 그리기 :
    Imagestring ()은 텍스트를 그려 캔버스의 적절한 위치에 놓는 데 사용됩니다. 오른쪽에서 발생하는 사격의 효과를 시뮬레이션하기 위해 다른 X 오프셋을 설정했습니다.

  7. 이미지를 출력하고 리소스를 파괴하십시오.
    imagePng ()를 사용하여 PNG 이미지를 출력 한 다음 imageStroy ()를 사용하여 리소스를 해제하십시오.