java.io.Image到InputStream
我正在调整图像大小,需要返回InputStream对象java.io.Image到InputStream,java,image,inputstream,Java,Image,Inputstream,我正在调整图像大小,需要返回InputStream对象 public InputStream resize(InputStream input, int maxSize){ BufferedImage image = ImageIO.read(input); double scale = (double) image.getWidth()/maxSize; Image scaledImage = image.getScaledInstance( (int) (image.get
public InputStream resize(InputStream input, int maxSize){
BufferedImage image = ImageIO.read(input);
double scale = (double) image.getWidth()/maxSize;
Image scaledImage = image.getScaledInstance( (int) (image.getWidth() * scale), (int) (image.getHeight() * scale), Image.SCALE_SMOOTH);
InputStream ret = (InputStream) scaledImage;//this is wrong cast
retrun ret;
}
如何将图像转换为输入流?您可以使用以下代码进行转换:
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);
//bufferedImage is the RenderedImage to be written
Graphics2D g2 = bufferedImage.createGraphics();
g2.drawImage(image, null, null);
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", outStream);
InputStream is = new ByteArrayInputStream(outStream.toByteArray());
对不起,我写错了。我想转换的是BushledImage,是一个java.io。Image@xedo例如我改变了我的答案。首先将您的
图像
转换为缓冲图像