Следующий код создаст прозрачную растровую карту, а затем нарисует на ней белый эллипс с сглаживанием.GDI + Ошибка: Anti-Aliasing White On Transparency
using(var background = new Bitmap(500, 500))
using (var graphics = Graphics.FromImage(background))
{
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.Clear(Color.Transparent);
graphics.DrawEllipse(new Pen(Color.White, 50), 250, 250, 150, 150);
background.Save("test.png", ImageFormat.Png);
}
Исправлена ошибка, я обнаружил, что сглаживание пикселей по краям эллипса имеет неожиданный цвет. Они имеют значения RGB (254,254,254) вместо (255,255,255). Поскольку GDI + определяет прозрачность как ARGB (0,255,255,255) и белый как (255,255,255,255), почему я вижу 254 после смешивания?
я себе его прецизионный вопрос ... Что цвет фона? – Sayse
Цвет фона Цвет. Прозрачный ARGB (0,255,255,255). Поэтому я не уверен, где точность теряется. – Zach
Цвета переднего плана, составляющие конкретный пиксель, смешиваются в соответствии с их субпиксельным охватом переднего плана, игнорируя вклад фона. http://www.w3.org/Conferences/WWW4/Papers/53/gq-trans.html – Sayse