So wird’s gemacht: Schreiben von Bildmetadaten (HTML)
[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation ]
Diese Anleitung beschreibt, wie Bildmetadaten mit einem BitmapEncoder-Objekt geschrieben werden. Sie können Metadaten mithilfe von Windows-Eigenschaften oder mit der Windows-Bilderstellungskomponente-Metadatenabfragesprache schreiben.
Weitere Informationen über den Zugriff auf Metadaten mit BitmapDecoder und BitmapEncoder, finden Sie unter So wird's gemacht: Lesen von Bildmetadaten.
Hinweis Sie können die Grundeigenschaften eines Windows.StorageFile mit den Windows.Storage.FileProperties-APIs festlegen, ohne einen Stream zu öffnen. Weitere Informationen finden Sie unter So wird's gemacht: Abrufen von Bildeigenschaften,.
Wissenswertes
Technologien
- Erstellen Ihrer ersten Windows-Runtime-App mit JavaScript
- Windows.Graphics.Imaging
- Abfragesprache für WIC-Metadaten
- Abfragesprache für WIC-Metadaten
- WIC-Metadatenabfragen für systemeigene Bildformate
- Unterstützte Windows-Eigenschaften
Voraussetzungen
- Sie sollten mit der Erstellung einer einfachen Windows-Runtime-App mit JavaScript vertraut sein. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Windows-Runtime-App mit JavaScript.
- Sie sollten wissen, wie ein Bild mit BitmapEncoder codiert wird. Weitere Informationen finden Sie unter So wird's gemacht: Codieren von neuen Bildern.
Anweisungen
Schritt 1: Abrufen eines Encoderobjekts
Schreiben Sie zu Beginn eine Funktion, die ein BitmapEncoder-Objekt empfängt.
function (encoder) {
Mit dem Encoder können Sie auf die Bildmetadaten zugreifen. Falls Sie noch kein Encoderobjekt haben, lesen Sie So wird's gemacht: Codieren von neuen Bildern.
Schritt 2: Erstellen einer Sammlung von festzulegenden Metadaten
Speichern Sie Metadatenelemente, die Sie für den Encoder festlegen möchten, mit BitmapPropertySet. Ein Metadatenelement besteht aus einem Schlüssel-Wert-Paar.
Der Schlüssel ist eine Zeichenfolge, die das festzulegende Metadatenelement identifiziert. BitmapEncoder akzeptiert einige Windows-Eigenschaften sowie mit der Metadaten-Abfragesprache WIC konstruierte Abfragen. Eine Liste mit unterstützten Windows-Eigenschaften finden Sie unter Unterstützte Windows-Eigenschaften. Eine Zusammenfassung der unterstützten WIC-Metadatenabfragen finden Sie unter WIC-Metadatenabfragen für systemeigene Bildformate.
Der Wert ist ein BitmapTypedValue-Objekt, mit dem Sie den realen Metadatenwert einem expliziten Datentyp zuordnen können (Windows.Foundation.PropertyType).
Legen Sie die Metadaten System.Photo.Orientation, die die EXIF-Ausrichtung angeben, auf den Wert 1 fest ("normale" Ausrichtung), und weisen Sie ihr den Datentyp "uint16" zu.
var propertySet = new Windows.Graphics.Imaging.BitmapPropertySet();
var orientationValue = new Windows.Graphics.Imaging.BitmapTypedValue(
1, // Defined as EXIF orientation = "normal"
Windows.Foundation.PropertyType.uint16
);
propertySet.insert("System.Photo.Orientation", orientationValue);
Schritt 3: Festlegen der Metadaten für den Encoder
Nachdem Sie alle Metadatenelemente konstruiert haben, legen Sie diese im Encoder fest, und setzen Sie den Codierungsvorgang fort.
encoder.bitmapProperties.setPropertiesAsync(propertySet).done(function () {
// Continue the encoding operation.
}, function (error) {
switch (error.number) {
case -2003292351: // WINCODEC_ERR_PROPERTYNOTSUPPORTED
// The file format does not support this property.
break;
default:
throw error;
}
});
}
Hinweis Jedes Bildformat unterstützt einen anderen Satz von Metadatenelementen. Wenn Sie versuchen, ein Metadaten- oder Eigenschaftselement festzulegen, das vom Bildformat nicht unterstützt wird, erhalten Sie einen Fehler. Die System.Photo.Orientation-Eigenschaft wird z. B. nur von Bildern in den Formaten JPEG, TIFF und JPEG-XR unterstützt.
Anmerkungen
Wenn Sie mehrere Eigenschaften festlegen möchten, gehen Sie jeweils wie beim Festlegen einer einzigen Eigenschaft vor. Geben Sie einfach mehrere Name-Wert-Paare in einer Liste an. Der folgende Code legt gleichzeitig Orientation und CameraModel fest.
encoder.savePropertiesAsync(["System.Photo.Orientation": 1],
"System.Photo.CameraModel": "Camera Model 1"]);
Verwandte Themen
Abfragesprache für WIC-Metadaten