Bagikan melalui


BitmapPropertiesView.GetPropertiesAsync(IIterable<String>) Metode

Definisi

Secara asinkron mengambil satu atau beberapa properti 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)

Parameter

propertiesToRetrieve

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

Kumpulan string yang mewakili kunci properti atau kueri yang sedang diminta. String yang valid mencakup properti Windows dan kueri metadata Komponen Pencitraan Windows.

Mengembalikan

Objek yang mengelola pengambilan asinkron properti bitmap.

Penerapan

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})
Atribut

Keterangan

Operasi asinkron menghasilkan koleksi yang mewakili kunci properti gambar yang diminta dan nilainya. Nilai disimpan sebagai BitmapTypedValue, yang berisi data aktual serta PropertyType data.

Gambar tertentu mungkin hanya berisi beberapa (atau tidak ada) dari properti yang diminta. Dalam hal ini koleksi hanya akan memiliki pasangan kunci-nilai untuk properti yang ditemukan dalam gambar. Anda perlu memeriksa keberadaan properti sebelum mencoba mendapatkan data darinya:

bitmapPropertiesView.getPropertiesAsync(["System.Title"]).done(function (retrievedProperties) {
  if (retrievedProperties.hasKey("System.Title")) {
	  	var titleProperty = retrievedProperties.lookup("System.Title");
	  	var title = titleProperty.value;
	 }
});

Mengkueri blok metadata

Jika Anda menggunakan bahasa kueri metadata untuk meminta blok metadata alih-alih properti, nilai yang dikembalikan adalah BitmapPropertiesView yang mewakili metadata dalam blok tersebut. Anda dapat meminta metadata apa pun yang terkandung dalam blok dari 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;
});

Menghitung semua metadata dalam bingkai

Anda dapat meminta semua konten blok metadata, termasuk sub-blok dan properti, dengan meneruskan koleksi string kosong (panjang nol). Ini menghasilkan koleksi yang berisi setiap sub-blok dan properti dalam cakupan BitmapPropertiesView . Dengan cara ini, Anda dapat secara berulang mengambil semua metadata yang terkandung dalam bingkai gambar.

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

Jika format gambar tidak mendukung metadata, format tersebut akan gagal dengan WINCODEC_ERR_UNSUPPORTEDOPERATION HRESULT.

Berlaku untuk

Lihat juga