pub trait Scaling {
// Required methods
fn set_threading_policy(&mut self, threading_policy: ThreadingPolicy);
fn resize_plane<'a>(
&'a self,
store: &ImageStore<'a, u8, 1>,
into: &mut ImageStoreMut<'a, u8, 1>,
) -> Result<(), PicScaleError>;
fn resize_cbcr8<'a>(
&'a self,
store: &ImageStore<'a, u8, 2>,
into: &mut ImageStoreMut<'a, u8, 2>,
) -> Result<(), PicScaleError>;
fn resize_gray_alpha<'a>(
&'a self,
store: &ImageStore<'a, u8, 2>,
into: &mut ImageStoreMut<'a, u8, 2>,
premultiply_alpha: bool,
) -> Result<(), PicScaleError>;
fn resize_rgb<'a>(
&'a self,
store: &ImageStore<'a, u8, 3>,
into: &mut ImageStoreMut<'a, u8, 3>,
) -> Result<(), PicScaleError>;
fn resize_rgba<'a>(
&'a self,
store: &ImageStore<'a, u8, 4>,
into: &mut ImageStoreMut<'a, u8, 4>,
premultiply_alpha: bool,
) -> Result<(), PicScaleError>;
}Expand description
8 bit-depth images scaling trait
Required Methods§
Sourcefn set_threading_policy(&mut self, threading_policy: ThreadingPolicy)
fn set_threading_policy(&mut self, threading_policy: ThreadingPolicy)
Sets threading policy
Setting up threading policy, refer to crate::ThreadingPolicy for more info
§Example
#[no_build]
use pic_scale::{ResamplingFunction, Scaler, Scaling, ThreadingPolicy};
let mut scaler = Scaler::new(ResamplingFunction::Bilinear);
scaler.set_threading_policy(ThreadingPolicy::Adaptive);Sourcefn resize_plane<'a>(
&'a self,
store: &ImageStore<'a, u8, 1>,
into: &mut ImageStoreMut<'a, u8, 1>,
) -> Result<(), PicScaleError>
fn resize_plane<'a>( &'a self, store: &ImageStore<'a, u8, 1>, into: &mut ImageStoreMut<'a, u8, 1>, ) -> Result<(), PicScaleError>
Performs rescaling for planar image
§Example
#[no_build]
use pic_scale::{ImageStore, ImageStoreMut, ResamplingFunction, Scaler, Scaling};
let mut scaler = Scaler::new(ResamplingFunction::Bilinear);
let src_store = ImageStore::alloc(100, 100);
let mut dst_store = ImageStoreMut::<u8, 1>::alloc(50, 50);
scaler.resize_plane(&src_store, &mut dst_store).unwrap();Sourcefn resize_cbcr8<'a>(
&'a self,
store: &ImageStore<'a, u8, 2>,
into: &mut ImageStoreMut<'a, u8, 2>,
) -> Result<(), PicScaleError>
fn resize_cbcr8<'a>( &'a self, store: &ImageStore<'a, u8, 2>, into: &mut ImageStoreMut<'a, u8, 2>, ) -> Result<(), PicScaleError>
Performs rescaling for CbCr8 ( or 2 interleaved channels )
Scales 2 interleaved channels as CbCr8, optionally it could handle LumaAlpha images also
§Example
#[no_build]
use pic_scale::{ImageStore, ImageStoreMut, ResamplingFunction, Scaler, Scaling};
let mut scaler = Scaler::new(ResamplingFunction::Bilinear);
let src_store = ImageStore::alloc(100, 100);
let mut dst_store = ImageStoreMut::<u8, 2>::alloc(50, 50);
scaler.resize_cbcr8(&src_store, &mut dst_store).unwrap();Sourcefn resize_gray_alpha<'a>(
&'a self,
store: &ImageStore<'a, u8, 2>,
into: &mut ImageStoreMut<'a, u8, 2>,
premultiply_alpha: bool,
) -> Result<(), PicScaleError>
fn resize_gray_alpha<'a>( &'a self, store: &ImageStore<'a, u8, 2>, into: &mut ImageStoreMut<'a, u8, 2>, premultiply_alpha: bool, ) -> Result<(), PicScaleError>
Performs rescaling for Gray Alpha ( or 2 interleaved channels with aloha )
Scales 2 interleaved channels as Gray Alpha
§Example
#[no_build]
use pic_scale::{ImageStore, ImageStoreMut, ResamplingFunction, Scaler, Scaling};
let mut scaler = Scaler::new(ResamplingFunction::Bilinear);
let src_store = ImageStore::alloc(100, 100);
let mut dst_store = ImageStoreMut::<u8, 2>::alloc(50, 50);
scaler.resize_gray_alpha(&src_store, &mut dst_store, true).unwrap();Sourcefn resize_rgb<'a>(
&'a self,
store: &ImageStore<'a, u8, 3>,
into: &mut ImageStoreMut<'a, u8, 3>,
) -> Result<(), PicScaleError>
fn resize_rgb<'a>( &'a self, store: &ImageStore<'a, u8, 3>, into: &mut ImageStoreMut<'a, u8, 3>, ) -> Result<(), PicScaleError>
Performs rescaling for RGB, channel order does not matter
§Example
#[no_build]
use pic_scale::{ImageStore, ImageStoreMut, ResamplingFunction, Scaler, Scaling};
let mut scaler = Scaler::new(ResamplingFunction::Bilinear);
let src_store = ImageStore::alloc(100, 100);
let mut dst_store = ImageStoreMut::<u8, 3>::alloc(50, 50);
scaler.resize_rgb(&src_store, &mut dst_store).unwrap();Sourcefn resize_rgba<'a>(
&'a self,
store: &ImageStore<'a, u8, 4>,
into: &mut ImageStoreMut<'a, u8, 4>,
premultiply_alpha: bool,
) -> Result<(), PicScaleError>
fn resize_rgba<'a>( &'a self, store: &ImageStore<'a, u8, 4>, into: &mut ImageStoreMut<'a, u8, 4>, premultiply_alpha: bool, ) -> Result<(), PicScaleError>
Performs rescaling for RGBA
This method may premultiply and un associate alpha if required. Alpha position is always considered as last
§Example
#[no_build]
use pic_scale::{ImageStore, ImageStoreMut, ResamplingFunction, Scaler, Scaling};
let mut scaler = Scaler::new(ResamplingFunction::Lanczos3);
let src_store = ImageStore::alloc(100, 100);
let mut dst_store = ImageStoreMut::<u8, 4>::alloc(50, 50);
scaler.resize_rgba(&src_store, &mut dst_store, false).unwrap();Implementors§
impl Scaling for JzazbzScaler
Available on crate feature
colorspaces only.impl Scaling for LChScaler
Available on crate feature
colorspaces only.impl Scaling for LabScaler
Available on crate feature
colorspaces only.impl Scaling for LinearApproxScaler
Available on crate feature
colorspaces only.impl Scaling for LinearScaler
Available on crate feature
colorspaces only.impl Scaling for LuvScaler
Available on crate feature
colorspaces only.impl Scaling for OklabScaler
Available on crate feature
colorspaces only.impl Scaling for Scaler
impl Scaling for SigmoidalScaler
Available on crate feature
colorspaces only.impl Scaling for XYZScaler
Available on crate feature
colorspaces only.