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转换为integer28
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小时内删除。
发表评论