Sdílet prostřednictvím


BitmapFrame Třída

Definice

Představuje obrazová data 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 použít BitmapFrame objekt k otevření obrázku PNG (Portable Network Graphics) a zápis metadat 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() == 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()

Poznámky

BitmapFrame poskytuje další funkce, které nedefinuje, tím, že BitmapSource poskytuje přístup k objektu Thumbnail přidruženému ke konkrétnímu rámečku obrázku. BitmapFrame podporuje také zápis informací metadat pomocí Metadata vlastnosti nebo CreateInPlaceBitmapMetadataWriter metody .

Všechny BitmapFrame vrácené dekodérem se vždy zamrznou. Pokud potřebujete upravitelnou kopii, musíte nejprve vytvořit kopii BitmapFrameClone pomocí metody .

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

Konstruktory

BitmapFrame()

Inicializuje novou instanci BitmapFrame třídy.

Vlastnosti

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 změnit.

(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 BitmapFrameobjektu .

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á, který zabalí typ CLR této instance.

(Zděděno od DependencyObject)
Dispatcher

Získá to DispatcherDispatcherObject je přidružena k.

(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á označuje, zda jeden nebo více AnimationClock objektů je přidružena k některé z vlastností závislostí 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ě modifikovatelný.

(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á je přidružena k tomuto rastrovém obrázku.

(Zděděno od BitmapSource)
Palette

Získá paletu barev bitmapy, pokud je zadán.

(Zděděno od BitmapSource)
PixelHeight

Získá výšku bitmapy v pixelech.

(Zděděno od BitmapSource)
PixelWidth

Získá šířku rastru v pixelech.

(Zděděno od BitmapSource)
Thumbnail

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

Width

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

(Zděděno od BitmapSource)

Metody

ApplyAnimationClock(DependencyProperty, AnimationClock)

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

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

Použije na AnimationClock zadaný DependencyPropertyobjekt . Pokud je vlastnost již animovaná, použije se zadaná HandoffBehavior vlastnost.

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

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

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

Použije animaci na zadaný DependencyPropertyobjekt . 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)
CheckAccess()

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

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

Zkontroluje, jestli zdroj rastrového obrázku pochází 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á se má vymazat, je určena parametrem DependencyPropertyKey.

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

Vytvoří upravitelný klon tohoto BitmapSourceobjektu a vytváří 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 jako hlubokou kopii zadaného BitmapSourceobjektu . 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 vytváří 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 jako upravitelnou hloubkovou kopii zadaného 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 dosáhnete vyvoláním jakékoli CoerceValueCallback funkce zadané v metadatech vlastnosti pro vlastnost závislosti, protože existuje ve volajícím DependencyObjectobjektu .

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

Zkopíruje rastrová pixelová data do pole pixelů se zadaným krokem 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é má zadaný krok počínaje zadaným posunem.

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

Zkopíruje data rastrových pixelů v zadaném obdélníku.

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

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

Create(BitmapSource, BitmapSource)

Vytvoří nový BitmapFrame z dané BitmapSource se zadanou miniaturou.

Create(BitmapSource, BitmapSource, BitmapMetadata, ReadOnlyCollection<ColorContext>)

Vytvoří nový BitmapFrame z dané BitmapSource se zadanou miniaturou BitmapMetadata, a ColorContext.

Create(Stream)

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

Create(Stream, BitmapCreateOptions, BitmapCacheOption)

Vytvoří nový BitmapFrame z daného Stream se zadanými BitmapCreateOptions a BitmapCacheOption.

Create(Uri)

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

Create(Uri, BitmapCreateOptions, BitmapCacheOption)

BitmapFrame Vytvoří z daného se Uri zadanými BitmapCreateOptions a BitmapCacheOption.

Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy)

BitmapFrame Vytvoří z daného se Uri zadanými BitmapCreateOptions, BitmapCacheOptiona RequestCachePolicy.

Create(Uri, RequestCachePolicy)

BitmapFrame Vytvoří z daného se Uri zadaným RequestCachePolicyparametrem .

CreateInPlaceBitmapMetadataWriter()

Při přepsání v odvozené třídě vytvoří instanci objektu 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 zadaný DependencyObject ekvivalent k 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)

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

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

Vrátí hodnotu, která není animovaná zadanou DependencyPropertyhodnotou .

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

Vytvoří zamrzlou kopii objektu Freezable, pomocí základních (ne animovaných) hodnot vlastností. Vzhledem k tomu, že kopie je zamrzlá, všechny zmrazené pod objekty jsou zkopírovány odkazem.

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

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

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

Vytvoří zmrazenou kopii Freezable pomocí aktuálních hodnot vlastností. Vzhledem k tomu, že kopie je zamrzlá, všechny zmrazené pod objekty jsou zkopírovány odkazem.

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

Vytvoří tuto instanci zablokovaný klon zadaného BitmapSourceobjektu . Odkazy na prostředky, datové vazby a animace se nekopírují, ale jejich aktuální hodnoty ano.

(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í vlastností závislostí, které mají místně nastavené hodnoty v tomto DependencyObjectobjektu .

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

Získá aktuální Type instanci.

(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 Objectsouboru .

(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)

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

(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)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Přepíše implementaci DependencyObject tak, OnPropertyChanged(DependencyPropertyChangedEventArgs) aby také vyvolala všechny Changed obslužné rutiny v reakci na měnící se vlastnost závislosti 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 Freezable se k souboru přistupuje z platného vlákna. Dědiči Freezable musí tuto metodu volat na začátku jakéhokoli rozhraní API, které čte datové členy, které nejsou vlastnosti závislostí.

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

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

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

Nastaví místní hodnotu vlastnosti závislosti určenou 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 DependencyPropertyKey identifikátorem vlastnosti závislosti.

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

Vrátí hodnotu, která označuje, zda serializační procesy 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 nullzprostředkovatel , použije se CurrentCulture hodnota .

(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 Freezable a vyvolá její OnChanged() metodu. Třídy odvozené z Freezable by měly tuto metodu volat na konci libovolného rozhraní API, které upravuje členy třídy, které nejsou uloženy jako vlastnosti závislostí.

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

Ověřuje, že Freezable objekt není zamrznutý a že se k němu přistupuje z platného kontextu podprocesů. Freezable Dědiče by měli tuto metodu volat na začátku jakéhokoli rozhraní API, které zapisuje do datových členů, které nejsou vlastnosti závislostí.

(Zděděno od Freezable)

Událost

Changed

Nastane při změně objektu Freezable nebo objektu, který obsahuje.

(Zděděno od Freezable)
DecodeFailed

Nastane, když se image nenačte kvůli poškozené hlavičce obrázku.

(Zděděno od BitmapSource)
DownloadCompleted

Nastane, když je obsah rastrového obrázku zcela stažen.

(Zděděno od BitmapSource)
DownloadFailed

Nastane v případě, že se nepodařilo stáhnout obsah rastrového obrázku.

(Zděděno od BitmapSource)
DownloadProgress

Nastane při změně průběhu stahování obsahu rastrového obrázku.

(Zděděno od BitmapSource)

Explicitní implementace rozhraní

IFormattable.ToString(String, IFormatProvider)

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

(Zděděno od ImageSource)

Platí pro

Viz také