Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。

1、.NET中图片以Bate64方式输出

示例:将图片转换成Bate64格式,并在HTML页面中显示图片。

本示例使用了ASP.NET MVC。

1.1 将文件转换成Base64格式方法

/// <summary>
/// 将文件转换成Base64格式
/// </summary>
public string FileToBase64(string fileUrl)
{
    string result = "";
    try
    {
        using (FileStream fs = new FileStream(fileUrl, 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 fileUrl = @"F:\Images\MyPic.png";

    //将图片转换成Base64格式
    //"data:image/png;base64,"是编码方式(必须,否则页面上无法显示该图片)
    ViewBag.MyPic = "data:image/png;base64," + FileToBase64(fileUrl);

    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,使用时要注意!


 

10-06 18:51