Tycoon Talk
Become a Big fish!
The number 1 forum for online business!
Post topics, ask questions, share your knowledge.
Tycoon Talk is part of Freelancer.com - find skilled workers online at a fraction of the cost.

PHP Forum


You are currently viewing our PHP Forum as a guest. Please register to participate.
Login



Freelance Jobs

Reply
Old 05-23-2008, 02:29 AM Gd help
Extreme Talker

Posts: 189
Trades: 0
I would like to put new lines in the text so can someone please merge the following 2 codes

Image create code im using
PHP Code:
<?php
/*
    Dynamic Heading Generator
    By Stewart Rosenberger
    http://www.stewartspeak.com/headings/    

    This script generates PNG images of text, written in
    the font/size that you specify. These PNG images are passed
    back to the browser. Optionally, they can be cached for later use. 
    If a cached image is found, a new image will not be generated,
    and the existing copy will be sent to the browser.

    Additional documentation on PHP's image handling capabilities can
    be found at http://www.php.net/image/    
*/


$font_file  'font.ttf' ;
$font_size  18 ;
$font_color '#bb4a3a' ;
$background_color '#82de8d' ;
$transparent_background  false ;
$cache_images false ;
$cache_folder 'cache' ;







/*
  ---------------------------------------------------------------------------
   For basic usage, you should not need to edit anything below this comment.
   If you need to further customize this script's abilities, make sure you
   are familiar with PHP and its image handling capabilities.
  ---------------------------------------------------------------------------
*/

$mime_type 'image/png' ;
$extension '.png' ;
$send_buffer_size 4096 ;

// check for GD support
if(!function_exists('ImageCreate'))
    
fatal_error('Error: Server does not support PHP image generation') ;

// clean up text
if(empty($_GET['text']))
    
fatal_error('Error: No text specified.') ;
    
$text $_GET['text'] ;
if(
get_magic_quotes_gpc())
    
$text stripslashes($text) ;
$text javascript_to_html($text) ;

// look for cached copy, send if it exists
$hash md5(basename($font_file) . $font_size $font_color .
            
$background_color $transparent_background $text) ;
$cache_filename $cache_folder '/' $hash $extension ;
if(
$cache_images && ($file = @fopen($cache_filename,'rb')))
{
    
header('Content-type: ' $mime_type) ;
    while(!
feof($file))
        print((
$buffer fread($file,$send_buffer_size))) ;
    
fclose($file) ;
    exit ;
}

// check font availability
$font_found is_readable($font_file) ;
if(!
$font_found)
{
    
fatal_error('Error: The server is missing the specified font.') ;
}

// create image
$background_rgb hex_to_rgb($background_color) ;
$font_rgb hex_to_rgb($font_color) ;
$dip get_dip($font_file,$font_size) ;
$box = @ImageTTFBBox($font_size,0,$font_file,$text) ;
$image = @ImageCreate(abs($box[2]-$box[0]),abs($box[5]-$dip)) ;
if(!
$image || !$box)
{
    
fatal_error('Error: The server could not create this heading image.') ;
}

// allocate colors and draw text
$background_color = @ImageColorAllocate($image,$background_rgb['red'],
    
$background_rgb['green'],$background_rgb['blue']) ;
$font_color ImageColorAllocate($image,$font_rgb['red'],
    
$font_rgb['green'],$font_rgb['blue']) ;   
ImageTTFText($image,$font_size,0,-$box[0],abs($box[5]-$box[3])-$box[1],
    
$font_color,$font_file,$text) ;

// set transparency
if($transparent_background)
    
ImageColorTransparent($image,$background_color) ;

header('Content-type: ' $mime_type) ;
ImagePNG($image) ;

// save copy of image for cache
if($cache_images)
{
    @
ImagePNG($image,$cache_filename) ;
}

ImageDestroy($image) ;
exit ;


/*
    try to determine the "dip" (pixels dropped below baseline) of this
    font for this size.
*/
function get_dip($font,$size)
{
    
$test_chars 'abcdefghijklmnopqrstuvwxyz' .
                  
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' .
                  
'1234567890' .
                  
'!@#$%^&*()\'"\\/;.,`~<>[]{}-+_-=' ;
    
$box = @ImageTTFBBox($size,0,$font,$test_chars) ;
    return 
$box[3] ;
}


/*
    attempt to create an image containing the error message given. 
    if this works, the image is sent to the browser. if not, an error
    is logged, and passed back to the browser as a 500 code instead.
*/
function fatal_error($message)
{
    
// send an image
    
if(function_exists('ImageCreate'))
    {
        
$width ImageFontWidth(5) * strlen($message) + 10 ;
        
$height ImageFontHeight(5) + 10 ;
        if(
$image ImageCreate($width,$height))
        {
            
$background ImageColorAllocate($image,255,255,255) ;
            
$text_color ImageColorAllocate($image,0,0,0) ;
            
ImageString($image,5,5,5,$message,$text_color) ;    
            
header('Content-type: image/png') ;
            
ImagePNG($image) ;
            
ImageDestroy($image) ;
            exit ;
        }
    }

    
// send 500 code
    
header("HTTP/1.0 500 Internal Server Error") ;
    print(
$message) ;
    exit ;
}


/* 
    decode an HTML hex-code into an array of R,G, and B values.
    accepts these formats: (case insensitive) #ffffff, ffffff, #fff, fff 
*/    
function hex_to_rgb($hex)
{
    
// remove '#'
    
if(substr($hex,0,1) == '#')
        
$hex substr($hex,1) ;

    
// expand short form ('fff') color
    
if(strlen($hex) == 3)
    {
        
$hex substr($hex,0,1) . substr($hex,0,1) .
               
substr($hex,1,1) . substr($hex,1,1) .
               
substr($hex,2,1) . substr($hex,2,1) ;
    }

    if(
strlen($hex) != 6)
        
fatal_error('Error: Invalid color "'.$hex.'"') ;

    
// convert
    
$rgb['red'] = hexdec(substr($hex,0,2)) ;
    
$rgb['green'] = hexdec(substr($hex,2,2)) ;
    
$rgb['blue'] = hexdec(substr($hex,4,2)) ;

    return 
$rgb ;
}


/*
    convert embedded, javascript unicode characters into embedded HTML
    entities. (e.g. '%u2018' => '‘'). returns the converted string.
*/
function javascript_to_html($text)
{
    
$matches null ;
    
preg_match_all('/%u([0-9A-F]{4})/i',$text,$matches) ;
    if(!empty(
$matches)) for($i=0;$i<sizeof($matches[0]);$i++)
        
$text str_replace($matches[0][$i],
                            
'&#'.hexdec($matches[1][$i]).';',$text) ;

    return 
$text ;
}

?>
new lines image code
PHP Code:
 $string "Hello,\nworld!";
$stringarray explode("\n",$string);
for (
$i=0$i count($stringarray); $i++) {
  
imagestring($im411+$y$stringarray[$i], $text_color); 
  
$y += imagefontheight(4);
}If 
you want some space in between the linesadd more to $y:
$y += imagefontheight(4) + 3// add 3 pixels 
simster is offline
Reply With Quote
View Public Profile
 
 
Register now for full access!
Reply     « Reply to Gd help
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off





   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML



Page generated in 0.35869 seconds with 12 queries