Sdílet prostřednictvím


BitmapFrame Třída

Definice

Představuje data obrázků vrácená dekodérem a přijatá kodéry.

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
Dědičnost
Implementuje

Příklady

Následující příklad kódu ukazuje, jak vytvořit nový BitmapSource pomocí .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)

Následující příklad kódu ukazuje, jak pomocí objektu BitmapFrame otevřít portable Network Graphics (PNG) grafiku a zapisovat metadata pomocí 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())
{
   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()

Poznámky

BitmapFrame poskytuje další funkce, které nejsou definovány poskytnutím BitmapSource přístupu k Thumbnail určitému rámečku obrázku. BitmapFrame podporuje také zápis informací o metadatech pomocí Metadata vlastnosti nebo CreateInPlaceBitmapMetadataWriter metody.

Všechny BitmapFrame vrácené z dekodéru jsou vždy zmrazené. Pokud potřebujete upravitelnou kopii, musíte nejprve vytvořit kopii BitmapFrame pomocí Clone metody.

Pouze obrázky ve formátu TIFF (Tagged Image File Format) a GIF (Graphics Interchange Format) podporují více snímků.

Konstruktory

Name Description
BitmapFrame()

Inicializuje novou instanci BitmapFrame třídy.

Vlastnosti

Name Description
BaseUri

Při přepsání v odvozené třídě získá nebo nastaví hodnotu, která představuje základ Uri aktuálního kontextu.

CanFreeze

Získá hodnotu, která označuje, zda objekt lze vytvořit nemodifovatelný.

(Zděděno od Freezable)
ColorContexts

Při přepsání v odvozené třídě získá kolekci ColorContext objektů, které jsou přidruženy k tomuto BitmapFrame.

Decoder

Při přepsání v odvozené třídě získá dekodér přidružený k této instanci BitmapFrame.

DependencyObjectType

DependencyObjectType Získá ten, který zabalí typ CLR této instance.

(Zděděno od DependencyObject)
Dispatcher

Dispatcher Získá toto DispatcherObject je přidružené.

(Zděděno od DispatcherObject)
DpiX

Získá vodorovné tečky na palec (dpi) obrázku.

(Zděděno od BitmapSource)
DpiY

Získá svislé tečky na palec (dpi) obrázku.

(Zděděno od BitmapSource)
Format

Získá nativní PixelFormat rastrová data.

(Zděděno od BitmapSource)
HasAnimatedProperties

Získá hodnotu, která určuje, zda jeden nebo více AnimationClock objektů je přidružen k některé z vlastností závislosti tohoto objektu.

(Zděděno od Animatable)
Height

Získá výšku zdrojového rastrového obrázku v jednotkách nezávislých na zařízení (1/96 palce na jednotku).

(Zděděno od BitmapSource)
IsDownloading

Získá hodnotu, která označuje, zda BitmapSource se obsah právě stahuje.

(Zděděno od BitmapSource)
IsFrozen

Získá hodnotu, která označuje, zda objekt je aktuálně upravitelný.

(Zděděno od Freezable)
IsSealed

Získá hodnotu, která označuje, zda je tato instance aktuálně zapečetěna (jen pro čtení).

(Zděděno od DependencyObject)
Metadata

Získá metadata, která jsou přidružena k tomuto rastrového obrázku.

(Zděděno od BitmapSource)
Palette

Získá barevnou paletu rastrového obrázku, pokud je zadána.

(Zděděno od BitmapSource)
PixelHeight

Získá výšku rastrového obrázku v pixelech.

(Zděděno od BitmapSource)
PixelWidth

Získá šířku rastrového obrázku v pixelech.

(Zděděno od BitmapSource)
Thumbnail

Při přepsání v odvozené třídě získá miniaturu obrázku přidruženého k tomuto BitmapFrame.

Width

Získá šířku rastrového obrázku v jednotkách nezávislých na zařízení (1/96 palce na jednotku).

(Zděděno od BitmapSource)

Metody

Name Description
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Použije pro AnimationClock zadaný DependencyPropertyparametr . Pokud je vlastnost již animovaná, použije se zadané HandoffBehavior .

(Zděděno od Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock)

Použije pro AnimationClock zadaný DependencyPropertyparametr . Pokud je vlastnost již animované, použije se SnapshotAndReplace chování předání.

(Zděděno od Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Použije animaci na zadanou DependencyPropertypoložku . Animace se spustí při vykreslení dalšího snímku. Pokud je zadaná vlastnost již animované, použije se zadaná HandoffBehavior vlastnost.

(Zděděno od Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Použije animaci na zadanou DependencyPropertypoložku . Animace se spustí při vykreslení dalšího snímku. Pokud je zadaná vlastnost již animované, použije se SnapshotAndReplace chování předání.

(Zděděno od Animatable)
CheckAccess()

Určuje, zda volající vlákno má přístup k tomuto DispatcherObject.

(Zděděno od DispatcherObject)
CheckIfSiteOfOrigin()

Zkontroluje, zda je zdrojový obsah rastrového obrázku ze známého webu původu. Tato metoda se používá k zajištění bezpečnosti operací kopírování pixelů.

(Zděděno od BitmapSource)
ClearValue(DependencyProperty)

Vymaže místní hodnotu vlastnosti. Vlastnost, která se má vymazat, je určena identifikátorem DependencyProperty .

(Zděděno od DependencyObject)
ClearValue(DependencyPropertyKey)

Vymaže místní hodnotu vlastnosti jen pro čtení. Vlastnost, která má být vymazána, je určena parametrem DependencyPropertyKey.

(Zděděno od DependencyObject)
Clone()

Vytvoří upravitelný klon tohoto BitmapSourceobjektu a vytvoří hluboké kopie hodnot tohoto objektu. Při kopírování vlastností závislostí tato metoda kopíruje odkazy na prostředky a datové vazby (ale nemusí se už překládat), ale ne animace nebo jejich aktuální hodnoty.

(Zděděno od BitmapSource)
CloneCore(Freezable)

Vytvoří tuto instanci hlubokou kopii zadaného BitmapSource. Při kopírování vlastností závislostí tato metoda kopíruje odkazy na prostředky a datové vazby (ale nemusí se už překládat), ale ne animace nebo jejich aktuální hodnoty.

(Zděděno od BitmapSource)
CloneCurrentValue()

Vytvoří upravitelný klon tohoto BitmapSource objektu a vytvoří hluboké kopie aktuálních hodnot tohoto objektu. Odkazy na prostředky, datové vazby a animace se nekopírují, ale jejich aktuální hodnoty jsou.

(Zděděno od BitmapSource)
CloneCurrentValueCore(Freezable)

Vytvoří tuto instanci upravitelnou hloubkovou kopii zadané BitmapSource pomocí aktuálních hodnot vlastností. Odkazy na prostředky, datové vazby a animace se nekopírují, ale jejich aktuální hodnoty jsou.

(Zděděno od BitmapSource)
CoerceValue(DependencyProperty)

Převede hodnotu zadané vlastnosti závislosti. Toho se dosahuje vyvoláním jakékoli CoerceValueCallback funkce zadané v metadatech vlastností pro vlastnost závislosti, protože existuje ve volání DependencyObject.

(Zděděno od DependencyObject)
CopyPixels(Array, Int32, Int32)

Zkopíruje rastrová pixelová data do pole pixelů se zadaným posunem počínaje zadaným posunem.

(Zděděno od BitmapSource)
CopyPixels(Int32Rect, Array, Int32, Int32)

Zkopíruje rastrová pixelová data v zadaném obdélníku do pole pixelů, které mají zadanou krok od zadaného posunu.

(Zděděno od BitmapSource)
CopyPixels(Int32Rect, IntPtr, Int32, Int32)

Zkopíruje rastrová pixelová data v zadaném obdélníku.

(Zděděno od BitmapSource)
Create(BitmapSource, BitmapSource, BitmapMetadata, ReadOnlyCollection<ColorContext>)

Vytvoří nový BitmapFrame z daného BitmapSource objektu se zadanou miniaturou BitmapMetadataa ColorContext.

Create(BitmapSource, BitmapSource)

Vytvoří novou BitmapFrame z dané BitmapSource miniatury.

Create(BitmapSource)

Vytvoří nový BitmapFrame z daného BitmapSourceobjektu .

Create(Stream, BitmapCreateOptions, BitmapCacheOption)

Vytvoří nový BitmapFrame ze zadaného Stream objektu BitmapCreateOptions a BitmapCacheOption.

Create(Stream)

Vytvoří nový BitmapFrame z daného Streamobjektu .

Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy)

BitmapFrame Vytvoří ze zadaného UriBitmapCreateOptionsobjektu , BitmapCacheOptiona RequestCachePolicy.

Create(Uri, BitmapCreateOptions, BitmapCacheOption)

BitmapFrame Vytvoří ze zadaného UriBitmapCreateOptions objektu BitmapCacheOptiona .

Create(Uri, RequestCachePolicy)

BitmapFrame Vytvoří ze zadaného objektu z daného Uri objektu RequestCachePolicy.

Create(Uri)

Vytvoří nový BitmapFrame z daného Uriobjektu .

CreateInPlaceBitmapMetadataWriter()

Při přepsání v odvozené třídě vytvoří instanci InPlaceBitmapMetadataWriter, která lze použít k přidružení metadat k objektu BitmapFrame.

CreateInstance()

Inicializuje novou instanci Freezable třídy.

(Zděděno od Freezable)
CreateInstanceCore()

Při implementaci v odvozené třídě vytvoří novou instanci odvozené Freezable třídy.

(Zděděno od Freezable)
Equals(Object)

Určuje, zda je poskytnutá DependencyObject hodnota ekvivalentní aktuálnímu DependencyObject.

(Zděděno od DependencyObject)
Freeze()

Nastaví aktuální objekt jako nemodifikovatelný a nastaví jeho IsFrozen vlastnost na true.

(Zděděno od Freezable)
FreezeCore(Boolean)

Vytvoří instanci BitmapSource nebo odvozenou třídu neměnnou.

(Zděděno od BitmapSource)
GetAnimationBaseValue(DependencyProperty)

Vrátí ne animovanou hodnotu zadané DependencyPropertyhodnoty .

(Zděděno od Animatable)
GetAsFrozen()

Vytvoří zablokovanou kopii Freezablevlastnosti , pomocí základních (ne animovaných) hodnot vlastností. Vzhledem k tomu, že je kopie zablokovaná, všechny ukotvené dílčí objekty se zkopírují odkazem.

(Zděděno od Freezable)
GetAsFrozenCore(Freezable)

Vytvoří tuto instanci klon zadaného BitmapSource objektu.

(Zděděno od BitmapSource)
GetCurrentValueAsFrozen()

Vytvoří ukotvenou kopii s použitím aktuálních Freezable hodnot vlastností. Vzhledem k tomu, že je kopie zablokovaná, všechny ukotvené dílčí objekty se zkopírují odkazem.

(Zděděno od Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Vytvoří tuto instanci zmrazeným klonem zadaného BitmapSource. Odkazy na prostředky, datové vazby a animace se nekopírují, ale jejich aktuální hodnoty jsou.

(Zděděno od BitmapSource)
GetHashCode()

Získá hash kód pro tento DependencyObject.

(Zděděno od DependencyObject)
GetLocalValueEnumerator()

Vytvoří specializovaný enumerátor pro určení, které vlastnosti závislosti mají místně nastavené hodnoty na tomto DependencyObject.

(Zděděno od DependencyObject)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
GetValue(DependencyProperty)

Vrátí aktuální efektivní hodnotu vlastnosti závislosti na této instanci objektu DependencyObject.

(Zděděno od DependencyObject)
InvalidateProperty(DependencyProperty)

Znovu vyhodnotí efektivní hodnotu pro zadanou vlastnost závislosti.

(Zděděno od DependencyObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
OnChanged()

Volá se při změně aktuálního Freezable objektu.

(Zděděno od Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určená k použití přímo z vašeho kódu.

(Zděděno od Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Zajišťuje, aby byly pro datový člen, který byl právě nastaven, vytvořeny DependencyObjectType příslušné kontextové ukazatele.

(Zděděno od Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Přepíše implementaci DependencyObjectOnPropertyChanged(DependencyPropertyChangedEventArgs) také vyvolat všechny Changed obslužné rutiny v reakci na měnící se závislost vlastnost typu Freezable.

(Zděděno od Freezable)
ReadLocalValue(DependencyProperty)

Vrátí místní hodnotu vlastnosti závislosti, pokud existuje.

(Zděděno od DependencyObject)
ReadPreamble()

Zajišťuje, že se k němu Freezable přistupuje z platného vlákna. Dědiče Freezable této metody musí volat tuto metodu na začátku jakéhokoli rozhraní API, které čte datové členy, které nejsou vlastnostmi závislosti.

(Zděděno od Freezable)
SetCurrentValue(DependencyProperty, Object)

Nastaví hodnotu vlastnosti závislosti beze změny jejího zdroje hodnot.

(Zděděno od DependencyObject)
SetValue(DependencyProperty, Object)

Nastaví místní hodnotu vlastnosti závislosti určenou jeho identifikátorem vlastnosti závislosti.

(Zděděno od DependencyObject)
SetValue(DependencyPropertyKey, Object)

Nastaví místní hodnotu vlastnosti závislosti jen pro čtení určenou identifikátorem DependencyPropertyKey vlastnosti závislosti.

(Zděděno od DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Vrátí hodnotu, která určuje, zda procesy serializace mají serializovat hodnotu pro zadanou vlastnost závislosti.

(Zděděno od DependencyObject)
ToString()

Vytvoří řetězcovou reprezentaci tohoto objektu na základě aktuální jazykové verze.

(Zděděno od ImageSource)
ToString(IFormatProvider)

Vytvoří řetězcovou reprezentaci tohoto objektu na základě předaného objektu IFormatProvider . Pokud je nullposkytovatel, použije se CurrentCulture .

(Zděděno od ImageSource)
VerifyAccess()

Vynucuje, že volající vlákno má přístup k tomuto DispatcherObject.

(Zděděno od DispatcherObject)
WritePostscript()

Changed Vyvolá událost pro událost Freezable a vyvolá její OnChanged() metodu. Třídy odvozené z Freezable by měly volat tuto metodu na konci jakéhokoli rozhraní API, které upravuje členy třídy, které nejsou uloženy jako vlastnosti závislosti.

(Zděděno od Freezable)
WritePreamble()

Ověřuje, že Freezable není zablokovaný a že k němu přistupujete z platného kontextu podprocesu. Freezable dědiče by měly tuto metodu volat na začátku jakéhokoli rozhraní API, které zapisuje do datových členů, které nejsou vlastnostmi závislosti.

(Zděděno od Freezable)

Událost

Name Description
Changed

Nastane, když Freezable je objekt, který obsahuje, změněn.

(Zděděno od Freezable)
DecodeFailed

Nastane, když se image nepodaří načíst, protože je poškozená hlavička obrázku.

(Zděděno od BitmapSource)
DownloadCompleted

Nastane, když je rastrový obrázek zcela stažen.

(Zděděno od BitmapSource)
DownloadFailed

Nastane v případě, že se nepodařilo stáhnout rastrový obsah.

(Zděděno od BitmapSource)
DownloadProgress

Nastane, když se změní průběh stahování rastrového obsahu.

(Zděděno od BitmapSource)

Explicitní implementace rozhraní

Name Description
IFormattable.ToString(String, IFormatProvider)

Naformátuje hodnotu aktuální instance pomocí zadaného formátu.

(Zděděno od ImageSource)

Platí pro

Viz také