Problemas con los bitmaps

06/09/2006 - 20:32 por raketa | Informe spam
Buenas a todos
Mi problema es el siguiente.
Estoy progrmanado con c# una aplicación que en un momento dado tengo que
escribir una frase dentro de un bitmap y representarlo en una pantalla
monocromo. El problema está en que a causa del tipo de formato que se define
a las letras del bitmap, me escribe las letras con difuminados para poder
aplicar el formato correctamente.
Con estos difuminados las letras se ven a rayas y no se puede leer el texto
correctamente, ya que la pantalla es en blanco y negro.
¿Alguien sabe la manera de escribir solo en blanco y negro sin pasar por las
escalas de grises?

Preguntas similare

Leer las respuestas

#1 RAlvare
07/09/2006 - 00:02 | Informe spam
Mostrar la cita
No sé si estaré diciendo alguna barbaridad porque nunca he tenido que poner
nada en blanco y negro, sí en
escala de grises, pero, pienso que el bitmap se puede convertir a blanco y
negro con una funcion que lea sus pixels y los convierta a blanco
o negro según su mayor o menor proximidad al RGB (0,0,0) (Negro) o al RGB
(255,255,255) (Blanco)


Color pixel;
for (int y = 0; y < m_altoImagen; y++)

{

for (int x = 0; x < m_anchoImagen; x++)

{

// Obtener un pixel de la imagen

pixel = MapaDeBits.GetPixel(x, y);

// Obtener el color promedio

t = (pixel.R + pixel.G + pixel.B) / 3;

// Colocar el pixel nuevo

MapaDeBits.SetPixel(x, y, Color.FromArgb(t, t, t))

}

}

Lo anterior convierte a escala de grises de forma imperfecta, no se calcula
correctamente la luminancia, para mayor precisión se deberia usar la
fórmula:
lum= (int)(pixel.R*0.3 + pixel.G*0.59+ pixel.B*0.11);

pondrías MapaDeBits.SetPixel(x,y,Color.FromArgb(lum,lum,lum))



Saludos.

RAlvare.

Lugones.
#2 raketa
07/09/2006 - 10:01 | Informe spam
Buenas, pos si, algo parecido he hecho y no funciona correctamente, el
decidir que cuando decide que la tonalidad es blanco es correcto pero cuando
decide que el pixel es negro deforma las letras. Seguramente esto para un
grafico si que funcionará... No hay ninguana manera para poder escribir sin
el formato?? que solo se pinten los pixeles en negro dentro de un fondo
blanco??

"RAlvare" wrote:

Mostrar la cita
#3 RAlvare
07/09/2006 - 11:45 | Informe spam
"raketa" escribió en el mensaje
news:
Mostrar la cita
Yo he usado este método para escribir texto y al usar un SolidBrush no hay
variaciones en el color del texto:

A ver si este fragmento de código te da una pista:

SolidBrush brocha = new SolidBrush(ColorElegido);


System.Windows.Forms.PaintEventArgs paintEvent
new PaintEventArgs(System.Drawing.Graphics.FromImage(img), new
Rectangle(m_controlRaton.verCoorOrigen.X, m_controlRaton.verCoorOrigen.Y,
100, 100));

paintEvent.Graphics.DrawString(this.textBox1.Text,
m_trataImagen.FuenteSeleccionada,brocha, new
PointF(m_controlRaton.verCoorOrigen.X,m_controlRaton.verCoorOrigen.Y));



Saludos.

RAlvare.

Lugones.Asturias.
Ads by Google
Search Busqueda sugerida