Java_14 字节转为base64、在字节数组中截取指定长度数组、二进制转为图片(传base64)

字节转为base64

public static String getString(byte[] b) {
    return Base64.encodeBase64String(b);
}

return "data:image/jpg;base64," + imageString;

在字节数组中截取指定长度数组

/**
 * 在字节数组中截取指定长度数组
 * @param src 传入数组
 * @param begin 开始
 * @param count 长度
 * @return 新数组
 */
public static byte[] subBytes(byte[] src, int begin, int count) {
    byte[] bs = new byte[count];
    System.arraycopy(src, begin, bs, 0, count);
    return bs;
}

二进制转为图片(传base64)

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(); 
/**
 * 将二进制转换为图片
 * @param base64String
 */
public 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();
    }
}

/**
 * 将图片转换成二进制
 * @return
 */ 
public 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; 
} 

posted @ 2021-11-27 23:20  睡个好觉"  阅读(486)  评论(0)    收藏  举报