ImageCrreatetRueColor und ImagettFtext sind zwei häufig verwendete Funktionen, wenn sie PHP verwenden, um Bildgenerierung und Textrenderung zu verarbeiten. Insbesondere in mehrsprachigen Umgebungen ist es eine häufige Herausforderung in der Entwicklung, mit Schriftstellern mit Schriftarten verstümmelt zu werden. In diesem Artikel werden Beispiele kombiniert, um zu erklären, wie diese beiden Funktionen korrekt verwendet werden, um zu vermeiden, dass chinesische oder andere nicht englische Charaktere als verstümmelt angezeigt werden.
Häufige verstümmelte Probleme beim Rendern mehrsprachiger Text mit ImagettFtext werden normalerweise durch die folgenden Gründe verursacht:
Die Schriftart Datei unterstützt die Zielsprachenzeichen nicht.
Die String-Codierung stimmt nicht mit der Schriftart überein (normalerweise ein Codierungsproblem mit UTF-8 und GBK).
Die Codierung wird bei der Verarbeitung von PHP -Skripten oder -bildern nicht korrekt verarbeitet.
Wählen Sie .TTF -Schriftdateien, die mehrsprachige Zeichen wie "Simhei.ttf", "Notosanscjk.ttf" usw. unterstützen.
Stellen Sie sicher, dass der Eingabetxt als UTF-8 codiert ist.
Verwenden Sie in PHP-Skripten UTF-8-Codierung einheitlich, um Verwirrung zu vermeiden.
Verwenden Sie ImagecrreatTueColor , um echte Farbbilder zu erstellen, um sicherzustellen, dass die Textfarbe und die Hintergrundfarbe korrekt angezeigt werden.
Das folgende Beispiel zeigt, wie chinesischhaltige Bilder mithilfe von Imagecrreatetruecolor und Imagettftext in PHP generiert werden, um verstümmelten Code zu vermeiden.
<?php
// Setzen Sie den Inhalt aufUTF-8Codierung
header('Content-Type: image/png; charset=utf-8');
// Erstellen Sie ein breites Blatt300,hoch100Echte farbige Leinwand
$width = 300;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// Hintergrundfarben setzen(Weiß)
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
// Textfarbe festlegen(Schwarz)
$black = imagecolorallocate($image, 0, 0, 0);
// Stellen Sie den chinesischen Text ein, um zu schreiben,Stellen Sie sicher, dass es istUTF-8Codierung
$text = "Mehrsprachiger Schriftart";
// Wählen Sie eine Schriftart, die Chinesisch unterstützt,Der Pfad muss entsprechend dem tatsächlichen Speicherort angepasst werden
$font = __DIR__ . '/fonts/SimHei.ttf';
// verwenden imagettftext Text rendern,Die Parameter sind:Bildressourcen、Schriftgröße、Winkel、xkoordinieren、ykoordinieren、Farbe、Schriftart Dateipfad、Textinhalt
imagettftext($image, 20, 0, 10, 50, $black, $font, $text);
// Bilder zum Browser ausgeben
imagepng($image);
// Zerstöre Bildressourcen,Freier Speicher
imagedestroy($image);
?>
Schriftart Datei <br> Stellen Sie sicher, dass die von Ihnen verwendete .ttf -Schriftdatei chinesische Zeichen unterstützt. Sie können aus dem System -Schriftart -Verzeichnis kopieren oder Open Source -Schriftarten herunterladen. Der Pfad wird empfohlen, absolute oder relative Pfade zu verwenden und auf Dateiberechtigungen zu achten.
Codierung
Die PHP-Datei wird als UTF-8 ohne BOM gespeichert, und der Textinhalt $ $ wird auch in UTF-8 codiert werden, sonst wird sie beim Rendern verstümmelt.
Umgebungskonfiguration <br> Bestätigen Sie, dass in der PHP -Umgebung die GD -Bibliothek installiert ist und die Freetype -Schriftfunktion unterstützt.
Wenn Sie über URLs Schriftressourcen oder externe Dateien verweisen müssen, wird der Domänenname im Beispiel durch m66.net ersetzt: