示例#1
0
static void pixels_to_colours(int *colours, unsigned char *pixels,
                              int width, int height, int x)
{
  int i = height;
  int *colour = colours;
  unsigned char *rgb = &pixels[3*x];

  while (--i>=0)
  {
    *colour = palette_getindex(rgb);
    colour++;
    rgb += 3*width;
  }
}
示例#2
0
文件: rd_graphic.c 项目: AlexMax/d2k
size_t ppm_to_bitmap(void **lumpdata, const char *filename)
{
  void *data;
  size_t size = read_or_die(&data, filename);

  int i, j, width, height;
  unsigned char *pixels, *bitmap;

  pixels = parseppm(data, size, filename, &width, &height);
  bitmap = xmalloc(width * height);

  for (j = 0; j < height; j++)
    for (i = 0; i < width; i++)
      bitmap[width*j+i] = palette_getindex(&pixels[3*(width*j+i)]);

  free(data);

  *lumpdata = bitmap;
  return width * height;
}