C#中圖片的Base64編碼與解碼轉換詳解
將圖片轉換為Base64字符串
要將圖片文件轉換為Base64字符串,可以使用System.Drawing命名空間中的Image類(注意:在.NET Core和.NET 5+中,可能需要使用System.Drawing.Common包,并且它可能在某些平臺上不可用,比如Linux,除非安裝了相應的依賴項)。然而,更常見和推薦的方法是使用System.IO和Convert類來處理字節(jié)數(shù)組。
以下是一個示例代碼,展示了如何將圖片文件轉換為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)存流轉換為字節(jié)數(shù)組
byte[] imageBytes = ms.ToArray();
// 將字節(jié)數(shù)組轉換為Base64字符串
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
}
}
注意:上面的代碼使用了ImageFormat枚舉來指定圖片格式。但是,如果不想依賴System.Drawing,可以直接使用File.ReadAllBytes方法來讀取圖片文件的字節(jié)數(shù)組,然后轉換為Base64字符串。
一個不依賴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字符串轉換為圖片
要將Base64字符串轉換回圖片,可以使用Convert.FromBase64String方法將Base64字符串轉換為字節(jié)數(shù)組,然后使用MemoryStream和Image類(或Bitmap類)來創(chuàng)建圖片對象。
以下是一個示例代碼,展示了如何將Base64字符串轉換為圖片并保存到文件中:
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ù)組寫入文件,并使用適當?shù)奈募U展名和關聯(lián)的程序來打開它(例如,使用.jpg擴展名并用圖片查看器打開)。但是,請注意,這種方法不會直接創(chuàng)建一個Image對象,只是將字節(jié)數(shù)據(jù)保存為文件。
一個不依賴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);
}
}
到此這篇關于C#中圖片的Base64編碼與解碼轉換詳解的文章就介紹到這了,更多相關C#圖片Base64編碼與解碼轉換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
非常實用的C#字符串操作處理類StringHelper.cs
這篇文章主要為大家詳細介紹了非常實用的C#字符串操作處理類StringHelper.cs,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
C#將國產(chǎn)Linux視頻錄制生成mp4的具體實現(xiàn)
這篇文章主要介紹了C#將國產(chǎn)Linux視頻錄制生成mp4的具體實現(xiàn),文中通過代碼示例介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-08-08
使用C#在Word文檔中添加文本和圖片超鏈接的實現(xiàn)方式
在開發(fā)辦公自動化(OA)系統(tǒng)、報表生成工具或文檔處理腳本時,我們經(jīng)常需要操作 Word 文檔,其中,插入超鏈接是一個高頻需求,本文將介紹如何使用 C# 在 Word 文檔中添加文本和圖片超鏈接的具體實現(xiàn)方式,需要的朋友可以參考下2026-03-03
C#使用NPOI實現(xiàn)Excel和DataTable的互轉
這篇文章主要為大家詳細介紹了C#使用NPOI實現(xiàn)Excel和DataTable的互轉,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02

