imagefontwidth()的語法非常簡單:
int imagefontwidth(int $font)
其中$font參數是一個整數,用來指定字體編號。
PHP 內置了幾種字體供圖像函數使用,這些字體編號的有效範圍通常是從1 到5 ,每個編號對應一種不同大小的字體:
1 :最小字體,寬度為6 像素
2 :寬度為8 像素
3 :寬度為10 像素
4 :寬度為12 像素
5 :最大字體,寬度為16 像素
當你調用imagefontwidth()時,傳入的字體編號如果超出了這個範圍(比如是0 或6 以上),函數將返回false ,表示無效。
<?php
$font = 3;
$width = imagefontwidth($font);
echo "字體 $font 的寬度是: $width 像素";
?>
輸出:
字體 3 的寬度是: 10 像素
這些字體是GD 庫自帶的固定字體,並非TTF 或OTF 字體文件。它們的樣式相對簡單,但在很多輕量級的圖像處理場景中已經足夠使用。
如果你需要更豐富的字體樣式(如自定義字體文件),可以考慮使用imagettftext()函數,它允許使用.ttf字體文件並指定字體大小和角度,但這就與imagefontwidth()無關了。
假設你想動態計算一段文字的總寬度以便居中放置在圖像中:
<?php
$text = "Hello M66";
$font = 4;
$width = imagefontwidth($font) * strlen($text);
$image = imagecreate(300, 50);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$x = (300 - $width) / 2;
$y = (50 - imagefontheight($font)) / 2;
imagestring($image, $font, $x, $y, $text, $black);
imagepng($image, "https://m66.net/output.png");
imagedestroy($image);
?>
在這個例子中,我們通過imagefontwidth()得到了文本所需的像素寬度,進而實現了圖像中文本的居中顯示。
imagefontwidth()函數的有效字體編號是從1 到5 ,它為處理位圖字體提供了簡便的方式。在需要簡單、快速地在圖像中嵌入文本信息的場景下,這些內置字體和相關函數是非常實用的工具。不過,對於更高質量和更具設計感的文本展示,應考慮使用支持TrueType 字體的函數。