diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/ken/util/ImageFetcher.java')
-rw-r--r-- | src/main/java/net/tylermurphy/ken/util/ImageFetcher.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java b/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java new file mode 100644 index 0000000..875475b --- /dev/null +++ b/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java @@ -0,0 +1,30 @@ +package net.tylermurphy.ken.util; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +public class ImageFetcher { + + private final Map<String,BufferedImage> CACHE = new HashMap<>(); + + public BufferedImage getImage(String url, boolean cache) throws IOException { + if(CACHE.containsKey(url)) return CACHE.get(url); + HttpURLConnection connection = getConnection(url); + BufferedImage image = ImageIO.read(connection.getInputStream()); + if(cache && image != null) CACHE.put(url, image); + return image; + } + + private HttpURLConnection getConnection(String link) throws IOException { + final URL url = new URL(link); + final HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0"); + return connection; + } + +} |