Перейти к содержимому

System windows media imaging как подключить

  • автор:

System. Windows. Media. Imaging Пространство имен

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Предоставляет типы, используемые для кодирования и декодирования растровых изображений.

Классы

Содержит сведения о кодеках обработки изображений.

Представляет контейнер для кадров растрового изображения. Каждый кадр растрового изображения является объектом BitmapSource. Этот абстрактный класс предоставляет базовый набор функций для всех производных объектов декодеров.

Кодирует коллекцию объектов BitmapFrame в поток изображений.

Представляет данные изображения, возвращаемые декодером и принимаемые кодировщиками.

Предоставляет специальный объект BitmapSource, оптимизированный для загрузки изображений с помощью языка XAML.

Предоставляет поддержку чтения метаданных из растрового изображения и записи метаданных в растровое изображение.

Предоставляет заполнитель для элементов метаданных, которые нельзя преобразовать из C# в базовый тип данных, хранящий метаданные. Большой двоичный объект преобразуется в массив байтов для сохранения содержимого.

Определяет доступную цветовую палитру для поддерживаемого типа изображений.

Определяет несколько цветовых палитр, часто используемых растровыми изображениями.

Определяет размерные атрибуты кэшированного растрового изображения. Масштабирование растрового изображения выполняется на основе значений, которые определяются этим классом.

Представляет один постоянный набор пикселей определенного размера и разрешения.

Определяет декодер для изображений, закодированных как растровые (BMP).

Определяет кодировщик, используемый для кодирования изображений в формате BMP.

Предоставляет функциональность кэширования для BitmapSource.

Изменяет пространство цвета для BitmapSource.

Предоставляет данные для событий DownloadProgress и DownloadProgress .

Предоставляет функциональные возможности преобразования формата пикселей для BitmapSource.

Определяет декодер для изображений, закодированных в формате GIF.

Определяет кодировщик, используемый для кодирования изображений в формате GIF.

Определяет специализированный декодер для изображений, кодированных в формате значков (файлов с расширением ICO).

Позволяет выполнять обновления на месте для существующих блоков BitmapMetadata.

Определяет декодер для изображений, закодированных в формате JPEG.

Определяет кодировщик, используемый для кодирования изображений в формате JPEG.

Определяет декодер, который требует отложенного создания растрового изображения, например асинхронной загрузки изображения.

Определяет декодер для изображений, закодированных в формате PNG.

Определяет кодировщик, используемый для кодирования изображений в формате PNG.

Преобразует объект Visual в растровое изображение.

Определяет декодер для изображений, закодированных в формате TIFF.

Определяет кодировщик, используемый для кодирования изображений в формате TIFF.

Масштабирует и поворачивает объект BitmapSource.

Определяет декодер для закодированных изображений Microsoft Windows Media Photo.

Определяет кодировщик, используемый для кодирования изображений Microsoft Windows Media Photo.

Предоставляет объект BitmapSource, в который можно осуществить запись и обновить.

Перечисления

Указывает, как растровое изображение использует преимущества кэширования в памяти.

Указывает параметры инициализации для точечных рисунков.

Указывает, чередуются ли строки изображения в формате PNG во время кодирования.

Указывает поворот, применяемый к растровому изображению.

Указывает возможные схемы сжатия для растровых изображений в формате TIFF.

Обратная связь

Были ли сведения на этой странице полезными?

Обратная связь

Отправить и просмотреть отзыв по

Как в WPF просмотреть изображение?

Имеется объект System.Drawing.Bitmap . В WinForms можно было просто использовать PictureBox , чтобы просмотреть изображение. В WPF есть контрол Image , которому Bitmap скормить нельзя. Нашел способ переделки в BitmapImage

 using (MemoryStream ms = new MemoryStream()) < bitmap.Save(ms, ImageFormat.Png); ms.Position = 0; BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.StreamSource = ms; bi.EndInit(); return bi; >ImageBox.Source = logic.NextPage(); // это объект Image 

