.. 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 Image .. _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.