diff --git a/src/pretix/base/invoice.py b/src/pretix/base/invoice.py index ef9d00bf0..c19641ef0 100644 --- a/src/pretix/base/invoice.py +++ b/src/pretix/base/invoice.py @@ -388,6 +388,11 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer): except: logger.exception("Can not resize image") pass + try: + ir.remove_transparency() + except: + logger.exception("Can not remove transparency from logo") + pass canvas.drawImage(ir, self.logo_left, self.pagesize[1] - self.logo_height - self.logo_top, diff --git a/src/pretix/helpers/reportlab.py b/src/pretix/helpers/reportlab.py index b2af459c6..275d0205c 100644 --- a/src/pretix/helpers/reportlab.py +++ b/src/pretix/helpers/reportlab.py @@ -39,6 +39,12 @@ class ThumbnailingImageReader(ImageReader): self._data = None return width, height + def remove_transparency(self, background_color="WHITE"): + if "A" in self._image.mode: + new_image = Image.new("RGBA", self._image.size, background_color) + new_image.paste(self._image, mask=self._image) + self._image = new_image.convert("RGB") + def _jpeg_fh(self): # Bypass a reportlab-internal optimization that falls back to the original # file handle if the file is a JPEG, and therefore does not respect the