Как повторить изображение в C # - PullRequest
13 голосов
/ 20 апреля 2010

У меня есть изображение с определенным рисунком. Как мне повторить это на другом изображении, используя GDI?
Есть ли способ сделать это в GDI?

Ответы [ 2 ]

24 голосов
/ 20 апреля 2010

В C # вы можете создать TextureBrush, который будет размещать ваше изображение везде, где вы его используете, а затем заполнять область им. Примерно так (пример, который заполняет все изображение) ...

// Use `using` blocks for GDI objects you create, so they'll be released
// quickly when you're done with them.
using (TextureBrush brush = new TextureBrush(yourImage, WrapMode.Tile))
using (Graphics g = Graphics.FromImage(destImage))
{
    // Do your painting in here
    g.FillRectangle(brush, 0, 0, destImage.Width, destImage.Height);
}

Обратите внимание, что если вы хотите получить некоторый контроль над мозаичным изображением, вам нужно немного узнать о преобразованиях.

Я почти забыл (на самом деле я немного забыл): вам нужно будет импортировать System.Drawing (для Graphics и TextureBrush) и System.Drawing.Drawing2D (для WrapMode) для кода выше, чтобы работать как есть.

0 голосов
/ 20 апреля 2010

Нет функции рисовать определенное изображение как «узор» (повторяющий его), но это должно быть довольно просто сделать:

...