Но ничего не происходит (хотя и ошибок нет). Нужна помощь.
Отслеживать
задан 1 июл 2015 в 17:05
3,471 2 2 золотых знака 20 20 серебряных знаков 42 42 бронзовых знака

А откуда у вас в WPF взялся System.Drawing.Bitmap? Это класс из Windows Forms. В WPF используйте System.Windows.Media.Imaging.BitmapImage.

1 июл 2015 в 17:07
Кстати, да. Проще всего вообще не работать с System.Drawing.Bitmap .
1 июл 2015 в 17:08

@VladD я знаю, что это класс из WinForms. Однако ничего поделать тут не могу — работаю со сторонней сборкой.

1 июл 2015 в 17:10
@RussCoder: Понятно. Сейчас поищу, где-то у меня вроде был код.
1 июл 2015 в 17:11

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

bi.CacheOption = BitmapCacheOption.OnLoad; 
bi.StreamSource = ms; 

Пояснение: BitmapImage содержит внутри оптимизацию, которая не грузит данные сразу, а запоминает StreamSource и грузит потом. Но вы уничтожаете MemoryStream (что правильно), поэтому BitmapImage не может позже загрузит данные.

Для будущих поколений:

System.Windows.Media.ImageSource BitmapToImageSource(System.Windows.Bitmap bmp) < using (var ms = new System.IO.MemoryStream()) < bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png); ms.Position = 0; var img = new System.Windows.Media.Imaging.BitmapImage(); img.BeginInit(); img.CacheOption = System.Windows.Media.Imaging.BitmapCacheOption.OnLoad; img.StreamSource = ms; img.EndInit(); return img; >> 

System. Windows. Media Пространство имен

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Предоставляет типы, обеспечивающие интеграцию самых разнообразных мультимедийных данных (включая изображения, текст, аудио и видео) в приложениях Windows Presentation Foundation (WPF).

Классы

Представляет данные, возвращенные из вызова метода AdornerHitTest(Point).

Представляет эллиптическую дугу между двумя точками.

Представляет кривую Безье третьего порядка между двумя точками.

Создает и кэширует растровое представление UIElement.

Заполняет область кэшированным содержимым.

Определяет объекты, которые используются для заливки графических объектов. В классах, производных от Brush, описывается, как выполняется заливка области.

Используется для преобразования объекта Brush в другой объектный тип или наоборот.

Реализует набор предопределенных объектов SolidColorBrush.

Предоставляет базовую реализацию для кэширования элемента UIElement.

Преобразует CacheMode из одного типа данных в другой.

Представляет метрики, используемые для отображения символа в шрифте устройства.

Представляет словарь объектов CharacterMetrics для шрифта устройства, который индексируется скалярными значениями Юникода.

Представляет цветовой профиль ICC (International Color Consortium — международный консорциум по цвету) или ICM (Image Color Management — управление цветом изображений), связанный с растровым изображением.

Преобразует экземпляры других типов в экземпляры класса Colorи наоборот.

Реализует набор предопределенных цветов.

Представляет плоскую геометрическую фигуру, определяемую сочетанием двух объектов Geometry.

Представляет отображаемую поверхность приложения.

Управляет коллекцией объектов Visual.

Представляет последовательность штрихов и пробелов, которая будет применяться объектом Pen.

Реализует набор предопределенных объектов DashStyle.

Позволяет приложениям WPF отключать определение точек на дюйм (dpi) для всех элементов пользовательского интерфейса.

Представляет упорядоченную коллекцию значений Double.

Преобразует экземпляры других типов в DoubleCollection и из него.

Абстрактный класс, описывающий двумерный рисунок. Этот класс не может наследоваться вашим кодом.

Заполняет область рисунком Drawing, который может включать фигуры, текст, видео, изображения и другие рисунки.

Представляет упорядоченную коллекцию объектов Drawing.

Описывает визуальное содержимое с использованием команд рисования, занесения и извлечения.

Представляет коллекцию рисунков, с которыми можно работать как с одним рисунком.

Объект ImageSource, использующий Drawing для содержимого.

