uwp 高分辨率缩略图

Posted

技术标签:

【中文标题】uwp 高分辨率缩略图【英文标题】:uwp highresolution Thumbnail 【发布时间】:2017-11-25 16:35:01 【问题描述】:

我正在尝试将视频文件的缩略图放在更大的 xaml 元素上,例如:页面或网格的背景图像或页面上的顶部横幅。在这种情况下,我从以下代码中获得了正常的缩略图。看起来不错,因为它们的分辨率很低。

var imgSource = await MyVideoFile.GetScaledImageAsThumbnailAsync(ThumbnailMode.VideosView, 200, ThumbnailOptions.UseCurrentScale)

我想要高分辨率的缩略图。我应该将视频文件的帧提取为位图图像并使用它们吗?还是有办法获得特定大小的高分辨率缩略图?

【问题讨论】:

如果您的自定义有高分辨率屏幕,您可以使用 ThumbnailOptions.UseCurrentScale 获取高分辨率缩略图。 我已经在使用 UseCurrentScale,正如您在我提供的代码中看到的那样 但是你的屏幕分辨率不高。 你会用ffmpeg吗? 是的,我的屏幕分辨率是 1366 x 720 ,缩略图在我的屏幕上的小图像元素上看起来不错,但在较大的元素上看起来很糟糕,我怎样才能获得高分辨率图像,我只能在更大的元素?哪个在所有屏幕分辨率上看起来都不错? 【参考方案1】:

我应该将视频文件的帧提取为位图图像并使用它们吗?或者有没有获得特定大小的高分辨率缩略图的方法?

这取决于您的要求。但根据您的描述,您可能不需要这样做。

我检查了您的代码。您已将固定值 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 找不到可以缩放以满足请求大小的缩略图,则可能会返回更大的缩略图。如果没有更大的缩略图可用,则可能会返回小于请求大小的缩略图。

如果你在这种情况下,你可以考虑像你说的那样将视频文件的帧提取为位图图像。

【讨论】:

以上是关于uwp 高分辨率缩略图的主要内容,如果未能解决你的问题,请参考以下文章

Youtube没有加载高分辨率缩略图

有没有办法在没有信箱的情况下获得高分辨率的 YouTube 视频缩略图?

uwp StorageFile 没有得到简单的缩略图

仅在 html css 中将缩略图的背景图像网格放大到更高的分辨率

uwp 随机大小的缩略图使adaptiveGridView看起来很丑

缩略图在php中生成图像问题