Sobre el proyecto
image-optimizer de Spatie es una biblioteca PHP que reduce el tamaño de los archivos de imagen haciéndolos pasar por una cadena configurable de binarios de optimización externos. Los formatos compatibles son PNG, JPG, WEBP, AVIF, SVG y GIF. La imagen en la ruta indicada se sobrescribe con una versión optimizada, o se puede escribir una copia optimizada en una ruta de salida separada.
La instalación se realiza mediante Composer (`composer require spatie/image-optimizer`). El paquete detecta qué binarios de optimización están presentes en el sistema y los utiliza automáticamente. Las herramientas documentadas incluyen JpegOptim, Optipng, Pngquant 2, SVGO 1, Gifsicle, cwebp y avifenc, con instrucciones de instalación para Ubuntu/Debian, macOS (Homebrew) y Fedora/RHEL/CentOS.
Se documenta el comportamiento por formato: los JPG pasan por JpegOptim con calidad 85, eliminación de metadatos y codificación progresiva; los PNG por Pngquant 2 seguido de Optipng; los SVG se minifican con SVGO usando los valores predeterminados menos los plugins cleanupIDs y removeViewBox; los GIF usan Gifsicle con nivel de optimización 3; los WEBP usan cwebp con ajustes de alto esfuerzo; los AVIF usan avifenc con opciones de calidad constante y ajuste SSIM. El README señala que SVGO puede romper algunos SVG.
El uso se centra en `OptimizerChainFactory::create()` y `optimize()`. Se puede establecer un tiempo de espera por optimizador con `setTimeout()`. El manejo de errores es configurable: de forma predeterminada los fallos se registran y la cadena continúa, mientras que `throws()` relanza y aborta, y un callable puede inspeccionar la excepción, el optimizador y la imagen para decidir si continuar. Se pueden construir cadenas personalizadas añadiendo instancias de optimizadores con sus propias opciones, y los optimizadores personalizados pueden implementar la interfaz `Optimizer` o extender `BaseSelfHandlingOptimizer` para casos sin binario, como llamar a una API externa. Se puede adjuntar un logger PSR-3 para registrar qué optimizadores y comandos se ejecutan y su salida.
El README incluye ejemplos de conversiones con reducciones de tamaño de archivo y valores DSSIM para JPG, WEBP, AVIF, PNG y SVG. También señala integraciones con Laravel, WordPress y SilverStripe. El proyecto tiene licencia MIT y es mantenido por Spatie.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.