在RenderAsync
课程中使用RenderTargetBitmap
方法时,我有一个独特的案例。问题是当我在我的笔记本电脑上运行代码(可以在下面看到)时,它工作得很好,图像渲染正确。但是当我在联想平板电脑上运行代码时,它会模糊图像。
正在使用的代码:
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();
}
这是原始图像的样子以及它在我的笔记本电脑上的呈现方式:
这是在完全相同的代码运行后在我的平板电脑上的外观:
有人可以提供一些帮助吗?
非常感谢提前!
答案 0 :(得分:0)
好的,所以解决方案非常简单。只需更改以下代码并使用renderTargetBitmap
代替element
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, (uint)renderTargetBitmap.PixelWidth, (uint)renderTargetBitmap.PixelHeight, 300, 300, bytes);