BitmapPropertiesView.GetPropertiesAsync(IIterable<String>) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Recupera de forma asincrónica una o varias propiedades de mapa de bits.
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
Colección de cadenas que representan las claves de propiedad o las consultas que se solicitan. Entre las cadenas válidas se incluyen las propiedades de Windows y las consultas de metadatos del componente de creación de imágenes de Windows.
Devoluciones
Objeto que administra la recuperación asincrónica de las propiedades del mapa de bits.
Implementaciones
- Atributos
Comentarios
La operación asincrónica genera una colección que representa las claves de propiedad de imagen solicitadas y sus valores. Los valores se almacenan como BitmapTypedValue, que contiene los datos reales, así como el PropertyType de los datos.
Una imagen determinada solo puede contener algunas (o ninguna) de las propiedades solicitadas. En este caso, la colección solo tendrá pares clave-valor para las propiedades que se encontraron en la imagen. Debe comprobar la existencia de la propiedad antes de intentar obtener datos de ella:
bitmapPropertiesView.getPropertiesAsync(["System.Title"]).done(function (retrievedProperties) {
if (retrievedProperties.hasKey("System.Title")) {
var titleProperty = retrievedProperties.lookup("System.Title");
var title = titleProperty.value;
}
});
Consulta de un bloque de metadatos
Si usa el lenguaje de consulta de metadatos para solicitar un bloque de metadatos en lugar de una propiedad, el valor devuelto es bitmapPropertiesView que representa los metadatos de ese bloque. Puede solicitar los metadatos contenidos en el bloque desde 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;
});
Enumerar todos los metadatos dentro de un marco
Puede solicitar todo el contenido de un bloque de metadatos, incluidos los sub bloques y propiedades, pasando una colección vacía (longitud cero) de cadenas. Esto genera una colección que contiene todos los sub bloques y propiedades dentro del ámbito de BitmapPropertiesView . De este modo, puede recuperar iterativamente todos los metadatos contenidos en un marco de imagen.
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();
}
});
Si el formato de imagen no admite metadatos, se producirá un error en la WINCODEC_ERR_UNSUPPORTEDOPERATION HRESULT.