1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#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);
}
|