Bei der Verwendung von PHP für die Bildverarbeitung ist die Funktion imageFontwidth () ein übliches Werkzeug, um die Breite einer angegebenen integrierten Schriftart zu erhalten. Die grundlegende Syntax dieser Funktion ist:
int imagefontwidth ( int $font )
Es akzeptiert eine Schriftnummer als Parameter, die die Breite in den Pixeln jedes Zeichens in dieser Schriftart zurückgibt. Normalerweise wird ImageFontwidth () eine positive Ganzzahl zurückgeben, aber manchmal werden wir feststellen, dass es 0 zurückgibt, was eine Ausnahme von der Bildverarbeitungslogik verursacht. In diesem Artikel wird untersucht, warum dies geschieht und gemeinsame Ursachen und Lösungen liefert.
Die eingehende Schriftnummer ist ungültig
ImageFontwidth () kann nur Ganzzahlen zwischen 1 und 5 akzeptieren, was den fünf eingebauten Schriftarten in PHP entspricht:
1 - winzige Schriftart
2 - kleine Schriftart
3 - mittlere Schriftart
4 - große Schriftart
5 - riesige Schriftart
Wenn eine Zahl außerhalb dieses Bereichs übergeben oder ein Nichttegerwert übergeben wird, wird die Funktion 0 zurückgegeben.
Die GD -Bibliothek ist nicht korrekt installiert oder nicht aktiviert
Die Bildverarbeitungsfunktion von PHP hängt von der GD -Bibliothek ab. Wenn die GD -Bibliothek nicht installiert oder nicht aktiviert ist, wird die Schriftbreite möglicherweise nicht normal zurückgegeben, wenn ImageFontwidth () aufgerufen wird.
Die Funktionsaufrufumgebung ist unvollständig
In einigen Fällen kann die Funktion auch 0 zurückgeben, wenn die PHP -Laufzeitumgebung unvollständig ist oder die Bildressource nicht korrekt initialisiert wird.
Stellen Sie sicher, dass die Schriftnummer, die Sie übergeben, wenn Sie ImageFontwidth () aufrufen, zwischen 1 und 5 liegt.
$font = 3; // Richtige Schriftnummernbereich
$width = imagefontwidth($font);
echo "Die Schriftbreite ist:$width";
Der folgende Code kann verwendet werden, um die GD -Bibliothek zu erkennen:
if (function_exists('gd_info')) {
$info = gd_info();
echo "GDDie Bibliothek ist aktiviert,Versionsinformationen:" . $info['GD Version'];
} else {
echo "GDDie Bibliothek ist nicht installiert oder nicht aktiviert!";
}
Wenn nicht aktiviert, müssen Sie GD -Erweiterungen in der PHP -Umgebung installieren und aktivieren.
Stellen Sie sicher, dass die Umgebung initialisiert wird, bevor Sie ImageFontwidth () aufrufen. Zum Beispiel wird es normalerweise in Verbindung mit der Funktion imageString () verwendet:
header('Content-Type: image/png');
$im = imagecreatetruecolor(100, 30);
$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefill($im, 0, 0, $bg);
$font = 4;
$text = "Hello";
$width = imagefontwidth($font) * strlen($text);
$height = imagefontheight($font);
imagestring($im, $font, (100 - $width) / 2, (30 - $height) / 2, $text, $black);
imagepng($im);
imagedestroy($im);
Der häufigste Grund für ImageFontwidth () zurückgibt 0 ist, dass eine ungültige Schriftnummer übergeben wird.
Stellen Sie sicher, dass die GD -Bibliothek installiert und aktiviert ist.
Initialisieren Sie die Bildressourcen korrekt und rufen Sie die Umgebung an.
Durch die obige Untersuchung kann das Problem der Rückgabe von ImageFontwidth () -Funktion 0 im Grunde genommen gelöst werden, um den reibungslosen Abschluss des Bildverarbeitungsprozesses zu gewährleisten.