Add FilterType type
This commit is contained in:
@ -36,7 +36,7 @@ use libc::size_t;
|
|||||||
#[cfg(not(target_os = "freebsd"))]
|
#[cfg(not(target_os = "freebsd"))]
|
||||||
use libc::ssize_t;
|
use libc::ssize_t;
|
||||||
|
|
||||||
pub use bindings::{FilterType, GravityType};
|
pub use bindings::GravityType;
|
||||||
pub use conversions::ToMagick;
|
pub use conversions::ToMagick;
|
||||||
pub use result::MagickError;
|
pub use result::MagickError;
|
||||||
use result::Result;
|
use result::Result;
|
||||||
|
|||||||
45
src/types/filter_type.rs
Normal file
45
src/types/filter_type.rs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
use crate::bindings;
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
#[repr(u32)]
|
||||||
|
pub enum FilterType {
|
||||||
|
Undefined = bindings::FilterType_UndefinedFilter,
|
||||||
|
Point = bindings::FilterType_PointFilter,
|
||||||
|
Box = bindings::FilterType_BoxFilter,
|
||||||
|
Triangle = bindings::FilterType_TriangleFilter,
|
||||||
|
Hermite = bindings::FilterType_HermiteFilter,
|
||||||
|
Hann = bindings::FilterType_HannFilter,
|
||||||
|
Hamming = bindings::FilterType_HammingFilter,
|
||||||
|
Blackman = bindings::FilterType_BlackmanFilter,
|
||||||
|
Gaussian = bindings::FilterType_GaussianFilter,
|
||||||
|
Quadratic = bindings::FilterType_QuadraticFilter,
|
||||||
|
Cubic = bindings::FilterType_CubicFilter,
|
||||||
|
Catrom = bindings::FilterType_CatromFilter,
|
||||||
|
Mitchell = bindings::FilterType_MitchellFilter,
|
||||||
|
Jinc = bindings::FilterType_JincFilter,
|
||||||
|
Sinc = bindings::FilterType_SincFilter,
|
||||||
|
SincFast = bindings::FilterType_SincFastFilter,
|
||||||
|
Kaiser = bindings::FilterType_KaiserFilter,
|
||||||
|
Welch = bindings::FilterType_WelchFilter,
|
||||||
|
Parzen = bindings::FilterType_ParzenFilter,
|
||||||
|
Bohman = bindings::FilterType_BohmanFilter,
|
||||||
|
Bartlett = bindings::FilterType_BartlettFilter,
|
||||||
|
Lagrange = bindings::FilterType_LagrangeFilter,
|
||||||
|
Lanczos = bindings::FilterType_LanczosFilter,
|
||||||
|
LanczosSharp = bindings::FilterType_LanczosSharpFilter,
|
||||||
|
Lanczos2 = bindings::FilterType_Lanczos2Filter,
|
||||||
|
Lanczos2Sharp = bindings::FilterType_Lanczos2SharpFilter,
|
||||||
|
Robidoux = bindings::FilterType_RobidouxFilter,
|
||||||
|
RobidouxSharp = bindings::FilterType_RobidouxSharpFilter,
|
||||||
|
Cosine = bindings::FilterType_CosineFilter,
|
||||||
|
Spline = bindings::FilterType_SplineFilter,
|
||||||
|
LanczosRadius = bindings::FilterType_LanczosRadiusFilter,
|
||||||
|
CubicSpline = bindings::FilterType_CubicSplineFilter,
|
||||||
|
Sentinel = bindings::FilterType_SentinelFilter,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<FilterType> for bindings::FilterType {
|
||||||
|
fn from(value: FilterType) -> Self {
|
||||||
|
return value as bindings::FilterType;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,11 +1,13 @@
|
|||||||
mod colorspace_type;
|
mod colorspace_type;
|
||||||
mod composite_operator;
|
mod composite_operator;
|
||||||
mod dither_method;
|
mod dither_method;
|
||||||
|
mod filter_type;
|
||||||
mod metric_type;
|
mod metric_type;
|
||||||
mod resource_type;
|
mod resource_type;
|
||||||
|
|
||||||
pub use self::colorspace_type::ColorspaceType;
|
pub use self::colorspace_type::ColorspaceType;
|
||||||
pub use self::composite_operator::CompositeOperator;
|
pub use self::composite_operator::CompositeOperator;
|
||||||
pub use self::dither_method::DitherMethod;
|
pub use self::dither_method::DitherMethod;
|
||||||
|
pub use self::filter_type::FilterType;
|
||||||
pub use self::metric_type::MetricType;
|
pub use self::metric_type::MetricType;
|
||||||
pub use self::resource_type::ResourceType;
|
pub use self::resource_type::ResourceType;
|
||||||
|
|||||||
@ -33,6 +33,7 @@ use crate::{
|
|||||||
ColorspaceType,
|
ColorspaceType,
|
||||||
CompositeOperator,
|
CompositeOperator,
|
||||||
DitherMethod,
|
DitherMethod,
|
||||||
|
FilterType,
|
||||||
MetricType,
|
MetricType,
|
||||||
ResourceType
|
ResourceType
|
||||||
};
|
};
|
||||||
@ -780,9 +781,9 @@ impl MagickWand {
|
|||||||
|
|
||||||
/// Resize the image to the specified width and height, using the
|
/// Resize the image to the specified width and height, using the
|
||||||
/// specified filter type.
|
/// specified filter type.
|
||||||
pub fn resize_image(&self, width: usize, height: usize, filter: bindings::FilterType) {
|
pub fn resize_image(&self, width: usize, height: usize, filter: FilterType) {
|
||||||
unsafe {
|
unsafe {
|
||||||
bindings::MagickResizeImage(self.wand, width as size_t, height as size_t, filter);
|
bindings::MagickResizeImage(self.wand, width as size_t, height as size_t, filter.into());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -823,10 +824,10 @@ impl MagickWand {
|
|||||||
&self,
|
&self,
|
||||||
x_resolution: f64,
|
x_resolution: f64,
|
||||||
y_resolution: f64,
|
y_resolution: f64,
|
||||||
filter: bindings::FilterType,
|
filter: FilterType,
|
||||||
) {
|
) {
|
||||||
unsafe {
|
unsafe {
|
||||||
bindings::MagickResampleImage(self.wand, x_resolution, y_resolution, filter);
|
bindings::MagickResampleImage(self.wand, x_resolution, y_resolution, filter.into());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -54,7 +54,7 @@ fn test_resize_image() {
|
|||||||
1 => 1,
|
1 => 1,
|
||||||
height => height / 2,
|
height => height / 2,
|
||||||
};
|
};
|
||||||
wand.resize_image(halfwidth, halfheight, bindings::FilterType_LanczosFilter);
|
wand.resize_image(halfwidth, halfheight, magick_rust::FilterType::Lanczos);
|
||||||
assert_eq!(256, wand.get_image_width());
|
assert_eq!(256, wand.get_image_width());
|
||||||
assert_eq!(192, wand.get_image_height());
|
assert_eq!(192, wand.get_image_height());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user