Wypełnianie kształtu teksturą obrazu

Można wypełnić zamknięty kształt teksturą, używając klasy Image oraz klasy TextureBrush.

Poniższy przykład wypełnia elipsę obrazem. Kod tworzy obiekt Image, a następnie przekazuje adres tego obiektu Image jako argument konstruktora TextureBrush. Trzecia instrukcja kodu skaluje obraz, a czwarta instrukcja wypełnia wielokropek wielokrotnymi kopiami skalowanego obrazu:

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));

W poprzednim przykładzie kodu metoda TextureBrush::SetTransform ustawia przekształcenie zastosowane do obrazu przed jego narysowaniem. Załóżmy, że oryginalny obraz ma szerokość 640 pikseli i wysokość 480 pikseli. Przekształcenie zmniejsza obraz do 75 ×75, ustawiając wartości skalowania poziomego i pionowego.

Notatka

W poprzednim przykładzie rozmiar obrazu to 75 ×75, a rozmiar wielokropka to 150 ×250. Ponieważ obraz jest mniejszy niż wypełniana elipsa, elipsa jest wykafelkowana obrazem. Tiling oznacza, że obraz jest powtarzany w poziomie i w pionie do momentu osiągnięcia granicy kształtu. Aby uzyskać więcej informacji na temat układania kafelków, zobacz Układanie kształtu za pomocą obrazu.