Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menukar Bitmap dengan Cekap kepada Array Byte dalam C#?

Bagaimanakah Saya Boleh Menukar Bitmap dengan Cekap kepada Array Byte dalam C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-23 14:57:13895semak imbas

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

Peta bit yang cekap kepada penukaran tatasusunan bait dalam C#

Menyimpan peta bit Windows ke fail sementara dan kemudian membacanya sebagai tatasusunan bait ialah kaedah penukaran biasa, tetapi ia tidak cekap. Berikut ialah dua alternatif dalam C# yang menawarkan prestasi yang lebih baik.

Gunakan ImageConverter

Kelas ImageConverter menyediakan cara mudah untuk menukar imej kepada tatasusunan bait:

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

Kaedah ini tidak memerlukan pengekodan yang meluas dan sesuai untuk tugas penukaran yang lebih kecil.

Gunakan MemoryStream

Kelas MemoryStream membolehkan anda menyimpan imej ke memori dan bukannya cakera:

<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>

Kelebihan tambahan kaedah ini ialah pilihan format imej dan pilihan untuk menyimpan data ke cakera atau menyimpannya dalam ingatan.

Alternatif ini menyediakan penyelesaian yang cekap dan fleksibel untuk menukar peta bit kepada tatasusunan bait, mengurangkan operasi cakera yang tidak perlu dan meningkatkan prestasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Bitmap dengan Cekap kepada Array Byte dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn