use of com.github.jaiimageio.jpeg2000.J2KImageWriteParam in project alliance by codice.
the class Jpeg2000ServiceImpl method createJpeg.
@Override
public byte[] createJpeg(BufferedImage bufferedImage, int blockWidth, int blockHeight) throws IOException {
J2KImageWriter writer = createWriter();
J2KImageWriteParam writeParams = (J2KImageWriteParam) writer.getDefaultWriteParam();
setCommonWriteParams(writeParams);
writeParams.setTilingMode(ImageWriteParam.MODE_EXPLICIT);
writeParams.setTiling(blockWidth, blockHeight, 0, 0);
writeParams.setSOP(true);
return encodeToByteArray(bufferedImage, writer, writeParams);
}
use of com.github.jaiimageio.jpeg2000.J2KImageWriteParam in project alliance by codice.
the class NitfPreStoragePlugin method renderToJpeg2k.
private byte[] renderToJpeg2k(final BufferedImage bufferedImage) throws IOException {
BufferedImage imageToCompress = bufferedImage;
if (bufferedImage.getColorModel().getNumComponents() == ARGB_COMPONENT_COUNT) {
imageToCompress = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight(), BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g = imageToCompress.createGraphics();
g.drawImage(bufferedImage, 0, 0, null);
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
J2KImageWriter writer = new J2KImageWriter(new J2KImageWriterSpi());
J2KImageWriteParam writeParams = (J2KImageWriteParam) writer.getDefaultWriteParam();
writeParams.setLossless(false);
writeParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
writeParams.setCompressionType("JPEG2000");
writeParams.setCompressionQuality(0.0f);
ImageOutputStream ios = new MemoryCacheImageOutputStream(os);
writer.setOutput(ios);
writer.write(null, new IIOImage(imageToCompress, null, null), writeParams);
writer.dispose();
ios.close();
return os.toByteArray();
}
use of com.github.jaiimageio.jpeg2000.J2KImageWriteParam in project bioformats by openmicroscopy.
the class JAIIIOServiceImpl method writeImage.
/* @see JAIIIOService#writeImage(OutputStream, BufferedImage, JPEG2000CodecOptions) */
@Override
public void writeImage(OutputStream out, BufferedImage img, JPEG2000CodecOptions options) throws IOException, ServiceException {
ImageOutputStream ios = ImageIO.createImageOutputStream(out);
IIORegistry registry = IIORegistry.getDefaultInstance();
Iterator<J2KImageWriterSpi> iter = ServiceLoader.load(J2KImageWriterSpi.class).iterator();
registry.registerServiceProviders(iter);
J2KImageWriterSpi spi = registry.getServiceProviderByClass(J2KImageWriterSpi.class);
J2KImageWriter writer = new J2KImageWriter(spi);
writer.setOutput(ios);
String filter = options.lossless ? J2KImageWriteParam.FILTER_53 : J2KImageWriteParam.FILTER_97;
IIOImage iioImage = new IIOImage(img, null, null);
J2KImageWriteParam param = (J2KImageWriteParam) writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionType("JPEG2000");
if (!options.lossless) {
param.setEncodingRate(options.quality);
}
param.setLossless(options.lossless);
param.setFilter(filter);
param.setCodeBlockSize(options.codeBlockSize);
param.setComponentTransformation(false);
if (options.tileWidth > 0 && options.tileHeight > 0) {
param.setTiling(options.tileWidth, options.tileHeight, options.tileGridXOffset, options.tileGridYOffset);
}
if (options.numDecompositionLevels != null) {
param.setNumDecompositionLevels(options.numDecompositionLevels.intValue());
}
writer.write(null, iioImage, param);
ios.close();
}
use of com.github.jaiimageio.jpeg2000.J2KImageWriteParam in project alliance by codice.
the class Jpeg2000ServiceImpl method createJpeg.
@Override
public byte[] createJpeg(BufferedImage bufferedImage) throws IOException {
J2KImageWriter writer = createWriter();
J2KImageWriteParam writeParams = (J2KImageWriteParam) writer.getDefaultWriteParam();
setCommonWriteParams(writeParams);
return encodeToByteArray(bufferedImage, writer, writeParams);
}
Aggregations