package imageByte;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
public class ImageByte {
// private static final Logger LOG = Logger.getLogger(ImageByte.class);
public static void main(String args[]) throws MalformedURLException, IOException {
getImageAndTypeFromInputStream();
}
public static byte[] getImageAndTypeFromInputStream() throws MalformedURLException, IOException {
String format = null;
BufferedImage bufferedimage = null;
InputStream input = null;
URLConnection openConnection = new URL("http://www.thumbprintbooks.ca/wp-content/uploads/Vignettes-Photos-Spine-Inset-In-Plinth-thumbnail-c-Thumbprint-Books.jpg").openConnection();
openConnection.addRequestProperty("User-Agent",
"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36");
input = openConnection.getInputStream();
System.out.println("input : " + input.toString());
System.out.println("input : " + input.getClass());
System.out.println("input : " + input.available());
ImageInputStream iis = ImageIO.createImageInputStream(input);
System.out.println("iis : " + iis.toString());
System.out.println("iis : " + iis.getClass());
System.out.println("iis : " + iis.readBoolean());
System.out.println("iis : " + iis.length());
Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
System.out.println("readers : " + readers.toString());
System.out.println("readers : " + readers.getClass());
if (readers.hasNext()) {
System.out.println("if block");
ImageReader reader = readers.next();
format = reader.getFormatName();
reader.setInput(iis);
bufferedimage = reader.read(0);
new BufferedImageWrapper(format, bufferedimage);
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedimage, "jpg", byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
} else {
System.out.println("else block");
String text = "OOPS !!!";
byte convertEntry[] = text.getBytes();
return convertEntry;
}
}
public static class BufferedImageWrapper {
private final String imageType;
private final BufferedImage bufferedimage;
public BufferedImageWrapper(String imageType, BufferedImage bufferedimage) {
System.out.println("in Buffered image Wrapper");
this.imageType = imageType;
this.bufferedimage = bufferedimage;
}
public String getImageType() {
return imageType;
}
public BufferedImage getBufferedimage() {
return bufferedimage;
}
}
}
OUTPUT :
input : sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@3e3abc88
input : class sun.net.www.protocol.http.HttpURLConnection$HttpInputStream
input : 14195
iis : javax.imageio.stream.FileCacheImageInputStream@300ffa5d
iis : class javax.imageio.stream.FileCacheImageInputStream
iis : true
iis : -1
readers : javax.imageio.ImageIO$ImageReaderIterator@433c675d
readers : class javax.imageio.ImageIO$ImageReaderIterator
else block
Hope this will solve your problem.
package com.intellectdesign.cash.gdm.common;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
public class ImageByte {
public static void main(String args[]) throws MalformedURLException, IOException {
getImageAndTypeFromInputStream();
}
public static byte[] getImageAndTypeFromInputStream() throws MalformedURLException, IOException {
String format = null;
BufferedImage bufferedimage = null;
InputStream input = null;
URLConnection openConnection = new URL("http://www.thumbprintbooks.ca/wp-content/uploads/Vignettes-Photos-Spine-Inset-In-Plinth-thumbnail-c-Thumbprint-Books.jpg").openConnection();
openConnection.addRequestProperty("User-Agent",
"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36");
input = openConnection.getInputStream();
System.out.println("input : " + input.toString());
System.out.println("input : " + input.getClass());
System.out.println("input : " + input.available());
BufferedInputStream in=new BufferedInputStream(input);
ImageInputStream stream=ImageIO.createImageInputStream(in);
Iterator readers=ImageIO.getImageReaders(stream);
if (readers.hasNext()) {
System.out.println("if block");
ImageReader reader = (ImageReader) readers.next();
format = reader.getFormatName();
reader.setInput(stream);
bufferedimage = reader.read(0);
new BufferedImageWrapper(format, bufferedimage);
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedimage, "jpg", byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
} else {
System.out.println("else block");
String text = "OOPS !!!";
byte convertEntry[] = text.getBytes();
return convertEntry;
}
}
public static class BufferedImageWrapper {
private final String imageType;
private final BufferedImage bufferedimage;
public BufferedImageWrapper(String imageType, BufferedImage bufferedimage) {
System.out.println("in Buffered image Wrapper");
this.imageType = imageType;
this.bufferedimage = bufferedimage;
}
public String getImageType() {
return imageType;
}
public BufferedImage getBufferedimage() {
return bufferedimage;
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.