Практическое руководство. Заливка фигуры текстурой, созданной на основе изображения
Можно заполнить замкнутой фигуры текстурой, созданной с помощью Image класс и TextureBrush класса.
Пример
В следующем примере заполняется эллипс с изображением. Код создает Image объекта, а затем передает адрес объекта Image объект в качестве аргумента для TextureBrush конструктор. Третья инструкция изменяет масштаб изображения, а четвертый оператор выполняет заливку эллипса повторяющиеся копии масштабированное изображение.
В следующем коде Transform свойство содержит преобразование, которое применяется к изображению перед его рисованием. Предположим, что исходное изображение имеет 640 пикселей в ширину и высоту 480 пикселей. Преобразование сжимает изображение до 75 × 75, задав значения масштабирования по горизонтали и вертикали.
Note
В следующем примере размер изображения равно 75 × 75 и размер эллипса — 150 × 250. Так как изображение меньше заполняемой эллипса, эллипса выполняется мозаичное заполнение с использованием образа. Достигнут мозаичное заполнение означает, что изображение повторяется горизонтально и вертикально до границы фигуры. Дополнительные сведения о мозаичного заполнения, см. в разделе как: Мозаичное заполнение фигуры заданным изображением.
Image image = new Bitmap("ImageFile.jpg");
TextureBrush tBrush = new TextureBrush(image);
tBrush.Transform = new Matrix(
75.0f / 640.0f,
0.0f,
0.0f,
75.0f / 480.0f,
0.0f,
0.0f);
e.Graphics.FillEllipse(tBrush, new Rectangle(0, 150, 150, 250));
Компиляция кода
Предыдущий пример предназначен для работы с Windows Forms и требует PaintEventArgs e
, который является параметром Paint обработчик событий.