DrawingVisual — это визуальный объект, который можно использовать для отрисовки векторной графики на экране. Содержимое сохраняется системой.

Представляет геометрию окружности или эллипса.

Предоставляет данные об исключении, связанном с ошибкой, для событий мультимедиа.

Задает сведения об одном шрифте, поддерживаемом объектом FontFamily.

Представляет коллекцию экземпляров FamilyTypeface.

Предоставляет функциональность для физического и составного внедрения шрифтов.

Представляет семейство связанных шрифтов.

Преобразует экземпляры типа String в экземпляры типа FontFamily и наоборот.

Определяет, какой FontFamily следует использовать для заданного набора кодовых точек Юникода, а также заданного языка и региональных параметров.

Представляет упорядоченную коллекцию объектов FontFamilyMap.

Преобразует экземпляры String в экземпляры FontFamily и наоборот.

Обеспечивает поддержку перечисления для объектов FontFamily и Typeface.

Обеспечивает низкоуровневое управление рисованием текста в приложениях Windows Presentation Foundation (WPF).

Обеспечивает обобщенную поддержку преобразования для объектов, таких как точки и прямоугольники. Этот класс является абстрактным.

Представляет упорядоченную коллекцию объектов GeneralTransform.

Представляет объект GeneralTransform, являющийся композицией преобразований в его объекте GeneralTransformCollection.

Классы, которые являются производными от этого абстрактного базового класса, определяют геометрические фигуры. Объекты Geometry можно использовать для обрезки, проверки попадания и отрисовки двумерных графических данных.

Представляет коллекцию объектов Geometry.

Преобразует экземпляры других типов в экземпляры Geometry, и наоборот.

Рисует Geometry, используя заданные Brush и Pen.

Представляет составной геометрический объект, состоящий из других объектов Geometry.

Указывает Geometry как параметр, используемый для проверки нажатия в визуальном дереве.

Возвращает результаты проверки нажатия, использующей Geometry в качестве параметра проверки нажатия.

Представляет последовательность глифов одного шрифта одного размера и с одним стилем отрисовки.

Представляет объект Drawing, визуализирующий GlyphRun.

Задает физический шрифт, соответствующий файлу шрифта на диске.

Абстрактный класс, описывающий градиент, состоящий из ограничений градиента. Классы, наследующие от GradientBrush, описывают разные способы интерпретации ограничений градиента.

Описывает местоположение и цвет точки перехода в градиенте.

Представляет коллекцию объектов GradientStop, доступ к которым может быть получен индивидуально по индексу.

Представляет коллекцию направляющих, которые могут помочь в выравнивании отрисовываемых фигур по пиксельной сетке устройства.

Определяет параметры для проверки нажатия. Классы, производные от общего базового класса, который можно использовать для практической проверки нажатия, включают PointHitTestParameters и GeometryHitTestParameters.

Предоставляет базовый класс для нескольких производных классов, представляющих значение, возвращаемое в результате проверки нажатия.

Представляет объект Visual, который можно подключить в любом месте родительского визуального дерева.

Заполнение области с помощью изображения.

Рисует изображение в пределах области, определяемой Rect.

Определяет базовый класс для всех операций с метаданными в интерфейсах API, связанных с обработкой изображений. Этот класс является абстрактным.

Представляет тип объекта, имеющий ширину, высоту и ImageMetadata , например BitmapSource , и DrawingImage. Этот класс является абстрактным.

Преобразует объект ImageSource в другие типы данных и из других типов данных.

Преобразует экземпляры String в экземпляры ImageSource и наоборот.

Представляет коллекцию значений Int32.

Преобразует Int32Collection в другие типы данных и из других типов данных.

Исключение, которое возникает, когда установленная версия проигрывателя Microsoft Windows Media не поддерживается.

Представляет словарь строк, используемых для представления имени объекта на разных языках.

Закрашивает область с линейным градиентом

Представляет геометрию линии.

Создает линию между двумя точками в PathFigure.

Преобразует экземпляры других типов в Matrix и из него.

