JPEGImageWriteParam jpegParams = new JPEGImageWriteParam(null); jpegParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParams.setCompressionQuality(1f);
ImageWriteParam iwparam = new JPEGImageWriteParam(Locale.getDefault()); iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); iwparam.setCompressionQuality((quality / 100f));
@Override public void writeImageFile(OutputStream outStream, String format, ByteBuffer imageData, int width, int height) throws IOException { BufferedImage awtImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); Screenshots.convertScreenShot2(imageData.asIntBuffer(), awtImage); ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); if (format.equals("jpg")) { JPEGImageWriteParam jpegParam = (JPEGImageWriteParam) writeParam; jpegParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParam.setCompressionQuality(0.95f); } awtImage = verticalFlip(awtImage); ImageOutputStream imgOut = new MemoryCacheImageOutputStream(outStream); writer.setOutput(imgOut); IIOImage outputImage = new IIOImage(awtImage, null, null); try { writer.write(null, outputImage, writeParam); } finally { imgOut.close(); writer.dispose(); } }
param.setOptimizeHuffmanTables(true); try { param.setProgressiveMode(JPEGImageWriteParam.MODE_DEFAULT); } catch (UnsupportedOperationException e) { throw new IOException(e);
assertArrayEquals(message, ((JPEGHuffmanTable) expectedUserObject).getLengths(), ((JPEGHuffmanTable) actualUserObject).getLengths()); assertArrayEquals(message, ((JPEGHuffmanTable) expectedUserObject).getValues(), ((JPEGHuffmanTable) actualUserObject).getValues()); return; assertArrayEquals(message, ((JPEGQTable) expectedUserObject).getTable(), ((JPEGQTable) actualUserObject).getTable()); return;
public static JPEGQTable[] getQTables(final List<JPEGSegment> segments) throws IOException { int[][] tables = getQuantizationTables(segments); List<JPEGQTable> qTables = new ArrayList<JPEGQTable>(); for (int[] table : tables) { if (table != null) { qTables.add(new JPEGQTable(table)); } } return qTables.toArray(new JPEGQTable[qTables.size()]); }
JPEGHuffmanTable hTable = new JPEGHuffmanTable(lengths, table); if (type == 0) { dc.add(num, hTable);
/** * Compress {@link BufferedImage} with a given quality into byte array. * * @param bi the {@link BufferedImage} to compres into byte array * @param quality the compressed image quality (1 = 100%, 0.5 = 50%, 0.1 = 10%, etc) * @return The size of compressed data (number of bytes) */ private int compress(BufferedImage bi, float quality) { baos.reset(); final JPEGImageWriteParam params = new JPEGImageWriteParam(null); params.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); params.setCompressionQuality(quality); try (MemoryCacheImageOutputStream mcios = new MemoryCacheImageOutputStream(baos)) { final ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg").next(); writer.setOutput(mcios); writer.write(null, new IIOImage(bi, null, null), params); } catch (IOException e) { throw new IllegalStateException(e); } return baos.size(); }
jpegParam.setCompressionMode(JPEGImageWriteParam.MODE_EXPLICIT); jpegParam.setCompressionQuality(quality);
JPEGImageWriteParam param = new JPEGImageWriteParam(<pass your lacale here>); param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionType("JPEG"); param.setCompressionQuality(0.2f); param.setProgressiveMode( ImageWriteParam.MODE_DEFAULT );
QTable(ImageInputStream stream) throws IOException { elementPrecision = (int)stream.readBits(4); tableID = (int)stream.readBits(4); byte[] tmp = new byte[QTABLE_SIZE]; stream.readFully(tmp); int[] data = new int[QTABLE_SIZE]; for (int i = 0; i < QTABLE_SIZE; i++) { data[i] = tmp[zigzag[i]] & 0xff; } table = new JPEGQTable(data); length = data.length + 1; } }
public static void updateJPEGParams() { jpegParams = new JPEGImageWriteParam(null); jpegParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParams.setCompressionQuality(JPGWriter.QUALITY); }
jpegParams.setCompressionMode(JPEGImageWriteParam.MODE_EXPLICIT); jpegParams.setCompressionQuality(quality); imageWriter.write(imageMetaData, new IIOImage(bufferedImage, null, null), jpegParams);
if (mediaType.equals(MediaType.valueOf("image/jpeg"))) param = new JPEGImageWriteParam(Locale.US);
@Test public void testGetQTables() throws IOException { ImageInputStream stream = ImageIO.createImageInputStream(getClass().getResourceAsStream("/jpeg/9788245605525.jpg")); try { JPEGQTable[] tables = JPEGQuality.getQTables(JPEGSegmentUtil.readSegments(stream, JPEG.DQT, null)); assertEquals(1, tables.length); int[] table = { 3, 2, 2, 2, 2, 2, 3, 2, 2, 2, 3, 3, 3, 3, 4, 6, 4, 4, 4, 4, 4, 8, 6, 6, 5, 6, 9, 8, 10, 10, 9, 8, 9, 9, 10, 12, 15, 12, 10, 11, 14, 11, 9, 9, 13, 17, 13, 14, 15, 16, 16, 17, 16, 10, 12, 18, 19, 18, 16, 19, 15, 16, 16, 16 }; assertArrayEquals(table, tables[0].getTable()); // JPEGQTable has no useful equals method.. // assertArrayEquals(new JPEGQTable[] {new JPEGQTable(table)}, tables); } finally { stream.close(); } }
//create the params JPEGImageWriteParam jpegParams = new JPEGImageWriteParam(null); jpegParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParams.setCompressionQuality(1f);//set compression quality
if (mediaType.equals(MediaType.valueOf("image/jpeg"))) param = new JPEGImageWriteParam(Locale.US);
imgWriter.setOutput( ioStream ); JPEGImageWriteParam jpegParams = new JPEGImageWriteParam( Locale.getDefault() ); jpegParams.setCompressionMode( ImageWriteParam.MODE_EXPLICIT ); jpegParams.setCompressionQuality( qualityFloat );