base64生成图片——图片转换变成base64

桃扇骨 2022-06-15 05:22 548阅读 0赞

base64生成图片——图片转换变成base64

如题。

下面上货。

  1. package com.xueyou.demo;
  2. import org.apache.commons.lang3.StringUtils;
  3. import sun.misc.BASE64Decoder;
  4. import sun.misc.BASE64Encoder;
  5. import java.io.*;
  6. import java.util.UUID;
  7. public class Base64Utils {
  8. /**
  9. * 根据base64编码生成图片,保存在Path中
  10. *
  11. * @param base64Code
  12. * @param filePath
  13. */
  14. public static boolean base64ToPic(String base64Code, String filePath) {
  15. if (base64Code == null) {
  16. return false;
  17. }
  18. //文件不存在
  19. File existsFilePath = new File(filePath);
  20. if (!existsFilePath.exists()) {
  21. existsFilePath.mkdir();
  22. }
  23. String handledBase64Code = "";
  24. if (StringUtils.contains(base64Code, "base64,")) {
  25. handledBase64Code = StringUtils.substringAfter(base64Code, "base64,");
  26. }
  27. BASE64Decoder decoder = new BASE64Decoder();
  28. try {
  29. //Base64解码
  30. byte[] b = decoder.decodeBuffer(handledBase64Code);
  31. for (int i = 0; i < b.length; ++i) {
  32. if (b[i] < 0) {//调整异常数据
  33. b[i] += 256;
  34. }
  35. }
  36. //生成jpeg图片
  37. String path = filePath + "/" + UUID.randomUUID() + ".jpg";
  38. OutputStream out = new FileOutputStream(path);
  39. out.write(b);
  40. out.flush();
  41. out.close();
  42. return true;
  43. } catch (Exception e) {
  44. return false;
  45. }
  46. }
  47. /**
  48. * 图片生成base64编码
  49. * @param imgPath
  50. * @return
  51. */
  52. public static String PicToBase64(String imgPath) {
  53. String result = "";
  54. File imgFile = new File(imgPath);
  55. if(!imgFile.exists()){
  56. System.out.println("非法路径");
  57. return result;
  58. }
  59. InputStream in = null;
  60. byte[] data = null;
  61. //读取图片字节数组
  62. try
  63. {
  64. in = new FileInputStream(imgFile);
  65. data = new byte[in.available()];
  66. in.read(data);
  67. in.close();
  68. }
  69. catch (IOException e)
  70. {
  71. e.printStackTrace();
  72. }
  73. //对字节数组Base64编码
  74. BASE64Encoder encoder = new BASE64Encoder();
  75. return encoder.encode(data);//返回Base64编码过的字节数组字符串
  76. }
  77. }

调用方式:

  1. package com.xueyou.demo;
  2. /**
  3. * Hello world!
  4. */
  5. public class App {
  6. public static void main(String[] args) {
  7. System.out.println("Hello World!");
  8. String base64Code = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAUADQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2TxJc3Vraxy2twYyrZdQBkjIwc/UYx3zWFoHxK0rVL+20t2kNzKG/0jaFi4Un5txBB47DHI/CbX7G5utUeaLMin5dpYDZjjAyeh6/ifx4+GCG2+K2ipe+X5ZtXLiUYUHbLxzwe3PSpc42XK09fmdNOEJQ11Oz1+100/bNWl8UapboqbzBZ6gqL8q4wi+px0zyTVCz8R2/gnQo5PEupXjTXfmTwQTB5pQNqkRbiB8wBXOdoy59Cam1fSzq/iXTbb+zrddGtXa5uJo/L/elQdqlSMkAjBAyCH7cVN4is4F8N6+Gt4gyafdEDYPkPkoePTBJx9a6Lx0OeKhJ3TdjStPFenah4Uh8Sh5LWwyWJnABADmM5Ck55zgDOTj6VwUniLxHD4/0qfUXuLdbu0eZNLUkJECJVjV1B+dvlViSAcnGBgCr3hDRbPxD8J9Dtbqe7i8ieS4RrVgrhxLKByQR/F/KsXUvC+py+KrOWyvdanRLcrLdT3Q8+NvnBCH72zkDpj5m96cXTi5K/cxlCbqWidVdeJtV89hFdqqjj5Y1IJ74JHT09sd6KpXlu8dyyuN0nV2kcAsx5JwecfXk9eM4BUKrTStf8DsWFvrzL/wJf5nc6hEqSK69XzkflXPRfDXwmTCDpZO5C5/0iX24+905oorzoRTrSTRzKUot8rsa82kWumw2qWAa2WJo40EZ6LuRMc5zxg85OQDWHPommeLNdntNcs1u0tTIYm8x4yDlEJ+QjOQq5+nGKKK9Om/cbOqjrSm3uaNj4J8PeG5Wu9J04W88myBn86R8o0i5GGYgdBz1qfVbVPmtg8qq2HDK5BUhiRjt19c9vQYKK55Ntu5y1W0oSW9/8jE1GztbXUZ7ZIAUiIClmbPKg+vqTRRRXnzfvM8mpia3O/ff3s//2Q==";
  9. //调用
  10. /*if(Base64Utils.base64ToPic(base64Code,"e:/333")){
  11. System.out.println("ok");
  12. }else{
  13. System.out.println("error");
  14. }*/
  15. //调用
  16. System.out.println(Base64Utils.PicToBase64("E:/702.jpg"));
  17. }
  18. }

发表评论

表情:
评论列表 (有 0 条评论,548人围观)

还没有评论,来说两句吧...

相关阅读