javax.imageio.ImageIO.getImageReaders()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(9.5k)|赞(0)|评价(0)|浏览(316)

本文整理了Java中javax.imageio.ImageIO.getImageReaders()方法的一些代码示例,展示了ImageIO.getImageReaders()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ImageIO.getImageReaders()方法的具体详情如下:
包路径:javax.imageio.ImageIO
类名称:ImageIO
方法名:getImageReaders

ImageIO.getImageReaders介绍

暂无

代码示例

代码示例来源:origin: robolectric/robolectric

public static Point getImageSizeFromStream(InputStream is) {
 if (!initialized) {
  // Stops ImageIO from creating temp files when reading images
  // from input stream.
  ImageIO.setUseCache(false);
  initialized = true;
 }
 try {
  ImageInputStream imageStream = ImageIO.createImageInputStream(is);
  Iterator<ImageReader> readers = ImageIO.getImageReaders(imageStream);
  if (!readers.hasNext()) return null;
  ImageReader reader = readers.next();
  try {
   reader.setInput(imageStream);
   return new Point(reader.getWidth(0), reader.getHeight(0));
  } finally {
   reader.dispose();
  }
 } catch (IOException e) {
  throw new RuntimeException(e);
 }
}

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

public ImageMetadata getImageMetadata(InputStream artifactStream) throws Exception {
  ImageMetadata imageMetadata = new ImageMetadata();
  ImageInputStream iis = ImageIO.createImageInputStream(artifactStream);
  Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
  if (readers.hasNext()) {
    ImageReader reader = readers.next();
    reader.setInput(iis, true);
    imageMetadata.setWidth(reader.getWidth(0));
    imageMetadata.setHeight(reader.getHeight(0));
  } else {
    throw new Exception("Unable to retrieve image metadata from stream. Are you sure the stream provided is a valid input stream for an image source?");
  }
  return imageMetadata;
}

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

public InputStream convert(InputStream artifactStream, BufferedImageOp filter) throws Exception {
  ImageInputStream iis = ImageIO.createImageInputStream(artifactStream);
  Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
  ImageReader reader = iter.next();
  String formatName = reader.getFormatName();
  artifactStream.reset();
  BufferedImage image = ImageIO.read(ImageIO.createImageInputStream(artifactStream));
  //before
  if (formatName.toLowerCase().equals("jpeg") || formatName.toLowerCase().equals("jpg")) {
    image = stripAlpha(image);
  }
  image = filter.filter(image, null);
  if (formatName.toLowerCase().equals("gif")) {
    formatName = "png";
  }
  InputStream result = compress(image, formatName);
  if (formatName.equals("png")) {
    result = compressPNG(result);
  }
  return result;
}

代码示例来源:origin: plantuml/plantuml

public void readAndDisplayMetadata(File file) throws IOException {
  final ImageInputStream iis = ImageIO.createImageInputStream(file);
  final Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
  if (readers.hasNext()) {
    // pick the first available ImageReader
    final ImageReader reader = readers.next();
    // attach source to the reader
    reader.setInput(iis, true);
    // read metadata of first image
    final IIOMetadata metadata = reader.getImageMetadata(0);
    final String[] names = metadata.getMetadataFormatNames();
    final int length = names.length;
    for (int i = 0; i < length; i++) {
      displayMetadata(metadata.getAsTree(names[i]));
    }
  }
}

代码示例来源:origin: plantuml/plantuml

public String getData() throws IOException {
  final ImageInputStream iis = ImageIO.createImageInputStream(source);
  final Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
  if (readers.hasNext()) {
    // pick the first available ImageReader
    final ImageReader reader = readers.next();
    // attach source to the reader
    reader.setInput(iis, true);
    // read metadata of first image
    final IIOMetadata metadata = reader.getImageMetadata(0);
    final String[] names = metadata.getMetadataFormatNames();
    final int length = names.length;
    for (int i = 0; i < length; i++) {
      final String result = displayMetadata(metadata.getAsTree(names[i]));
      if (result != null) {
        return result;
      }
    }
  }
  return null;
}

代码示例来源:origin: org.springframework.boot/spring-boot

private Frame[] readFrames(int width, int height, ImageInputStream stream)
    throws IOException {
  Iterator<ImageReader> readers = ImageIO.getImageReaders(stream);
  Assert.state(readers.hasNext(), "Unable to read image banner source");
  ImageReader reader = readers.next();
  try {
    ImageReadParam readParam = reader.getDefaultReadParam();
    reader.setInput(stream);
    int frameCount = reader.getNumImages(true);
    Frame[] frames = new Frame[frameCount];
    for (int i = 0; i < frameCount; i++) {
      frames[i] = readFrame(width, height, reader, i, readParam);
    }
    return frames;
  }
  finally {
    reader.dispose();
  }
}

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
ImageReader reader = iter.next();
String formatName = reader.getFormatName();

代码示例来源:origin: apache/nifi

final Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
if (!readers.hasNext()) {
  throw new ProcessException("FlowFile is not in a valid format");

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

if (operations != null && operations.length > 0) {
  ImageInputStream iis = ImageIO.createImageInputStream(artifactStream);
  Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
  ImageReader reader = iter.next();
  String formatName = reader.getFormatName();

代码示例来源:origin: org.apache.poi/poi

Iterator<ImageReader> i = ImageIO.getImageReaders( iis );
ImageReader r = i.next();
try {

代码示例来源:origin: coobird/thumbnailator

Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
if (!readers.hasNext())

代码示例来源:origin: org.apache.poi/poi

Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
while (img==null && iter.hasNext()) {
  ImageReader reader = iter.next();

代码示例来源:origin: coobird/thumbnailator

Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
if (!readers.hasNext())

代码示例来源:origin: geoserver/geoserver

/**
 * Retrieves the request result as a list of BufferedImages from an animated format (works with
 * GIF, other formats are not tested so far).
 */
protected List<BufferedImage> getAsAnimation(String path, String mime) throws Exception {
  MockHttpServletResponse resp = getAsServletResponse(path);
  assertEquals(mime, resp.getContentType());
  try (ImageInputStream is = ImageIO.createImageInputStream(getBinaryInputStream(resp))) {
    ImageReader reader = ImageIO.getImageReaders(is).next();
    reader.setInput(is);
    final int numImages = reader.getNumImages(true);
    List<BufferedImage> result = new ArrayList<>(numImages);
    for (int i = 0; i < numImages; i++) {
      result.add(reader.read(i));
    }
    return result;
  }
}

代码示例来源:origin: geotools/geotools

/**
 * Look for an {@link ImageReader} instance that is able to read the provided {@link
 * ImageInputStream}, which must be non null.
 *
 * <p>In case no reader is found, <code>null</code> is returned.
 *
 * @param inStream an instance of {@link ImageInputStream} for which we need to find a suitable
 *     {@link ImageReader}.
 * @return a suitable instance of {@link ImageReader} or <code>null</code> if one cannot be
 *     found.
 */
public static ImageReader getImageioReader(final ImageInputStream inStream) {
  Utilities.ensureNonNull("inStream", inStream);
  // get a reader
  inStream.mark();
  final Iterator<ImageReader> readersIt = ImageIO.getImageReaders(inStream);
  if (!readersIt.hasNext()) {
    return null;
  }
  return readersIt.next();
}

代码示例来源:origin: geotools/geotools

/**
 * Look for an {@link ImageReader} instance that is able to read the provided {@link
 * ImageInputStream}, which must be non null.
 *
 * <p>
 *
 * <p>In case no reader is found, <code>null</code> is returned.
 *
 * @param inStream an instance of {@link ImageInputStream} for which we need to find a suitable
 *     {@link ImageReader}.
 * @return a suitable instance of {@link ImageReader} or <code>null</code> if one cannot be
 *     found.
 */
static ImageReader getReader(final ImageInputStream inStream) {
  Utilities.ensureNonNull("inStream", inStream);
  // get a reader
  inStream.mark();
  final Iterator<ImageReader> readersIt = ImageIO.getImageReaders(inStream);
  if (!readersIt.hasNext()) {
    return null;
  }
  return readersIt.next();
}

代码示例来源:origin: haraldk/TwelveMonkeys

public BufferedImage read(final int imageIndex, final ImageReadParam param) throws IOException {
  // Test if we have sips before dumping to be fail-fast
  if (SIPS_EXISTS_AND_EXECUTES) {
    File tempFile = dumpToFile(input);
    if (convertToPNG(tempFile)) {
      ImageInputStream stream = ImageIO.createImageInputStream(tempFile);
      Iterator<ImageReader> readers = ImageIO.getImageReaders(stream);
      while (readers.hasNext()) {
        ImageReader reader = readers.next();
        reader.setInput(stream);
        try {
          return reader.read(imageIndex, param);
        }
        catch (IOException ignore) {
          if (stream.getFlushedPosition() <= 0) {
            stream.seek(0);
          }
          else {
            stream.close();
            stream = ImageIO.createImageInputStream(tempFile);
          }
        }
        finally {
          reader.dispose();
        }
      }
    }
  }
  return null;
}

代码示例来源:origin: haraldk/TwelveMonkeys

@Test
public void testMergeWithSubIFD() throws IOException {
  String testFile = "/tiff/cmyk_jpeg.tif";
  File output = File.createTempFile("imageiotest", ".tif");
  ImageOutputStream outputStream = ImageIO.createImageOutputStream(output);
  InputStream inputStream1 = getClassLoaderResource(testFile).openStream();
  ImageInputStream imageInput1 = ImageIO.createImageInputStream(inputStream1);
  InputStream inputStream2 = getClassLoaderResource(testFile).openStream();
  ImageInputStream imageInput2 = ImageIO.createImageInputStream(inputStream2);
  ArrayList<TIFFUtilities.TIFFPage> pages = new ArrayList<>();
  pages.addAll(TIFFUtilities.getPages(imageInput1));
  pages.addAll(TIFFUtilities.getPages(imageInput2));
  TIFFUtilities.writePages(outputStream, pages);
  ImageInputStream testOutput = ImageIO.createImageInputStream(output);
  ImageReader reader = ImageIO.getImageReaders(testOutput).next();
  reader.setInput(testOutput);
  int numImages = reader.getNumImages(true);
  for (int i = 0; i < numImages; i++) {
    reader.read(i);
  }
  imageInput1.close();
  imageInput2.close();
  outputStream.close();
}

代码示例来源:origin: haraldk/TwelveMonkeys

ImageReader reader = ImageIO.getImageReaders(iis).next();
reader.setInput(iis);
Assert.assertEquals(3, reader.getNumImages(true));

代码示例来源:origin: haraldk/TwelveMonkeys

ImageReader reader = ImageIO.getImageReaders(testOutput).next();
reader.setInput(testOutput);
int numImages = reader.getNumImages(true);

相关文章