PHP - ImageCreate() error

13,132

Solution 1

The php_gd2 extension isn't enabled.

It is included with the Windows PHP distribution but you have to enable it in php.ini. To do this, simply open php.ini and uncomment (remove the leading ;) the following line:

extension=php_gd2.dll

Save, restart Apache, and you should be fine.

Solution 2

To be able to use ImageCreate you need to have the GD Library as part of your PHP installation.

Check with the phpinfo() function to see if it is installed. If not, you need to add this.

Share:
13,132
markzzz
Author by

markzzz

Updated on June 04, 2022

Comments

  • markzzz
    markzzz almost 2 years

    I'm trying to making a Captcha code, and I read some tutorial online. So, I have copy/and paste this function :

    create_image(); 
    exit(); 
    
    function create_image() { 
        //Let's generate a totally random string using md5 
        $md5_hash = md5(rand(0,999)); 
        //We don't need a 32 character long string so we trim it down to 5 
        $security_code = substr($md5_hash, 15, 5); 
    
        //Set the session to store the security code
        $_SESSION["security_code"] = $security_code;
    
        //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, $security_code, $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); 
    }
    

    But when I try to call it, I get this error :

    Fatal error: Call to undefined function ImageCreate() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\gtw\registration\createCaptcha.php on line 19

    What's the problem? Some PHP lib?

  • keen
    keen over 10 years
    I don't have a this line in my php.ini file