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)
Параметры
Коллекция строк, представляющих запрашиваемые ключи свойств или запросы. Допустимые строки включают свойства Windows и запросы метаданных компонента образов Windows.
Возвращаемое значение
Объект , который управляет асинхронным получением свойств растрового изображения.
Реализации
- Атрибуты
Комментарии
Асинхронная операция создает коллекцию, представляющую запрошенные ключи свойств изображения и их значения. Значения хранятся как 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.