PHP library for image generation

Asked By 40 points N/A Posted on -
qa-featured

Hello Techyv Friends,

Is there any method in PHP library for image generation that will automatically measure the size of the image along with the file name. Please advise.

Thanks,

Ashley Bila

SHARE
Answered By 0 points N/A #198769

PHP library for image generation

qa-featured

PHP has built-in image generation function to generate new images or edit existing images on the fly, and for this you need to have the GD library installed.

The following is the script that creates image:

<?php 
//Send a generated image to the browser 
create_image(); 
exit(); 

function create_image() 
{ 
    //Let's generate a totally random string using md5 
    $md5 = md5(rand(0,999)); 
    //We don't need a 32 character long string so we trim it down to 5 
    $pass = substr($md5, 10, 5); 

    //Set the image width and height 
    $width = 100; 
    $height = 20;  

    //Create the image resource 
    $image = ImageCreate($width, $height);  

    //We are making three colors, white, black and gray 
    $white = ImageColorAllocate($image, 255, 255, 255); 
    $black = ImageColorAllocate($image, 0, 0, 0); 
    $grey = ImageColorAllocate($image, 204, 204, 204); 

    //Make the background black 
    ImageFill($image, 0, 0, $black); 

    //Add randomly generated string in white to the image
    ImageString($image, 3, 30, 3, $pass, $white); 

    //Throw in some lines to make it a little bit harder for any bots to break 
    ImageRectangle($image,0,0,$width-1,$height-1,$grey); 
    imageline($image, 0, $height/2, $width, $height/2, $grey); 
    imageline($image, $width/2, 0, $width/2, $height, $grey); 
 
    //Tell the browser what kind of file is come in 
    header("Content-Type: image/jpeg"); 

    //Output the newly created image in jpeg format 
    ImageJpeg($image); 
    
    //Free up resources
    ImageDestroy($image); 
} 
?>

You can use the following functions depending on the file format: ImageCreateFromPNG, ImageCreateFromJPG and ImageCreateFromJPEG.

ImageColorAllocate function can be used to color image using image identifiers RGB (red, green, blue) components. ImageString can be used to add text to the image. Note that the coordinates for rectangle would be set to width-1 and height-1 to prevent rectangle from exceeding canvas.

To output the image to a browser or file, you have to send header to the browser. Use Header function and image type as MIME and send to browser. 

Related Questions