Filters: Image optimiser

Maintained by Picture of Guy ThomasGuy Thomas
Resize images to a configurable maximum size. Delay the loading of images until visible in the viewport.
376 sites
33 fans

Image optimiser filter

The image optimiser filter is intended to solve the issue of high resolution images slowing down (and blocking) page loads.


  • Resize images that are greater than a maximum width and preserve aspect ratios and original images.
  • Resizes images in all filterable text - course content, user profile description, etc.
  • Allow for delayed loading of images (load when visible) with the option of specifying how many images should be loaded immediately before images are placeheld and loaded when in the view port and the page has fully loaded (eliminates blocking for other resources, e.g. javascript in the footer).

Example scenarios:

  • Course designer doesn't know how to resize images prior to upload and uploads a 6 mega pixel image when they don't require this resolution. The filter solves this issue by automatically resizing images to a specified maximum width (aspect ratios are preserved).

  • Course designer uploads 100s of images into a course label The filter can solve this issue by place holding images and making them load only when scrolled into the viewport.

  • Students using mobile data plans are finding their course page to be sluggish due to unnecessarily large images uploaded to their course. The filter can solve this issue by both placeholding images until scrolled into the viewport and then resizing the image which is served to the user.


For the filter to work, it must be enabled via Site administration / Plugins / Filters / Manage filters.

The filter settings area available via Site administration / Plugins / Filters / Image optimiser.

By default, the optimiser both place holds (load when visible) and resizes (maximum image width) to 800px.


Load on visible feature - images are place held and then loaded when visible in the view port.

Non destructive resizing - resampling is always done against the original image

Mobile page load speed WITHOUT the image optimiser

Mobile page load speed WITH the image optimiser (over twice as fast)

Note, the page is ready in half the time when the filter is enabled!


(c) Guy Thomas 2017

Licence GNU GPL v3 or later


Developed by Guy Thomas.

Note - for an up to date description of this plugin - please visit:


Screenshot #0
Screenshot #1


Picture of Guy Thomas
Guy Thomas (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • I Teach With Moodle
    Fri, Oct 20, 2017, 8:45 PM
    Hi Chris, thanks for the plugin, works great. I have witnessed strange behaviour for some images. See below for scenario
    - Moodle 3.3 - ImageOpt fully up-to-date
    - ImageOpt max width is set to 800px
    - Teacher uploads large image to label (3,000px wide), using Atto
    - Teacher manually resizes image to 250px wide
    - Teacher saves label
    - Picture is displayed at 800px wide (even though it should be 250px)
    Is that something you have witnessed before, or do you think it's something to do with my setup?
  • Picture of Guy Thomas
    Sat, Nov 4, 2017, 12:06 AM
    @Frederic Nevers - This is now fixed in the github master branch and the MOODLE_33_STABLE branch.
  • Picture of Joseph Liaw
    Sat, Nov 4, 2017, 3:34 AM
    Hi Guy:

    Thanks for your quick response and work on this great filter! I think there was the same glitch that Frederic saw on the 3.2 version--is that also pushed out on Github or should we wait for it to be pushed out on the official Moodle plugins Deployment update engine?

    Thanks again!


  • Picture of Guy Thomas
    Mon, Nov 6, 2017, 6:43 PM
    @Joe - I've updated the 3.2 version on github this morning.
  • Picture of Joseph Liaw
    Wed, Nov 8, 2017, 10:30 AM
    Installed your 3.2 update off of Github and it works perfectly....

    Thank you Guy--great plugin for building visually rich courses without sacrificing usability / precious bandwidth!
  • Picture of Guy Thomas
    Sat, Dec 9, 2017, 7:06 PM
    Thanks Alex, that's really kind of you.
  • I Teach With Moodle
    Wed, Mar 7, 2018, 2:39 PM
    Hi Guy,
    Sorry I had not noticed your reply a few months back. Thanks for fixing the issue.
  • Picture of Pat Sej
    Thu, Mar 14, 2019, 8:41 PM
    Hey Guy,

    This plugin sounds great!
    I just have some questions before using it.

    What is its future?
    Is it safe to use for production on a Moodle 3.5 and later versions?
    Was it created while you were working on Snap?
    Are you still maintaining it? Otherwise, does it exist alternatives?

    Thanks wink
  • Picture of Guy Thomas
    Fri, Mar 15, 2019, 5:12 PM
    @Pat Sej. I will check it out with Moodle 3.5 and 3.6 later today. Yes I created it around the same time I was working on Snap but I did it as a personal project. I will continue to maintain it.
  • Picture of Guy Thomas
    Fri, Mar 15, 2019, 5:13 PM
    @Pat Sej - there is already a Moodle 3.5 version if you click on 'versions'. Will check it with Moodle 3.6 later today.
  • Picture of Vishal E
    Fri, Feb 14, 2020, 2:57 PM
    Hello Guy,
    It looks like a great plugin. Will it work with Moodle 3.7?
  • Picture of Guy Thomas
    Mon, Apr 20, 2020, 6:44 PM
    @Vishal E. Sorry for the late reply. Best to just try it. I've released a version on github that works with Moodle 38 yesterday. The branch is MOODLE_38_STABLE.
  • Picture of Pat Sej
    Mon, Apr 27, 2020, 12:00 AM
    @Guy Thanks for your answers above (I did not see them earlier ...)
    I see that the Install button is not active for Moodle 3.8
    I suppose that when your branch MOODLE_38_STABLE will have been tested by the community, the button will be active, right?
    Thanks for your work BTW wink
  • Picture of Guy Thomas
    Sat, May 2, 2020, 5:48 PM
    @Pat - If you could test it and let me know if you find any bugs I will fix them. If not let me know if its working OK and I will publish a version to this page.
  • Picture of Steve Radford
    Mon, Jun 29, 2020, 10:03 PM
    Hi, can I ask whether this plugin has yet been approved for V3.8? The comments above seem to indicate it's OK, but we are reluctant to install plugins that are not verified as working for our Moodle version
1 2 3
Please login to post comments