Assembly Image Gem
Overview
This gem contains classes used by the Stanford University Digital Library to create JP2 image derivatives.
Requires image processing software - see prerequisites section below.
Notes
- The gem assumes that the user context in which it is executed has write access to the 'tmp' folder.
This is to create the temporary tiffs used; we need temporary tiffs to reliably compress the image using KDUcompress, which doesn’t support arbitrary image types
- If any errors occur during JP2 generation for any reason, a runtime exception will be thrown with a description of the error.
- If an image is passed in with a color profile that cannot be determined, an exception will be thrown. This can commonly occur in basic test TIFs that are black/white and have no profile, so beware during testing.
Usage
To use the JP2 creation method, you first instantiate the image object with an input image and then operate on it.
require 'assembly-image'
input_image = Assembly::Image.new('/full/path/to/file.tif')
output = input_image.create_jp2(output: '/full/path/to/output.jp2')
Running tests
bundle exec rspec
Prerequisites
- Kakadu Proprietary Software Binaries - for JP2 generation
- Libvips
- Exiftool - upstream dependency of assembly-objectfile (used by specs to check mimetype of produced jp2, and because there is no libvips package available for circleci that speaks jp2)
Kakadu
Download and install demonstration binaries from Kakadu:
http://kakadusoftware.com/downloads/
Libvips
Note: libvips may require a significant amount of space for temporary files. The location for this can be controlled by the TMPDIR environment variable.
Mac
brew install libvips
Exiftool
Linux
Download latest version from: http://www.sno.phy.queensu.ca/~phil/exiftool
tar -xf Image-ExifTool-
cd Image-ExifTool-
perl Makefile.PL
make test
sudo make install
Mac
brew install exiftool