java图片二进制相互转换

来源:互联网 发布:oecd数据库 编辑:程序博客网 时间:2024/05/23 18:30
import java.awt.image.BufferedImage;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;public class A {static BASE64Encoder encoder = new sun.misc.BASE64Encoder();static BASE64Decoder decoder = new sun.misc.BASE64Decoder();public static void main(String[] args) {System.out.println(getImageBinary());base64StringToImage(getImageBinary());}/** * 将图片转换成二进制 *  * @return */static String getImageBinary() {File f = new File("e:/1.jpg");BufferedImage bi;try {bi = ImageIO.read(f);ByteArrayOutputStream baos = new ByteArrayOutputStream();ImageIO.write(bi, "jpg", baos);  //经测试转换的图片是格式这里就什么格式,否则会失真byte[] bytes = baos.toByteArray();return encoder.encodeBuffer(bytes).trim();} catch (IOException e) {e.printStackTrace();}return null;}/** * 将二进制转换为图片 *  * @param base64String */static void base64StringToImage(String base64String) {try {byte[] bytes1 = decoder.decodeBuffer(base64String);ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);BufferedImage bi1 = ImageIO.read(bais);File w2 = new File("e://QQ.jpg");// 可以是jpg,png,gif格式ImageIO.write(bi1, "jpg", w2);// 不管输出什么格式图片,此处不需改动} catch (IOException e) {e.printStackTrace();}}}


1 1