package com.rgi.suite.cli;
import javax.activation.MimeType;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
/**
* Created by matthew.moran on 7/10/15.
*/
public final class HeadlessUtils
{
private HeadlessUtils()
{
}
/**
* returns an image writer for the supplied image type.
*
* @return
*/
private static ImageWriter getImageWriter(final MimeType imageFormat)
{
return ImageIO.getImageWritersByMIMEType(imageFormat.toString())
.next();
}
/**
* created an image writer parameter object.
*
* @return
*/
public static ImageWriteParam getImageWriteParameter(final int quality, final String compressionType,
final MimeType imageFormat)
{
final ImageWriteParam imageWriteParameter = HeadlessUtils.getImageWriter(imageFormat)
.getDefaultWriteParam();
final Float compressionQualityValue = (float)((quality) / 100.00);
if(compressionType != null
&& imageWriteParameter.canWriteCompressed())
{
imageWriteParameter
.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
imageWriteParameter.setCompressionType(compressionType.toUpperCase());
imageWriteParameter
.setCompressionQuality(compressionQualityValue);
return imageWriteParameter;
}
return null;
}
}