Udostępnij za pośrednictwem


BitmapFrame Klasa

Definicja

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 true.

(Odziedziczone po Freezable)
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 null, CurrentCulture jest używany.

(Odziedziczone po ImageSource)
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)

Dotyczy

Zobacz też