Windows Phone 8 - 在后台生成锁屏图像

Mar*_*und 6 background image lockscreen windows-phone-8

我正在尝试使用新的Windows Phone 8 Live Lockscreen API创建一个Windows Phone 8应用程序(我当前发布的"The Quote"的更新).我基本上想要从应用程序包中随机选择一个图像背景,并在其上放置一个带有随机引用的文本块以创建锁屏图像.如何在后台定期任务中完成该任务?肯定有办法做到这一点(许多当前的应用程序,包括不同的天气和新闻应用程序在后台本地创建实时锁屏),但我似乎似乎无法找到如何,到目前为止没有互联网搜索给我任何东西有用.

任何帮助非常感谢!

非常感谢你!

编辑:

我能够找到一种方法来创建一个包含我的内容的UserControl并以这种方式截取它:

var bmp = new WriteableBitmap(768, 1280);
bmp.Render(LayoutRoot, null);

String tempJPEG = "TempJPEG.jpg";

var myStore = IsolatedStorageFile.GetUserStoreForApplication();
if (myStore.FileExists(tempJPEG))
{
    myStore.DeleteFile(tempJPEG);
}
IsolatedStorageFileStream myFileStream = myStore.CreateFile(tempJPEG);

WriteableBitmap wb = new WriteableBitmap(bmp);

wb.SaveJpeg(myFileStream, wb.PixelWidth, wb.PixelHeight, 0, 100);
myFileStream.Close();
Run Code Online (Sandbox Code Playgroud)

这种方法给我带来三个不同的问题:

  1. 如果我没有在构造函数中设置WriteableBitmap的大小,它会错误地选择它并且锁屏是无用的.

  2. 如果我运行上面的代码,它会抛出OutOfMemory错误

  3. 在1例中,还有一个带有Control背景的问题(变黑了,即使我已经将Grid的主要背景画笔设置为ImageBrush链接到主Appx包中的本地文件.

这完全错了吗?有更好的(工作)方式吗?

非常感谢你,感谢你的帮助.

Mar*_*han 4

您很可能在后台代理中遇到内存上限限制,在 WP8 上为 11 MB。我建议您在服务器/Azure 上渲染图像,然后在后台代理中下载它,将其保存到手机中并在锁屏上显示,或者可能使用资源密集任务进行渲染?
我在我的一个应用程序中使用图块渲染,当我尝试渲染 2 个大小为 336x336 + 159x159px 的图块图像时,我遇到了内存上限,因此您可以想象渲染 768x1280 图像也可以轻松达到此上限。