Search by

innomedio / sulu-image-optimizer-bundle

innomedio

This package is abandoned and no longer maintained. The author suggests using the eekes/sulu-image-optimizer-bundle package instead.

Optimizes images before they are being uploaded and stored in the Sulu media library

Package info

github.com/innomedio/sulu-image-optimizer-bundle

Homepage

Type:symfony-bundle

pkg:composer/innomedio/sulu-image-optimizer-bundle

Statistics

Installs: 7 548

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

v3.1 2026-06-09 07:15 UTC

This package is auto-updated.

Last update: 2026-09-30 10:25:37 UTC


README

Warning

This bundle is abandoned and no longer maintained. It is replaced by eekes/sulu-image-optimizer-bundle.

The successor fixes the known problems of this bundle: an optimized image that turned out larger was stored anyway, square images were never resized, animated GIFs were flattened, and a failure or an image too large for the memory limit could break the upload. It also sanitizes SVG uploads, keeps a log of every upload in the Sulu admin, and can optimize the existing media library.

composer remove innomedio/sulu-image-optimizer-bundle
composer require eekes/sulu-image-optimizer-bundle

The configuration key and the bundle class changed. The steps are in docs/migrating.md of the new package. The two bundles cannot be installed together.

The successor supports Sulu 3 only. Projects on Sulu 2 can keep using v2.2 of this bundle, which stays installable but receives no fixes.

The documentation below describes the last release, v3.1.

This bundle optimizes and optionally resizes images before they're added to the Sulu media library.

Its especially useful when working with large files on shared hosting environments, where Sulu's default image processing (like cropping) may hit server resource limits.

✨ Features

  • Automatically optimizes uploaded images
  • Optional resizing to limit image dimensions
  • Option to ignore specific image types (e.g. GIFs)

📦 Installation

Install via Composer:

composer require innomedio/sulu-image-optimizer-bundle

Make sure the bundle is registered in config/bundles.php (usually automatic):

Innomedio\Sulu\ImageOptimizerBundle\InnomedioSuluImageOptimizerBundle::class => ['all' => true],  

⚙️ Configuration

Add the configuration to your Symfony config, e.g. in config/packages/innomedio_sulu_image_optimizer.yaml:

innomedio_sulu_image_optimize_config:
  enabled: true

  logger: 'monolog.logger.image_optimizer' # optional logger

  resize:
    enabled: true
    max_size: 4000 # pixels, based on the longest side

  ignore_types:
    - gif
    - webp

Configuration Reference

Option Type Default Description
enabled boolean true Whether optimization is active
logger string/null null (Optional) PSR logger service ID
ignore_types array [] List of image formats to skip optimization (e.g. gif, webp). Formats are detected from file content, not filename. Unsupported formats (e.g. bmp) are skipped automatically.
resize.enabled boolean true Whether resizing is active
resize.max_size integer 4000 Maximum width or height in pixels

🔧 How It Works

The bundle listens to image upload requests on Sulu routes like:

  • sulu_media.post_media
  • sulu_media.post_media_trigger

Once detected, it:

  1. Validates the file is an image
  2. Optionally skips optimization based on detected image format (ignore_types)
  3. Optimizes the file using Spatie Image Optimizer
  4. Optionally resizes the image if it exceeds the configured max_size
  5. Saves the modified image before it's passed to Sulu