欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中圖片的Base64編碼與解碼轉(zhuǎn)換詳解

 更新時(shí)間:2024年12月06日 11:47:16   作者:AitTech  
在C#中,我們可以使用Base64編碼將圖片轉(zhuǎn)換為字符串,也可以將Base64編碼的字符串轉(zhuǎn)換回圖片,這通常用于在需要文本表示圖像數(shù)據(jù)的場(chǎng)合(例如在Web開(kāi)發(fā)中傳輸圖像數(shù)據(jù)),本文介紹了C#中圖片的Base64編碼與解碼轉(zhuǎn)換,需要的朋友可以參考下

將圖片轉(zhuǎn)換為Base64字符串

要將圖片文件轉(zhuǎn)換為Base64字符串,可以使用System.Drawing命名空間中的Image類(注意:在.NET Core和.NET 5+中,可能需要使用System.Drawing.Common包,并且它可能在某些平臺(tái)上不可用,比如Linux,除非安裝了相應(yīng)的依賴項(xiàng))。然而,更常見(jiàn)和推薦的方法是使用System.IO和Convert類來(lái)處理字節(jié)數(shù)組。

以下是一個(gè)示例代碼,展示了如何將圖片文件轉(zhuǎn)換為Base64字符串:

using System;
using System.IO;
using System.Drawing; // 注意:在.NET Core和.NET 5+中可能需要額外的包
// 或者使用 System.Text.Encoding 和 File.ReadAllBytes 而不是 Image 類

class Program
{
    static void Main()
    {
        string imagePath = "圖片.jpg";
        string base64String = ImageToBase64(imagePath, ImageFormat.Jpeg);
        Console.WriteLine(base64String);
    }

    static string ImageToBase64(string imagePath, ImageFormat format)
    {
        using (Image image = Image.FromFile(imagePath))
        {
            using (MemoryStream ms = new MemoryStream())
            {
                // 將圖片保存到內(nèi)存流中
                image.Save(ms, format);
                // 將內(nèi)存流轉(zhuǎn)換為字節(jié)數(shù)組
                byte[] imageBytes = ms.ToArray();
                // 將字節(jié)數(shù)組轉(zhuǎn)換為Base64字符串
                string base64String = Convert.ToBase64String(imageBytes);
                return base64String;
            }
        }
    }
}

注意:上面的代碼使用了ImageFormat枚舉來(lái)指定圖片格式。但是,如果不想依賴System.Drawing,可以直接使用File.ReadAllBytes方法來(lái)讀取圖片文件的字節(jié)數(shù)組,然后轉(zhuǎn)換為Base64字符串。

一個(gè)不依賴System.Drawing的示例:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string imagePath = "圖片.jpg";
        string base64String = ConvertImageToBase64(imagePath);
        Console.WriteLine(base64String);
    }

    static string ConvertImageToBase64(string imagePath)
    {
        byte[] imageBytes = File.ReadAllBytes(imagePath);
        string base64String = Convert.ToBase64String(imageBytes);
        return base64String;
    }
}

將Base64字符串轉(zhuǎn)換為圖片

要將Base64字符串轉(zhuǎn)換回圖片,可以使用Convert.FromBase64String方法將Base64字符串轉(zhuǎn)換為字節(jié)數(shù)組,然后使用MemoryStream和Image類(或Bitmap類)來(lái)創(chuàng)建圖片對(duì)象。

以下是一個(gè)示例代碼,展示了如何將Base64字符串轉(zhuǎn)換為圖片并保存到文件中:

using System;
using System.Drawing; // 注意:在.NET Core和.NET 5+中可能需要額外的包
using System.IO;

class Program
{
    static void Main()
    {
        string base64String = "Base64字符串";
        string outputPath = "輸出圖片.jpg";
        Base64ToImage(base64String, outputPath);
    }

    static void Base64ToImage(string base64String, string outputPath)
    {
        byte[] imageBytes = Convert.FromBase64String(base64String);
        using (MemoryStream ms = new MemoryStream(imageBytes))
        {
            Image image = Image.FromStream(ms);
            image.Save(outputPath, ImageFormat.Jpeg); // 可以根據(jù)需要更改格式
        }
    }
}

同樣地,如果不想依賴System.Drawing,可以將字節(jié)數(shù)組寫(xiě)入文件,并使用適當(dāng)?shù)奈募U(kuò)展名和關(guān)聯(lián)的程序來(lái)打開(kāi)它(例如,使用.jpg擴(kuò)展名并用圖片查看器打開(kāi))。但是,請(qǐng)注意,這種方法不會(huì)直接創(chuàng)建一個(gè)Image對(duì)象,只是將字節(jié)數(shù)據(jù)保存為文件。

一個(gè)不依賴System.Drawing的保存Base64字符串為圖片文件的示例:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string base64String = "Base64字符串";
        string outputPath = "輸出圖片.jpg";
        SaveBase64AsImage(base64String, outputPath);
    }

    static void SaveBase64AsImage(string base64String, string outputPath)
    {
        byte[] imageBytes = Convert.FromBase64String(base64String);
        File.WriteAllBytes(outputPath, imageBytes);
    }
}

到此這篇關(guān)于C#中圖片的Base64編碼與解碼轉(zhuǎn)換詳解的文章就介紹到這了,更多相關(guān)C#圖片Base64編碼與解碼轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論