Создает произвольное аффинное преобразование с матричным представлением, которое используется для управления объектами или системами координат в двумерной плоскости.

Поддерживает состояние времени для мультимедиа посредством MediaTimeline.

Предоставляет воспроизведение мультимедиа для рисунков.

Предоставляет данные для событий ScriptCommand и ScriptCommand .

Предоставляет Timeline для содержимого мультимедиа.

Указывает, как числа в тексте отображаются в разных языках.

Представляет подраздел геометрии, одну соединенную последовательность двумерных геометрических сегментов.

Представляет коллекцию объектов PathFigure, которые совместно составляют геометрию PathGeometry.

Преобразует экземпляры других типов в PathFigureCollection и из него.

Представляет сложную фигуру, которая может состоять из дуг, кривых, эллипсов, линий и прямоугольников.

Представляет сегмент объекта PathFigure.

Представляет коллекцию объектов PathSegment, доступ к которым может быть получен индивидуально по индексу.

Описывает способ рисования контура фигуры.

Преобразует объект PixelFormat в другие типы данных и из других типов данных.

Представляет коллекцию поддерживаемых форматов пикселей.

Представляет коллекцию значений Point, доступ к которым может быть получен индивидуально по индексу.

Преобразует экземпляры других типов в PointCollection и из него.

Задает Point как параметр для проверки нажатия визуального объекта.

Представляет результаты проверки нажатия, выполняемой с использованием Point в качестве параметра проверки нажатия.

Представляет одну или более кривых Безье третьего порядка.

Представляет набор сегментов линии, определенных в коллекции PointCollection, для каждого из которых значение Point задает конечную точку сегмента линии.

Представляет набор сегментов кривых Безье второго порядка.

Создает кривую Безье второго порядка между двумя точками в PathFigure.

Закраска области с применением радиального градиента Фокальная точка определяет начало градиента, а окружность определяет конечную точку градиента.

Описывает двухмерный прямоугольник.

Позволяет приложениям WPF запрашивать текущий уровень отрисовки для связанного с ними объекта Dispatcher и регистрироваться для получения уведомлений об изменениях.

Необходимые аргументы события Rendering.

Предоставляет параметры для управления поведением отрисовки объектов.

Поворачивает объект по часовой стрелке относительно заданной точки в двумерной системе координат с осями X и Y.

Масштабирует объект в двумерной системе координат X-Y.

Представляет двумерное отклонение.

Закрашивает область сплошным цветом.

Определяет геометрическую фигуру, описываемую с помощью StreamGeometryContext. Эта геометрия является упрощенной альтернативой PathGeometry — она не поддерживает привязку данных, анимацию или изменения.

Описывает геометрию с использованием команд рисования. Этот класс используется с классом StreamGeometry для создания упрощенной геометрии, которая не поддерживает привязку данных, анимацию или изменение.

Представляет текстовый эффект, который может быть применен к текстовым объектам.

Предоставляет поддержку для коллекции объектов TextEffect.

Определяет набор вложенных свойств зависимостей, влияющих на способ отображения текста в элементе.

Описывает способ заполнения области с помощью одной или нескольких плиток.

Определяет функциональность, позволяющую выполнять преобразования в двумерной плоскости. Преобразования включают поворот (RotateTransform), масштабирование (ScaleTransform), отклонение (SkewTransform) и преобразование (TranslateTransform). Иерархия этого класса отличается от структуры Matrix, поскольку это класс, и он поддерживает анимацию и семантику перечисления.

Представляет коллекцию объектов Transform, доступ к которым может быть получен индивидуально по индексу.

Преобразует объект Transform в другой объектный тип или наоборот.

Представляет составной объект Transform, состоящий из других объектов (Transform).

Перемещает объект в двумерной системе координат x-y.

Представляет упорядоченную коллекцию значений Vector.

Преобразует экземпляры других типов в VectorCollection и из него.

Воспроизводит файл мультимедиа. Если файл мультимедиа является видеофайлом, VideoDrawing отрисовывает его в указанном прямоугольнике.

Обеспечивает поддержку отрисовки в WPF, в том числе проверку нажатия, преобразование координат и расчеты ограничивающих прямоугольников.

Закрашивает область с использованием Visual.

Представляет упорядоченную коллекцию объектов Visual.

Предоставляет функциональные возможности для подключения одного визуального дерева к другому через границы потоков.

Предоставляет служебные методы для выполнения типичных задач, связанных с узлами визуального дерева.

Структуры

Описывает цвет в терминах каналов альфа, красного, зеленого и синего.

Выполняет перечисление элементов Double в объекте DoubleCollection.

Выполняет перечисление элементов Drawing в объекте DrawingCollection.

Выполняет перечисление элементов Geometry в объекте GeometryCollection.

Выполняет перечисление элементов GradientStop в объекте GradientStopCollection.

Выполняет перечисление элементов Int32 в объекте Int32Collection.

Представляет матрицу аффинного преобразования 3 x 3, используемую для преобразований в двумерном пространстве.

Выполняет перечисление элементов PathFigure в объекте PathFigureCollection.

Поддерживает простой перебор коллекции PathSegmentCollection.

Определяет формат пикселей для изображений и точечных поверхностей.

Определяет битовую маску и смещение для указанного формата пикселей.

Выполняет перечисление элементов Point в объекте PointCollection.

Выполняет перечисление элементов TextEffect в объекте TextEffectCollection.

Поддерживает простой перебор коллекции TransformCollection.

Выполняет перечисление элементов Vector в объекте VectorCollection.

Выполняет перечисление элементов Visual в объекте VisualCollection.

Перечисления

Описывает способ горизонтального позиционирования содержимого в контейнере.

Описывает способ вертикального расположения содержимого в контейнере.

Указывает, какой алгоритм используется для масштабирования растровых изображений.

Задает систему координат, используемую объектом Brush.

Указывает, следует ли кэшировать объекты мозаичной кисти.

Перечисление, указывающее механизму отрисовки, что возможен вывод текста с использованием технологии ClearType.

Определяет, как интерполируются цвета градиента.

Определяет способ отрисовки краев нетекстовых графических примитивов.

Указывает, как области пересечения объектов PathFigure, содержащихся в Geometry, комбинируются для образования области Geometry.

Описывает встроенные разрешения шрифта, заданного в файле шрифта OpenType.

Задает различные методы комбинирования двух геометрий.

Задает способ воспроизведения градиента за пределами вектора или пространства градиента кисти градиента.

Задает поведение возврата проверки нажатия в методе обратного вызова фильтра проверки нажатия.

Определяет, следует ли продолжать перечисление оставшихся визуальных объектов во время проверки нажатия.

Предоставляет информацию о пересечении геометрий вGeometryHitTestParameters и нажатого визуального элемента.

Указывает, как определяются язык и региональные параметры для чисел в тексте.

Определяет класс перечислителя, задающий тип подстановки чисел для выполнения над числами в тексте.

Описывает фигуру, расположенную в конце каждого сегмента штриха.

Описывает фигуру в конце линии или сегмента.

Описывает фигуру, соединяющую две линии или два сегмента.

Описывает способ изменения размеров содержимого для заполнения выделенного ему пространства.

Определяет класс перечислителя, описывающий стиль эмуляции шрифта.

Определяет направление рисования эллиптической дуги.

Определяет методы форматирования, поддерживаемые классом TextFormatter.

Определяет поведение отрисовки статического или анимированного текста.

Определяет поддерживаемые режимы визуализации для текста.

Описывает, как TileBrush закрашивает плитки в области вывода.

Определяет способ интерпретации допустимой погрешности.

Делегаты

Представляет метод обратного вызова, задающий части визуального дерева, исключаемые из обработки при проверке нажатия.

Представляет обратный вызов, который используется для настройки проверки нажатия. Платформа WPF вызывает HitTestResultCallback, чтобы сообщить пользователю пересечения проверок нажатия.

Обратная связь

