2

C# と .NET Compact Framework を使用して Windows Mobile アプリケーションを開発しています。

ビットマップを小さい画像で塗りつぶしたい。この新しいビットマップを塗りつぶすには、ビットマップが完全に塗りつぶされるまで、画像を水平方向および垂直方向に繰り返します。

どうやってやるの?

ありがとうございました!

4

3 に答える 3

1

ターゲットでGraphics.FromImageを使用して Graphics オブジェクトを取得し、その結果の Graphics オブジェクトで DrawImage メソッドを使用してタイルにペイントします。タイルのサイズと宛先ビットマップに基づいて、必要に応じて行と列ごとに繰り返します (つまり、x、y をタイルのサイズだけオフセットして繰り返します)。

于 2009-11-16T20:27:20.667 に答える
0

これを試して:

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));
    }
}
于 2009-11-16T18:29:10.280 に答える
0

ATextureBrushは、サーフェス全体でイメージを簡単に繰り返すことができます。これは、行/列にまたがって画像を手動で並べるよりもはるかに簡単です。

を作成し、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

于 2014-06-12T04:02:18.177 に答える