| 123456789101112131415161718192021222324252627282930313233 |
- #include "fitz-internal.h"
- void fz_write_pixmap(fz_context *ctx, fz_pixmap *img, char *file, int rgb)
- {
- char name[1024];
- fz_pixmap *converted = NULL;
- if (!img)
- return;
- if (rgb && img->colorspace && img->colorspace != fz_device_rgb)
- {
- fz_irect bbox;
- converted = fz_new_pixmap_with_bbox(ctx, fz_device_rgb, fz_pixmap_bbox(ctx, img, &bbox));
- fz_convert_pixmap(ctx, converted, img);
- img = converted;
- }
- if (img->n <= 4)
- {
- sprintf(name, "%s.png", file);
- printf("extracting image %s\n", name);
- fz_write_png(ctx, img, name, 0);
- }
- else
- {
- sprintf(name, "%s.pam", file);
- printf("extracting image %s\n", name);
- fz_write_pam(ctx, img, name, 0);
- }
- fz_drop_pixmap(ctx, converted);
- }
|