@ -28,7 +28,7 @@ use {size_t, ssize_t};
|
||||
|
||||
use crate::result::Result;
|
||||
|
||||
use super::{DrawingWand, PixelWand};
|
||||
use super::{CompositeOperator, DrawingWand, PixelWand};
|
||||
|
||||
wand_common!(
|
||||
MagickWand,
|
||||
@ -232,11 +232,24 @@ impl MagickWand {
|
||||
(distortion, wand)
|
||||
}
|
||||
|
||||
pub fn get_image_compose(&self) -> CompositeOperator {
|
||||
unsafe { bindings::MagickGetImageCompose(self.wand).into() }
|
||||
}
|
||||
|
||||
pub fn set_image_compose(&self, composite_operator: CompositeOperator) -> Result<()> {
|
||||
match unsafe { bindings::MagickSetImageCompose(self.wand, composite_operator.into()) } {
|
||||
bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||
_ => Err(MagickError(
|
||||
"Failed to set the image composite operator type",
|
||||
)),
|
||||
}
|
||||
}
|
||||
|
||||
/// Compose another image onto self at (x, y) using composition_operator
|
||||
pub fn compose_images(
|
||||
&self,
|
||||
reference: &MagickWand,
|
||||
composition_operator: bindings::CompositeOperator,
|
||||
composition_operator: CompositeOperator,
|
||||
clip_to_self: bool,
|
||||
x: isize,
|
||||
y: isize,
|
||||
@ -250,7 +263,7 @@ impl MagickWand {
|
||||
bindings::MagickCompositeImage(
|
||||
self.wand,
|
||||
reference.wand,
|
||||
composition_operator,
|
||||
composition_operator.into(),
|
||||
native_clip_to_self,
|
||||
x,
|
||||
y,
|
||||
@ -266,14 +279,14 @@ impl MagickWand {
|
||||
pub fn compose_images_gravity(
|
||||
&self,
|
||||
reference: &MagickWand,
|
||||
composition_operator: bindings::CompositeOperator,
|
||||
composition_operator: CompositeOperator,
|
||||
gravity_type: bindings::GravityType,
|
||||
) -> Result<()> {
|
||||
let result = unsafe {
|
||||
bindings::MagickCompositeImageGravity(
|
||||
self.wand,
|
||||
reference.wand,
|
||||
composition_operator,
|
||||
composition_operator.into(),
|
||||
gravity_type,
|
||||
)
|
||||
};
|
||||
@ -973,10 +986,10 @@ impl MagickWand {
|
||||
pixel_wand: &PixelWand,
|
||||
width: usize,
|
||||
height: usize,
|
||||
compose: bindings::CompositeOperator,
|
||||
compose: CompositeOperator,
|
||||
) -> Result<()> {
|
||||
match unsafe {
|
||||
bindings::MagickBorderImage(self.wand, pixel_wand.wand, width, height, compose)
|
||||
bindings::MagickBorderImage(self.wand, pixel_wand.wand, width, height, compose.into())
|
||||
} {
|
||||
bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||
|
||||
@ -1110,7 +1123,6 @@ impl MagickWand {
|
||||
get_compression_quality, set_compression_quality, MagickGetCompressionQuality, MagickSetCompressionQuality, size_t
|
||||
get_gravity, set_gravity, MagickGetGravity, MagickSetGravity, bindings::GravityType
|
||||
get_image_colorspace, set_image_colorspace, MagickGetImageColorspace, MagickSetImageColorspace, bindings::ColorspaceType
|
||||
get_image_compose, set_image_compose, MagickGetImageCompose, MagickSetImageCompose, bindings::CompositeOperator
|
||||
get_image_compression, set_image_compression, MagickGetImageCompression, MagickSetImageCompression, bindings::CompressionType
|
||||
get_image_compression_quality, set_image_compression_quality, MagickGetImageCompressionQuality, MagickSetImageCompressionQuality, size_t
|
||||
get_image_delay, set_image_delay, MagickGetImageDelay, MagickSetImageDelay, size_t
|
||||
|
||||
Reference in New Issue
Block a user