Jump to content

error in imagecolorallocate


samitrimal

Recommended Posts

hi  when i called this function i got the error :Error creating image in test

function  test(){
         $height = 800;
    //the width of canvas
    $width = 890;
    //creating the image with $height and $width
    $im = imagecreate($width, $height) or die("Error creating image in test"); // width , height px
    $white = imagecolorallocate($im, 255, 255, 250) or die("Error in image allocation in test");
    $black = imagecolorallocate($im, 0, 0, 0) or die("Error in image allocation");
    imagefill($im, 0, 0, $black);
      }

 

Link to comment
https://forums.phpfreaks.com/topic/232022-error-in-imagecolorallocate/
Share on other sites

I'm not entirely sure why but this works for me:

 

$height = 800;
    //the width of canvas
    $width = 890;
    //creating the image with $height and $width
    $im = imagecreatetruecolor($width, $height) or die("Error creating image in test"); // width , height px
    $white = imagecolorallocate($im, 255, 255, 255);
    $black = imagecolorallocate($im, 0, 0, 0);
    imagefill($im, 0, 0, $black);

 

imagecolorallocate seems to evaluate to false.

imagecolorallocate() returns an integer and the first call to it returns a zero value which will trigger the or die() statement.

 

There's even a warning in the documentation about how to test the value that is returned -

 

Warning

This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

 

Don't use or anything() to test if the function call failed. Use a proper if() statement.

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.