#include #include #include #include #include void main(int, char **) { Rectangle r; Memimage *m; QOIctx ctx; u8int *pix; int n; if((pix = qoireadfile(&ctx, 0)) == nil) sysfatal("%r"); memimageinit(); r = Rect(0, 0, ctx.w, ctx.h); m = allocmemimage(r, ctx.chan == 4 ? ARGB32 : RGB24); n = ctx.w*ctx.h*ctx.chan; if(loadmemimage(m, r, pix, n) != n || writememimage(1, m) < 0) sysfatal("%r"); freememimage(m); free(pix); exits(nil); }