imagechar

(PHP 4, PHP 5, PHP 7)

imagecharDraw a character horizontally

설명

bool imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color )

imagechar() draws the first character of c in the image identified by image with its upper-left at x,y (top left is 0, 0) with the color color.

인수

image

imagecreatetruecolor() 등의 이미지 생성 함수에서 반환한 이미지 자원.

font

latin2 인코딩의 내장 글꼴 1, 2, 3, 4, 5(큰 숫자가 큰 글꼴)나 imageloadfont()로 등록한 글꼴 식별자를 사용할 수 있습니다.

x

x-coordinate of the start.

y

y-coordinate of the start.

c

The character to draw.

color

A color identifier created with imagecolorallocate().

반환값

성공 시 TRUE를, 실패 시 FALSE를 반환합니다.

예제

Example #1 imagechar() example

<?php

$im 
imagecreate(100100);

$string 'PHP';

$bg imagecolorallocate($im255255255);
$black imagecolorallocate($im000);

// prints a black "P" in the top left corner
imagechar($im100$string$black);

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

?>

위 예제의 출력 예시:

Output of example : imagechar()

참고

add a note add a note

User Contributed Notes 2 notes

up
2
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"
);

?>
up
2
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);
?>
To Top