Files
IKT213-photo-app/src/ImageManipulation/ImageManipulation.py
2025-10-27 10:59:19 +01:00

40 lines
1.0 KiB
Python

from abc import ABC, abstractmethod
from typing import Any
from ImageContainer import ImageContainer
class ImageManipulation(ABC):
"""Abstract base class for image manipulation operations."""
@abstractmethod
def manipulateImage(self, image: ImageContainer, parameters: Any) -> ImageContainer:
"""
Manipulate the given image using the provided parameters.
Args:
image: The image to manipulate
parameters: Parameters for the manipulation
Returns: The manipulated image
"""
pass
@abstractmethod
def getParameters(self) -> list[str]:
"""
Get the list of parameters required for this manipulation.
Returns:
List of parameter names
"""
pass
@abstractmethod
def getManipulationName(self) -> str:
"""
Get the name of this manipulation operation.
Returns:
The name of the manipulation
"""
pass