关于java的BufferedImage 转 InputStream 相关问题。
BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);ByteArr...
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_ARGB);
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ImageOutputStream imOut =ImageIO.createImageOutputStream(bs);
ImageIO.write(image,"png", imOut);
InputStream is = new ByteArrayInputStream(bs.toByteArray());
以上是我转换的部分相关代码,先说明一下,image是对的,如果我把image写到本地,这个图片是正确的,
但是因为要对接oss,需要把image转成一个输入流,跟接口对应,我就做了以上操作,可是问题出现了,上传到oss后,这个图片是错误的,根本没法显示。
是我转换错了么? 展开
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ImageOutputStream imOut =ImageIO.createImageOutputStream(bs);
ImageIO.write(image,"png", imOut);
InputStream is = new ByteArrayInputStream(bs.toByteArray());
以上是我转换的部分相关代码,先说明一下,image是对的,如果我把image写到本地,这个图片是正确的,
但是因为要对接oss,需要把image转成一个输入流,跟接口对应,我就做了以上操作,可是问题出现了,上传到oss后,这个图片是错误的,根本没法显示。
是我转换错了么? 展开
1个回答
展开全部
既然是转换成输入流,那你的代码明显写的不对,如下这样写即可:
// 取得图片读入流
InputStream input = new FileInputStream(imgPath); //imgPath是图片的路径
ImageInputStream iis = ImageIO.createImageInputStream(input);
有问题欢迎提问,满意请采纳,谢谢!
// 取得图片读入流
InputStream input = new FileInputStream(imgPath); //imgPath是图片的路径
ImageInputStream iis = ImageIO.createImageInputStream(input);
有问题欢迎提问,满意请采纳,谢谢!
更多追问追答
追问
我的image不是通过流读进来的,而是在java中生成的。
追答
道理是一样的,生成的也是一个实在的东西,就不能转换成流了?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询