View Javadoc

1   package com.atlassian.core.util.thumbnail.loader;
2   
3   import com.atlassian.core.util.ImageInfo;
4   import com.google.common.base.Optional;
5   import com.google.common.base.Throwables;
6   
7   import javax.imageio.ImageIO;
8   import java.awt.image.BufferedImage;
9   import java.io.IOException;
10  import java.io.InputStream;
11  
12  class DefaultImageLoader implements ImageLoader {
13      @Override
14      public Optional<BufferedImage> loadImage(final InputStream inputStream, ImageInfo imageInfo) throws IOException
15      {
16          try
17          {
18              return Optional.fromNullable(ImageIO.read(inputStream));
19          }
20          catch (Exception e)
21          {
22              //ImageIO throws also RuntimeExceptions when image is corrupted
23              //we need to wrap them
24  			Throwables.propagateIfInstanceOf(e, IOException.class);
25  			throw new IOException(e);
26          }
27      }
28  }