Estamos actualizando el sitio. Durante unos días es posible que veas fallos de diseño o de traducción. La documentación sigue disponible: si una página se ve mal, recárgala más tarde.

Inicio image 3.x Salida de imagen

Salida de imagen

3.x 7 de mar. de 2026

#Codificar imágenes

#Codificar imágenes con objetos codificadores

public Image::encode(EncoderInterface $encoder = new AutoEncoder()): EncodedImage

Este método codifica la imagen con el objeto codificador proporcionado. Actualmente están disponibles los siguientes codificadores.

  • Intervention\Image\Encoders\AutoEncoder::class
  • Intervention\Image\Encoders\JpegEncoder::class
  • Intervention\Image\Encoders\WebpEncoder::class
  • Intervention\Image\Encoders\PngEncoder::class
  • Intervention\Image\Encoders\GifEncoder::class
  • Intervention\Image\Encoders\AvifEncoder::class
  • Intervention\Image\Encoders\BmpEncoder::class
  • Intervention\Image\Encoders\TiffEncoder::class
  • Intervention\Image\Encoders\Jpeg2000Encoder::class
  • Intervention\Image\Encoders\HeicEncoder::class

Si no se proporciona un codificador, se utilizará AutoEncoder, que intentará detectar el formato de salida automáticamente según el formato original de la imagen.

#Parámetros

Nombre Tipo Descripción
encoder (optional) EncoderInterface Codificador de imagen con el que se transforma la imagen

#Ejemplo

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\AutoEncoder;
use Intervention\Image\Encoders\WebpEncoder;
use Intervention\Image\Encoders\GifEncoder;

// Crear una nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(Driver::class);

// Leer imagen jpeg
$image = $manager->read('images/example.jpg');

// Codificar en el mismo formato que se leyó originalmente
$encoded = $image->encode(); // Intervention\Image\EncodedImage

// Codificar en el mismo formato que se leyó originalmente pero con cierta calidad
$encoded = $image->encode(new AutoEncoder(quality: 10)); // Intervention\Image\EncodedImage

// Codificar jpeg como formato webp
$encoded = $image->encode(new WebpEncoder(quality: 65)); // Intervention\Image\EncodedImage

// El resultado será en formato gif
$encoded = $image->encode(new GifEncoder()); // Intervention\Image\EncodedImage

#Codificar imágenes por tipo de medio (MIME)

public Image::encodeByMediaType(null|string|MediaType $type = null, mixed ...$options): EncodedImage

Codifica una imagen al tipo de medio (MIME) especificado.

Si no se especifica un tipo de medio, la imagen se codificará al formato correspondiente al tipo MIME de la imagen originalmente leída.

#Parámetros

Nombre Tipo Descripción
type (optional) null, string or MediaType Tipo de medio (MIME) destino en el que se codifica la imagen. Por defecto se usa el tipo de medio original.
options (optional) mixed Parámetros de opción según el formato de salida.

#Ejemplo

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\MediaType;

// Crear nueva instancia de ImageManager y leer imagen webp
$image = new ImageManager(Driver::class)
    ->read('images/example.webp');

// El resultado codificado será el mismo que el original
$encoded = $image->encodeByMediaType();

// El resultado codificado será el mismo que el original pero con baja calidad
$encoded = $image->encodeByMediaType(quality: 10);

// El resultado codificado será un JPEG progresivo
$encoded = $image->encodeByMediaType('image/jpeg', progressive: true, quality: 20);

// El resultado será en formato gif
$encoded = $image->encodeByMediaType('image/gif');

// O usar un miembro del enum MediaType
$encoded = $image->encodeByMediaType(MediaType::IMAGE_GIF);

#Codificar imágenes por ruta de archivo

public Image::encodeByPath(null|string $path = null, mixed ...$options): EncodedImage

Codifica la imagen en el formato representado por la extensión de la ruta de archivo indicada. Puede añadir parámetros opcionales para definir las opciones del codificador. Si no se proporciona una ruta, la imagen se codificará en el formato de la imagen leída originalmente.

Tenga en cuenta que este método no escribe en la ruta proporcionada, sino que solo utiliza esta información para extraer el formato de destino.

#Parámetros

Nombre Tipo Descripción
path (optional) null or string Ruta de archivo desde la cual se extrae el formato de destino. Por defecto se usa la ruta de archivo original.
options (optional) mixed Parámetros de opción según el formato de salida.

#Ejemplo

use Intervention\Image\ImageManager;

