我是否应该将视频文件的帧作为位图图像提取出来并使用它们?还是有一种获得高分辨率的方法缩略图的特定尺寸?
这取决于您的要求。但根据你的描述,你可能不需要这样做。
我检查了你的代码。您已将固定值200设置为requiredSize
。请阅读GetScaledImageAsThumbnailAsync(ThumbnailMode, UInt32, ThumbnailOptions)
方法的文件。它显示:
请求的缩略图最长边的大小(以像素为单位)。 Windows使用requestedSize作为指导,并尝试缩放缩略图图像而不降低图像的质量。
这意味着“requiredSize”应该是StorageItemThumbnail对象的原始宽度。然后,在你原来的帖子中,你说:
我想把视频文件的缩略图放在更大的xaml元素上,如:背景图像的页面或网格或页面上的顶部横幅。
如果xaml元素的尺寸远大于StorageItemThumbnail对象的原始尺寸,那么它总是看起来很糟糕。
所以,我建议你可以通过更大元素的大小将动态的“requiredSize”传递给GetScaledImageAsThumbnailAsync
方法,然后它会返回一个适合你的适当分辨率的缩略图。
例如:
var imgSource = await MyVideoFile.GetScaledImageAsThumbnailAsync(ThumbnailMode.VideosView, bigelement.Width, ThumbnailOptions.UseCurrentScale)
最后,该文件还称:
如果Windows不能找到一个缩略图,它可以扩展以满足要求的尺寸,更大可能会返回缩略图。如果没有更大的缩略图可用,则可能会返回小于请求大小的缩略图。
如果你在这种情况下,你可以考虑像你说的那样,将视频文件的帧作为位图图像提取出来。
如果您的自定义具有高分辨率屏幕,您可以使用ThumbnailOptions.UseCurrentScale获取高分辨率缩略图。 – lindexi
我已经使用UseCurrentScale,你可以在我提供的代码中看到 – touseef
但是你的屏幕不是高分辨率。 – lindexi