<?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);
?>
Verwenden Sie ImageCrreatTueColor (), um eine leere Leinwand mit einer bestimmten Breite und Höhe zu erstellen.
Setzen Sie die Farbe:
Verwenden Sie ImageColOralCocate () , um dem Hintergrund bzw. dem Text Farbwerte zuzuweisen.
Hintergrundfarbe füllen:
Verwenden Sie ImageFilledRectangle () , um die gesamte Ebene in Schwarz zu füllen, um gemeinsame Flaggergänge zu simulieren.
Setzen Sie den Textinhalt und eine Schriftart:
Definieren Sie die wenigen zu angezeigten Textabsätze und wählen Sie die integrierte PHP-Schriftart (Nummer 1-5). Wenn Sie ImagettFtext () verwenden, können Sie auch benutzerdefinierte TTF -Schriftdateien unterstützen.
Berechnen Sie die Textbreite:
ImageFontwidth () gibt die Pixelbreite jedes Zeichens in der aktuellen Schriftart zurück. In Kombination mit Strlen () können Sie die erforderliche Breite des gesamten Textes berechnen.
Text zeichnen:
Imagestring () wird verwendet, um Text zu zeichnen und in die entsprechende Position auf der Leinwand zu platzieren. Wir setzen verschiedene X -Offsets ein, um den Effekt des von rechts eingebenen Sperrs zu simulieren.
Das Bild ausgeben und die Ressource zerstören:
Verwenden Sie ImagePng () , um PNG -Bilder auszugeben, und verwenden Sie dann Imagedestroy (), um Ressourcen freizugeben.