Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh menukar peta bit kepada tatasusunan bait tanpa menggunakan fail sementara?

Bagaimanakah saya boleh menukar peta bit kepada tatasusunan bait tanpa menggunakan fail sementara?

Barbara Streisand
Lepaskan: 2025-01-23 15:02:11
asal
388 orang telah melayarinya

How Can I Convert a Bitmap to a Byte Array Without Using Temporary Files?

Selamat tinggal kepada fail sementara: dua kaedah penukaran yang cekap daripada Bitmap kepada tatasusunan bait

Menukar Windows Bitmap kepada tatasusunan bait ialah tugas biasa dalam pembangunan perisian. Walaupun menyimpan Bitmap ke fail sementara dan kemudian membacanya menggunakan FileStream adalah kaedah yang mudah, ia bukanlah penyelesaian yang paling berkesan. Artikel ini akan memperkenalkan dua kaedah alternatif yang tidak memerlukan fail sementara.

Kaedah 1: Kelas Penukar Imej

Kelas ImageConverter menyediakan kaedah penukaran yang mudah yang boleh diselesaikan dengan hanya beberapa baris kod:

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

Kaedah 2: MemoryStream (MemoryStream)

Pendekatan lain ialah menggunakan aliran memori. Pendekatan ini mensimulasikan penyimpanan ke fail sementara, tetapi menyimpan data dalam ingatan:

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

Kaedah penstriman memori memberikan fleksibiliti yang lebih besar, anda boleh menentukan ImageFormat dan memilih sama ada untuk menyimpan ke memori atau cakera.

Ringkasan

Kedua-dua ImageConverter dan MemoryStream menyediakan alternatif yang berdaya maju untuk Bitmap kepada penukaran tatasusunan bait tanpa menggunakan fail sementara. Kaedah ImageConverter adalah lebih ringkas, manakala kaedah MemoryStream menyediakan lebih kawalan. Anda boleh memilih kaedah yang paling sesuai berdasarkan keperluan khusus anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar peta bit kepada tatasusunan bait tanpa menggunakan fail sementara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan