我目前正在开发一款可执行以下任务的应用:
1-拍摄照片并将其保存在两者中:隔离存储和照片库。
2 - 然后将图片加载到不同的页面中,同时将图片分成不同的部分。
所以我按照本教程学习如何拍摄照片并保存:
http://msdn.microsoft.com/en-us/library/windows/apps/hh202956(v=vs.105).aspx
现在我被困在查看和拆分不同页面中最新图像的部分。
任何解决方案或想法?
答案 0 :(得分:0)
很抱歉不清楚这一点,我只想查看我的应用程序捕获的最新照片
示例相机应用程序将照片保存到相机胶卷以及应用程序隔离存储。这是他们使用的代码段。
// Save photo as JPEG to the local folder.
using (IsolatedStorageFile isStore = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream targetStream = isStore.OpenFile(fileName, FileMode.Create, FileAccess.Write))
{
// Initialize the buffer for 4KB disk pages.
byte[] readBuffer = new byte[4096];
int bytesRead = -1;
// Copy the image to the local folder.
while ((bytesRead = e.ImageStream.Read(readBuffer, 0, readBuffer.Length)) > 0)
{
targetStream.Write(readBuffer, 0, bytesRead);
}
}
}
正如您所看到的,他们使用文件名fileName
保存它,因此您所要做的就是保留您使用的所有List<string>
fileName
。每次保存新图像时,都要将fileName
添加到列表中。
您可以使用ApplicationSettings
保存列表if (!IsolatedStorageSettings.ApplicationSettings.Contains("recent_images"))
{
IsolatedStorageSettings.ApplicationSettings.Add("recent_images", YOUR_LIST);
}
IsolatedStorageSettings.ApplicationSettings.Save();
这样,下次加载应用程序时,您可以再次获取List(所以基本上你将列表重新标记)
List<string> recent_images = (List<string>) IsolatedStorageSettings.ApplicationSettings["recent_images"];
现在加载您最近的图片
<!-- create the container in xaml -->
<Image x:Name="myImage"></Image>
// this function loads an image from isolated storage and returns a bitmap
private static BitmapImage GetImageFromIsolatedStorage(string imageName)
{
var bimg = new BitmapImage();
using (var iso = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var stream = iso.OpenFile(imageName, FileMode.Open, FileAccess.Read))
{
bimg.SetSource(stream);
}
}
return bimg;
}
// load the first image in recent images
BitmapImage first = GetImageFromIsolatedStorage(recent_images[0]);
// set the BitmapImage as the source of myImage to display it on the screen
this.myImage.Source = first;
只需逐行阅读他们的代码和我的代码。如果你不跳过步骤,那就太难了。