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
|
||||
/// (x,y) offset of the geometry to move the original wand relative to the extended wand.
|
||||
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[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