Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Imej kepada Tatasusunan Byte dan Kembali?

Bagaimana untuk Menukar Imej kepada Tatasusunan Byte dan Kembali?

Patricia Arquette
Patricia Arquetteasal
2025-01-26 03:31:10962semak imbas

How to Convert Images to Byte Arrays and Back?

Penukaran antara imej dan tatasusunan bait

Soalan: Bagaimana untuk menukar imej kepada tatasusunan bait, dan bagaimana untuk menukar tatasusunan bait kembali kepada imej?

Jawapan:

Untuk menukar imej kepada tatasusunan bait, anda boleh menggunakan kod contoh berikut:

<code class="language-csharp">public byte[] ImageToByteArray(System.Drawing.Image imageIn)
{
    using (var ms = new MemoryStream())
    {
        imageIn.Save(ms, imageIn.RawFormat);
        return ms.ToArray();
    }
}</code>

Kod ini menggunakan MemoryStream untuk menyimpan imej dan kemudian menukarnya kepada tatasusunan bait.

Untuk menukar tatasusunan bait kembali kepada imej, anda juga boleh menggunakan kelas seperti ini:

<code class="language-csharp">public class ImageConverter
{
    public ImageConverter() { }

    public Image ByteToImage(byte[] byteArrayIn)
    {
        using (var ms = new MemoryStream(byteArrayIn))
        {
            Image returnImage = Image.FromStream(ms);
            return returnImage;
        }
    }

    public byte[] ImageToByte(Image imageIn)
    {
        using (var ms = new MemoryStream())
        {
            imageIn.Save(ms, ImageFormat.Png); // 指定保存格式为PNG
            return ms.ToArray();
        }
    }
}</code>

Kod ini menyediakan cara yang lebih berstruktur untuk melakukan penukaran antara imej dan tatasusunan bait dan secara eksplisit menyatakan format imej disimpan sebagai PNG. Anda boleh mengubah suai ImageFormat untuk memilih format lain, seperti JPEG atau GIF, jika perlu.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Imej kepada Tatasusunan Byte dan Kembali?. 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