c# Base64编码和图片的互相转换代码

yizhihongxing

下面是关于“c# Base64编码和图片的互相转换代码”的完整攻略:

Base64编码

Base64编码是将二进制数据通过64个可打印字符来表示的一种编码方式。在C#中,我们可以使用Convert.ToBase64String()方法将一个byte数组进行Base64编码,方法原型如下:

public static string ToBase64String (byte[] inArray);

该方法接收一个byte数组参数,返回一个Base64编码后的字符串。下面是一个示例:

using System;

class Program
{
    static void Main(string[] args)
    {
        // 定义一个图片路径
        string imagePath = @"C:\Users\admin\Desktop\pic.jpg";
        // 读取图片数据
        byte[] imageBytes = System.IO.File.ReadAllBytes(imagePath);
        // 进行Base64编码
        string base64String = Convert.ToBase64String(imageBytes);
        // 输出编码后的字符串
        Console.WriteLine(base64String);
    }
}

上述代码中,我们首先通过System.IO.File.ReadAllBytes()方法读取了一张图片的二进制数据,然后调用Convert.ToBase64String()方法进行Base64编码。最后输出编码后的字符串。

Base64解码

与Base64编码相对应的是Base64解码。在C#中,我们可以使用Convert.FromBase64String()方法将一个Base64编码的字符串解码为byte数组,方法原型如下:

public static byte[] FromBase64String (string s);

该方法接收一个string类型参数,返回一个解码后的byte数组。下面是一个示例:

using System;

class Program
{
    static void Main(string[] args)
    {
        // 定义一个Base64编码后的字符串
        string base64String = "iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAAD/hv+RAAAAA1BMVEUAAP///8+9ZRTAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==";
        // 解码为byte数组
        byte[] imageBytes = Convert.FromBase64String(base64String);
        // 输出解码后的byte数组大小
        Console.WriteLine(imageBytes.Length);
    }
}

上述代码中,我们首先定义了一个Base64编码后的字符串,然后调用Convert.FromBase64String()方法将其解码为byte数组。最后输出解码后的byte数组大小。

图片转Base64编码

将图片转为Base64编码也非常简单,直接调用第一部分中介绍的Convert.ToBase64String()方法即可,代码如下:

using System;

class Program
{
    static void Main(string[] args)
    {
        // 定义一个图片路径
        string imagePath = @"C:\Users\admin\Desktop\pic.jpg";
        // 读取图片数据
        byte[] imageBytes = System.IO.File.ReadAllBytes(imagePath);
        // 进行Base64编码
        string base64String = Convert.ToBase64String(imageBytes);
        // 输出编码后的字符串
        Console.WriteLine(base64String);
    }
}

Base64编码转图片

同样的,在C#中将Base64编码还原为图片也非常简单,只需要先将其解码为byte数组,然后使用System.IO.File.WriteAllBytes()方法将byte数组写入到文件即可,代码如下:

using System;

class Program
{
    static void Main(string[] args)
    {
        // 定义一个Base64编码后的字符串
        string base64String = "iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAAD/hv+RAAAAA1BMVEUAAP///8+9ZRTAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==";
        // 解码为byte数组
        byte[] imageBytes = Convert.FromBase64String(base64String);
        // 将byte数组写入到文件
        System.IO.File.WriteAllBytes("pic.jpg", imageBytes);
    }
}

上述代码中,我们首先定义了一个Base64编码后的字符串,然后调用Convert.FromBase64String()方法将其解码为byte数组;最后使用System.IO.File.WriteAllBytes()方法将byte数组写入到文件中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# Base64编码和图片的互相转换代码 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • C#自定义事件及用法实例

    C#自定义事件及用法实例 在C#编程中,事件是编写高效程序不可缺少的一个重要部分。在C#中,可以使用内置的事件(System.EventHandler)来对事件进行处理。同时,也可以使用自定义的事件来实现特定要求的事件处理。 本文将详细介绍C#自定义事件及用法实例,帮助读者更好地理解事件机制并掌握自定义事件的应用。 什么是C#自定义事件 自定义事件是基于内置…

    C# 2023年6月1日
    00
  • .NET 中配置从xml转向json方法示例详解

    以下是关于在.NET中配置从XML转向JSON方法示例详解的攻略: 1. 问题描述 在.NET中,我们可以使用XML或JSON格式来配置应用程序。在某些情况下,我们可能需要将XML配置转换为JSON格式。本攻略将介绍如何在.NET中将XML配置转换为JSON。 2. 解决方案 在.NET中,我们可以使用System.Xml.Linq和System.Text.…

    C# 2023年5月12日
    00
  • c#数据的序列化和反序列化(推荐版)

    C#数据的序列化和反序列化(推荐版) 什么是序列化和反序列化 在计算机科学中,序列化是指将对象转换为可以存储或传输的格式的过程。 反序列化是指将序列化后的数据还原为对象的过程。 在C#中进行序列化和反序列化通常使用的是.NET Framework提供的System.Runtime.Serialization命名空间下的类库。 序列化 C#中进行序列化的方式通…

    C# 2023年5月31日
    00
  • C# 泛型字典 Dictionary的使用详解

    C# 泛型字典 Dictionary的使用详解 C#中的泛型字典Dictionary,是将键和值进行映射的一种数据结构。Dictionary在C#编程中非常常用,因为它支持高效的键值查找,非常适用于存储一组数据,并且能够快速根据键名找到对应的值。 基本语法 Dictionary属于System.Collections.Generic命名空间,所以要使用Dic…

    C# 2023年5月15日
    00
  • C# ContainsValue(Object):确定集合是否包含具有指定值的元素

    C# ContainsValue(Object)方法详解 1. 方法介绍 ContainsValue()方法是C#中Dictionary集合类的一个方法,用于判断字典中是否包含指定的值。 语法结构如下所示: public bool ContainsValue(TValue value); 2. 参数说明 value:要在字典中查找的值。 3. 返回值 如果字…

    C# 2023年4月19日
    00
  • 详解c# 委托链

    详解 C# 委托链 委托链的概念 C# 委托(Delegate)是一种类型,用于封装方法,并将该方法的调用形式与该方法的委托类型相匹配。委托允许将方法作为参数传递给其他方法,并且在需要时执行该方法。 委托链是一组委托对象,可以在这组委托中添加、删除和执行委托。 委托链的用途 委托链非常有用,可以以简单优美的方式表示程序控制流。例如,我们可以使用委托链在事件的…

    C# 2023年5月15日
    00
  • jquery实现pager控件示例

    jQuery是一个流行的JavaScript库,它可以帮助开发人员更轻松地操作HTML文档、处理事件和执行动画等。本文将介绍如何使用jQuery实现一个分页控件,以便在Web应用程序中显示大量数据。 实现分页控件 以下是使用jQuery实现分页控件的步骤: 步骤1:创建HTML结构 首先,我们需要创建一个HTML结构来显示分页控件。以下是一个基本的HTML结…

    C# 2023年5月15日
    00
  • C# 正则表达式 使用介绍

    C# 正则表达式使用介绍 什么是正则表达式 正则表达式是一种用来描述字符串模式的表达式。它可以用来匹配、查找、替换文本中的字符串,非常适用于数据处理、文本分析等方面。正则表达式的写法非常灵活,可以使用特定的符号来表示文本中的各种模式,并且可以进行组合、嵌套等操作。 C#中的正则表达式 C#中正则表达式的使用由System.Text.RegularExpres…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部