(PHP 4, PHP 5, PHP 7, PHP 8)
imagejpeg — Output image to browser or file
imagejpeg() creates a JPEG file from
the given image
.
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).
Returns true
on success or false
on failure.
However, if libgd fails to output the image, this function returns true
.
Version | Description |
---|---|
8.0.0 |
image expects a GdImage
instance now; previously, a valid gd resource was expected.
|
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);
?>
Note:
If you want to output Progressive JPEGs, you need to set interlacing on with imageinterlace().