これは非常に複雑であるか、私が本当に悪いです!!
私は使用してAudioVideoCaptureDevice
おり、ビデオの画像サムネイルを作成し、それを分離ストレージに保存したいと考えています。
これまでのところ、私が持っているものは次のとおりです。
private void SaveThumbnail()
{
var w = (int)_videoCaptureDevice.PreviewResolution.Width;
var h = (int)_videoCaptureDevice.PreviewResolution.Height;
var argbPx = new int[w * h];
Deployment.Current.Dispatcher.BeginInvoke(() => _videoCaptureDevice.GetPreviewBufferArgb(argbPx));
var wb = new WriteableBitmap(w, h);
argbPx.CopyTo(wb.Pixels, 0);
wb.Invalidate();
using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
var fileName = _isoVideoFileName + ".jpg";
if (isoStore.FileExists(fileName))
isoStore.DeleteFile(fileName);
var file = isoStore.CreateFile(fileName);
wb.SaveJpeg(file, w, h, 0, 20);
file.Close();
}
}
そのため、GetPreviewBufferArgb()
メソッドは int 配列に画像データを入力します (少なくともドキュメントに記載されているように)。これらのピクセルを分離ストレージに保存して、後でロードできるようにするにはどうすればよいですか?
上記のコードは、IsolatedStorage から画像を開くと開かないため、機能していないようです。
更新:何かを保存できるようになりました-残念ながら、画像は常に黒です(いいえ-エミュレータでアプリケーションをテストしていません)!!