1 28994509 2004-04-21 devnull #include <u.h>
2 28994509 2004-04-21 devnull #include <libc.h>
3 28994509 2004-04-21 devnull #include <draw.h>
4 28994509 2004-04-21 devnull #include <memdraw.h>
5 28994509 2004-04-21 devnull #include <bio.h>
6 28994509 2004-04-21 devnull #include "imagefile.h"
8 28994509 2004-04-21 devnull /* Separate colors, if not a grey scale or bitmap, into one byte per color per pixel, no alpha or X */
9 28994509 2004-04-21 devnull /* Result is GREY[1248] or RGB24 */
11 28994509 2004-04-21 devnull int drawlog2[] = {
12 28994509 2004-04-21 devnull 0, 0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
13 28994509 2004-04-21 devnull 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19 28994509 2004-04-21 devnull notrans(ulong chan)
21 28994509 2004-04-21 devnull switch(chan){
22 28994509 2004-04-21 devnull case GREY1:
23 28994509 2004-04-21 devnull case GREY2:
24 28994509 2004-04-21 devnull case GREY4:
25 28994509 2004-04-21 devnull case GREY8:
26 28994509 2004-04-21 devnull case RGB24:
27 28994509 2004-04-21 devnull return 1;
29 28994509 2004-04-21 devnull return 0;
33 28994509 2004-04-21 devnull multichan(Image *i)
35 28994509 2004-04-21 devnull Image *ni;
37 28994509 2004-04-21 devnull if(notrans(i->chan))
38 28994509 2004-04-21 devnull return i;
40 28994509 2004-04-21 devnull ni = allocimage(display, i->r, RGB24, 0, DNofill);
41 28994509 2004-04-21 devnull if(ni == nil)
42 28994509 2004-04-21 devnull return ni;
43 28994509 2004-04-21 devnull draw(ni, ni->r, i, nil, i->r.min);
44 28994509 2004-04-21 devnull return ni;
47 28994509 2004-04-21 devnull Memimage*
48 28994509 2004-04-21 devnull memmultichan(Memimage *i)
50 28994509 2004-04-21 devnull Memimage *ni;
52 28994509 2004-04-21 devnull if(notrans(i->chan))
53 28994509 2004-04-21 devnull return i;
55 28994509 2004-04-21 devnull ni = allocmemimage(i->r, RGB24);
56 28994509 2004-04-21 devnull if(ni == nil)
57 28994509 2004-04-21 devnull return ni;
58 28994509 2004-04-21 devnull memimagedraw(ni, ni->r, i, i->r.min, nil, i->r.min, S);
59 28994509 2004-04-21 devnull return ni;