谈谈BufferedImage与输出流(JAVA)

碰到一个问题,如何将BufferedImage对象存入到文件中?

查了一下JDK,看到了这样一个方法。在java.imageio.ImageIO里有这样的一个静态方法 write(RenderedImage im, String formatName, File output) 。直接调用该方法就可以解决。

但将问题扩展一下呢,如何将BufferedImage对象存入到OutputStream中呢?

首先,当然你可以写一个方法,将内部细节封装,比如就先调用上面的方法,从文件转化成流。

这里提供另外一种方法:

OutputStream out = new 你的OutputStream;

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder( out ); / *This creates an instance of a JPEGImageEncoder that can be used to encode image data as JPEG Data streams. */

encoder.encode( image ); //Encode a BufferedImage as a JPEG data stream.

OK,搞定!

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/789181/viewspace-888869/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/789181/viewspace-888869/

可以使用 `javax.imageio.ImageIO` 类将 `BufferedImage` 转换为输出。以下是一个示例代码: ```java import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.imageio.ImageIO; public class ImageConverter { public static ByteArrayOutputStream convertToOutputStream(BufferedImage image, String format) throws IOException { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ImageIO.write(image, format, outputStream); return outputStream; } } ``` 在上面的示例中,`convertToOutputStream` 方法接受一个 `BufferedImage` 对象和一个字符串格式作为参数,并将其转换为 `ByteArrayOutputStream` 对象。你可以使用 `ImageIO.write()` 方法将图像写入输出中,其中第一个参数是图像对象,第二个参数是格式字符串,第三个参数是输出。 以下是如何使用该方法的示例: ```java import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.imageio.ImageIO; public class Main { public static void main(String[] args) { try { BufferedImage image = ImageIO.read(new File("path/to/your/image.jpg")); ByteArrayOutputStream outputStream = ImageConverter.convertToOutputStream(image, "JPEG"); // 现在你可以在这里使用 outputStream 了 } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的示例中,你需要将 `"path/to/your/image.jpg"` 替换为你自己的图像文件路径。然后,你可以使用 `outputStream` 进行进一步的处理,例如将其写入到文件或通过网络发送。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值