static void png_save2(const char *filename, uint32_t *bitmap, int w, int h)

{

    int x, y, v;

    FILE *f;

    char fname[40], fname2[40];

    char command[1024];



    snprintf(fname, 40, "%s.ppm", filename);



    f = fopen(fname, "w");

    if (!f) {

        perror(fname);

        exit(1);

    }

    fprintf(f, "P6\n"

            "%d %d\n"

            "%d\n",

            w, h, 255);

    for(y = 0; y < h; y++) {

        for(x = 0; x < w; x++) {

            v = bitmap[y * w + x];

            putc((v >> 16) & 0xff, f);

            putc((v >> 8) & 0xff, f);

            putc((v >> 0) & 0xff, f);

        }

    }

    fclose(f);





    snprintf(fname2, 40, "%s-a.pgm", filename);



    f = fopen(fname2, "w");

    if (!f) {

        perror(fname2);

        exit(1);

    }

    fprintf(f, "P5\n"

            "%d %d\n"

            "%d\n",

            w, h, 255);

    for(y = 0; y < h; y++) {

        for(x = 0; x < w; x++) {

            v = bitmap[y * w + x];

            putc((v >> 24) & 0xff, f);

        }

    }

    fclose(f);



    snprintf(command, 1024, "pnmtopng -alpha %s %s > %s.png 2> /dev/null", fname2, fname, filename);

    system(command);



    snprintf(command, 1024, "rm %s %s", fname, fname2);

    system(command);

}

static void png_save2(const char *filename, uint32_t *bitmap, int w, int h)

{

    int x, y, v;

    FILE *f;

    char fname[40], fname2[40];

    char command[1024];



    snprintf(fname, 40, "%s.ppm", filename);



    f = fopen(fname, "w");

    if (!f) {

        perror(fname);

        exit(1);

    }

    fprintf(f, "P6\n"

            "%d %d\n"

            "%d\n",

            w, h, 255);

    for(y = 0; y < h; y++) {

        for(x = 0; x < w; x++) {

            v = bitmap[y * w + x];

            putc((v >> 16) & 0xff, f);

            putc((v >> 8) & 0xff, f);

            putc((v >> 0) & 0xff, f);

        }

    }

    fclose(f);





    snprintf(fname2, 40, "%s-a.pgm", filename);



    f = fopen(fname2, "w");

    if (!f) {

        perror(fname2);

        exit(1);

    }

    fprintf(f, "P5\n"

            "%d %d\n"

            "%d\n",

            w, h, 255);

    for(y = 0; y < h; y++) {

        for(x = 0; x < w; x++) {

            v = bitmap[y * w + x];

            putc((v >> 24) & 0xff, f);

        }

    }

    fclose(f);



    snprintf(command, 1024, "pnmtopng -alpha %s %s > %s.png 2> /dev/null", fname2, fname, filename);

    system(command);



    snprintf(command, 1024, "rm %s %s", fname, fname2);

    system(command);

}

static void FUNC_0(const char *VAR_0, uint32_t *VAR_1, int VAR_2, int VAR_3)

{

    int VAR_4, VAR_5, VAR_6;

    FILE *f;

    char VAR_7[40], VAR_8[40];

    char VAR_9[1024];



    snprintf(VAR_7, 40, "%s.ppm", VAR_0);



    f = fopen(VAR_7, "VAR_2");

    if (!f) {

        perror(VAR_7);

        exit(1);

    }

    fprintf(f, "P6\n"

            "%d %d\n"

            "%d\n",

            VAR_2, VAR_3, 255);

    for(VAR_5 = 0; VAR_5 < VAR_3; VAR_5++) {

        for(VAR_4 = 0; VAR_4 < VAR_2; VAR_4++) {

            VAR_6 = VAR_1[VAR_5 * VAR_2 + VAR_4];

            putc((VAR_6 >> 16) & 0xff, f);

            putc((VAR_6 >> 8) & 0xff, f);

            putc((VAR_6 >> 0) & 0xff, f);

        }

    }

    fclose(f);





    snprintf(VAR_8, 40, "%s-a.pgm", VAR_0);



    f = fopen(VAR_8, "VAR_2");

    if (!f) {

        perror(VAR_8);

        exit(1);

    }

    fprintf(f, "P5\n"

            "%d %d\n"

            "%d\n",

            VAR_2, VAR_3, 255);

    for(VAR_5 = 0; VAR_5 < VAR_3; VAR_5++) {

        for(VAR_4 = 0; VAR_4 < VAR_2; VAR_4++) {

            VAR_6 = VAR_1[VAR_5 * VAR_2 + VAR_4];

            putc((VAR_6 >> 24) & 0xff, f);

        }

    }

    fclose(f);



    snprintf(VAR_9, 1024, "pnmtopng -alpha %s %s > %s.png 2> /dev/null", VAR_8, VAR_7, VAR_0);

    system(VAR_9);



    snprintf(VAR_9, 1024, "rm %s %s", VAR_7, VAR_8);

    system(VAR_9);

}

static void FUNC_0(const char *VAR_0, uint32_t *VAR_1, int VAR_2, int VAR_3)
{ int VAR_4, VAR_5, VAR_6; FILE *f; char VAR_7[40], VAR_8[40]; char VAR_9[1024]; snprintf(VAR_7, 40, "%s.ppm", VAR_0); f = fopen(VAR_7, "VAR_2"); if (!f) { perror(VAR_7); exit(1); } fprintf(f, "P6\n"
"%d %d\n"
"%d\n",
VAR_2, VAR_3, 255); for(VAR_5 = 0; VAR_5 < VAR_3; VAR_5++) { for(VAR_4 = 0; VAR_4 < VAR_2; VAR_4++) { VAR_6 = VAR_1[VAR_5 * VAR_2 + VAR_4]; putc((VAR_6 >> 16) & 0xff, f); putc((VAR_6 >> 8) & 0xff, f); putc((VAR_6 >> 0) & 0xff, f); } } fclose(f); snprintf(VAR_8, 40, "%s-a.pgm", VAR_0); f = fopen(VAR_8, "VAR_2"); if (!f) { perror(VAR_8); exit(1); } fprintf(f, "P5\n"
"%d %d\n"
"%d\n",
VAR_2, VAR_3, 255); for(VAR_5 = 0; VAR_5 < VAR_3; VAR_5++) { for(VAR_4 = 0; VAR_4 < VAR_2; VAR_4++) { VAR_6 = VAR_1[VAR_5 * VAR_2 + VAR_4]; putc((VAR_6 >> 24) & 0xff, f); } } fclose(f); snprintf(VAR_9, 1024, "pnmtopng -alpha %s %s > %s.png 2> /dev/null", VAR_8, VAR_7, VAR_0); system(VAR_9); snprintf(VAR_9, 1024, "rm %s %s", VAR_7, VAR_8); system(VAR_9); }