Sdílet prostřednictvím


Postupy: Vyplnění obrazce pomocí textury

Uzavřený obrazec můžete vyplnit texturou pomocí Image třídy a TextureBrush třídy.

Příklad

Následující příklad vyplní tři tečky obrázkem. Kód vytvoří Image objekt a pak předá adresu tohoto Image objektu jako argument konstruktoru TextureBrush . Třetí příkaz škáluje obrázek a čtvrtý příkaz vyplní tři tečky opakovanými kopiemi škálovaného obrázku.

V následujícím kódu vlastnost obsahuje transformaci, Transform která je použita na obrázku před jeho vykreslení. Předpokládejme, že původní obrázek má šířku 640 pixelů a výšku 480 pixelů. Transformace zmenší obrázek na 75×75 nastavením vodorovných a svislých hodnot škálování.

Poznámka:

V následujícím příkladu je velikost obrázku 75×75 a tři tečky jsou 150×250. Vzhledem k tomu, že je obrázek menší než tři tečky, které vyplňuje, je tři tečky dlaždicí s obrázkem. Vazbu znamená, že se obrázek opakuje vodorovně a svisle, dokud nedosáhnete hranice obrazce. Další informace o svázání naleznete v tématu Postupy: Dlaždice obrazce s obrázkem.

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

Probíhá kompilace kódu

Předchozí příklad je určen pro použití s model Windows Forms a vyžaduje PaintEventArgse, což je parametr Paint obslužné rutiny události.

Viz také