So wird’s gemacht: Verwenden von Codierungsoptionen (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 ]

In diesem Thema erfahren Sie, wie Codierungsoptionen für einen BitmapEncoder festgelegt werden. Mit Codierungsoptionen können Sie das Verhalten und die Parameter eines Encoders exakt bestimmen. Sie können z. B. mit der ImageQuality-Option des JPEG-Encoders die Beziehung zwischen Bildqualität und Dateigröße kontrollieren. Normalerweise benötigen Sie keine Codierungsoptionen, da der Encoder automatisch die richtigen Standardwerte wählt.

Codierungsoptionen werden nur durch die CreateAsync- und die GoToNextFrameAsync-Methode von BitmapEncoder offengelegt. Dies liegt daran, dass Sie bei der Initialisierung des Encoders oder des Rahmens die Codierungsoptionen angeben müssen.

Wissenswertes

Technologien

Voraussetzungen

Referenz zu Codierungsoptionen

Sie können die folgenden Codierungsoptionen für BitmapEncoder verwenden. Eine Codierungsoption wird durch ihren Namen (eine Zeichenfolge) und einen Wert mit einem bestimmten Datentyp definiert (Windows.Foundation.PropertyType).

Name PropertyType Verwendungshinweise Gültige Formate
ImageQuality single Gültige Werte von 0 bis 1.0 Größere Werte bedeuten höhere Qualität. JPEG, JPEG-XR
CompressionQuality single Gültige Werte von 0 bis 1.0 Höhere Werte bedeuten ein effizienteres und langsameres Komprimierungsverfahren. TIFF
Lossless boolean Wenn dieser Wert auf "true" festgelegt ist, wird die Option "ImageQuality" ignoriert. JPEG-XR
InterlaceOption boolean Gibt an, ob der Interlacemodus für das Bild verwendet wird PNG
FilterOption uint8 Verwenden Sie die PngFilterMode-Enumeration. PNG
TiffCompressionMethod uint8 Verwenden Sie die TiffCompressionMode-Enumeration. TIFF
Luminance uint32Array Ein Array mit 64 Elementen, das die Quantifizierungskonstanten für die Leuchtdichte enthält. JPEG
Chrominance uint32Array Ein Array mit 64 Elementen, das die Quantifizierungskonstanten für die Chrominanz enthält. JPEG
JpegYCrCbSubsampling uint8 Verwenden Sie die JpegSubsamplingMode-Enumeration. JPEG
SuppressApp0 boolean Gibt an, ob die Erstellung eines App0-Metadatenblocks unterdrückt wird. JPEG
EnableV5Header32bppBGRA boolean Gibt an, ob als Version 5 des BMP-Formats, die Alphawerte unterstützt, codiert werden soll. BMP

 

Anweisungen

Schritt 1: Abrufen eines Ausgabestreams

Schreiben Sie den Anfang einer Funktion, die einen IRandomAccessStream erhält, der über die Datei geöffnet wurde, die Sie codieren. Sie müssen einen mit ReadWrite-Rechten geöffneten Stream verwenden.

function (stream) {

Hinweis  Dieses Beispiel geht davon aus, dass Sie ein JPEG-Bild codieren. Die Codierungsoptionen sind für das Bildformat spezifisch.

 

Wie Sie einen Ausgabestream erhalten, erfahren Sie unter So wird's gemacht: Codieren von neuen Bildern

Schritt 2: Erstellen einer Sammlung von Codierungsoptionen

Zur Speicherung einer oder mehrerer Codierungsoptionen wird ein BitmapPropertySet-Objekt verwenden. Eine Codierungsoption besteht aus einem Schlüssel-Wert-Paar. Der Schlüssel ist eine Zeichenfolge, die auf den Namen der Codierungsoption festgelegt ist, z. B. ImageQuality. Der Wert ist ein BitmapTypedValue-Objekt, mit dem Sie die reale Codierungsoption einem expliziten Datentyp zuordnen können (Windows.Foundation.PropertyType).

Dieses Beispiel veranschaulicht, wie der JPEG-Encoder so eingestellt wird, dass er die höchste verfügbare Qualität liefert. Erstellen Sie zum Festlegen der Qualität eine Codierungsoption mit dem Schlüssel ImageQuality, und legen Sie den Wert auf die Zahl 1.0 mit einfacher Genauigkeit fest (der größte gültige Wert).

    var propertySet = new Windows.Graphics.Imaging.BitmapPropertySet();
    var qualityValue = new Windows.Graphics.Imaging.BitmapTypedValue(
        1.0, // Maximum quality
        Windows.Foundation.PropertyType.single
        );

    propertySet.insert("ImageQuality", qualityValue);

Schritt 3: Initialisieren des Encoders mit den Codierungsoptionen

Verwenden Sie die CreateAsync-Methode mit den Codierungsoptionen als letztem Parameter.

Windows.Graphics.Imaging.BitmapEncoder.createAsync(
        Windows.Graphics.Imaging.BitmapEncoder.jpegEncoderId,
        stream,
        propertySet
    ).then(function (encoder) {
        // Encoder is initialized with encoding options.
    });

Sie verfügen nun über einen Encoder, den Sie in normalen Fällen verwenden können.

Verwandte Themen

So wird's gemacht: Codieren von neuen Bildern