BitmapFrame Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa dados de imagem devolvidos por um descodificador e aceites pelos codificadores.
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
- Herança
- Implementações
Exemplos
O seguinte exemplo de código demonstra como criar um novo BitmapSource usando um 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)
O exemplo de código seguinte demonstra como usar o BitmapFrame objeto para abrir um gráfico de Gráficos de Rede Portáteis (PNG) e escrever metadados usando o CreateInPlaceBitmapMetadataWriter método.
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()
Observações
BitmapFrame fornece funcionalidades adicionais não definidas por BitmapSource ao fornecer acesso ao Thumbnail associado a um determinado frame de uma imagem. BitmapFrame também suporta a escrita de informação de metadados utilizando a Metadata propriedade ou o CreateInPlaceBitmapMetadataWriter método.
Qualquer devolver BitmapFrame de um descodificador é sempre congelado. Se precisar de uma cópia modificável, deve primeiro criar uma cópia BitmapFrame do usando o Clone método.
Apenas as imagens em formato Tagged Image File Format (TIFF) e Graphics Interchange Format (GIF) suportam múltiplos frames.
Construtores
| Name | Description |
|---|---|
| BitmapFrame() |
Inicializa uma nova instância da BitmapFrame classe. |
Propriedades
| Name | Description |
|---|---|
| BaseUri |
Quando sobrescrito numa classe derivada, obtém ou define um valor que representa a base Uri do contexto atual. |
| CanFreeze |
Obtém um valor que indica se o objeto pode ser tornado inmodificável. (Herdado de Freezable) |
| ColorContexts |
Quando sobrescrito numa classe derivada, obtém-se uma coleção de ColorContext objetos associados a esta BitmapFrame. |
| Decoder |
Quando sobrescrito numa classe derivada, obtém o descodificador associado a esta instância de BitmapFrame. |
| DependencyObjectType |
Obtém o DependencyObjectType que envolve o tipo CLR desta instância. (Herdado de DependencyObject) |
| Dispatcher |
Percebe o Dispatcher que isto DispatcherObject está associado. (Herdado de DispatcherObject) |
| DpiX |
Obtém os pontos horizontais por polegada (dpi) da imagem. (Herdado de BitmapSource) |
| DpiY |
Obtém os pontos verticais por polegada (dpi) da imagem. (Herdado de BitmapSource) |
| Format |
Obtém os dados nativos PixelFormat do bitmap. (Herdado de BitmapSource) |
| HasAnimatedProperties |
Obtém um valor que indica se um ou mais AnimationClock objetos estão associados a alguma das propriedades de dependência deste objeto. (Herdado de Animatable) |
| Height |
Obtém a altura do bitmap de origem em unidades independentes do dispositivo (1/96 de polegada por unidade). (Herdado de BitmapSource) |
| IsDownloading |
Recebe um valor que indica se o BitmapSource conteúdo está a ser descarregado no momento. (Herdado de BitmapSource) |
| IsFrozen |
Recebe um valor que indica se o objeto é atualmente modificável. (Herdado de Freezable) |
| IsSealed |
Recebe um valor que indica se esta instância está atualmente selada (apenas leitura). (Herdado de DependencyObject) |
| Metadata |
Obtém os metadados associados a esta imagem bitmap. (Herdado de BitmapSource) |
| Palette |
Obtém a paleta de cores do bitmap, se for especificada. (Herdado de BitmapSource) |
| PixelHeight |
Obtém a altura do bitmap em pixels. (Herdado de BitmapSource) |
| PixelWidth |
Obtém a largura do bitmap em pixels. (Herdado de BitmapSource) |
| Thumbnail |
Quando sobrescrito numa classe derivada, obtém-se a imagem miniatura associada a esta BitmapFrame. |
| Width |
Obtém a largura do bitmap em unidades independentes do dispositivo (1/96 de polegada por unidade). (Herdado de BitmapSource) |
Métodos
| Name | Description |
|---|---|
| ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Aplica-se a AnimationClock um ao especificado DependencyProperty. Se a propriedade já estiver animada, utiliza-se a especificada HandoffBehavior . (Herdado de Animatable) |
| ApplyAnimationClock(DependencyProperty, AnimationClock) |
Aplica-se a AnimationClock um ao especificado DependencyProperty. Se a propriedade já estiver animada, utiliza-se o SnapshotAndReplace comportamento de handoff. (Herdado de Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Aplica uma animação ao especificado DependencyProperty. A animação é iniciada quando o frame seguinte é renderizado. Se a propriedade especificada já estiver animada, é usada a especificada HandoffBehavior . (Herdado de Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline) |
Aplica uma animação ao especificado DependencyProperty. A animação é iniciada quando o frame seguinte é renderizado. Se a propriedade especificada já estiver animada, utiliza-se o SnapshotAndReplace comportamento de handoff. (Herdado de Animatable) |
| CheckAccess() |
Determina se o thread que chama tem acesso a este DispatcherObject. (Herdado de DispatcherObject) |
| CheckIfSiteOfOrigin() |
Verifica se o conteúdo de origem do bitmap é de um local de origem conhecido. Este método é utilizado para garantir que as operações de cópia de píxeis são seguras. (Herdado de BitmapSource) |
| ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um DependencyProperty identificador. (Herdado de DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Limpa o valor local de uma propriedade de apenas leitura. O imóvel a ser limpo é especificado por um DependencyPropertyKey. (Herdado de DependencyObject) |
| Clone() |
Cria um clone modificável deste BitmapSource, fazendo cópias profundas dos valores deste objeto. Ao copiar propriedades de dependência, este método copia referências de recursos e ligações de dados (mas podem deixar de se resolver), mas não as animações nem os seus valores atuais. (Herdado de BitmapSource) |
| CloneCore(Freezable) |
Faz desta instância uma cópia profunda do especificado BitmapSource. Ao copiar propriedades de dependência, este método copia referências de recursos e ligações de dados (mas podem deixar de se resolver), mas não as animações nem os seus valores atuais. (Herdado de BitmapSource) |
| CloneCurrentValue() |
Cria um clone modificável deste BitmapSource objeto, fazendo cópias profundas dos valores atuais desse objeto. Referências de recursos, ligações de dados e animações não são copiadas, mas os seus valores atuais são. (Herdado de BitmapSource) |
| CloneCurrentValueCore(Freezable) |
Faz desta instância uma cópia profunda modificável do especificado BitmapSource usando valores atuais da propriedade. Referências de recursos, ligações de dados e animações não são copiadas, mas os seus valores atuais são. (Herdado de BitmapSource) |
| CoerceValue(DependencyProperty) |
Coage o valor da propriedade de dependência especificada. Isto é conseguido invocando qualquer CoerceValueCallback função especificada nos metadados da propriedade para a propriedade de dependência tal como existe na chamada DependencyObject. (Herdado de DependencyObject) |
| CopyPixels(Array, Int32, Int32) |
Copia os dados do pixel bitmap para um array de píxeis com o passo especificado, começando no deslocamento especificado. (Herdado de BitmapSource) |
| CopyPixels(Int32Rect, Array, Int32, Int32) |
Copia os dados do pixel bitmap dentro do retângulo especificado numa matriz de píxeis que tem o passo especificado a partir do deslocamento especificado. (Herdado de BitmapSource) |
| CopyPixels(Int32Rect, IntPtr, Int32, Int32) |
Copia os dados do pixel bitmap dentro do retângulo especificado. (Herdado de BitmapSource) |
| Create(BitmapSource, BitmapSource, BitmapMetadata, ReadOnlyCollection<ColorContext>) |
Cria um novo BitmapFrame a partir de um dado BitmapSource com a miniatura especificada, BitmapMetadata, e ColorContext. |
| Create(BitmapSource, BitmapSource) |
Cria um novo BitmapFrame a partir de um dado BitmapSource com a miniatura especificada. |
| Create(BitmapSource) |
Cria um novo BitmapFrame a partir de um dado BitmapSource. |
| Create(Stream, BitmapCreateOptions, BitmapCacheOption) |
Cria um novo BitmapFrame a partir de um dado Stream com o especificado BitmapCreateOptions e BitmapCacheOption. |
| Create(Stream) |
Cria um novo BitmapFrame a partir de um dado Stream. |
| Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy) |
Cria a BitmapFrame partir de um dado Uri com os especificados BitmapCreateOptions, BitmapCacheOption, e RequestCachePolicy. |
| Create(Uri, BitmapCreateOptions, BitmapCacheOption) |
Cria um BitmapFrame a partir de um dado Uri com o especificado BitmapCreateOptions e BitmapCacheOption. |
| Create(Uri, RequestCachePolicy) |
Cria um BitmapFrame a partir de um dado Uri com o especificado RequestCachePolicy. |
| Create(Uri) |
Cria um novo BitmapFrame a partir de um dado Uri. |
| CreateInPlaceBitmapMetadataWriter() |
Quando sobrescrito numa classe derivada, cria-se uma instância de InPlaceBitmapMetadataWriter, que pode ser usada para associar metadados a um BitmapFrame. |
| CreateInstance() |
Inicializa uma nova instância da Freezable classe. (Herdado de Freezable) |
| CreateInstanceCore() |
Quando implementado numa classe derivada, cria-se uma nova instância da Freezable classe derivada. (Herdado de Freezable) |
| Equals(Object) |
Determina se um fornecido DependencyObject é equivalente à corrente DependencyObject. (Herdado de DependencyObject) |
| Freeze() |
Torna o objeto atual immodificável e define a sua IsFrozen propriedade como |
| FreezeCore(Boolean) |
Torna uma instância de BitmapSource ou uma classe derivada imutável. (Herdado de BitmapSource) |
| GetAnimationBaseValue(DependencyProperty) |
Devolve o valor não animado do especificado DependencyProperty. (Herdado de Animatable) |
| GetAsFrozen() |
Cria uma cópia congelada do Freezable, usando valores base (não animados) da propriedade. Como a cópia está congelada, quaisquer subobjetos congelados são copiados por referência. (Herdado de Freezable) |
| GetAsFrozenCore(Freezable) |
Faz desta instância um clone do objeto especificado BitmapSource . (Herdado de BitmapSource) |
| GetCurrentValueAsFrozen() |
Cria uma cópia congelada do Freezable usando os valores atuais das propriedades. Como a cópia está congelada, quaisquer subobjetos congelados são copiados por referência. (Herdado de Freezable) |
| GetCurrentValueAsFrozenCore(Freezable) |
Faz desta instância um clone congelado do especificado BitmapSource. Referências de recursos, ligações de dados e animações não são copiadas, mas os seus valores atuais são. (Herdado de BitmapSource) |
| GetHashCode() |
Obtém um código de hash para isto DependencyObject. (Herdado de DependencyObject) |
| GetLocalValueEnumerator() |
Cria um enumerador especializado para determinar quais as propriedades de dependência que têm valores localmente definidos neste DependencyObject. (Herdado de DependencyObject) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| GetValue(DependencyProperty) |
Devolve o valor efetivo atual de uma propriedade de dependência nesta instância de um DependencyObject. (Herdado de DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Reavalia o valor efetivo da propriedade de dependência especificada. (Herdado de DependencyObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnChanged() |
Chamada quando o objeto atual Freezable é modificado. (Herdado de Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Este membro suporta a infraestrutura Windows Presentation Foundation (WPF) e não foi concebido para ser usado diretamente a partir do seu código. (Herdado de Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Assegura que os apontadores de contexto apropriados são estabelecidos para um DependencyObjectType membro de dados que acabou de ser definido. (Herdado de Freezable) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Sobrepõe a DependencyObject implementação de OnPropertyChanged(DependencyPropertyChangedEventArgs) para também invocar quaisquer Changed manipuladores em resposta a uma alteração da propriedade de dependência do tipo Freezable. (Herdado de Freezable) |
| ReadLocalValue(DependencyProperty) |
Devolve o valor local de uma propriedade de dependência, se esta existir. (Herdado de DependencyObject) |
| ReadPreamble() |
Garante que está a ser acedido Freezable a partir de um thread válido. Os herdeiros de Freezable devem chamar este método no início de qualquer API que leia membros de dados que não são propriedades de dependência. (Herdado de Freezable) |
| SetCurrentValue(DependencyProperty, Object) |
Define o valor de uma propriedade de dependência sem alterar a sua fonte de valor. (Herdado de DependencyObject) |
| SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência, especificado pelo seu identificador de propriedade de dependência. (Herdado de DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Define o valor local de uma propriedade de dependência somente de leitura, especificado pelo DependencyPropertyKey identificador da propriedade de dependência. (Herdado de DependencyObject) |
| ShouldSerializeProperty(DependencyProperty) |
Devolve um valor que indica se os processos de serialização devem serializar o valor da propriedade de dependência fornecida. (Herdado de DependencyObject) |
| ToString() |
Cria uma representação em cadeia deste objeto com base na cultura atual. (Herdado de ImageSource) |
| ToString(IFormatProvider) |
Cria uma representação string deste objeto com base no IFormatProvider passed in. Se o fornecedor for |
| VerifyAccess() |
Faz cumprir que o thread que chama tem acesso a este DispatcherObject. (Herdado de DispatcherObject) |
| WritePostscript() |
Eleva o Changed evento para o Freezable e invoca o seu OnChanged() método. As classes que derivam de Freezable devem chamar este método no final de qualquer API que modifique membros de classe que não estejam armazenados como propriedades de dependência. (Herdado de Freezable) |
| WritePreamble() |
Verifica se o Freezable não está congelado e que está a ser acedido a partir de um contexto de threading válido. Freezable os herdeiros devem chamar este método no início de qualquer API que escreva para membros de dados que não sejam propriedades de dependência. (Herdado de Freezable) |
evento
| Name | Description |
|---|---|
| Changed |
Ocorre quando o Freezable ou um objeto que contém é modificado. (Herdado de Freezable) |
| DecodeFailed |
Ocorre quando a imagem não carrega, devido a um cabeçalho de imagem corrompido. (Herdado de BitmapSource) |
| DownloadCompleted |
Ocorre quando o conteúdo bitmap foi completamente descarregado. (Herdado de BitmapSource) |
| DownloadFailed |
Ocorre quando o conteúdo bitmap não foi descarregado. (Herdado de BitmapSource) |
| DownloadProgress |
Ocorre quando o progresso de download do conteúdo bitmap mudou. (Herdado de BitmapSource) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Formata o valor da instância atual usando o formato especificado. (Herdado de ImageSource) |