Я работаю над приложением WP7, в котором я хотел бы записывать видео, и перед сохранением видео сделать снимок видео, чтобы его можно было использовать в качестве эскиза. Миниатюра временно сохраняется в изолированном хранилище перед использованием. Для камеры я использую прямоугольник для записи видео, а позже я хочу отобразить изображение на телефоне. Проблема в том, что картинка отображается только черным экраном. Даже когда я пытался сохранить изображение в медиатеке, изображение также отображалось черным. В чем может быть причина этой проблемы и как ее решить?
Я вставил код ниже:
Вот прямоугольник, с помощью которого вы снимаете видео.
<Rectangle
x:Name="viewfinderRectangle"
Width="640"
Height="480"
HorizontalAlignment="Left"
Canvas.Left="80"/>
Вот код для фотографирования:
try
{
String tempJPEG = FOSConstants.TEMP_VIDEO_THUMBNAIL_NAME;
var myStore = IsolatedStorageFile.GetUserStoreForApplication();
if (myStore.FileExists(tempJPEG))
{
myStore.DeleteFile(tempJPEG);
}
IsolatedStorageFileStream myFileStream = myStore.CreateFile(tempJPEG);
WriteableBitmap wb = new WriteableBitmap(viewfinderRectangle, null);
wb.SaveJpeg(myFileStream, wb.PixelWidth, wb.PixelHeight, 0, 85);
myFileStream.Close();
myFileStream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error saving snapshot", MessageBoxButton.OK);
}
Вот код для чтения эскиза изображения из изолированного хранилища:
private BitmapImage GetIsolatedStorageFile(string isolatedStorageFileName)
{
var bimg = new BitmapImage();
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var stream = store.OpenFile(isolatedStorageFileName, FileMode.Open, FileAccess.Read))
{
bimg.SetSource(stream);
}
}
return bimg;
}
Вот изображение, на котором я хочу отобразить миниатюру в графическом интерфейсе.
<Image Width="180"
Height="180"
Stretch="Fill"
Margin="24,0,0,0"
Source="{Binding Path=ImageSoruce, Mode=TwoWay}"
HorizontalAlignment="Left"/>