java.io.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.getWidth() * scale), (int) (image.getHeight() * scale), Image.SCALE_SMOOTH);
   InputStream ret = (InputStream) scaledImage;//this is wrong cast
   retrun ret;
}

如何将图像转换为 InputStream?

最佳答案

您可以使用此代码进行转换:

 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());

关于java.io.Image 到 InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505792/

相关文章:

java - 在 Android 设备上使用 LibGDX 切换屏幕很慢

java - weka中朴素贝叶斯的概率分布

iphone - 在 iphone 的缩略图中显示视频时长

jquery - img src=svg 在同一个文档中

java - 未使用的私有(private)变量可以在其持有实例之前被 GC 吗?

java - Spring Bean 验证给出 ConstraintDeclarationException

image - 带有图像的 RESTful GET

java - Java中的InputStream read()如何确定要读取的字节数?

java - Java 中的代理输入/输出流问题

java.io.IOException : The system cannot find the path specified 异常