Заполнение фигуры текстурой изображения
Вы можете заполнить закрытую фигуру текстурой с помощью классов Image и TextureBrush .
В следующем примере эллипс будет заполнен изображением. Код создает объект Image , а затем передает адрес этого объекта Image в качестве аргумента конструктору TextureBrush . Третий оператор кода масштабирует изображение, а четвертый оператор заполняет многоточие повторяющиеся копии масштабируемого изображения:
Image image(L"ImageFile.jpg");
TextureBrush tBrush(&image);
stat = tBrush.SetTransform(&Matrix(75.0/640.0, 0.0f, 0.0f,
75.0/480.0, 0.0f, 0.0f));
stat = graphics.FillEllipse(&tBrush,Rect(0, 150, 150, 250));
В предыдущем примере кода метод TextureBrush::SetTransform задает преобразование, которое применяется к изображению перед его рисованием. Возьмем за основу изображение, которое имеет ширину 640 пикселей и высоту 480 пикселей. Преобразование сжимает изображение до 75 ×75, задавая значения горизонтального и вертикального масштабирования.
Примечание
В предыдущем примере размер изображения составляет 75 ×75, а размер эллипса — 150 ×250. Поскольку изображение меньше заполняемого эллипса, то он будет заполнен несколькими изображениями подобно плитке, т.е. замощен. Замощение — процесс, при котором изображение повторяется по горизонтали и вертикали до достижения границы фигуры. Дополнительные сведения о мозаике см. в разделе Обливание фигуры с помощью изображения.