C#自定义颜色变黑

时间:2013-04-26 17:53:44

标签: c# drawing system.drawing

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

2 个答案:

答案 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);