C#实现的图片、string相互转换类分享

下面是详细讲解“C#实现的图片、string相互转换类分享”的完整攻略:

简述

在C#编程中,我们常常需要将图片转换为字符串或将字符串转换为图片。要实现这一功能,需要一个类来帮助我们完成这一操作。在本文中,我们将分享一个通用的图片与字符串相互转换的类,以供大家参考使用。

实现过程

1. 将图片转换为字符串

步骤

  • 加载图片,使用Bitmap类;
  • 将图片转换为字节数组,使用MemoryStream类的ToArray()方法;
  • 将字节数组转换为Base64字符串,使用Convert类的ToBase64String()方法。

示例

//加载图片
Bitmap image = new Bitmap(@"C:\Images\TestImage.jpg");
//将图片转换为字节数组
byte[] byteArr = null;
using (MemoryStream stream = new MemoryStream())
{
    image.Save(stream, image.RawFormat);
    byteArr = stream.ToArray();
}
//将字节数组转换为Base64字符串
string base64Str = Convert.ToBase64String(byteArr);

2. 将字符串转换为图片

步骤

  • 将Base64字符串转换为字节数组,使用Convert类的FromBase64String()方法;
  • 将字节数组转换为图片,使用MemoryStream类和Bitmap类。

示例

//将Base64字符串转换为字节数组
byte[] byteArr = Convert.FromBase64String(base64Str);
//将字节数组转换为图片
using (MemoryStream stream = new MemoryStream(byteArr))
{
    Bitmap image = new Bitmap(stream);
}

完整代码

下面是将图片转换为字符串和将字符串转换为图片的完整代码:

using System;
using System.Drawing;
using System.IO;

namespace ImageToStringConvert
{
    public static class ImageToStringConvert
    {
        /// <summary>
        /// 将图片转换为字符串
        /// </summary>
        /// <param name="imageFilePath">图片路径</param>
        /// <returns></returns>
        public static string ImageToBase64(string imageFilePath)
        {
            //加载图片
            Bitmap image = new Bitmap(imageFilePath);
            //将图片转换为字节数组
            byte[] byteArr = null;
            using (MemoryStream stream = new MemoryStream())
            {
                image.Save(stream, image.RawFormat);
                byteArr = stream.ToArray();
            }
            //将字节数组转换为Base64字符串
            string base64Str = Convert.ToBase64String(byteArr);
            return base64Str;
        }

        /// <summary>
        /// 将字符串转换为图片
        /// </summary>
        /// <param name="base64Str">Base64字符串</param>
        /// <returns></returns>
        public static Bitmap Base64ToImage(string base64Str)
        {
            //将Base64字符串转换为字节数组
            byte[] byteArr = Convert.FromBase64String(base64Str);
            //将字节数组转换为图片
            using (MemoryStream stream = new MemoryStream(byteArr))
            {
                Bitmap image = new Bitmap(stream);
                return image;
            }
        }
    }
}

总结

通过上面的示例代码,我们可以看到,实现图片与字符串相互转换的功能是比较简单的。只需要使用C#的相关类,就可以完成这一操作。希望这篇文章能够对大家在开发中遇到相同问题时提供帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现的图片、string相互转换类分享 - Python技术站

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

相关文章

  • C#四舍五入(函数)用法实例

    C#四舍五入(函数)用法实例 在 C# 中,我们可以使用 Math.Round 函数来进行数值的四舍五入操作,该函数的语法如下: public static double Round (double d); public static double Round (double value, int digits, MidpointRounding mode …

    C# 2023年6月8日
    00
  • asp.net 多字段模糊查询代码

    请允许我详细讲解一下实现 ASP.NET 多字段模糊查询的完整攻略。以下是步骤和代码示例: 1. 创建 ASP.NET Web 应用程序 首先,在 Visual Studio 中创建一个 ASP.NET Web 应用程序。选择“Web Application(.NET Framework)”模板,名称为“MultiFieldFuzzySearch”,创建一个…

    C# 2023年5月31日
    00
  • C# Console.WriteLine()方法: 将指定字符串和行结束符写入标准输出流

    作用: Console.WriteLine()是C#中标准输出的方法,用于将指定的数据写入控制台。它可以输出各种类型的值,如字符串、数字、布尔值以及其他对象等等。 使用方法: 方法语法如下: Console.WriteLine(); Console.WriteLine(string value); Console.WriteLine(string forma…

    C# 2023年4月19日
    00
  • 区分WCF与WebService的异同、优势

    区分WCF与WebService的异同、优势 WCF(Windows Communication Foundation)和WebService都是用于构建分布式应用程序的技术。它们都可以实现跨平台、跨语言的通信,但在实现方式、功能和性能等方面存在一些差异。本文将详细讲解WCF和WebService的异同、优势,并提供两个示例。 WCF与WebService的…

    C# 2023年5月15日
    00
  • vs 中C#项目读取JSON配置文件的方法

    下面我来详细讲解在 VS 中 C# 项目读取 JSON 配置文件的方法。 一、准备工作 在讲解具体方法前,我们需要先进行准备工作: 首先需要确保你的项目中已经包含了 Newtonsoft.Json 的 NuGet 包,否则,请右键项目选择“管理 NuGet 包”来安装该包。 其次需要准备一个 JSON 配置文件作为示例,这里以以下内容为例: { "…

    C# 2023年5月31日
    00
  • asp.net jscript 一句话木马

    首先需要说明的是,一句话木马是一种常用的网络攻击技巧,攻击者可以通过一行代码或一句话控制Web服务器或受害者的计算机。因此,开发人员和网站维护人员应谨慎对待这些类型的攻击。 “asp.net jscript一句话木马”是一种特定的一句话木马,其使用asp.net语法和jscript编写,以下是完整攻略: 获取asp.net jscript一句话木马 asp.…

    C# 2023年5月31日
    00
  • C#读取数据库返回泛型集合详解(DataSetToList)

    C#读取数据库返回泛型集合是一种常见的数据访问方式,可以快速、高效地将数据库里的数据以泛型集合的方式返回给程序,本文将详细讲解如何使用DataSetToList实现这一功能。 准备工作 在使用DataSetToList读取数据库前,需要进行一些准备工作,具体如下: 1.引用相关命名空间 在代码文件中,需要引用以下命名空间: using System.Data…

    C# 2023年5月31日
    00
  • C#中foreach原理以及模拟的实现

    C#中foreach原理以及模拟的实现 foreach是C#中常用的循环结构之一,也是一种高效而方便的迭代方式。本文将详细讲解foreach的原理以及如何模拟其行为。 foreach的原理 foreach循环类似于for循环,但是更加简洁明了,其语法如下: foreach (var item in collection) { // 处理item } 其中co…

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