首頁 >後端開發 >C++ >如何在 C# 中有效率地將點陣圖轉換為位元組數組?

如何在 C# 中有效率地將點陣圖轉換為位元組數組?

Linda Hamilton
Linda Hamilton原創
2025-01-23 14:57:13837瀏覽

How Can I Efficiently Convert a Bitmap to a Byte Array in C#?

C#中高效率的位圖到位元組數組轉換

將Windows位圖儲存到臨時檔案然後將其讀取為位元組數組是一種常見的轉換方法,但效率不高。以下介紹兩種C#中的替代方法,它們具有更好的性能。

使用ImageConverter

ImageConverter類別提供了一個方便的方法將圖像轉換為位元組數組:

<code class="language-csharp">public static byte[] ImageToByte(Image img)
{
    ImageConverter converter = new ImageConverter();
    return (byte[])converter.ConvertTo(img, typeof(byte[]));
}</code>

此方法無需大量編碼,非常適合較小的轉換任務。

使用MemoryStream

MemoryStream類別可讓您將映像儲存到記憶體而不是磁碟:

<code class="language-csharp">public static byte[] ImageToByte2(Image img)
{
    using (var stream = new MemoryStream())
    {
        img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
        return stream.ToArray();
    }
}</code>

此方法的額外優點在於可以選擇影像格式,以及可以選擇將資料儲存到磁碟或將其保留在記憶體中。

這些替代方法為將位圖轉換為位元組數組提供了高效且靈活的解決方案,減少了不必要的磁碟操作並提高了效能。

以上是如何在 C# 中有效率地將點陣圖轉換為位元組數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn