pub trait ImageBackend: Sync {
// Required methods
fn identify(&self, path: &Path) -> Result<Dimensions, BackendError>;
fn read_metadata(&self, path: &Path) -> Result<ImageMetadata, BackendError>;
fn resize(&self, params: &ResizeParams) -> Result<(), BackendError>;
fn thumbnail(&self, params: &ThumbnailParams) -> Result<(), BackendError>;
}Expand description
Trait for image processing backends.
Every backend must implement all four operations — identify, read_metadata, resize, and thumbnail — so the rest of the codebase is backend-agnostic. See the module docs for the parity table.
Required Methods§
Sourcefn identify(&self, path: &Path) -> Result<Dimensions, BackendError>
fn identify(&self, path: &Path) -> Result<Dimensions, BackendError>
Get image dimensions.
Sourcefn read_metadata(&self, path: &Path) -> Result<ImageMetadata, BackendError>
fn read_metadata(&self, path: &Path) -> Result<ImageMetadata, BackendError>
Read embedded IPTC/EXIF metadata (title, description).
Sourcefn resize(&self, params: &ResizeParams) -> Result<(), BackendError>
fn resize(&self, params: &ResizeParams) -> Result<(), BackendError>
Execute a resize operation.
Sourcefn thumbnail(&self, params: &ThumbnailParams) -> Result<(), BackendError>
fn thumbnail(&self, params: &ThumbnailParams) -> Result<(), BackendError>
Execute a thumbnail operation (resize + center crop).