Example #1
0
 BufferedImage getThumbnail(ImageInputStream iis, JPEGImageReader reader) throws IOException {
   iis.mark();
   iis.seek(streamPos);
   JPEGImageReader thumbReader = new JPEGImageReader(null);
   thumbReader.setInput(iis);
   thumbReader.addIIOReadProgressListener(new ThumbnailReadListener(reader));
   BufferedImage ret = thumbReader.read(0, null);
   thumbReader.dispose();
   iis.reset();
   return ret;
 }
Example #2
0
 BufferedImage getThumbnail(ImageInputStream iis, int index, JPEGImageReader reader)
     throws IOException {
   reader.thumbnailStarted(index);
   BufferedImage ret = null;
   if ((thumb != null) && (index == 0)) {
     ret = thumb.getThumbnail(iis, reader);
   } else {
     if (thumb != null) {
       index--;
     }
     JFIFExtensionMarkerSegment jfxx = (JFIFExtensionMarkerSegment) extSegments.get(index);
     ret = jfxx.thumb.getThumbnail(iis, reader);
   }
   reader.thumbnailComplete();
   return ret;
 }
Example #3
0
 void readByteBuffer(
     ImageInputStream iis,
     byte[] data,
     JPEGImageReader reader,
     float workPortion,
     float workOffset)
     throws IOException {
   int progInterval = Math.max((int) (data.length / 20 / workPortion), 1);
   for (int offset = 0; offset < data.length; ) {
     int len = Math.min(progInterval, data.length - offset);
     iis.read(data, offset, len);
     offset += progInterval;
     float percentDone = ((float) offset * 100) / data.length * workPortion + workOffset;
     if (percentDone > 100.0F) {
       percentDone = 100.0F;
     }
     reader.thumbnailProgress(percentDone);
   }
 }
Example #4
0
 public void imageProgress(ImageReader source, float percentageDone) {
   reader.thumbnailProgress(percentageDone);
 }