BitmapFrame Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет данные изображения, возвращаемые декодером и принимаемые кодировщиками.
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
- Наследование
- Реализации
Примеры
В следующем примере кода показано, как создать объект BitmapSource с помощью 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)
В следующем примере кода показано, как с помощью BitmapFrame объекта открыть графический файл PNG и записать метаданные с помощью CreateInPlaceBitmapMetadataWriter метода .
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()
Комментарии
BitmapFrame предоставляет дополнительные функции, не определенные путем BitmapSource предоставления доступа к объекту , Thumbnail связанному с определенным кадром изображения. BitmapFrame также поддерживает запись сведений о метаданных с помощью Metadata свойства или CreateInPlaceBitmapMetadataWriter метода .
Любой BitmapFrame объект, возвращаемый декодером, всегда зависает. Если требуется изменяемая копия, сначала необходимо создать копию BitmapFrame с помощью Clone метода .
Несколько кадров поддерживаются только в формате TIFF и формате GIF.
Конструкторы
BitmapFrame() |
Инициализирует новый экземпляр класса BitmapFrame. |
Свойства
BaseUri |
При переопределении в производном классе Возвращает или задает значение, представляющее базовый Uri текущего контекста. |
CanFreeze |
Возвращает значение, которое указывает, можно ли сделать объект неизменяемым. (Унаследовано от Freezable) |
ColorContexts |
При переопределении в производном классе получает коллекцию объектов ColorContext, связанных с объектом BitmapFrame. |
Decoder |
При переопределении в производном классе получает декодер, сопоставленный с экземпляром класса BitmapFrame. |
DependencyObjectType |
Возвращает объект , DependencyObjectType который заключает в оболочку тип СРЕДЫ CLR данного экземпляра. (Унаследовано от DependencyObject) |
Dispatcher |
Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject. (Унаследовано от DispatcherObject) |
DpiX |
Получает горизонтальные точки на дюйм (точек на дюйм) изображения. (Унаследовано от BitmapSource) |
DpiY |
Возвращает вертикальные точки на дюйм (точек на дюйм) изображения. (Унаследовано от BitmapSource) |
Format |
Возвращает исходный формат PixelFormat данных растрового изображения. (Унаследовано от BitmapSource) |
HasAnimatedProperties |
Возвращает значение, которое указывает, сопоставлены ли один или несколько объектов AnimationClock любому из свойств зависимостей этого объекта. (Унаследовано от Animatable) |
Height |
Возвращает высоту исходного растрового изображения в независимых от устройства единицах (1/96 дюйма на единицу). (Унаследовано от BitmapSource) |
IsDownloading |
Получает значение, указывающее, находится ли содержимое BitmapSource в процессе загрузки. (Унаследовано от BitmapSource) |
IsFrozen |
Получает значение, указывающее, доступен ли объект для изменения в настоящее время. (Унаследовано от Freezable) |
IsSealed |
Получает значение, указывающее, является ли этот экземпляр в данный момент запечатанным (доступным только для чтения). (Унаследовано от DependencyObject) |
Metadata |
Получает метаданные, связанные с данным растровым изображением. (Унаследовано от BitmapSource) |
Palette |
Получает цветовую палитру растрового изображения, если она задана. (Унаследовано от BitmapSource) |
PixelHeight |
Получает высоту растрового изображения в пикселях. (Унаследовано от BitmapSource) |
PixelWidth |
Получает ширину растрового изображения в пикселях. (Унаследовано от BitmapSource) |
Thumbnail |
При переопределении в производном классе возвращает эскиз, связанный с этим объектом BitmapFrame. |
Width |
Возвращает ширину растрового изображения в независимых от устройства единицах (1/96 дюйма на единицу). (Унаследовано от BitmapSource) |
Методы
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Применяет AnimationClock к заданному DependencyProperty. Если свойство уже анимировано, используется эстафетное поведение SnapshotAndReplace. (Унаследовано от Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Применяет AnimationClock к заданному DependencyProperty. Если свойство уже является анимированным, используется указанное поведение HandoffBehavior. (Унаследовано от Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
Применяет анимацию к указанному DependencyProperty. Анимация начинается при отрисовке следующего кадра. Если указанное свойство уже анимировано, используется поведение перемещения SnapshotAndReplace. (Унаследовано от Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Применяет анимацию к указанному DependencyProperty. Анимация начинается при отрисовке следующего кадра. Если указанное свойство уже является анимированным, используется указанное поведение HandoffBehavior. (Унаследовано от Animatable) |
CheckAccess() |
Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
CheckIfSiteOfOrigin() |
Проверяет, получено ли исходное содержимое точечного рисунка из известного узла источника. Этот метод позволяет проверить безопасность операций копирования пикселей. (Унаследовано от BitmapSource) |
ClearValue(DependencyProperty) |
Очищает локальное значение свойства. Очищаемое свойство задается идентификатором DependencyProperty. (Унаследовано от DependencyObject) |
ClearValue(DependencyPropertyKey) |
Очищает локальное значение доступного только для чтения свойства. Очищаемое свойство задается ключом DependencyPropertyKey. (Унаследовано от DependencyObject) |
Clone() |
Создает изменяемый клон данного объекта BitmapSource, делая глубокие копии значений этого объекта. При копировании свойств зависимостей этот метод копирует ссылки на ресурсы и привязки данных (которые могут уже не быть разрешимыми), но не копирует анимации и их текущие значения. (Унаследовано от BitmapSource) |
CloneCore(Freezable) |
Делает этот экземпляр глубокой копией указанного объекта BitmapSource. При копировании свойств зависимостей этот метод копирует ссылки на ресурсы и привязки данных (которые могут уже не быть разрешимыми), но не копирует анимации и их текущие значения. (Унаследовано от BitmapSource) |
CloneCurrentValue() |
Создает модифицируемый клон данного объекта BitmapSource, делая глубокие копии текущих значений этого объекта. Ссылки на ресурсы, привязки данных и анимации не копируются, но копируются их текущие значения. (Унаследовано от BitmapSource) |
CloneCurrentValueCore(Freezable) |
Делает этот экземпляр изменяемой глубокой копией указанной коллекции BitmapSource с использованием текущих значений свойств. Ссылки на ресурсы, привязки данных и анимации не копируются, но копируются их текущие значения. (Унаследовано от BitmapSource) |
CoerceValue(DependencyProperty) |
Приводит значение указанного свойства зависимостей. Это осуществляется путем вызова какой-либо функции CoerceValueCallback, указанной в метаданных свойства зависимостей, которое существует в вызывающем объекте DependencyObject. (Унаследовано от DependencyObject) |
CopyPixels(Array, Int32, Int32) |
Копирует данные пикселей растрового изображения в массив пикселей с заданным шагом начиная с заданного смещения. (Унаследовано от BitmapSource) |
CopyPixels(Int32Rect, Array, Int32, Int32) |
Копирует данные пикселей растрового изображения из заданного прямоугольника в массив пикселей с заданным шагом начиная с заданного смещения. (Унаследовано от BitmapSource) |
CopyPixels(Int32Rect, IntPtr, Int32, Int32) |
Копирует данные пикселей растрового изображения в пределах заданного прямоугольника. (Унаследовано от BitmapSource) |
Create(BitmapSource) |
Создает новый объект BitmapFrame из заданного BitmapSource. |
Create(BitmapSource, BitmapSource) |
Создает новый объект BitmapFrame из заданного объекта BitmapSource с указанным эскизом. |
Create(BitmapSource, BitmapSource, BitmapMetadata, ReadOnlyCollection<ColorContext>) |
Создает объект BitmapFrame из заданного источника BitmapSource с помощью указанных эскиза, BitmapMetadata и ColorContext. |
Create(Stream) |
Создает новый объект BitmapFrame из заданного Stream. |
Create(Stream, BitmapCreateOptions, BitmapCacheOption) |
Создает новый объект BitmapFrame из заданного объекта Stream с указанными параметрами BitmapCreateOptions и BitmapCacheOption. |
Create(Uri) |
Создает новый объект BitmapFrame из заданного Uri. |
Create(Uri, BitmapCreateOptions, BitmapCacheOption) |
Создает объект BitmapFrame из заданного объекта Uri с указанными параметрами BitmapCreateOptions и BitmapCacheOption. |
Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy) |
Создает объект BitmapFrame из заданного объекта Uri с указанными параметрами BitmapCreateOptions, BitmapCacheOption и RequestCachePolicy. |
Create(Uri, RequestCachePolicy) |
Создает объект BitmapFrame из заданного объекта Uri с указанным параметром RequestCachePolicy. |
CreateInPlaceBitmapMetadataWriter() |
При переопределении в производном классе создает экземпляр InPlaceBitmapMetadataWriter, который можно использовать для связывания метаданных с BitmapFrame. |
CreateInstance() |
Инициализирует новый экземпляр класса Freezable. (Унаследовано от Freezable) |
CreateInstanceCore() |
Если реализуется в производном классе, создает новый экземпляр производного класса Freezable. (Унаследовано от Freezable) |
Equals(Object) |
Определяет, является ли указанный DependencyObject эквивалентом текущего DependencyObject. (Унаследовано от DependencyObject) |
Freeze() |
Делает текущий объект неизменяемым и присваивает его свойству IsFrozen значение |
FreezeCore(Boolean) |
Делает экземпляр BitmapSource или производный класс постоянным. (Унаследовано от BitmapSource) |
GetAnimationBaseValue(DependencyProperty) |
Возвращает не анимированное значение указанного объекта DependencyProperty. (Унаследовано от Animatable) |
GetAsFrozen() |
Создает фиксированную копию объекта Freezable, используя базовые (не анимационные) значения свойств. Так как копия является фиксированной, копируются только ссылки на фиксированные вложенные объекты. (Унаследовано от Freezable) |
GetAsFrozenCore(Freezable) |
Делает этот экземпляр клоном указанного объекта BitmapSource. (Унаследовано от BitmapSource) |
GetCurrentValueAsFrozen() |
Создает фиксированную копию объекта Freezable с использованием текущих значений свойств. Так как копия является фиксированной, копируются только ссылки на фиксированные вложенные объекты. (Унаследовано от Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Делает этот экземпляр зафиксированным клоном указанного объекта BitmapSource. Ссылки на ресурсы, привязки данных и анимации не копируются, но копируются их текущие значения. (Унаследовано от BitmapSource) |
GetHashCode() |
Возвращает хэш-код для данного объекта DependencyObject. (Унаследовано от DependencyObject) |
GetLocalValueEnumerator() |
Создает специализированный перечислитель для определения свойств зависимостей, которые локально установили значения для данного DependencyObject. (Унаследовано от DependencyObject) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
GetValue(DependencyProperty) |
Возвращает текущее действующее значение свойства зависимостей в этом экземпляре DependencyObject. (Унаследовано от DependencyObject) |
InvalidateProperty(DependencyProperty) |
Повторно вычисляет действующее значение для указанного свойства зависимостей. (Унаследовано от DependencyObject) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
OnChanged() |
Вызывается при изменении текущего объекта Freezable. (Унаследовано от Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Обеспечивает создание соответствующих указателей контекста для элемента данных типа DependencyObjectType, который был только что задан. (Унаследовано от Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Этот элемент поддерживает инфраструктуру Windows Presentation Foundation (WPF) и не предназначен для использования непосредственно из кода. (Унаследовано от Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Переопределяет реализацию DependencyObject для OnPropertyChanged(DependencyPropertyChangedEventArgs), чтобы также вызвать любой обработчик Changed в ответ на изменение свойства зависимостей типа Freezable. (Унаследовано от Freezable) |
ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если таковое существует. (Унаследовано от DependencyObject) |
ReadPreamble() |
Обеспечивает доступ к Freezable из допустимого потока. Наследники объекта Freezable должны вызывать данный метод в начале любого API, который считывает элементы данных, не являющиеся свойствами зависимостей. (Унаследовано от Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Задает значение свойства зависимостей, не меняя источник значения. (Унаследовано от DependencyObject) |
SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей, указанного идентификатором этого свойства. (Унаследовано от DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Задает локальное значение свойства зависимости только для чтения, определяемое идентификатором DependencyPropertyKey свойства зависимостей. (Унаследовано от DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Возвращает значение, которое указывает, следует ли процессам сериализации выполнять сериализацию значения для предоставленного свойства зависимостей. (Унаследовано от DependencyObject) |
ToString() |
Создает строковое представление данного объекта на базе языка и региональных параметров. (Унаследовано от ImageSource) |
ToString(IFormatProvider) |
Создает строковое представление данного объекта на основе переданного объекта IFormatProvider. Если значение поставщика равно |
VerifyAccess() |
Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
WritePostscript() |
Вызывает событие Changed для объекта Freezable и вызывает его метод OnChanged(). Классы, производные от Freezable, должны вызывать этот метод в конце любого API, который изменяет члены класса, не сохраненные в виде свойств зависимостей. (Унаследовано от Freezable) |
WritePreamble() |
Проверяет, что объект Freezable не заморожен и доступ к нему осуществляется из допустимого контекста потока. Наследники объекта Freezable должны вызывать данный метод в начале любого API, который выполняет запись в элементах данных, не являющихся свойствами зависимостей. (Унаследовано от Freezable) |
События
Changed |
Происходит, когда изменяется класс Freezable или объект, который входит в его состав. (Унаследовано от Freezable) |
DecodeFailed |
Происходит при неудаче загрузки изображения вследствие повреждения его заголовка. (Унаследовано от BitmapSource) |
DownloadCompleted |
Происходит при полном завершении загрузки содержимого точечного рисунка. (Унаследовано от BitmapSource) |
DownloadFailed |
Происходит при невозможности загрузки содержимого точечного рисунка. (Унаследовано от BitmapSource) |
DownloadProgress |
Происходит при изменении состояния хода загрузки содержимого точечного рисунка. (Унаследовано от BitmapSource) |
Явные реализации интерфейса
IFormattable.ToString(String, IFormatProvider) |
Форматирует значение текущего экземпляра, используя указанный формат. (Унаследовано от ImageSource) |