2016-05-16 35 views
-3

我想繪製五個不同顏色的矩形,但它們的寬度和高度相等,間距爲5px,頂部和底部邊距爲5px,位於資源文件夾中的位圖中並將位圖保存到桌面。如何在位圖中繪製五個矩形並將其保存

當我運行這段代碼只繪製一個矩形:

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

通知你所有的填充矩形引用PAL1,這是你的問題。 – Marko

回答

3

您正在繪製它們全部具有相同的矩形,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

相關問題