我使用以下c#代码将图像文件转换为base64字符串
using (var fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
var buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
var base64 = Convert.ToBase64String(buffer);
}
如何测试前后尺寸?即。图像文件大小和基本64字符串的大小。我想通过转换它来检查我是赢还是输。
答案 0 :(得分:7)
您可以使用简单的数学计算它。 base64的一个字符代表6位,因此四个字符代表三个字节。所以你得到每个字符3/4字节。这给出了:
int base64EncodedSize = 4 * originalSizeInBytes / 3;
根据数据的填充方式,它可能会被一两个字符关闭,但这不会产生影响。
另外,如果您怀疑base64可能更多有效,那么您与它进行比较的是什么?与原始二进制文件相比,它总是导致大小增加33%。
答案 1 :(得分:0)
你输了 - base64字符串将使用比原始图像更多的字节来存储。可能是 lot 更多,如果这是全内存的:.Net中的字符串是unicode,因此它们使用的字节数是ASCII编码字符串的两倍。