-
Notifications
You must be signed in to change notification settings - Fork 793
FAQ
The image reading and writing functionality of Thumbnailator is dependent on the capability of the Java Image I/O API which the library uses.
By default, Java 6 and beyond support reading and writing of JPEG, PNG, GIF, BMP and WBMP formats; Java 5 did not support writing GIF files.
List of supported formats for each Java release:
The Image I/O API has a plug-in mechanism to support additional image formats.
As Thumbnailator uses the Image I/O API, by using additional Image I/O plug-ins, it is possible to support more formats from within Thumbnailator.
For example, the TwelveMonkeys ImageIO library provides additional support for many image formats which are not by default in the Java runtime.
Thumbnailator needs to load the original image in order to resize the image.
This requires (roughly speaking) at least double of width * height * 4
bytes of heap space.
For example a 20 megapixel image requires 160 MB of heap.
If the Java Virtual Machine does have enough heap allocated to it, you'll likely encounter OutOfMemoryError
s.
You'll need to adjust the JVM heap memory based on the expected image sizes that your application will handle.
How to configure the JVM heap is outside the scope of the Thumbnailator project. Please consult your JVM documentation on how to configure it.
There is a temporary workaround (not guaranteed to always work) to reduce the necessary memory.
This workaround can be enabled by adding the -Dthumbnailator.conserveMemoryWorkaround=true
JVM option.
However, it can cause quality reduction in the final thumbnail.
More information about this workaround can be found here.