imagechar

(PHP 4, PHP 5, PHP 7, PHP 8)

imagechar水平绘制字符

描述

imagechar(
    GdImage $image,
    GdFont|int $font,
    int $x,
    int $y,
    string $char,
    int $color
): bool

imagechar() 在由 image 标识的图像中绘制 char 的第一个字符,其左上角位于 x,y(左上角为 0, 0),颜色为 color

参数

image

一个 GdImage 对象,由图像创建函数(如 imagecreatetruecolor())返回。

font

可以是 1、2、3、4、5(表示 latin2 编码中的内置字体,数字越大,字体越大)或 GdFont 实例(由 imageloadfont() 返回)。

x

起始点的 x 坐标。

y

起始点的 y 坐标。

char

要绘制的字符。

color

使用 imagecolorallocate() 创建的颜色标识符。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
8.1.0 font 参数现在既接受 GdFont 实例,也接受 int;以前只接受 int
8.0.0 image 现在期望一个 GdImage 实例;以前期望一个有效的 gd resource

范例

范例 #1 imagechar() 例子

<?php

$im
= imagecreate(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// 在左上角打印一个黑色 "P"
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

上面的例子将输出类似于

Output of example : imagechar()

参见

添加备注

用户贡献备注 2 则备注

sw at profilschmiede dot de
19 年前
为了完整起见,这里有一个 imagechar 的例子。
基础图像会自动调整为给定字符串的大小和高度。使用 rand() 函数,每次循环运行时都会稍微改变每个字符的 y 坐标位置。您可以轻松地重写脚本以使用随机生成的字符串 - 这里给出的字符串只是一个例子。

<?php

$string
= '1 2 3 4 5 6 7 8 9 A B C D E F G';
$font_size = 5;
$width=imagefontwidth($font_size)*strlen($string);
$height=imagefontheight($font_size)*2;
$img = imagecreate($width,$height);
$bg = imagecolorallocate($img,225,225,225);
$black = imagecolorallocate($img,0,0,0);
$len=strlen($string);

for(
$i=0;$i<$len;$i++)
{
$xpos=$i*imagefontwidth($font_size);
$ypos=rand(0,imagefontheight($font_size));
imagechar($img,$font_size,$xpos,$ypos,$string,$black);
$string = substr($string,1);

}
header("Content-Type: image/gif");
imagegif($img);
imagedestroy($img);
?>
liam dot wiltshire at lineone dot net
15 年前
一个快速函数,用于从字符串自动生成多行图像,图像大小会根据字符串本身自动计算。

<?php

function multilineimage($string){

// 处理换行符的方式可能不是最佳的,但除了 OS9 之外,通常不会造成问题
$string = str_replace("\r","",$string);
$string = explode("\n",$string);

$maxlen = 0;
foreach (
$string as $str){
if (
strlen($str) > $maxlen){
$maxlen = strlen($str);
}
}

// 设置字体大小
$font_size = 4;

// 根据字符串宽度创建图像宽度
$width = imagefontwidth($font_size)*$maxlen;
// 将高度设置为字体的高度
$height = imagefontheight($font_size) * count($string);
// 创建图像调色板
$img = imagecreate($width,$height);
// 灰色背景
$bg = imagecolorallocate($img, 205, 255, 255);
// 白色字体颜色
$color = imagecolorallocate($img, 0, 0, 0);

$ypos = 0;

foreach (
$string as $str){

$len = strlen($str);
for(
$i=0;$i<$len;$i++){
// 字符的水平位置
$xpos = $i * imagefontwidth($font_size);
// 绘制字符
imagechar($img, $font_size, $xpos, $ypos, $str, $color);
// 从字符串中删除字符
$str = substr($str, 1);
}
$ypos = $ypos + imagefontheight($font_size);
}

// 返回图像
header("Content-Type: image/gif");
imagegif($img);
// 删除图像
imagedestroy($img);
}

multilineimage("This is an image
This is line 2\nLine 3
Line 4"
);

?>
To Top