1

サイズが 1x16 の Image オブジェクトをメモリにレンダリングしようとしています。この画像は、タイル張りの背景として使用されます。グラデーション自体は、非線形の方法で 3 つの色を持つ必要があります。

ピクセル 1 ~ 6: グラデーション カラー 1 ~ カラー 2

ピクセル 7 ~ 16: グラデーション カラー 3 ~ カラー 4

4

2 に答える 2

2

私は自分でそれを行う方法を見つけました。私は次のような答えを期待していました:

        Bitmap bmp = new Bitmap(1, 16);
        Graphics g = Graphics.FromImage(bmp);

        System.Drawing.Drawing2D.LinearGradientBrush b1 =
            new System.Drawing.Drawing2D.LinearGradientBrush(
                new Rectangle(0, 0, 1, 6),
                Color1,
                Color2,
                System.Drawing.Drawing2D.LinearGradientMode.Vertical);

        System.Drawing.Drawing2D.LinearGradientBrush b2 =
            new System.Drawing.Drawing2D.LinearGradientBrush(
                new Rectangle(0, 7, 1, 16),
                Color3,
                Color4,
                System.Drawing.Drawing2D.LinearGradientMode.Vertical);

        g.FillRectangle(b1, new Rectangle(0, 0, 1, 6));
        g.FillRectangle(b2, new Rectangle(0, 7, 1, 16));
        g.Dispose();

ビットマップ bmp に 2 つのグラデーションが追加されました。

于 2009-06-01T12:33:27.320 に答える
1

GradientFill関数を使用できます。

カスタム ソリューションについては、この記事が役立つかどうかを確認してください。

于 2009-05-31T13:24:20.763 に答える