简体   繁体   English

如何使用 InputStream 转换或初始化 ImageInputStream?

[英]How can I cast or initialize ImageInputStream with InputStream?

I am developing an image scraping application.我正在开发一个图像抓取应用程序。 I am getting URL我正在获取网址

URL imageUrl = new URL(imageSource);

Then I'm creating an InputStream with this URL:然后我用这个 URL 创建一个 InputStream:

InputStream is = new URL(imageUrl.toString()).openStream();

After this I wanna create an ImageInputStream to determine ImageIO readers.在此之后我想创建一个 ImageInputStream 来确定 ImageIO 读者。

ImageInputStream iis = ??????

But I couldn't initialize this.但是我无法初始化它。 Can I implement URL or InputStream for ImageInputStream?我可以为 ImageInputStream 实现 URL 或 InputStream 吗?

this is what you are looking for:这就是您要找的:

ImageInputStream iis = ImageIO.createImageInputStream(is);

Better way is to use ImageIO.read(url) that returns BufferedReader更好的方法是使用返回BufferedReaderImageIO.read(url)

URL imageUrl = new URL(imageSource);
InputStream is = new URL(imageUrl.toString()).openStream();
ImageInputStream iis = ImageIO.createImageInputStream(is);
Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);

if(!iter.hasNext())
    throw new RuntimeException("No readers found");
ImageReader reader = iter.next();

This is how you get your reader, or one of the ways of getting the reader.这就是您获得读者的方式,或者是获得读者的方式之一。 Hope it helps.希望能帮助到你。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM