我正在城市應用程序中工作。如何獲取城域(UWP)中BitmapImage的寬度和高度?
而且我使用BitmapImage
,其中由於構造我設置了Uri
,但我意識到,所有的時間PixelWidth
和PixelHeight
回報0
(我也該Uri
是正確的驗證)。
我找不到另一個返回這些屬性的類。我在想如果有辦法通過字節數組或類似的東西來獲取這些數據。你怎麼看?
我正在城市應用程序中工作。如何獲取城域(UWP)中BitmapImage的寬度和高度?
而且我使用BitmapImage
,其中由於構造我設置了Uri
,但我意識到,所有的時間PixelWidth
和PixelHeight
回報0
(我也該Uri
是正確的驗證)。
我找不到另一個返回這些屬性的類。我在想如果有辦法通過字節數組或類似的東西來獲取這些數據。你怎麼看?
檢查CacheOption屬性並將其設置爲BitmapCacheOption.None。您也可以嘗試轉換爲WriteableBitmap。 如果我說的不是真的,對不起,因爲我無法測試。 XAML(WPF只)的xD
我已經將CacheOption設置爲BitmapCacheOption.None並且不起作用 – 2012-07-20 03:33:20
請記住,在將圖像傳遞到源代碼之前,必須先更改BitmapCache。那麼試着施放一個WriteableBitmap .... – 2012-07-20 13:50:43
BitmapImage
返回0
爲PixelWidth
和PixelHeight
如果未加載圖像。圖像僅在實際使用時加載,例如分配給Image.Source
並顯示。這是...有問題。使用BitmapCacheOption.None
沒有幫助,它只適用於WP7。
正確的解決方案是使用BitmapDecoder
:
var stream = await storageFile.OpenReadAsync();
var decoder = await BitmapDecoder.CreateAsync(stream);
var size = new BitmapSize { Width = decoder.PixelWidth, Height = decoder.PixelHeight };
假設您正在從本地文件系統/資源加載,請嘗試等待,直到加載位圖的下一個主線程循環。如果來自網絡/ Internet源,則可能需要等待一段時間它下載。 – 2012-07-20 01:40:34