mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	@@ -66,6 +66,16 @@ class RasterisedDocumentParser(DocumentParser):
 | 
				
			|||||||
            "image/gif",
 | 
					            "image/gif",
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def has_alpha(self, image):
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            with Image.open(image) as im:
 | 
				
			||||||
 | 
					                return im.mode in ('RGBA', 'LA')
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            self.log(
 | 
				
			||||||
 | 
					                'warning',
 | 
				
			||||||
 | 
					                f"Error while check for alpha channel in image {image}: {e}")
 | 
				
			||||||
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_dpi(self, image):
 | 
					    def get_dpi(self, image):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            with Image.open(image) as im:
 | 
					            with Image.open(image) as im:
 | 
				
			||||||
@@ -182,6 +192,18 @@ class RasterisedDocumentParser(DocumentParser):
 | 
				
			|||||||
        if self.is_image(mime_type):
 | 
					        if self.is_image(mime_type):
 | 
				
			||||||
            dpi = self.get_dpi(input_file)
 | 
					            dpi = self.get_dpi(input_file)
 | 
				
			||||||
            a4_dpi = self.calculate_a4_dpi(input_file)
 | 
					            a4_dpi = self.calculate_a4_dpi(input_file)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if self.has_alpha(input_file):
 | 
				
			||||||
 | 
					                self.log(
 | 
				
			||||||
 | 
					                    "info",
 | 
				
			||||||
 | 
					                    f"Removing alpha layer from {input_file} for compatibility with img2pdf"
 | 
				
			||||||
 | 
					                )
 | 
				
			||||||
 | 
					                with Image.open(input_file) as im:
 | 
				
			||||||
 | 
					                    background = Image.new('RGBA', im.size, (255, 255, 255))
 | 
				
			||||||
 | 
					                    background.alpha_composite(im)
 | 
				
			||||||
 | 
					                    background = background.convert('RGB')
 | 
				
			||||||
 | 
					                    background.save(input_file, format=im.format)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if dpi:
 | 
					            if dpi:
 | 
				
			||||||
                self.log(
 | 
					                self.log(
 | 
				
			||||||
                    "debug",
 | 
					                    "debug",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user