文字

imagechar

(PHP 4, PHP 5, PHP 7)

imagechar水平地画一个字符

说明

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

imagechar() 将字符串 c 的第一个字符画在 image 指定的图像中,其左上角位于 xy(图像左上角为 0, 0),颜色为 color。如果 font 是 1,2,3,4 或 5,则使用内置的字体(更大的数字对应于更大的字体)。

Example #1 imagechar() 例子

<?php

$im 
imagecreate ( 100 , 100 );

$string  'PHP' ;

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

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

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

?>

参见 imagecharup() imageloadfont()

用户评论:

[#1] liam dot wiltshire at lineone dot net [2009-03-29 15:11:43]

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($img205255255);
    
// White font color
    
$color imagecolorallocate($img000);

    
$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($str1);   
        }
        
$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"
);

?>

[#2] sw at profilschmiede dot de [2005-06-20 08:35:46]

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);
?>

上一篇: 下一篇: