how to download image from any web page in java
try (URL url = new URL("http://www.yahoo.com/image_to_read.jpg")) { Image image = ImageIO.read(url);} catch (IOException e) { // handle IOException}
See javax.imageio
package for more info. That's using the AWT image. Otherwise you could do:
URL url = new URL("http://www.yahoo.com/image_to_read.jpg");InputStream in = new BufferedInputStream(url.openStream());ByteArrayOutputStream out = new ByteArrayOutputStream();byte[] buf = new byte[1024];int n = 0;while (-1!=(n=in.read(buf))){ out.write(buf, 0, n);}out.close();in.close();byte[] response = out.toByteArray();
And you may then want to save the image so do:
FileOutputStream fos = new FileOutputStream("C://borrowed_image.jpg");fos.write(response);fos.close();
// Do you want to download an image? // But are u denied access? // well here is the solution. public static void DownloadImage(String search, String path) { // This will get input data from the server InputStream inputStream = null; // This will read the data from the server; OutputStream outputStream = null; try { // This will open a socket from client to server URL url = new URL(search); // This user agent is for if the server wants real humans to visit String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"; // This socket type will allow to set user_agent URLConnection con = url.openConnection(); // Setting the user agent con.setRequestProperty("User-Agent", USER_AGENT); // Requesting input data from server inputStream = con.getInputStream(); // Open local file writer outputStream = new FileOutputStream(path); // Limiting byte written to file per loop byte[] buffer = new byte[2048]; // Increments file size int length; // Looping until server finishes while ((length = inputStream.read(buffer)) != -1) { // Writing data outputStream.write(buffer, 0, length); } } catch (Exception ex) { Logger.getLogger(WebCrawler.class.getName()).log(Level.SEVERE, null, ex); } // closing used resources // The computer will not be able to use the image // This is a must outputStream.close(); inputStream.close();}