On Mon, 14 Jul 2014 14:54:42 -0400 Charlie Murphy <cmsmur...@gmail.com> wrote:
> [1]: http://pastebin.com/vZEcxte3 As this expires, here's the full text: ### This is an easy-to-parse image format that works well in pipelines. Inspired by Netpbm and the Plan 9 image format. Bytes Description 9 ASCII string: "imagefile" 1 Blank 9 Right-justified, blank-padded ASCII string containing width. 1 Blank 9 Right-justified, blank-padded ASCII string containing height. 1 Blank Then, (width*height) pixels in the form of RGBA, where each channel is one byte. This function reads an image: int readimage(int fd, int *wp, int *hp, char **datap) { char buf[30]; int w, h, total; char *data; if (read(fd, buf, 30) != 30) return -1; buf[9] = '\0'; buf[19] = '\0'; buf[29] = '\0'; if (strcmp(buf, "imagefile") != 0) return -1; w = atoi(buf+10); h = atoi(buf+20); total = w*h*4; data = malloc(total); if (!data) return -1; if (read(fd, data, total) != total) { free(data); return -1; } *wp = w; *hp = h; *datap = datap; return 0; } This function writes an image: int writeimage(int fd, int w, int h, char *data) { if (dprintf(fd, "imagefile %9d %9d ", w, h) < 0) return -1; if (write(fd, data, w*h*4) != w*h*4) return -1; return 0; } -Anonymous ### -- FRIGN <d...@frign.de>