Поделиться через


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

Делает текущий объект неизменяемым и задает для свойства значение IsFrozentrue.

(Унаследовано от Freezable)
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 объекта. Если поставщик имеет значение null, CurrentCulture используется.

(Унаследовано от ImageSource)
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)

Применяется к

См. также раздел