我之前从未使用过System.Drawing,所以请耐心等待,因为这是我发现并放在一起的代码。
我正在尝试创建一个顶部白色和底部另一种颜色的图像(最终将图像添加到其中)
我的代码:
Bitmap bmp = new Bitmap(800, 800, PixelFormat.Format32bppArgb);
using (Graphics gfx = Graphics.FromImage((Image)bmp))
{
gfx.FillRectangle(Brushes.Transparent, new RectangleF(0, 0, bmp.Width, bmp.Height));
gfx.FillRectangle(Brushes.White, 0, 0, 800, 600);
gfx.FillRectangle(new SolidBrush(Color.FromArgb(21, 93, 127)), 600, 800, 0, 800);
}
bmp.Save("C:\test.jpg", ImageFormat.Bmp);
然而,我的结果是顶部白色,底部黑色......不确定我做错了什么。
我也试过gfx.FillRectangle(new SolidBrush(System.Drawing.ColorTranslator.FromHtml("#155d7f")), 600, 800, 0, 800);
答案 0 :(得分:3)
gfx.FillRectangle(new SolidBrush(Color.FromArgb(21, 93, 127)), 600, 800, 0, 800);
您正在从坐标600,800绘制一个矩形,总宽度为0px,高度为800px,您可以从MSDN here中看到。由于该区域未着色,因此显示为黑色。
我认为你的意思是:
gfx.FillRectangle(new SolidBrush(Color.FromArgb(21, 93, 127)), 0, 600, 800, 200);
答案 1 :(得分:0)
您必须传递矩形的正确坐标。有关详细信息,请参阅here。
gfx.FillRectangle(new SolidBrush(Color.FromArgb(21, 93, 127)), 0, 600, 800, 200);