BitmapPropertiesView.GetPropertiesAsync(IIterable<String>) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Recupera de forma assíncrona uma ou mais propriedades de bitmap.
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)
Parâmetros
Uma coleção de cadeias de caracteres que representam as chaves de propriedade ou consultas que estão sendo solicitadas. As cadeias de caracteres válidas incluem propriedades do Windows e consultas de metadados do Componente de Imagem do Windows.
Retornos
Objeto que gerencia a recuperação assíncrona das propriedades do bitmap.
Implementações
- Atributos
Comentários
A operação assíncrona produz uma coleção que representa as chaves de propriedade de imagem solicitadas e seus valores. Os valores são armazenados como BitmapTypedValue, que contém os dados reais e o PropertyType dos dados.
Uma imagem específica pode conter apenas algumas (ou nenhuma) das propriedades solicitadas. Nesse caso, a coleção terá apenas pares chave-valor para as propriedades que foram encontradas na imagem. Você precisa marcar para a existência da propriedade antes de tentar obter dados dela:
bitmapPropertiesView.getPropertiesAsync(["System.Title"]).done(function (retrievedProperties) {
if (retrievedProperties.hasKey("System.Title")) {
var titleProperty = retrievedProperties.lookup("System.Title");
var title = titleProperty.value;
}
});
Consultar um bloco de metadados
Se você usar a linguagem de consulta de metadados para solicitar um bloco de metadados em vez de uma propriedade, o valor retornado será um BitmapPropertiesView representando os metadados dentro desse bloco. Você pode solicitar todos os metadados contidos no bloco do 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;
});
Enumerando todos os metadados dentro de um quadro
Você pode solicitar todo o conteúdo de um bloco de metadados, incluindo subconjuntos e propriedades, passando uma coleção vazia (de comprimento zero) de cadeias de caracteres. Isso produz uma coleção que contém cada subconjunto e propriedade dentro do escopo de BitmapPropertiesView . Dessa forma, você é capaz de recuperar iterativamente todos os metadados contidos em um quadro de imagem.
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();
}
});
Se o formato de imagem não der suporte a metadados, ele falhará com o HRESULT WINCODEC_ERR_UNSUPPORTEDOPERATION.