Files
2025-12-14 18:48:06 +03:00

61 lines
1.9 KiB
Python

from utils.loggers import logger
def saveImage(file_bytes: bytes, file_name: str) -> bool:
import os
from PIL import Image
import io
# Убедимся, что путь существует
file_name = f"api/{file_name}"
os.makedirs(os.path.dirname(file_name), exist_ok=True)
# Загружаем изображение
try:
img = Image.open(io.BytesIO(file_bytes))
img.load()
except Exception as e:
logger.error(f"[ImageSave] Unsupported image format: {e}")
return False
# Конвертация в нормальный режим (PNG поддерживает RGBA/RGB)
try:
if img.mode not in ("RGB", "RGBA"):
img = img.convert("RGB")
except Exception as e:
logger.error(f"[ImageSave] Mode conversion error: {e}")
return False
# Сохраняем как PNG
try:
target_path = file_name
if not target_path.lower().endswith(".png"):
target_path += ".png"
logger.debug(f"[ImageSave] Saving image to {target_path}")
img.save(target_path, "PNG")
if not os.path.isfile(target_path):
logger.error(f"[ImageSave] File {target_path} not found")
return False
return True
except Exception as e:
logger.error(f"[ImageSave] Error saving image: {e}")
return False
def deleteImage(fileName: str):
if fileName.endswith("default.png"):
return True
try:
import os
fileName = f"api/{fileName}"
logger.debug(f"Удаляем изображение {fileName}")
os.remove(fileName)
logger.debug(f"Изображение {fileName} успешно удалено")
return True
except Exception as e:
logger.error(f"Ошибка удаления изображения: {str(e)}")
return False