Decodes a JPEG file to a GdImage.
What It Does
imagecreatefromstring() decodes bytes; this function expects a file or wrapper path. JPEG is lossy and has no alpha channel; invalid files can fail decoding.
Requirements and Compatibility
GD extension. Sample images and fonts referred to by filename must be supplied locally. Use PHP 8 GdImage objects where applicable; optional decoders depend on the installed build.
Syntax, Inputs and Results
The arguments shown below are concrete values for this function; their types and ranges matter. The example checks return data rather than assuming that every operation succeeds.
Example 1: Basic Use
Call the function with a concrete input and inspect its result.
<?php
if (!extension_loaded('gd')) throw new RuntimeException('GD extension required');
if (!is_file(__DIR__ . '/photo.jpg')) throw new RuntimeException('Provide the sample file /photo.jpg');
$image = imagecreatefromjpeg(__DIR__ . '/photo.jpg');
if (!$image instanceof GdImage) throw new RuntimeException('Unable to create image');
echo imagesx($image), ' x ', imagesy($image);
Example 2: Another Case
Change the inputs to observe the behavior on another case.
<?php
if (!extension_loaded('gd')) throw new RuntimeException('GD extension required');
if (!is_file(__DIR__ . '/landscape.jpg')) throw new RuntimeException('Provide the sample file /landscape.jpg');
$image = imagecreatefromjpeg(__DIR__ . '/landscape.jpg');
if (!$image instanceof GdImage) throw new RuntimeException('Unable to create image');
echo imagesx($image), ' x ', imagesy($image);
// Ensure the source is an actual file of the advertised format.
Practical Example
Use the result to create an output, validate a condition, or complete an image workflow.
<?php
if (!extension_loaded('gd')) throw new RuntimeException('GD extension required');
if (!is_file(__DIR__ . '/landscape.jpg')) throw new RuntimeException('Provide the sample file /landscape.jpg');
$image = imagecreatefromjpeg(__DIR__ . '/landscape.jpg');
if (!$image instanceof GdImage) throw new RuntimeException('Unable to create image');
echo imagesx($image), ' x ', imagesy($image);
imagepng($image, __DIR__ . "/decoded-imagecreatefromjpeg.png");
For production, apply the compatibility and edge-case limits described below.
Important Behavior and Edge Cases
JPEG is lossy and has no alpha channel; invalid files can fail decoding.
Comparison with Related Functions and Tools
| Subject | Key difference |
|---|---|
| imagecreatefromjpeg() | imagecreatefromstring() decodes bytes; this function expects a file or wrapper path. |
Common Beginner Mistakes
| Mistake | Correct approach |
|---|---|
| Calling imagecreatefromjpeg() without its required input or supported extension | Check the extension, supply valid arguments, and handle false or exceptions according to the function. |
| Assuming imagecreatefromjpeg() guarantees a valid or safe image | JPEG is lossy and has no alpha channel; invalid files can fail decoding. |
| Confusing the operation with a related API | imagecreatefromstring() decodes bytes; this function expects a file or wrapper path. |
Key Takeaways
- Decodes a JPEG file to a GdImage.
- JPEG is lossy and has no alpha channel; invalid files can fail decoding.
- Choose the companion API described in the comparison table when the job differs.
Use these examples as a starting point, then validate the result with the actual PHP build, dependencies and inputs used by your application.