2017-06-22 67 views
0

我想將視頻文件的縮略圖放在更大的xaml元素上,例如:背景頁面或網格的圖像或頁面上的頂部橫幅。在這種情況下,我從下面的代碼中得到正常的縮略圖。看起來不錯,因爲它們分辨率低。uwp highresolution縮略圖

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

我想高分辨率縮略圖。我應該將視頻文件的幀作爲位圖圖像提取出來並使用它們嗎?或者是否有獲得高分辨率縮略圖的特定尺寸?

+0

如果您的自定義具有高分辨率屏幕,您可以使用ThumbnailOptions.UseCurrentScale獲取高分辨率縮略圖。 – lindexi

+0

我已經使用UseCurrentScale,你可以在我提供的代碼中看到 – touseef

+0

但是你的屏幕不是高分辨率。 – lindexi

回答

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不能找到一個縮略圖,它可以擴展以滿足要求的尺寸,更大可能會返回縮略圖。如果沒有更大的縮略圖可用,則可能會返回小於請求大小的縮略圖。

如果你在這種情況下,你可以考慮像你說的那樣,將視頻文件的幀作爲位圖圖像提取出來。