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# DataTable常见用法汇总

    C# DataTable常见用法汇总 本攻略将详细讲解C# DataTable的常见用法,包括创建、增删改查、排序、筛选、数据类型转换等。 创建DataTable 创建DataTable之前需要先声明DataTable对象和数据列,并在表对象中添加数据列,代码如下: //声明表对象 DataTable dt = new DataTable(); //添加数据…

    C# 2023年5月31日
    00
  • C#如何处理JSON

    当使用C#开发Web应用或其他需要使用API的系统时,通常需要处理JSON来交换数据。JSON是一种轻量级的数据格式,易于读写和解析。下面是一些使用C#处理JSON的方法。 第一步:导入Newtonsoft.Json库 使用C#处理JSON的其中一种方法是使用Newtonsoft.Json库,它是一个开源的JSON框架,可以方便地将JSON字符串解析为C#对…

    C# 2023年5月14日
    00
  • C#判断字符串中是否包含指定字符串及contains与indexof方法效率问题

    C#中判断一个字符串是否包含子字符串是一个常用的任务。本文将讲解如何使用C#的contains和indexof方法来实现这个任务,并探讨它们的效率问题。 contains方法 contains方法是String类中的一种方法,用于判断一个字符串是否包含指定的子字符串。代码示例如下: string str1 = "hello world";…

    C# 2023年6月8日
    00
  • C#中逆变的实际应用场景详解

    当使用C#中的委托和泛型时,有一些重要的概念需要了解,其中逆变(covariance)是其中之一。逆变可以帮助我们更方便地使用委托和泛型,并且适用于某些特定的场景。 在C#语言中,逆变指的是类型参数的子类型关系与泛型类型参数的子类型关系是相反的。例如,对于比较两个对象大小的委托,如果我们要声明一个返回值为bool类型的委托,它的输入类型为两个object类型…

    C# 2023年5月15日
    00
  • C# interface与delegate效能比较的深入解析

    让我来为你详细讲解“C# interface与delegate效能比较的深入解析”的完整攻略。 1. 前言 在 C# 中,接口(interface)和委托(delegate)是基础的编程技术特性。在一些时候,它们可以被很有效地用于达到相同的目的。 在本文中,我们将对它们进行深度对比,分析它们之间的性能差异和适用场景,并展示两个示例来说明它们的性能差异。 2.…

    C# 2023年6月1日
    00
  • .NET Core中使用gRPC的方法

    使用gRPC是在.NET Core中构建分布式应用程序的一种流行方法。下面是在.NET Core中使用gRPC的完整攻略: 步骤1:创建gRPC服务 在Visual Studio中创建一个新的.NET Core项目,选择gRPC服务模板。这将创建一个含gRPC服务定义和实现的项目。 步骤2:定义gRPC服务 在.proto文件中定义gRPC服务。这个文件描述…

    C# 2023年5月12日
    00
  • c#基础系列之System.String的深入理解

    C#基础系列之System.String的深入理解 前言 String 是 C# 中的一个非常重要且常用的数据类型,使用频率很高。本文主要讲解 String 的定义、初始化、赋值、整体替换、部分替换、常见方法、比较方式、特殊字符的处理等。 定义和初始化 定义一个 String 变量,可以使用以下语法: string str; 这样定义的变量不会被初始化,其值…

    C# 2023年6月7日
    00
  • C#多线程编程中的锁系统基本用法

    接下来就为大家详细讲解C#多线程编程中的锁系统基本用法的完整攻略。 什么是锁(Lock) 锁用于多线程编程中,是一种用于避免竞争访问共享资源的同步机制。在多线程程序中,多个线程可能同时访问同一个共享资源,如果不采取任何措施,就会产生“竞态条件”,导致程序出现不可预期问题。 为了避免这种情况,我们可以引入锁机制,来确保只有一个线程能够同时访问共享资源,从而避免…

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