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())
{
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()
Комментарии
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 |
Получает горизонтальные точки на дюйм (dpi) изображения. (Унаследовано от BitmapSource) |
| DpiY |
Получает вертикальные точки на дюйм (dpi) изображения. (Унаследовано от 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, HandoffBehavior) |
Применяется к указанному объекту AnimationClockDependencyProperty. Если свойство уже анимировано, используется указанный HandoffBehavior параметр. (Унаследовано от Animatable) |
| ApplyAnimationClock(DependencyProperty, AnimationClock) |
Применяется к указанному объекту AnimationClockDependencyProperty. Если свойство уже анимировано, SnapshotAndReplace используется поведение передачи. (Унаследовано от Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Применяет анимацию к указанному DependencyProperty. Анимация запускается при отрисовки следующего кадра. Если указанное свойство уже анимировано, используется указанный HandoffBehavior параметр. (Унаследовано от Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline) |
Применяет анимацию к указанному DependencyProperty. Анимация запускается при отрисовки следующего кадра. Если указанное свойство уже анимировано, SnapshotAndReplace используется поведение передачи. (Унаследовано от 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, BitmapSource, BitmapMetadata, ReadOnlyCollection<ColorContext>) |
Создает новое BitmapFrame из заданного BitmapSource эскиза и BitmapMetadataColorContext. |
| Create(BitmapSource, BitmapSource) |
Создает новое из BitmapFrame заданного BitmapSource эскиза. |
| Create(BitmapSource) |
Создает новое из BitmapFrame заданного.BitmapSource |
| Create(Stream, BitmapCreateOptions, BitmapCacheOption) |
Создает новое из BitmapFrame заданного Stream объекта с указанным BitmapCreateOptions и BitmapCacheOption. |
| Create(Stream) |
Создает новое из BitmapFrame заданного.Stream |
| Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy) |
BitmapFrame Создает объект из заданного Uri объекта с заданным BitmapCreateOptions, BitmapCacheOptionи RequestCachePolicy. |
| Create(Uri, BitmapCreateOptions, BitmapCacheOption) |
BitmapFrame Создает объект из заданного Uri с заданным BitmapCreateOptions и BitmapCacheOption. |
| Create(Uri, RequestCachePolicy) |
BitmapFrame Создает объект из заданного Uri объекта с указаннымRequestCachePolicy. |
| Create(Uri) |
Создает новое из BitmapFrame заданного.Uri |
| 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, DependencyProperty) |
Этот член поддерживает инфраструктуру Windows Presentation Foundation (WPF) и не предназначен для использования непосредственно из кода. (Унаследовано от Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Убедитесь, что для элемента данных, который только что был установлен, установлены DependencyObjectType соответствующие указатели контекста. (Унаследовано от 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) |