Examples of JPEGImageWriteParam


Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

      String extName = FileUtil.getExtName(outputFile);
      //get registry ImageWriter for specified image suffix
      Iterator writers = ImageIO.getImageWritersByFormatName(extName);
      ImageWriter imageWriter = (ImageWriter) writers.next();
      //set image output params
      ImageWriteParam params = new JPEGImageWriteParam(null);
      params.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
      params.setCompressionQuality(quality);
      params
          .setProgressiveMode(javax.imageio.ImageWriteParam.MODE_DISABLED);
      params.setDestinationType(new ImageTypeSpecifier(IndexColorModel
          .getRGBdefault(), IndexColorModel.getRGBdefault()
          .createCompatibleSampleModel(16, 16)));
      //writer image to file
      ImageOutputStream imageOutputStream = ImageIO
          .createImageOutputStream(outputFile);
View Full Code Here

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

{
  public void test(TestHarness harness)
  {
    // use the english locale so that we know what string to expect
    // for descriptions
    JPEGImageWriteParam param = new JPEGImageWriteParam(Locale.ENGLISH);

    // valid data for testing.

    JPEGQTable[] qTables = new JPEGQTable[]
      {
        JPEGQTable.K1Luminance,
        JPEGQTable.K1Div2Luminance,
        JPEGQTable.K2Chrominance,
        JPEGQTable.K2Div2Chrominance
      };

    JPEGHuffmanTable[] DCHuffmanTables = new JPEGHuffmanTable[]
      {
        JPEGHuffmanTable.StdDCLuminance,
        JPEGHuffmanTable.StdDCChrominance
      };

    JPEGHuffmanTable[] ACHuffmanTables = new JPEGHuffmanTable[]
      {
        JPEGHuffmanTable.StdACLuminance,
        JPEGHuffmanTable.StdACChrominance
      };

    // check that tables are not set after construction
    harness.check(!param.areTablesSet());

    // check that optimize is false after construction
    harness.check(!param.getOptimizeHuffmanTables());

    // check that returned tables are null
    harness.check(param.getQTables() == null);
    harness.check(param.getDCHuffmanTables() == null);
    harness.check(param.getACHuffmanTables() == null);

    // check that tiling is not supported
    harness.check(!param.canWriteTiles());

    // check that progressive encoding is supported
    harness.check(param.canWriteProgressive());

    // check the default progressive mode
    harness.check(param.getProgressiveMode() == ImageWriteParam.MODE_DISABLED);

    // check that compression is supported
    harness.check(param.canWriteCompressed());

    // check that a single compression type is supported
    harness.check(param.getCompressionTypes().length == 1);

    // check that the single compression type is called "JPEG"
    harness.check(param.getCompressionTypes()[0].equals("JPEG"));

    // set explicit compression mode so that compression mode tests
    // will work
    param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);

    // check that default compression type is "JPEG"
    harness.check(param.getCompressionType().equals("JPEG"));

    // check that the default compression quality is 0.75f
    harness.check(param.getCompressionQuality() == 0.75f);

    // check that compression is not lossless
    harness.check(!param.isCompressionLossless());

    // check compression descriptions
    String[] descriptions = param.getCompressionQualityDescriptions();
    harness.check(descriptions.length == 3);
    String[] expectedDescriptions =
      {
        "Minimum useful",
        "Visually lossless",
        "Maximum useful"
      };
    harness.check(Arrays.equals(descriptions, expectedDescriptions));

    // check compression quality values
    float[] values = param.getCompressionQualityValues();
    // Sun's API docs say that the length of the quality values array
    // will always be one greater than the length of the descriptions
    // array but testing shows the the lengths to be equal for
    // JPEGImageWriteParam.  This implies that rather than specifying
    // quality value interval endpoints, the returned array specifies
    // actual quality values, each of which correspond directly to a
    // quality description.
    harness.check(values.length == descriptions.length);
    float[] expectedValues = { 0.05f, 0.75f, 0.95f };
    harness.check(Arrays.equals(values, expectedValues));

    // check setting optimize
    param.setOptimizeHuffmanTables(true);
    harness.check(param.getOptimizeHuffmanTables());

    // check clearing optimize
    param.setOptimizeHuffmanTables(false);
    harness.check(!param.getOptimizeHuffmanTables());

    // check setting compression quality
    param.setCompressionQuality(0.31f);
    harness.check(param.getCompressionQuality() == 0.31f);

    // check that clearing compression quality resets to 0.75f
    param.unsetCompression();
    harness.check(param.getCompressionQuality() == 0.75f);

    // check failure modes for table setting
    // null argument
    boolean settingFailed = false;
    try
      {
        param.setEncodeTables(qTables, null, ACHuffmanTables);
      }
    catch (IllegalArgumentException e)
      {
        settingFailed = true;
      }
    harness.check(settingFailed);

    // invalid length for an array argument
    settingFailed = false;
    try
      {
        param.setEncodeTables(new JPEGQTable[]
            {
              JPEGQTable.K1Luminance,
              JPEGQTable.K1Div2Luminance,
              JPEGQTable.K2Chrominance,
              JPEGQTable.K2Div2Chrominance,
              JPEGQTable.K1Luminance
            }, DCHuffmanTables, ACHuffmanTables);
      }
    catch (IllegalArgumentException e)
      {
        settingFailed = true;
      }
    harness.check(settingFailed);

    // differing lengths for Huffman table array arguments
    settingFailed = false;
    try
      {
        param.setEncodeTables(qTables, new JPEGHuffmanTable[]
            {
              JPEGHuffmanTable.StdDCLuminance
            }, ACHuffmanTables);
      }
    catch (IllegalArgumentException e)
      {
        settingFailed = true;
      }
    harness.check(settingFailed);

    // check valid setting
    settingFailed = false;
    try
      {
        param.setEncodeTables(qTables, DCHuffmanTables, ACHuffmanTables);
      }
    catch (IllegalArgumentException e)
      {
        settingFailed = true;
      }
    harness.check(!settingFailed);

    // check tables set
    harness.check(param.areTablesSet());

    // check getting tables
    JPEGQTable[] gotQTables = param.getQTables();
    harness.check(gotQTables != null);
    harness.check(Arrays.equals(qTables, gotQTables));

    JPEGHuffmanTable[] gotDCHuffmanTables = param.getDCHuffmanTables();
    harness.check(gotDCHuffmanTables != null);
    harness.check(Arrays.equals(DCHuffmanTables, gotDCHuffmanTables));

    JPEGHuffmanTable[] gotACHuffmanTables = param.getACHuffmanTables();
    harness.check(gotACHuffmanTables != null);
    harness.check(Arrays.equals(ACHuffmanTables, gotACHuffmanTables));

    // check clearing tables
    param.unsetEncodeTables();

    // check getting null tables
    gotQTables = param.getQTables();
    harness.check(gotQTables == null);

    gotDCHuffmanTables = param.getDCHuffmanTables();
    harness.check(gotDCHuffmanTables == null);

    gotACHuffmanTables = param.getACHuffmanTables();
    harness.check(gotACHuffmanTables == null);

    // check that areTablesSet returns false
    harness.check(!param.areTablesSet());
  }
