I'm trying to pass some representation of an image back and forth between Silverlight and a WCF service.  If possible I'd like to pass a System.Windows.Media.Imaging.BitmapImage, since that would mean the client doesn't have to do any conversion.
However, at some point I need to store this image in a database, meaning the image representation must be able to convert to and from byte[].  I can create a BitmapImage from a byte[] by reading the array into a MemoryStream and using BitmapImage.SetSource().  But I can't seem to find a way to convert the other way - from BitmapImage to byte[].  Am I missing something obvious here?
If it helps at all, the conversion code could run on the server, i.e. it doesn't need to be Silverlight-safe.