Поделиться через


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();
	}
});

Если формат изображения не поддерживает метаданные, произойдет сбой при WINCODEC_ERR_UNSUPPORTEDOPERATION HRESULT.

Применяется к

См. также раздел