PHPackages                             netwerkstatt/silverstripe-image-toolkit - 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. netwerkstatt/silverstripe-image-toolkit

ActiveSilverstripe-vendor-module

netwerkstatt/silverstripe-image-toolkit
=======================================

A Silverstripe module with various image manipulations (Watermark, AutoOrient, ColorOverlay, etc.) via Intervention Image.

1.0(1mo ago)021BSD-3-ClausePHPPHP ^8.2

Since Mar 16Pushed 1mo agoCompare

[ Source](https://github.com/wernerkrauss/silverstripe-image-toolkit)[ Packagist](https://packagist.org/packages/netwerkstatt/silverstripe-image-toolkit)[ RSS](/packages/netwerkstatt-silverstripe-image-toolkit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (3)Used By (1)

Silverstripe Image Toolkit
==========================

[](#silverstripe-image-toolkit)

This module provides a collection of image manipulations for Silverstripe CMS using Intervention Image V3. It's specifically designed for Silverstripe 6 and leverages the power of the Intervention Image library for various effects and optimizations.

Installation
------------

[](#installation)

```
composer require netwerkstatt/silverstripe-image-toolkit
```

Features
--------

[](#features)

- **Watermark**: Add a logo or image as a watermark. Supports flexible positioning, padding, opacity, and relative sizing. Now also stable against circular references when using `Image` objects or their IDs.
- **Auto-Orient**: Automatically corrects image orientation based on EXIF data (ideal for mobile uploads).
- **Color Overlay**: Places a semi-transparent color over an image (useful for banners and hero sections).

Configuration
-------------

[](#configuration)

The toolkit is automatically registered for `SilverStripe\Assets\Image` and `SilverStripe\Assets\Storage\DBFile`. You can customize default settings via YAML.

### Watermark Configuration

[](#watermark-configuration)

```
Netwerkstatt\ImageToolkit\Extension\Watermark:
  default_watermark_logo: 'themes/your-theme:images/watermark.png'
  default_watermark_opacity: 0.5
  default_watermark_position: 'bottom-right'
  default_watermark_padding: '5%'
  default_watermark_width: '25%'
```

Usage
-----

[](#usage)

In your templates or PHP code, you can use the toolkit methods on any `Image` or `DBFile` object.

### Watermark

[](#watermark)

Adds a watermark to the image. You can pass an `Image` object, an ID, or a path.

```
$Image.Watermark
$Image.Watermark($CustomLogo.ID, 'center', '10%', 0.5, '50%')
$Image.Watermark($CustomLogo.ID, 'bottom-right')
```

**Note:** Using the ID (`$Logo.ID`) is particularly stable as the object is only loaded when needed. However, this also prevents circular reference errors when passing whole objects.

### Auto-Orient (Alias: AutoOriented)

[](#auto-orient-alias-autooriented)

Corrects the orientation of an image based on its EXIF data.

```
$Image.AutoOrient
```

### Color Overlay (Alias: ColorOverlayed)

[](#color-overlay-alias-coloroverlayed)

Applies a color overlay. Perfect for making text more readable on images.

```
$Image.ColorOverlay('#000000', 0.4)
```

### Chaining

[](#chaining)

All methods are "fluent" and can be combined:

```
$Image.AutoOrient.ScaleWidth(1200).ColorOverlay('#333', 0.5).Watermark
```

Advanced: Watermark Logo Hook
-----------------------------

[](#advanced-watermark-logo-hook)

You can dynamically change the watermark logo (e.g., from `SiteConfig`) using the `updateWatermarkLogo` hook:

```
use SilverStripe\Core\Extension;

class MyImageExtension extends Extension
{
    public function updateWatermarkLogo(&$logo)
    {
        $siteConfig = \SilverStripe\SiteConfig\SiteConfig::current_site_config();
        if ($siteConfig->WatermarkLogoID) {
            $logo = $siteConfig->WatermarkLogo();
        }
    }
}
```

Requirements
------------

[](#requirements)

- PHP ^8.2
- Silverstripe Framework ^6
- Silverstripe Assets ^3

License
-------

[](#license)

See [LICENSE](LICENSE)

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance89

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~0 days

Total

2

Last Release

57d ago

Major Versions

0.2.1 → 1.02026-03-16

### Community

Maintainers

![](https://www.gravatar.com/avatar/ff3ee546a6d1b1092f1badf68523ba30f28dec7fce11254a8cb3aeb57c6202de?d=identicon)[wernerkrauss](/maintainers/wernerkrauss)

---

Top Contributors

[![wernerkrauss](https://avatars.githubusercontent.com/u/1043925?v=4)](https://github.com/wernerkrauss "wernerkrauss (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/netwerkstatt-silverstripe-image-toolkit/health.svg)

```
[![Health](https://phpackages.com/badges/netwerkstatt-silverstripe-image-toolkit/health.svg)](https://phpackages.com/packages/netwerkstatt-silverstripe-image-toolkit)
```

###  Alternatives

[silverstripe/framework

The SilverStripe framework

7213.5M2.5k](/packages/silverstripe-framework)[silverstripe/cms

The SilverStripe Content Management System

5163.4M1.3k](/packages/silverstripe-cms)[silverstripe/blog

A fresh take on blogging in Silverstripe set out to tackle the issue of a cluttered Site Tree.

104739.2k31](/packages/silverstripe-blog)[silverstripe/graphql

GraphQL server for SilverStripe models and other data

512.4M21](/packages/silverstripe-graphql)[silverstripe/admin

SilverStripe admin interface

262.6M325](/packages/silverstripe-admin)[silverstripe/silverstripe-omnipay

SilverStripe Omnipay Payment Module

38106.0k15](/packages/silverstripe-silverstripe-omnipay)

PHPackages © 2026

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