En el siguiente código, que estoy tratando de dibujar dos líneas: una con un ancho de subpíxeles (0,5) y el otro con un ancho de 1 píxel:Cómo dibujar una línea de subpíxeles
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();
Sin embargo, en el generada imagen, ambas líneas aparecen la misma anchura:
¿hay una manera para que la línea superior que aparezca sub-píxel (0.5px)?
Editar: Después de algunas investigaciones, AGG podría ser el camino a seguir, de los cuales hay un c# port.
por favor no uses el prefijo sus títulos con "C#" y tal. Para eso son las etiquetas. –
Supongamos que su objetivo tiene sentido. Extrapolar, ¿cómo espera que se vea una línea con un ancho de pluma de 0.001 píxeles? –
Si reduce el tamaño de una imagen que tiene una línea de 1 píxel utilizando una aplicación de gráficos, la imagen resultante mostrará una línea atenuada. –