note 89932 modified in function.imagechar by thiago

From: Date: Mon, 30 Mar 2009 12:35:04 +0000
Subject: note 89932 modified in function.imagechar by thiago
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-152615@lists.php.net to get a copy of this message
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"); ?> --was-- 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"); ?> http://php.net/manual/en/function.imagechar.php

« previous php.notes (#152615) next »