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 |