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

下面是关于“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#中的事件,包括事件的定义、事件的注册和注销以及如何触发事件。 定义事件 在C#中,事件是一种特殊的委托,它定义了一个回调函数的集合。定义事件的方式是使用event关键字,语法如下: public event EventHa…

    C# 2023年5月31日
    00
  • C# List集合中获取重复值及集合运算详解

    C# List集合中获取重复值及集合运算详解 在 C# 中,List 是一种常用的类型,可以实现可变大小的数组。经常遇到需要获取 List 集合中的重复值,以及对多个 List 进行集合运算的情况。本文将详细讲解如何在 C# 中实现这些操作。 获取 List 集合中的重复值 在 List 中获取重复值比较常见,一个最简单的方法是借助 Linq 进行查询。具体…

    C# 2023年6月1日
    00
  • C#向数据库中插入或更新null空值与延迟加载lazy

    以下是“C#向数据库中插入或更新null空值与延迟加载lazy”的完整攻略: 1. 数据库中插入null空值 1.1. 关于null空值 在数据库中,null表示该列没有任何值。如果您在插入数据时,某些值为空,则应将其设置为Null。 1.2. 插入null空值 在C#中,使用SqlParameter类的Value属性来插入null空值。以下是示例代码: u…

    C# 2023年5月15日
    00
  • C#操作SQLite实现数据的增删改查

    下面是详细讲解“C#操作SQLite实现数据的增删改查”的完整攻略,过程中将包含两条示例。 1. SQLite介绍 SQLite是一款开源,轻量级的关系型数据库,和其他大型数据库相比,SQLite具有占用资源少、启动快、数据存储在本地等优点。在不需要大规模并发及复杂查询的应用场景下,SQLite是一种非常合适的数据库。 2. 准备工作 在开始前,我们需要安装…

    C# 2023年5月15日
    00
  • C#如何给枚举类型增加一个描述特性详解

    C#可以通过给枚举类型增加描述特性(Description Attribute),为每个枚举成员添加对应的文字说明,方便代码的阅读和维护。 实现的步骤如下: 1. 定义枚举类型 首先需要定义一个枚举类型,以示例说明为例: public enum Gender { [Description("未知")] Unknown = 0, [Desc…

    C# 2023年6月1日
    00
  • C#中的值传递和引用传递详细解析

    C#中的值传递和引用传递详细解析 在C#语言中,函数参数传递过程中存在值传递和引用传递两种方式。它们的区别在于传递的方式不同,对于函数中的操作也会造成不同的影响。 值传递(Value Types) 值传递是指将参数值的副本传入函数内部。在函数中对参数值的任何改变都只会影响到该参数的副本,不会影响到原始值。 示例一: public static void Ma…

    C# 2023年5月31日
    00
  • C# 无边框窗体边框阴影效果的简单实现

    针对“C# 无边框窗体边框阴影效果的简单实现”,以下是完整攻略: 标题 在文章开头设置一个一级标题,表示文章的主要内容。 # C# 无边框窗体边框阴影效果的简单实现 需求 在介绍实现方法之前,需要确定要实现的需求,指明要实现的功能。 无边框窗体边框阴影效果可以提升软件的美观度和用户体验度,所以是实现目标之一。 实现步骤 自定义窗口样式 首先需要将窗口的边框去…

    C# 2023年6月3日
    00
  • 详解C#如何在不同工作簿之间复制选定单元格区域

    当我们需要将一个工作簿中的选定单元格区域复制到另一个工作簿中时,可以使用 C# 语言来实现。以下是详细攻略: 步骤 1:打开工作簿文件 首先,我们需要打开想要进行复制操作的源工作簿文件和目标工作簿文件,可以使用 Excel.Workbook 类中的 Open() 方法来打开指定路径下的工作簿文件。 using Excel = Microsoft.Office…

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