Как нарисовать субпиксельную линию

В следующем коде я пытаюсь нарисовать две линии: одну с шириной субпикселя (0,5), а другую - с шириной 1 пиксель:

        var img = new Bitmap(256, 256);
        Graphics graphics = Graphics.FromImage(img);
        graphics.SmoothingMode = SmoothingMode.AntiAlias;

        // Draw a subpixel line (0.5 width)
        graphics.DrawLine(new Pen(Color.Red, (float)0.5), 0, 100, 255, 110);

        // Draw a single pixel line (1 width)
        graphics.DrawLine(new Pen(Color.Red, (float)1), 0, 110, 255, 120);

        img.Save(@"c:\temp\test.png", ImageFormat.Png);

        graphics.Dispose();

        img.Dispose();

Однако в сгенерированном изображении обе линии имеют одинаковую ширину:

enter image description here

Есть ли способ, чтобы верхняя линия выглядела субпикселем (0,5 пикселя)?

Редактировать: После некоторого исследования AGG может быть способ пойти, из которых есть порт C # .

12
задан FredL 4 March 2012 в 12:03
поделиться