BitmapFrame, classe
Mise à jour : novembre 2007
Représente des données image retournées par un décodeur et acceptées par des codeurs.
Assembly : PresentationCore (dans PresentationCore.dll)
public abstract class BitmapFrame extends BitmapSource implements IUriContext
public abstract class BitmapFrame extends BitmapSource implements IUriContext
Cette classe est abstraite ; consultez Hiérarchie d'héritage pour connaître les classes non abstraites dérivées qui peuvent être utilisées en XAML.
BitmapFrame fournit des fonctionnalités supplémentaires non définies par BitmapSource en fournissant un accès à la Thumbnail associée à une trame particulière d'une image. BitmapFrame prend également en charge l'écriture d'informations de métadonnées à l'aide de la propriété Metadata ou de la méthode CreateInPlaceBitmapMetadataWriter.
Tout BitmapFrame retourné à partir d'un décodeur est toujours figé. Si vous avez besoin d'une copie modifiable, vous devez d'abord créer une copie du BitmapFrame en utilisant la méthode Clone.
Seules les images au format TIFF (Tagged Image File Format) et GIF (Graphics Interchange Format) prennent en charge plusieurs trames.
L'exemple de code suivant montre comment créer un nouveau BitmapSource à l'aide d'un BitmapFrame.
int width = 128; int height = width; int stride = width/8; byte[] pixels = new byte[height*stride]; // Try creating a new image with a custom palette. List<System.Windows.Media.Color> colors = new List<System.Windows.Media.Color>(); colors.Add(System.Windows.Media.Colors.Red); colors.Add(System.Windows.Media.Colors.Blue); colors.Add(System.Windows.Media.Colors.Green); BitmapPalette myPalette = new BitmapPalette(colors); // Creates a new empty image with the pre-defined palette BitmapSource image = BitmapSource.Create( width, height, 96, 96, PixelFormats.Indexed1, myPalette, pixels, stride); FileStream stream = new FileStream("empty.tif", FileMode.Create); TiffBitmapEncoder encoder = new TiffBitmapEncoder(); TextBlock myTextBlock = new TextBlock(); myTextBlock.Text = "Codec Author is: " + encoder.CodecInfo.Author.ToString(); encoder.Frames.Add(BitmapFrame.Create(image)); MessageBox.Show(myPalette.Colors.Count.ToString()); encoder.Save(stream);
L'exemple de code suivant montre comment utiliser l'objet BitmapFrame pour ouvrir un graphique PNG (Portable Network Graphics) et écrire les métadonnées à l'aide de la méthode CreateInPlaceBitmapMetadataWriter.
Stream pngStream = new System.IO.FileStream("smiley.png", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite); PngBitmapDecoder pngDecoder = new PngBitmapDecoder(pngStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); BitmapFrame pngFrame = pngDecoder.Frames[0]; InPlaceBitmapMetadataWriter pngInplace = pngFrame.CreateInPlaceBitmapMetadataWriter(); if (pngInplace.TrySave() == true) { pngInplace.SetQuery("/Text/Description", "Have a nice day."); } pngStream.Close();
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.