1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public byte[] resizeImageAsJPG(String path, int p_MaxWidth) {
RenderedOp originalImage = JAI.create("fileload", path);
((OpImage) originalImage.getRendering()).setTileCache(null);
int origImageWidth = originalImage.getWidth();
double scale = (double) p_MaxWidth / originalImage.getWidth();
ParameterBlock paramBlock = new ParameterBlock();
paramBlock.addSource(originalImage); // The source image
paramBlock.add(scale);
paramBlock.add(scale);
paramBlock.add(0.0);
paramBlock.add(0.0);
RenderingHints qualityHints = new RenderingHints(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
RenderedOp resizedImage = JAI.create(JAI_SUBSAMPLE_AVERAGE_ACTION, paramBlock, qualityHints);
ByteArrayOutputStream encoderOutputStream = new ByteArrayOutputStream();
JAI.create(JAI_ENCODE_ACTION, resizedImage, encoderOutputStream, JAI_ENCODE_FORMAT_JPEG, null);
byte[] resizedImageByteArray = encoderOutputStream.toByteArray();
return resizedImageByteArray;
} |