C#中圖片的Base64編碼與解碼轉(zhuǎn)換詳解
將圖片轉(zhuǎn)換為Base64字符串
要將圖片文件轉(zhuǎn)換為Base64字符串,可以使用System.Drawing命名空間中的Image類(注意:在.NET Core和.NET 5+中,可能需要使用System.Drawing.Common包,并且它可能在某些平臺上不可用,比如Linux,除非安裝了相應(yīng)的依賴項)。然而,更常見和推薦的方法是使用System.IO和Convert類來處理字節(jié)數(shù)組。
以下是一個示例代碼,展示了如何將圖片文件轉(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
枚舉來指定圖片格式。但是,如果不想依賴System.Drawing
,可以直接使用File.ReadAllBytes
方法來讀取圖片文件的字節(jié)數(shù)組,然后轉(zhuǎn)換為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字符串轉(zhuǎn)換為圖片
要將Base64字符串轉(zhuǎn)換回圖片,可以使用Convert.FromBase64String方法將Base64字符串轉(zhuǎn)換為字節(jié)數(shù)組,然后使用MemoryStream和Image類(或Bitmap類)來創(chuàng)建圖片對象。
以下是一個示例代碼,展示了如何將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ù)組寫入文件,并使用適當?shù)奈募U展名和關(guān)聯(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); } }
到此這篇關(guān)于C#中圖片的Base64編碼與解碼轉(zhuǎn)換詳解的文章就介紹到這了,更多相關(guān)C#圖片Base64編碼與解碼轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# 總結(jié)QueueUserWorkItem傳參幾種方式案例詳解
這篇文章主要介紹了C# 總結(jié)QueueUserWorkItem傳參幾種方式案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-09-09C# async/await任務(wù)超時處理的實現(xiàn)
本文主要介紹了C# async/await任務(wù)超時處理的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02IIS下調(diào)用證書出現(xiàn)異常的解決方法 (C#)
這篇文章主要為大家詳細介紹了IIS下調(diào)用證書出現(xiàn)異常的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05在c#中把字符串轉(zhuǎn)為變量名并獲取變量值的小例子
這篇文章介紹了在c#中把字符串轉(zhuǎn)為變量名并獲取變量值的小例子,有需要的朋友可以參考一下2013-09-09Unity編輯器預制體工具類PrefabUtility常用函數(shù)和用法
這篇文章主要為大家介紹了Unity編輯器預制體工具類PrefabUtility常用函數(shù)及用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08