PHP 5.6.0beta1 released

imagechar

(PHP 4, PHP 5)

imagecharYatay olarak bir karakter çizer

Açıklama

bool imagechar ( resource $resim , int $yazıtipi , int $x , int $y , string $karakter , int $renk )

imagechar() işlevi karakter dizgesinin ilk karakterini resim ile belirtilen resmin üst sol x,y konumuna (resmin üst sol köşesi 0,0'dır) renk renginde çizer.

Değiştirgeler

resim

imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.

yazıtipi

Belirtilecek değer, Latin2 kodlamalı yerleşik yazı tipleri için 1, 2, 3, 4, 5 (daha büyük numara daha yüksek yazı tipine karşılıktır) veya imageloadfont() ile tanımlanmış kendi yazı tipi betimleyicilerinizden biri olabilir.

x

Başlangıç X koordinatı.

y

Başlangıç Y koordinatı.

karakter

Çizilecek karakter.

renk

imagecolorallocate() ile oluşturulmuş bir rengin tanıtıcısı.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Örnekler

Örnek 1 - imagechar() örneği

<?php

$im 
imagecreate(100100);

$dizge 'PHP';

$artalan imagecolorallocate($im255255255);
$siyah imagecolorallocate($im000);

// Üst sol köşeye siyah bir "P" basalım
imagechar($im100$dizge$siyah);

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

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

imagechar.png

Ayrıca Bakınız

add a note add a note

User Contributed Notes 2 notes

up
2
liam dot wiltshire at lineone dot net
5 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
1
sw at profilschmiede dot de
8 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