On Mon, 14 Jul 2014 14:54:42 -0400
Charlie Murphy <cmsmurp00_AT_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 <dev_AT_frign.de>
Received on Tue Jul 15 2014 - 18:28:49 CEST