BitmapPropertiesView.GetPropertiesAsync(IIterable<String>) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Recupera in modo asincrono una o più proprietà 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)
Parametri
Raccolta di stringhe che rappresentano le chiavi delle proprietà o le query richieste. Le stringhe valide includono le proprietà di Windows e le query sui metadati del componente per l'immagine di Windows.
Restituisce
Oggetto che gestisce il recupero asincrono delle proprietà bitmap.
Implementazioni
- Attributi
Commenti
L'operazione asincrona produce una raccolta che rappresenta le chiavi delle proprietà immagine richieste e i relativi valori. I valori vengono archiviati come BitmapTypedValue, che contiene sia i dati effettivi che il PropertyType dei dati.
Un'immagine specifica può contenere solo alcune (o nessuna) delle proprietà richieste. In questo caso la raccolta avrà solo coppie chiave-valore per le proprietà trovate nell'immagine. È necessario verificare l'esistenza della proprietà prima di tentare di ottenere dati da esso:
bitmapPropertiesView.getPropertiesAsync(["System.Title"]).done(function (retrievedProperties) {
if (retrievedProperties.hasKey("System.Title")) {
var titleProperty = retrievedProperties.lookup("System.Title");
var title = titleProperty.value;
}
});
Esecuzione di query per un blocco di metadati
Se si usa il linguaggio di query dei metadati per richiedere un blocco di metadati anziché una proprietà, il valore restituito è BitmapPropertiesView che rappresenta i metadati all'interno di tale blocco. È possibile richiedere tutti i metadati contenuti nel blocco da 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;
});
Enumerazione tramite tutti i metadati all'interno di un frame
È possibile richiedere tutto il contenuto di un blocco di metadati, inclusi i blocchi secondari e le proprietà, passando una raccolta vuota (lunghezza zero) di stringhe. In questo modo viene generata una raccolta contenente ogni sotto-blocco e proprietà all'interno dell'ambito di BitmapPropertiesView . In questo modo, è possibile recuperare in modo iterativo tutti i metadati contenuti in un frame di immagine.
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 il formato dell'immagine non supporta i metadati, avrà esito negativo con HRESULT WINCODEC_ERR_UNSUPPORTEDOPERATION.