我的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属性。发布于 2012-02-03 02:00:01
尝试确保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);
}是的,好好睡一觉。
https://stackoverflow.com/questions/9122706
复制相似问题