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 di 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 usare 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())
{
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())
{ 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 utilizzando 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 TIFF (Tagged Image File Format) e GIF (Graphics Interchange Format) supportano più fotogrammi.
Costruttori
| Nome | Descrizione |
|---|---|
| BitmapFrame() |
Inizializza una nuova istanza della classe BitmapFrame. |
Proprietà
| Nome | Descrizione |
|---|---|
| BaseUri |
Quando sottoposto a override in una classe derivata, ottiene o imposta un valore che rappresenta la base Uri del contesto corrente. |
| CanFreeze |
Ottiene un valore che indica se l'oggetto può essere reso non modificabile. (Ereditato da Freezable) |
| ColorContexts |
In caso di override in una classe derivata, ottiene una raccolta di ColorContext oggetti associati a questo BitmapFrameoggetto . |
| Decoder |
In caso di override in una classe derivata, ottiene il decodificatore associato a questa istanza di BitmapFrame. |
| DependencyObjectType |
Ottiene l'oggetto DependencyObjectType che esegue il wrapping del tipo CLR di questa istanza. (Ereditato da DependencyObject) |
| Dispatcher |
Ottiene l'oggetto DispatcherDispatcherObject a cui è associato. (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 nativo PixelFormat dei dati bitmap. (Ereditato da BitmapSource) |
| HasAnimatedProperties |
Ottiene un valore che indica se uno o più AnimationClock oggetti sono associati a una 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 pollici per unità). (Ereditato da BitmapSource) |
| IsDownloading |
Ottiene un valore che indica se il BitmapSource contenuto è attualmente in fase di download. (Ereditato da BitmapSource) |
| IsFrozen |
Ottiene un valore che indica se l'oggetto è attualmente modificabile. (Ereditato da Freezable) |
| IsSealed |
Ottiene un valore che indica se questa istanza è attualmente sealed (sola lettura). (Ereditato da DependencyObject) |
| Metadata |
Ottiene i metadati associati a questa 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 |
Quando sottoposto a override in una classe derivata, ottiene l'immagine di anteprima associata a questo BitmapFrameoggetto . |
| Width |
Ottiene la larghezza della bitmap in unità indipendenti dal dispositivo (1/96° pollice per unità). (Ereditato da BitmapSource) |
Metodi
| Nome | Descrizione |
|---|---|
| ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Applica un oggetto AnimationClock all'oggetto specificato DependencyProperty. Se la proprietà è già animata, viene utilizzato l'oggetto specificato HandoffBehavior . (Ereditato da Animatable) |
| ApplyAnimationClock(DependencyProperty, AnimationClock) |
Applica un oggetto AnimationClock all'oggetto specificato DependencyProperty. Se la proprietà è già animata, viene utilizzato il SnapshotAndReplace comportamento di handoff. (Ereditato da Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Applica un'animazione all'oggetto specificato DependencyProperty. L'animazione viene avviata quando viene eseguito il rendering del fotogramma successivo. Se la proprietà specificata è già animata, viene utilizzato l'oggetto specificato HandoffBehavior . (Ereditato da Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline) |
Applica un'animazione all'oggetto specificato DependencyProperty. L'animazione viene avviata quando viene eseguito il rendering del fotogramma successivo. Se la proprietà specificata è già animata, viene utilizzato il SnapshotAndReplace comportamento di handoff. (Ereditato da Animatable) |
| CheckAccess() |
Determina se il thread chiamante ha accesso a questo DispatcherObjectoggetto . (Ereditato da DispatcherObject) |
| CheckIfSiteOfOrigin() |
Verifica se il contenuto dell'origine bitmap proviene da un sito di origine noto. Questo metodo viene usato per assicurarsi che le operazioni di copia in pixel siano sicure. (Ereditato da BitmapSource) |
| ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà. La proprietà da cancellare viene specificata da un DependencyProperty identificatore. (Ereditato da DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare viene specificata da un oggetto DependencyPropertyKey. (Ereditato da DependencyObject) |
| Clone() |
Crea un clone modificabile di questo BitmapSourceoggetto , eseguendo copie complete dei valori di questo oggetto. Quando si copiano le proprietà di dipendenza, questo metodo copia i riferimenti alle risorse e i data binding (ma potrebbero non essere più risolti), ma non le animazioni o i relativi valori correnti. (Ereditato da BitmapSource) |
| CloneCore(Freezable) |
Rende questa istanza una copia completa dell'oggetto specificato BitmapSource. Quando si copiano le proprietà di dipendenza, questo metodo copia i riferimenti alle risorse e i data binding (ma potrebbero non essere più risolti), ma non le animazioni o i relativi valori correnti. (Ereditato da BitmapSource) |
| CloneCurrentValue() |
Crea un clone modificabile di questo BitmapSource oggetto, eseguendo copie complete dei valori correnti dell'oggetto. I riferimenti alle risorse, i data binding e le animazioni non vengono copiati, ma i relativi valori correnti sono. (Ereditato da BitmapSource) |
| CloneCurrentValueCore(Freezable) |
Rende questa istanza una copia completa modificabile dell'oggetto specificato BitmapSource utilizzando i valori delle proprietà correnti. I riferimenti alle risorse, i data binding e le animazioni non vengono copiati, ma i relativi valori correnti sono. (Ereditato da BitmapSource) |
| CoerceValue(DependencyProperty) |
Forza il valore della proprietà di dipendenza specificata. A tale scopo, richiamare qualsiasi CoerceValueCallback funzione specificata nei metadati della proprietà per la proprietà di dipendenza così come esiste nella chiamata DependencyObjectdi . (Ereditato da DependencyObject) |
| CopyPixels(Array, Int32, Int32) |
Copia i dati del pixel 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 del pixel bitmap all'interno del rettangolo specificato in una matrice di pixel con lo stride specificato a partire dall'offset specificato. (Ereditato da BitmapSource) |
| CopyPixels(Int32Rect, IntPtr, Int32, Int32) |
Copia i dati dei pixel bitmap all'interno del rettangolo specificato. (Ereditato da BitmapSource) |
| Create(BitmapSource, BitmapSource, BitmapMetadata, ReadOnlyCollection<ColorContext>) |
Crea un nuovo BitmapFrame oggetto da un oggetto specificato BitmapSource con l'anteprima, BitmapMetadatae ColorContext. |
| Create(BitmapSource, BitmapSource) |
Crea un nuovo BitmapFrame oggetto da un oggetto specificato BitmapSource con l'anteprima specificata. |
| Create(BitmapSource) |
Crea un nuovo BitmapFrame oggetto da un determinato BitmapSourceoggetto . |
| Create(Stream, BitmapCreateOptions, BitmapCacheOption) |
Crea un nuovo BitmapFrame oggetto da un oggetto specificato Stream con l'oggetto e BitmapCacheOptionspecificatoBitmapCreateOptions. |
| Create(Stream) |
Crea un nuovo BitmapFrame oggetto da un determinato Streamoggetto . |
| Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy) |
Crea un oggetto BitmapFrame da un oggetto specificato Uri con l'oggetto , BitmapCacheOptione RequestCachePolicyspecificatoBitmapCreateOptions. |
| Create(Uri, BitmapCreateOptions, BitmapCacheOption) |
Crea un oggetto BitmapFrame da un oggetto specificato Uri con l'oggetto e BitmapCacheOptionspecificatoBitmapCreateOptions. |
| Create(Uri, RequestCachePolicy) |
Crea un oggetto BitmapFrame da un oggetto specificato Uri con l'oggetto specificato RequestCachePolicy. |
| Create(Uri) |
Crea un nuovo BitmapFrame oggetto da un determinato Urioggetto . |
| CreateInPlaceBitmapMetadataWriter() |
Quando sottoposto a override in una classe derivata, crea un'istanza di InPlaceBitmapMetadataWriter, che può essere usata per associare i metadati a un oggetto BitmapFrame. |
| CreateInstance() |
Inizializza una nuova istanza della classe Freezable. (Ereditato da Freezable) |
| CreateInstanceCore() |
Se implementato in una classe derivata, crea una nuova istanza della Freezable classe derivata. (Ereditato da Freezable) |
| Equals(Object) |
Determina se un oggetto specificato DependencyObject è equivalente all'oggetto corrente DependencyObject. (Ereditato da DependencyObject) |
| Freeze() |
Rende l'oggetto corrente non modificabile e imposta la relativa IsFrozen proprietà su |
| FreezeCore(Boolean) |
Rende non modificabile un'istanza di BitmapSource o una classe derivata. (Ereditato da BitmapSource) |
| GetAnimationBaseValue(DependencyProperty) |
Restituisce il valore non animato dell'oggetto specificato DependencyProperty. (Ereditato da Animatable) |
| GetAsFrozen() |
Crea una copia bloccata della proprietà , utilizzando i valori della Freezableproprietà base (non animati). Poiché la copia è bloccata, tutti gli oggetti secondari bloccati vengono copiati in base al riferimento. (Ereditato da Freezable) |
| GetAsFrozenCore(Freezable) |
Rende questa istanza un clone dell'oggetto specificato BitmapSource . (Ereditato da BitmapSource) |
| GetCurrentValueAsFrozen() |
Crea una copia bloccata dell'oggetto utilizzando i valori correnti delle Freezable proprietà. Poiché la copia è bloccata, tutti gli oggetti secondari bloccati vengono copiati in base al riferimento. (Ereditato da Freezable) |
| GetCurrentValueAsFrozenCore(Freezable) |
Rende questa istanza un clone bloccato dell'oggetto specificato BitmapSource. I riferimenti alle risorse, i data binding e le animazioni non vengono copiati, ma i relativi valori correnti sono. (Ereditato da BitmapSource) |
| GetHashCode() |
Ottiene un codice hash per l'oggetto DependencyObject. (Ereditato da DependencyObject) |
| GetLocalValueEnumerator() |
Crea un enumeratore specializzato per determinare quali proprietà di dipendenza hanno valori impostati localmente in questo DependencyObjectoggetto . (Ereditato da DependencyObject) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| GetValue(DependencyProperty) |
Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di un oggetto DependencyObject. (Ereditato da DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Rivaluta il valore effettivo per la proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| OnChanged() |
Chiamato quando l'oggetto corrente Freezable viene modificato. (Ereditato da Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Questo membro supporta l'infrastruttura di Windows Presentation Foundation (WPF) e non deve essere usato direttamente dal codice. (Ereditato da Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Assicura che vengano stabiliti puntatori di contesto appropriati per un DependencyObjectType membro dati appena impostato. (Ereditato da Freezable) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Esegue l'override dell'implementazione DependencyObject di OnPropertyChanged(DependencyPropertyChangedEventArgs) per richiamare anche i Changed gestori in risposta a una proprietà di dipendenza modificata 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'oggetto Freezable sia accessibile da un thread valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che legge i membri dati che non sono proprietà di dipendenza. (Ereditato da Freezable) |
| SetCurrentValue(DependencyProperty, Object) |
Imposta il valore di una proprietà di dipendenza senza modificarne l'origine del valore. (Ereditato da DependencyObject) |
| SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza, specificato dall'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 per la proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
| ToString() |
Crea una rappresentazione di stringa di questo 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 questo DispatcherObjectoggetto . (Ereditato da DispatcherObject) |
| WritePostscript() |
Genera l'evento Changed per Freezable e richiama il relativo OnChanged() metodo. Le classi che derivano da Freezable devono chiamare questo metodo alla fine di qualsiasi API che modifica i membri della classe non archiviati come proprietà di dipendenza. (Ereditato da Freezable) |
| WritePreamble() |
Verifica che l'oggetto Freezable non sia bloccato e che sia accessibile da un contesto di threading valido. Freezable Gli eredi devono chiamare questo metodo all'inizio di qualsiasi API che scrive nei membri dati che non sono proprietà di dipendenza. (Ereditato da Freezable) |
Eventi
| Nome | Descrizione |
|---|---|
| Changed |
Si verifica quando l'oggetto Freezable o un oggetto che contiene viene modificato. (Ereditato da Freezable) |
| DecodeFailed |
Si verifica quando l'immagine non viene caricata, a causa di un'intestazione di immagine danneggiata. (Ereditato da BitmapSource) |
| DownloadCompleted |
Si verifica quando il contenuto bitmap è stato completamente scaricato. (Ereditato da BitmapSource) |
| DownloadFailed |
Si verifica quando il contenuto bitmap non è riuscito a scaricare. (Ereditato da BitmapSource) |
| DownloadProgress |
Si verifica quando lo stato di avanzamento del download del contenuto bitmap è stato modificato. (Ereditato da BitmapSource) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Formatta il valore dell'istanza corrente utilizzando il formato specificato. (Ereditato da ImageSource) |