def _replace_image(self, img_xref, resampled_image): image_meta = self._pdf.lookup(img_xref).content alpha_xref = image_meta.get(PDFName("/SMask")) new_image_obj = PDFObject.create_image(img_xref.objid, img_xref.gennum, resampled_image, alpha_xref = alpha_xref) self._pdf.replace_object(new_image_obj) if resampled_image.alpha: new_alpha_obj = PDFObject.create_image(alpha_xref.objid, alpha_xref.gennum, resampled_image.alpha) self._pdf.replace_object(new_alpha_obj)
def run(self): reformatter = ImageReformatter(lossless = True, scale_factor = 1) for image_obj in self._pdf.image_objects: if PDFName("/SMask") in image_obj.content: current_image = self._pdf.get_image(image_obj.xref) flattened_image = reformatter.flatten(current_image, background_color = self._args.background_color) flattened_image_obj = PDFObject.create_image(image_obj.xref.objid, image_obj.xref.gennum, flattened_image) self._pdf.replace_object(flattened_image_obj)