BitmapFrame Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje dane obrazu zwracane przez dekoder i akceptowane przez kodery.
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
- Dziedziczenie
- Implementuje
Przykłady
W poniższym przykładzie kodu pokazano, jak utworzyć nową BitmapSource przy użyciu elementu 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)
W poniższym przykładzie kodu pokazano, jak używać BitmapFrame obiektu do otwierania grafiki przenośnej sieci (PNG) i pisania metadanych przy użyciu CreateInPlaceBitmapMetadataWriter metody .
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()
Uwagi
BitmapFrame zapewnia dodatkowe funkcje niezdefiniowane przez BitmapSource zapewnienie dostępu do Thumbnail skojarzonego z konkretną ramką obrazu. BitmapFrame Obsługuje również zapisywanie informacji o metadanych przy użyciu Metadata właściwości lub CreateInPlaceBitmapMetadataWriter metody.
Każdy BitmapFrame zwrócony z dekodera jest zawsze zamrożony. Jeśli potrzebujesz modyfikowalnej kopii, musisz najpierw utworzyć kopię BitmapFrame obiektu przy użyciu Clone metody .
Tylko obrazy w formacie TIFF (Tag Image File Format) i Graphics Interchange Format (GIF) obsługują wiele ramek.
Konstruktory
BitmapFrame() |
Inicjuje nowe wystąpienie klasy BitmapFrame. |
Właściwości
BaseUri |
W przypadku zastąpienia w klasie pochodnej pobiera lub ustawia wartość reprezentującą bazę Uri bieżącego kontekstu. |
CanFreeze |
Pobiera wartość wskazującą, czy obiekt może być niemodyfikowalny. (Odziedziczone po Freezable) |
ColorContexts |
Po zastąpieniu w klasie pochodnej pobiera kolekcję obiektów skojarzonych ColorContext z tą BitmapFrameklasą . |
Decoder |
Po zastąpieniu klasy pochodnej pobiera dekoder skojarzony z tym wystąpieniem klasy BitmapFrame. |
DependencyObjectType |
DependencyObjectType Pobiera opakowujący typ clR tego wystąpienia. (Odziedziczone po DependencyObject) |
Dispatcher |
Dispatcher Pobiera tę DispatcherObject wartość skojarzona z. (Odziedziczone po DispatcherObject) |
DpiX |
Pobiera poziome kropki na cal (dpi) obrazu. (Odziedziczone po BitmapSource) |
DpiY |
Pobiera pionowe kropki na cal (dpi) obrazu. (Odziedziczone po BitmapSource) |
Format |
Pobiera natywne PixelFormat dane mapy bitowej. (Odziedziczone po BitmapSource) |
HasAnimatedProperties |
Pobiera wartość wskazującą, czy co najmniej jeden AnimationClock obiekt jest skojarzony z dowolnymi właściwościami zależności tego obiektu. (Odziedziczone po Animatable) |
Height |
Pobiera wysokość źródłowej mapy bitowej w jednostkach niezależnych od urządzenia (1/96 cala na jednostkę). (Odziedziczone po BitmapSource) |
IsDownloading |
Pobiera wartość wskazującą, czy BitmapSource zawartość jest obecnie pobierana. (Odziedziczone po BitmapSource) |
IsFrozen |
Pobiera wartość wskazującą, czy obiekt jest obecnie modyfikowalny. (Odziedziczone po Freezable) |
IsSealed |
Pobiera wartość wskazującą, czy to wystąpienie jest obecnie zapieczętowane (tylko do odczytu). (Odziedziczone po DependencyObject) |
Metadata |
Pobiera metadane skojarzone z tym obrazem mapy bitowej. (Odziedziczone po BitmapSource) |
Palette |
Pobiera paletę kolorów mapy bitowej, jeśli zostanie określona. (Odziedziczone po BitmapSource) |
PixelHeight |
Pobiera wysokość mapy bitowej w pikselach. (Odziedziczone po BitmapSource) |
PixelWidth |
Pobiera szerokość mapy bitowej w pikselach. (Odziedziczone po BitmapSource) |
Thumbnail |
Po zastąpieniu klasy pochodnej pobiera obraz miniatury skojarzony z tym elementem BitmapFrame. |
Width |
Pobiera szerokość mapy bitowej w jednostkach niezależnych od urządzenia (1/96 cala na jednostkę). (Odziedziczone po BitmapSource) |
Metody
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Stosuje element AnimationClock do określonego DependencyPropertyelementu . Jeśli właściwość jest już animowana, SnapshotAndReplace używane jest zachowanie przekazywania. (Odziedziczone po Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Stosuje element AnimationClock do określonego DependencyPropertyelementu . Jeśli właściwość jest już animowana, zostanie użyta określona HandoffBehavior wartość . (Odziedziczone po Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
Stosuje animację do określonego DependencyPropertyelementu . Animacja jest uruchamiana po renderowaniu następnej ramki. Jeśli określona właściwość jest już animowana, SnapshotAndReplace zostanie użyte zachowanie przekazywania. (Odziedziczone po Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Stosuje animację do określonego DependencyPropertyelementu . Animacja jest uruchamiana po renderowaniu następnej ramki. Jeśli określona właściwość jest już animowana, zostanie użyta określona HandoffBehavior właściwość. (Odziedziczone po Animatable) |
CheckAccess() |
Określa, czy wątek wywołujący ma dostęp do tego DispatcherObjectelementu . (Odziedziczone po DispatcherObject) |
CheckIfSiteOfOrigin() |
Sprawdza, czy zawartość źródłowa mapy bitowej pochodzi ze znanej lokacji pochodzenia. Ta metoda służy do zapewnienia, że operacje kopiowania pikseli są bezpieczne. (Odziedziczone po BitmapSource) |
ClearValue(DependencyProperty) |
Czyści wartość lokalną właściwości. Właściwość do wyczyszczenia jest określana przez DependencyProperty identyfikator. (Odziedziczone po DependencyObject) |
ClearValue(DependencyPropertyKey) |
Czyści wartość lokalną właściwości tylko do odczytu. Właściwość do wyczyszczenia jest określana przez DependencyPropertyKeyelement . (Odziedziczone po DependencyObject) |
Clone() |
Tworzy modyfikowalny klon tego BitmapSourceobiektu , tworząc głębokie kopie wartości tego obiektu. Podczas kopiowania właściwości zależności ta metoda kopiuje odwołania do zasobów i powiązania danych (ale mogą nie być już rozpoznawane), ale nie animacje ani ich bieżące wartości. (Odziedziczone po BitmapSource) |
CloneCore(Freezable) |
Sprawia, że to wystąpienie jest głęboką kopią określonego BitmapSourceelementu . Podczas kopiowania właściwości zależności ta metoda kopiuje odwołania do zasobów i powiązania danych (ale mogą nie być już rozpoznawane), ale nie animacje ani ich bieżące wartości. (Odziedziczone po BitmapSource) |
CloneCurrentValue() |
Tworzy modyfikowalny klon tego BitmapSource obiektu, tworząc głębokie kopie bieżących wartości tego obiektu. Odwołania do zasobów, powiązania danych i animacje nie są kopiowane, ale ich bieżące wartości są. (Odziedziczone po BitmapSource) |
CloneCurrentValueCore(Freezable) |
Sprawia, że to wystąpienie jest modyfikowalną kopią głęboką określonej wartości BitmapSource właściwości przy użyciu bieżących wartości właściwości. Odwołania do zasobów, powiązania danych i animacje nie są kopiowane, ale ich bieżące wartości są. (Odziedziczone po BitmapSource) |
CoerceValue(DependencyProperty) |
Coerce wartość określonej właściwości zależności. Jest to realizowane przez wywołanie dowolnej CoerceValueCallback funkcji określonej w metadanych właściwości dla właściwości zależności, ponieważ istnieje w wywołaniu DependencyObject. (Odziedziczone po DependencyObject) |
CopyPixels(Array, Int32, Int32) |
Kopiuje dane pikseli mapy bitowej do tablicy pikseli z określonym krokiem, zaczynając od określonego przesunięcia. (Odziedziczone po BitmapSource) |
CopyPixels(Int32Rect, Array, Int32, Int32) |
Kopiuje dane pikseli mapy bitowej w określonym prostokątze do tablicy pikseli, która ma określony krok rozpoczynający się od określonego przesunięcia. (Odziedziczone po BitmapSource) |
CopyPixels(Int32Rect, IntPtr, Int32, Int32) |
Kopiuje dane pikseli mapy bitowej w określonym prostokątze. (Odziedziczone po BitmapSource) |
Create(BitmapSource) |
Tworzy nowy BitmapFrame element na podstawie danego BitmapSourceelementu . |
Create(BitmapSource, BitmapSource) |
Tworzy nowy BitmapFrame element z danej BitmapSource miniatury. |
Create(BitmapSource, BitmapSource, BitmapMetadata, ReadOnlyCollection<ColorContext>) |
Tworzy nowy BitmapFrame element z danej BitmapSource miniatury, BitmapMetadatai ColorContext. |
Create(Stream) |
Tworzy nowy BitmapFrame element na podstawie danego Streamelementu . |
Create(Stream, BitmapCreateOptions, BitmapCacheOption) |
Tworzy nowy BitmapFrame element na podstawie danego Stream elementu z określonymi BitmapCreateOptions elementami i BitmapCacheOption. |
Create(Uri) |
Tworzy nowy BitmapFrame element na podstawie danego Urielementu . |
Create(Uri, BitmapCreateOptions, BitmapCacheOption) |
Tworzy element BitmapFrame na podstawie określonego UriBitmapCreateOptions elementu i BitmapCacheOption. |
Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy) |
Tworzy element BitmapFrame na podstawie określonego UriBitmapCreateOptionselementu , BitmapCacheOptioni RequestCachePolicy. |
Create(Uri, RequestCachePolicy) |
Tworzy element BitmapFrame na podstawie określonego UriRequestCachePolicyelementu . |
CreateInPlaceBitmapMetadataWriter() |
Po przesłonięciu w klasie pochodnej tworzy wystąpienie InPlaceBitmapMetadataWriterklasy , które może służyć do skojarzenia metadanych z klasą BitmapFrame. |
CreateInstance() |
Inicjuje nowe wystąpienie klasy Freezable. (Odziedziczone po Freezable) |
CreateInstanceCore() |
Po zaimplementowaniu w klasie pochodnej tworzy nowe wystąpienie klasy pochodnej Freezable . (Odziedziczone po Freezable) |
Equals(Object) |
Określa, czy podany DependencyObject element jest odpowiednikiem bieżącego DependencyObjectelementu . (Odziedziczone po DependencyObject) |
Freeze() |
Sprawia, że bieżący obiekt jest niezmodyfikowalny i ustawia jego IsFrozen właściwość na |
FreezeCore(Boolean) |
Sprawia, że wystąpienie klasy pochodnej BitmapSource jest niezmienne. (Odziedziczone po BitmapSource) |
GetAnimationBaseValue(DependencyProperty) |
Zwraca wartość nie animowaną określonego DependencyPropertyelementu . (Odziedziczone po Animatable) |
GetAsFrozen() |
Tworzy zamrożoną kopię obiektu Freezableprzy użyciu wartości właściwości base (nie animowanych). Ponieważ kopia jest zamrożona, wszystkie zamrożone obiekty podrzędne są kopiowane przez odwołanie. (Odziedziczone po Freezable) |
GetAsFrozenCore(Freezable) |
Sprawia, że to wystąpienie jest klonem określonego BitmapSource obiektu. (Odziedziczone po BitmapSource) |
GetCurrentValueAsFrozen() |
Tworzy zamrożoną kopię przy użyciu bieżących Freezable wartości właściwości. Ponieważ kopia jest zamrożona, wszystkie zamrożone obiekty podrzędne są kopiowane przez odwołanie. (Odziedziczone po Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Sprawia, że to wystąpienie jest zamrożonym klonem określonego BitmapSourceobiektu . Odwołania do zasobów, powiązania danych i animacje nie są kopiowane, ale ich bieżące wartości są. (Odziedziczone po BitmapSource) |
GetHashCode() |
Pobiera kod skrótu dla tego pliku DependencyObject. (Odziedziczone po DependencyObject) |
GetLocalValueEnumerator() |
Tworzy wyspecjalizowany moduł wyliczający do określania, które właściwości zależności mają lokalnie ustawione wartości w tym DependencyObjectelemecie . (Odziedziczone po DependencyObject) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
GetValue(DependencyProperty) |
Zwraca bieżącą obowiązującą wartość właściwości zależności dla tego wystąpienia obiektu DependencyObject. (Odziedziczone po DependencyObject) |
InvalidateProperty(DependencyProperty) |
Ponownie oblicza efektywną wartość dla określonej właściwości zależności. (Odziedziczone po DependencyObject) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnChanged() |
Wywoływana po zmodyfikowaniu bieżącego Freezable obiektu. (Odziedziczone po Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Zapewnia, że odpowiednie wskaźniki kontekstu są ustanawiane dla DependencyObjectType elementu członkowskiego danych, który został właśnie ustawiony. (Odziedziczone po Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Ten element członkowski obsługuje infrastrukturę Windows Presentation Foundation (WPF) i nie jest przeznaczony do użycia bezpośrednio z kodu. (Odziedziczone po Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Zastępuje implementację DependencyObjectOnPropertyChanged(DependencyPropertyChangedEventArgs) metody w celu wywołania wszystkich Changed procedur obsługi w odpowiedzi na zmieniającą się właściwość zależności typu Freezable. (Odziedziczone po Freezable) |
ReadLocalValue(DependencyProperty) |
Zwraca wartość lokalną właściwości zależności, jeśli istnieje. (Odziedziczone po DependencyObject) |
ReadPreamble() |
Gwarantuje, że dostęp do obiektu Freezable jest uzyskiwany z prawidłowego wątku. Dziedzicze muszą Freezable wywoływać tę metodę na początku dowolnego interfejsu API, który odczytuje elementy członkowskie danych, które nie są właściwościami zależności. (Odziedziczone po Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Ustawia wartość właściwości zależności bez zmiany źródła wartości. (Odziedziczone po DependencyObject) |
SetValue(DependencyProperty, Object) |
Ustawia wartość lokalną właściwości zależności określonej przez jego identyfikator właściwości zależności. (Odziedziczone po DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Ustawia wartość lokalną właściwości zależności tylko do odczytu określona przez DependencyPropertyKey identyfikator właściwości zależności. (Odziedziczone po DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Zwraca wartość wskazującą, czy procesy serializacji powinny serializować wartość podanej właściwości zależności. (Odziedziczone po DependencyObject) |
ToString() |
Tworzy reprezentację ciągu tego obiektu na podstawie bieżącej kultury. (Odziedziczone po ImageSource) |
ToString(IFormatProvider) |
Tworzy reprezentację ciągu tego obiektu na podstawie przekazanego IFormatProvider elementu. Jeśli dostawca to |
VerifyAccess() |
Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObjectelementu . (Odziedziczone po DispatcherObject) |
WritePostscript() |
Changed Zgłasza zdarzenie dla Freezable metody i wywołuje jej OnChanged() metodę. Klasy pochodzące z Freezable programu powinny wywoływać tę metodę na końcu dowolnego interfejsu API, który modyfikuje składowe klasy, które nie są przechowywane jako właściwości zależności. (Odziedziczone po Freezable) |
WritePreamble() |
Sprawdza, czy Freezable element nie jest zamrożony i czy jest uzyskiwany dostęp do niego z prawidłowego kontekstu wątkowego. Freezable dziedzicze powinny wywoływać tę metodę na początku dowolnego interfejsu API, który zapisuje do elementów członkowskich danych, które nie są właściwościami zależności. (Odziedziczone po Freezable) |
Zdarzenia
Changed |
Występuje, gdy Freezable obiekt lub, który zawiera, jest modyfikowany. (Odziedziczone po Freezable) |
DecodeFailed |
Występuje, gdy nie można załadować obrazu z powodu uszkodzonego nagłówka obrazu. (Odziedziczone po BitmapSource) |
DownloadCompleted |
Występuje, gdy zawartość mapy bitowej została całkowicie pobrana. (Odziedziczone po BitmapSource) |
DownloadFailed |
Występuje, gdy nie można pobrać zawartości mapy bitowej. (Odziedziczone po BitmapSource) |
DownloadProgress |
Występuje, gdy postęp pobierania zawartości mapy bitowej uległ zmianie. (Odziedziczone po BitmapSource) |
Jawne implementacje interfejsu
IFormattable.ToString(String, IFormatProvider) |
Formatuje wartość bieżącego wystąpienia przy użyciu określonego formatu. (Odziedziczone po ImageSource) |