Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Drewermerc en 9 Junio 2014, 04:40 am



Título: problema con imprimir imagen
Publicado por: Drewermerc en 9 Junio 2014, 04:40 am
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.

Código
  1. void TextDisplay(bmpInfoHeader *info, unsigned char *img)
  2. {
  3.  int x, y;
  4.  static const int reduccionX=6, reduccionY=4;
  5.  /*si la componente en x o y superan el umbral sera igual a 1*/
  6.  static const int umbral=90;
  7.  static unsigned char colores[9]=" blgfrRGB";
  8.  int r ,g ,b , valor = 0;
  9. valor = 3*(x+y*info->width);
  10. printf("%d\n", valor);
  11.  for (y=info->height; y>0; y-=reduccionY)
  12.    {
  13.      for (x=0; x<info->width; x+=reduccionX)
  14.    {
  15. /*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 */  
  16.      b=(img[3*(x+y*info->width)]>umbral);
  17.      g=(img[3*(x+y*info->width)+1]>umbral);
  18.      r=(img[3*(x+y*info->width)+2]>umbral);
  19.  
  20.      printf("%c", colores[b+g*2+r*4]);
  21.    }
  22.      printf("\n");
  23.    }
  24. }
  25.  
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.