Merge pull request #56 from Storykit/feature/clut_image
Binding for MagickClutImage
This commit is contained in:
@ -230,6 +230,27 @@ impl MagickWand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Replaces colors in the image from a color lookup table.
|
||||||
|
pub fn clut_image(
|
||||||
|
&self,
|
||||||
|
clut_wand: &MagickWand,
|
||||||
|
method: bindings::PixelInterpolateMethod,
|
||||||
|
) -> Result<(), &'static str> {
|
||||||
|
let result = unsafe { bindings::MagickClutImage(self.wand, clut_wand.wand, method) };
|
||||||
|
match result {
|
||||||
|
bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||||
|
_ => Err("failed to replace colors in the image from color lookup table"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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 {
|
||||||
|
bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||||
|
_ => Err("failed to set size of wand"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Extend the image as defined by the geometry, gravity, and wand background color. Set the
|
/// Extend the image as defined by the geometry, gravity, and wand background color. Set the
|
||||||
/// (x,y) offset of the geometry to move the original wand relative to the extended wand.
|
/// (x,y) offset of the geometry to move the original wand relative to the extended wand.
|
||||||
pub fn extend_image(
|
pub fn extend_image(
|
||||||
|
|||||||
27
tests/lib.rs
27
tests/lib.rs
@ -319,3 +319,30 @@ fn test_set_background_color() {
|
|||||||
assert_eq!(0u8, blob[2]);
|
assert_eq!(0u8, blob[2]);
|
||||||
assert_eq!(0u8, blob[3]);
|
assert_eq!(0u8, blob[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_set_size() {
|
||||||
|
let wand = MagickWand::new();
|
||||||
|
assert!(wand.set_size(100, 100).is_ok());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_clut_image() {
|
||||||
|
START.call_once(|| {
|
||||||
|
magick_wand_genesis();
|
||||||
|
});
|
||||||
|
let wand = MagickWand::new();
|
||||||
|
assert!(wand.read_image("tests/data/IMG_5745.JPG").is_ok());
|
||||||
|
|
||||||
|
let mut gradient = MagickWand::new();
|
||||||
|
assert!(gradient.set_size(128, 20).is_ok());
|
||||||
|
assert!(gradient.set_option("gradient:angle", "90").is_ok());
|
||||||
|
assert!(gradient.read_image("gradient:black-yellow").is_ok());
|
||||||
|
|
||||||
|
assert!(wand
|
||||||
|
.clut_image(
|
||||||
|
&gradient,
|
||||||
|
bindings::PixelInterpolateMethod_BilinearInterpolatePixel
|
||||||
|
)
|
||||||
|
.is_ok());
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user