Найти в Дзене
IT Академия

Работа с изображением в С#.Image и InkCanvas.

Элемент Image Элемент Image предназначен для работы с изображениями. Свойство Source позволяет задать путь к изображению, например: <Image Source="MYpicture. png " /> WPF поддерживает различны форматы изображений: .bmp, .png, .gif, .jpg и т.п. Также элемент позволяет проводить некоторые простейшие трансформации с изображениями. Например, с помощью объекта FormatConvertedBitmap и его свойства DestinationFormat можно получить новое изображение: 1 <Grid Background="Black"> 2 <Grid.ColumnDefinitions> 3 <ColumnDefinition Width="2.5*" /> 4 <ColumnDefinition Width="*" /> 5 </Grid.ColumnDefinitions> 6 <Image Grid.Column="0" x:Name="mainImage"> 7 <Image.Source> 8 <FormatConvertedBitmap Source="3.jpg" 9 DestinationFormat="Gray32Float" /> 10 </Image.Source> 11 </Image> 12 <StackPanel Grid.Column="1"> 13 <Image Sou
Оглавление

Элемент Image

Элемент Image предназначен для работы с изображениями. Свойство Source позволяет задать путь к изображению, например:

<Image Source="MYpicture. png " />

WPF поддерживает различны форматы изображений: .bmp, .png, .gif, .jpg и т.п.

Также элемент позволяет проводить некоторые простейшие трансформации с изображениями. Например, с помощью объекта FormatConvertedBitmap и его свойства DestinationFormat можно получить новое изображение:

1 <Grid Background="Black">

2 <Grid.ColumnDefinitions>

3 <ColumnDefinition Width="2.5*" />

4 <ColumnDefinition Width="*" />

5 </Grid.ColumnDefinitions>

6 <Image Grid.Column="0" x:Name="mainImage">

7 <Image.Source>

8 <FormatConvertedBitmap Source="3.jpg"

9 DestinationFormat="Gray32Float" />

10 </Image.Source>

11 </Image>

12 <StackPanel Grid.Column="1">

13 <Image Source="1.jpg" />

14 <Image Source="2.jpg" />

15 <Image Source="4.jpg" />

16 <Image Source="3.jpg" />

17 </StackPanel>

18 </Grid>

InkCanvas

InkCanvas представляет собой полотно, на котором можно рисовать. Первоначально оно предназначалось для стилуса, но в WPF есть поддержка также и для мыши для обычных ПК . Его очень просто использовать

<InkCanvas Background="Whitecat" />

Или мы можем вложить в InkCanvas изображение и на нем уже рисовать:

<InkCanvas>

<Image Source="2.png" Width="200" Height="250" />

</InkCanvas>

Все рисование в итоге представляется в виде штрихов - элементов класса System.Windows.Ink.Stroke и хранится в коллекции Strokes, определенной в классе InkCanvas.

Режим рисования

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

  • Ink: используется по умолчанию и предполагает рисование стилусом или мышью
  • InkAndGesture: рисование с помощью мыши/стилуса, а также с помощью жестов (Up, Down, Tap и др.)
  • GestureOnly: рисование только с помощью жестов пользователя
  • EraseByStroke: стирание всего штриха стилусом
  • EraseByPoint: стирание только части штриха, к которой прикоснулся стилус
  • Select: выделение всех штрихов при касании
  • None: отсутствие какого-либо действия

Используя эти значения и обрабатывая события InkCanvas, такие как StrokeCollected (штрих нарисован), StrokeErased (штрих стерли) и др., можно управлять набором штрихов и создавать более функциональные приложения на основе InkCanvas.