View Full Code Here

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

            imageWriter = ImageIO.getImageWritersBySuffix("jpeg").next();
            ios = ImageIO.createImageOutputStream(out);
            imageWriter.setOutput(ios);

            // add compression
            JPEGImageWriteParam jpegParam = (JPEGImageWriteParam)imageWriter.getDefaultWriteParam();
            jpegParam.setCompressionMode(JPEGImageWriteParam.MODE_EXPLICIT);
            jpegParam.setCompressionQuality(quality);

            // add metadata
            ImageTypeSpecifier imageTypeSpecifier = new ImageTypeSpecifier(image);
            IIOMetadata data = imageWriter.getDefaultImageMetadata(imageTypeSpecifier, jpegParam);
            Element tree = (Element)data.getAsTree("javax_imageio_jpeg_image_1.0");
View Full Code Here

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

                Graphics2D g3 = scaled.createGraphics();
                g3.drawImage(img, 0, 0, img.getWidth(null), img.getHeight(null), null);
                g3.dispose();

                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ImageWriteParam iwparam = new JPEGImageWriteParam(Locale.getDefault());
                iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
                iwparam.setCompressionQuality(jpegQuality);//Set here your compression rate
                ImageWriter iw = ImageIO.getImageWritersByFormatName("jpg").next();
                ImageOutputStream ios = ImageIO.createImageOutputStream(baos);
                iw.setOutput(ios);
                iw.write(null, new IIOImage(scaled, null, null), iwparam);
                iw.dispose();
