午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

2色グラデーションが期待通りにならないので実験してみた

VisualBasic2010Expressの
2色グラデーションが期待通りにならないので実験してみた
横幅2ピクセルから10ピクセルまでの左から赤から緑のグラデーション
30倍に拡大、数値は緑の値
イメージ 1
 
グラデーションブラシの幅をBitmapと同じにすると反対側の色が出ない代わりに
一番右の色がおかしい、正確ならg255になるはず
幅を-1にするとBitmapの幅によって反対側の色が出たり出なかったりする
横幅が4と6と10の時だけ期待通りになっていてそれ以外は
反対側の赤色が出てしまっている
 
 
 
Dim bmp As New Bitmap(rw, rh)
Dim rect As New Rectangle(0, 0, rw, rh)
Dim rect2 As New Rectangle(0, 0, rw - 1, rh)
Dim g As Graphics = Graphics.FromImage(bmp)
       '2色グラデーションブラシ作成
Dim gradationB As New LinearGradientBrush(rect, Color.Red, Color.Green, LinearGradientMode.Horizontal)
Dim gradationB As New LinearGradientBrush(rect2, Color.Red, Color.Green, LinearGradientMode.Horizontal)
        ’塗り
g.FillRectangle(gradationB, rect)
 
背景色が水色のところを入れ替えて実験
rwが横幅、rhが高さでrh-1も試したけど変化なし
Bitmapと同じ幅でブラシを作れば反対側の色は出ないけど納得できない
まあ見た目にはわからないんだけどね
何か方法が間違っているのかなあ