Практическое руководство. Заливка фигуры текстурой, созданной на основе изображения
Обновлен: Ноябрь 2007
Замкнутую фигуру можно залить текстурой, используя для этого классы Image и TextureBrush.
Пример
В следующем примере осуществляется заливка эллипса текстурой с изображением. В коде создается объект Image, а затем адрес этого объекта Image передается в качестве параметра конструктору TextureBrush. Третья инструкция осуществляет масштабирование изображения, а четвертая инструкция выполняет заливку эллипса повторяющимися экземплярами этого масштабированного изображения.
В приведенном ниже коде свойство Transform содержит преобразование, которое применяется к изображению перед его прорисовкой. Предположим, что исходное изображение имеет ширину 640 точек и высоту 480 точек. Преобразование уменьшает изображение до размера 75×75, устанавливая горизонтальный и вертикальный коэффициенты масштабирования.
Примечание. |
---|
В приведенном ниже примере размер изображения равен 75×75, в то время как эллипс имеет размер 150×250. Поскольку изображение меньше, чем заполняемый им эллипс, используется мозаичное заполнение эллипса изображением. Мозаичное заполнение означает, что изображение многократно повторяется в горизонтальном и вертикальном направлениях, пока не достигает границы фигуры. Дополнительные сведения о мозаичном заполнении см. в разделе Практическое руководство. Мозаичное заполнение фигуры заданным изображением. |
Dim image As New Bitmap("ImageFile.jpg")
Dim tBrush As 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))
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.