View Full Code Here

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

                Graphics2D g3 = scaled.createGraphics();
                g3.drawImage(img, 0, 0, img.getWidth(null), img.getHeight(null), null);
                g3.dispose();

                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ImageWriteParam iwparam = new JPEGImageWriteParam(Locale.getDefault());
                iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
                iwparam.setCompressionQuality(jpegQuality);//Set here your compression rate
                ImageWriter iw = ImageIO.getImageWritersByFormatName("jpg").next();
                ImageOutputStream ios = ImageIO.createImageOutputStream(baos);
                iw.setOutput(ios);
                iw.write(null, new IIOImage(scaled, null, null), iwparam);
                iw.dispose();
View Full Code Here

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

     * @see ImageIOImageWriter#getDefaultWriteParam(javax.imageio.ImageWriter, java.awt.image.RenderedImage, ImageWriterParams)
     */
    protected ImageWriteParam getDefaultWriteParam(
            ImageWriter iiowriter, RenderedImage image,
            ImageWriterParams params) {
        JPEGImageWriteParam param = new JPEGImageWriteParam(iiowriter.getLocale());
        //ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(image);
        /*
        ImageTypeSpecifier type = new ImageTypeSpecifier(
                image.getColorModel(), image.getSampleModel());
                */
 
View Full Code Here

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

                                 float quality) throws ImageWriterException {
        try {
            float currentQuality = quality;
            float minQuality = params.getInteger(ParameterNames.MINIMUM_JPEG_QUALITY) / 100F;

            JPEGImageWriteParam jpegParam = new JPEGImageWriteParam(null);
            jpegParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
            jpegParam.setCompressionQuality(currentQuality);
            jpegParam.setOptimizeHuffmanTables(true);
            if (params.containsName(ParameterNames.JPEG_MODE)) {
                int mode = params.getInteger(ParameterNames.JPEG_MODE);
                if (mode == ImageConstants.JPEG_PROGRESSIVE) {
                    jpegParam.setProgressiveMode(ImageWriteParam.MODE_DEFAULT);
                }
            }

            stream.reset();
            stream.mark();
View Full Code Here

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

    protected ImageWriteParam getImageWriteParam(RenderedOp theImage,
                                                 Parameters params) {
        // we use this to ensure that the Huffman tables are generated
        // correctly. OK to pass in a null Locale to the JPEGImageWriteParam
        // ctor
        JPEGImageWriteParam param = new JPEGImageWriteParam(null);
        param.setOptimizeHuffmanTables(true);

        return param;
    }
View Full Code Here

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

    BufferedImage bufferedImage = BinaryEncoderUtil.render( chart );

    Iterator writers = ImageIO.getImageWritersByFormatName( JPEG );
    ImageWriter imageWriter = (ImageWriter) writers.next();

    JPEGImageWriteParam params = new JPEGImageWriteParam( null );
    params.setCompressionMode( ImageWriteParam.MODE_EXPLICIT );
    params.setCompressionQuality( quality );
    params.setProgressiveMode( javax.imageio.ImageWriteParam.MODE_DISABLED );
    params.setDestinationType( new ImageTypeSpecifier( IndexColorModel.getRGBdefault(),
                                      IndexColorModel.getRGBdefault().createCompatibleSampleModel( 16, 16 ) ) );

    ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream( outputStream );
    imageWriter.setOutput( imageOutputStream );
    imageWriter.write( null, new IIOImage( bufferedImage, null, null ), params );
View Full Code Here

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam

     * for the given write parameters.
     */
    JPEGMetadata(ImageWriteParam param, JPEGImageWriter writer) {
        this(true, false);

        JPEGImageWriteParam jparam = null;

        if ((param != null) && (param instanceof JPEGImageWriteParam)) {
            jparam = (JPEGImageWriteParam) param;
            if (!jparam.areTablesSet()) {
                jparam = null;
            }
        }
        if (jparam != null) {
            markerSequence.add(new DQTMarkerSegment(jparam.getQTables()));
            markerSequence.add
                (new DHTMarkerSegment(jparam.getDCHuffmanTables(),
                                      jparam.getACHuffmanTables()));
        } else {
            // default tables.
            markerSequence.add(new DQTMarkerSegment(JPEG.getDefaultQTables()));
            markerSequence.add(new DHTMarkerSegment(JPEG.getDefaultHuffmanTables(true),
                                                    JPEG.getDefaultHuffmanTables(false)));
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.