Создайте растровое изображение, заполнив его меньшим изображением - PullRequest
2 голосов
/ 16 ноября 2009

Я занимаюсь разработкой приложения для Windows Mobile на C # и .NET Compact Framework.

Я хочу заполнить растровое изображение меньшим размером. Чтобы заполнить это новое растровое изображение, я хочу повторить изображение по горизонтали и вертикали, пока растровое изображение не заполнится полностью.

Как я могу это сделать?

Спасибо!

Ответы [ 3 ]

1 голос
/ 16 ноября 2009

Используйте Graphics.FromImage на вашей цели, чтобы получить объект Graphics, а затем используйте метод DrawImage на этом получающемся объекте Graphics, чтобы рисовать в вашей плитке. При необходимости повторите для каждой строки и столбца в зависимости от размера плитки и целевого растрового изображения (то есть смещения x, y на размер плитки и повторите).

0 голосов
/ 12 июня 2014

A TextureBrush может легко повторить изображение по всей вашей поверхности. Это гораздо проще, чем вручную разбивать изображение на строки / столбцы.

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

using (TextureBrush brush = new TextureBrush(yourImage, WrapMode.Tile))
{
    using (Graphics g = Graphics.FromImage(destImage))
    {
        g.FillRectangle(brush, 0, 0, destImage.Width, destImage.Height);
    }
}

Приведенный выше код взят из аналогичного ответа: https://stackoverflow.com/a/2675327/1145177

0 голосов
/ 16 ноября 2009

Попробуйте это:

for(int y = 0; y < outputBitmap.Height; y++) {
    for(int x = 0; x < outputBitmap.Width; x++) {
        int ix = x % inputBitmap.Width;
        int iy = y % inputBitmap.Height;
        outputBitmap.SetPixel(x, y, inputBitmap.GetPixel(ix, iy));
    }
}
...