2012-02-03 3 views
1

У меня проблемы с LinearGradientBrush. Я не знаю, пришло ли время (1:43 здесь), или если я глуп по какой-то другой причине, но это действительно меня беспокоит.Как я могу предотвратить/контролировать упаковку LinearGradientBrush?

У меня есть следующий код:

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 выглядит следующим образом:

enter image description here

Который, как я уверен, что вы будете в состоянии сказать, не было желаемый эффект. Это похоже на то, что он запущен далеко вниз и завернут назад, но верхние и нижние аномалии разных размеров.

Кто-нибудь видел это раньше? Это легко исправить?

Некоторые примечания:

  • Googling предполагает, я могу быть с this problem, что говорит о том Боб Пауэлл может быть исправлено путем заливки немного больше, чем площадь в процессе заполнения. Это не сработало.
  • MSDN, похоже, говорит о другом LinearGradientBrush тому, который у меня есть. Шахта не имеет StartPoint или EndPoint.
+0

Каковы свойства this.brightnessRectangle? –

ответ

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); 
} 

И да, выспаться.

+0

Спасибо, Ларс, подумал, что я пробовал это, но, похоже, теперь он работал. –

Смежные вопросы