Создайте растровое изображение, заполнив его уменьшенным изображением

StackOverflow https://stackoverflow.com/questions/1743939

  •  20-09-2019
  •  | 
  •  

Вопрос

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

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

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

Спасибо!

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top