1 2 3 4 5<!DOCTYPE html> 6<html lang="en"> 7<head> 8 <meta charset="utf-8" /> 9 <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" /> 10 <title>MagickCore, C API: Add a Special Effect @ ImageMagick</title> 11 <meta name="application-name" content="ImageMagick" /> 12 <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." /> 13 <meta name="application-url" content="https://imagemagick.org" /> 14 <meta name="generator" content="PHP" /> 15 <meta name="keywords" content="magickcore, c, api:, add, a, special, effect, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" /> 16 <meta name="rating" content="GENERAL" /> 17 <meta name="robots" content="INDEX, FOLLOW" /> 18 <meta name="generator" content="ImageMagick Studio LLC" /> 19 <meta name="author" content="ImageMagick Studio LLC" /> 20 <meta name="revisit-after" content="2 DAYS" /> 21 <meta name="resource-type" content="document" /> 22 <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" /> 23 <meta name="distribution" content="Global" /> 24 <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" /> 25 <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" /> 26 <link href="fx.html" rel="canonical" /> 27 <link href="../../images/wand.png" rel="icon" /> 28 <link href="../../images/wand.ico" rel="shortcut icon" /> 29 <link href="../assets/magick.css" rel="stylesheet" /> 30</head> 31<body> 32 <header> 33 <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark"> 34 <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a> 35 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation"> 36 <span class="navbar-toggler-icon"></span> 37 </button> 38 39 <div class="navbar-collapse collapse" id="navbarsMagick" style=""> 40 <ul class="navbar-nav mr-auto"> 41 <li class="nav-item "> 42 <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a> 43 </li> 44 <li class="nav-item "> 45 <a class="nav-link" href="../../www/download.html">Download</a> 46 </li> 47 <li class="nav-item "> 48 <a class="nav-link" href="../../www/command-line-tools.html">Tools</a> 49 </li> 50 <li class="nav-item "> 51 <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a> 52 </li> 53 <li class="nav-item "> 54 <a class="nav-link" href="../../www/resources.html">Resources</a> 55 </li> 56 <li class="nav-item "> 57 <a class="nav-link" href="../../www/develop.html">Develop</a> 58 </li> 59 <li class="nav-item"> 60 <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a> 61 </li> 62 </ul> 63 <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php"> 64 <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search"> 65 <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button> 66 </form> 67 </div> 68 </nav> 69 <div class="container"> 70 <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" 71 style="display:block" 72 data-ad-client="ca-pub-3129977114552745" 73 data-ad-slot="6345125851" 74 data-ad-format="auto"></ins> 75 <script> 76 (adsbygoogle = window.adsbygoogle || []).push({}); 77 </script> 78 79 </div> 80 </header> 81 <main class="container"> 82 <div class="magick-template"> 83<div class="magick-header"> 84<p class="text-center"><a href="fx.html#AddNoiseImage">AddNoiseImage</a> • <a href="fx.html#BlueShiftImage">BlueShiftImage</a> • <a href="fx.html#CharcoalImage">CharcoalImage</a> • <a href="fx.html#ColorizeImage">ColorizeImage</a> • <a href="fx.html#ColorMatrixImage">ColorMatrixImage</a> • <a href="fx.html#FxImage">FxImage</a> • <a href="fx.html#ImplodeImage">ImplodeImage</a> • <a href="fx.html#The MorphImages">The MorphImages</a> • <a href="fx.html#PlasmaImage">PlasmaImage</a> • <a href="fx.html#PolaroidImage">PolaroidImage</a> • <a href="fx.html#MagickSepiaToneImage">MagickSepiaToneImage</a> • <a href="fx.html#ShadowImage">ShadowImage</a> • <a href="fx.html#SketchImage">SketchImage</a> • <a href="fx.html#SolarizeImage">SolarizeImage</a> • <a href="fx.html#SteganoImage">SteganoImage</a> • <a href="fx.html#StereoAnaglyphImage">StereoAnaglyphImage</a> • <a href="fx.html#SwirlImage">SwirlImage</a> • <a href="fx.html#TintImage">TintImage</a> • <a href="fx.html#VignetteImage">VignetteImage</a> • <a href="fx.html#WaveImage">WaveImage</a> • <a href="fx.html#WaveletDenoiseImage">WaveletDenoiseImage</a></p> 85 86<h2><a href="../../api/MagickCore/fx_8c.html" id="AddNoiseImage">AddNoiseImage</a></h2> 87 88<p>AddNoiseImage() adds random noise to the image.</p> 89 90<p>The format of the AddNoiseImage method is:</p> 91 92<pre class="text"> 93Image *AddNoiseImage(const Image *image,const NoiseType noise_type, 94 const double attenuate,ExceptionInfo *exception) 95</pre> 96 97<p>A description of each parameter follows:</p> 98 99<dd> 100</dd> 101 102<dd> </dd> 103<dl class="dl-horizontal"> 104<dt>image</dt> 105<dd>the image. </dd> 106 107<dd> </dd> 108<dt>channel</dt> 109<dd>the channel type. </dd> 110 111<dd> </dd> 112<dt>noise_type</dt> 113<dd> The type of noise: Uniform, Gaussian, Multiplicative, Impulse, Laplacian, or Poisson. </dd> 114 115<dd> </dd> 116<dt>attenuate</dt> 117<dd> attenuate the random distribution. </dd> 118 119<dd> </dd> 120<dt>exception</dt> 121<dd>return any errors or warnings in this structure. </dd> 122 123<dd> </dd> 124</dl> 125<h2><a href="../../api/MagickCore/fx_8c.html" id="BlueShiftImage">BlueShiftImage</a></h2> 126 127<p>BlueShiftImage() mutes the colors of the image to simulate a scene at nighttime in the moonlight.</p> 128 129<p>The format of the BlueShiftImage method is:</p> 130 131<pre class="text"> 132Image *BlueShiftImage(const Image *image,const double factor, 133 ExceptionInfo *exception) 134</pre> 135 136<p>A description of each parameter follows:</p> 137 138<dd> 139</dd> 140 141<dd> </dd> 142<dl class="dl-horizontal"> 143<dt>image</dt> 144<dd>the image. </dd> 145 146<dd> </dd> 147<dt>factor</dt> 148<dd>the shift factor. </dd> 149 150<dd> </dd> 151<dt>exception</dt> 152<dd>return any errors or warnings in this structure. </dd> 153 154<dd> </dd> 155</dl> 156<h2><a href="../../api/MagickCore/fx_8c.html" id="CharcoalImage">CharcoalImage</a></h2> 157 158<p>CharcoalImage() creates a new image that is a copy of an existing one with the edge highlighted. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.</p> 159 160<p>The format of the CharcoalImage method is:</p> 161 162<pre class="text"> 163Image *CharcoalImage(const Image *image,const double radius, 164 const double sigma,ExceptionInfo *exception) 165</pre> 166 167<p>A description of each parameter follows:</p> 168 169<dd> 170</dd> 171 172<dd> </dd> 173<dl class="dl-horizontal"> 174<dt>image</dt> 175<dd>the image. </dd> 176 177<dd> </dd> 178<dt>radius</dt> 179<dd>the radius of the pixel neighborhood. </dd> 180 181<dd> </dd> 182<dt>sigma</dt> 183<dd>the standard deviation of the Gaussian, in pixels. </dd> 184 185<dd> </dd> 186<dt>exception</dt> 187<dd>return any errors or warnings in this structure. </dd> 188 189<dd> </dd> 190</dl> 191<h2><a href="../../api/MagickCore/fx_8c.html" id="ColorizeImage">ColorizeImage</a></h2> 192 193<p>ColorizeImage() blends the fill color with each pixel in the image. A percentage blend is specified with opacity. Control the application of different color components by specifying a different percentage for each component (e.g. 90/100/10 is 90 red, 100 green, and 10 blue).</p> 194 195<p>The format of the ColorizeImage method is:</p> 196 197<pre class="text"> 198Image *ColorizeImage(const Image *image,const char *blend, 199 const PixelInfo *colorize,ExceptionInfo *exception) 200</pre> 201 202<p>A description of each parameter follows:</p> 203 204<dd> 205</dd> 206 207<dd> </dd> 208<dl class="dl-horizontal"> 209<dt>image</dt> 210<dd>the image. </dd> 211 212<dd> </dd> 213<dt>blend</dt> 214<dd> A character string indicating the level of blending as a percentage. </dd> 215 216<dd> </dd> 217<dt>colorize</dt> 218<dd>A color value. </dd> 219 220<dd> </dd> 221<dt>exception</dt> 222<dd>return any errors or warnings in this structure. </dd> 223 224<dd> </dd> 225</dl> 226<h2><a href="../../api/MagickCore/fx_8c.html" id="ColorMatrixImage">ColorMatrixImage</a></h2> 227 228<p>ColorMatrixImage() applies color transformation to an image. This method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255).</p> 229 230<p>The format of the ColorMatrixImage method is:</p> 231 232<pre class="text"> 233Image *ColorMatrixImage(const Image *image, 234 const KernelInfo *color_matrix,ExceptionInfo *exception) 235</pre> 236 237<p>A description of each parameter follows:</p> 238 239<dd> 240</dd> 241 242<dd> </dd> 243<dl class="dl-horizontal"> 244<dt>image</dt> 245<dd>the image. </dd> 246 247<dd> </dd> 248<dt>color_matrix</dt> 249<dd> the color matrix. </dd> 250 251<dd> </dd> 252<dt>exception</dt> 253<dd>return any errors or warnings in this structure. </dd> 254 255<dd> </dd> 256</dl> 257<h2><a href="../../api/MagickCore/fx_8c.html" id="FxImage">FxImage</a></h2> 258 259<p>FxImage() applies a mathematical expression to the specified image.</p> 260 261<p>The format of the FxImage method is:</p> 262 263<pre class="text"> 264Image *FxImage(const Image *image,const char *expression, 265 ExceptionInfo *exception) 266</pre> 267 268<p>A description of each parameter follows:</p> 269 270<dd> 271</dd> 272 273<dd> </dd> 274<dl class="dl-horizontal"> 275<dt>image</dt> 276<dd>the image. </dd> 277 278<dd> </dd> 279<dt>expression</dt> 280<dd>A mathematical expression. </dd> 281 282<dd> </dd> 283<dt>exception</dt> 284<dd>return any errors or warnings in this structure. </dd> 285 286<dd> </dd> 287</dl> 288<h2><a href="../../api/MagickCore/fx_8c.html" id="ImplodeImage">ImplodeImage</a></h2> 289 290<p>ImplodeImage() creates a new image that is a copy of an existing one with the image pixels "implode" by the specified percentage. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.</p> 291 292<p>The format of the ImplodeImage method is:</p> 293 294<pre class="text"> 295Image *ImplodeImage(const Image *image,const double amount, 296 const PixelInterpolateMethod method,ExceptionInfo *exception) 297</pre> 298 299<p>A description of each parameter follows:</p> 300 301<dd> 302</dd> 303 304<dd> </dd> 305<dl class="dl-horizontal"> 306<dt>implode_image</dt> 307<dd>Method ImplodeImage returns a pointer to the image after it is implode. A null image is returned if there is a memory shortage. </dd> 308 309<dd> </dd> 310<dt>image</dt> 311<dd>the image. </dd> 312 313<dd> </dd> 314<dt>amount</dt> 315<dd> Define the extent of the implosion. </dd> 316 317<dd> </dd> 318<dt>method</dt> 319<dd>the pixel interpolation method. </dd> 320 321<dd> </dd> 322<dt>exception</dt> 323<dd>return any errors or warnings in this structure. </dd> 324 325<dd> </dd> 326</dl> 327<h2><a href="../../api/MagickCore/fx_8c.html" id="The_MorphImages">The MorphImages</a></h2> 328 329<p>The MorphImages() method requires a minimum of two images. The first image is transformed into the second by a number of intervening images as specified by frames.</p> 330 331<p>The format of the MorphImage method is:</p> 332 333<pre class="text"> 334Image *MorphImages(const Image *image,const size_t number_frames, 335 ExceptionInfo *exception) 336</pre> 337 338<p>A description of each parameter follows:</p> 339 340<dd> 341</dd> 342 343<dd> </dd> 344<dl class="dl-horizontal"> 345<dt>image</dt> 346<dd>the image. </dd> 347 348<dd> </dd> 349<dt>number_frames</dt> 350<dd> Define the number of in-between image to generate. The more in-between frames, the smoother the morph. </dd> 351 352<dd> </dd> 353<dt>exception</dt> 354<dd>return any errors or warnings in this structure. </dd> 355 356<dd> </dd> 357</dl> 358<h2><a href="../../api/MagickCore/fx_8c.html" id="PlasmaImage">PlasmaImage</a></h2> 359 360<p>PlasmaImage() initializes an image with plasma fractal values. The image must be initialized with a base color and the random number generator seeded before this method is called.</p> 361 362<p>The format of the PlasmaImage method is:</p> 363 364<pre class="text"> 365MagickBooleanType PlasmaImage(Image *image,const SegmentInfo *segment, 366 size_t attenuate,size_t depth,ExceptionInfo *exception) 367</pre> 368 369<p>A description of each parameter follows:</p> 370 371<dd> 372</dd> 373 374<dd> </dd> 375<dl class="dl-horizontal"> 376<dt>image</dt> 377<dd>the image. </dd> 378 379<dd> </dd> 380<dt>segment</dt> 381<dd> Define the region to apply plasma fractals values. </dd> 382 383<dd> </dd> 384<dt>attenuate</dt> 385<dd>Define the plasma attenuation factor. </dd> 386 387<dd> </dd> 388<dt>depth</dt> 389<dd>Limit the plasma recursion depth. </dd> 390 391<dd> </dd> 392<dt>exception</dt> 393<dd>return any errors or warnings in this structure. </dd> 394 395<dd> </dd> 396</dl> 397<h2><a href="../../api/MagickCore/fx_8c.html" id="PolaroidImage">PolaroidImage</a></h2> 398 399<p>PolaroidImage() simulates a Polaroid picture.</p> 400 401<p>The format of the PolaroidImage method is:</p> 402 403<pre class="text"> 404Image *PolaroidImage(const Image *image,const DrawInfo *draw_info, 405 const char *caption,const double angle, 406 const PixelInterpolateMethod method,ExceptionInfo exception) 407</pre> 408 409<p>A description of each parameter follows:</p> 410 411<dd> 412</dd> 413 414<dd> </dd> 415<dl class="dl-horizontal"> 416<dt>image</dt> 417<dd>the image. </dd> 418 419<dd> </dd> 420<dt>draw_info</dt> 421<dd>the draw info. </dd> 422 423<dd> </dd> 424<dt>caption</dt> 425<dd>the Polaroid caption. </dd> 426 427<dd> </dd> 428<dt>angle</dt> 429<dd>Apply the effect along this angle. </dd> 430 431<dd> </dd> 432<dt>method</dt> 433<dd>the pixel interpolation method. </dd> 434 435<dd> </dd> 436<dt>exception</dt> 437<dd>return any errors or warnings in this structure. </dd> 438 439<dd> </dd> 440</dl> 441<h2><a href="../../api/MagickCore/fx_8c.html" id="MagickSepiaToneImage">MagickSepiaToneImage</a></h2> 442 443<p>MagickSepiaToneImage() applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the sepia toning. A threshold of 80 is a good starting point for a reasonable tone.</p> 444 445<p>The format of the SepiaToneImage method is:</p> 446 447<pre class="text"> 448Image *SepiaToneImage(const Image *image,const double threshold, 449 ExceptionInfo *exception) 450</pre> 451 452<p>A description of each parameter follows:</p> 453 454<dd> 455</dd> 456 457<dd> </dd> 458<dl class="dl-horizontal"> 459<dt>image</dt> 460<dd>the image. </dd> 461 462<dd> </dd> 463<dt>threshold</dt> 464<dd>the tone threshold. </dd> 465 466<dd> </dd> 467<dt>exception</dt> 468<dd>return any errors or warnings in this structure. </dd> 469 470<dd> </dd> 471</dl> 472<h2><a href="../../api/MagickCore/fx_8c.html" id="ShadowImage">ShadowImage</a></h2> 473 474<p>ShadowImage() simulates a shadow from the specified image and returns it.</p> 475 476<p>The format of the ShadowImage method is:</p> 477 478<pre class="text"> 479Image *ShadowImage(const Image *image,const double alpha, 480 const double sigma,const ssize_t x_offset,const ssize_t y_offset, 481 ExceptionInfo *exception) 482</pre> 483 484<p>A description of each parameter follows:</p> 485 486<dd> 487</dd> 488 489<dd> </dd> 490<dl class="dl-horizontal"> 491<dt>image</dt> 492<dd>the image. </dd> 493 494<dd> </dd> 495<dt>alpha</dt> 496<dd>percentage transparency. </dd> 497 498<dd> </dd> 499<dt>sigma</dt> 500<dd>the standard deviation of the Gaussian, in pixels. </dd> 501 502<dd> </dd> 503<dt>x_offset</dt> 504<dd>the shadow x-offset. </dd> 505 506<dd> </dd> 507<dt>y_offset</dt> 508<dd>the shadow y-offset. </dd> 509 510<dd> </dd> 511<dt>exception</dt> 512<dd>return any errors or warnings in this structure. </dd> 513 514<dd> </dd> 515</dl> 516<h2><a href="../../api/MagickCore/fx_8c.html" id="SketchImage">SketchImage</a></h2> 517 518<p>SketchImage() simulates a pencil sketch. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and SketchImage() selects a suitable radius for you. Angle gives the angle of the sketch.</p> 519 520<p>The format of the SketchImage method is:</p> 521 522<pre class="text"> 523 Image *SketchImage(const Image *image,const double radius, 524const double sigma,const double angle,ExceptionInfo *exception) 525</pre> 526 527<p>A description of each parameter follows:</p> 528 529<dd> 530</dd> 531 532<dd> </dd> 533<dl class="dl-horizontal"> 534<dt>image</dt> 535<dd>the image. </dd> 536 537<dd> </dd> 538<dt>radius</dt> 539<dd>the radius of the Gaussian, in pixels, not counting the center pixel. </dd> 540 541<dd> </dd> 542<dt>sigma</dt> 543<dd>the standard deviation of the Gaussian, in pixels. </dd> 544 545<dd> </dd> 546<dt>angle</dt> 547<dd>apply the effect along this angle. </dd> 548 549<dd> </dd> 550<dt>exception</dt> 551<dd>return any errors or warnings in this structure. </dd> 552 553<dd> </dd> 554</dl> 555<h2><a href="../../api/MagickCore/fx_8c.html" id="SolarizeImage">SolarizeImage</a></h2> 556 557<p>SolarizeImage() applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.</p> 558 559<p>The format of the SolarizeImage method is:</p> 560 561<pre class="text"> 562MagickBooleanType SolarizeImage(Image *image,const double threshold, 563 ExceptionInfo *exception) 564</pre> 565 566<p>A description of each parameter follows:</p> 567 568<dd> 569</dd> 570 571<dd> </dd> 572<dl class="dl-horizontal"> 573<dt>image</dt> 574<dd>the image. </dd> 575 576<dd> </dd> 577<dt>threshold</dt> 578<dd> Define the extent of the solarization. </dd> 579 580<dd> </dd> 581<dt>exception</dt> 582<dd>return any errors or warnings in this structure. </dd> 583 584<dd> </dd> 585</dl> 586<h2><a href="../../api/MagickCore/fx_8c.html" id="SteganoImage">SteganoImage</a></h2> 587 588<p>SteganoImage() hides a digital watermark within the image. Recover the hidden watermark later to prove that the authenticity of an image. Offset defines the start position within the image to hide the watermark.</p> 589 590<p>The format of the SteganoImage method is:</p> 591 592<pre class="text"> 593Image *SteganoImage(const Image *image,Image *watermark, 594 ExceptionInfo *exception) 595</pre> 596 597<p>A description of each parameter follows:</p> 598 599<dd> 600</dd> 601 602<dd> </dd> 603<dl class="dl-horizontal"> 604<dt>image</dt> 605<dd>the image. </dd> 606 607<dd> </dd> 608<dt>watermark</dt> 609<dd>the watermark image. </dd> 610 611<dd> </dd> 612<dt>exception</dt> 613<dd>return any errors or warnings in this structure. </dd> 614 615<dd> </dd> 616</dl> 617<h2><a href="../../api/MagickCore/fx_8c.html" id="StereoAnaglyphImage">StereoAnaglyphImage</a></h2> 618 619<p>StereoAnaglyphImage() combines two images and produces a single image that is the composite of a left and right image of a stereo pair. Special red-green stereo glasses are required to view this effect.</p> 620 621<p>The format of the StereoAnaglyphImage method is:</p> 622 623<pre class="text"> 624Image *StereoImage(const Image *left_image,const Image *right_image, 625 ExceptionInfo *exception) 626Image *StereoAnaglyphImage(const Image *left_image, 627 const Image *right_image,const ssize_t x_offset,const ssize_t y_offset, 628 ExceptionInfo *exception) 629</pre> 630 631<p>A description of each parameter follows:</p> 632 633<dd> 634</dd> 635 636<dd> </dd> 637<dl class="dl-horizontal"> 638<dt>left_image</dt> 639<dd>the left image. </dd> 640 641<dd> </dd> 642<dt>right_image</dt> 643<dd>the right image. </dd> 644 645<dd> </dd> 646<dt>exception</dt> 647<dd>return any errors or warnings in this structure. </dd> 648 649<dd> </dd> 650<dt>x_offset</dt> 651<dd>amount, in pixels, by which the left image is offset to the right of the right image. </dd> 652 653<dd> </dd> 654<dt>y_offset</dt> 655<dd>amount, in pixels, by which the left image is offset to the bottom of the right image. </dd> 656 657<dd> </dd> 658 659<dd> </dd> 660</dl> 661<h2><a href="../../api/MagickCore/fx_8c.html" id="SwirlImage">SwirlImage</a></h2> 662 663<p>SwirlImage() swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.</p> 664 665<p>The format of the SwirlImage method is:</p> 666 667<pre class="text"> 668Image *SwirlImage(const Image *image,double degrees, 669 const PixelInterpolateMethod method,ExceptionInfo *exception) 670</pre> 671 672<p>A description of each parameter follows:</p> 673 674<dd> 675</dd> 676 677<dd> </dd> 678<dl class="dl-horizontal"> 679<dt>image</dt> 680<dd>the image. </dd> 681 682<dd> </dd> 683<dt>degrees</dt> 684<dd>Define the tightness of the swirling effect. </dd> 685 686<dd> </dd> 687<dt>method</dt> 688<dd>the pixel interpolation method. </dd> 689 690<dd> </dd> 691<dt>exception</dt> 692<dd>return any errors or warnings in this structure. </dd> 693 694<dd> </dd> 695</dl> 696<h2><a href="../../api/MagickCore/fx_8c.html" id="TintImage">TintImage</a></h2> 697 698<p>TintImage() applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighting function is f(x)=(1-(4.0*((x-0.5)*(x-0.5))))</p> 699 700<p>The format of the TintImage method is:</p> 701 702<pre class="text"> 703Image *TintImage(const Image *image,const char *blend, 704 const PixelInfo *tint,ExceptionInfo *exception) 705</pre> 706 707<p>A description of each parameter follows:</p> 708 709<dd> 710</dd> 711 712<dd> </dd> 713<dl class="dl-horizontal"> 714<dt>image</dt> 715<dd>the image. </dd> 716 717<dd> </dd> 718<dt>blend</dt> 719<dd>A color value used for tinting. </dd> 720 721<dd> </dd> 722<dt>tint</dt> 723<dd>A color value used for tinting. </dd> 724 725<dd> </dd> 726<dt>exception</dt> 727<dd>return any errors or warnings in this structure. </dd> 728 729<dd> </dd> 730</dl> 731<h2><a href="../../api/MagickCore/fx_8c.html" id="VignetteImage">VignetteImage</a></h2> 732 733<p>VignetteImage() softens the edges of the image in vignette style.</p> 734 735<p>The format of the VignetteImage method is:</p> 736 737<pre class="text"> 738Image *VignetteImage(const Image *image,const double radius, 739 const double sigma,const ssize_t x,const ssize_t y, 740 ExceptionInfo *exception) 741</pre> 742 743<p>A description of each parameter follows:</p> 744 745<dd> 746</dd> 747 748<dd> </dd> 749<dl class="dl-horizontal"> 750<dt>image</dt> 751<dd>the image. </dd> 752 753<dd> </dd> 754<dt>radius</dt> 755<dd>the radius of the pixel neighborhood. </dd> 756 757<dd> </dd> 758<dt>sigma</dt> 759<dd>the standard deviation of the Gaussian, in pixels. </dd> 760 761<dd> </dd> 762<dt>x, y</dt> 763<dd> Define the x and y ellipse offset. </dd> 764 765<dd> </dd> 766<dt>exception</dt> 767<dd>return any errors or warnings in this structure. </dd> 768 769<dd> </dd> 770</dl> 771<h2><a href="../../api/MagickCore/fx_8c.html" id="WaveImage">WaveImage</a></h2> 772 773<p>WaveImage() creates a "ripple" effect in the image by shifting the pixels vertically along a sine wave whose amplitude and wavelength is specified by the given parameters.</p> 774 775<p>The format of the WaveImage method is:</p> 776 777<pre class="text"> 778Image *WaveImage(const Image *image,const double amplitude, 779 const double wave_length,const PixelInterpolateMethod method, 780 ExceptionInfo *exception) 781</pre> 782 783<p>A description of each parameter follows:</p> 784 785<dd> 786</dd> 787 788<dd> </dd> 789<dl class="dl-horizontal"> 790<dt>image</dt> 791<dd>the image. </dd> 792 793<dd> </dd> 794<dt>amplitude, wave_length</dt> 795<dd> Define the amplitude and wave length of the sine wave. </dd> 796 797<dd> </dd> 798<dt>interpolate</dt> 799<dd>the pixel interpolation method. </dd> 800 801<dd> </dd> 802<dt>exception</dt> 803<dd>return any errors or warnings in this structure. </dd> 804 805<dd> </dd> 806</dl> 807<h2><a href="../../api/MagickCore/fx_8c.html" id="WaveletDenoiseImage">WaveletDenoiseImage</a></h2> 808 809<p>WaveletDenoiseImage() removes noise from the image using a wavelet transform. The wavelet transform is a fast hierarchical scheme for processing an image using a set of consecutive lowpass and high_pass filters, followed by a decimation. This results in a decomposition into different scales which can be regarded as different “frequency bands”, determined by the mother wavelet. Adapted from dcraw.c by David Coffin.</p> 810 811<p>The format of the WaveletDenoiseImage method is:</p> 812 813<pre class="text"> 814Image *WaveletDenoiseImage(const Image *image,const double threshold, 815 const double softness,ExceptionInfo *exception) 816</pre> 817 818<p>A description of each parameter follows:</p> 819 820<dd> 821</dd> 822 823<dd> </dd> 824<dl class="dl-horizontal"> 825<dt>image</dt> 826<dd>the image. </dd> 827 828<dd> </dd> 829<dt>threshold</dt> 830<dd>set the threshold for smoothing. </dd> 831 832<dd> </dd> 833<dt>softness</dt> 834<dd>attenuate the smoothing threshold. </dd> 835 836<dd> </dd> 837<dt>exception</dt> 838<dd>return any errors or warnings in this structure. </dd> 839 840<dd> </dd> 841</dl> 842</div> 843 </div> 844 </main><!-- /.container --> 845 <footer class="magick-footer"> 846 <p><a href="../../www/security-policy.html">Security</a> • 847 <a href="../../www/architecture.html">Architecture</a> • 848 <a href="../../www/links.html">Related</a> • 849 <a href="../../www/sitemap.html">Sitemap</a> 850 851 <a href="fx.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a> 852 853 <a href="http://pgp.mit.edu/pks/lookup?op=get&search=0x89AB63D48277377A">Public Key</a> • 854 <a href="../../www/support.html">Donate</a> • 855 <a href="../../www/contact.html">Contact Us</a> 856 <br/> 857 <small>© 1999-2019 ImageMagick Studio LLC</small></p> 858 </footer> 859 860 <!-- Javascript assets --> 861 <script src="../assets/magick.js" crossorigin="anonymous"></script> 862 <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script> 863</body> 864</html> 865<!-- Magick Cache 31st December 2018 19:56 -->