• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // This may look like C code, but it is really -*- C++ -*-
2 //
3 // Copyright Bob Friesenhahn, 1999, 2002
4 // Copyright Dirk Lemstra 2013-2016
5 //
6 // Implementation of STL classes and functions
7 //
8 
9 #define MAGICKCORE_IMPLEMENTATION  1
10 #define MAGICK_PLUSPLUS_IMPLEMENTATION 1
11 
12 #include <Magick++/Functions.h>
13 #include <Magick++/Image.h>
14 #include <Magick++/STL.h>
15 
16 // Adaptive-blur image with specified blur factor
adaptiveBlurImage(const double radius_,const double sigma_)17 Magick::adaptiveBlurImage::adaptiveBlurImage( const double radius_,
18       const double sigma_  )
19       : _radius( radius_ ),
20         _sigma( sigma_ )
21 {
22 }
operator ()(Magick::Image & image_) const23 void Magick::adaptiveBlurImage::operator()( Magick::Image &image_ ) const
24 {
25   image_.adaptiveBlur( _radius, _sigma );
26 }
27 
28 // Local adaptive threshold image
adaptiveThresholdImage(const size_t width_,const size_t height_,const ssize_t offset_)29 Magick::adaptiveThresholdImage::adaptiveThresholdImage( const size_t width_,
30                                                         const size_t height_,
31                                                         const ssize_t offset_ )
32       : _width(width_),
33         _height(height_),
34         _offset(offset_)
35 {
36 }
operator ()(Magick::Image & image_) const37 void Magick::adaptiveThresholdImage::operator()( Magick::Image &image_ ) const
38 {
39   image_.adaptiveThreshold( _width, _height, _offset );
40 }
41 
42 // Add noise to image with specified noise type
addNoiseImage(Magick::NoiseType noiseType_)43 Magick::addNoiseImage::addNoiseImage( Magick::NoiseType noiseType_ )
44   : _noiseType( noiseType_ )
45 {
46 }
operator ()(Magick::Image & image_) const47 void Magick::addNoiseImage::operator()( Magick::Image &image_ ) const
48 {
49   image_.addNoise( _noiseType );
50 }
51 
52 // Transform image by specified affine (or free transform) matrix.
affineTransformImage(const DrawableAffine & affine_)53 Magick::affineTransformImage::affineTransformImage( const DrawableAffine &affine_  )
54   : _affine( affine_ )
55 {
56 }
operator ()(Magick::Image & image_) const57 void Magick::affineTransformImage::operator()( Magick::Image &image_ ) const
58 {
59   image_.affineTransform( _affine );
60 }
61 
62 // Annotate image (draw text on image)
63 
64 // Annotate using specified text, and placement location
annotateImage(const std::string & text_,const Magick::Geometry & geometry_)65 Magick::annotateImage::annotateImage ( const std::string &text_,
66                                        const Magick::Geometry &geometry_ )
67       : _text( text_ ),
68 	_geometry( geometry_ ),
69 	_gravity( Magick::NorthWestGravity ),
70         _degrees( 0 )
71 {
72 }
73 // Annotate using specified text, bounding area, and placement gravity
annotateImage(const std::string & text_,const Magick::Geometry & geometry_,const Magick::GravityType gravity_)74 Magick::annotateImage::annotateImage ( const std::string &text_,
75                                        const Magick::Geometry &geometry_,
76                                        const Magick::GravityType gravity_ )
77   : _text( text_ ),
78     _geometry( geometry_ ),
79     _gravity( gravity_ ),
80     _degrees( 0 )
81 {
82 }
83 // Annotate with text using specified text, bounding area, placement
84 // gravity, and rotation.
annotateImage(const std::string & text_,const Magick::Geometry & geometry_,const Magick::GravityType gravity_,const double degrees_)85 Magick::annotateImage::annotateImage ( const std::string &text_,
86                     const Magick::Geometry &geometry_,
87                     const Magick::GravityType gravity_,
88                     const double degrees_ )
89       : _text( text_ ),
90         _geometry( geometry_ ),
91         _gravity( gravity_ ),
92         _degrees( degrees_ )
93 {
94 }
95 // Annotate with text (bounding area is entire image) and placement
96 // gravity.
annotateImage(const std::string & text_,const Magick::GravityType gravity_)97 Magick::annotateImage::annotateImage ( const std::string &text_,
98                                        const Magick::GravityType gravity_ )
99   : _text( text_ ),
100     _geometry( ),
101     _gravity( gravity_ ),
102     _degrees( 0 )
103 {
104 }
operator ()(Magick::Image & image_) const105 void Magick::annotateImage::operator()( Magick::Image &image_ ) const
106 {
107   image_.annotate( _text, _geometry, _gravity, _degrees );
108 }
109 
110 // Blur image with specified blur factor
blurImage(const double radius_,const double sigma_)111 Magick::blurImage::blurImage( const double radius_, const double sigma_  )
112       : _radius( radius_ ),
113         _sigma( sigma_ )
114 {
115 }
operator ()(Magick::Image & image_) const116 void Magick::blurImage::operator()( Magick::Image &image_ ) const
117 {
118   image_.blur( _radius, _sigma );
119 }
120 
121 // Border image (add border to image)
borderImage(const Magick::Geometry & geometry_)122 Magick::borderImage::borderImage( const Magick::Geometry &geometry_ )
123   : _geometry( geometry_ )
124 {
125 }
operator ()(Magick::Image & image_) const126 void Magick::borderImage::operator()( Magick::Image &image_ ) const
127 {
128   image_.border( _geometry );
129 }
130 
131 // Extract channel from image
channelImage(const Magick::ChannelType channel_)132 Magick::channelImage::channelImage( const Magick::ChannelType channel_ )
133   : _channel( channel_ )
134 {
135 }
operator ()(Magick::Image & image_) const136 void Magick::channelImage::operator()( Magick::Image &image_ ) const
137 {
138   image_.channel( _channel );
139 }
140 
141 // Charcoal effect image (looks like charcoal sketch)
charcoalImage(const double radius_,const double sigma_)142 Magick::charcoalImage::charcoalImage( const double radius_, const double sigma_ )
143       : _radius( radius_ ),
144         _sigma( sigma_ )
145 {
146 }
operator ()(Magick::Image & image_) const147 void Magick::charcoalImage::operator()( Magick::Image &image_ ) const
148 {
149   image_.charcoal( _radius, _sigma );
150 }
151 
152 // Chop image (remove vertical or horizontal subregion of image)
chopImage(const Magick::Geometry & geometry_)153 Magick::chopImage::chopImage( const Magick::Geometry &geometry_ )
154   : _geometry( geometry_ )
155 {
156 }
operator ()(Magick::Image & image_) const157 void Magick::chopImage::operator()( Magick::Image &image_ ) const
158 {
159   image_.chop( _geometry );
160 }
161 
162 // accepts a lightweight Color Correction Collection (CCC) file which solely
163 // contains one or more color corrections and applies the correction to the
164 // image.
cdlImage(const std::string & cdl_)165 Magick::cdlImage::cdlImage( const std::string &cdl_ )
166   : _cdl ( cdl_ )
167 {
168 }
operator ()(Image & image_) const169 void Magick::cdlImage::operator()( Image &image_ ) const
170 {
171   image_.cdl( _cdl.c_str() );
172 }
173 
174 // Colorize image using pen color at specified percent alpha
colorizeImage(const unsigned int alphaRed_,const unsigned int alphaGreen_,const unsigned int alphaBlue_,const Magick::Color & penColor_)175 Magick::colorizeImage::colorizeImage( const unsigned int alphaRed_,
176                                       const unsigned int alphaGreen_,
177                                       const unsigned int alphaBlue_,
178                                       const Magick::Color &penColor_ )
179   : _alphaRed ( alphaRed_ ),
180     _alphaGreen ( alphaGreen_ ),
181     _alphaBlue ( alphaBlue_ ),
182     _penColor( penColor_ )
183 {
184 }
colorizeImage(const unsigned int alpha_,const Magick::Color & penColor_)185 Magick::colorizeImage::colorizeImage( const unsigned int alpha_,
186                                       const Magick::Color &penColor_ )
187   : _alphaRed ( alpha_ ),
188     _alphaGreen ( alpha_ ),
189     _alphaBlue ( alpha_ ),
190     _penColor( penColor_ )
191 {
192 }
operator ()(Magick::Image & image_) const193 void Magick::colorizeImage::operator()( Magick::Image &image_ ) const
194 {
195   image_.colorize( _alphaRed, _alphaGreen, _alphaBlue, _penColor );
196 }
197 
198 // Apply a color matrix to the image channels.  The user supplied
199 // matrix may be of order 1 to 5 (1x1 through 5x5).
colorMatrixImage(const size_t order_,const double * color_matrix_)200 Magick::colorMatrixImage::colorMatrixImage( const size_t order_,
201               const double *color_matrix_ )
202   : _order( order_ ),
203     _color_matrix( color_matrix_ )
204 {
205 }
operator ()(Image & image_) const206 void Magick::colorMatrixImage::operator()( Image &image_ ) const
207 {
208   image_.colorMatrix( _order, _color_matrix );
209 }
210 
211 // Convert the image colorspace representation
colorSpaceImage(Magick::ColorspaceType colorSpace_)212 Magick::colorSpaceImage::colorSpaceImage( Magick::ColorspaceType colorSpace_ )
213   : _colorSpace( colorSpace_ )
214 {
215 }
operator ()(Magick::Image & image_) const216 void Magick::colorSpaceImage::operator()( Magick::Image &image_ ) const
217 {
218   image_.colorSpace( _colorSpace );
219 }
220 
221 // Comment image (add comment string to image)
commentImage(const std::string & comment_)222 Magick::commentImage::commentImage( const std::string &comment_ )
223   : _comment( comment_ )
224 {
225 }
operator ()(Magick::Image & image_) const226 void Magick::commentImage::operator()( Magick::Image &image_ ) const
227 {
228   image_.comment( _comment );
229 }
230 
231 // Compose an image onto another at specified offset and using
232 // specified algorithm
compositeImage(const Magick::Image & compositeImage_,ssize_t xOffset_,ssize_t yOffset_,Magick::CompositeOperator compose_)233 Magick::compositeImage::compositeImage( const Magick::Image &compositeImage_,
234                                         ssize_t xOffset_,
235                                         ssize_t yOffset_,
236                                         Magick::CompositeOperator compose_  )
237   : _compositeImage( compositeImage_ ),
238     _xOffset ( xOffset_ ),
239     _yOffset ( yOffset_ ),
240     _compose ( compose_ )
241 {
242 }
compositeImage(const Magick::Image & compositeImage_,const Magick::Geometry & offset_,Magick::CompositeOperator compose_)243 Magick::compositeImage::compositeImage( const Magick::Image &compositeImage_,
244                                         const Magick::Geometry &offset_,
245                                         Magick::CompositeOperator compose_  )
246   : _compositeImage( compositeImage_ ),
247     _xOffset ( offset_.xOff() ),
248     _yOffset ( offset_.yOff() ),
249     _compose ( compose_ )
250 {
251 }
operator ()(Image & image_) const252 void Magick::compositeImage::operator()( Image &image_ ) const
253 {
254   image_.composite( _compositeImage, _xOffset, _yOffset, _compose );
255 }
256 
257 // Contrast image (enhance intensity differences in image)
contrastImage(const size_t sharpen_)258 Magick::contrastImage::contrastImage( const size_t sharpen_ )
259   : _sharpen( sharpen_ )
260 {
261 }
operator ()(Magick::Image & image_) const262 void Magick::contrastImage::operator()( Magick::Image &image_ ) const
263 {
264   image_.contrast( _sharpen );
265 }
266 
267 // Crop image (subregion of original image)
cropImage(const Magick::Geometry & geometry_)268 Magick::cropImage::cropImage( const Magick::Geometry &geometry_ )
269   : _geometry( geometry_ )
270 {
271 }
operator ()(Magick::Image & image_) const272 void Magick::cropImage::operator()( Magick::Image &image_ ) const
273 {
274   image_.crop( _geometry );
275 }
276 
277 // Cycle image colormap
cycleColormapImage(const ssize_t amount_)278 Magick::cycleColormapImage::cycleColormapImage( const ssize_t amount_ )
279   : _amount( amount_ )
280 {
281 }
operator ()(Magick::Image & image_) const282 void Magick::cycleColormapImage::operator()( Magick::Image &image_ ) const
283 {
284   image_.cycleColormap( _amount );
285 }
286 
287 // Despeckle image (reduce speckle noise)
despeckleImage(void)288 Magick::despeckleImage::despeckleImage( void )
289 {
290 }
operator ()(Magick::Image & image_) const291 void Magick::despeckleImage::operator()( Magick::Image &image_ ) const
292 {
293   image_.despeckle( );
294 }
295 
296 // Distort image.  distorts an image using various distortion methods, by
297 // mapping color lookups of the source image to a new destination image
298 // usally of the same size as the source image, unless 'bestfit' is set to
299 // true.
distortImage(const Magick::DistortMethod method_,const size_t number_arguments_,const double * arguments_,const bool bestfit_)300 Magick::distortImage::distortImage( const Magick::DistortMethod method_,
301                                     const size_t number_arguments_,
302                                     const double *arguments_,
303                                     const bool bestfit_ )
304   : _method ( method_ ),
305     _number_arguments ( number_arguments_ ),
306     _arguments ( arguments_ ),
307     _bestfit( bestfit_ )
308 {
309 }
distortImage(const Magick::DistortMethod method_,const size_t number_arguments_,const double * arguments_)310 Magick::distortImage::distortImage( const Magick::DistortMethod method_,
311                                     const size_t number_arguments_,
312                                     const double *arguments_ )
313   : _method ( method_ ),
314     _number_arguments ( number_arguments_ ),
315     _arguments ( arguments_ ),
316     _bestfit( false )
317 {
318 }
operator ()(Magick::Image & image_) const319 void Magick::distortImage::operator()( Magick::Image &image_ ) const
320 {
321   image_.distort( _method, _number_arguments, _arguments, _bestfit );
322 }
323 
324 // Draw on image
drawImage(const Magick::Drawable & drawable_)325 Magick::drawImage::drawImage( const Magick::Drawable &drawable_ )
326   : _drawableList()
327 {
328   _drawableList.push_back( drawable_ );
329 }
drawImage(const std::vector<Magick::Drawable> & drawable_)330 Magick::drawImage::drawImage( const std::vector<Magick::Drawable> &drawable_ )
331   : _drawableList( drawable_ )
332 {
333 }
operator ()(Magick::Image & image_) const334 void Magick::drawImage::operator()( Magick::Image &image_ ) const
335 {
336   image_.draw( _drawableList );
337 }
338 
339 // Edge image (hilight edges in image)
edgeImage(const double radius_)340 Magick::edgeImage::edgeImage( const double radius_ )
341   : _radius( radius_ )
342 {
343 }
operator ()(Magick::Image & image_) const344 void Magick::edgeImage::operator()( Magick::Image &image_ ) const
345 {
346   image_.edge( _radius );
347 }
348 
349 // Emboss image (hilight edges with 3D effect)
embossImage(void)350 Magick::embossImage::embossImage( void )
351   : _radius( 1 ),
352     _sigma( 0.5 )
353 {
354 }
embossImage(const double radius_,const double sigma_)355 Magick::embossImage::embossImage( const double radius_, const double sigma_ )
356   : _radius( radius_ ),
357     _sigma( sigma_ )
358 {
359 }
operator ()(Magick::Image & image_) const360 void Magick::embossImage::operator()( Magick::Image &image_ ) const
361 {
362   image_.emboss( _radius, _sigma );
363 }
364 
365 // Enhance image (minimize noise)
enhanceImage(void)366 Magick::enhanceImage::enhanceImage( void )
367 {
368 }
operator ()(Magick::Image & image_) const369 void Magick::enhanceImage::operator()( Magick::Image &image_ ) const
370 {
371   image_.enhance( );
372 }
373 
374 // Equalize image (histogram equalization)
equalizeImage(void)375 Magick::equalizeImage::equalizeImage( void )
376 {
377 }
operator ()(Magick::Image & image_) const378 void Magick::equalizeImage::operator()( Magick::Image &image_ ) const
379 {
380   image_.equalize( );
381 }
382 
383 // Color to use when filling drawn objects
fillColorImage(const Magick::Color & fillColor_)384 Magick::fillColorImage::fillColorImage( const Magick::Color &fillColor_ )
385   : _fillColor( fillColor_ )
386 {
387 }
operator ()(Magick::Image & image_) const388 void Magick::fillColorImage::operator()( Magick::Image &image_ ) const
389 {
390   image_.fillColor( _fillColor );
391 }
392 
393 // Flip image (reflect each scanline in the vertical direction)
flipImage(void)394 Magick::flipImage::flipImage( void )
395 {
396 }
operator ()(Magick::Image & image_) const397 void Magick::flipImage::operator()( Magick::Image &image_ ) const
398 {
399   image_.flip( );
400 }
401 
floodFillAlphaImage(const ssize_t x_,const ssize_t y_,const unsigned int alpha_,const Color & target_,const bool invert_)402 Magick::floodFillAlphaImage::floodFillAlphaImage(const ssize_t x_,
403   const ssize_t y_,const unsigned int alpha_,const Color &target_,
404   const bool invert_)
405   : _target(target_),
406     _alpha(alpha_),
407     _x(x_),
408     _y(y_),
409     _invert(invert_)
410 {
411 }
412 
operator ()(Magick::Image & image_) const413 void Magick::floodFillAlphaImage::operator()(Magick::Image &image_) const
414 {
415   image_.floodFillAlpha(_x,_y,_alpha,_target,_invert);
416 }
417 
floodFillColorImage(const ssize_t x_,const ssize_t y_,const Magick::Color & fillColor_,const bool invert_)418 Magick::floodFillColorImage::floodFillColorImage(const ssize_t x_,
419   const ssize_t y_,const Magick::Color &fillColor_,const bool invert_)
420   : _x(x_),
421     _y(y_),
422     _fillColor(fillColor_),
423     _borderColor(),
424     _invert(invert_)
425 {
426 }
427 
floodFillColorImage(const Magick::Geometry & point_,const Magick::Color & fillColor_,const bool invert_)428 Magick::floodFillColorImage::floodFillColorImage(
429   const Magick::Geometry &point_,const Magick::Color &fillColor_,
430   const bool invert_)
431   : _x(point_.xOff()),
432     _y(point_.yOff()),
433     _fillColor(fillColor_),
434     _borderColor(),
435     _invert(invert_)
436 {
437 }
438 
floodFillColorImage(const ssize_t x_,const ssize_t y_,const Magick::Color & fillColor_,const Magick::Color & borderColor_,const bool invert_)439 Magick::floodFillColorImage::floodFillColorImage(const ssize_t x_,
440   const ssize_t y_,const Magick::Color &fillColor_,
441   const Magick::Color &borderColor_,const bool invert_)
442   : _x(x_),
443     _y(y_),
444     _fillColor(fillColor_),
445     _borderColor(borderColor_),
446     _invert(invert_)
447 {
448 }
449 
floodFillColorImage(const Geometry & point_,const Color & fillColor_,const Color & borderColor_,const bool invert_)450 Magick::floodFillColorImage::floodFillColorImage(const Geometry &point_,
451   const Color &fillColor_,const Color &borderColor_,const bool invert_)
452   : _x(point_.xOff()),
453     _y(point_.yOff()),
454     _fillColor(fillColor_),
455     _borderColor(borderColor_),
456     _invert(invert_)
457 {
458 }
operator ()(Magick::Image & image_) const459 void Magick::floodFillColorImage::operator()(Magick::Image &image_) const
460 {
461   if (_borderColor.isValid())
462     image_.floodFillColor(_x,_y,_fillColor,_borderColor,_invert);
463   else
464     image_.floodFillColor(_x,_y,_fillColor,_invert);
465 }
466 
floodFillTextureImage(const ssize_t x_,const ssize_t y_,const Magick::Image & texture_,const bool invert_)467 Magick::floodFillTextureImage::floodFillTextureImage(const ssize_t x_,
468   const ssize_t y_,const Magick::Image &texture_,const bool invert_)
469   : _x(x_),
470     _y(y_),
471     _texture(texture_),
472     _borderColor(),
473     _invert(invert_)
474 {
475 }
476 
floodFillTextureImage(const Magick::Geometry & point_,const Magick::Image & texture_,const bool invert_)477 Magick::floodFillTextureImage::floodFillTextureImage(
478   const Magick::Geometry &point_,const Magick::Image &texture_,
479   const bool invert_)
480   : _x(point_.xOff()),
481     _y(point_.yOff()),
482     _texture(texture_),
483     _borderColor(),
484     _invert(invert_)
485 {
486 }
487 
floodFillTextureImage(const ssize_t x_,const ssize_t y_,const Magick::Image & texture_,const Magick::Color & borderColor_,const bool invert_)488 Magick::floodFillTextureImage::floodFillTextureImage(const ssize_t x_,
489   const ssize_t y_,const Magick::Image &texture_,
490   const Magick::Color &borderColor_,const bool invert_)
491   : _x(x_),
492     _y(y_),
493     _texture(texture_),
494     _borderColor(borderColor_),
495     _invert(invert_)
496 {
497 }
498 
floodFillTextureImage(const Magick::Geometry & point_,const Magick::Image & texture_,const Magick::Color & borderColor_,const bool invert_)499 Magick::floodFillTextureImage::floodFillTextureImage(
500   const Magick::Geometry &point_,const Magick::Image &texture_,
501   const Magick::Color &borderColor_,const bool invert_)
502   : _x(point_.xOff()),
503     _y(point_.yOff()),
504     _texture(texture_),
505     _borderColor(borderColor_),
506     _invert(invert_)
507 {
508 }
509 
operator ()(Magick::Image & image_) const510 void Magick::floodFillTextureImage::operator()(Magick::Image &image_) const
511 {
512   if (_borderColor.isValid())
513     image_.floodFillTexture(_x,_y,_texture,_borderColor,_invert);
514   else
515     image_.floodFillTexture(_x,_y,_texture,_invert);
516 }
517 
518 // Flop image (reflect each scanline in the horizontal direction)
flopImage(void)519 Magick::flopImage::flopImage( void )
520 {
521 }
operator ()(Magick::Image & image_) const522 void Magick::flopImage::operator()( Magick::Image &image_ ) const
523 {
524   image_.flop( );
525 }
526 
527 // Frame image
frameImage(const Magick::Geometry & geometry_)528 Magick::frameImage::frameImage( const Magick::Geometry &geometry_ )
529   : _width( geometry_.width() ),
530     _height( geometry_.height() ),
531     _outerBevel( geometry_.xOff() ),
532     _innerBevel( geometry_.yOff() )
533 {
534 }
frameImage(const size_t width_,const size_t height_,const ssize_t innerBevel_,const ssize_t outerBevel_)535 Magick::frameImage::frameImage( const size_t width_, const size_t height_,
536                                 const ssize_t innerBevel_, const ssize_t outerBevel_ )
537   : _width( width_ ),
538     _height( height_ ),
539     _outerBevel( outerBevel_ ),
540     _innerBevel( innerBevel_ )
541 {
542 }
operator ()(Magick::Image & image_) const543 void Magick::frameImage::operator()( Magick::Image &image_ ) const
544 {
545   image_.frame( _width, _height, _innerBevel, _outerBevel );
546 }
547 
548 // Gamma correct image
gammaImage(const double gamma_)549 Magick::gammaImage::gammaImage( const double gamma_ )
550   : _gammaRed( gamma_ ),
551     _gammaGreen( gamma_ ),
552     _gammaBlue( gamma_ )
553 {
554 }
gammaImage(const double gammaRed_,const double gammaGreen_,const double gammaBlue_)555 Magick::gammaImage::gammaImage ( const double gammaRed_,
556                                  const double gammaGreen_,
557                                  const double gammaBlue_ )
558   : _gammaRed( gammaRed_ ),
559     _gammaGreen( gammaGreen_ ),
560     _gammaBlue( gammaBlue_ )
561 {
562 }
operator ()(Magick::Image & image_) const563 void Magick::gammaImage::operator()( Magick::Image &image_ ) const
564 {
565   image_.gamma( _gammaRed, _gammaGreen, _gammaBlue );
566 }
567 
568 // Gaussian blur image
569 // The number of neighbor pixels to be included in the convolution
570 // mask is specified by 'width_'. The standard deviation of the
571 // gaussian bell curve is specified by 'sigma_'.
gaussianBlurImage(const double width_,const double sigma_)572 Magick::gaussianBlurImage::gaussianBlurImage( const double width_,
573                                               const double sigma_ )
574   : _width( width_ ),
575     _sigma( sigma_ )
576 {
577 }
operator ()(Magick::Image & image_) const578 void Magick::gaussianBlurImage::operator()( Magick::Image &image_ ) const
579 {
580   image_.gaussianBlur( _width, _sigma );
581 }
582 
583 // Apply a color lookup table (Hald CLUT) to the image.
haldClutImage(const Image & haldClutImage_)584 Magick::haldClutImage::haldClutImage( const Image &haldClutImage_ )
585   : _haldClutImage ( haldClutImage_ )
586 {
587 }
operator ()(Image & image_) const588 void Magick::haldClutImage::operator()( Image &image_ ) const
589 {
590   image_.haldClut( _haldClutImage );
591 }
592 
593 // Implode image (special effect)
implodeImage(const double factor_)594 Magick::implodeImage::implodeImage( const double factor_  )
595   : _factor( factor_ )
596 {
597 }
operator ()(Magick::Image & image_) const598 void Magick::implodeImage::operator()( Magick::Image &image_ ) const
599 {
600   image_.implode( _factor );
601 }
602 
603 // Implements the inverse discrete Fourier transform (IFT) of the image
604 // either as a magnitude / phase or real / imaginary image pair.
inverseFourierTransformImage(const Magick::Image & phaseImage_)605 Magick::inverseFourierTransformImage::inverseFourierTransformImage( const Magick::Image &phaseImage_ )
606   : _phaseImage( phaseImage_ )
607 {
608 }
operator ()(Magick::Image & image_) const609 void Magick::inverseFourierTransformImage::operator()( Magick::Image &image_ ) const
610 {
611   image_.inverseFourierTransform( _phaseImage );
612 }
613 
614 // Set image validity. Valid images become empty (inValid) if argument
615 // is false.
isValidImage(const bool isValid_)616 Magick::isValidImage::isValidImage( const bool isValid_  )
617   : _isValid( isValid_ )
618 {
619 }
operator ()(Magick::Image & image_) const620 void Magick::isValidImage::operator()( Magick::Image &image_ ) const
621 {
622   image_.isValid( _isValid );
623 }
624 
625 // Label image
labelImage(const std::string & label_)626 Magick::labelImage::labelImage( const std::string &label_ )
627   : _label( label_ )
628 {
629 }
operator ()(Magick::Image & image_) const630 void Magick::labelImage::operator()( Magick::Image &image_ ) const
631 {
632   image_.label( _label );
633 }
634 
635 // Level image
levelImage(const double black_point,const double white_point,const double mid_point)636 Magick::levelImage::levelImage( const double black_point,
637                                 const double white_point,
638                                 const double mid_point )
639   : _black_point(black_point),
640     _white_point(white_point),
641     _mid_point(mid_point)
642 {
643 }
operator ()(Magick::Image & image_) const644 void Magick::levelImage::operator()( Magick::Image &image_ ) const
645 {
646   image_.level( _black_point, _white_point, _mid_point );
647 }
648 
649 // Magnify image by integral size
magnifyImage(void)650 Magick::magnifyImage::magnifyImage( void )
651 {
652 }
operator ()(Magick::Image & image_) const653 void Magick::magnifyImage::operator()( Magick::Image &image_ ) const
654 {
655   image_.magnify( );
656 }
657 
658 // Remap image colors with closest color from reference image
mapImage(const Magick::Image & mapImage_,const bool dither_)659 Magick::mapImage::mapImage( const Magick::Image &mapImage_ ,
660                             const bool dither_ )
661   : _mapImage( mapImage_ ),
662     _dither( dither_ )
663 {
664 }
operator ()(Magick::Image & image_) const665 void Magick::mapImage::operator()( Magick::Image &image_ ) const
666 {
667   image_.map( _mapImage, _dither );
668 }
669 
670 // Filter image by replacing each pixel component with the median
671 // color in a circular neighborhood
medianConvolveImage(const double radius_)672 Magick::medianConvolveImage::medianConvolveImage( const double radius_  )
673   : _radius( radius_ )
674 {
675 }
operator ()(Magick::Image & image_) const676 void Magick::medianConvolveImage::operator()( Magick::Image &image_ ) const
677 {
678   image_.medianFilter( _radius );
679 }
680 
681 // Reduce image by integral size
minifyImage(void)682 Magick::minifyImage::minifyImage( void )
683 {
684 }
operator ()(Magick::Image & image_) const685 void Magick::minifyImage::operator()( Magick::Image &image_ ) const
686 {
687   image_.minify( );
688 }
689 
690 // Modulate percent hue, saturation, and brightness of an image
modulateImage(const double brightness_,const double saturation_,const double hue_)691 Magick::modulateImage::modulateImage( const double brightness_,
692                                       const double saturation_,
693                                       const double hue_ )
694   : _brightness( brightness_ ),
695     _saturation( saturation_ ),
696     _hue( hue_ )
697 {
698 }
operator ()(Magick::Image & image_) const699 void Magick::modulateImage::operator()( Magick::Image &image_ ) const
700 {
701   image_.modulate( _brightness, _saturation, _hue );
702 }
703 
704 // Negate colors in image.  Set grayscale to only negate grayscale
705 // values in image.
negateImage(const bool grayscale_)706 Magick::negateImage::negateImage( const bool grayscale_  )
707   : _grayscale( grayscale_ )
708 {
709 }
operator ()(Magick::Image & image_) const710 void Magick::negateImage::operator()( Magick::Image &image_ ) const
711 {
712   image_.negate( _grayscale );
713 }
714 
715 // Normalize image (increase contrast by normalizing the pixel values
716 // to span the full range of color values)
normalizeImage(void)717 Magick::normalizeImage::normalizeImage( void )
718 {
719 }
operator ()(Magick::Image & image_) const720 void Magick::normalizeImage::operator()( Magick::Image &image_ ) const
721 {
722   image_.normalize( );
723 }
724 
725 // Oilpaint image (image looks like oil painting)
oilPaintImage(const double radius_)726 Magick::oilPaintImage::oilPaintImage( const double radius_ )
727   : _radius( radius_ )
728 {
729 }
operator ()(Magick::Image & image_) const730 void Magick::oilPaintImage::operator()( Magick::Image &image_ ) const
731 {
732   image_.oilPaint( _radius );
733 }
734 
735 // Set or attenuate the image alpha channel. If the image pixels are
736 // opaque then they are set to the specified alpha value, otherwise
737 // they are blended with the supplied alpha value.  The value of
738 // alpha_ ranges from 0 (completely opaque) to QuantumRange. The defines
739 // OpaqueAlpha and TransparentAlpha are available to specify
740 // completely opaque or completely transparent, respectively.
alphaImage(const unsigned int alpha_)741 Magick::alphaImage::alphaImage( const unsigned int alpha_ )
742   : _alpha( alpha_ )
743 {
744 }
operator ()(Magick::Image & image_) const745 void Magick::alphaImage::operator()( Magick::Image &image_ ) const
746 {
747   image_.alpha( _alpha );
748 }
749 
750 // Change color of opaque pixel to specified pen color.
opaqueImage(const Magick::Color & opaqueColor_,const Magick::Color & penColor_)751 Magick::opaqueImage::opaqueImage( const Magick::Color &opaqueColor_,
752                                   const Magick::Color &penColor_ )
753   : _opaqueColor( opaqueColor_ ),
754     _penColor( penColor_ )
755 {
756 }
operator ()(Magick::Image & image_) const757 void Magick::opaqueImage::operator()( Magick::Image &image_ ) const
758 {
759   image_.opaque( _opaqueColor, _penColor );
760 }
761 
762 // Quantize image (reduce number of colors)
quantizeImage(const bool measureError_)763 Magick::quantizeImage::quantizeImage( const bool measureError_  )
764   : _measureError( measureError_ )
765 {
766 }
operator ()(Image & image_) const767 void Magick::quantizeImage::operator()( Image &image_ ) const
768 {
769   image_.quantize( _measureError );
770 }
771 
772 // Raise image (lighten or darken the edges of an image to give a 3-D
773 // raised or lowered effect)
raiseImage(const Magick::Geometry & geometry_,const bool raisedFlag_)774 Magick::raiseImage::raiseImage( const Magick::Geometry &geometry_ ,
775                                 const bool raisedFlag_  )
776   : _geometry( geometry_ ),
777     _raisedFlag( raisedFlag_ )
778 {
779 }
operator ()(Magick::Image & image_) const780 void Magick::raiseImage::operator()( Magick::Image &image_ ) const
781 {
782   image_.raise( _geometry, _raisedFlag );
783 }
784 
ReadOptions(void)785 Magick::ReadOptions::ReadOptions(void)
786   : _imageInfo(static_cast<ImageInfo*>(AcquireMagickMemory(
787       sizeof(ImageInfo)))),
788     _quiet(false)
789 {
790   GetImageInfo(_imageInfo);
791 }
792 
ReadOptions(const Magick::ReadOptions & options_)793 Magick::ReadOptions::ReadOptions(const Magick::ReadOptions& options_)
794   : _imageInfo(CloneImageInfo(options_._imageInfo)),
795     _quiet(false)
796 {
797 }
798 
~ReadOptions()799 Magick::ReadOptions::~ReadOptions()
800 {
801   _imageInfo=DestroyImageInfo(_imageInfo);
802 }
803 
density(const Magick::Geometry & density_)804 void Magick::ReadOptions::density(const Magick::Geometry &density_)
805 {
806   if (!density_.isValid())
807     _imageInfo->density=(char *) RelinquishMagickMemory(_imageInfo->density);
808   else
809     Magick::CloneString(&_imageInfo->density,density_);
810 }
811 
density(void) const812 Magick::Geometry Magick::ReadOptions::density(void) const
813 {
814   if (_imageInfo->density)
815     return(Geometry(_imageInfo->density));
816 
817   return(Geometry());
818 }
819 
depth(size_t depth_)820 void Magick::ReadOptions::depth(size_t depth_)
821 {
822   _imageInfo->depth=depth_;
823 }
824 
depth(void) const825 size_t Magick::ReadOptions::depth(void) const
826 {
827   return(_imageInfo->depth);
828 }
829 
size(const Geometry & geometry_)830 void Magick::ReadOptions::size(const Geometry &geometry_)
831 {
832   _imageInfo->size=(char *) RelinquishMagickMemory(_imageInfo->size);
833 
834   if ( geometry_.isValid() )
835     Magick::CloneString(&_imageInfo->size,geometry_);
836 }
837 
size(void) const838 Magick::Geometry Magick::ReadOptions::size(void) const
839 {
840   if (_imageInfo->size)
841     return(Geometry(_imageInfo->size));
842 
843   return(Geometry());
844 }
845 
quiet(const bool quiet_)846 void Magick::ReadOptions::quiet(const bool quiet_)
847 {
848   _quiet=quiet_;
849 }
850 
quiet(void) const851 bool Magick::ReadOptions::quiet(void) const
852 {
853    return(_quiet);
854 }
855 
imageInfo(void)856 MagickCore::ImageInfo *Magick::ReadOptions::imageInfo(void)
857 {
858   return(_imageInfo);
859 }
860 
861 // Reduce noise in image using a noise peak elimination filter
reduceNoiseImage(void)862 Magick::reduceNoiseImage::reduceNoiseImage( void )
863   : _order(3)
864 {
865 }
reduceNoiseImage(const size_t order_)866 Magick::reduceNoiseImage::reduceNoiseImage ( const size_t order_ )
867       : _order(order_)
868 {
869 }
operator ()(Image & image_) const870 void Magick::reduceNoiseImage::operator()( Image &image_ ) const
871 {
872   image_.reduceNoise( _order );
873 }
874 
875 // Roll image (rolls image vertically and horizontally) by specified
876 // number of columnms and rows)
rollImage(const Magick::Geometry & roll_)877 Magick::rollImage::rollImage( const Magick::Geometry &roll_ )
878   : _columns( roll_.width() ),
879     _rows( roll_.height() )
880 {
881 }
rollImage(const ssize_t columns_,const ssize_t rows_)882 Magick::rollImage::rollImage( const ssize_t columns_,
883                               const ssize_t rows_ )
884   : _columns( columns_ ),
885     _rows( rows_ )
886 {
887 }
operator ()(Magick::Image & image_) const888 void Magick::rollImage::operator()( Magick::Image &image_ ) const
889 {
890   image_.roll( _columns, _rows );
891 }
892 
893 // Rotate image counter-clockwise by specified number of degrees.
rotateImage(const double degrees_)894 Magick::rotateImage::rotateImage( const double degrees_ )
895   : _degrees( degrees_ )
896 {
897 }
operator ()(Magick::Image & image_) const898 void Magick::rotateImage::operator()( Magick::Image &image_ ) const
899 {
900   image_.rotate( _degrees );
901 }
902 
903 // Resize image by using pixel sampling algorithm
sampleImage(const Magick::Geometry & geometry_)904 Magick::sampleImage::sampleImage( const Magick::Geometry &geometry_ )
905   : _geometry( geometry_ )
906 {
907 }
operator ()(Magick::Image & image_) const908 void Magick::sampleImage::operator()( Magick::Image &image_ ) const
909 {
910   image_.sample( _geometry );
911 }
912 
913 // Resize image by using simple ratio algorithm
scaleImage(const Magick::Geometry & geometry_)914 Magick::scaleImage::scaleImage( const Magick::Geometry &geometry_ )
915   : _geometry( geometry_ )
916 {
917 }
operator ()(Magick::Image & image_) const918 void Magick::scaleImage::operator()( Magick::Image &image_ ) const
919 {
920   image_.scale( _geometry );
921 }
922 
923 // Segment (coalesce similar image components) by analyzing the
924 // histograms of the color components and identifying units that are
925 // homogeneous with the fuzzy c-means technique.  Also uses
926 // QuantizeColorSpace and Verbose image attributes
segmentImage(const double clusterThreshold_,const double smoothingThreshold_)927 Magick::segmentImage::segmentImage( const double clusterThreshold_ ,
928                                     const double smoothingThreshold_ )
929   : _clusterThreshold( clusterThreshold_ ),
930     _smoothingThreshold( smoothingThreshold_ )
931 {
932 }
operator ()(Magick::Image & image_) const933 void Magick::segmentImage::operator()( Magick::Image &image_ ) const
934 {
935   image_.segment( _clusterThreshold, _smoothingThreshold );
936 }
937 
938 // Shade image using distant light source
shadeImage(const double azimuth_,const double elevation_,const bool colorShading_)939 Magick::shadeImage::shadeImage( const double azimuth_,
940                                 const double elevation_,
941         const bool colorShading_)
942   : _azimuth( azimuth_ ),
943     _elevation( elevation_ ),
944     _colorShading (colorShading_)
945 {
946 }
operator ()(Magick::Image & image_) const947 void Magick::shadeImage::operator()( Magick::Image &image_ ) const
948 {
949   image_.shade( _azimuth, _elevation, _colorShading );
950 }
951 
952 // Simulate an image shadow
shadowImage(const double percent_opacity_,const double sigma_,const ssize_t x_,const ssize_t y_)953 Magick::shadowImage::shadowImage( const double percent_opacity_,
954                                 const double sigma_,
955         const ssize_t x_, const ssize_t y_ )
956   : _percent_opacity( percent_opacity_ ),
957     _sigma( sigma_ ),
958     _x ( x_ ),
959     _y ( y_ )
960 {
961 }
operator ()(Magick::Image & image_) const962 void Magick::shadowImage::operator()( Magick::Image &image_ ) const
963 {
964   image_.shadow( _percent_opacity, _sigma, _x, _y );
965 }
966 
967 // Sharpen pixels in image
sharpenImage(const double radius_,const double sigma_)968 Magick::sharpenImage::sharpenImage( const double radius_, const double sigma_ )
969   : _radius( radius_ ),
970     _sigma( sigma_ )
971 {
972 }
operator ()(Magick::Image & image_) const973 void Magick::sharpenImage::operator()( Magick::Image &image_ ) const
974 {
975   image_.sharpen( _radius, _sigma );
976 }
977 
978 // Shave pixels from image edges.
shaveImage(const Magick::Geometry & geometry_)979 Magick::shaveImage::shaveImage( const Magick::Geometry &geometry_ )
980   : _geometry( geometry_ )
981 {
982 }
operator ()(Magick::Image & image_) const983 void Magick::shaveImage::operator()( Magick::Image &image_ ) const
984 {
985   image_.shave( _geometry );
986 }
987 
988 // Shear image (create parallelogram by sliding image by X or Y axis)
shearImage(const double xShearAngle_,const double yShearAngle_)989 Magick::shearImage::shearImage( const double xShearAngle_,
990                                 const double yShearAngle_ )
991   : _xShearAngle( xShearAngle_ ),
992     _yShearAngle( yShearAngle_ )
993 {
994 }
operator ()(Magick::Image & image_) const995 void Magick::shearImage::operator()( Magick::Image &image_ ) const
996 {
997   image_.shear( _xShearAngle, _yShearAngle );
998 }
999 
1000 // Solarize image (similar to effect seen when exposing a photographic
1001 // film to light during the development process)
solarizeImage(const double factor_)1002 Magick::solarizeImage::solarizeImage( const double factor_ )
1003   : _factor( factor_ )
1004 {
1005 }
operator ()(Magick::Image & image_) const1006 void Magick::solarizeImage::operator()( Magick::Image &image_ ) const
1007 {
1008   image_.solarize( _factor );
1009 }
1010 
1011 // Spread pixels randomly within image by specified ammount
spreadImage(const size_t amount_)1012 Magick::spreadImage::spreadImage( const size_t amount_ )
1013   : _amount( amount_ )
1014 {
1015 }
operator ()(Magick::Image & image_) const1016 void Magick::spreadImage::operator()( Magick::Image &image_ ) const
1017 {
1018   image_.spread( _amount );
1019 }
1020 
1021 // Add a digital watermark to the image (based on second image)
steganoImage(const Magick::Image & waterMark_)1022 Magick::steganoImage::steganoImage( const Magick::Image &waterMark_ )
1023   : _waterMark( waterMark_ )
1024 {
1025 }
operator ()(Magick::Image & image_) const1026 void Magick::steganoImage::operator()( Magick::Image &image_ ) const
1027 {
1028   image_.stegano( _waterMark );
1029 }
1030 
1031 // Create an image which appears in stereo when viewed with red-blue
1032 // glasses (Red image on left, blue on right)
stereoImage(const Magick::Image & rightImage_)1033 Magick::stereoImage::stereoImage( const Magick::Image &rightImage_ )
1034   : _rightImage( rightImage_ )
1035 {
1036 }
operator ()(Magick::Image & image_) const1037 void Magick::stereoImage::operator()( Magick::Image &image_ ) const
1038 {
1039   image_.stereo( _rightImage );
1040 }
1041 
1042 // Color to use when drawing object outlines
strokeColorImage(const Magick::Color & strokeColor_)1043 Magick::strokeColorImage::strokeColorImage( const Magick::Color &strokeColor_ )
1044   : _strokeColor( strokeColor_ )
1045 {
1046 }
operator ()(Magick::Image & image_) const1047 void Magick::strokeColorImage::operator()( Magick::Image &image_ ) const
1048 {
1049   image_.strokeColor( _strokeColor );
1050 }
1051 
1052 // Swirl image (image pixels are rotated by degrees)
swirlImage(const double degrees_)1053 Magick::swirlImage::swirlImage( const double degrees_ )
1054   : _degrees( degrees_ )
1055 {
1056 }
operator ()(Magick::Image & image_) const1057 void Magick::swirlImage::operator()( Magick::Image &image_ ) const
1058 {
1059   image_.swirl( _degrees );
1060 }
1061 
1062 // Channel a texture on image background
textureImage(const Magick::Image & texture_)1063 Magick::textureImage::textureImage( const Magick::Image &texture_ )
1064   : _texture( texture_ )
1065 {
1066 }
operator ()(Magick::Image & image_) const1067 void Magick::textureImage::operator()( Magick::Image &image_ ) const
1068 {
1069   image_.texture( _texture );
1070 }
1071 
1072 // Threshold image
thresholdImage(const double threshold_)1073 Magick::thresholdImage::thresholdImage( const double threshold_ )
1074   : _threshold( threshold_ )
1075 {
1076 }
operator ()(Magick::Image & image_) const1077 void Magick::thresholdImage::operator()( Magick::Image &image_ ) const
1078 {
1079   image_.threshold( _threshold );
1080 }
1081 
1082 // Set image color to transparent
transparentImage(const Magick::Color & color_)1083 Magick::transparentImage::transparentImage( const Magick::Color& color_ )
1084   : _color( color_ )
1085 {
1086 }
operator ()(Magick::Image & image_) const1087 void Magick::transparentImage::operator()( Magick::Image &image_ ) const
1088 {
1089   image_.transparent( _color );
1090 }
1091 
1092 // Trim edges that are the background color from the image
trimImage(void)1093 Magick::trimImage::trimImage( void )
1094 {
1095 }
operator ()(Magick::Image & image_) const1096 void Magick::trimImage::operator()( Magick::Image &image_ ) const
1097 {
1098   image_.trim( );
1099 }
1100 
1101 // Map image pixels to a sine wave
waveImage(const double amplitude_,const double wavelength_)1102 Magick::waveImage::waveImage( const double amplitude_,
1103                               const double wavelength_ )
1104   : _amplitude( amplitude_ ),
1105     _wavelength( wavelength_ )
1106 {
1107 }
operator ()(Magick::Image & image_) const1108 void Magick::waveImage::operator()( Magick::Image &image_ ) const
1109 {
1110   image_.wave( _amplitude, _wavelength );
1111 }
1112 
1113 // resize image to specified size.
resizeImage(const Magick::Geometry & geometry_)1114 Magick::resizeImage::resizeImage( const Magick::Geometry &geometry_ )
1115   : _geometry( geometry_ )
1116 {
1117 }
operator ()(Magick::Image & image_) const1118 void Magick::resizeImage::operator()( Magick::Image &image_ ) const
1119 {
1120   image_.resize( _geometry );
1121 }
1122 
1123 // Zoom image to specified size.
zoomImage(const Magick::Geometry & geometry_)1124 Magick::zoomImage::zoomImage( const Magick::Geometry &geometry_ )
1125   : _geometry( geometry_ )
1126 {
1127 }
operator ()(Magick::Image & image_) const1128 void Magick::zoomImage::operator()( Magick::Image &image_ ) const
1129 {
1130   image_.zoom( _geometry );
1131 }
1132 
1133 //
1134 // Function object image attribute accessors
1135 //
1136 
1137 // Join images into a single multi-image file
adjoinImage(const bool flag_)1138 Magick::adjoinImage::adjoinImage( const bool flag_ )
1139   : _flag( flag_ )
1140 {
1141 }
operator ()(Magick::Image & image_) const1142 void Magick::adjoinImage::operator()( Magick::Image &image_ ) const
1143 {
1144   image_.adjoin( _flag );
1145 }
1146 
1147 // Time in 1/100ths of a second which must expire before displaying
1148 // the next image in an animated sequence.
animationDelayImage(const size_t delay_)1149 Magick::animationDelayImage::animationDelayImage( const size_t delay_ )
1150   : _delay( delay_ )
1151 {
1152 }
operator ()(Magick::Image & image_) const1153 void Magick::animationDelayImage::operator()( Magick::Image &image_ ) const
1154 {
1155   image_.animationDelay( _delay );
1156 }
1157 
1158 // Number of iterations to loop an animation (e.g. Netscape loop
1159 // extension) for.
animationIterationsImage(const size_t iterations_)1160 Magick::animationIterationsImage::animationIterationsImage( const size_t iterations_ )
1161   : _iterations( iterations_ )
1162 {
1163 }
operator ()(Magick::Image & image_) const1164 void Magick::animationIterationsImage::operator()( Magick::Image &image_ ) const
1165 {
1166   image_.animationIterations( _iterations );
1167 }
1168 
1169 // Image background color
backgroundColorImage(const Magick::Color & color_)1170 Magick::backgroundColorImage::backgroundColorImage( const Magick::Color &color_ )
1171   : _color( color_ )
1172 {
1173 }
operator ()(Magick::Image & image_) const1174 void Magick::backgroundColorImage::operator()( Magick::Image &image_ ) const
1175 {
1176   image_.backgroundColor( _color );
1177 }
1178 
1179 // Name of texture image to tile onto the image background
backgroundTextureImage(const std::string & backgroundTexture_)1180 Magick::backgroundTextureImage::backgroundTextureImage( const std::string &backgroundTexture_ )
1181   : _backgroundTexture( backgroundTexture_ )
1182 {
1183 }
operator ()(Magick::Image & image_) const1184 void Magick::backgroundTextureImage::operator()( Magick::Image &image_ ) const
1185 {
1186   image_.backgroundTexture( _backgroundTexture );
1187 }
1188 
1189 // Image border color
borderColorImage(const Magick::Color & color_)1190 Magick::borderColorImage::borderColorImage( const Magick::Color &color_ )
1191   : _color( color_ )
1192 {
1193 }
operator ()(Magick::Image & image_) const1194 void Magick::borderColorImage::operator()( Magick::Image &image_ ) const
1195 {
1196   image_.borderColor( _color );
1197 }
1198 
1199 // Text bounding-box base color (default none)
boxColorImage(const Magick::Color & boxColor_)1200 Magick::boxColorImage::boxColorImage( const Magick::Color &boxColor_ )
1201   : _boxColor( boxColor_ ) { }
1202 
operator ()(Magick::Image & image_) const1203 void Magick::boxColorImage::operator()( Magick::Image &image_ ) const
1204 {
1205   image_.boxColor( _boxColor );
1206 }
1207 
chromaBluePrimaryImage(const double x_,const double y_,const double z_)1208 Magick::chromaBluePrimaryImage::chromaBluePrimaryImage(const double x_,
1209   const double y_,const double z_)
1210   : _x(x_),
1211     _y(y_),
1212     _z(z_)
1213 {
1214 }
1215 
operator ()(Magick::Image & image_) const1216 void Magick::chromaBluePrimaryImage::operator()(Magick::Image &image_) const
1217 {
1218   image_.chromaBluePrimary(_x,_y,_z);
1219 }
1220 
chromaGreenPrimaryImage(const double x_,const double y_,const double z_)1221 Magick::chromaGreenPrimaryImage::chromaGreenPrimaryImage(const double x_,
1222   const double y_,const double z_)
1223   : _x(x_),
1224     _y(y_),
1225     _z(z_)
1226 {
1227 }
1228 
operator ()(Magick::Image & image_) const1229 void Magick::chromaGreenPrimaryImage::operator()( Magick::Image &image_ ) const
1230 {
1231   image_.chromaGreenPrimary(_x,_y,_z);
1232 }
1233 
chromaRedPrimaryImage(const double x_,const double y_,const double z_)1234 Magick::chromaRedPrimaryImage::chromaRedPrimaryImage(const double x_,
1235   const double y_,const double z_)
1236   : _x(x_),
1237     _y(y_),
1238     _z(z_)
1239 {
1240 }
1241 
operator ()(Magick::Image & image_) const1242 void Magick::chromaRedPrimaryImage::operator()(Magick::Image &image_) const
1243 {
1244   image_.chromaRedPrimary(_x,_y,_z);
1245 }
1246 
chromaWhitePointImage(const double x_,const double y_,const double z_)1247 Magick::chromaWhitePointImage::chromaWhitePointImage(const double x_,
1248   const double y_,const double z_)
1249   : _x(x_),
1250     _y(y_),
1251     _z(z_)
1252 {
1253 }
1254 
operator ()(Magick::Image & image_) const1255 void Magick::chromaWhitePointImage::operator()(Magick::Image &image_) const
1256 {
1257   image_.chromaWhitePoint(_x,_y,_z);
1258 }
1259 
1260 // Colors within this distance are considered equal
colorFuzzImage(const double fuzz_)1261 Magick::colorFuzzImage::colorFuzzImage( const double fuzz_ )
1262   : _fuzz( fuzz_ )
1263 {
1264 }
operator ()(Magick::Image & image_) const1265 void Magick::colorFuzzImage::operator()( Magick::Image &image_ ) const
1266 {
1267   image_.colorFuzz( _fuzz );
1268 }
1269 
1270 // Color at colormap position index_
colorMapImage(const size_t index_,const Color & color_)1271 Magick::colorMapImage::colorMapImage( const size_t index_,
1272                                       const Color &color_ )
1273   : _index( index_ ),
1274     _color( color_ )
1275 {
1276 }
operator ()(Magick::Image & image_) const1277 void Magick::colorMapImage::operator()( Magick::Image &image_ ) const
1278 {
1279   image_.colorMap( _index, _color );
1280 }
1281 
1282 // Composition operator to be used when composition is implicitly used
1283 // (such as for image flattening).
composeImage(const CompositeOperator compose_)1284 Magick::composeImage::composeImage( const CompositeOperator compose_ )
1285   : _compose( compose_ )
1286 {
1287 }
operator ()(Magick::Image & image_) const1288 void Magick::composeImage::operator()( Magick::Image &image_ ) const
1289 {
1290   image_.compose( _compose );
1291 }
1292 
1293 // Compression type
compressTypeImage(const CompressionType compressType_)1294 Magick::compressTypeImage::compressTypeImage( const CompressionType compressType_ )
1295   : _compressType( compressType_ )
1296 {
1297 }
operator ()(Magick::Image & image_) const1298 void Magick::compressTypeImage::operator()( Magick::Image &image_ ) const
1299 {
1300   image_.compressType( _compressType );
1301 }
1302 
1303 // Vertical and horizontal resolution in pixels of the image
densityImage(const Point & point_)1304 Magick::densityImage::densityImage( const Point &point_ )
1305   : _point( point_ )
1306 {
1307 }
operator ()(Magick::Image & image_) const1308 void Magick::densityImage::operator()( Magick::Image &image_ ) const
1309 {
1310   image_.density( _point );
1311 }
1312 
1313 // Image depth (bits allocated to red/green/blue components)
depthImage(const size_t depth_)1314 Magick::depthImage::depthImage( const size_t depth_ )
1315   : _depth( depth_ )
1316 {
1317 }
operator ()(Magick::Image & image_) const1318 void Magick::depthImage::operator()( Magick::Image &image_ ) const
1319 {
1320   image_.depth( _depth );
1321 }
1322 
1323 // Endianness (LSBEndian like Intel or MSBEndian like SPARC) for image
1324 // formats which support endian-specific options.
endianImage(const Magick::EndianType endian_)1325 Magick::endianImage::endianImage( const Magick::EndianType endian_ )
1326   : _endian( endian_ )
1327 {
1328 }
operator ()(Magick::Image & image_) const1329 void Magick::endianImage::operator()( Magick::Image &image_ ) const
1330 {
1331   image_.endian( _endian );
1332 }
1333 
1334 // Image file name
fileNameImage(const std::string & fileName_)1335 Magick::fileNameImage::fileNameImage( const std::string &fileName_ )
1336   : _fileName( fileName_ )
1337 {
1338 }
operator ()(Magick::Image & image_) const1339 void Magick::fileNameImage::operator()( Magick::Image &image_ ) const
1340 {
1341   image_.fileName( _fileName );
1342 }
1343 
1344 // Filter to use when resizing image
filterTypeImage(const FilterType filterType_)1345 Magick::filterTypeImage::filterTypeImage( const FilterType filterType_ )
1346   : _filterType( filterType_ )
1347 {
1348 }
operator ()(Magick::Image & image_) const1349 void Magick::filterTypeImage::operator()( Magick::Image &image_ ) const
1350 {
1351   image_.filterType( _filterType );
1352 }
1353 
1354 // Text rendering font
fontImage(const std::string & font_)1355 Magick::fontImage::fontImage( const std::string &font_ )
1356   : _font( font_ )
1357 {
1358 }
operator ()(Magick::Image & image_) const1359 void Magick::fontImage::operator()( Magick::Image &image_ ) const
1360 {
1361   image_.font( _font );
1362 }
1363 
1364 // Font point size
fontPointsizeImage(const size_t pointsize_)1365 Magick::fontPointsizeImage::fontPointsizeImage( const size_t pointsize_ )
1366   : _pointsize( pointsize_ )
1367 {
1368 }
operator ()(Magick::Image & image_) const1369 void Magick::fontPointsizeImage::operator()( Magick::Image &image_ ) const
1370 {
1371   image_.fontPointsize( _pointsize );
1372 }
1373 
1374 // GIF disposal method
gifDisposeMethodImage(const DisposeType disposeMethod_)1375 Magick::gifDisposeMethodImage::gifDisposeMethodImage( const DisposeType disposeMethod_ )
1376   : _disposeMethod( disposeMethod_ )
1377 {
1378 }
operator ()(Magick::Image & image_) const1379 void Magick::gifDisposeMethodImage::operator()( Magick::Image &image_ ) const
1380 {
1381   image_.gifDisposeMethod( _disposeMethod );
1382 }
1383 
1384 // Type of interlacing to use
interlaceTypeImage(const InterlaceType interlace_)1385 Magick::interlaceTypeImage::interlaceTypeImage( const InterlaceType interlace_ )
1386   : _interlace( interlace_ )
1387 {
1388 }
operator ()(Magick::Image & image_) const1389 void Magick::interlaceTypeImage::operator()( Magick::Image &image_ ) const
1390 {
1391   image_.interlaceType( _interlace );
1392 }
1393 
1394 // File type magick identifier (.e.g "GIF")
magickImage(const std::string & magick_)1395 Magick::magickImage::magickImage( const std::string &magick_ )
1396   : _magick( magick_ )
1397 {
1398 }
operator ()(Magick::Image & image_) const1399 void Magick::magickImage::operator()( Magick::Image &image_ ) const
1400 {
1401   image_.magick( _magick );
1402 }
1403 
1404 // Image supports transparent color
alphaFlagImage(const bool alphaFlag_)1405 Magick::alphaFlagImage::alphaFlagImage( const bool alphaFlag_ )
1406   : _alphaFlag( alphaFlag_ )
1407 {
1408 }
operator ()(Magick::Image & image_) const1409 void Magick::alphaFlagImage::operator()( Magick::Image &image_ ) const
1410 {
1411   image_.alpha( _alphaFlag );
1412 }
1413 
1414 // Transparent color
alphaColorImage(const Color & alphaColor_)1415 Magick::alphaColorImage::alphaColorImage( const Color &alphaColor_ )
1416   : _alphaColor( alphaColor_ )
1417 {
1418 }
operator ()(Magick::Image & image_) const1419 void Magick::alphaColorImage::operator()( Magick::Image &image_ ) const
1420 {
1421   image_.alphaColor( _alphaColor );
1422 }
1423 
1424 // Indicate that image is black and white
monochromeImage(const bool monochromeFlag_)1425 Magick::monochromeImage::monochromeImage( const bool monochromeFlag_ )
1426   : _monochromeFlag( monochromeFlag_ )
1427 {
1428 }
operator ()(Magick::Image & image_) const1429 void Magick::monochromeImage::operator()( Magick::Image &image_ ) const
1430 {
1431   image_.monochrome( _monochromeFlag );
1432 }
1433 
1434 // Set pixel color at location x & y.
pixelColorImage(const ssize_t x_,const ssize_t y_,const Color & color_)1435 Magick::pixelColorImage::pixelColorImage( const ssize_t x_,
1436                                           const ssize_t y_,
1437                                           const Color &color_)
1438   : _x( x_ ),
1439     _y( y_ ),
1440     _color( color_ ) { }
1441 
operator ()(Magick::Image & image_) const1442 void Magick::pixelColorImage::operator()( Magick::Image &image_ ) const
1443 {
1444   image_.pixelColor( _x, _y, _color );
1445 }
1446 
1447 // Postscript page size.
pageImage(const Geometry & pageSize_)1448 Magick::pageImage::pageImage( const Geometry &pageSize_ )
1449   : _pageSize( pageSize_ )
1450 {
1451 }
operator ()(Magick::Image & image_) const1452 void Magick::pageImage::operator()( Magick::Image &image_ ) const
1453 {
1454   image_.page( _pageSize );
1455 }
1456 
1457 // JPEG/MIFF/PNG compression level (default 75).
qualityImage(const size_t quality_)1458 Magick::qualityImage::qualityImage( const size_t quality_ )
1459   : _quality( quality_ )
1460 {
1461 }
operator ()(Magick::Image & image_) const1462 void Magick::qualityImage::operator()( Magick::Image &image_ ) const
1463 {
1464   image_.quality( _quality );
1465 }
1466 
1467 // Maximum number of colors to quantize to
quantizeColorsImage(const size_t colors_)1468 Magick::quantizeColorsImage::quantizeColorsImage( const size_t colors_ )
1469   : _colors( colors_ )
1470 {
1471 }
operator ()(Magick::Image & image_) const1472 void Magick::quantizeColorsImage::operator()( Magick::Image &image_ ) const
1473 {
1474   image_.quantizeColors( _colors );
1475 }
1476 
1477 // Colorspace to quantize in.
quantizeColorSpaceImage(const ColorspaceType colorSpace_)1478 Magick::quantizeColorSpaceImage::quantizeColorSpaceImage( const ColorspaceType colorSpace_ )
1479   : _colorSpace( colorSpace_ )
1480 {
1481 }
operator ()(Magick::Image & image_) const1482 void Magick::quantizeColorSpaceImage::operator()( Magick::Image &image_ ) const
1483 {
1484   image_.quantizeColorSpace( _colorSpace );
1485 }
1486 
1487 // Dither image during quantization (default true).
quantizeDitherImage(const bool ditherFlag_)1488 Magick::quantizeDitherImage::quantizeDitherImage( const bool ditherFlag_ )
1489   : _ditherFlag( ditherFlag_ )
1490 {
1491 }
operator ()(Magick::Image & image_) const1492 void Magick::quantizeDitherImage::operator()( Magick::Image &image_ ) const
1493 {
1494   image_.quantizeDither( _ditherFlag );
1495 }
1496 
1497 // Quantization tree-depth
quantizeTreeDepthImage(const size_t treeDepth_)1498 Magick::quantizeTreeDepthImage::quantizeTreeDepthImage( const size_t treeDepth_ )
1499   : _treeDepth( treeDepth_ ) { }
1500 
operator ()(Magick::Image & image_) const1501 void Magick::quantizeTreeDepthImage::operator()( Magick::Image &image_ ) const
1502 {
1503   image_.quantizeTreeDepth( _treeDepth );
1504 }
1505 
1506 // The type of rendering intent
renderingIntentImage(const Magick::RenderingIntent renderingIntent_)1507 Magick::renderingIntentImage::renderingIntentImage( const Magick::RenderingIntent renderingIntent_ )
1508   : _renderingIntent( renderingIntent_ )
1509 {
1510 }
operator ()(Magick::Image & image_) const1511 void Magick::renderingIntentImage::operator()( Magick::Image &image_ ) const
1512 {
1513   image_.renderingIntent( _renderingIntent );
1514 }
1515 
1516 // Units of image resolution
resolutionUnitsImage(const Magick::ResolutionType resolutionUnits_)1517 Magick::resolutionUnitsImage::resolutionUnitsImage( const Magick::ResolutionType resolutionUnits_ )
1518   : _resolutionUnits( resolutionUnits_ )
1519 {
1520 }
operator ()(Magick::Image & image_) const1521 void Magick::resolutionUnitsImage::operator()( Magick::Image &image_ ) const
1522 {
1523   image_.resolutionUnits( _resolutionUnits );
1524 }
1525 
1526 // Image scene number
sceneImage(const size_t scene_)1527 Magick::sceneImage::sceneImage( const size_t scene_ )
1528   : _scene( scene_ )
1529 {
1530 }
operator ()(Magick::Image & image_) const1531 void Magick::sceneImage::operator()( Magick::Image &image_ ) const
1532 {
1533   image_.scene( _scene );
1534 }
1535 
1536 // Width and height of a raw image
sizeImage(const Magick::Geometry & geometry_)1537 Magick::sizeImage::sizeImage( const Magick::Geometry &geometry_ )
1538   : _geometry( geometry_ )
1539 {
1540 }
operator ()(Magick::Image & image_) const1541 void Magick::sizeImage::operator()( Magick::Image &image_ ) const
1542 {
1543   image_.size( _geometry );
1544 }
1545 
1546 // Splice the background color into the image.
spliceImage(const Magick::Geometry & geometry_)1547 Magick::spliceImage::spliceImage( const Magick::Geometry &geometry_ )
1548   : _geometry( geometry_ )
1549 {
1550 }
operator ()(Magick::Image & image_) const1551 void Magick::spliceImage::operator()( Magick::Image &image_ ) const
1552 {
1553   image_.splice( _geometry );
1554 }
1555 
1556 // stripImage strips an image of all profiles and comments.
stripImage(void)1557 Magick::stripImage::stripImage( void )
1558 {
1559 }
operator ()(Magick::Image & image_) const1560 void Magick::stripImage::operator()( Magick::Image &image_ ) const
1561 {
1562   image_.strip( );
1563 }
1564 
1565 // Subimage of an image sequence
subImageImage(const size_t subImage_)1566 Magick::subImageImage::subImageImage( const size_t subImage_ )
1567   : _subImage( subImage_ )
1568 {
1569 }
operator ()(Magick::Image & image_) const1570 void Magick::subImageImage::operator()( Magick::Image &image_ ) const
1571 {
1572   image_.subImage( _subImage );
1573 }
1574 
1575 // Number of images relative to the base image
subRangeImage(const size_t subRange_)1576 Magick::subRangeImage::subRangeImage( const size_t subRange_ )
1577   : _subRange( subRange_ )
1578 {
1579 }
operator ()(Magick::Image & image_) const1580 void Magick::subRangeImage::operator()( Magick::Image &image_ ) const
1581 {
1582   image_.subRange( _subRange );
1583 }
1584 
1585 // Anti-alias Postscript and TrueType fonts (default true)
textAntiAliasImage(const bool flag_)1586 Magick::textAntiAliasImage::textAntiAliasImage( const bool flag_ )
1587   : _flag( flag_ )
1588 {
1589 }
operator ()(Magick::Image & image_) const1590 void Magick::textAntiAliasImage::operator()( Magick::Image &image_ ) const
1591 {
1592   image_.textAntiAlias( _flag );
1593 }
1594 
1595 // Image storage type
typeImage(const Magick::ImageType type_)1596 Magick::typeImage::typeImage( const Magick::ImageType type_ )
1597   : _type( type_ )
1598 {
1599 }
operator ()(Magick::Image & image_) const1600 void Magick::typeImage::operator()( Magick::Image &image_ ) const
1601 {
1602   image_.type( _type );
1603 }
1604 
1605 // Print detailed information about the image
verboseImage(const bool verbose_)1606 Magick::verboseImage::verboseImage( const bool verbose_ )
1607   : _verbose( verbose_ )
1608 {
1609 }
operator ()(Magick::Image & image_) const1610 void Magick::verboseImage::operator()( Magick::Image &image_ ) const
1611 {
1612   image_.verbose( _verbose );
1613 }
1614 
1615 // X11 display to display to, obtain fonts from, or to capture image
1616 // from
x11DisplayImage(const std::string & display_)1617 Magick::x11DisplayImage::x11DisplayImage( const std::string &display_ )
1618   : _display( display_ )
1619 {
1620 }
operator ()(Magick::Image & image_) const1621 void Magick::x11DisplayImage::operator()( Magick::Image &image_ ) const
1622 {
1623   image_.x11Display( _display );
1624 }
1625