Java实现Base64码与图片互转
介绍Java实现Base64码与图片互转方法
工具类
import java.io.*;
import org.apache.commons.codec.binary.Base64;
public class Base64ImageUtils {
/**
* 图片转化成base64字符串
* 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
* @param imgPath
* @return
*/
public static String getImageBase64Str(String imgPath) {
File imgFile = new File(imgPath); // 待处理的图片
if (!imgFile.exists()) {
return null;
}
InputStream in = null;
byte[] data = null;
String encode = null; // 返回Base64编码过的字节数组字符串
// 对字节数组Base64编码
try {
// 读取图片字节数组
in = new FileInputStream(imgFile);
data = new byte[in.available()];
int len = in.read(data);
if (len > 0) {
return new String(Base64.encodeBase64(data));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/**
* base64字符串转化成图片
* 对字节数组字符串进行Base64解码并生成图片
* @param imgData 图片编码
* @param imgPath 存放到本地路径
* @return
* @throws IOException
*/
public static boolean generateImage(String imgData, String imgPath) throws IOException {
if (imgData == null) // 图像数据为空
return false;
OutputStream out = null;
try {
out = new FileOutputStream(imgPath);
// Base64解码
byte[] b = Base64.decodeBase64(imgData);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
out.write(b);
out.flush();
return true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
out.close();
}
}
return false;
}
}
测试
public static void main(String[] args) throws Exception {
String imageStr = Base64ImageUtils.getImageBase64Str("C:\\Users\\yezhou\\Downloads\\logo128.jpg");
System.out.println(imageStr);
String imageData = "/9j/4AAQSkZJRgABAAEBLAEsAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCEAAUFBQgFCAwHBwwMCQkJDA0MDAwMDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0BBQgICgcKDAcHDA0MCgwNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDf/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIAIAAgAMBEQACEQEDEQH/2gAMAwEAAhEDEQA/APsugAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoApT3otp44ZBhZsqr543jkIeOCwztJPJ4APOOOpXVGrTozTUal1GfTnWqg+zkruL6tW3Fe2hdrsGFAFFr0C5W0RSzFS7sDxGv8OfUseAAc4+bpXG669vHCwTlLlc5tbQjtG/nN3SW9k3sK+ti9XYMKACgAoAKACgAoAwNa8QwaMNrfvJSMhAcY92POB+BPtjmgDD0PxJdaveiEqiRAMxCg5wAcckn+IryPXpQB3dABQAUAed+JfEqzE6fZL5zkgbxk4YHjy9vJYHowPsAQc18NmeZRq3wWFj7SV0nNXdpp3Xs0tXJNfFtfa5lKXRHDXuq6g8hW5klDjgqxZcf8B4A/IV8rWxGJnJxxFSpzLRxbcbeXKrJfcZ3fUgg1O8hYGKWRTngKxGfyIzWMMRWpu9OpUT8py/K+oXa2Oz0XxJJpk7RanGytOwZpGUiToAu4HqoHQADHOAc4r6bBZlPB1JU8fBp1GpSqNNTWiScl1gktLJWV7JlqVtz09HWRQ6EFWAII5BB5BB9DX6CmpJSi001dNbNPZo2HVQBQAUAFABQBWvLkWcEk55EaFsepA4H4nigDwmaSbUZy5zJJI3YEkk+g/kB9BQB6t4X0M6TEZJh++lxkf3V67fqTy3bgDsSQDqaACgDm/FeoNp1gxQ7XlIjU+mQS3/joIBHQnNeDm2IeGwsnB2lNqCfVXvdrz5U7eZEnZHjun30mnXCXUYBeM5wwyDkEHPTqCf6c1+aYetLC1YV6duaDuk9no00/k+mpitNULqeoSapcNcygBnxwowAAAB6noB3qsTiJYurLEVLKUraLRJJWS+7qwbvqVbeZraRZk+9GwYZ6ZU5H6iueE3TlGpD4otSXqndaC2NLWdYl1qYTShV2qFAUEDAJPck9Se9duLxc8dUVWqopqKilG9krt9bvdsbdz0PwLqDXFu9s5JMBBUn+62ePwIz/AMC9MV9nkWIdSlPDSf8ADacf8Mr6eiadvWxrB9Duq+vNAoAKAOO13xYmmsYLYCSZeGJ+6p9OOpHfkAHjkggAHFN4t1ItuEuB/d2pj6fdoA2IvGS3MRgv4t6sMEoSuecjj+ZBX6UAZp8SraHGnQR2/bcRvf8A76bPHtigAt/GOoRNl2WUejKo/wDQQp/WgD0HRPEEGsLtX93MoyUJ7eqnuPXuPpgkAz9X8YQaVcfZghlZcbznaBnnjg5I79OeOoNfMYzOKeEqvDxpubjbmakopN62Wju7b7LpczcraC63rVqLGK8aFbqKV8Kr4G07WyfuuMgqVOPfBxTxuNofVqWKdJVqc5LljKy5XaV3qpaqzT/Mbatc4/8A4SbT/wDoHQfmv/xqvm/7Swv/AEA0/vj/APIGfMuwf8JNp/8A0DoPzX/41R/aWF/6Aaf3x/8AkA5l2D/hJtP/AOgdB+a//GqP7Swv/QDT++P/AMgHMuwf8JNp/wD0DoPzX/41R/aWF/6Aaf3x/wDkA5l2On8N61aXTSmK3js1jTe7KR0UjOcIvAznvXu5bjaFWVX2dCFBQgpSkmtUm97RjotWXFrtY0rLxXY30/2aMsrE4UsAFY+gwSRnoMgZOB1IFd1DNsNiKqoQ5k27Rco2Un2Wt030ulf10GpJ6HS175Zk65fHTrOSZeGA2r7M3AP/AAHO78KAPDGYuSx6mgBtABQAUAKBk4oA9n8P6FFpcKuyg3DDLMeq5H3R6YBwSOTz2wAAeWeJ/wDkJT/75r8hzH/fK/8Aj/RHO92a19/yL1r/ANd3/nNXp1/+RXh/+vsvzqDfwo4qvmCAoAKACgDuPB1r9sF1b52+ZCy59CSuD+Br6fKKX1h4mg3bno8t+129S49V5HIuslhOVOUkifHuCp/mCPzr5xqdGbi/dnCXzUov9GiNj3jStRXUbRLrIGV+fsFYfe+gzyM/wkGv1/B4hYuhCut2veXaS0kvv28rHSndXPNvFGvnUpPs8BxBGf8Avtum4+3YD05PJwveM5CgAoAKACgC3YANcRhuhdQfpnmgD6AoA8J8T/8AISn/AN81+Q5j/vlf/H+iOd7s1b//AJF61/67v/OavSr/APIrw/8A19l+dQb+FHF18yQFABQAUAeh/D//AF8v+5/7MtfYZB/Gq/8AXuP/AKUaQ3IvHWl+ROt4g+WbhvZx/wDFDBA7kMTUZ5hfZVY4qC92ppLyml/7dH8UwkranLWurXFvbvZI22KUhjjrwMEZ9Dxn12gdMg3kWJ9nUlhJP3anvQ/xpar/ALeivvj5hB20NCx0Oa8t5bsfLHCpOSPvEckD6Lkk/T14/QjYxKACgAoAKAFU7TkdqAPaPD+uR6rCFYgToMOp6nH8Q9c9x2PtgkA8+8UaPdfb3kSNnSU5UqCQc9uO4PGOvGcYIz+X5nhK0cVUmoSlGpLmi4xbTulponZp9H6mElqXtcspNP0S2gmGHEpJHpuEjAH3AIz712Y2jPDZdh6VVWmqjbXbmU5W9VfXzG1aKR5/XyJmFABQAUAeh/D/AP18v+5/7MtfYZB/Gq/9e4/+lGkNzv8AWNOXVLV7Y4BYZQnsw5H0B6HHYmvssbhljKE6D0bV4vtJaxf36PybNWrqx5bp/g+8luRHcIYolPzMcdB/d7EntjIz14r4PBZbio4mm6kHTjTmpSk2re672i09b7adHqYqLuevRW0cEQgRQIwu3b2weufXPc9SSSa/TDc8Q1rTm0u6eA525yp9VPQ/l198jtQBlUAFABQAUAdL4W09728VlyqREO5HoOg/4EePXBJHSgD2agDi/HVvJNZK0YJEcgLY7Aqwz+ZA+pFfKZ7CUsNGUVdQqJyt0TUld+V2vvM57Hj5Ur1GK/OPQxAAnpRsAFSvUYo9AAAnpRsB6R4At3V5pSCE2hcnjkkHA/Ac+mR6ivtMghLnq1be5yxjfpe7dl6LftdGkD0yvvjYKACgDnvEOiDWIfkwJo+UPr6qfr29D3AJoA8bnge1cxSgo6HBB4IoAv2WiXmoLvt4mZemeAD9CxAP50ANvdHu9OG64jZF9eo/76GVz7ZoArWdnLfSrBCpZ2PQfzPoPc4HqcUAe16LpKaRbiFeXPLt6t/gOg/E4yTQBrUABAYYPIPUUmr6PYDzfx1aw28MJijSMlnyVVVz93rgCvhs9pU6UKPs4RjeUr8sUr6LeyRlPS1jJ8DQR3F3IsqLIBEThlDDO9OcEH1rz8khCpiJxqRjJezbtJJq/NHXUmO5seObSG3t4jDGkZLnJVVXsPQCvRz2lTpU6TpQjG83flio393ySKnpsYfgiCOe9ZJVV18ljhlDDO6PnBB5rzMlhGpiZRqRUl7Nu0kmvij3JjuevxxrEoRAEUdAoAA/AcV+lRjGC5YJRS2SSSXyRuPqgCgAoAKAPFfFX/ITn+qf+i0oA9E8If8AIOT/AHm/nQBH4x408/76/wAmoA4Xwh/yEo/o/wD6LegD2SgAoAKAOL8bafNe2yPApfymO4Dk4OOcegxz9c9MkfKZ3h6lalCdKLl7OTckld2atdJau1tbd7mclpoZPgbTJ7eWS5lQxoUKDcMZJZTx6gbeT7j3x52RYerCpPETi4w5OVcyau3JPRPWytq/MUFbU7nVNLh1aHyJwcZyCOCp6ZHUd+hH64I+txeEp42n7Gte17prRxfdfk09GjRq+hT0bw/b6JuMOWd+CzYzj0GOgJwT1zgelcuCy6ll/M6bcpy0cpWvbeySskur7iUeXY3a9koKACgAoAKAMDU/Ddpqkgml3I/GShA3Y45yp7cZGOAPSgDXtLWOyiWCEbUToPryT9SSSaAMjxLZS31k0cI3OCG29yBkHHvznHU44ycCgDjPCWk3UV6s8kbxpGGyXUrklSoAzjJyc8dgc9sgHqVABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAH//Z";
Base64ImageUtils.generateImage(imageData, "C:\\Users\\yezhou\\Downloads\\mylogo.jpg");
}
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/26/java-implementation-of-base64-code-and-image-conversion/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
打赏
海报
Java实现Base64码与图片互转
介绍Java实现Base64码与图片互转方法
工具类
import java.io.*;
import org.apache.commons.codec.binary.Base64;
public class Base64ImageUtils {
/……
文章目录
关闭
共有 0 条评论