Saya membuat aplikasi berbagi Desktop Jarak Jauh di mana saya mengambil gambar dari Desktop dan Mengompresnya dan Mengirimkannya ke penerima. Untuk mengompres gambar saya perlu mengubahnya menjadi byte [].
Saat ini saya menggunakan ini:
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
Tetapi saya tidak menyukainya karena saya harus menyimpannya dalam ImageFormat dan itu juga dapat menggunakan sumber daya (Perlambat) serta menghasilkan hasil kompresi yang berbeda. Saya telah membaca tentang menggunakan Marshal.Copy dan memcpy tetapi saya tidak dapat melakukannya mengerti mereka.
Jadi, apakah ada metode lain untuk mencapai tujuan ini?
MemoryStream
; itu adalah sumber daya yang sepenuhnya dikelola, kecuali jika Anda menggunakannya di remote. Dalam kedua kasus ini, akan menjadi tidak tepat untuk membuang sumber daya.