import zstd
from PIL import Image
import io

def compress_data(data, method="zstd", level=22):
    """
    Comprime los datos utilizando el método especificado.
    """
    if method == "zstd":
        return zstd.compress(data, level)
    elif method == "image":
        try:
            image = Image.open(io.BytesIO(data))
            output = io.BytesIO()
            image.save(output, format="PNG")
            return output.getvalue()
        except Exception as e:
            print(f"Error al comprimir imagen: {e}")
            return data
    else:
        return data

def decompress_data(data, method="zstd"):
    """
    Descomprime los datos utilizando el método especificado.
    """
    if method == "zstd":
        return zstd.decompress(data)
    else:
        return data
