我正在尝试将视频文件的缩略图放在更大的xaml元素上,例如:background页面或网格的图像或页面上的顶部横幅。在这种情况下,我从下面的代码获得正常的缩略图。确实很好看,因为它们的分辨率很低。
var imgSource = await MyVideoFile.GetScaledImageAsThumbnailAsync(ThumbnailMode.VideosView, 200, ThumbnailOptions.UseCurrentScale)
我想要高分辨率缩略图。我应该将视频文件的帧提取为位图图像并使用它们吗?或者有没有办法获得特定尺寸的高分辨率缩略图?
答案 0 :(得分:0)
我应该将视频文件的帧提取为位图图像并使用它们吗?还是有办法获得特定大小的高分辨率缩略图?
这取决于您的要求。但根据您的描述,您可能不需要这样做。
我检查了你的代码。您已将固定值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无法找到可以缩放以满足请求大小的缩略图图像,则可能会返回较大的缩略图。如果没有更大的缩略图可用,则可能会返回小于请求大小的缩略图图像。
如果你在这种情况下,你可以考虑像你说的那样将视频文件的帧提取为位图图像。