Aspose.Imaging for Java 22.8 - Release notes

Competitive features:

  • Review error messages in the entire library
  • Implement Jpeg saved quality estimation
Key Summary Category
IMAGINGJAVA-8192 Review error messages in the entire library Feature
IMAGINGJAVA-8191 Implement Jpeg saved quality estimation Feature
IMAGINGJAVA-8194 Incorrect extracting embedded bmp from Cdr image Enhancement
IMAGINGJAVA-8193 Incorrect saving Dicom image Enhancement
IMAGINGJAVA-8187 Can’t load PNG image Enhancement
IMAGINGJAVA-8186 SVG image Load method throws an exception Enhancement
IMAGINGJAVA-8184 Can’t convert WMZ to PNG Enhancement
IMAGINGJAVA-8182 Problem in EMF to SVG conversion Enhancement
IMAGINGJAVA-8181 Artifacts appear when load tiff file and save to tiff with parameters Enhancement
IMAGINGJAVA-8180 Incorrect export BMP -> JPG -> PNG Enhancement
IMAGINGJAVA-8178 Cannot export particular EPS image Enhancement

Public API changes:

Added APIs:

Please see corresponding cumulative API changes for Aspose.Imaging for .NET 22.8 version

Removed APIs:

Please see corresponding cumulative API changes for Aspose.Imaging for .NET 22.8 version

Usage Examples:

IMAGINGJAVA-8194 Incorrect extracting embedded bmp from Cdr image

try (Image image = Image.load("D:\\test.cdr"))
{
	EmbeddedImage[] bmp_image = ((VectorImage) image).getEmbeddedImages();
	int i = 0;
	for (EmbeddedImage im : bmp_image)
	{
		try
		{
			im.getImage().save(String.format("D:\\Cdr_image%d.bmp", i++));
		}
		finally
		{
			im.close();
		}
	}
}

IMAGINGJAVA-8193 Incorrect saving Dicom image

try (DicomImage image = (DicomImage)Image.load("IMG-0002-00007.dcm"))
{
    image.save("IMG-0002-00007.dcm.dcm");
}

IMAGINGJAVA-8192 Review error messages in the entire library

Proper exception message example:

// invalid CDR with no pages
try (Image image = Image.load("city-auto-skf_2.cdr"))
{
	// do something
}
catch (RuntimeException e)
{
	// check if error is happened because the image has no pages
	String correctMessage = "CDR document contains no pages.";
	if (!e.getCause().getMessage().equals(correctMessage))
	{
		throw e;
	}
}

IMAGINGJAVA-8191 Implement Jpeg saved quality estimation

try (JpegImage image = (JpegImage)Image.load("cat.jpg"))
{
    boolean isNotDefaultQuality = image.getJpegOptions().getQuality() != 75;
}

IMAGINGJAVA-8187 Can’t load PNG image

try (Image image = Image.load("input.png", new LoadOptions {{ setDataRecoveryMode(DataRecoveryMode.ConsistentRecover); }}))
{
    image.save("output.png");
}

IMAGINGJAVA-8186 SVG image Load method throws an exception

try (Image img = Image.load("new_black_2.svg");)
{
    System.out.println(img.getSize());
}

IMAGINGJAVA-8184 Can’t convert WMZ to PNG

Now WMZ export to raster PNG format works properly:

try (Image image = Image.load("image.wmz"))
{
    PngOptions options = new PngOptions();
	options.setVectorRasterizationOptions(new WmfRasterizationOptions()
        {{
            setPageHeight(image.getHeight());
            setPageWidth(image.getWidth());
        }});

    image.save("result.png", options);
}

IMAGINGJAVA-8182 Problem in EMF to SVG conversion

String baseFolder = "D:\\";
String file = "J_ORD042-I_0011.emf";
String inputFileName = baseFolder + file;
String outputFileName = inputFileName + ".svg";
try (Image image = Image.load(inputFileName))
{
    image.save(outputFileName, new SvgOptions());
}

IMAGINGJAVA-8181 Artifacts appear when load tiff file and save to tiff with parameters

try (RasterImage image = (RasterImage) Image.load("input.tiff"))
{
    XmpPacketWrapper xmp = image.getXmpData();

    if (xmp == null)
    {
        XmpHeaderPi xmpHeader = new XmpHeaderPi(UUID.randomUUID().toString());
        XmpTrailerPi xmpTrailer = new XmpTrailerPi(true);
        XmpMeta xmpMeta = new XmpMeta();

        xmp = new XmpPacketWrapper(xmpHeader, xmpTrailer, xmpMeta);

        image.setXmpData(xmp);
    }

    if (xmp.containsPackage("dc"))
    {
        for (XmpPackage xmpPackage : xmp.getPackages())
        {
            if (xmpPackage.getNamespaceUri().trim().equalsIgnoreCase("http://purl.org/dc/elements/1.1/"))
            {
                if (xmpPackage.containsKey("dc:keywords"))
                {
                    xmpPackage.set_Item("dc:keywords", "2021");
                }
                else
                {
                    xmpPackage.addValue("dc:keywords", "2021");
                }
            }
        }
    }
    else
    {
        XmpBasicPackage xmpPackage = new XmpBasicPackage("dc", "http://purl.org/dc/elements/1.1/");
        xmpPackage.addValue("dc:keywords", "2021");
        xmp.addPackage(xmpPackage);
    }

    image.save("output.tiff", new TiffOptions(TiffExpectedFormat.TiffLzwRgba));
}

IMAGINGJAVA-8180 Incorrect export BMP -> JPG -> PNG

Correct BMP -> JPEG -> PNG export example:

try (Image bmp = Image.load("bmp-image.bmp"))
{
	try (ByteArrayOutputStream jpegStream = new ByteArrayOutputStream())
	{
		bmp.save(jpegStream, new JpegOptions()
		{{
			setColorType(JpegCompressionColorMode.Rgb);
		}});

		try (Image jpeg = Image.load(new ByteArrayInputStream(jpegStream.toByteArray())))
		{
			jpeg.save("bmp-to-jpeg-to-png.png", new PngOptions()
			{{
				setColorType(PngColorType.TruecolorWithAlpha);
				setProgressive(true);
			}});
		}
	}
}

IMAGINGJAVA-8178 Cannot export particular EPS image

try (Image image = Image.load("test.eps"))
{
    image.save("output.png", new PngOptions());
}