PHP在影象上繪製文字

2020-07-16 10:05:29
想要在影象中顯示文字也需要按坐標位置畫上去。在 PHP 中不僅支援多種的字型庫,還提供了非常靈活的文字繪製方法。例如,在影象中繪製縮放、傾斜、旋轉的文字等。常用的繪製文字的函數如下表所示:

函數名  描述
imagestring() 水平繪製一行字串
imagestringup() 垂直繪製一行字串
imagechar() 水平繪製一個字元
imagecharup() 垂直繪製一個字元
imagettftext() 用 TrueType 字型向影象中寫入文字

雖然這幾個函數的功能有所差異,但呼叫方式是類似的,尤其是 imagestring()、imagestringup()、imagechar() 以及 imagecharup() 函數,它們的引數都是相同的,因此就不再分開介紹了,這些函數的語法格式如下:

imagestring(resource $image, int $font, int $x, int $y, string $s, int $color)
imagestringup(resource $image, int $font, int $x, int $y, string $s, int $col)
imagechar(resource $image, int $font, int $x, int $y, string $c, int $color)
imagecharup(resource $image, int $font, int $x, int $y, string $c, int $color)

使用這些函數可以在畫布 $image 上,坐標為($x,$y)的位置,繪製字串(或字元) $s,字串的顏色為 $color,字型為 $font。如果 $font 是 1,2,3,4 或 5,則使用內建字型。

【範例】使用 imagestring()、imagestringup()、imagechar() 和 imagecharup() 函數在畫布上繪製文字。
<?php
    $str = 'http://c.biancheng.net/php/';
    $img = imagecreate(300, 200);
    imagecolorallocate($img, 255, 255, 255);
    $red = imagecolorallocate($img, 255, 0, 0);
    imagestring($img, 5, 0, 0, $str, $red);
    imagestringup($img, 2, 150, 180, $str, $red);
    imagechar($img, 3, 50, 50, $str, $red);
    imagecharup($img, 4, 50, 100, $str, $red);
    header('Content-type:image/jpeg');
    imagejpeg($img);
    imagedestroy($img);
?>
執行結果如下圖所示:

繪製文字
圖:繪製文字