Supported Formats
Image & color formats
2.3M Downloads / Month
Open Source MIT License
2.3M Downloads / Month
Open Source MIT License
The readable image formats depend on the choosen driver (GD or Imagick) and your local configuration. By default Intervention Image currently supports the following major formats.
JPEG | PNG | GIF | TIF | BMP | ICO | PSD | WebP | |
---|---|---|---|---|---|---|---|---|
GD | ✔️ | ✔️ | ✔️ | - | ✔️ ** | - | - | ✔️ * |
Imagick | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ * |
* For WebP support GD driver must be used with PHP 5 >= 5.5.0 or PHP 7 in order to use imagewebp(). If Imagick is used, it must be compiled with libwebp for WebP support.
** For BMP support GD driver must be used with PHP >= 7.2.0 or PHP 8 in order to use imagewebp().
See documentation of make method to see how to read image formats from different sources, respectively encode and save to learn how to output images.
Intervention Image supports four ways to define colors for its methods.
By default the pickColor method returns the RGB value as integer. You can also pass a color in this format to all other methods.
// pick color and fill image
$color = Image::make('public/foo.jpg')->pickColor(10, 10);
$img->fill($color);
// pass colors of the GD Library
$im = imagecreatefrompng('public/foo.jpg');
$rgb = imagecolorat($im, 10, 15);
$img->fill($rgb);
Pass the RGB integers of a color as a PHP array with or without an alpha value between 1 (opaque) and 0 (full transparency).
// color in array format
$img->fill([255, 0, 0]);
// color in array format with alpha value
$img->fill([255, 255, 255, 0.5]);
You can pass colors as a hex triplet used normally in HTML and CSS. It's possible to use six-digit format as well as the shorthand form.
// shorthand hex color
$img->fill('#ccc');
// six-digit hex color
$img->fill('#cccccc');
// works without prefix
$img->fill('cccccc');
RGB string values in functional notations are also supported. If you want to include an alpha value use the RGBA format like in the following example.
// rgb color value in integer range
$img->fill('rgb(255, 0, 0)');
// rgba color value with alpha
$img->fill('rgba(255, 0, 0, 1)');
// rgba color value with transparent alpha
$img->fill('rgba(0, 0, 0, 0.5)');
Edit