Output image to browser or file

- « imageistruecolor

- imagelayereffect »

- PHP Manual
- GD and Image Functions
- Output image to browser or file

# imagejpeg

(PHP 4, PHP 5, PHP 7, PHP 8)

imagejpeg — Output image to browser or file

### Description

imagejpeg(GdImage `$image`, resource|string|null `$file` = `null`, int `$quality` = -1): bool

imagejpeg() creates a JPEG file from the given `image`.

### Parameters

`image`

  A GdImage object, returned by one of the image creation functions, such as imagecreatetruecolor().

`file`

  The path or an open stream resource (which is automatically closed after this function returns) to save the file to. If not set or `null`, the raw image stream will be output directly.

`quality`

  `quality` is optional, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default (`-1`) uses the default IJG quality value (about 75).

### Return Values

Returns `true` on success or `false` on failure.

Caution

However, if libgd fails to output the image, this function returns `true`.

### Errors/Exceptions

Throws a ValueError if `quality` is invalid.

### Changelog

Version | Description
--- | ---
8.4.0 | Now throws a ValueError if `quality` is invalid.
8.0.0 | `image` expects a GdImage instance now; previously, a valid `gd` resource was expected.

### Examples

Example #1 Outputting a JPEG image to the browser

    <?php
    // Create a blank image and add some text
    $im = imagecreatetruecolor(120, 20);
    $text_color = imagecolorallocate($im, 233, 14, 91);
    imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

    // Set the content type header - in this case image/jpeg
    header('Content-Type: image/jpeg');

    // Output the image
    imagejpeg($im);

    // Free up memory
    imagedestroy($im);
    ?>

The above example will output something similar to:

Example #2 Saving a JPEG image to a file

    <?php
    // Create a blank image and add some text
    $im = imagecreatetruecolor(120, 20);
    $text_color = imagecolorallocate($im, 233, 14, 91);
    imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

    // Save the image as 'simpletext.jpg'
    imagejpeg($im, 'simpletext.jpg');

    // Free up memory
    imagedestroy($im);
    ?>

Example #3 Outputting the image at 75% quality to the browser

    <?php
    // Create a blank image and add some text
    $im = imagecreatetruecolor(120, 20);
    $text_color = imagecolorallocate($im, 233, 14, 91);
    imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

    // Set the content type header - in this case image/jpeg
    header('Content-Type: image/jpeg');

    // Skip the file parameter using NULL, then set the quality to 75%
    imagejpeg($im, NULL, 75);

    // Free up memory
    imagedestroy($im);
    ?>

### Notes

> Note:

> If you want to output Progressive JPEGs, you need to set interlacing on with imageinterlace().

### See Also

- imagepng() - Output a PNG image to either the browser or a file
- imagegif() - Output image to browser or file
- imagewbmp() - Output image to browser or file
- imageinterlace() - Enable or disable interlace
- imagetypes() - Return the image types supported by this PHP build