对于第一项,您应该能够使用WriteableBitmapEx项目中的 Blit 方法将尽可能多的图像合并在一起。由于您可以以任何您想要的方式将图像合并在一起,因此您可以确保它们覆盖宽平铺宽度和您需要的任何 ppi。
为了覆盖第二项,以下内容将覆盖图像上的文本:
private static ImageSource createBitmapImageWithImage(string text, int x, int y, Color textColor, BitmapSource bitmapSource)
{
using(var mem = new MemoryStream())
{
//Create Formatted Text
var textBlock = new TextBlock
{
Text = text,
Foreground = new SolidColorBrush(textColor),
FontFamily = new FontFamily("Courier New"),
FontSize = 40
};
//Moves an object two dimensionally
var tf = new TranslateTransform
{
X = x,
Y = y
};
//Overlay text on existing image
var bmpImage = new WriteableBitmap(bitmapSource);
bmpImage.Render(textBlock, tf);
bmpImage.Invalidate();
//Convert back into bitmap
bmpImage.SaveJpeg(mem, bmpImage.PixelWidth, bmpImage.PixelHeight, 0, 100);
mem.Seek(0, SeekOrigin.Begin);
var image = new BitmapImage();
image.SetSource(mem);
return image;
}
}
当然你也可以传入文本块,或者配置文本块的选项。但我想展示如何根据需要设置文本格式。
您的第三个请求包含在后台任务中。在您的手机解决方案中,添加一个新项目,您可以选择后台任务。让这个调用你的代码来更新图像是相当简单的。诺基亚甚至创建了一个关于如何添加代码示例的演练。