eskysky
发布于 2019-10-03 / 44 阅读
0

C# 判断图片base64编码后的大小

#C#
最近有一个需求,需要将图片转为base64编码后上传到服务器,同时转换成base64编码后的大小要小于4M。注意是转换成base64编码后的大小而不是图像文件原来的大小,这就无法用FileInfo类来获取大小。 既然要判断base64编码后的大小,那我们就要先对图片进行base64编码,先将图片载入pictureBox1控件中,然后使用以下代码把图片转成base64编码的形式。
//将图片转Base64编码
try
{
  System.IO.MemoryStream m = new System.IO.MemoryStream();
    System.Drawing.Bitmap bp = new System.Drawing.Bitmap(path);
    bp.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
    byte[] b = new byte[m.Length];
    m.Position = 0;
    m.Read(b, 0, (int)m.Length);
    m.Close();
    string base64 = Convert.ToBase64String(b);
}
catch (Exception ex) 
{ 
  MessageBox.Show(ex.Message); 
}
这个时候变量base64内储存的就是base64编码后的文本,我们要判断大小只要判断下这段文本所占的字节就行。
double size = base64.Length;// 获取文本所占字节大小
这样变量size内储存的就是变量base64内文本所占的大小,单位是字节,但这样不好读,我们再把单位转为M。 我们知道1兆字节=1048576字节,不知道的同学可以上网百度一下。 1M等于多少字节 那么现在就是数学问题了,直接将字节数除1048576就知道是多少M了,然后判断一下是否小于4就行了。
if (size / 1048576 < 4)
{
   //执行的语句
}else{
   MessageBox.Show("图片太大了");
}

本文版权归逸云蓝天所有,转载请注明出处并添加本文链接。