40 lines
1.0 KiB
Python
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
|