// image file path
$path = 'images/example.png';

// Crear nueva instancia de ImageManager y leer desde la ruta
$image = new ImageManager::imagick() ->read($path);

// El formato codificado será el mismo que el original
$encoded = $image->encodeByPath();

// El formato resultante será el mismo que el original pero con baja calidad
$encoded = $image->encodeByPath(quality: 10);

// El formato resultante será jpeg porque "jpg" representa el formato jpeg
$encoded = $image->encodeByPath('images/example.jpg', progressive: true, quality: 10);

// El resultado será en formato gif
$encoded = $image->encodeByPath('images/example.gif');

#Codificar imágenes por extensión de archivo

public Image::encodeByExtension(null|string|FileExtension $extension = null, mixed ...$options): EncodedImage

Codifica la imagen en el formato representado por la extensión de archivo proporcionada. Defina la calidad de la imagen con el segundo parámetro opcional. Si no se proporciona una extensión, la imagen se codificará en el formato de la imagen leída originalmente.

#Parámetros

Nombre Tipo Descripción
extension (optional) null, string or FileExtension Extensión de archivo que determina el formato de destino. Por defecto se usa la extensión de archivo original.
options (optional) mixed Parámetros de opción según el formato de salida.

#Ejemplo

use Intervention\Image\ImageManager;

// Crear nueva instancia de ImageManager y leer imagen
$image = new ImageManager::gd() ->read('example.jpg');

// El formato resultante será el mismo que el original
$encoded = $image->encodeByExtension();

// El formato resultante será el mismo que el original pero con baja calidad
$encoded = $image->encodeByExtension(quality: 10);

// El resultado será en formato jpeg
$encoded = $image->encodeByExtension('jpg', progressive: true, quality: 10);

// El resultado será en formato PNG
$encoded = $image->encodeByExtension('png');

// Alternativamente usar un miembro del enum FileExtension
$encoded = $image->encodeByExtension(FileExtension::PNG);

#Codificar con métodos abreviados

Existe un método abreviado correspondiente para cada formato de imagen, que puede llamarse directamente desde el objeto Image.

#Codificar en formato JPEG

public Image::toJpeg(int $quality = 75, bool $progressive = false, null|bool $strip = null): EncodedImage

Codifica la instancia de imagen actual en formato JPEG con la calidad especificada, que va de 0 (baja calidad) a 100 (mejor calidad).

#Parámetros

Nombre Tipo Descripción
quality (optional) integer Calidad de codificación entre 0 y 100. Por defecto 75.
progressive (optional) boolean Opción para codificar la imagen en formato JPEG progresivo. Desactivada por defecto.
strip bool (optional) Determina si los metadatos de la imagen deben eliminarse durante la codificación. Valor por defecto según la Configuración del driver.

#Ejemplo

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(Driver::class);

// Leer imagen gif
$image = $manager->read('images/example.gif');

// Codificar datos jpeg
$encoded = $image->toJpeg(90); // Intervention\Image\EncodedImage

#Codificar en formato WebP

public Image::toWebp(int $quality = 75, null|bool $strip = null): EncodedImage

Codifica la instancia de imagen actual en el formato gráfico WebP con la calidad especificada, que va de 0 (baja calidad) a 100 (mejor calidad).

#Parámetros

Nombre Tipo Descripción
quality (optional) integer Calidad de codificación. Por defecto 75.
strip bool (optional) Determina si los metadatos de la imagen deben eliminarse durante la codificación. Valor por defecto según la Configuración del driver.

#Ejemplo

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(new Driver());

// Leer imagen gif
$image = $manager->read('images/example.gif');

// Codificar datos webp
$encoded = $image->toWebp(60); // Intervention\Image\EncodedImage

#Codificar en formato PNG

public Image::toPng(bool $interlaced = false, bool $indexed = false): EncodedImage

Este método codifica la instancia de imagen actual en formato PNG. Se pueden definir más detalles del formato mediante los parámetros. Es posible establecer el método de codificación en interlaced, lo que permite que la imagen se represente de forma progresiva; por defecto se usa el guardado secuencial no entrelazado.

La segunda opción indexed determina si la imagen se guarda con una paleta de colores indexada (limitada). Con esta opción, los colores se reducen automáticamente, lo que resulta en tamaños de archivos más pequeños, pero puede conllevar pérdida de calidad en la coloración. Por defecto, el codificador siempre produce formato truecolor.

