Dynamic image server for web and print
This release makes a few changes for QIS to integrate more easily with an existing web site.
x-forwarded-for
header in the Apache access logs.well-known
directory and URL - for Let's Encrypt verification and other usesBug fixes:
running.md
for setting the ownership of host directories when using Docker on Linux (issue #28)QIS Standard Edition can now be run from an AMI at Amazon Web Services (AWS). This release adds a new document for how to run QIS at AWS or on Docker, along with a few related bug fixes.
This release removes the test_images
folder from the application bundle. This folder previously contained a mixture of images needed in development for testing along with a few sample images used in the online documentation. As the testing files are not normally needed they have been removed, while the required sample images have been improved and moved into a new samples
folder. This change reduces the application bundle size from 54MB to 16MB.
Other changes:
This release mostly addresses API behaviour that was either buggy, inconsistent, or not working as intended. There are also a few other fixes, listed below.
API changes:
404 not found
, 405 method not supported
, 301 redirect
(missing trailing slash) errors and many others now return JSON objects in the standard format instead of HTML error messagesimage
object was being returned as 3 different structures and has now been standardised. As well as the standard fields it now always includes the calculated fields: url
, download
, supported
, and filename
.image
object was sometimes being returned with the audit trail history
field present if (and only if) the file was newly detected on the server. This was not documented or intended and no longer happens.user
and owner
objects are no longer returned from the Portfolios functions. These were potentially leaking names and email addresses to users who should not have access to user information. The remaining user_id
and owner_id
fields can be used to look up user information if permitted.human_id
fieldhuman_id
field on portfolios is no longer allowed to contain any of the characters: %<>&.?:/
order_num
field now returns the correct value for the image moved (it was already correct for the others)status
parameter that can be used to request deleted records or to restore the old behaviour. The image list function is unchanged, it never returned deleted records.Other changes:
ico
files by default in the Premium editionOther bug fixes:
This is the first release of QIS that runs "out of the box" without requiring Quru's image processing library qismagick.so
. The image server can now run in 2 modes:
Basic edition (default mode, fully open source) - supports image resizing, cropping, rotation and the JPG, PNG, GIF and TIF file formats; supports all the JavaScript image viewers, gallery, carousel, the administration web interface, the API and all admin functions
Premium edition (optional upgrade) - available with the purchase of an annual subscription, installs an extra library to add color profile (ICC) support, colorspace conversion, overlays/watermarks, image <--> PDF conversion, support for digital camera RAW files and many other file types such as SVG. Commercial support options are also available from Quru for the premium edition.
The Basic edition uses the Python Pillow library for imaging operations, while the Premium edition instead uses the ImageMagick package along with Quru's qismagick.so
library. The application overview contains more information about the differences.
Other changes:
IMAGE_RESIZE_GAMMA_CORRECT
, defaulting to True
False
with the Pillow back-end for much faster image resizing, if speed is more important than color correctnessBug fixes:
tile
in a template caused various errors. This is not possible in the web interface but can be done using the API, and now works as expected.This release contains user interface and documentation improvements, and an optional new public demo/playground page for seeing the effect of different imaging operations.
Bug fixes:
Playground page:
There is a new public-facing demo/playground page that allows various imaging operations to be tried out against a sample image (or a folder of images). This feature is disabled by default. To enable it, add the following settings to your local_settings.py
file:
DEMO_IMAGE_PATH
- the path to either a single image or a folder of imagesDEMO_OVERLAY_IMAGE_PATH
- the path to a single image to use as an overlay/watermarkE.g.
# Enable the demo page at http://images.example.com/demo/
DEMO_IMAGE_PATH = "/test_images/cathedral.jpg"
DEMO_OVERLAY_IMAGE_PATH = "/test_images/quru470.png"
This release contains bug fixes and enhancements to the image upload page and API. A few configuration problems (mainly affecting Ubuntu 16 deployments) were also found following the move to Python 3, which are fixed in the documentation and Dockerfiles in this release.
The main changes are:
my/file.jpg
and my:file.jpg
.curl
.QIS v3.0.0 is a port of QIS v2.7 to run on Python 3.4 and above only. It contains a few tidy-ups, slightly better performance (around 10%) thanks to improvements in Python 3, but otherwise no major new features.
To upgrade an existing installation please follow the upgrading guide. For new installations see the install guide and Docker images.
The v2.x code (which supports Python 2.6 and 2.7), documentation and build scripts, can be found in the v2 branch but is not likely to receive any new features.
In response to a feature request, the back-end of the portfolios feature has been implemented. This allows the creation of a collection of images (like a virtual folder) that can be viewed together, altered together (e.g. resized to the same dimensions) and downloaded with or without changes as a single zip file.
There is a new rather basic web page for viewing a portfolio, but otherwise the front-end administration UI does not yet support the creation and management of portfolios.
For more information and a technical description of this new feature, see the portfolios specification. For examples of how to use the new API, see the API user guide.
This change has been fully integrated into the ongoing python3
branch, which will soon be released as QIS v3.0.
This release contains only revised build and packaging scripts, there are no functional changes to the application.
The pre-packaged Python library bundle has been renamed from dependencies.tar.gz
to QIS-libs-osname-version-platform.tar.gz
. Installation of this is now simpler than before, and binaries for popular platforms will be attached to the releases from this version onwards.
There is a new utility for querying the installed version of the application:
$ python /opt/qis/src/imageserver/__about__.py --version
2.6.5