2016-05-16 4 views
-3

異なる色の5つの矩形を同じ幅と高さで描画したい場合は、それらの間に5ピクセルの間隔をあけて、リソースフォルダのビットマップに5ピクセルの上下余白ビットマップをデスクトップに保存します。ビットマップに5つの矩形を描画して保存する方法

私はこのコードを実行すると、それが唯一の長方形描画します:私は間違って何をやっている

Bitmap palette = new Bitmap(Resources.palette); 
Graphics g = Graphics.FromImage(palette); 

SolidBrush p1 = new SolidBrush(color1.BackColor); 
SolidBrush p2 = new SolidBrush(color2.BackColor); 
SolidBrush p3 = new SolidBrush(color3.BackColor); 
SolidBrush p4 = new SolidBrush(color4.BackColor); 
SolidBrush p5 = new SolidBrush(color5.BackColor); 

var pal1 = new Rectangle(5, 5, 30, 90); 
g.FillRectangle(p1, pal1); 
var pal2 = new Rectangle(65, 40, 60, 90); 
g.FillRectangle(p2, pal1); 
var pal3 = new Rectangle(65, 35, 90, 90); 
g.FillRectangle(p3, pal1); 
var pal4 = new Rectangle(95, 50, 120, 90); 
g.FillRectangle(p4, pal1); 
var pal5 = new Rectangle(195, 5, 150, 95); 
g.FillRectangle(p4, pal1); 

palette.Save(@"C:\Users\Paapi\Desktop\"+DateTime.Now.Second+".jpg", ImageFormat.Jpeg); 

MessageBox.Show("Completed"); 

を?あなたはそれらすべてを同じ四角形で描画されている

+1

通知は、これはあなたの問題です。 – Marko

答えて

3

pal1:すべてのあなたの塗りつぶし矩形がPAL1を参照している

var pal1 = new Rectangle(5, 5, 30, 90); 
g.FillRectangle(p1, pal1); 
var pal2 = new Rectangle(65, 40, 60, 90); 
g.FillRectangle(p2, pal2); 
var pal3 = new Rectangle(65, 35, 90, 90); 
g.FillRectangle(p3, pal3); 
var pal4 = new Rectangle(95, 50, 120, 90); 
g.FillRectangle(p4, pal4); 
var pal5 = new Rectangle(195, 5, 150, 95); 
g.FillRectangle(p4, pal5); 
+0

ありがとう、私は今それをすべて修正することができました。すべての矩形が正しく描画されています。 – Clinton

関連する問題