サイズが 1x16 の Image オブジェクトをメモリにレンダリングしようとしています。この画像は、タイル張りの背景として使用されます。グラデーション自体は、非線形の方法で 3 つの色を持つ必要があります。
ピクセル 1 ~ 6: グラデーション カラー 1 ~ カラー 2
ピクセル 7 ~ 16: グラデーション カラー 3 ~ カラー 4
私は自分でそれを行う方法を見つけました。私は次のような答えを期待していました:
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 つのグラデーションが追加されました。
GradientFill関数を使用できます。
カスタム ソリューションについては、この記事が役立つかどうかを確認してください。