Ejemplo n.º 1
0
static guchar *
create_grayscale_buffer (guint16 *buffer, guint width, guint height)
{
  gint i,j;
  gint size;
  guchar *grayscale_buffer;

  size = width * height * sizeof (guchar) * 3;
  grayscale_buffer = g_slice_alloc (size);
  /*Paint it white*/
  memset (grayscale_buffer, 255, size);

  for (i = 0; i < width; i++)
    {
      for (j = 0; j < height; j++)
        {
          guint16 value = round (buffer[j * width + i]  * 256. / 3000.);
          if (value != 0)
            {
              gint index = j * width + i;
              grayscale_buffer_set_value (grayscale_buffer,
                                          index,
                                          value);
            }
        }
    }

  return grayscale_buffer;
}
Ejemplo n.º 2
0
static guchar *
create_grayscale_buffer (BufferInfo *buffer_info, gint dimension_reduction)
{
  gint i,j;
  gint size;
  guchar *grayscale_buffer;
  guint16 *reduced_buffer;

  reduced_buffer = buffer_info->reduced_buffer;

  size = buffer_info->width * buffer_info->height * sizeof (guchar) * 3;
  grayscale_buffer = g_slice_alloc (size);
  /*Paint is white*/
  memset (grayscale_buffer, 255, size);

  for (i = 0; i < buffer_info->reduced_width; i++)
    {
      for (j = 0; j < buffer_info->reduced_height; j++)
        {
          if (reduced_buffer[j * buffer_info->reduced_width + i] != 0)
            {
              gint index = j * dimension_reduction * buffer_info->width +
                i * dimension_reduction;
              grayscale_buffer_set_value (grayscale_buffer, index, 0);
            }
        }
    }

  return grayscale_buffer;
}