Tôi đang tạo ứng dụng chia sẻ Máy tính Từ xa, trong đó tôi chụp một hình ảnh của Máy tính để bàn và Nén nó và gửi nó đến người nhận. Để nén hình ảnh, tôi cần chuyển nó thành byte [].
Hiện tại tôi đang sử dụng cái này:
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;
}
Nhưng tôi không thích nó vì tôi phải lưu nó trong ImageFormat và điều đó cũng có thể sử dụng tài nguyên (Làm chậm) cũng như tạo ra các kết quả nén khác nhau. Tôi đã đọc cách sử dụng Marshal. Sao chép và ghi nhớ nhưng tôi không thể hiểu họ.
Vậy có phương pháp nào khác để đạt được mục tiêu này không?
MemoryStream
; đó là một tài nguyên được quản lý hoàn toàn, trừ khi bạn đang sử dụng nó để loại bỏ. Trong cả hai trường hợp này, sẽ không thích hợp để loại bỏ tài nguyên.