C# Windows Runtime SDK 編輯圖檔的基本和進階屬性
- 技術目标
- 具體步驟
-
- Windows.Storage.Picker 檔案選擇器
- 擷取檔案屬性對象
- 通路圖檔檔案基本屬性
- 通路圖檔檔案進階屬性
- 注意事項
技術目标
這裡所謂的基本屬性是指:tags (keywords), rating。進階屬性是指:geographic information (including latitude and longitude) 。我們通過Windows Runtime SDK提供的方法使用C#語言來實作。
具體步驟
Windows.Storage.Picker 檔案選擇器
var picker = new Windows.Storage.Pickers.FileOpenPick();
picker.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;
picker.pickSingleFileAsync().then(function (file) {... ...});
擷取檔案屬性對象
使用檔案選擇器得到的file object得到image properties object:
通路圖檔檔案基本屬性
使用得到的image properites object擷取圖檔檔案的基本屬性:
imageProperites.title = tileValue;
imageProperties.rating = userRating; // rating的範圍是0~99
imageProperites.keywords.append(keyword); // keywords可以添加多個,系統會自動用“;"分割,無需使用者添加
通路圖檔檔案進階屬性
擷取圖檔檔案進階屬性對象advProperites, 并使用它通路geographic information:
imageProperites.retrievePropertiesAsync(
["System.GPS.LatitudeNumerator",
"System.GPS.LatitudeDenominator",
"System.GPS.LongitudeNumerator",
"System.GPS.LongitudeDenominator"]
).then(function(advProperties) {
advProperties.insert("System.GPS.LatitudeNumerator", latNum);
advProperties.insert("System.GPS.LatitudeDenominator", latDen);
advProperties.insert("System.GPS.LongitudeNumerator", longNum);
advProperties.insert("System.GPS.LongitudeDenominator", longDen);
});
注意事項
特别注意,rating這個屬性必須要大于0,否則keywords以及geographic information均無法修改和通路。