What does it stand for?
JBIG2 stands for Joint Bi-level Image Experts Group.
What is the difference between JBIG and JBIG2?
JBIG2 is a more advanced version of JBIG, offering improved compression efficiency, broader image support, and more improved features including progressive transmission and lossy compression. JBIG is also mainly used for bi-level images whereas this format supports grayscale and colour images, in addition to bi-level.
How does JBIG2 compress data?
It achieves data compression by using symbol substitution. Additionally, it encodes the image data compactly using arithmetic coding. Overall, it focuses on identifying and encoding repetitive elements in bi-level images to achieve high compression ratios.
How do I use this image format?
JBIG2 is mainly used for lossless compression of bi-level images, resulting in smaller file sizes without sacrificing image quality. It is often used for compressing scanned documents within PDF files, optimising efficient storage and transmission while maintaining image quality. It is also widely used in document management systems for organisations handling large amounts of scanned paperwork. It is also used as a tool for preserving historical documents and manuscripts in digital formats.
You can read this article to learn how JBig2 is used to display images on a PDF file. You can also learn more about this compression standard on the JPEG website.
Are you a Java Developer working with Image files?
// Read an image
BufferedImage bufferedImage = JDeli.read(dicomImageFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(heicImageFile);
// Write an image
JDeli.write(bufferedImage, "heic", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpegImageFile);
// Write an image
JDeli.write(bufferedImage, "jpeg", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpeg2000ImageFile);
// Write an image
JDeli.write(bufferedImage, "jpx", outputStreamOrFile);
// Write an image
JDeli.write(bufferedImage, "pdf", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(pngImageFile);
// Write an image
JDeli.write(bufferedImage, "png", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(tiffImageFile);
// Write an image
JDeli.write(bufferedImage, "tiff", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(webpImageFile);
// Write an image
JDeli.write(bufferedImage, "webp", outputStreamOrFile);
Why do developers choose JDeli over free alternatives?
- Works with newer image formats such as AVIF, HEIC, JPEG XL, WEBP
- Better support than alternatives for JPEG, PNG, TIFF.
- Prevent JVM crashes caused by native code in other image libraries
- Better performance than other popular Java image libraries