PHP 8.4.0 RC4 available for testing

imagechar

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

imagecharDesenha um caractere horizontalmente

Descrição

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

imagechar() desenha o primeiro caractere de char na imagem identificada por image com seu canto superior esquerdo em x,y (superior esquerdo é 0, 0) com a cor color.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

font

Pode ser 1, 2, 3, 4, 5 para as fontes nativas na codificação latin2 (onde números maiores correspondem a fontes maiores) ou uma instância de GdFont, retornada por imageloadfont().

x

Coordenada x do início.

y

Coordenada y do início.

char

O caractere a ser desenhado.

color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro font agora aceita uma instância de GdFont ou um int; anteriormente, apenas int era aceito.
8.0.0 O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagechar()

<?php

$im
= imagecreate(100, 100);

$string = 'PHP';

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

// mostra um "P" na cor preta no canto superior esquerdo
imagechar($im, 1, 0, 0, $string, $black);

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

?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagechar()

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
3
sw at profilschmiede dot de
19 years ago
For the sake of completeness, here is an example for imagechar.
The base-image automatically adjusts to the size and the height of the given string. Using the rand()-function the y-position of each char is slightly varied with every loop-run. You can easily rewrite the script to use a randomly generated string - the one given here just serves as an example.

<?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);
?>
up
0
liam dot wiltshire at lineone dot net
15 years ago
A quick function to automatically generate a multi line image from a string, with the image size automatically calculated from the string itself.

<?php

function multilineimage($string){

// Probably not the best way of handling newlines, but bar OS9, doesn't really cause a problem
$string = str_replace("\r","",$string);
$string = explode("\n",$string);

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

// Set font size
$font_size = 4;

// Create image width dependant on width of the string
$width = imagefontwidth($font_size)*$maxlen;
// Set height to that of the font
$height = imagefontheight($font_size) * count($string);
// Create the image pallette
$img = imagecreate($width,$height);
// Grey background
$bg = imagecolorallocate($img, 205, 255, 255);
// White font color
$color = imagecolorallocate($img, 0, 0, 0);

$ypos = 0;

foreach (
$string as $str){

$len = strlen($str);
for(
$i=0;$i<$len;$i++){
// Position of the character horizontally
$xpos = $i * imagefontwidth($font_size);
// Draw character
imagechar($img, $font_size, $xpos, $ypos, $str, $color);
// Remove character from string
$str = substr($str, 1);
}
$ypos = $ypos + imagefontheight($font_size);
}

// Return the image
header("Content-Type: image/gif");
imagegif($img);
// Remove image
imagedestroy($img);
}

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

?>
To Top