File size: 1,341 Bytes
5c809d3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
34
35
36
37
38
39
40
from PIL import Image
import io
import logging
from datetime import datetime

logger = logging.getLogger(__name__)

def remove_background(image_data):
    start_time = datetime.now()
    logger.info(f"Removing background - {start_time}")
    
    try:
        # Try to import rembg
        try:
            from rembg import remove
            logger.info("rembg module imported successfully")
        except ImportError:
            logger.error("rembg module not found!")
            raise ImportError('rembg library not installed')
            
        input_image = Image.open(io.BytesIO(image_data))
        logger.info(f"Image opened. Mode: {input_image.mode}, Size: {input_image.size}")
        
        if input_image.mode != 'RGB':
            logger.info("Converting image to RGB...")
            input_image = input_image.convert('RGB')
            
        logger.info("Removing background...")
        output_image = remove(input_image)
        
        img_io = io.BytesIO()
        output_image.save(img_io, 'PNG')
        img_io.seek(0)
        
        duration = (datetime.now() - start_time).total_seconds()
        logger.info(f"Successfully processed. Duration: {duration} seconds")
        return img_io
    except Exception as e:
        logger.error(f"Background removal error: {str(e)}", exc_info=True)
        raise