2017年09月 / 08月≪ 123456789101112131415161718192021222324252627282930≫10月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2008.11.29 (Sat)

C#.NETでグラデーションを塗る その2

C#.NETでグラデーションを塗る
を応用して

こんなグラデーションを作りたい
hu000003.jpg
なんて時はAlpha値を利用すると便利。

作り方は
hu000000.jpg
このグラデーションと

hu000001.jpg
このグラデーションを

融合させるわけだが、後から(上から)塗るグラデーションはアルファ値をグラデーションさせるようにすると素敵に融合する。

ソースコード

private void Form1_Load(object sender, EventArgs e)
{
// 描画用Bitmap生成
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
// BitmapからGraphics取得
Graphics g = Graphics.FromImage(pictureBox1.Image);

// 白→赤のベースとなる横グラデーション
System.Drawing.Drawing2D.LinearGradientBrush lgb =
new System.Drawing.Drawing2D.LinearGradientBrush(g.VisibleClipBounds,
Color.White, Color.Red,
System.Drawing.Drawing2D.LinearGradientMode.Horizontal);
// グラデーション塗りつぶし
g.FillRectangle(lgb, g.VisibleClipBounds);

// ブラシ破棄(必要なのかは不明)
lgb.Dispose();

// アルファ値0->アルファ値255の、アルファ値のみ黒縦グラデーション
lgb = new System.Drawing.Drawing2D.LinearGradientBrush(g.VisibleClipBounds,
Color.FromArgb(0, Color.Black), Color.FromArgb(255, Color.Black),
System.Drawing.Drawing2D.LinearGradientMode.Vertical);
// 塗りつぶし
g.FillRectangle(lgb, g.VisibleClipBounds);

// 破棄
lgb.Dispose();
g.Dispose();
}


アルファ値のありがたみを感じた瞬間。


 |  02:25  |  C#.NET  |  トラックバック(0)  |  コメント(0)  |  Top↑

Comment

コメントを投稿する

URL
コメント
パス  編集・削除するのに必要
非公開  管理者だけにコメントを表示
 

Trackback

この記事のトラックバックURL

この記事へのトラックバック

 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。