Skip to content

Instantly share code, notes, and snippets.

@saml
Last active December 19, 2015 02:48
Show Gist options
  • Select an option

  • Save saml/5885336 to your computer and use it in GitHub Desktop.

Select an option

Save saml/5885336 to your computer and use it in GitHub Desktop.
//trying this http://stackoverflow.com/a/1560052
def readImageDimension(file: File): Option[Dimension] = {
def getDimension(reader: ImageReader, input: ImageInputStream): Dimension = try {
reader.setInput(input)
val width: Int = reader.getWidth(0)
val height: Int = reader.getHeight(0)
Dimension(width, height)
} finally {
reader.dispose()
}
val input: ImageInputStream = ImageIO.createImageInputStream(file)
try {
val readers: Iterator[ImageReader] = ImageIO.getImageReaders(input).asScala
readers.map(reader => Try(getDimension(reader, input))).collectFirst {
case Success(dimension) => dimension
}
} finally {
input.close()
}
}
/*
ImageInputStream in = ImageIO.createImageInputStream(resourceFile);
try {
final Iterator readers = ImageIO.getImageReaders(in);
if (readers.hasNext()) {
ImageReader reader = (ImageReader) readers.next();
try {
reader.setInput(in);
return new Dimension(reader.getWidth(0), reader.getHeight(0));
} finally {
reader.dispose();
}
}
} finally {
if (in != null) in.close();
}
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment