problema con imprimir imagen

Iniciado por Drewermerc, 9 Junio 2014, 04:40 AM

0 Miembros y 1 Visitante están viendo este tema.

Drewermerc

hola a todos.
bueno pues estoy aprendiendo a manejar imagens en c y estoy empesando con bmp y tengo un problemas que un pendazo se compila bien y se ejecuta pero al llegar a la linea que les mostrare adelante deja de funciona y lo depude con gdb yme dice comparacion inavalida.
e pensado  que alomejor el problema es en intentar comparar solo una posicion del array aparte de que es muy grande por que imprimir el valor de la operacion y si es algo grande y bueno nose cual sea el error por que en el tutorial que encontre pone un resultado que si sale impresa la imagen o no creo que sea por que el creo la imagen con image magick pero no encuentro com crearlaen windows ncuentro pura informacion para linux pero no me funcionan lo comando y yo creo la imgen con gimp.

bueno aqui les dejo la sección de codigo donde me marca error.


void TextDisplay(bmpInfoHeader *info, unsigned char *img)
{
 int x, y;
 static const int reduccionX=6, reduccionY=4;
 /*si la componente en x o y superan el umbral sera igual a 1*/
 static const int umbral=90;
 static unsigned char colores[9]=" blgfrRGB";
 int r ,g ,b , valor = 0;
valor = 3*(x+y*info->width);
printf("%d\n", valor);
 for (y=info->height; y>0; y-=reduccionY)
   {
     for (x=0; x<info->width; x+=reduccionX)
   {
/*aqui es donde marca el error y el rpograma deja de funcionar se supone que si  img[3*(x+y*info->width)]>umbral debe dar uno bueno eso es lo que leentendi alomejor me equivoco si esasi corrijanme */  
     b=(img[3*(x+y*info->width)]>umbral);
     g=(img[3*(x+y*info->width)+1]>umbral);
     r=(img[3*(x+y*info->width)+2]>umbral);

     printf("%c", colores[b+g*2+r*4]);
   }
     printf("\n");
   }
}

La imagen se debe imprimir por consola y depende de los valor que sea de  colores se imprimira alguna letra de las que se le declaro.

Bueno espero que me puedan ayudar.
Saludos.
Drewermerc.