BitmapFrame Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta i dati immagine restituiti da un decodificatore e accettati dai codificatori.
public ref class BitmapFrame abstract : System::Windows::Media::Imaging::BitmapSource, System::Windows::Markup::IUriContext
public abstract class BitmapFrame : System.Windows.Media.Imaging.BitmapSource, System.Windows.Markup.IUriContext
type BitmapFrame = class
inherit BitmapSource
interface IUriContext
Public MustInherit Class BitmapFrame
Inherits BitmapSource
Implements IUriContext
- Ereditarietà
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato come creare un nuovo BitmapSource oggetto usando un oggetto 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);
Dim width As Integer = 128
Dim height As Integer = width
Dim stride As Integer = CType(width / 8, Integer)
Dim pixels(height * stride) As Byte
' Try creating a new image with a custom palette.
Dim colors As New List(Of 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)
Dim myPalette As New BitmapPalette(colors)
' Creates a new empty image with the pre-defined palette
Dim image As BitmapSource = System.Windows.Media.Imaging.BitmapSource.Create(width, height, 96, 96, PixelFormats.Indexed1, myPalette, pixels, stride)
Dim stream As New FileStream("empty.tif", FileMode.Create)
Dim encoder As New TiffBitmapEncoder()
Dim myTextBlock As 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)
Nell'esempio di codice seguente viene illustrato come utilizzare l'oggetto BitmapFrame per aprire un elemento grafico PNG (Portable Network Graphics) e scrivere metadati usando il CreateInPlaceBitmapMetadataWriter metodo .
Stream^ pngStream = gcnew FileStream("smiley.png", FileMode::Open, FileAccess::ReadWrite, FileShare::ReadWrite);
PngBitmapDecoder^ pngDecoder = gcnew 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();
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();
Dim pngStream As New System.IO.FileStream("smiley.png", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)
Dim pngDecoder As New PngBitmapDecoder(pngStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default)
Dim pngFrame As BitmapFrame = pngDecoder.Frames(0)
Dim pngInplace As InPlaceBitmapMetadataWriter = pngFrame.CreateInPlaceBitmapMetadataWriter()
If pngInplace.TrySave() = True Then
pngInplace.SetQuery("/Text/Description", "Have a nice day.")
End If
pngStream.Close()
Commenti
BitmapFrame fornisce funzionalità aggiuntive non definite fornendo BitmapSource l'accesso all'oggetto Thumbnail associato a un frame specifico di un'immagine. BitmapFrame supporta inoltre la scrittura di informazioni sui metadati tramite la Metadata proprietà o il CreateInPlaceBitmapMetadataWriter metodo .
Qualsiasi BitmapFrame oggetto restituito da un decodificatore è sempre bloccato. Se è necessaria una copia modificabile, è prima necessario creare una copia di BitmapFrame usando il Clone metodo .
Solo le immagini in formato GIF (Tagged Image File Format) e GIF (Graphics Interchange Format) supportano più fotogrammi.
Costruttori
BitmapFrame() |
Inizializza una nuova istanza della classe BitmapFrame. |
Proprietà
BaseUri |
Quando sottoposto a override in una classe derivata, ottiene o imposta un valore che rappresenta l'oggetto Uri di base del contesto corrente. |
CanFreeze |
Ottiene un valore che indica se l'oggetto può essere impostato come non modificabile. (Ereditato da Freezable) |
ColorContexts |
Quando è sottoposto a override in una classe derivata, ottiene un insieme di oggetti ColorContext associati all'oggetto BitmapFrame. |
Decoder |
Quando sottoposto a override in una classe derivata, ottiene il decodificatore associato con l'istanza dell'oggetto BitmapFrame. |
DependencyObjectType |
Ottiene l'oggetto DependencyObjectType che esegue il wrapping del tipo CLR di questa istanza. (Ereditato da DependencyObject) |
Dispatcher |
Ottiene l'oggetto Dispatcher associato a DispatcherObject. (Ereditato da DispatcherObject) |
DpiX |
Ottiene i punti orizzontali per pollice (dpi) dell'immagine. (Ereditato da BitmapSource) |
DpiY |
Ottiene i punti verticali per pollice (dpi) dell'immagine. (Ereditato da BitmapSource) |
Format |
Ottiene l'oggetto PixelFormat nativo dei dati bitmap. (Ereditato da BitmapSource) |
HasAnimatedProperties |
Ottiene un valore che indica se uno o più oggetti AnimationClock sono associati a una qualsiasi delle proprietà di dipendenza di questo oggetto. (Ereditato da Animatable) |
Height |
Ottiene l'altezza della bitmap di origine in unità indipendenti dal dispositivo (1/96° pollice per unità). (Ereditato da BitmapSource) |
IsDownloading |
Ottiene un valore che indica se è in corso di download il contenuto dell'oggetto BitmapSource. (Ereditato da BitmapSource) |
IsFrozen |
Ottiene un valore che indica se l'oggetto è attualmente modificabile. (Ereditato da Freezable) |
IsSealed |
Ottiene un valore che indica se l'istanza è attualmente sealed (di sola lettura). (Ereditato da DependencyObject) |
Metadata |
Ottiene i metadati associati all'immagine bitmap. (Ereditato da BitmapSource) |
Palette |
Ottiene la tavolozza dei colori della bitmap, se specificata. (Ereditato da BitmapSource) |
PixelHeight |
Ottiene l'altezza della bitmap in pixel. (Ereditato da BitmapSource) |
PixelWidth |
Ottiene la larghezza della bitmap in pixel. (Ereditato da BitmapSource) |
Thumbnail |
In caso di override in una classe derivata, ottiene l'immagine di anteprima associata a questo elemento BitmapFrame. |
Width |
Ottiene la larghezza della bitmap in unità indipendenti dal dispositivo (1/96° pollice per unità). (Ereditato da BitmapSource) |
Metodi
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Applica un oggetto AnimationClock all'oggetto DependencyProperty specificato. Se la proprietà è già animata, viene usato il comportamento di continuità di SnapshotAndReplace. (Ereditato da Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Applica un oggetto AnimationClock all'oggetto DependencyProperty specificato. Se alla proprietà è già stata aggiunta un'animazione, viene utilizzato l'oggetto HandoffBehavior specificato. (Ereditato da Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
Applica un'animazione all'oggetto DependencyProperty specificato. L'animazione viene avviata quando viene eseguito il rendering del fotogramma successivo. Se alla proprietà specificata è già applicata un'animazione, viene usato il comportamento di continuità di SnapshotAndReplace. (Ereditato da Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Applica un'animazione all'oggetto DependencyProperty specificato. L'animazione viene avviata quando viene eseguito il rendering del fotogramma successivo. Se alla proprietà specificata è già stata aggiunta un'animazione, viene utilizzato l'oggetto HandoffBehavior specificato. (Ereditato da Animatable) |
CheckAccess() |
Determina se il thread chiamante ha accesso a DispatcherObject. (Ereditato da DispatcherObject) |
CheckIfSiteOfOrigin() |
Controlla se il contenuto dell'origine bitmap proviene da un sito di origine noto. Questo metodo viene usato per assicurarsi che le operazioni di copia dei pixel siano sicure. (Ereditato da BitmapSource) |
ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà. La proprietà da cancellare è specificata da un identificatore DependencyProperty. (Ereditato da DependencyObject) |
ClearValue(DependencyPropertyKey) |
Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare è specificata da un oggetto DependencyPropertyKey. (Ereditato da DependencyObject) |
Clone() |
Crea un clone modificabile di questo oggetto BitmapSource, eseguendo copie complete dei valori dell'oggetto. Durante la copia delle proprietà di dipendenza, questo metodo copia i riferimenti alle risorse e i data binding (che potrebbero non essere più risolti), ma non le animazioni né i relativi valori correnti. (Ereditato da BitmapSource) |
CloneCore(Freezable) |
Rende questa istanza una copia completa dell'oggetto BitmapSource specificato. Durante la copia delle proprietà di dipendenza, questo metodo copia i riferimenti alle risorse e i data binding (che potrebbero non essere più risolti), ma non le animazioni né i relativi valori correnti. (Ereditato da BitmapSource) |
CloneCurrentValue() |
Crea un clone modificabile dell'oggetto BitmapSource, eseguendo copie complete dei valori correnti di tale oggetto. I riferimenti alle risorse, i data binding e le animazioni non vengono copiati, ma vengono copiati i relativi valori correnti. (Ereditato da BitmapSource) |
CloneCurrentValueCore(Freezable) |
Rende questa istanza una copia completa modificabile dell'oggetto BitmapSource specificato usando i valori di proprietà correnti. I riferimenti alle risorse, i data binding e le animazioni non vengono copiati, ma vengono copiati i relativi valori correnti. (Ereditato da BitmapSource) |
CoerceValue(DependencyProperty) |
Assegna forzatamente il valore della proprietà di dipendenza specificata. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza esistente nell'oggetto DependencyObject chiamante. (Ereditato da DependencyObject) |
CopyPixels(Array, Int32, Int32) |
Copia i dati pixel della bitmap in una matrice di pixel con lo stride specificato, a partire dall'offset specificato. (Ereditato da BitmapSource) |
CopyPixels(Int32Rect, Array, Int32, Int32) |
Copia i dati pixel della bitmap all'interno del rettangolo specificato in una matrice di pixel che ha lo stride specificato, a partire dall'offset specificato. (Ereditato da BitmapSource) |
CopyPixels(Int32Rect, IntPtr, Int32, Int32) |
Copia i dati pixel della bitmap che sono all'interno del rettangolo specificato. (Ereditato da BitmapSource) |
Create(BitmapSource) |
Crea un nuovo oggetto BitmapFrame da un determinato oggetto BitmapSource. |
Create(BitmapSource, BitmapSource) |
Crea un oggetto BitmapFrame nuovo da un oggetto BitmapSource specificato con la miniatura specificata. |
Create(BitmapSource, BitmapSource, BitmapMetadata, ReadOnlyCollection<ColorContext>) |
Crea un nuovo elemento BitmapFrame da un elemento BitmapSource dato con l'anteprima specificata, BitmapMetadata, e ColorContext. |
Create(Stream) |
Crea un nuovo oggetto BitmapFrame da un determinato oggetto Stream. |
Create(Stream, BitmapCreateOptions, BitmapCacheOption) |
Crea un oggetto BitmapFrame nuovo da un oggetto Stream specificato, con gli oggetti BitmapCreateOptions e BitmapCacheOption specificati. |
Create(Uri) |
Crea un nuovo oggetto BitmapFrame da un determinato oggetto Uri. |
Create(Uri, BitmapCreateOptions, BitmapCacheOption) |
Crea un BitmapFrame da un oggetto Uri specificato, con gli oggetti BitmapCreateOptions e BitmapCacheOption specificati. |
Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy) |
Crea un BitmapFrame da un Uri specificato, con gli oggetti BitmapCreateOptions, BitmapCacheOption e RequestCachePolicy specificati. |
Create(Uri, RequestCachePolicy) |
Crea un oggetto BitmapFrame da un Uri specificato, con l'oggetto RequestCachePolicy specificato. |
CreateInPlaceBitmapMetadataWriter() |
In caso di override in una classe derivata, crea un'istanza di InPlaceBitmapMetadataWriter, che può essere usato per associare i metadati a BitmapFrame. |
CreateInstance() |
Inizializza una nuova istanza della classe Freezable. (Ereditato da Freezable) |
CreateInstanceCore() |
Quando è implementato in una classe derivata, crea una nuova istanza della classe derivata Freezable. (Ereditato da Freezable) |
Equals(Object) |
Determina se l'oggetto DependencyObject specificato equivale all'oggetto DependencyObject corrente. (Ereditato da DependencyObject) |
Freeze() |
Rende non modificabile l'oggetto corrente e ne imposta la proprietà IsFrozen su |
FreezeCore(Boolean) |
Rende immutabile un'istanza dell'oggetto BitmapSource o una classe derivata. (Ereditato da BitmapSource) |
GetAnimationBaseValue(DependencyProperty) |
Restituisce il valore non animato dell'oggetto DependencyProperty specificato. (Ereditato da Animatable) |
GetAsFrozen() |
Crea una copia bloccata di Freezable, utilizzando valori delle proprietà di base (non-animati). Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable) |
GetAsFrozenCore(Freezable) |
Rende questa istanza un clone dell'oggetto BitmapSource specificato. (Ereditato da BitmapSource) |
GetCurrentValueAsFrozen() |
Crea una copia bloccata di Freezable utilizzando valori della proprietà correnti. Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Rende questa istanza un clone bloccato dell'oggetto BitmapSource specificato. I riferimenti alle risorse, i data binding e le animazioni non vengono copiati, ma vengono copiati i relativi valori correnti. (Ereditato da BitmapSource) |
GetHashCode() |
Ottiene un codice hash per l'oggetto DependencyObject. (Ereditato da DependencyObject) |
GetLocalValueEnumerator() |
Crea un enumeratore specializzato per determinare le proprietà di dipendenza che presentano valori impostati localmente nell'oggetto DependencyObject. (Ereditato da DependencyObject) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
GetValue(DependencyProperty) |
Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject. (Ereditato da DependencyObject) |
InvalidateProperty(DependencyProperty) |
Valuta di nuovo il valore effettivo della proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnChanged() |
Chiamato quando viene modificato l'oggetto Freezable corrente. (Ereditato da Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Assicura che adatti puntatori del contesto siano stabiliti per un membro dati DependencyObjectType che è appena stato impostato. (Ereditato da Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Questo membro supporta l'infrastruttura Windows Presentation Foundation (WPF) e non deve essere usato direttamente dal codice. (Ereditato da Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Esegue l'override dell'implementazione di DependencyObject di OnPropertyChanged(DependencyPropertyChangedEventArgs) per richiamare anche eventuali gestori Changed in risposta alla modifica di una proprietà di dipendenza di tipo Freezable. (Ereditato da Freezable) |
ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se esistente. (Ereditato da DependencyObject) |
ReadPreamble() |
Assicura che l’accesso di Freezable sia stato eseguito da un thread valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che legge i membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Imposta il valore di una proprietà di dipendenza senza modificare l'origine del valore. (Ereditato da DependencyObject) |
SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza, specificato dal relativo identificatore della proprietà di dipendenza. (Ereditato da DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Imposta il valore locale di una proprietà di dipendenza di sola lettura, specificato dall'identificatore DependencyPropertyKey della proprietà di dipendenza. (Ereditato da DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
ToString() |
Crea una rappresentazione di stringa dell'oggetto in base alle impostazioni cultura correnti. (Ereditato da ImageSource) |
ToString(IFormatProvider) |
Crea una rappresentazione di stringa di questo oggetto in base all'oggetto IFormatProvider passato. Se il provider è |
VerifyAccess() |
Impone che il thread chiamante abbia accesso a DispatcherObject. (Ereditato da DispatcherObject) |
WritePostscript() |
Genera l'evento Changed per Freezable e richiama il metodo OnChanged(). Le classi che derivano da Freezable devono chiamare questo metodo alla fine di qualsiasi API che modifica i membri di classe che non sono archiviati come proprietà di dipendenza. (Ereditato da Freezable) |
WritePreamble() |
Verifica che l'oggetto Freezable non sia bloccato e che l'accesso sia eseguito da un contesto di threading valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che scrive sui membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable) |
Eventi
Changed |
Si verifica quando Freezable o un oggetto che contiene è modificato. (Ereditato da Freezable) |
DecodeFailed |
Si verifica quando il caricamento dell'immagine non va a buon fine, a causa di un'intestazione di immagine danneggiata. (Ereditato da BitmapSource) |
DownloadCompleted |
Si verifica dopo il completamento del download di contenuto bitmap. (Ereditato da BitmapSource) |
DownloadFailed |
Si verifica in caso di errori di download di contenuto bitmap. (Ereditato da BitmapSource) |
DownloadProgress |
Si verifica in seguito alla modifica dello stato del download di contenuto bitmap. (Ereditato da BitmapSource) |
Implementazioni dell'interfaccia esplicita
IFormattable.ToString(String, IFormatProvider) |
Formatta il valore dell'istanza corrente usando il formato specificato. (Ereditato da ImageSource) |