---
title: "Pictureino"
manual: "Imaginator"
version: "main"
permalink: "https://docs.typo3.org/permalink/schliesser/imaginator:migrations-pictureino@main"
source: "Migrations/Pictureino.rst"
rendered: "2026-10-13T11:21:46+00:00"
---

# Pictureino {#migrations-pictureino}

Imaginator is built on the **per-breakpoint aspect-ratio** idea pioneered by
[EXT:pictureino](https://extensions.typo3.org/extension/pictureino)
(`zeroseven/pictureino`). The two extensions **conflict** by design as they
register the same backend field. So they cannot run side by side:

**Swap the package**

```bash
composer remove zeroseven/pictureino
composer require schliesser/imaginator
```

## No database migration {#no-database-migration}

The aspect-ratio field is the **unprefixed** `aspect_ratio` column, the same
column pictureino used, so existing editor data is preserved as-is. There is no
schema change and no data migration to run.

## Template changes {#template-changes}

Replace the pictureino ViewHelper call with [\<i:image>](https://docs.typo3.org/permalink/schliesser/imaginator:usage-viewhelper@main).
The per-breakpoint `{alias: ratio}` map keys resolve to the configured
[breakpoints](https://docs.typo3.org/permalink/schliesser/imaginator:confval-conf-breakpoints@main), matching pictureino's behaviour:

**Fluid template**

```html
<html xmlns:i="http://typo3.org/ns/Schliesser/Imaginator/ViewHelpers"
      data-namespace-typo3-fluid="true">

    <i:image image="{data.image}"
             aspectRatio="{data.aspect_ratio}"
             alt="{data.header}"/>
</html>
```

After swapping templates, review the [configuration](https://docs.typo3.org/permalink/schliesser/imaginator:configuration@main). The
[ladder](https://docs.typo3.org/permalink/schliesser/imaginator:confval-conf-ladder@main), [format](https://docs.typo3.org/permalink/schliesser/imaginator:confval-conf-format@main) and
[processor](https://docs.typo3.org/permalink/schliesser/imaginator:confval-conf-processor@main) defaults differ from pictureino's.
