Porady: wypełnianie kształtów teksturą obrazu
Kształt zamknięty można wypełnić teksturą przy użyciu Image klasy i TextureBrush klasy.
Przykład
Poniższy przykład wypełnia wielokropek obrazem. Kod tworzy Image obiekt, a następnie przekazuje adres tego Image obiektu jako argument do konstruktora TextureBrush . Trzecia instrukcja skaluje obraz, a czwarta instrukcja wypełnia wielokropek wielokrotnymi kopiami skalowanego obrazu.
W poniższym kodzie Transform właściwość zawiera przekształcenie zastosowane do obrazu przed jego narysem. 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.
Uwaga
W poniższym przykładzie rozmiar obrazu to 75×75, a rozmiar wielokropka to 150×250. Ponieważ obraz jest mniejszy niż wielokropek wypełniany, wielokropek jest kafelkiem obrazu. 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 How to: Tile a Shape with an Image (Instrukcje: kafelek kształtu z obrazem).
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));
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))
Kompilowanie kodu
Powyższy przykład jest przeznaczony do użycia z formularzami Windows Forms i wymaga PaintEventArgse
parametru , który jest parametrem Paint programu obsługi zdarzeń.
Zobacz też
.NET Desktop feedback