Tenga en cuenta que el driver GD para salida PNG con paleta de colores indexada solo admite transparencia binaria. Esto significa que los colores pueden ser completamente transparentes o completamente opacos. La semitransparencia no es posible con GD.

Nombre Tipo Descripción
interlaced (optional) bool Opción para codificar la imagen entrelazada. Desactivada por defecto.
indexed (optional) bool Opción para codificar en PNG con una paleta de colores indexada. Por defecto true color (no indexado).
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(Driver::class);

// Leer imagen jpg
$image = $manager->read('images/example.jpg');

// Codificar como imagen PNG truecolor
$encoded = $image->toPng(); // Intervention\Image\EncodedImage

// Codificar en formato png con una paleta de colores indexada
$encoded = $image->toPng(indexed: true); // Intervention\Image\EncodedImage

#Codificar en formato GIF

public Image::toGif(bool $interlaced = false): EncodedImage

Codifica la instancia de imagen actual en formato GIF.

Precaución: la firma ha cambiado en la versión 3.1 al eliminar el parámetro color_limit

Nombre Tipo Descripción
interlaced (optional) bool Opción para codificar la imagen entrelazada. Desactivada por defecto.
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(new Driver());

// Leer imagen jpg
$image = $manager->read('images/example.jpg');

// Codificar datos gif
$encoded = $image->toGif(); // Intervention\Image\EncodedImage

#Codificar en formato Windows Bitmap

public Image::toBitmap(): EncodedImage

Codifica la instancia de imagen actual en formato Windows Bitmap.

Precaución: la firma ha cambiado en la versión 3.1 al eliminar el parámetro color_limit

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(Driver::class);

// Leer imagen jpg
$image = $manager->read('images/example.jpg');

// Codificar datos bitmap
$encoded = $image->toBmp(); // Intervention\Image\EncodedImage

#Codificar en formato de archivo de imagen AV1 (AVIF)

public Image::toAvif(int $quality = 75): EncodedImage

Codifica la instancia de imagen actual en formato AVIF con la calidad especificada, que va de 0 (baja calidad) a 100 (mejor calidad).

Nombre Tipo Descripción
quality (optional) integer Calidad de codificación. Por defecto 75.
strip bool (optional) Determina si los metadatos de la imagen deben eliminarse durante la codificación. Valor por defecto según la Configuración del driver.
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(new Driver());

// Leer imagen jpg
$image = $manager->read('images/example.jpg');

// Codificar imagen avif 
$encoded = $image->toAvif(60); // Intervention\Image\EncodedImage

#Codificar en formato TIFF

public Image::toTiff(int $quality = 75): EncodedImage

Codifica la instancia de imagen actual en formato TIFF con la calidad especificada, que va de 0 (baja calidad) a 100 (mejor calidad).

Nombre Tipo Descripción
quality (optional) integer Calidad de codificación. Por defecto 75.
strip bool (optional) Determina si los metadatos de la imagen deben eliminarse durante la codificación. Valor por defecto según la Configuración del driver.
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(new Driver());

// Leer imagen jpg
$image = $manager->read('images/example.jpg');

// Codificar en formato tiff
$encoded = $image->toTiff(60); // Intervention\Image\EncodedImage

#Codificar en formato JPEG 2000

public Image::toJpeg2000(int $quality = 75): EncodedImage

Codifica la instancia de imagen actual en formato JPEG 2000 con la calidad especificada, que va de 0 (baja calidad) a 100 (mejor calidad).

Nombre Tipo Descripción
quality (optional) integer Calidad de codificación. Por defecto 75.
strip bool (optional) Determina si los metadatos de la imagen deben eliminarse durante la codificación. Valor por defecto según la Configuración del driver.
use Intervention\Image\ImageManager;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = ImageManager::imagick();

// Leer imagen en formato png
$image = $manager->read('images/example.png');

// Codificar en formato jpeg 2000
$encoded = $image->toJpeg2000(90); // Intervention\Image\EncodedImage

#Codificar en formato HEIC

public Image::toHeic(int $quality = 75): EncodedImage

Codifica la instancia de imagen actual en formato HEIC con la calidad especificada, que va de 0 (baja calidad) a 100 (mejor calidad).

Nombre Tipo Descripción
quality (optional) integer Calidad de codificación. Por defecto 75.
strip bool (optional) Determina si los metadatos de la imagen deben eliminarse durante la codificación. Valor por defecto según la Configuración del driver.
use Intervention\Image\ImageManager;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = ImageManager::imagick();

