用mupdf api抽pdf每一页,因为用fz_new_pixmap_from_page接口只能设置抽取的分辨率倍数(fz_scale),但是我要的分辨率不是一倍的。所以我只能先抽取一倍的分辨率,再计算我需要的分辨率是几倍,再定义倍数抽取一次,这样一张图就需要操作两次,耗时有点久。
//先抽取一倍的分辨率
pix = fz_new_pixmap_from_page(ctx, page, fz_scale(1.0, 1.0), fz_device_gray(ctx), 0);
int need_w = dpi*iPaper_w / 25.4;
float scale = need_w*1.0 / pix->h;//计算倍数
int need_l = pix->w*1.0*scale + 0.5;
//再次抽取需要的分辨率
pix = fz_new_pixmap_from_page(ctx, page, fz_scale(scale, scale), fz_device_gray(ctx), 0);
不知道大家有什么好方法?