imagegif

&gd.image.output;

&reftitle.description; `bool` `imagegif` `GdImage` `image` ``resource``string``null```file`&null;

`imagegif` creates the GIF file in `file` from the image `image`. The `image` argument is the return from the `imagecreate` or `imagecreatefrom*` function.

The image format will be GIF87a unless the image has been made transparent with `imagecolortransparent`, in which case the image format will be GIF89a.

&reftitle.parameters;

&gd.image.description;

`file`

- &gd.image.path;

&reftitle.returnvalues;

&return.success;

&gd.return.trueonerror;
&reftitle.changelog;

&Version; | &Description;
&gd.changelog.image-param;

&reftitle.examples;

### Outputting an image using `imagegif`

    <?php
    // Create a new image instance
    $im = imagecreatetruecolor(100, 100);

    // Make the background white
    imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);

    // Draw a text string on the image
    imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);

    // Output the image to browser
    header('Content-Type: image/gif');

    imagegif($im);
    imagedestroy($im);
    ?>

### Converting a PNG image to GIF using `imagegif`

    <?php

    // Load the PNG
    $png = imagecreatefrompng('./php.png');

    // Save the image as a GIF
    imagegif($png, './php.gif');

    // Free from memory
    imagedestroy($png);

    // We're done
    echo 'Converted PNG image to GIF with success!';
    ?>

&reftitle.notes;

The following code snippet allows you to write more portable PHP applications by auto-detecting the type of GD support which is available. Replace the sequence `header ("Content-Type: image/gif"); imagegif ($im);` by the more flexible sequence:

    <?php
    // Create a new image instance
    $im = imagecreatetruecolor(100, 100);

    // Do some image operations here

    // Handle output
    if(function_exists('imagegif'))
    {
        // For GIF
        header('Content-Type: image/gif');

        imagegif($im);
    }
    elseif(function_exists('imagejpeg'))
    {
        // For JPEG
        header('Content-Type: image/jpeg');

        imagejpeg($im, NULL, 100);
    }
    elseif(function_exists('imagepng'))
    {
        // For PNG
        header('Content-Type: image/png');

        imagepng($im);
    }
    elseif(function_exists('imagewbmp'))
    {
        // For WBMP
        header('Content-Type: image/vnd.wap.wbmp');

        imagewbmp($im);
    }
    else
    {
        imagedestroy($im);

        die('No image support in this PHP server');
    }

    // If image support was found for one of these
    // formats, then free it from memory
    if($im)
    {
        imagedestroy($im);
    }
    ?>

You can use the function `imagetypes` for checking the presence of the various supported image formats:

    <?php
    if(imagetypes() & IMG_GIF)
    {
        header('Content-Type: image/gif');
        imagegif($im);
    }
    elseif(imagetypes() & IMG_JPG)
    {
        /* ... etc. */
    }
    ?>

&reftitle.seealso;

- `imagepng`
- `imagewbmp`
- `imagejpeg`
- `imagetypes`