.. include:: /Includes.rst.txt
.. _usage:
=====
Usage
=====
This chapter shows practical examples for integrating
responsive images into your Fluid templates and for operating
the command-line tools that ship with the extension.
.. _usage-namespace:
Register the namespace
======================
Add the ViewHelper namespace at the top of your Fluid
template or register it globally:
.. code-block:: html
:caption: Inline namespace declaration
{namespace nr=Netresearch\NrImageOptimize\ViewHelpers}
.. _usage-basic-example:
Basic responsive image
======================
.. code-block:: html
:caption: Simple responsive image with quality setting
.. _usage-responsive-srcset:
Responsive width-based srcset
=============================
Enable width-based ``srcset`` generation with a ``sizes``
attribute for improved responsive image handling. This is
opt-in per usage.
.. code-block:: html
:caption: Enable responsive srcset with default variants
.. _usage-custom-variants:
Custom width variants
---------------------
.. code-block:: html
:caption: Specify custom breakpoints for srcset
.. _usage-output-comparison:
Output comparison
=================
**Legacy mode** (``responsiveSrcset=false`` or not set):
.. code-block:: html
:caption: Density-based 2x srcset output
**Responsive mode** (``responsiveSrcset=true``):
.. code-block:: html
:caption: Width-based srcset output
.. _usage-fetchpriority:
Fetch priority for Core Web Vitals
===================================
Use the ``fetchpriority`` attribute to hint the browser
about resource prioritization, improving Largest Contentful
Paint (LCP) scores:
.. code-block:: html
:caption: High priority for above-the-fold hero image
.. _usage-cli:
Command-line tools
==================
Both commands read the FAL index directly and process eligible
image files (``image/jpeg``, ``image/gif``, ``image/png``) on
online storages. Per-file storage permission evaluation is
temporarily disabled and restored in a ``finally`` block so
long-running CLI runs don't leak state across iterations or
require a BE user context.
.. _usage-cli-optimize:
Bulk optimize images
--------------------
The ``nr:image:optimize`` command compresses every eligible
PNG, GIF, and JPEG file across all storages (or a restricted
subset) using the installed optimizer binaries. The original
file is replaced in place only when the tool produces a
smaller result.
.. code-block:: bash
:caption: Preview what would be processed
vendor/bin/typo3 nr:image:optimize --dry-run
.. code-block:: bash
:caption: Compress storage 1 with lossy JPEG quality 85
vendor/bin/typo3 nr:image:optimize \
--storages=1 \
--jpeg-quality=85 \
--strip-metadata
Options:
``--dry-run``
Only analyze; do not modify files.
``--storages``
Restrict to specific storage UIDs. Accepts repeated
occurrences or a comma-separated list.
``--jpeg-quality``
Lossy JPEG quality 0--100. Omit for lossless JPEG
optimization.
``--strip-metadata``
Remove EXIF and comments when the tool supports it.
.. _usage-cli-analyze:
Analyze optimization potential
------------------------------
The ``nr:image:analyze`` command estimates how much disk
space could be saved by running ``nr:image:optimize`` or by
downscaling oversized originals. It is purely heuristic --
no external binaries are invoked, so it runs quickly even on
large installations.
.. code-block:: bash
:caption: Report potential for storage 1
vendor/bin/typo3 nr:image:analyze --storages=1
Options:
``--storages``
Restrict to specific storage UIDs.
``--max-width`` / ``--max-height``
Target display box (default 2560 x 1440). Images larger
than this box are assumed to be downscaled and the
estimate factors in the area reduction.
``--min-size``
Skip files smaller than this many bytes (default
512000). Prevents noise from already-tiny images.