Re: [dev] Looking for simple, alpha supporting image format

From: FRIGN <dev_AT_frign.de>
Date: Tue, 15 Jul 2014 19:19:58 +0200

On Mon, 14 Jul 2014 14:54:42 -0400
Charlie Murphy <cmsmurp00_AT_gmail.com> wrote:

> I'm looking for something like this[1] but with conversion tools for
> other formats.

Now, let's take a look at the proposition:

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

The given example-implementation leaves a lot to ask for. Here's my
approach:

char *
readimage(int fd, int *w, int *h)
{
        size_t total;
        uint8_t *data;

        data = malloc(30);
        if (!data || read(fd, buf, 30) != 30 || strcmp(buf, "imagefile") != 0) {
                free(data);
                return NULL;
        }

        buf[9] = buf[19] = buf[29] = '\0';
        *w = atoi(buf+10);
        *h = atoi(buf+20);
        total = (*w) * (*h) * 4;

        data = realloc(data, total);
        if (!data || read(fd, data, total) != total) {
                free(data);
                return NULL;
        }
        return data;
}

The writing-function is rather trivial.
Now, what puzzles me is why no explanation is given on how the data
itself should be stored. It says RGBA, so I suppose he meant

| 8 bit | 8 bit | 8 bit | 8 bit |
| red | green | blue | alpha |

for each pixel. This is rather trivial then, given an unsigned
8-bit-integer can be expressed with his according ASCII-char, basically
turning this image file-format into a string:

imagefile 2 1 5%4&4"31

Let me know what you think. I suppose anything more complex than that will
limit our possibilities and the flexiblity and simplicity of this format.

Cheers

FRIGN

-- 
FRIGN <dev_AT_frign.de>
Received on Tue Jul 15 2014 - 19:19:58 CEST

This archive was generated by hypermail 2.3.0 : Tue Jul 15 2014 - 19:24:07 CEST