New Addon: ImageResize

I wrote an addon to resize uploaded images automatically. It might share some behavior with ImageStyles, but I wanted to replace the uploaded images with smaller ones. A client tends to upload giant images and everytime my scripts try to create thumbnails, e. g. after cleaning the cache, it takes ages to process them.


Related discusson


A copy of the original file is stored in /uploads/full/filename.jpg. The default file will be replaced with the resized file. From now on, you don’t have to create thumbnails from 8MB sized files again, but you are still able to use the original file, if you want to.

If users upload very large images, it will take a while to process the files.

There is no option in the assets manager to choose the original file, but your api autput has two additional keys:

original keys:

"path": "/2019/07/02/filename.jpg",
"title": "DSC07504.JPG",

extra keys:

"sizes": {
    "full": {
        "path": "/full/filename.jpg",
        "width": 4912,
        "height": 3264,
        "size": 4390912
"resized": true,


Use the GUI or add options to /config/config.yaml.

If you set maxWidth or maxHeight to 0 (zero), the value will be ignored.

    enabled: true                 # boolean, default: false
    keepOriginal: true            # boolean, default: true
    moveOriginalTo: original      # string, default: "full"
    maxWidth: 1024                # int, default: 1920
    maxHeight: 1024               # int, default: 0
    method: bestFit               # string, default: bestFit
    quality: 80                   # default: 100

Hi @raffaelj
I’d like to use this addon which is exactly what I need. Before I go ahead I wanted to know if you anticipate this to be compatible with the Cloud Storage addon?

Not sure if it is related but I get an error. Below is reponse of the /upload request.

Any idea?


<br />
<b>Warning</b>:  imagesx() expects parameter 1 to be resource, null given in <b>/var/www/html/lib/vendor/claviska/simpleimage/src/claviska/SimpleImage.php</b> on line <b>457</b><br />
<br />
<b>Warning</b>:  imagesy() expects parameter 1 to be resource, null given in <b>/var/www/html/lib/vendor/claviska/simpleimage/src/claviska/SimpleImage.php</b> on line <b>416</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /var/www/html/lib/vendor/claviska/simpleimage/src/claviska/SimpleImage.php:457) in <b>/var/www/html/bootstrap.php</b> on line <b>256</b><br />
<!doctype html>
<html lang="en" class="app-page-500">
    <meta charset="UTF-8">
    <title>Internal Server Error</title>
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link href="/assets/app/css/style.css?ver=0.11.0" type="text/css" rel="stylesheet"></head>
<body class="uk-height-viewport uk-flex uk-flex-middle">

    <div class="uk-container uk-container-center uk-text-center uk-animation-slide-bottom">

        <img src="/assets/app/media/icons/emoticon-sad.svg" width="150" height="150">

        <p class="uk-text-large uk-margin-large uk-text-bold">Uuuups, something went wrong.</p>


@gnagnu I don’t think, that it is compatible with the cloud storage. I used functions like mkdir and file_put_contents, which should be replaced with something like $app->filestorage->write().

I’m not experienced with external cdn, yet, so I can’t really test it.

Thanks @raffaelj I will try and update here if I find a solution.

@gnagnu The addon should now be compatible with the CloudStorage addon, but I wasn’t able to test it, yet.

Version 0.2.0 has new features and I rewrote a lot of the code.