Compress and Decompress data in Java
JDeli is a fast Java compression library written in pure Java.
Compression and decompression in Java using a couple of lines of code
// Decompress byte[]
final ASCII85FilterOptions options = new ASCII85FilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final byte[] raw_data, final ASCII85FilterOptions options);
// Decompress InputStream
final ASCIIHexFilterOptions options = new ASCIIHexFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final InputStream inputStream, final ASCIIHexFilterOptions options, final OutputStream outputStream);
// Decompress byte[]
final ASCIIHexFilterOptions options = new ASCIIHexFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final byte[] raw_data, final ASCIIHexFilterOptions options);
// Decompress InputStream
final ASCIIHexFilterOptions options = new ASCIIHexFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final InputStream inputStream, final ASCIIHexFilterOptions options, final OutputStream outputStream);
// Deflate byte[]
final FlateFilterOptions options = new FlateFilterOptions();
options.setMode(FilterOptions.FilterMode.COMPRESS);
JDeli.filter(final byte[] raw_data, final FlateFilterOptions options);
// Inflate byte[]
final FlateFilterOptions options = new FlateFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final byte[] raw_data, final FlateFilterOptions options);
// Deflate InputStream
final FlateFilterOptions options = new FlateFilterOptions();
options.setMode(FilterOptions.FilterMode.COMPRESS);
JDeli.filter(final InputStream inputStream, final FlateFilterOptions options, final OutputStream outputStream);
// Inflate InputStream
final FlateFilterOptions options = new FlateFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final InputStream inputStream, final FlateFilterOptions options, final OutputStream outputStream);
// Compress byte[]
final CCITTOptions options = new CCITTFilterOptions();
options.setMode(FilterOptions.FilterMode.COMPRESS);
JDeli.filter(final byte[] raw_data, final CCITTFilterOptions options);
// Decompress byte[]
final CCITTFilterOptions options = new CCITTFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final byte[] raw_data, final CCITTFilterOptions options);
// Compress InputStream
final CCITTOptions options = new CCITTFilterOptions();
options.setMode(FilterOptions.FilterMode.COMPRESS);
JDeli.filter(final InputStream inputStream, final CCITTFilterOptions options, final OutputStream outputStream);
// Decompress InputStream
final CCITTFilterOptions options = new CCITTFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final InputStream inputStream, final CCITTFilterOptions options, final OutputStream outputStream);
// Decompress byte[]
final DCTFilterOptions options = new DCTFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final byte[] raw_data, final DCTFilterOptions options);
// Decompress InputStream
final DCTFilterOptions options = new DCTFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final InputStream inputStream, final DCTFilterOptions options, final OutputStream outputStream);
// Decompress byte[]
final JBIG2FilterOptions options = new JBIG2FilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final byte[] raw_data, final JBIG2FilterOptions options);
// Decompress InputStream
final JBIG2FilterOptions options = new JBIG2FilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final InputStream inputStream, final JBIG2FilterOptions options, final OutputStream outputStream);
// Decompress byte[]
final JPXFilterOptions options = new JPXFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final byte[] raw_data, final JPXFilterOptions options);
// Decompress InputStream
final JPXFilterOptions options = new JPXFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final InputStream inputStream, final JPXFilterOptions options, final OutputStream outputStream);
// Compress byte[]
final LZWFilterOptions options = new LZWFilterOptions();
options.setMode(FilterOptions.FilterMode.COMPRESS);
JDeli.filter(final byte[] raw_data, final LZWFilterOptions options);
// Decompress byte[]
final LZWFilterOptions options = new LZWFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final byte[] raw_data, final LZWFilterOptions options);
// Compress InputStream
final LZWFilterOptions options = new LZWFilterOptions();
options.setMode(FilterOptions.FilterMode.COMPRESS);
JDeli.filter(final InputStream inputStream, final LZWFilterOptions options, final OutputStream outputStream);
// Decompress InputStream
final LZWFilterOptions options = new LZWFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final InputStream inputStream, final LZWFilterOptions options, final OutputStream outputStream);
// Decompress byte[]
final RunLengthFilterOptions options = new RunLengthFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final byte[] raw_data, final RunLengthFilterOptions options);
// Decompress InputStream
final RunLengthFilterOptions options = new RunLengthFilterOptions();
options.setMode(FilterOptions.FilterMode.DECOMPRESS);
JDeli.filter(final InputStream inputStream, final RunLengthFilterOptions options, final OutputStream outputStream);
JDeli is the only Java library to include all these features...
ImageIO integration
- Works transparently with existing code
- No DLLs or 3rd party code used
- Any feature can be enabled/disabled
Change image format
- Direct conversion
- Translate any supported formats
- Process/modify image during conversion
Why use JDeli when there are Open-source image libraries?
1.
2.
3.
4.
5.
6.
Trusted by Enterprise Companies around the World

“I was looking specifically for a Java-based compression technique, I'm happy because it's taking up less space on the server.”
- Kevin Lauder (ISC Engineering Senior Manager)
Extend Java capabilities
(works with your existing code!)
1.
2.
3.
Try JDeli for Free
How do you achieve such good performance? So many companies attempting writing image codecs in Java end up in far slower performance or claim better performance requires native code.
- David E. (Lead developer and founder of jAlbum)
Key Benefits
High Performance
JDeli encoders and decoders are faster than alternatives, making JDeli perfect for applications where performance matters.
File Security
The software runs securely on your servers. It makes no callback or access to the cloud so critical customer data is always secure.
Simple installation
Provides a simple set of static methods to decompress/compress data streams and implements Input/OutputStream implementations
Ongoing development
Nightly and stable builds with regular new features and an expanding range of compression formats supported.
Premium support
Support is provided quickly and directly by our in-house JDeli Developers on email or via our online portal.
No third party libraries
JDeli does not use any third-party or system dependencies, avoiding security flaws in other software and JVM crashes from statically linked libraries.
We replaced all our various image processing code with JDeli, which allowed us to smoothly migrate to Java 11. The support from IDR solutions is just great. Whenever we came across a strange image from our customers which JDeli couldn't read properly, IDR fixed it in less than a day.
- Developer in SME Financial Services Company
Straightforward Pricing That Works for You
Server License | Distribution License | Custom License | |
---|---|---|---|
Price | $1,600 USD/ year per server | $5,400 USD/ year per application | $15,000 USD/ year |
Usage | Run on cloud or on premise server with up to 12 cores | Distribute JDeli in a named application (not Microservice) | Distribute JDeli in a named application or Microservice |
License | Standard shrink-wrapped EULA license | Standard shrink-wrapped EULA license | Option to customise EULA license |
Non-Production Test and Development Servers |
Included | Included | Included |
Included Support | Standard support via email/service portal | Standard support via email/service portal | Premium support via email/service portal/ Zoom |
New Releases Access | ✓ | ✓ | ✓ |
High priority tickets | Up to 3 high priority support tickets | Up to 3 high priority support tickets | Up to 12 high priority support tickets |
Source Code Access | - | - | ✓ |
Free Consultancy | - | - | Up to 5 hours free consultancy or development time |
Development plan update Call | - | - | Quarterly |
Not ready to buy? You may also Try JDeli for Free or Ask a Question