i'm sure this could be smaller, but i've got to run.
the images are here: /n/sources/contrib/quanstro/drawfunny/images/
; 8.out <{jpg -t9 /lib/radar/*.jpg} <{gif -t9 /lib/radar/hw.gif} <{gif -t9
/lib/radar/radar.gif}|page
#include <u.h>
#include <libc.h>
#include <bio.h>
#include <draw.h>
#include <memdraw.h>
#include <memlayer.h>
enum {
CHAN = RGBA32,
};
void
usage(void)
{
fprint(2, "usage: composetst...\n");
exits("usage");
}
Memimage*
newimage(int fd, ulong chan)
{
Memimage *t, *im;
im = readmemimage(fd);
if(im == nil)
sysfatal("readmemimage: %r");
if(chan != 0){
t = allocmemimage(im->r, chan);
if(t == nil)
sysfatal("readmemimage: %r");
memfillcolor(t, DTransparent);
memdraw(t, im->r, im, ZP, nil, ZP, SoverD);
freememimage(im);
im = t;
}
return im;
}
void
main(int argc, char **argv)
{
int i, fd;
Memimage *im, *scr;
ARGBEGIN{
default:
usage();
}ARGEND
if(argc == 0)
usage();
memimageinit();
fd = open(argv[0], OREAD);
if(fd == -1)
sysfatal("open: %r");
scr = newimage(fd, CHAN);
for(i = 1; i < argc; i++){
fd = open(argv[i], OREAD);
if(fd == -1)
sysfatal("open: %r");
im = newimage(fd, 0);
memdraw(scr, scr->r, im, ZP, nil, ZP, SoverD);
freememimage(im);
}
writememimage(1, scr);
exits("");
}