一. 自己實現(xiàn)byte數(shù)組拷貝
public class Base64Util {
// base64圖片 存儲的byte數(shù)組
private byte[] baseByte= new byte[0];
public static void main(String[] args) {
Base64Util base64Util = new Base64Util();
base64Util.base64Encoding();
}
private void base64Encoding(){
try {
// 從本地resource目錄下獲取圖片
ClassPathResource classPathResource = new ClassPathResource("/images/e88b27550495d06a041a7854fcd07b8c.jpg");
// base64圖片前綴
String pre = "data:image/jpg;base64,";
// 讀取圖片
FileInputStream fileInputStream = new FileInputStream(classPathResource.getFile());
// 讀取字節(jié)長度
int len = 0;
// baseByte數(shù)組的容量
int capacity = 0;
byte [] bytes = new byte[1024];
while ((len = fileInputStream.read(bytes)) != -1){
// 對原數(shù)組進行拷貝擴容
baseByte= Arrays.copyOf(baseByte, len + capacity);
// 將新數(shù)據(jù)拷貝到新擴容的數(shù)組
System.arraycopy(bytes, 0, baseByte, capacity, len);
// 數(shù)據(jù)容量增加
capacity += len;
}
// 獲取base64編碼器
Base64.Encoder encoder = Base64.getEncoder();
// 將字節(jié)數(shù)組轉換base64
String encodeToString = encoder.encodeToString(baseByte);
System.out.println("======>>>>>>:" + pre + encodeToString);
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
二. 使用ByteArrayOutputStream
public class Base64Util {
public static void main(String[] args) {
Base64Util base64Util = new Base64Util();
base64Util.base64Encoding();
}
private void base64Encoding(){
try {
// 從本地resource目錄下獲取圖片
ClassPathResource classPathResource = new ClassPathResource("/images/e88b27550495d06a041a7854fcd07b8c.jpg");
// base64圖片前綴
String pre = "data:image/jpg;base64,";
// 讀取圖片
FileInputStream fileInputStream = new FileInputStream(classPathResource.getFile());
// 讀取字節(jié)長度
int len = 0;
byte [] bytes = new byte[1024];
while ((len = fileInputStream.read(bytes)) != -1){
// 存儲讀取的字節(jié)數(shù)組
data.write(bytes, 0, len);
}
// 獲取字節(jié)數(shù)組
byte[] baseByte = data.toByteArray();
// 獲取base64編碼器
Base64.Encoder encoder = Base64.getEncoder();
// 將字節(jié)數(shù)組轉換base64
String encodeToString = encoder.encodeToString(baseByte);
System.out.println("======>>>>>>:" + pre + encodeToString);
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-697591.html
文章來源:http://www.zghlxwxcb.cn/news/detail-697591.html
到了這里,關于Java 實現(xiàn)圖片轉base64的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!