Base64是文件变大

一 概述

        今天在使用七牛接口的时候,当文件经过byte[]通过Convert.ToBase64String转换成Base64编码字符串之后,文件大小变大了。

        文件从30M左右变成了40M左右的文件

二 Base64编码表

        首先我们了解一下Base64为的编码表

        

三 Base64编码是如何使得图片变大

        Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24位数据,再把这24位数据分成4组,即每组6位。再在每组的的最高位前补两个0凑足一个字节。这样就把一个3字节为一组的数据重新编码成了4个字节。当所要编码的数据的字节数不是3的整倍数,也就是说在分组时最后一组不够3个字节。这时在最后一组填充1到2个0字节。并在最后编码完成后在结尾添加1到2个"="。

        根据上述规律,那么图片从30M左右变成40M左右时正常的。

        参考:
java 流 base64 大文件_base64编码处理大文件_Ruin-鸣的博客-CSDN博客在做项目的时候遇到需要将文件转为base64编码,并存储在文件中。在将文件转为base64编码是会将文件读入内存,进行base64编码,输出到文件中。代码入下:12345678910FileInputStream stream =newFileInputStream("D:\\桌面\\程序员-第4版.pdf");ByteArrayOutputStreamout=newByteArrayOut...https://blog.csdn.net/weixin_42109925/article/details/114113297        java实现图片文件转Base64编码加密解密_chnjg的博客-CSDN博客_java文件转base64http://imgbase64.duoshitong.com/ 图片转换Base64 java实现图片文件转Base64编码加密解密 ...https://blog.csdn.net/qq_38422016/article/details/94737596        利用Java实现对文件的简易Base64编码_zhaojunpang的专栏-CSDN博客 import java.io.*; import sun.misc.*; public class base64 { public static void main(String []args) {       try      {           FileInputStream   fileForInput   =   new   FileInputStream("d://mini.swfhttps://blog.csdn.net/zhaojunpang/article/details/3013755        Base64编码的长度问题-文件越大Base64的值越长_weixin_34221276的博客-CSDN博客base64编码介绍 | Base64 EncodeBase64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。(经过编码,人们肯定直接看不懂)在MIME格式的电子邮件中,base64可以用来将binary的字节序列数据编码成ASCII字符序列构成的文...https://blog.csdn.net/weixin_34221276/article/details/93465859        Base64编码为什么会使数据量变大?_feng200711021053的专栏-CSDN博客icon-default.png?t=M1L8https://blog.csdn.net/feng2007110221053/article/details/9020689

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Base64编码后的文件大小可以通过以下方法计算得出。在C#中,可以使用下面的代码实现: ```csharp /// <summary> /// 根据base64字符串获取文件大小 /// </summary> /// <param name="fileBase64Str">文件base64字符串</param> private int GetFileSizeFromBase64(string fileBase64Str) { var padding = 0; if (fileBase64Str.EndsWith("==")) { padding = 2; } else if (fileBase64Str.EndsWith("=")) { padding = 1; } var fileSize = fileBase64Str.Length * 3 / 4 - padding; return fileSize; } ``` 这个方法首先检查Base64字符串的结尾部分,根据是否有填充字符"="或"==",确定需要减去的填充大小。然后,根据Base64字符串的长度计算出文件大小。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [通过Base64计算文件大小](https://blog.csdn.net/shujudeliu/article/details/129744326)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [base64计算文件大小方法(C#和js)](https://blog.csdn.net/qq_40732336/article/details/119054489)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值