C# 如何在位图中绘制五个矩形并保存

C# 如何在位图中绘制五个矩形并保存,c#,C#,我想在我的资源文件夹中的位图中绘制五个不同颜色但宽度和高度相同的矩形,它们之间的间距为5px,上下边距也为5px,并将位图保存到桌面 当我运行此代码时,它只绘制一个矩形: Bitmap palette = new Bitmap(Resources.palette); Graphics g = Graphics.FromImage(palette); SolidBrush p1 = new SolidBrush(color1.BackColor); SolidBrush p2 = new Sol

我想在我的资源文件夹中的位图中绘制五个不同颜色但宽度和高度相同的矩形,它们之间的间距为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");

我做错了什么

您正在使用相同的矩形绘制它们,
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);

请注意,您所有的填充矩形都引用了pal1,这是您的问题。谢谢,我现在设法解决了所有问题。现在所有的矩形都画对了。