Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。
1、.NET中图片以Base64方式输出
示例:将图片转换成Base64格式,并在HTML页面中显示图片。
本示例使用了ASP.NET MVC。
1.1 将文件转换成Base64格式方法
/// <summary>
/// 将文件转换成Base64格式
/// </summary>
public string FileToBase64(string fileName)
{
string result = "";
try
{
using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
byte[] byteArray = new byte[fs.Length];
fs.Read(byteArray, 0, byteArray.Length);
result = Convert.ToBase64String(byteArray);
}
}
catch
{
result = "";
}
return result;
}
1.2 MVC控制器代码
public ActionResult Index()
{
//本地图片路径
string fileName = @"F:\Images\MyPic.png";
//将图片转换成Base64格式
//"data:image/png;base64,"是编码方式(必须,否则页面上无法显示该图片)
ViewBag.MyPic = "data:image/jpeg;base64," + FileToBase64(fileName);
return View();
}
1.3 页面代码
<img src="@ViewBag.MyPic" />
2、HTML中显示Bate64方式的编码规则
如本示例中的:"data:image/png;base64," + Bate64编码
Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。
在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。
目前,Data URI scheme支持的类型有:
data:,文本数据
data:text/plain:文本数据
data:text/html:HTML代码
data:text/html;base64:base64编码的HTML代码
data:text/css:CSS代码
data:text/css;base64:base64编码的CSS代码
data:text/javascript:Javascript代码
data:text/javascript;base64:base64编码的Javascript代码
data:image/gif;base64:base64编码的gif图片数据
data:image/png;base64:base64编码的png图片数据
data:image/jpeg;base64:base64编码的jpeg图片数据
data:image/x-icon;base64:base64编码的icon图片数据
base64简单地说,它把一些 8-bit 数据翻译成标准 ASCII 字符,网上有很多免费的base64 编码和解码的工具。
目前,IE8、Firfox、Chrome、Opera浏览器都支持这种小文件嵌入,但是这种方法不兼容IE6/7,使用时要注意!