Я реализовал решение, позволяющее мне взять WriteableBitmap, преобразовать его в JPEG с помощью FJCore, записать в MemoryStream и отправить на сервер.
FluxJpeg.Core.Encoder.JpegEncoder encoder = new FluxJpeg.Core.Encoder.JpegEncoder(img, quality, stream);
см .: ИспользованиеFJCore для кодирования Silverlight WriteableBitmap
Затем я нашел отличный класс FileUploader, который я изменил для загрузки MemoryStream, избегая необходимости сначала создавать локальный файл.
ORIG:
public void StartUpload(FileInfo file)
ИЗМЕНЕНО:
public void StartUpload(Stream fileStream)
см .: http://www.codeproject.com/KB/silverlight/SL4FileUploadAnd_SL4_MVVM.aspx
На сервере я использовал FileUpload.ashx, описанный в ссылке выше, чтобы принять фрагменты потокаи запишите их в файл на сервере.
При вызове FileUpload.ashx с использованием HttpWebRequest, MemoryStream отправляется порциями, пока не будет достигнут конец потока.
По мере того, как они байтыполучены на сервере, они записаны в файл в указанном месте.