PHP imageftbbox 图像GD库函数



  • 定义和用法

    imageftbbox - 给出一个使用 FreeType 2 字体的文本框
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
    注意: 此函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。
    注意: 此函数仅在 PHP 编译时加入 freetype 支持时有效(--with-freetype-dir=DIR )。
    V4.3.5 extrainfo被设为可选。
  • 语法

    imageftbbox ( float $size , float $angle , string $fontfile , string $text [, array $extrainfo ] )
    
    imageftbbox() 此函数计算并返回FreeType文本的边框(以像素为单位)。
  • 参数

    参数 必需的 描述
    size 字体的尺寸。根据 GD 的版本,为像素尺寸(GD1)或点(磅)尺寸(GD2)。
    angle 角度,以度为单位,将测量文本。
    fontfile TrueType字体文件的名称(可以是URL)。 根据PHP使用的GD库版本,它可能会尝试通过在文件名后附加'.ttf'并沿库定义的字体路径搜索以“/”开头的文件。
    text 要测量的字符串。
    extrainfo
    • linespacing - float - 定义绘图线间距
  • 返回值

    imageftbbox() 返回一个包含8个元素的数组,这些元素代表四个点,从而形成文本的边界框:
    • 0 左下角,X位置
    • 1 左下角,Y位置
    • 2 右下角,X位置
    • 3 右下角,Y位置
    • 4 右上角,X位置
    • 5 右上角,Y位置
    • 6 左上角,X位置
    • 7 左上角,Y位置
    无论角度如何,这些点都相对于文本,因此“左上”是指在左上角水平查看文本。
  • 示例

    // Create a 300x150 image
    $im = imagecreatetruecolor(300, 150);
    $black = imagecolorallocate($im, 0, 0, 0);
    $white = imagecolorallocate($im, 255, 255, 255);
    
    // Set the background to be white
    imagefilledrectangle($im, 0, 0, 299, 299, $white);
    
    // Path to our font file
    $font = './DejaVuSans.ttf';
    
    // First we create our bounding box
    $bbox = imageftbbox(10, 0, $font, 'The PHP Documentation Group');
    
    // This is our cordinates for X and Y
    $x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 5;
    $y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
    
    imagefttext($im, 10, 0, $x, $y, $black, $font, 'The PHP Documentation Group');
    
    // Output to browser
    header('Content-Type: image/png');
    
    imagepng($im);
    imagedestroy($im);
    
  • 相关函数

    imagefontheight() - 取得字体宽度。
    imageloadfont() - 载入一种字体。