This gem contains classes used by the Stanford University Digital Library to create JP2 image derivatives.
Requires image processing software - see prerequisites section below.
- 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.
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') # generate a new JP2 in the specified location
bundle exec rspec
- 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)
Download and install demonstration binaries from Kakadu: http://kakadusoftware.com/downloads/
Note: libvips may require a significant amount of space for temporary files. The location for this can be controlled by the TMPDIR environment variable.
brew install libvips
Download latest version from: http://www.sno.phy.queensu.ca/~phil/exiftool
tar -xf Image-ExifTool-#.##.tar.gz
cd Image-ExifTool-#.##
perl Makefile.PL
make test
sudo make install
brew install exiftool