Tôi muốn chuyển đổi một BitmapImage thành ByteArray trong một ứng dụng Windows Phone 7. Vì vậy, tôi đã thử điều này nhưng nó ném ngoại lệ thời gian chạy "Invalid Pointer Exception". Bất cứ ai có thể giải thích lý do tại sao những gì tôi đang cố gắng để làm ném một ngoại lệ. Và bạn có thể cung cấp giải pháp thay thế cho điều này không.Chuyển đổi BitmapImage thành mảng Byte
public static byte[] ConvertToBytes(this BitmapImage bitmapImage)
{
byte[] data;
// Get an Image Stream
using (MemoryStream ms = new MemoryStream())
{
WriteableBitmap btmMap = new WriteableBitmap(bitmapImage);
// write an image into the stream
Extensions.SaveJpeg(btmMap, ms,
bitmapImage.PixelWidth, bitmapImage.PixelHeight, 0, 100);
// reset the stream pointer to the beginning
ms.Seek(0, 0);
//read the stream into a byte array
data = new byte[ms.Length];
ms.Read(data, 0, data.Length);
}
//data now holds the bytes of the image
return data;
}
Thực ra, tôi đã sử dụng các điều trên, WriteableBitmap btmMap = WriteableBitmap mới (BitmapImage); Trước đây tôi đã cho thấy điều sai trái. nhưng nó vẫn hiển thị cùng một lỗi "Invalid Pointer". – dinesh
Khi tôi cố gắng sử dụng phương pháp của bạn, tôi gió lên nhận được một hình ảnh màu đen trừ khi tôi khởi tạo btmMap thành một WritableBitmap bằng cách sử dụng BitmapImage trong hàm tạo. Tôi không chắc chắn nếu tôi thiếu một số loại thiết lập nhưng tôi nghĩ tôi sẽ đề cập đến nó. –
bạn có thể đề nghị một cách để làm điều đó trong Windows 8 RT? – Mayank