java图片与byte数组的转换?我怎么转换不回去呀???
[code="java"]
package com.image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageWithByte {
public static byte[] image2Bytes(String imagePath) throws Exception {
BufferedImage bu=ImageIO.read(new File(imagePath));
ByteArrayOutputStream imageStream = new ByteArrayOutputStream();
try {
boolean resultWrite = ImageIO.write(bu, "jpg", imageStream);
} catch (Exception e) {
e.printStackTrace();
}
imageStream.flush();
byte[] tagInfo = imageStream.toByteArray();
return tagInfo;
}
public static void main(String[] args) throws Exception {
byte[]info=image2Bytes("D:/我的文档/许女子.jpg");
ByteArrayInputStream imageStream = new ByteArrayInputStream(info);
BufferedImage image=ImageIO.read(imageStream);
String newFilePath="d:/我的文档/图片收藏/许女子.jpg";
//BufferedImage image=ImageIO.read(new File("D:/我的文档/许女子.jpg"));
ImageIO.write(image, "jpg", new File(newFilePath));
}
}
[/code]
[code="java"]import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import javax.imageio.ImageIO;
public class TestImage {
public static byte[] toByteArray(File imageFile) throws Exception {
BufferedImage img = ImageIO.read(imageFile);
ByteArrayOutputStream buf = new ByteArrayOutputStream((int) imageFile.length());
try {
ImageIO.write(img, "jpg", buf);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return buf.toByteArray();
}
public static void main(String[] args) throws Exception {
byte[] b = toByteArray(new File("d:/Wallpapers/003.jpg"));
ByteArrayInputStream in = new ByteArrayInputStream(b);
BufferedImage image = ImageIO.read(in);
File newFile = new File("d:/Wallpapers/1.jpg");
ImageIO.write(image, "jpg", newFile);
}
}[/code]
应该没问题的,检查你的文件路径。
如果有异常,把异常信息也贴出来