InputStream,BufferedImage与byte数组之间的转换
需要獲取網(wǎng)絡(luò)的一張圖片,但是某種需要,要把獲取的這段流輸入換為BufferedImage流,有的地方還需要轉(zhuǎn)換為byte[].
獲得圖片地址,獲得了一個圖片輸入流,例如:
?? Url img = new? URL(url);
?? InputStream in = img.openStream();
接著把輸入流轉(zhuǎn)為BufferedImage:
?? JPEGImageDecoder decoderFile = JPEGCodec.createJPEGDecoder(in);
?? BufferedImage image = decoderFile.decodeAsBufferedImage();
?? 如果根據(jù)這個圖片對象,重新draw了一個新的bufferedImage以后,怎么才能獲得它的byte數(shù)組呢?
通過ImageIO對象進(jìn)行操作:ImageIO.write(bufferedImage, "jpg", bos);?
?? 這樣就可以根據(jù)bos輸出流獲得byte數(shù)組了,減少了通過File進(jìn)行一次io操作的必要。
?? 這個也對緩存圖片有一定的意義。
URL url = new URL("http://www.google.com/intl/en_ALL/images/logo.gif");
BufferedImage image = ImageIO.read(url);
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "gif", os);
InputStream is = new ByteArrayInputStream(os.toByteArray());
轉(zhuǎn)載于:https://www.cnblogs.com/myjoan/p/4739102.html
總結(jié)
以上是生活随笔為你收集整理的InputStream,BufferedImage与byte数组之间的转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOS开发之表视图(UITableVie
- 下一篇: Notepad++去除代码行号的几种方法