static void saveimage(int num) { fz_image *image = NULL; fz_pixmap *pix = NULL; pdf_obj *ref; char buf[32]; ref = pdf_new_indirect(ctx, doc, num, 0); fz_var(image); fz_var(pix); fz_try(ctx) { /* TODO: detect DCTD and save as jpeg */ image = pdf_load_image(ctx, doc, ref); pix = fz_get_pixmap_from_image(ctx, image, NULL, NULL, 0, 0); snprintf(buf, sizeof(buf), "img-%04d", num); writepixmap(ctx, pix, buf, dorgb); } fz_always(ctx) { fz_drop_image(ctx, image); fz_drop_pixmap(ctx, pix); pdf_drop_obj(ctx, ref); } fz_catch(ctx) fz_rethrow(ctx); }
static void saveimage(int num) { fz_image *image; fz_pixmap *pix; pdf_obj *ref; char buf[32]; ref = pdf_new_indirect(doc, num, 0); /* TODO: detect DCTD and save as jpeg */ image = pdf_load_image(doc, ref); pix = fz_new_pixmap_from_image(ctx, image, 0, 0); fz_drop_image(ctx, image); snprintf(buf, sizeof(buf), "img-%04d", num); writepixmap(ctx, pix, buf, dorgb); fz_drop_pixmap(ctx, pix); pdf_drop_obj(ref); }