diff --git a/src/wand/macros.rs b/src/wand/macros.rs index eff0d2b..abbdcfe 100644 --- a/src/wand/macros.rs +++ b/src/wand/macros.rs @@ -29,6 +29,10 @@ macro_rules! wand_common { } } + pub fn new_from_wand(wand: *mut ::bindings::$wand) -> Self { + $wand { wand } + } + fn clear(&mut self) { unsafe { ::bindings::$clear_wand(self.wand) } } diff --git a/src/wand/magick.rs b/src/wand/magick.rs index f4ad54b..1acbdc0 100644 --- a/src/wand/magick.rs +++ b/src/wand/magick.rs @@ -243,6 +243,12 @@ impl MagickWand { } } + pub fn fx(&mut self, expression: &str) -> MagickWand { + let c_expression = CString::new(expression).unwrap(); + let wand = unsafe { bindings::MagickFxImage(self.wand, c_expression.as_ptr()) }; + MagickWand::new_from_wand(wand) + } + pub fn set_size(&self, columns: size_t, rows: size_t) -> Result<(), &'static str> { let result = unsafe { bindings::MagickSetSize(self.wand, columns, rows) }; match result {