Position actuelle: Accueil> Derniers articles> Utilisez ImageFontWidth () pour créer des calques de texte de barrage

Utilisez ImageFontWidth () pour créer des calques de texte de barrage

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); ?>


Étapes Explication détaillée:


  1. Utilisez ImageCreateTrueColor () pour créer une toile vierge avec une largeur et une hauteur spécifiées.

  2. Réglez la couleur:
    Utilisez ImageColorAllocate () pour attribuer respectivement les valeurs de couleur à l'arrière-plan et au texte.

  3. Remplissez la couleur de l'arrière-plan:
    Utilisez ImageFildRectangle () pour remplir la couche entière en noir pour simuler des arrière-plans de barrage communs.

  4. Définir le contenu du texte et la police:
    Définissez les quelques paragraphes de texte à afficher et sélectionnez la police intégrée PHP (numéro 1-5). Si vous utilisez ImageTtFText (), vous pouvez également prendre en charge les fichiers de police TTF personnalisés.

  5. Calculer la largeur du texte:
    ImageFontWidth () renvoie la largeur des pixels de chaque caractère dans la police actuelle. Combiné avec strlen () , vous pouvez calculer la largeur requise de l'ensemble du texte.

  6. Dessiner du texte:
    ImageString () est utilisé pour dessiner du texte et le placer dans la position appropriée sur la toile. Nous avons réglé différents décalages X pour simuler l'effet du barrage entrant de la droite.

  7. Sortez l'image et détruisez la ressource:
    Utilisez ImagePng () pour sortir des images PNG, puis utilisez ImageStroy () pour libérer des ressources.