Package javax.imageio.plugins.jpeg

Examples of javax.imageio.plugins.jpeg.JPEGImageWriteParam


    public void open() {
        setPacketSize(PACKET_SIZE);
        setDoNotSpanInputBuffers(true);
        temporary.setOffset(0);
        encoder = ImageIO.getImageWritersByFormatName("JPEG").next();
        param = new JPEGImageWriteParam(null);
        huffmanACTables = createACHuffmanTables();
        huffmanDCTables = createDCHuffmanTables();
        qtable = createQTable(quality);
        param.setEncodeTables(qtable, huffmanDCTables, huffmanACTables);
        try {
View Full Code Here


            // I think the reason is that JMF is probably encoding the YUV in the jpeg, rather
            // than the 24-bit RGB that FMJ would use when using the ffmpeg-java demux.

            // TODO: we should also use a JPEGFormat explicitly, and honor those params.

            JPEGImageWriteParam param = new JPEGImageWriteParam(null);
            //final JPEGEncodeParam param = JPEGCodec.getDefaultJPEGEncodeParam(image);

        param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
        param.setCompressionQuality(0.74f);
            // param.setQuality(0.74f, true);

            final ByteArrayOutputStream os = new ByteArrayOutputStream();
            MemoryCacheImageOutputStream out = new MemoryCacheImageOutputStream(os);
            ImageWriter encoder = (ImageWriter)ImageIO.getImageWritersByFormatName("JPEG").next();
View Full Code Here

           throws IOException
   {
      ImageWriteParam param;
      if (mediaType.equals(MediaType.valueOf("image/jpeg")))
      {
         param = new JPEGImageWriteParam(Locale.US);
      }
      else
      {
         param = writer.getDefaultWriteParam();
      }
View Full Code Here

       
        final ImageOutputStream ios = new FileImageOutputStream(new File(sDest));
       
        writer.setOutput(ios);
       
        final JPEGImageWriteParam iwParam = new JPEGImageWriteParam(Locale.getDefault());
        iwParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
        iwParam.setCompressionQuality(quality);
       
        writer.write(null, new IIOImage(dest, null, null), iwParam);
       
        ios.flush();
        ios.close();
View Full Code Here

           
            //param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
            //param.setCompressionQuality(ClientConnectionBean.imgQualityDefault);

           
            ImageWriteParam iwparam = new JPEGImageWriteParam( Locale.getDefault() );
            iwparam.setCompressionMode( ImageWriteParam.MODE_EXPLICIT ) ;
            iwparam.setCompressionQuality( ClientConnectionBean.imgQualityDefault );
            writer.write( null, new IIOImage(image, null, null), null );
           
            ios.flush();
            writer.dispose();
            ios.close();
View Full Code Here

                    ImageWriteParam iwp = writer.getDefaultWriteParam();
                    iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
                    iwp.setCompressionQuality((float)quality);
                    if (bOptimizedHuffman && iwp instanceof JPEGImageWriteParam)
                    {
                        JPEGImageWriteParam iwpjpeg = (JPEGImageWriteParam)iwp;
                        // this can reduce size, but can also break badly written decoders
                        iwpjpeg.setOptimizeHuffmanTables(true);
                    }
                    writer.setOutput(fios = new FileImageOutputStream(file));
                    writer.write(null, new IIOImage(bi, null, null), iwp);
                    writer.dispose();
                    flag = true;
View Full Code Here

  protected boolean exportAsJPG(final File file) {
    final BufferedImage rendImage = createRenderedImage();
    boolean success = false;

    try {
      final ImageWriteParam iwparam   = new JPEGImageWriteParam(Locale.getDefault());
      final ImageWriter iw       = ImageIO.getImageWritersByFormatName("jpg").next();//$NON-NLS-1$
      try(final ImageOutputStream ios = ImageIO.createImageOutputStream(file)){
        iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
        iwparam.setCompressionQuality(1f-dialogueBox.getCompressionRate()/100f);
        iw.setOutput(ios);
        iw.write(null, new IIOImage(rendImage, null, null), iwparam);
        iw.dispose();
        success = true;
      }
View Full Code Here

      // Drawing the template
      graphic2.drawImage(bufferImage, aff, null);

      // Creation of the png file with the second picture
      final ImageWriteParam iwparam = new JPEGImageWriteParam(Locale.getDefault());
      final ImageWriter iw = ImageIO.getImageWritersByFormatName("png").next();//$NON-NLS-1$

      iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
      iwparam.setCompressionQuality(1);

      try {
        try(final ImageOutputStream ios = ImageIO.createImageOutputStream(templateFile)){
          iw.setOutput(ios);
          iw.write(null, new IIOImage(bufferImage2, null, null), iwparam);
View Full Code Here

      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

{
  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

TOP

Related Classes of javax.imageio.plugins.jpeg.JPEGImageWriteParam

Copyright © 2018 www.massapicom. 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.