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

时间:2016-05-16 21:01:52

标签: c#

我想在我的资源文件夹中的位图中绘制五个不同颜色但宽度和高度相等的矩形,它们之间的间距为5px,顶部和底部边距也为5px,并将位图保存到桌面。

当我运行此代码时,它只绘制一个Rectangle:

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 个答案:

答案 0 :(得分: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);