我的LinearGradientBrush出现问题。我不知道是不是时候(这里是凌晨1点43分),或者我是不是因为其他原因而感到愚蠢,但这真的让我烦恼。
我有以下代码:
using (LinearGradientBrush lgb = new LinearGradientBrush(
this.brightnessRectangle,this.fullcolour,Color.Black,LinearGradientMode.Vertical))
{
gradientImage = new Bitmap(50, 200, PixelFormat.Format32bppArgb);
using (Graphics newGraphics = Graphics.FromImage(gradientImage))
{
newGraphics.FillRectangle(lgb, new Rectangle(0, 0, 50, 200));
}
gradientImage.Save("test.png", ImageFormat.Png);
}
然而test.png
看起来像这样:
正如我相信你能说的那样,这不是理想的效果。有点看起来它已经开始向远处向后缠绕,但顶部和底部异常是不同的大小。
之前有人见过吗?这是一个简单的解决方法吗?
一些注意事项:
LinearGradientBrush
不同的StartPoint
。我没有EndPoint
或{{1}}属性。答案 0 :(得分:2)
尝试确保brightnessRectangle
等于(0,0,50,200)。
换句话说,确保您的LinearGradientBrush矩形和FillRectangle
是一样的:
Rectangle r = new Rectangle(0, 0, 50, 200);
using (LinearGradientBrush lgb = new LinearGradientBrush(
r ,this.fullcolour,Color.Black,LinearGradientMode.Vertical)) {
gradientImage = new Bitmap(r.Width, r.Height, PixelFormat.Format32bppArgb);
using (Graphics newGraphics = Graphics.FromImage(gradientImage)) {
newGraphics.FillRectangle(lgb, r);
}
gradientImage.Save("test.png", ImageFormat.Png);
}
是的,睡一会儿。