Tôi đang cố gắng chuyển một số hình ảnh của hình ảnh qua lại giữa Silverlight và dịch vụ WCF. Nếu có thể, tôi muốn chuyển số System.Windows.Media.Imaging.BitmapImage
, vì điều đó có nghĩa là khách hàng không phải thực hiện bất kỳ chuyển đổi nào.Tôi có thể lấy một byte [] từ một BitmapImage trong Silverlight không?
Tuy nhiên, tại một thời điểm nào đó, tôi cần lưu trữ hình ảnh này trong cơ sở dữ liệu, có nghĩa là đại diện hình ảnh phải có khả năng chuyển đổi thành và từ byte[]
. Tôi có thể tạo ra một BitmapImage
từ một byte[]
bằng cách đọc mảng thành một MemoryStream
và sử dụng BitmapImage.SetSource()
. Nhưng tôi dường như không thể tìm cách chuyển đổi theo cách khác - từ BitmapImage
thành byte[]
. Tôi có thiếu thứ gì đó hiển nhiên ở đây không?
Nếu nó giúp ích chút nào, mã chuyển đổi có thể chạy trên máy chủ, nghĩa là mã không cần phải an toàn với Silverlight.
Bạn đã bao giờ nhận được một giải pháp cho việc này? –
No. Hình ảnh ban đầu được tải qua người dùng chọn nó trong hộp thoại Mở. Cách giải quyết là truy cập openDialog.File.OpenRead, tạo BinaryReader từ luồng đó, sau đó gọi ReadBytes() trên đầu đọc để nhận byte []. Tôi đã không theo kịp với Silverlight 4, có thể có một giải pháp có sẵn ngay bây giờ. – goric