共用方式為


如何取得影像屬性 (HTML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

以下將說明如何使用 ImageProperties 物件從影像檔抓取屬性。

如果您沒有 BitmapDecoder 物件,或是只需要常用的影像處理屬性,建議您使用 ImageProperties 類別。ImageProperties 會提供基本資料,像是標題和拍攝日期。另外還可以讓您存取 Windows 屬性系統,其中包含許多常用的屬性。 如需詳細資訊,可以在下列位置找到完整的 Windows 屬性命名空間:Windows 屬性

注意  影像格式及轉碼器只支援部分屬性。如需詳細資訊,請參閱相片中繼資料原則

 

您必須知道的事

技術

先決條件

指示

步驟 1: 取得檔案物件

編寫函式時一開始要接收 StorageFile 物件,並宣告要存放您所擷取之屬性的變數。

function GetImageProperties(file) {
      var title;
      var orientation;
      var aperture;

在這裡宣告變數,使其保持在範圍內。

步驟 2: 擷取基本屬性

StorageFile 有一個成員 Properties,可以存取檔案上的內容相關屬性。您可以使用 properties.getImagePropertiesAsync 取得影像處理屬性。

file.properties.getImagePropertiesAsync().then(function (imageProperties) {

只要有 ImageProperties 物件,就可以立即取得部分常見屬性,例如標題與評等。

title = imageProperties.title;

注意  如果影像沒有包含特定的屬性,或是影像格式不支援該屬性,則會傳回 null。您必須先檢查每一個屬性是否存在,才能進行擷取。

 

步驟 3: 擷取 Windows 屬性

您也可以藉由將屬性機碼名稱清單傳遞至 imageProperties.retrievePropertiesAsync,以非同步的方式要求支援的 Windows 屬性。

return imageProperties.retrievePropertiesAsync(["System.Photo.Orientation", “System.Photo.Aperture”]);
}).done(function (retrievedProperties) {

retrievedProperties 物件是機碼值組的集合,其中每一個機碼都是您要求的 Windows 屬性名稱,而值是對應的資料。當您呼叫查詢函式時,它會同步進行。retrievePropertiesAsync 函式會處理這個處理程序。

  orientation = retrievedProperties.lookup("System.Photo.Orientation");
    aperture = retrievedProperties.lookup("System.Photo.Aperture");

注意  如果影像沒有包含特定的屬性,或是影像格式不支援該屬性,則會傳回 null。您必須先檢查每一個屬性是否存在,才能進行擷取。

 

備註

您可以使用 BitmapPropertiesView 取得 Windows 屬性,像是 ImageProperties。但是它使用 WIC 中繼資料查詢語言,對檔案中的原生中繼資料結構提供較低層級的存取。如需詳細資訊,請參閱如何讀取影像中繼資料

相關主題

簡易影像範例

Windows.Storage.FileProperties.ImageProperties

如何解碼影像

如何讀取影像中繼資料

Windows 屬性

支援的 Windows 屬性