Были ли сведения на этой странице полезными?

System windows media imaging как подключить

При создании нового проекта WPF в дополнение к создаваемому файлу MainWindow.xaml создается также файл отделенного кода MainWindow.xaml.cs, где, как предполагается, должна находится логика приложения связанная с разметкой из MainWindow.xaml. Файлы XAML позволяют нам определить интерфейс окна, но для создания логики приложения, например, для определения обработчиков событий элементов управления, нам все равно придется воспользоваться кодом C#.

По умолчанию в разметке окна используется атрибут x:Class :

Атрибут x:Class указывает на класс, который будет представлять данное окно и в который будет компилироваться код в XAML при компиляции. То есть во время компиляции будет генерироваться класс XamlApp.MainWindow , унаследованный от класса System.Windows.Window .

Кроме того в файле отделенного кода MainWindow.xaml.cs, который Visual Studio создает автоматически, мы также можем найти класс с тем же именем — в данном случае класс XamlApp.MainWindow. По умолчанию он имеет некоторый код:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace XamlApp < public partial class MainWindow : Window < public MainWindow() < InitializeComponent(); >> >

По сути пустой класс, но этот класс уже выполняет некоторую работу. Во время компиляции этот класс объединяется с классом, сгенерированном из кода XAML. Чтобы такое слияние классов во время компиляции произошло, класс XamlApp.MainWindow определяется как частичный с модификатором partial . А через метод InitializeComponent() класс MainWindow вызывает скомпилированный ранее код XAML, разбирает его и по нему строит графический интерфейс окна.

Взаимодействие кода C# и XAML

В приложении часто требуется обратиться к какому-нибудь элементу управления. Для этого надо установить у элемента в XAML свойство Name .

Еще одной точкой взаимодействия между xaml и C# являются события. С помощью атрибутов в XAML мы можем задать события, которые будут связанны с обработчиками в коде C#.

Итак, создадим новый проект WPF, который назовем XamlApp. В разметке главного окна определим два элемента: кнопку и текстовое поле.

И изменим файл отделенного кода, добавив в него обработчик нажатия кнопки:

using System.Windows; namespace XamlApp < public partial class MainWindow : Window < public MainWindow() < InitializeComponent(); >private void Button_Click(object sender, RoutedEventArgs e) < string text = textBox1.Text; if (text != "") < MessageBox.Show(text); >> > >

Определив имена элементов в XAML, затем мы можем к ним обращаться в коде c#: string text = textBox1.Text .

При определении имен в XAML надо учитывать, что оба пространства имен «http://schemas.microsoft.com/winfx/2006/xaml/presentation» и «http://schemas.microsoft.com/winfx/2006/xaml» определяют атрибут Name , который устанавливает имя элемента. Во втором случае атрибут используется с префиксом x : x:Name . Какое именно пространство имен использовать в данном случае, не столь важно, а следующие определения имени x:Name=»button1″ и Name=»button1″ фактически будут равноценны.

В обработчике нажатия кнопки просто выводится сообщение , введенное в текстовое поле. После определения обработчика мы его можем связать с событием нажатия кнопки в xaml через атрибут Click: Click=»Button_Click» . В результате после нажатия на кнопку мы увидим в окне введенное в текстовое поле сообщение.

XAML в WPF

Создание элементов в коде C#

Еще одну форму взаимодействия C# и XAML представляет создание визуальных элементов в коде C#. Например, изменим код xaml следующим образом:

Здесь для элемента Grid установлено свойство x:Name , через которое мы можем к нему обращаться в коде. И также изменим код C#:

using System.Windows; using System.Windows.Controls; namespace XamlApp < public partial class MainWindow : Window < public MainWindow() < InitializeComponent(); Button myButton = new Button(); myButton.Width = 100; myButton.Height = 30; myButton.Content = "Кнопка"; layoutGrid.Children.Add(myButton); >> >

В конструкторе странцы создается элемент Button и добавляется в Grid. И если мы запустим приложение, то увидим добавленную кнопку:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *