Provides CFML Image functions for Lucee
Docs: https://docs.lucee.org/categories/image.html
Issues: https://luceeserver.atlassian.net/issues/?jql=labels%20%3D%20%22Image%22
- WEBP support is now read and write in v2
Dump out imageFormats( true )
(v2 only) to see which formats / codecs are loaded and available
Version 2.0 includes the Twelve Monkeys ImageIO library
Version 2.0 supports the following commercial Image Libaries (.jars ) when available in Lucee's classpath (i.e lucee's /lib dir)
JDeli for example provides support the for HEIC format and write support for WEBP
General extension documentation is here.
Set up a working directory for Lucee development and clone repositories:
# create a working directory for lucee development
LUCEE_DEV_BASEDIR=~/projects/lucee-dev
mkdir -p "$LUCEE_DEV_BASEDIR"
# clone lucee, or fork then clone
cd "$LUCEE_DEV_BASEDIR"
git clone https://github.com/lucee/Lucee.git lucee
cd lucee
git checkout 6.0
# clone script runner repo, or fork then clone
cd "$LUCEE_DEV_BASEDIR"
git clone https://github.com/lucee/script-runner.git
# create a directory to house source for extensions
mkdir "$LUCEE_DEV_BASEDIR/extensions"
# clone this extension, or fork then clone
cd "$LUCEE_DEV_BASEDIR/extensions"
git clone https://github.com/lucee/extension-image.git
This should yield a structure as follows:
└── lucee-dev
├── extensions
│ └── extension-image
├── lucee
└── script-runner
Run build/tests:
# from within the images's source root
cd ~/projects/lucee-dev/extensions/extension-image/
# build/test
./build.sh
See general extension documentation.
Tests can be found in at least the following locations. (Look for files named with the pattern Image*.cfc
.)
- /tests
- https://github.com/lucee/Lucee/tree/6.0/test/functions
- https://github.com/lucee/Lucee/tree/6.0/test/general
On a headless Linux server, you will get a java.lang.reflect.InvocationTargetException
error if you don't have fonts installed
Please refer to LDEV-2619 various image functions crash on headless linux when font packages aren't installed for solution
Since Version 2, you can limit the image codecs being used via this.image.coder=['Lucee','TwelveMonkeys'];
in your Application.cfc
Supported codecs are:
["JDeli","Aspose","Gotson","TwelveMonkeys","ImageIO","Lucee","ApacheImaging","JAI"]
To test and profile codec support and performance, there is a new function ImageCoderInfo(image)