WinRT:RenderAsync 模糊图像输出

WinRT: RenderAsync Blurs Image Output

RenderTargetBitmap class 上使用 RenderAsync 方法时,我有一个独特的案例。问题是当我 运行 我的笔记本电脑上的代码(可以在下面看到)时它工作正常并且图像正确呈现。但是当我 运行 我的联想平板电脑上的代码时,图像模糊了。

正在使用的代码:

var renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(element, (int) element.Width, (int) element.Height);
var pixels = await renderTargetBitmap.GetPixelsAsync();

using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
    var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, stream);
    var bytes = pixels.ToArray();
    encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint) element.ActualWidth, (uint) element.ActualHeight, 300, 300, bytes);

    await encoder.FlushAsync();
}

这是原始图像的样子以及它在我的笔记本电脑上的渲染方式:

这是完全相同的代码在我的平板电脑上显示的样子 运行:

有人可以提供一些帮助吗?

非常感谢!

好的,所以解决方案非常简单。只需更改以下代码并使用 renderTargetBitmap 而不是 element

encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, (uint)renderTargetBitmap.PixelWidth, (uint)renderTargetBitmap.PixelHeight, 300, 300, bytes);