From a277b7cfe73bdb2ab8499775f9ff57d727b281c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20R=C3=B6nnkvist?= Date: Mon, 20 Apr 2020 08:45:52 +0200 Subject: [PATCH] feat: MagickFxImage bindning New macro to create a new wand from another wand. --- src/wand/macros.rs | 4 ++++ src/wand/magick.rs | 6 ++++++ 2 files changed, 10 insertions(+) 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 f710a07..0152045 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 {