javabase64图⽚计算图⽚⼤⼩demo如下:
运⾏结果如下:package ller;import java.math.BigDecimal;public class Test { public static void main(String[] args) {  String photoStr = "/9j/4AAQSkZJRgABAQAAAQABAAD//gAc//4AGkltYWdlR2x1ZSBKUEVHIEV4cG9ydAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBA
//计算base64图⽚的字节数(单位:字节)  Integer size = imageSize(photoStr);  System.out.println("字节 = "+size);  //把字节转换单位为kb 或mb  String size2 = bytesToKB(size);  System.out.println("size2 = "+size2); } //计算base64图⽚的字节数(单位:字节) //传⼊的图⽚base64是去掉头部的data:image/png;base64,字符串 public static Integer imageSize(String imageBase64Str){  //1.到等号,把等号也去掉(=⽤来填充base64字符串长度⽤)  Integer equalIndex= imageBase64Str.indexOf("=");  if(imageBase64Str.indexOf("=")>0) {  imageBase64Str=imageBase64Str.substring(0, equalIndex);  }  //2.原来的字符流⼤⼩,单位为字节  Integer strLength=imageBase64Str.length();  System.out.println("imageBase64Str Length = "+strLength);  //3.计算后得到的⽂件流⼤⼩,单位为字节  Integer size=strLength-(strLength/8)*2;  return size; } /**  * byte(字节)根据长度转成kb(千字节)和mb(兆字节)  *    * @param bytes  * @return  */  public static String bytesToKB(long bytes) {    BigDecimal filesize = new BigDecimal(bytes);    BigDecimal megabyte = new BigDecimal(1024 * 1024);    float returnValue = filesize.divide(megabyte, 1, BigDecim
al.ROUND_DOWN).floatValue();    if (returnValue > 1) {  return (returnValue + "MB");  }  BigDecimal kilobyte = new BigDecimal(1024);    returnValue = filesize.divide(kilobyte, 1, BigDecimal.ROUND_DOWN).floatValue();    return (returnValue + "KB"); } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
bigdecimal转换为integer
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53imageBase64Str Length = 54939字节 = 41205
size2 = 40.2KB 1
2
3

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。