// Leer png format
$image = $manager->read('images/example.jpg');

// Codificar imagen heic
$encoded = $image->toHeic(60); // Intervention\Image\EncodedImage

#Manejo de datos de imagen codificados

Los métodos de codificación mencionados devuelven un objeto Intervention\Image\EncodedImage. Con esta instancia puede decidir cómo proceder con los datos codificados.

#Convertir datos de imagen codificados a cadena

public EncodedImage::__toString(): string

Este método puede usarse para obtener los datos binarios de la imagen como una cadena. Esto es particularmente útil si se van a procesar con otras bibliotecas o transferir a un almacenamiento de datos remoto (como S3).

#Ejemplo

use Intervention\Image\ImageManager;
use Just\An\Example\CloudStorage;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = ImageManager::imagick();

// Redimensionar imagen gif
$image = $manager
    ->read('images/example.gif')
    ->scale(height: 200);

// Codificar en formato jpeg y convertir el resultado a string
$imagedata = (string) $image->toJpeg();

// Guardar en el servicio de datos imaginario
CloudStorage::put('example.jpg', $imagedata);

#Guardar datos de imagen codificados en el sistema de archivos

public EncodedImage::save(string $filepath, mixed ...$options): void

Este método escribe los datos del objeto en la ruta indicada en el sistema de archivos local. La estructura de carpetas correspondiente debe existir y ser escribible.

#Parámetros

Nombre Tipo Descripción
filepath string Ruta al archivo en el sistema de archivos.
options (optional) mixed Parámetros de opción según el formato de salida.

#Ejemplo

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(Driver::class);

// Leer imagen gif
$image = $manager->read('images/example.gif');

// Guardar archivo JPEG progresivo con baja calidad
$encoded = $image->toJpeg()->save('images/test.jpg', progressive: true, quality: 10);

#Crear esquema Data URI

public EncodedImage::toDataUri(): string

Este método toma los datos de imagen ya codificados y los envuelve en un esquema data URI codificado en base64.

#Ejemplo

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(new Driver());

// Leer imagen gif
$image = $manager->read('images/example.gif');

// Codificar a data URI de gif
$data_uri = $image->toGif()->toDataUri();

#Transformar imagen codificada a puntero de archivo

public EncodedImage::toFilePointer(): resource

Cree un recurso de puntero de archivo para manejar los datos de imagen codificados.

#Ejemplo

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(Driver::class);

// Leer imagen gif
$image = $manager->read('images/example.gif');

// Crear puntero de archivo
$pointer = $image->toJpeg()->toFilePointer();

#Obtener tipo de medio (MIME) de una imagen codificada

public EncodedImage::mediaType(): string

Este método devuelve el tipo de medio (MIME) de la imagen codificada.

#Ejemplo

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(new Driver());

// Leer imagen gif
$image = $manager->read('images/example.gif');

// "image/jpeg"
$mimetype = $image->toJpeg()->mediaType();

#Escribir imágenes directamente

#Codificar y guardar combinado

public Image::save(null|string $path = null, mixed ...$options): ImageInterface

Este método facilita iniciar el proceso de guardado directamente desde el objeto image sin tener que pasar por un objeto EncodedImage, y codifica y escribe los datos de la imagen en una sola llamada.

El formato resultante de la imagen se define por la extensión de archivo de la ruta proporcionada. Si no se proporciona una ruta, se usará el formato de la imagen leída originalmente. Defina la calidad de la imagen usando el segundo parámetro.

La imagen codificada se guarda en la ruta indicada en el sistema de archivos local. La estructura de carpetas correspondiente debe existir y ser escribible.

A diferencia de los demás métodos de codificación, save() devuelve un objeto Image en lugar de un objeto EncodedImage.

#Parámetros

Nombre Tipo Descripción
path (optional) null or string Ruta de archivo desde la cual se extrae el formato de destino. Por defecto se usa la ruta original.
options (optional) mixed Parámetros de opción según el formato de salida.

#Ejemplo

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// Crear nueva instancia de ImageManager con el driver deseado
$manager = new ImageManager(Driver::class);

// Leer imagen jpeg
$image = $manager->read('images/example.jpg');

// Sobrescribir el archivo en "images/example.jpg" con baja calidad
$image->save(quality: 10);

// Codificar jpeg como png y guardar en un archivo nuevo
$image->save('images/example.png');

// Codificar y guardar JPEG progresivo con baja calidad
$image->save('images/example.jpg', quality: 10, progressive: true);