C# 判断图片base64编码后的大小
最近有一个需求,需要将图片转为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字节,不知道的同学可以上网百度一下。
那么现在就是数学问题了,直接将字节数除1048576就知道是多少M了,然后判断一下是否小于4就行了。
if (size / 1048576 < 4) { //执行的语句 }else{ MessageBox.Show("图片太大了"); }
本文版权归逸云蓝天所有,转载请注明出处并添加本文链接。