From: cristy Date: Tue, 31 Jan 2012 20:14:01 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~6278 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6fee7fb9d4f334471f72a84f03df5f8172272794;p=imagemagick --- diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp index 8fdb1391a..6312e745d 100644 --- a/Magick++/lib/Image.cpp +++ b/Magick++/lib/Image.cpp @@ -1954,6 +1954,19 @@ void Magick::Image::shade ( const double azimuth_, (void) DestroyExceptionInfo( &exceptionInfo ); } +// Charcoal-effect image +void Magick::Image::shadow( const double percent_opacity_, const double sigma_, + const ssize_t x_, const ssize_t y_ ) +{ + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); + MagickCore::Image* newImage = ShadowImage( image(), percent_opacity_, sigma_, + image()->bias, x_, y_, &exceptionInfo ); + replaceImage( newImage ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); +} + // Sharpen pixels in image void Magick::Image::sharpen ( const double radius_, const double sigma_ ) { diff --git a/Magick++/lib/Magick++/Image.h b/Magick++/lib/Magick++/Image.h index 72ab3680f..7b90864a4 100644 --- a/Magick++/lib/Magick++/Image.h +++ b/Magick++/lib/Magick++/Image.h @@ -607,6 +607,12 @@ namespace Magick const double elevation_ = 30, const bool colorShading_ = false ); + // simulate an image shadow + void shadow ( const double radius_ = 0.0, + const double sigma_ = 1.0, + const ssize_t x_ = 0, + const ssize_t y_ = 0 ); + // Sharpen pixels in image // The radius_ parameter specifies the radius of the Gaussian, in // pixels, not counting the center pixel. The sigma_ parameter diff --git a/Magick++/lib/Magick++/Include.h b/Magick++/lib/Magick++/Include.h index 6e0e681bf..932154af2 100644 --- a/Magick++/lib/Magick++/Include.h +++ b/Magick++/lib/Magick++/Include.h @@ -893,6 +893,7 @@ namespace Magick using MagickCore::SetPixelChannelMask; using MagickCore::SetStringInfoDatum; using MagickCore::ShadeImage; + using MagickCore::ShadowImage; using MagickCore::SharpenImage; using MagickCore::SharpenImage; using MagickCore::ShaveImage; diff --git a/Magick++/lib/Magick++/STL.h b/Magick++/lib/Magick++/STL.h index f7a71f54a..3cb6e94cd 100644 --- a/Magick++/lib/Magick++/STL.h +++ b/Magick++/lib/Magick++/STL.h @@ -960,6 +960,22 @@ namespace Magick bool _colorShading; }; + // Shadow effect image (simulate an image shadow) + class MagickPPExport shadowImage : public std::unary_function + { + public: + shadowImage( const double percent_opacity_ = 80, const double sigma_ = 0.5, + const ssize_t x_ = 5, const ssize_t y_ = 5 ); + + void operator()( Image &image_ ) const; + + private: + double _percent_opacity; + double _sigma; + ssize_t _x; + ssize_t _y; + }; + // Sharpen pixels in image class MagickPPExport sharpenImage : public std::unary_function {