六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 86|回复: 0

BufferedImage byte数组转换

[复制链接]

升级  28%

22

主题

22

主题

22

主题

秀才

Rank: 2

积分
92
 楼主| 发表于 2013-1-15 02:17:28 | 显示全部楼层 |阅读模式
import java.io.ByteArrayOutputStream;import com.sun.image.codec.jpeg.ImageFormatException;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;import java.io.IOException;public static byte[] bufferedImageToByteArray(BufferedImage img)throws ImageFormatException, IOException {ByteArrayOutputStream os = new ByteArrayOutputStream();JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);encoder.encode(img);return os.toByteArray();} 
 
import java.io.IOException;import java.io.ByteArrayOutputStream;import javax.imageio.ImageIO;public static byte[] bufferedImage2ByteArray(BufferedImage image) throws IOException{ByteArrayOutputStream baos = new ByteArrayOutputStream();ImageIO.write(image, "jpeg", baos);return baos.toByteArray();} 
public static byte[] bufferedImage2ByteArrayByFile(BufferedImage image)throws Exception {DataInputStream dis = null;FileInputStream fis = null;FileOutputStream fos = null;byte[] buf = null;File file = null;file = new File("D:/tmp.jpg");fos = new FileOutputStream(file);ImageIO.write(image, "jpeg", fos);fos.close();fis = new FileInputStream(file);dis = new DataInputStream(fis);buf = new byte[dis.available()];dis.read(buf); dis.close();fis.close();file.delete();return buf;}必须要先关闭文件输入、输出流才能删除临时文件。(78ms) 
第一种方法效率高 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表