共用方式為


BitmapPropertiesView.GetPropertiesAsync(IIterable<String>) 方法

定義

以非同步方式擷取一或多個點陣圖屬性。

public:
 virtual IAsyncOperation<BitmapPropertySet ^> ^ GetPropertiesAsync(IIterable<Platform::String ^> ^ propertiesToRetrieve) = GetPropertiesAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<BitmapPropertySet> GetPropertiesAsync(IIterable<winrt::hstring> const& propertiesToRetrieve);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<BitmapPropertySet> GetPropertiesAsync(IEnumerable<string> propertiesToRetrieve);
function getPropertiesAsync(propertiesToRetrieve)
Public Function GetPropertiesAsync (propertiesToRetrieve As IEnumerable(Of String)) As IAsyncOperation(Of BitmapPropertySet)

參數

propertiesToRetrieve

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

字串集合,表示要求的屬性索引鍵或查詢。 有效的字串包括 Windows 屬性Windows 映像元件中繼資料查詢

傳回

管理點陣圖屬性非同步擷取的物件。

實作

M:Windows.Graphics.Imaging.IBitmapPropertiesView.GetPropertiesAsync(System.Collections.Generic.IEnumerable{System.String}) M:Windows.Graphics.Imaging.IBitmapPropertiesView.GetPropertiesAsync(System.Collections.Generic.IEnumerable{Platform::String}) M:Windows.Graphics.Imaging.IBitmapPropertiesView.GetPropertiesAsync(System.Collections.Generic.IEnumerable{winrt::hstring})
屬性

備註

非同步作業會產生集合,代表要求的影像屬性索引鍵及其值。 這些值會儲存為 BitmapTypedValue,其中包含實際資料和資料的 PropertyType

特定影像可能只包含所要求屬性的某些 (或無) 。 在此情況下,集合只會有影像中找到之屬性的索引鍵/值組。 您必須先檢查屬性是否存在,才能嘗試從中取得資料:

bitmapPropertiesView.getPropertiesAsync(["System.Title"]).done(function (retrievedProperties) {
  if (retrievedProperties.hasKey("System.Title")) {
	  	var titleProperty = retrievedProperties.lookup("System.Title");
	  	var title = titleProperty.value;
	 }
});

查詢中繼資料區塊

如果您使用中繼資料查詢語言來要求中繼資料區塊,而不是屬性,則傳回的值是 BitmapPropertiesView ,代表該區塊內的中繼資料。 您可以從 BitmapPropertiesView要求區塊中包含的任何中繼資料:

// this is equivalent to directly requesting "/app1/ifd/{ushort=274}" from bitmapPropertiesView
bitmapPropertiesView.getPropertiesAsync(["/app1/ifd"]).done(function (retrievedProperties) {
	  // var ifdBlock is a BitmapPropertiesView
	  var ifdBlock = retrievedProperties.lookup("/app1/ifd").value;
	  return ifdBlock.getPropertiesAsync(["/{ushort=274}");
}).then(function (retrievedProperties) {
	  var orientation = retrievedProperties.lookup("/{ushort=274}").value;
});

列舉框架內的所有中繼資料

您可以藉由傳入空的 (零長度) 字串集合,來要求中繼資料區塊的所有內容,包括子區塊和屬性。 這會產生集合,其中包含 BitmapPropertiesView 範圍內每個子區塊和屬性。 如此一來,您就可以反復擷取影像框架中包含的所有中繼資料。

bitmapPropertiesView.getPropertiesAsync([]).done(function (retrievedProperties) {
	  var iterator = retrievedProps.first();
	  while (iterator.hasCurrent) {
		  // iterator.current gives a key-value pair of string, BitmapTypedValue
		  // nextMetadataBlock is a BitmapPropertiesView containing the sub-block
		  var nextMetadataBlock = iterator.current.value.value;
		  iterator.moveNext();
	}
});

如果影像格式不支援中繼資料,它將會失敗,且 HRESULT WINCODEC_ERR_UNSUPPORTEDOPERATION

適用於

另請參閱