0

我以前从未使用过 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);

4

2 回答 2

3
gfx.FillRectangle(new SolidBrush(Color.FromArgb(21, 93, 127)), 600, 800, 0, 800);

您正在从坐标 600,800 绘制一个矩形,总宽度为 0 像素,高度为 800 像素,正如您从 MSDN此处看到的那样。因为该区域没有着色,所以它看起来是黑色的。

我认为您打算这样做:

gfx.FillRectangle(new SolidBrush(Color.FromArgb(21, 93, 127)), 0, 600, 800, 200);
于 2013-04-26T18:01:20.033 回答
0

您必须为矩形传递正确的坐标。请参阅此处了解更多信息。

gfx.FillRectangle(new SolidBrush(Color.FromArgb(21, 93, 127)), 0, 600, 800, 200);
于 2013-04-26T18:01:27.643 回答