Как визуализировать градиент в памяти, используя GDI (+) - PullRequest
0 голосов
/ 31 мая 2009

Я пытаюсь визуализировать объект Image в памяти с размерами 1x16. Это изображение используется как мозаичный фон. Сам градиент должен иметь 3 цвета нелинейным способом.

Пиксель с 1 по 6: градиент от цвета 1 до цвета 2

Пиксель с 7 по 16: градиент от цвета 3 до цвета 4

Ответы [ 2 ]

1 голос
/ 01 июня 2009

Я только что сам узнал, как это сделать. Я ожидал такого ответа:

        Bitmap bmp = new Bitmap(1, 16);
        Graphics g = Graphics.FromImage(bmp);

        System.Drawing.Drawing2D.LinearGradientBrush b1 =
            new System.Drawing.Drawing2D.LinearGradientBrush(
                new Rectangle(0, 0, 1, 6),
                Color1,
                Color2,
                System.Drawing.Drawing2D.LinearGradientMode.Vertical);

        System.Drawing.Drawing2D.LinearGradientBrush b2 =
            new System.Drawing.Drawing2D.LinearGradientBrush(
                new Rectangle(0, 7, 1, 16),
                Color3,
                Color4,
                System.Drawing.Drawing2D.LinearGradientMode.Vertical);

        g.FillRectangle(b1, new Rectangle(0, 0, 1, 6));
        g.FillRectangle(b2, new Rectangle(0, 7, 1, 16));
        g.Dispose();

Растровое изображение bmp теперь имеет градиент 2.

0 голосов
/ 31 мая 2009

Вы можете использовать функцию GradientFill .

Для индивидуального решения посмотрите, может ли эта статья помочь.

...