Comment utiliser les options de codage (HTML)

[ Cet article est destiné aux développeurs Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Cette rubrique vous montre comment définir des options de codage dans un objet BitmapEncoder. Les options de codage vous permettent d’affiner le comportement et les paramètres d’un encodeur. Par exemple, vous pouvez définir l’option ImageQuality dans l’encodeur JPEG pour trouver un compromis entre la qualité des images et la taille des fichiers. Le recours aux options de codage n’est généralement pas nécessaire puisque l’encodeur sélectionne automatiquement les valeurs par défaut appropriées.

Les options de codage sont seulement exposées par les méthodes CreateAsync et GoToNextFrameAsync de l’objet BitmapEncoder, ceci parce que vous devez spécifier l’option de codage au moment d’initialiser l’encodeur ou la trame.

Ce que vous devez savoir

Technologies

Prérequis

Options de codage de référence

Vous pouvez utiliser les options de codage ici avec l’objet BitmapEncoder. Une option de codage se définit par son nom (à savoir une chaîne) et par une valeur dans un type de données particulier (Windows.Foundation.PropertyType).

Nom Type de propriété Notes d’utilisation Formats valides
ImageQuality unique Valeurs valides de 0 à 1.0. Des valeurs plus élevées indiquent une plus haute qualité. JPEG, JPEG-XR
CompressionQuality unique Valeurs valides de 0 à 1.0. Des valeurs plus élevées indiquent un schéma de compression plus efficace et plus lent. TIFF
Lossless booléen Si cette propriété a la valeur True, l’option ImageQuality est ignorée. JPEG-XR
InterlaceOption booléen Indique la nécessité ou non d’entrelacer l’image. PNG
FilterOption uint8 Utilisez l’énumération PngFilterMode. PNG
TiffCompressionMethod uint8 Utilisez l’énumération TiffCompressionMode. TIFF
Luminance uint32Array Tableau de 64 éléments comprenant des constantes de quantification de la luminance. JPEG
Chrominance uint32Array Tableau de 64 éléments comprenant des constantes de quantification de la chrominance. JPEG
JpegYCrCbSubsampling uint8 Utilisez l’énumération JpegSubsamplingMode. JPEG
SuppressApp0 booléen Indique la nécessité ou non de supprimer la création d’un bloc de métadonnées App0. JPEG
EnableV5Header32bppBGRA booléen Indique la nécessité ou non de coder dans une version 5 BMP avec prise en charge alpha. BMP

 

Instructions

Étape 1: Obtenir un flux de sortie

Rédigez le début d’une fonction qui accepte une interface IRandomAccessStream ouverte à partir du fichier dans lequel vous procédez à un codage. Vous devez utiliser un flux ouvert avec des privilèges ReadWrite.

function (stream) {

Remarque  Cet exemple part du principe que vous codez au format d’image JPEG. Les options de codage sont propres au format d’image.

 

Pour savoir comment vous procurer un flux de sortie, consultez la rubrique Comment coder une nouvelle image

Étape 2: Créer une collection d’options de codage

Vous utilisez un objet BitmapPropertySet pour stocker une ou plusieurs options de codage. Chaque option de codage est une paire clé-valeur. La clé est une chaîne définie conformément au nom de l’option de codage (par exemple, ImageQuality). La valeur est un objet BitmapTypedValue qui vous permet d’associer la valeur d’option de codage réelle avec un type de données explicite (Windows.Foundation.PropertyType).

Cet exemple vous montre comment définir l’encodeur JPEG pour exploiter la meilleure qualité disponible. Pour définir la qualité, créez une option de codage avec la clé ImageQuality et définissez la valeur sur un nombre à précision simple, 1.0 (la valeur valide la plus élevée).

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

Étape 3: Initialiser l’encodeur à l’aide des options de codage

Utilisez la méthode CreateAsync avec les options de codage comme dernier paramètre.

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

Vous disposez à présent d’un encodeur dont vous pouvez vous servir normalement.

Rubriques associées

Comment coder une nouvelle image