Page History
...
In the filter.plugins section of your dspace.cfg file, uncomment the ImageMagick media filter definition.
...
This will activate the following settings which are already present in dspace.cfg:
Code Block |
---|
org.dspace.app.mediafilter.ImageMagickImageThumbnailFilter = ImageMagick Image Thumbnail, \ org.dspace.app.mediafilter.ImageMagickPdfThumbnailFilter = ImageMagick PDF Thumbnail |
These media filters contain the following configuration propertiesseveral properties which can be configured.
Thumbnail Dimensions
The following properties are used to define the dimensions of the generated thumbnails.:
Code Block |
---|
# maximum width and height of generated thumbnails thumbnail.maxwidth = 80 thumbnail.maxheight = 80 |
...
Overwriting Existing Thumbnails
The The ImageMagick media filters can differentiate thumbnails created by the DSpace default thumbnail generator and thumbnails that were manually uploaded by a user. The media filter reads the bitstream description field to make this determination. A A regular expression can be provided to define the set of thumbnails that should be overwritten by the ImageMagick thumbnail generator. Thumbnail descriptions matching this pattern will be overwritten even if the -f option is not passed to the filter media process.
...
The ImageMagick media filter will use the bitstream description field to identify bitstreams that it has created using the following setting. Bitstreams Bitstreams containing this label will be overwritten only if the -f filter is applied.
...
Thumbnail descriptions that do not match either of the patterns listed above are presumed to be manually uploaded thumbnails. These thumbnails will not be replaced even if the -f option is passed to the filter media process.
Flatten
DSpaces DSpace uses the JPEG as format for thumbnails. While JPEG doesn't support transparency, PDF, PNG and other formats doesdo. As those formats are used as outgoing material in DSpace, DSpace has to care about transparency during the generation of the thumbnails. In combination combinations of special specific versions of ImageMagick and Ghostscript it may occur , that completely transparent areas will become black. As a solution ImageMagick recommends to flatten images extracted from PDFs before they are stored as JPEG.
Since DSpace 5.2 the ImageMagick media filter flatten flattens thumbnails extracted from PDFs. If you run in to problems you lead back to into problems caused by flattening of the extracted images, you can switch the flattening off by setting the following property in dspace.cfg to false:
Code Block |
---|
org.dspace.app.mediafilter.ImageMagickThumbnailFilter.flatten = false |
ICC Profiles
PDFs optimized for physical printing most probably often use the CMYK color schemes. While most Printers work with CMYK colors, monitors use RGB color schemes. Following that it is a good idea to convert CMYK color schemes to RGB when creating RGB. Furthermore color space. On the web, however, the de facto color system is sRGB. By default, DSpace's ImageMagick-based thumbnailing system will create thumbnails that use the same color space as the source PDF. Most web browsers are not able to correctly display images that use the CMYK color space, which leads to images with visibly inaccurate colors. Furthermore, the JSPUI currently does not support thumbnails using the display of thumbnails that use the CMYK color schemes space (see DS-2834).
If you are using ghostscript at least in Ghostscript version 9 DSpace can create thumbnails that use RGB even if the source PDF was using CMYK. For the transformation from CMYK to RGB ghostscript needs ICC profilesor above, it is possible for DSpace to correctly convert images from CMYK to sRGB by providing it with appropriate ICC color profiles to use during thumbnail creation. Default ones are provided by most Ghostscript installations from (version 9 upwardsor above). The following configuration options tells tell DSpace where those ICC porfiles are located. Giving ICC profiles to ImageMagick is optional. If the configuration properties in DSpace are unset, no profiles will be supplied to ImageMagick, which won't convert the thumbnailsprofiles are located.
Code Block |
---|
# org.dspace.app.mediafilter.ImageMagickThumbnailFilter.cmyk_profile = /usr/share/ghostscript/9.18/iccprofiles/default_cmyk.icc # org.dspace.app.mediafilter.ImageMagickThumbnailFilter.srgb_profile = /usr/share/ghostscript/9.18/iccprofiles/default_rgb.icc |
You may need to adjust those paths for your OS or the version of Ghostscript that you have.
Providing ICC profiles to ImageMagick is optional. If these configuration properties are unset, no profiles will be supplied to ImageMagick, and thumbnails produced from PDFs using the CMYK color space will also use CMYK. The transformation from CMYK to RGB is optional, but keep in mind that thumbnails using CMYK will cause problems if you use JSPUI and display thumbnails on browse and search pages (see DS-2834).
Additional Customization
The ImageMagick conversion software provides a large number of conversion options. Subclasses Subclasses of these media filters could be written to take advantage of the additional conversion properties available in the software.
Note: The PDF thumbnail generator is hard-coded to generate a thumbnail from the first page of the PDF.
Possible Errors / Issues
"convert.im6: not authorized" errors
On Ubuntu (possibly other OSes), you may see errors like these when attempting to generate PDF thumbnails:
Code Block |
---|
ERROR filtering, skipping bitstream:
Item Handle: 1234/5678
Bundle Name: ORIGINAL
File Size: 30406135
Checksum: c1df4b3a4755e9bed956383b61fc5042 (MD5)
Asset Store: 0
org.im4java.core.CommandException: org.im4java.core.CommandException: convert.im6: not authorized `/tmp/impdfthumb6294641076817830415.pdf' @ error/constitute.c/ReadImage/454. |
These may be caused by a change in your ImageMagick policy configuration on your server.
In Ubuntu, the default "policy.xml" was recently updated to exclude all Ghostscript formats (including PDF, PS, etc). See this ticket: https://bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563
- This exclusion was implemented to workaround a security vulnerability in Ghostscript reported here: https://www.kb.cert.org/vuls/id/332928
- This vulnerability looks like it may have been fixed in Ghostscript v9.25: https://www.ghostscript.com/doc/9.25/News.htm (Still pending verification – see launchpad ticket linked above)
The newly added lines in the /etc/ImageMagick/policy.xml
are these ones:
Code Block |
---|
<!-- disable ghostscript format types --> <policy domain="coder" rights="none" pattern="PS" /> <policy domain="coder" rights="none" pattern="EPS" /> <policy domain="coder" rights="none" pattern="PDF" /> <policy domain="coder" rights="none" pattern="XPS" /> |
If you wish to re-enable ImageMagick to process Ghostscript format types, you can simply comment out those lines in the configuration file. Be aware that, as the fix to this vulnerability is not yet verified, you should only do so at your own risk.