PHPackages                             wwwision/neos-dummyimage - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. wwwision/neos-dummyimage

ActiveNeos-package[Image &amp; Media](/categories/media)

wwwision/neos-dummyimage
========================

Package that allows for rendering dynamic dummy images in the Neos backend.

1.3.0(3y ago)714.5k8[1 issues](https://github.com/bwaidelich/Wwwision.Neos.DummyImage/issues)GPL-3.0+PHPPHP ^7.1 || ^8.1

Since Jan 12Pushed 1y ago1 watchersCompare

[ Source](https://github.com/bwaidelich/Wwwision.Neos.DummyImage)[ Packagist](https://packagist.org/packages/wwwision/neos-dummyimage)[ GitHub Sponsors](https://github.com/sponsors/bwaidelich)[ Fund](https://www.paypal.me/bwaidelich)[ RSS](/packages/wwwision-neos-dummyimage/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (4)Dependencies (1)Versions (5)Used By (0)

Wwwision.Neos.DummyImage
========================

[](#wwwisionneosdummyimage)

Package that allows for rendering dynamic dummy images in the [Neos](https://www.neos.io) backend.

Background
----------

[](#background)

Do you use one of the many dummy image providers like dummyimage.com or lorempixel.com to render placeholder images in your Neos backend?

If so this package might be useful to you: It provides a custom `DummyImage` class implementing the Image and Asset interfaces of the `Neos.Media` package allowing to use it as a replacement to render dynamic placeholder images that can be resized and cropped.

This is particularity useful when used in conjunction with Fusion.

Usage
-----

[](#usage)

You can easily install this package via [composer](https://getcomposer.org):

```
composer require wwwision/neos-dummyimage

```

### Example: Basic Fusion implementation

[](#example-basic-fusion-implementation)

```
someImage = Neos.Neos:ImageTag {
    asset = Wwwision.Neos.DummyImage:DummyImage {
        width = 600
        height = 500
    }
}

```

Will render an image like this:

[![Dummy image, unmodified](/ExampleImage.svg "Dummy image, unmodified")](/ExampleImage.svg)

Resizing works just like with regular images:

```
someImage = Neos.Neos:ImageTag {
    asset = Wwwision.Neos.DummyImage:DummyImage {
        width = 600
        height = 500
    }
    maximumWidth = 500
    maximumHeight = 450
}

```

[![Dummy image, resized](/ExampleImage_resized.svg "Dummy image, resized")](/ExampleImage_resized.svg)

..and so does cropping

```
someImage = Neos.Neos:ImageTag {
    asset = Wwwision.Neos.DummyImage:DummyImage {
        width = 600
        height = 500
    }
    width = 500
    height = 450
    allowCropping = true
}

```

[![Dummy image, resized and cropped](/ExampleImage_cropped.svg "Dummy image, resized and cropped")](/ExampleImage_cropped.svg)

### Example: Responsive images with Atomic Fusion

[](#example-responsive-images-with-atomic-fusion)

This package can be used together with [Atomic Fusion](https://www.neos.io/blog/atomic-fusion.html) components allowing them to centralize resizing/cropping logic. An implementation of a `ResponsiveImage` atom could look something like this:

```
prototype(Your.Package:Component.Atom.ResponsiveImage) < prototype(PackageFactory.AtomicFusion:Component) {

    @styleguide {
        title = 'Responsive Image'
        description = 'Image with alternative sizes for different breakpoints'

        props {
            image = Wwwision.Neos.DummyImage:DummyImage {
                width = 1000
                height = 800
            }
        }
        propSets {
            'flexible width and height' {
                width = 400
                height = 350
                altText = 'Lorem ipsum dolor'
                allowCropping = true
                responsiveImages = Neos.Fusion:RawArray {
                    large = Neos.Fusion:RawArray {
                        minWidth = 1025
                        imageWidth = 600
                        imageHeight = 500
                    }
                    medium = Neos.Fusion:RawArray {
                        minWidth = 769
                        imageWidth = 500
                        imageHeight = 420
                    }
                }
            }
            'fixed height' {
                width = 400
                height = 350
                allowCropping = true
                responsiveImages = Neos.Fusion:RawArray {
                    large = Neos.Fusion:RawArray {
                        minWidth = 1025
                        imageWidth = 600
                    }
                    medium = Neos.Fusion:RawArray {
                        minWidth = 769
                        imageWidth = 500
                    }
                }
            }
            'fixed width' {
                width = 400
                height = 350
                allowCropping = true
                responsiveImages = Neos.Fusion:RawArray {
                    large = Neos.Fusion:RawArray {
                        minWidth = 1025
                        imageHeight = 500
                    }
                    medium = Neos.Fusion:RawArray {
                        minWidth = 769
                        imageHeight = 420
                    }
                }
            }
        }
    }

    # API
    image = null
    width = null
    height = null
    altText = null
    allowCropping = true
    responsiveImages = Neos.Fusion:RawArray
    classNames = null
    # /API

    renderer.@context {
        _sourceSets = Neos.Fusion:Collection {
            collection = ${props.responsiveImages}
            itemName = 'responsiveImage'
            itemRenderer = Neos.Fusion:Value {
                @context.responsiveImageUri = Neos.Neos:ImageUri {
                    asset = ${props.image}
                    width = ${responsiveImage.imageWidth ? responsiveImage.imageWidth : props.width}
                    height = ${responsiveImage.imageHeight ? responsiveImage.imageHeight : props.height}
                    allowCropping = ${props.allowCropping}
                }
                value = ${''}
            }
        }
        _defaultImageUri = Neos.Neos:ImageUri {
            asset = ${props.image}
            width = ${props.width}
            height = ${props.height}
            allowCropping = ${props.allowCropping}
        }
    }

    renderer = afx`

            {_sourceSets}

    `
}

```

License
-------

[](#license)

Licensed under GPLv3+, see [LICENSE](LICENSE)

###  Health Score

39

—

LowBetter than 85% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity33

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~279 days

Total

4

Last Release

1153d ago

PHP version history (2 changes)1.0.0PHP ^7.1

1.1.0PHP ^7.1 || ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/307571?v=4)[Bastian Waidelich](/maintainers/bwaidelich)[@bwaidelich](https://github.com/bwaidelich)

---

Top Contributors

[![bwaidelich](https://avatars.githubusercontent.com/u/307571?v=4)](https://github.com/bwaidelich "bwaidelich (9 commits)")[![daniellienert](https://avatars.githubusercontent.com/u/642226?v=4)](https://github.com/daniellienert "daniellienert (2 commits)")[![christophlehmann](https://avatars.githubusercontent.com/u/4953689?v=4)](https://github.com/christophlehmann "christophlehmann (1 commits)")

### Embed Badge

![Health badge](/badges/wwwision-neos-dummyimage/health.svg)

```
[![Health](https://phpackages.com/badges/wwwision-neos-dummyimage/health.svg)](https://phpackages.com/packages/wwwision-neos-dummyimage)
```

###  Alternatives

[neos/form-builder

Flow Form Framework integration into Neos CMS

19358.8k19](/packages/neos-form-builder)[jonnitto/plyr

Plyr.io for Neos.io

1136.5k2](/packages/jonnitto-plyr)[dl/gallery

Neos plugin to easily render image galleries

1416.9k2](/packages/dl-gallery)[shel/neos-image-checker

Image editor with customisable checks for Neos CMS

106.2k](/packages/shel-neos-image-checker)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
