2011-03-23 52 views
1

我需要使用WCF發送一些用戶動態加載的圖像(使用瀏覽)。 WCF服務可以有位圖對象(byte [])。Silverlight中的位圖?

我保存的圖像格式是ImageBrush。 我沒有看到silverlight有Bitmap對象=>所以我如何將ImageBrush轉換成WCF服務期望我發送的正確對象?

我該如何解決這個問題?

回答

0

ImageBrush不是圖像本身,而是用於繪製圖像的對象。圖像本身應該保存在imageBrush.ImageSource中。這個ImageSource可以是各種類型的子類,最常見的是BitmapSource。 BitmapSource有一個CopyPixels方法,可用於從源代碼中提取像素,然後將其傳遞給您的WCF服務。

var stride = bitmapSource.PixelWidth + (bitmapSource.PixelWidth) % 4;
var byteArray = new byte[bitmapSource.PixelHeight * stride];
bitmapSource.CopyPixels(byteArray, stride, 0);