WriteableBitmapを取得し、FJCoreを使用してJPEGに変換し、MemoryStreamに書き込んで、サーバーに送信できるソリューションを実装しました。
FluxJpeg.Core.Encoder.JpegEncoder encoder = new FluxJpeg.Core.Encoder.JpegEncoder(img, quality, stream);
参照:FJCoreを使用したSilverlightWriteableBitmapのエンコード
次に、最初にローカルファイルを作成する必要がないように、MemoryStreamをアップロードするように変更した優れたFileUploaderクラスを見つけました。
ORIG:
public void StartUpload(FileInfo file)
変更:
public void StartUpload(Stream fileStream)
参照: http: //www.codeproject.com/KB/silverlight/SL4FileUploadAnd_SL4_MVVM.aspx
サーバーでは、上記のリンクで説明されているFileUpload.ashxを使用して、ストリームのチャンクを受け入れ、サーバー上のファイルに書き込みました。
HttpWebRequestを使用してFileUpload.ashxを呼び出すと、MemoryStreamは、ストリームの終わりに達するまでチャンクで送信されます。
それらのバイトはサーバーで受信されると、指定された場所のファイルに書き出されます。