BitmapEncoder Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Contient des méthodes pour créer, modifier et enregistrer des images.
public ref class BitmapEncoder sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class BitmapEncoder final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class BitmapEncoder
Public NotInheritable Class BitmapEncoder
- Héritage
- Attributs
Configuration requise pour Windows
Famille d’appareils |
Windows 10 (introduit dans 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduit dans v1.0)
|
Exemples
Voici un exemple partiel de création d’un objet encodeur. Cet exemple suppose que vous avez sélectionné un fichier avec Windows.Storage.Pickers.FileSavePicker. Pour obtenir des instructions complètes sur la sélection d’un fichier, la création d’un encodeur et l’encodage d’une image, consultez Création d’images
private async void SaveSoftwareBitmapToFile(SoftwareBitmap softwareBitmap, StorageFile outputFile)
{
using (IRandomAccessStream stream = await outputFile.OpenAsync(FileAccessMode.ReadWrite))
{
// Create an encoder with the desired format
BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, stream);
// Set the software bitmap
encoder.SetSoftwareBitmap(softwareBitmap);
// Set additional encoding parameters, if needed
encoder.BitmapTransform.ScaledWidth = 320;
encoder.BitmapTransform.ScaledHeight = 240;
encoder.BitmapTransform.Rotation = Windows.Graphics.Imaging.BitmapRotation.Clockwise90Degrees;
encoder.BitmapTransform.InterpolationMode = BitmapInterpolationMode.Fant;
encoder.IsThumbnailGenerated = true;
try
{
await encoder.FlushAsync();
}
catch (Exception err)
{
const int WINCODEC_ERR_UNSUPPORTEDOPERATION = unchecked((int)0x88982F81);
switch (err.HResult)
{
case WINCODEC_ERR_UNSUPPORTEDOPERATION:
// If the encoder does not support writing a thumbnail, then try again
// but disable thumbnail generation.
encoder.IsThumbnailGenerated = false;
break;
default:
throw;
}
}
if (encoder.IsThumbnailGenerated == false)
{
await encoder.FlushAsync();
}
}
}
Remarques
Formats d’images
BitmapEncoder peut encoder les formats suivants.
- JPEG
- PNG
- GIF
- TIFF
- BMP
- JPEG-XR
Pour obtenir la liste des formats de décodage, consultez la rubrique BitmapDecoder .
BitmapEncoder se comporte différemment de BitmapDecoder en ce qu’il ne fournit pas d’accès aléatoire aux images d’une image. Au lieu de cela, vous devez effectuer des actions sur l’encodeur dans un ordre spécifique.
Lorsque vous créez un BitmapEncoder, il fournit l’accès aux données du conteneur et de la première image. Lorsque vous avez terminé de définir les données sur la première image et le premier conteneur, si vous ne souhaitez pas encoder d’images supplémentaires, appelez FlushAsync pour terminer l’opération d’encodage.
Si vous souhaitez encoder une trame supplémentaire, appelez GoToNextFrameAsync. Cela valide les données dans le conteneur et la première image afin que vous ne puissiez plus les modifier. À ce stade, toutes les actions que vous effectuez sur l’encodeur affecteront la deuxième image. Une fois que vous avez terminé avec chaque image, vous pouvez appeler GoToNextFrameAsync pour valider et ajouter une nouvelle image, ou appeler FlushAsync pour terminer. Les encodeurs bitmap peuvent exposer différentes options d’encodage qui affectent la qualité, la taille et d’autres propriétés du fichier de sortie encodé. Pour plus d’informations, consultez Imagerie.
Historique des versions
Version de Windows | Version du SDK | Valeur ajoutée |
---|---|---|
1809 | 17763 | HeifEncoderId |
Propriétés
BitmapContainerProperties |
Métadonnées du conteneur. |
BitmapProperties |
Métadonnées du cadre sélectionné. |
BitmapTransform |
Objet BitmapTransform utilisé pour spécifier la façon dont l’image bitmap doit être transformée. |
BmpEncoderId |
Identificateur unique de l’encodeur BMP intégré. |
EncoderInformation |
Informations sur l’encodeur bitmap. |
GeneratedThumbnailHeight |
Hauteur, en pixels, de toute miniature générée. |
GeneratedThumbnailWidth |
Largeur, en pixels, de toute miniature générée. |
GifEncoderId |
Identificateur unique de l’encodeur GIF intégré. |
HeifEncoderId |
Identificateur unique de l’encodeur HEIF intégré. |
IsThumbnailGenerated |
Indique si une nouvelle miniature est générée automatiquement. |
JpegEncoderId |
Identificateur unique de l’encodeur JPEG intégré. |
JpegXREncoderId |
Identificateur unique de l’encodeur JPEG-XR intégré. |
PngEncoderId |
Identificateur unique de l’encodeur PNG intégré. |
TiffEncoderId |
Identificateur unique de l’encodeur TIFF intégré. |
Méthodes
CreateAsync(Guid, IRandomAccessStream) |
Crée de manière asynchrone un nouveau BitmapEncoder. |
CreateAsync(Guid, IRandomAccessStream, IIterable<KeyValuePair<String,BitmapTypedValue>>) |
Crée de manière asynchrone un nouveau BitmapEncoder pour le codec spécifié avec les options d’encodage spécifiées et l’initialise sur un flux. |
CreateForInPlacePropertyEncodingAsync(BitmapDecoder) |
Crée de manière asynchrone un nouveau BitmapEncoder pour la modification des métadonnées et des propriétés sur place. Le nouvel encodeur peut uniquement modifier les propriétés bitmap sur place et échouera pour toute autre utilisation. |
CreateForTranscodingAsync(IRandomAccessStream, BitmapDecoder) |
Crée de manière asynchrone un nouveau BitmapEncoder et l’initialise à l’aide des données d’un BitmapDecoder existant. |
FlushAsync() |
Valide et vide de manière asynchrone toutes les données d’image. |
GetEncoderInformationEnumerator() |
Liste des encodeurs bitmap installés sur le système et informations les concernant. |
GoToNextFrameAsync() |
Valide de manière asynchrone les données d’image actuelles et ajoute un nouveau cadre vide à modifier. |
GoToNextFrameAsync(IIterable<KeyValuePair<String,BitmapTypedValue>>) |
Valide de manière asynchrone les données d’image actuelles et ajoute une nouvelle image vide, avec les options d’encodage spécifiées, à modifier. |
SetPixelData(BitmapPixelFormat, BitmapAlphaMode, UInt32, UInt32, Double, Double, Byte[]) |
Définit les données de pixels sur le cadre. |
SetSoftwareBitmap(SoftwareBitmap) |
Définit les données d’image de l’image actuelle à l’aide du SoftwareBitmap spécifié. |
S’applique à
Voir aussi
- Images
- Exemple de résolution de caméra (Windows 10)
- Exemple d’application caméra de base (Windows 10)
- Exemple de stabilisation vidéo (Windows 10)
- Exemple de détection de visage de caméra (Windows 10)
- Exemple de contrôles de caméra manuels (Windows 10)
- Exemple de plage dynamique élevée (Windows 10)
- Exemple de capture avancée de caméra