From: Cristy Date: Mon, 1 Jan 2018 01:57:02 +0000 (-0500) Subject: ... X-Git-Tag: 7.0.7-19~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8871ec3451d544a93ba6cf58fa6e6bf25271c4a3;p=imagemagick ... --- diff --git a/index.html b/index.html index 60b7e4f38..3cbfada91 100644 --- a/index.html +++ b/index.html @@ -32,7 +32,7 @@
@@ -92,7 +92,7 @@ Use ImageMagickABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to help prevent security vulnerabilities.

-

The current release is ImageMagick 7.0.7-15. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.

+

The current release is ImageMagick 7.0.7-18. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.

The authoritative ImageMagick web site is https://www.imagemagick.org. The authoritative source code repository is https://github.com/ImageMagick. We maintain a source code mirror at https://gitlab.com/ImageMagick.

@@ -241,6 +241,8 @@ Use ImageMagicksecurity policy that suits your local environment.

+

As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as of ImageMagick 7.0.7-17, we introduce the LinearGray colorspace. Gray is non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).

+

Want more performance from ImageMagick? Try these options:

- +
@@ -138,7 +138,7 @@ BuildImageMagickObject release Related • Sitemap - + Public Key • Donate • @@ -152,4 +152,4 @@ BuildImageMagickObject release - \ No newline at end of file + \ No newline at end of file diff --git a/www/advanced-unix-installation.html b/www/advanced-unix-installation.html index fc401362f..10f1aa8b6 100644 --- a/www/advanced-unix-installation.html +++ b/www/advanced-unix-installation.html @@ -32,7 +32,7 @@
@@ -101,7 +101,7 @@

The configure script looks at your environment and decides what it can cobble together to get ImageMagick compiled and installed on your system. This includes finding a compiler, where your compiler header files are located (e.g. stdlib.h), and if any delegate libraries are available for ImageMagick to use (e.g. JPEG, PNG, TIFF, etc.). If you are willing to accept configure's default options, and build from within the source directory, you can simply type:

-
$ cd ImageMagick-7.0.7-15$ ./configure
+
$ cd ImageMagick-7.0.7-18$ ./configure

Watch the configure script output to verify that it finds everything that you think it should. Pay particular attention to the last lines of the script output. For example, here is a recent report from our system:

@@ -545,7 +545,7 @@ sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms

Download the ImageMagick source distribution and verify the distribution against its message digest.

Unpack and change into the top-level ImageMagick directory:

-
$ tar xvzf ImageMagick-7.0.7-15.tar.gz$ cd ImageMagick-7.0.7-15

Configure ImageMagick:

+
$ tar xvzf ImageMagick-7.0.7-18.tar.gz$ cd ImageMagick-7.0.7-18

Configure ImageMagick:

./configure --prefix=/opt --with-quantum-depth=16 \
   --disable-dependency-tracking --with-x=yes \
   --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
@@ -572,7 +572,7 @@ sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
 
 

Although you can download and install delegate libraries yourself, many are already available in the GnuWin32 distribution. Download and install whichever delegate libraries you require such as JPEG, PNG, TIFF, etc. Make sure you specify the development headers when you install a package. Next type,

-
$ tar jxvf ImageMagick-7.0.7-?.tar.bz2
$ cd ImageMagick-7.0.7-15
$ export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
$ export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
$ ./configure --without-perl
$ make
$ sudo make install
+
$ tar jxvf ImageMagick-7.0.7-?.tar.bz2
$ cd ImageMagick-7.0.7-18
$ export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
$ export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
$ ./configure --without-perl
$ make
$ sudo make install

Dealing with Unexpected Problems

Chances are the download, configure, build, and install of ImageMagick went flawlessly as it is intended, however, certain systems and environments may cause one or more steps to fail. We discuss a few problems we've run across and how to take corrective action to ensure you have a working release of ImageMagick

@@ -625,7 +625,7 @@ no encode delegate for this image format Related • Sitemap - + Public Key • Donate • @@ -639,3 +639,4 @@ no encode delegate for this image format + \ No newline at end of file diff --git a/www/advanced-windows-installation.html b/www/advanced-windows-installation.html index 5cf7e4112..67ec1ac58 100644 --- a/www/advanced-windows-installation.html +++ b/www/advanced-windows-installation.html @@ -32,7 +32,7 @@
@@ -344,7 +344,7 @@ dmake release
  1. Double-click on - VisualMagick/bin/ImageMagick-7.0.7-15-Q16-windows-dll.exe + VisualMagick/bin/ImageMagick-7.0.7-18-Q16-windows-dll.exe to launch the ImageMagick binary distribution.
  2. Complete the installer screens to install ImageMagick on your system.
@@ -398,7 +398,7 @@ _MAGICKMOD_ Related • Sitemap - + Public Key • Donate • @@ -412,4 +412,4 @@ _MAGICKMOD_ - \ No newline at end of file + \ No newline at end of file diff --git a/www/animate.html b/www/animate.html index ad3a5b1e3..1f1f92df9 100644 --- a/www/animate.html +++ b/www/animate.html @@ -32,7 +32,7 @@
@@ -543,7 +543,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -557,4 +557,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/api.html b/www/api.html index 8437ddf10..08f15cee7 100644 --- a/www/api.html +++ b/www/api.html @@ -164,7 +164,7 @@

Back to top • Public Key • - Contact Us

+ Contact Us

© 1999-2016 ImageMagick Studio LLC

diff --git a/www/api/Image++.html b/www/api/Image++.html index 2fd15f297..e4cf3b9c2 100644 --- a/www/api/Image++.html +++ b/www/api/Image++.html @@ -32,7 +32,7 @@
@@ -3218,7 +3218,7 @@ the region set by a preceding getPixels or getConstPixels call. Related • Sitemap - + Public Key • Donate • @@ -3232,3 +3232,4 @@ the region set by a preceding getPixels or getConstPixels call. + \ No newline at end of file diff --git a/www/api/animate.html b/www/api/animate.html index 28c6351db..47ae798ae 100644 --- a/www/api/animate.html +++ b/www/api/animate.html @@ -32,7 +32,7 @@
@@ -543,7 +543,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -557,4 +557,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/annotate.html b/www/api/annotate.html index b8af08ca5..771f0ad19 100644 --- a/www/api/annotate.html +++ b/www/api/annotate.html @@ -32,7 +32,7 @@
@@ -313,7 +313,7 @@ MagickBooleanType GetTypeMetrics(Image *image,const DrawInfo *draw_info, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/attribute.html b/www/api/attribute.html index 722586152..cc8652588 100644 --- a/www/api/attribute.html +++ b/www/api/attribute.html @@ -32,7 +32,7 @@
@@ -397,7 +397,7 @@ MagickBooleanType SetImageType(Image *image,const ImageType type, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/blob.html b/www/api/blob.html index 15b0fa104..5727b1a37 100644 --- a/www/api/blob.html +++ b/www/api/blob.html @@ -32,7 +32,7 @@
@@ -450,7 +450,7 @@ MagickBooleanType InjectImageBlob(const ImageInfo *image_info, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/cache-view.html b/www/api/cache-view.html index 046d34151..c2add6c49 100644 --- a/www/api/cache-view.html +++ b/www/api/cache-view.html @@ -32,7 +32,7 @@
@@ -676,7 +676,7 @@ MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *cache_view, Related • Sitemap - + Public Key • Donate • @@ -690,4 +690,4 @@ MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *cache_view, - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/cache.html b/www/api/cache.html index 7889ab75e..460cfc1d5 100644 --- a/www/api/cache.html +++ b/www/api/cache.html @@ -32,7 +32,7 @@
@@ -482,7 +482,7 @@ MagickBooleanType SyncAuthenticPixels(Image *image, Related • Sitemap - + Public Key • Donate • @@ -496,4 +496,4 @@ MagickBooleanType SyncAuthenticPixels(Image *image, - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/channel.html b/www/api/channel.html index a59705c94..a93eb549a 100644 --- a/www/api/channel.html +++ b/www/api/channel.html @@ -32,7 +32,7 @@
@@ -277,7 +277,7 @@ MagickBooleanType SetImageAlphaChannel(Image *image, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/cipher.html b/www/api/cipher.html index 9023eb198..955e85210 100644 --- a/www/api/cipher.html +++ b/www/api/cipher.html @@ -32,7 +32,7 @@
@@ -150,7 +150,7 @@ Examples Related • Sitemap - + Public Key • Donate • @@ -164,4 +164,4 @@ Examples window.jQuery || document.write(' - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/color.html b/www/api/color.html index b5850651b..0ec88dade 100644 --- a/www/api/color.html +++ b/www/api/color.html @@ -32,7 +32,7 @@
@@ -136,7 +136,7 @@ gray(127) near mid gray gray(50%) mid gray graya(50%, 0.5) semi-transparent mid gray
-

For linear gray values add -colorspace RGB -colorspace gray when creating gray colors

+

For linear gray values add -colorspace RGB -colorspace Gray or -colorspace LinearGray when creating gray colors. The latter is new as of Imagemagick 6.9.9-29 and 7.0.7-17.

The ImageMagick color model also supports hue-saturation-lightness (HSL) and hue-saturation-brightness (HSB) colors as a complement to numerical sRGB colors. HSL colors are encoding as a triple (hue, saturation, lightness). Likewise HSB colors are encoding as a triple (hue, saturation, brightness). HSL or HSB triples are either direct values (hue 0—360, saturation 0—255, lightness or brightness 0—255) or with S,L,B as percentage values relative to these ranges.

@@ -196,8 +196,15 @@ hsla(120, 255, 127.5, 1.0) the same, with an alpha value of 1.0
magick -size 100x100 xc:"cielab(91.1131%,-18.8571%,-5.5436%)" -colorspace sRGB cyan.png

Or specify colors generically with the icc-color keyword, for example:

-
icc-color(cmyk, 0.11, 0.48, 0.83, 0.00)
-icc-color(rgb, white)
+

+icc-color(cmyk, 0.11, 0.48, 0.83, 0.00)  cymk
+icc-color(rgb, 1, 0, 0)                  linear rgb
+icc-color(rgb, red)                      linear rgb
+icc-color(lineargray, 0.5)               linear gray
+icc-color(srgb, 1, 0, 0)                 non-linear rgb
+icc-color(srgb, red)                     non-linear rgb
+icc-color(gray, 0.5)                     non-linear gray
+

Or specify uncalibrated device colors with the device- keyword, for example:

device-gray(0.5)
@@ -4947,7 +4954,7 @@ device-cmyk(0.11, 0.48, 0.83, 0.00)
Related • Sitemap - + Public Key • Donate • @@ -4961,4 +4968,4 @@ device-cmyk(0.11, 0.48, 0.83, 0.00) - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/colormap.html b/www/api/colormap.html index b27287f84..56f23cf28 100644 --- a/www/api/colormap.html +++ b/www/api/colormap.html @@ -32,7 +32,7 @@
@@ -156,7 +156,7 @@ MagickBooleanType CycleColormapImage(Image *image,const ssize_t displace, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/colorspace.html b/www/api/colorspace.html index c099abc9d..1162dba8b 100644 --- a/www/api/colorspace.html +++ b/www/api/colorspace.html @@ -32,7 +32,7 @@
@@ -81,8 +81,42 @@
-

SetImageColorspaceSetImageGraySetImageMonochromeTransformImageColorspace

+

GetImageColorspaceTypeSetImageColorspaceSetImageGraySetImageMonochromeTransformImageColorspace

+

GetImageColorspaceType

+ +

GetImageColorspaceType() returns the potential type of image: sRGBColorspaceType, RGBColorspaceType, GRAYColorspaceType, etc.

+ +

To ensure the image type matches its potential, use SetImageColorspaceType():

+ +
+    (void) SetImageColorspaceType(image,GetImageColorspaceType(image),
+exception);
+
+ +

The format of the GetImageColorspaceType method is:

+ +
+ColorspaceType GetImageColorspaceType(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+

SetImageColorspace

SetImageColorspace() sets the colorspace member of the Image structure.

@@ -208,7 +242,7 @@ MagickBooleanType TransformImageColorspace(Image *image, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/compare.html b/www/api/compare.html index 20235a3a8..07a423abc 100644 --- a/www/api/compare.html +++ b/www/api/compare.html @@ -32,7 +32,7 @@
@@ -433,7 +433,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -447,4 +447,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/composite.html b/www/api/composite.html index 470cfa422..9f9777287 100644 --- a/www/api/composite.html +++ b/www/api/composite.html @@ -32,7 +32,7 @@
@@ -537,7 +537,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -551,4 +551,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/constitute.html b/www/api/constitute.html index 89d2e271f..9e668a9b1 100644 --- a/www/api/constitute.html +++ b/www/api/constitute.html @@ -32,7 +32,7 @@
@@ -320,7 +320,7 @@ MagickBooleanType WriteImages(const ImageInfo *image_info,Image *images, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/decorate.html b/www/api/decorate.html index 8c7bfe38f..275000e86 100644 --- a/www/api/decorate.html +++ b/www/api/decorate.html @@ -32,7 +32,7 @@
@@ -198,7 +198,7 @@ MagickBooleanType RaiseImage(const Image *image, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/deprecate.html b/www/api/deprecate.html index 5a690b741..a577a2594 100644 --- a/www/api/deprecate.html +++ b/www/api/deprecate.html @@ -32,7 +32,7 @@
@@ -146,7 +146,7 @@ MagickBooleanType MagickSetImageAlphaColor(MagickWand *wand, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/display.html b/www/api/display.html index cb2c3e332..b8ac30331 100644 --- a/www/api/display.html +++ b/www/api/display.html @@ -32,7 +32,7 @@
@@ -577,7 +577,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -591,4 +591,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/distort.html b/www/api/distort.html index 714fd2fb7..6fa10db7a 100644 --- a/www/api/distort.html +++ b/www/api/distort.html @@ -32,7 +32,7 @@
@@ -255,7 +255,7 @@ Image *SparseColorImage(const Image *image, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/draw.html b/www/api/draw.html index 2ae7366c5..20be02901 100644 --- a/www/api/draw.html +++ b/www/api/draw.html @@ -32,7 +32,7 @@
@@ -379,7 +379,7 @@ void GetAffineMatrix(AffineMatrix *affine_matrix) Related • Sitemap - + Public Key • Donate • diff --git a/www/api/drawing-wand.html b/www/api/drawing-wand.html index c7066453f..97ca6af38 100644 --- a/www/api/drawing-wand.html +++ b/www/api/drawing-wand.html @@ -32,7 +32,7 @@
@@ -3856,7 +3856,7 @@ MagickBooleanType PushDrawingWand(DrawingWand *wand) Related • Sitemap - + Public Key • Donate • diff --git a/www/api/effect.html b/www/api/effect.html index 8643e8266..8249071f9 100644 --- a/www/api/effect.html +++ b/www/api/effect.html @@ -32,7 +32,7 @@
@@ -725,7 +725,7 @@ ExceptionInfo *exception) Related • Sitemap - + Public Key • Donate • diff --git a/www/api/enhance.html b/www/api/enhance.html index d9bc32db3..0fc97b151 100644 --- a/www/api/enhance.html +++ b/www/api/enhance.html @@ -32,7 +32,7 @@
@@ -773,7 +773,7 @@ MagickBooleanType SigmoidalContrastImage(Image *image, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/exception.html b/www/api/exception.html index c7c3c760a..9a977d9f9 100644 --- a/www/api/exception.html +++ b/www/api/exception.html @@ -32,7 +32,7 @@
@@ -282,7 +282,7 @@ Related • Sitemap - + Public Key • Donate • @@ -296,4 +296,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/feature.html b/www/api/feature.html index dffab3933..c11f916b9 100644 --- a/www/api/feature.html +++ b/www/api/feature.html @@ -32,7 +32,7 @@
@@ -245,7 +245,7 @@ Image *MeanShiftImage(const Image *image,const size_t width, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/fourier.html b/www/api/fourier.html index ac87eb02a..ea413e6e9 100644 --- a/www/api/fourier.html +++ b/www/api/fourier.html @@ -32,7 +32,7 @@
@@ -190,7 +190,7 @@ Image *InverseFourierTransformImage(const Image *magnitude_image, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/fx.html b/www/api/fx.html index 04c52ddda..48a9340cd 100644 --- a/www/api/fx.html +++ b/www/api/fx.html @@ -7,12 +7,12 @@ - The Fx Special Effects Image Operator @ ImageMagick + MagickCore, C API: Add a Special Effect @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -32,7 +32,7 @@
@@ -81,338 +81,764 @@
-

The Fx Special Effects Image Operator • The Anatomy of an Fx Expression

- - - -

Use the Fx special effects image operator to apply a mathematical expression to an image or image channels. Use Fx to:

- -
    -
  • create canvases, gradients, mathematical colormaps
  • -
  • move color values between images and channels
  • -
  • translate, flip, mirror, rotate, scale, shear and generally distort images
  • -
  • merge or composite multiple images together
  • -
  • convolve or merge neighboring pixels together
  • -
  • generate image metrics or 'fingerprints'
  • -
- -

The expression can be simple:

- -
convert -size 64x64 canvas:black -channel blue -fx "1/2" fx_navy.png
-
- -

Here, we convert a black to a navy blue image:

- -
    - black - ==> - navy -
- -

Or the expression can be complex:

- -
convert rose.jpg \  
-  -fx "(1.0/(1.0+exp(10.0*(0.5-u)))-0.006693)*1.0092503" \ 
-  rose-sigmoidal.png'
-
- -

This expression results in a high contrast version of the image:

- -
    - rose - ==> - rose-sigmoidal -
- -

The expression can include variable assignments. Assignments, in most cases, reduce the complexity of an expression and permit some operations that might not be possible any other way. For example, lets create a radial gradient:

- -
convert -size 70x70 canvas: \
-  -fx "Xi=i-w/2; Yj=j-h/2; 1.2*(0.5-hypot(Xi,Yj)/70.0)+0.5" 
-  radial-gradient.png'
-
- -

The command above returns this image:

- -
    - radial-gradient -
- -

This FX expression adds random noise to an image:

- -
convert photo.jpg -fx \'iso=32; rone=rand(); rtwo=rand(); \
-  myn=sqrt(-2*ln(rone))*cos(2*Pi*rtwo); myntwo=sqrt(-2*ln(rtwo))* \
-  cos(2*Pi*rone); pnoise=sqrt(p)*myn*sqrt(iso)* \ 
-  channel(4.28,3.86,6.68,0)/255; max(0,p+pnoise)\' noisy.png
-
- -

See Using FX, The Special Effects Image Operator for more examples.

- -

The next section discusses the Fx expression language.

- -

The Anatomy of an Fx Expression

- -

The Fx Expression Language

- -

The formal Fx expression language is defined here:

- -
-
numbers:
-
integer, floating point, scientific notation (+/- required, e.g. 3.81469e-06), International System number postfixes (.e.g KB, Mib, GB, etc.)
-
constants:
-
E (Euler's number), Epsilon, QuantumRange, QuantumScale, Opaque, Phi (golden ratio), Pi, Transparent
-
Fx operators (in order of precedence):
-
^ (power), unary -, *, /, % (modulo), +, -, - <<, >>, <, <=, >, >=, ==, !=, - & (bitwise AND), | (bitwise OR), - && (logical AND), || (logical OR), - ~ (logical NOT), ?: (ternary conditional)
-
math functions:
-
abs(), acos(), acosh(), airy(), alt(), asin(), asinh(), atan(), atanh(), atan2(), ceil(), clamp(), cos(), cosh(), debug(), drc(), erf(), exp(), floor(), gauss(), gcd(), hypot(), int(), isnan(), j0(), j1(), jinc(), ln(), log(), logtwo(), max(), min(), mod(), not(), pow(), rand(), round(), sign(), sin(), sinc(), sinh(), sqrt(), squish(), tan(), tanh(), trunc()
-
channel functions:
-
channel(r,g,b,a), channel(c,m,y,k,a)
-
color names:
-
red, cyan, black, etc.
-
color functions:
-
srgb(), srgba(), rgb(), rgba(), cmyk(), cmyka(), hsl(), hsla(), etc.
-
color hex values:
-
#ccc, #cbfed0, #b9e1cc00, etc.
-
symbols:
-
  • u=> first image in list
  • -
  • v=> second image in list
  • -
  • s=> current image in list (for %[fx:] otherwise = u)
  • -
  • t=> index of current image (s) in list
  • -
  • n=> number of images in list
  • - -
  • i=> column offset
  • -
  • j=> row offset
  • -
  • p=> pixel to use (absolute or relative to current pixel)
  • - -
  • w=> width of this image
  • -
  • h=> height of this image
  • -
  • z=> channel depth
  • - -
  • r=> red value (from RGBA), of a specific or current pixel
  • -
  • g=> green
  • -
  • b=> blue
  • -
  • a=> alpha
  • -
  • o=> opacity
  • - -
  • c=> cyan value of CMYK color of pixel
  • -
  • y=> yellow
  • -
  • m=> magenta
  • -
  • k=> black
  • - -
  • intensity=> pixel intensity
  • - -
  • hue=> pixel hue
  • -
  • saturation=> pixel saturation
  • -
  • lightness=> pixel lightness
  • -
  • luma=> pixel luma
  • - -
  • page.width=> page width
  • -
  • page.height=> page height
  • -
  • page.x=> page x offset
  • -
  • page.y=> page y offset
  • - -
  • resolution.x=> x resolution
  • -
  • resolution.y=> y resolution
  • - -
  • depth=> image depth
  • -
  • minima=> image minima
  • -
  • maxima=> image maxima
  • -
  • mean=> image mean
  • -
  • standard_deviation=> image standard deviation
  • -
  • kurtosis=> image kurtosis
  • -
  • skewness=> image skewness (add a channel specifier to compute a statistic for that channel, e.g. depth.r)
  • -
    iterators:
    -
    while()
    +

    AddNoiseImageBlueShiftImageCharcoalImageColorizeImageColorMatrixImageFxImageImplodeImageThe MorphImagesPlasmaImagePolaroidImageMagickSepiaToneImageShadowImageSketchImageSolarizeImageSteganoImageStereoAnaglyphImageSwirlImageTintImageVignetteImageWaveImageWaveletDenoiseImage

    + +

    AddNoiseImage

    + +

    AddNoiseImage() adds random noise to the image.

    + +

    The format of the AddNoiseImage method is:

    + +
    +Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
    +  const double attenuate,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    channel
    +
    the channel type.
    + +
    +
    noise_type
    +
    The type of noise: Uniform, Gaussian, Multiplicative, Impulse, Laplacian, or Poisson.
    + +
    +
    attenuate
    +
    attenuate the random distribution.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    BlueShiftImage

    + +

    BlueShiftImage() mutes the colors of the image to simulate a scene at nighttime in the moonlight.

    + +

    The format of the BlueShiftImage method is:

    + +
    +Image *BlueShiftImage(const Image *image,const double factor,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    factor
    +
    the shift factor.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    CharcoalImage

    + +

    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.

    + +

    The format of the CharcoalImage method is:

    + +
    +Image *CharcoalImage(const Image *image,const double radius,
    +  const double sigma,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    radius
    +
    the radius of the pixel neighborhood.
    + +
    +
    sigma
    +
    the standard deviation of the Gaussian, in pixels.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    ColorizeImage

    + +

    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).

    + +

    The format of the ColorizeImage method is:

    + +
    +Image *ColorizeImage(const Image *image,const char *blend,
    +  const PixelInfo *colorize,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    blend
    +
    A character string indicating the level of blending as a percentage.
    + +
    +
    colorize
    +
    A color value.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    ColorMatrixImage

    + +

    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).

    + +

    The format of the ColorMatrixImage method is:

    + +
    +Image *ColorMatrixImage(const Image *image,
    +  const KernelInfo *color_matrix,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    color_matrix
    +
    the color matrix.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    FxImage

    + +

    FxImage() applies a mathematical expression to the specified image.

    + +

    The format of the FxImage method is:

    + +
    +Image *FxImage(const Image *image,const char *expression,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    expression
    +
    A mathematical expression.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    ImplodeImage

    + +

    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.

    + +

    The format of the ImplodeImage method is:

    + +
    +Image *ImplodeImage(const Image *image,const double amount,
    +  const PixelInterpolateMethod method,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    implode_image
    +
    Method ImplodeImage returns a pointer to the image after it is implode. A null image is returned if there is a memory shortage.
    + +
    +
    image
    +
    the image.
    + +
    +
    amount
    +
    Define the extent of the implosion.
    + +
    +
    method
    +
    the pixel interpolation method.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    The MorphImages

    + +

    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.

    + +

    The format of the MorphImage method is:

    + +
    +Image *MorphImages(const Image *image,const size_t number_frames,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    number_frames
    +
    Define the number of in-between image to generate. The more in-between frames, the smoother the morph.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    PlasmaImage

    + +

    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.

    + +

    The format of the PlasmaImage method is:

    + +
    +MagickBooleanType PlasmaImage(Image *image,const SegmentInfo *segment,
    +  size_t attenuate,size_t depth,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    segment
    +
    Define the region to apply plasma fractals values.
    + +
    +
    attenuate
    +
    Define the plasma attenuation factor.
    + +
    +
    depth
    +
    Limit the plasma recursion depth.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    PolaroidImage

    + +

    PolaroidImage() simulates a Polaroid picture.

    + +

    The format of the PolaroidImage method is:

    + +
    +Image *PolaroidImage(const Image *image,const DrawInfo *draw_info,
    +  const char *caption,const double angle,
    +  const PixelInterpolateMethod method,ExceptionInfo exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    draw_info
    +
    the draw info.
    + +
    +
    caption
    +
    the Polaroid caption.
    + +
    +
    angle
    +
    Apply the effect along this angle.
    + +
    +
    method
    +
    the pixel interpolation method.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    MagickSepiaToneImage

    + +

    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.

    + +

    The format of the SepiaToneImage method is:

    + +
    +Image *SepiaToneImage(const Image *image,const double threshold,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    threshold
    +
    the tone threshold.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    ShadowImage

    + +

    ShadowImage() simulates a shadow from the specified image and returns it.

    + +

    The format of the ShadowImage method is:

    + +
    +Image *ShadowImage(const Image *image,const double alpha,
    +  const double sigma,const ssize_t x_offset,const ssize_t y_offset,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    alpha
    +
    percentage transparency.
    + +
    +
    sigma
    +
    the standard deviation of the Gaussian, in pixels.
    + +
    +
    x_offset
    +
    the shadow x-offset.
    + +
    +
    y_offset
    +
    the shadow y-offset.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    SketchImage

    + +

    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.

    + +

    The format of the SketchImage method is:

    + +
    +    Image *SketchImage(const Image *image,const double radius,
    +const double sigma,const double angle,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    radius
    +
    the radius of the Gaussian, in pixels, not counting the center pixel.
    + +
    +
    sigma
    +
    the standard deviation of the Gaussian, in pixels.
    + +
    +
    angle
    +
    apply the effect along this angle.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    SolarizeImage

    + +

    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.

    + +

    The format of the SolarizeImage method is:

    + +
    +MagickBooleanType SolarizeImage(Image *image,const double threshold,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    threshold
    +
    Define the extent of the solarization.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    SteganoImage

    + +

    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.

    + +

    The format of the SteganoImage method is:

    + +
    +Image *SteganoImage(const Image *image,Image *watermark,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    watermark
    +
    the watermark image.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    StereoAnaglyphImage

    + +

    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.

    + +

    The format of the StereoAnaglyphImage method is:

    + +
    +Image *StereoImage(const Image *left_image,const Image *right_image,
    +  ExceptionInfo *exception)
    +Image *StereoAnaglyphImage(const Image *left_image,
    +  const Image *right_image,const ssize_t x_offset,const ssize_t y_offset,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    left_image
    +
    the left image.
    + +
    +
    right_image
    +
    the right image.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    x_offset
    +
    amount, in pixels, by which the left image is offset to the right of the right image.
    + +
    +
    y_offset
    +
    amount, in pixels, by which the left image is offset to the bottom of the right image.
    + +
    + +
    +

    SwirlImage

    + +

    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.

    + +

    The format of the SwirlImage method is:

    + +
    +Image *SwirlImage(const Image *image,double degrees,
    +  const PixelInterpolateMethod method,ExceptionInfo *exception)
    +
    +

    A description of each parameter follows:

    -

    The Fx Expression

    - -

    An Fx expression may include any combination of the following:

    -
    -
    x ^ y
    exponentiation (xy)
    -
    ( ... )
    grouping
    -
    x * y
    multiplication (the asterisk * is optional, for example, 2u or 2(x+y) are acceptable)
    -
    x / y
    division
    -
    x % y
    modulo
    -
    x + y
    addition
    -
    x - y
    subtraction
    -
    x << y
    left shift
    -
    x >> y
    right shift
    -
    x < y
    boolean relation, return value 1.0 if x < y, otherwise 0.0
    -
    x <= y
    boolean relation, return value 1.0 if x <= y, otherwise 0.0
    -
    x > y
    boolean relation, return value 1.0 if x > y, otherwise 0.0
    -
    x >= y
    boolean relation, return value 1.0 if x >= y, otherwise 0.0
    -
    x == y
    boolean relation, return value 1.0 if x == y, otherwise 0.0
    -
    x != y
    boolean relation, return value 1.0 if x != y, otherwise 0.0
    -
    x & y
    binary AND
    -
    x | y
    binary OR
    -
    x && y
    logical AND connective, return value 1.0 if x > 0 and y > 0, otherwise 0.0
    -
    x || y
    logical OR connective (inclusive), return value 1.0 if x > 0 or y > 0 (or both), otherwise 0.0
    -
    ~x
    logical NOT operator, return value 1.0 if not x > 0, otherwise 0.0
    -
    +x
    unary plus, return 1.0*value
    -
    -x
    unary minus, return -1.0*value
    -
    x ? y : z
    ternary conditional expression, return value y if x != 0, otherwise z; only one ternary conditional permitted per statement
    -
    x = y
    assignment; assignment variables are restricted to letter combinations only (e.g. Xi not X1)
    -
    x ; y
    statement separator
    -
    phi
    constant (1.618034...)
    -
    pi
    constant (3.14159265359...)
    -
    e
    constant (2.71828...)
    -
    QuantumRange
    constant maximum pixel value (255 for Q8, 65535 for Q16)
    -
    QuantumScale
    constant 1.0/QuantumRange
    -
    intensity
    pixel intensity whose value respects the -intensity option.
    -
    hue
    pixel hue
    -
    saturation
    pixel saturation
    -
    lightness
    pixel lightness; equivalent to 0.5*max(red,green,blue) + 0.5*min(red,green,blue)
    -
    luminance
    pixel luminance; equivalent to 0.212656*red + 0.715158*green + 0.072186*blue
    -
    red, green, blue, etc.
    color names
    -
    #ccc, #cbfed0, #b9e1cc00, etc.
    color hex values
    -
    rgb(), rgba(), cmyk(), cmyka(), hsl(), hsla()
    color functions
    -
    s, t, u, v, n, i, j, w, h, z, r, g, b, a, o, c, y, m, k
    symbols
    -
    abs(x)
    absolute value function
    -
    acos(x)
    arc cosine function
    -
    acosh(x)
    inverse hyperbolic cosine function
    -
    airy(x)
    Airy function (max=1, min=0); airy(x)=[jinc(x)]2=[2*j1(pi*x)/(pi*x)]2
    -
    alt(x)
    sign alternation function (return 1.0 if int(x) is even, -1.0 if int(x) is odd)
    -
    asin(x)
    arc sine function
    -
    asinh(x)
    inverse hyperbolic sine function
    -
    atan(x)
    arc tangent function
    -
    atanh(x)
    inverse hyperbolic tangent function
    -
    atan2(x,y)
    arc tangent function of two variables
    -
    ceil(x)
    smallest integral value not less than argument
    -
    channel(r,g,b,a)
    select numeric argument based on current channel
    -
    channel(c,m,y,k,a)
    select numeric argument based on current channel
    -
    clamp(x)
    clamp value
    -
    cos(x)
    cosine function
    -
    cosh(x)
    hyperbolic cosine function
    -
    debug(x)
    print x (useful for debugging your expression)
    -
    drc(x,y)
    dynamic range compression (knee curve); drc(x,y)=(x)/(y*(x-1)+1); -1<y<1
    -
    erf(x)
    error function
    -
    exp(x)
    natural exponential function (ex)
    -
    floor(x)
    largest integral value not greater than argument
    -
    gauss(x)
    gaussian function; gauss(x)=exp(-x*x/2)/sqrt(2*pi)
    -
    gcd(x,y)
    greatest common denominator
    -
    hypot(x,y)
    the square root of x2+y2
    -
    int(x)
    greatest integer function (return greatest integer less than or equal to x)
    -
    isnan(x)
    return 1.0 if x is NAN, 0.0 otherwise
    -
    j0(x)
    Bessel functions of x of the first kind of order 0
    -
    j1(x)
    Bessel functions of x of the first kind of order 1
    -
    jinc(x)
    jinc function (max=1, min=-0.1323); jinc(x)=2*j1(pi*x)/(pi**x)
    -
    ln(x)
    natural logarithm function
    -
    log(x)
    logarithm base 10
    -
    logtwo(x)
    logarithm base 2
    -
    ln(x)
    natural logarithm
    -
    max(x, y)
    maximum of x and y
    -
    min(x, y)
    minimum of x and y
    -
    mod(x, y)
    floating-point remainder function
    -
    not(x)
    return 1.0 if x is zero, 0.0 otherwise
    -
    pow(x,y)
    power function (xy)
    -
    rand()
    value uniformly distributed over the interval [0.0, 1.0) with a 2 to the 128th-1 period
    -
    round()
    round to integral value, regardless of rounding direction
    -
    sign(x)
    return -1.0 if x is less than 0.0 otherwise 1.0
    -
    sin(x)
    sine function
    -
    sinc(x)
    sinc function (max=1, min=-0.21); sinc(x)=sin(pi*x)/(pi*x)
    -
    squish(x)
    squish function; squish(x)=1.0/(1.0+exp(-x))
    -
    sinh(x)
    hyperbolic sine function
    -
    sqrt(x)
    square root function
    -
    tan(x)
    tangent function
    -
    tanh(x)
    hyperbolic tangent function
    -
    trunc(x)
    round to integer, towards zero
    -
    while(condition,expression)
    iterate while the condition is not equal to 0
    +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    degrees
    +
    Define the tightness of the swirling effect.
    + +
    +
    method
    +
    the pixel interpolation method.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    -
    -

    The expression semantics include these rules:

    +

    TintImage

    -
      -
    • symbols are case insensitive
    • -
    • only one ternary conditional (e.g. x ? y : z) per statement
    • -
    • statements are assignments or the final expression to return
    • -
    • an assignment starts a statement, it is not an operator
    • -
    • assignments to built-ins do not throw an exception and have no effect; e.g. r=3.0; r returns the pixel red color value, not 3.0
    • -
    • Unary operators have a lower priority than binary operators, that is, the unary minus (negation) has lower precedence than exponentiation, so -3^2 is interpreted as -(3^2) = -9. Use parentheses to clarify your intent (e.g. (-3)^2 = 9).
    • -
    • Similarly, care must be exercised when using the slash ('/') symbol. The string of characters 1/2x is interpreted as (1/2)x. The contrary interpretation should be written explicitly as 1/(2x). Again, the use of parentheses helps clarify the meaning and should be used whenever there is any chance of misinterpretation.
    • -
    -
    +

    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))))

    +

    The format of the TintImage method is:

    -

    Source Images

    +
    +Image *TintImage(const Image *image,const char *blend,
    +  const PixelInfo *tint,ExceptionInfo *exception)
    +
    -

    The symbols u and v refer to the first and second images, respectively, in the current image sequence. Refer to a particular image in a sequence by appending its index to any image reference (usually u), with a zero index for the beginning of the sequence. A negative index counts from the end. For example, u[0] is the first image in the sequence, u[2] is the third, u[-1] is the last image, and u[t] is the current image. The current image can also be referenced by s. If the sequence number exceeds the length of the sequence, the count is wrapped. Thus in a 3-image sequence, u[-1], u[2], and u[5] all refer to the same (third) image.

    +

    A description of each parameter follows:

    -

    As an example, we form an image by averaging the first image and third images (the second (index 1) image is ignored and just junked):

    +
    +
    -
    convert image1.jpg image2.jpg image3.jpg -fx "(u+u[2])/2.0" image.jpg
    -
    +
    +
    +
    image
    +
    the image.
    -

    By default, the image to which p, r, g, b, a, etc., are applied is the current image s in the image list. This is equivalent to u except when used in an escape sequence %[fx:...].

    +
    +
    blend
    +
    A color value used for tinting.
    -

    It is important to note the special role played by the first image. This is the only image in the image sequence that is modified, other images are used only for their data. As an illustrative example, consider the following, and note that the setting -channel red instructs -fx to modify only the red channel; nothing in the green or blue channels will change. It is instructive to ponder why the result is not symmetric.

    +
    +
    tint
    +
    A color value used for tinting.
    -
    convert -channel red logo: -flop logo: -resize "20%" -fx "(u+v)/2" image.jpg
    -
    +
    +
    exception
    +
    return any errors or warnings in this structure.
    -
      - logo-sm-flop.png - logo-sm.png -==> - logo-sm-fx.png -
    +
    +
    +

    VignetteImage

    -
    -

    Accessing Pixels

    +

    VignetteImage() softens the edges of the image in vignette style.

    -

    All color values are normalized to the range of 0.0 to 1.0. The alpha channel ranges from 0.0 (fully transparent) to 1.0 (fully opaque).

    +

    The format of the VignetteImage method is:

    -

    The pixels are processed one at a time, but a different pixel of an image can be specified using a pixel index represented by p. For example,

    +
    +Image *VignetteImage(const Image *image,const double radius,
    +  const double sigma,const ssize_t x,const ssize_t y,
    +  ExceptionInfo *exception)
    +
    -
    p[-1].g      green value of pixel to the immediate left of the current pixel
    -p[-1,-1].r   red value of the pixel diagonally left and up from current pixel
    -
    +

    A description of each parameter follows:

    -

    To specify an absolute position, use braces, rather than brackets.

    +
    +
    -
    p{0,0}.r     red value of the pixel in the upper left corner of the image
    -p{12,34}.b   blue pixel value at column number 12, row 34 of the image
    -
    +
    +
    +
    image
    +
    the image.
    -

    Integer values of the position retrieve the color of the pixel referenced, while non-integer position values return a blended color according to the current -interpolate setting.

    +
    +
    radius
    +
    the radius of the pixel neighborhood.
    -

    A position outside the boundary of the image retrieves a value dictated by the -virtual-pixel option setting.

    +
    +
    sigma
    +
    the standard deviation of the Gaussian, in pixels.
    -

    Apply an Expression to Select Image Channels

    +
    +
    x, y
    +
    Define the x and y ellipse offset.
    -

    Use the -channel setting to specify the output channel of the result. If no output channel is given, the result is set over all channels except the opacity channel. For example, to replace the red channel of alpha.png with the average of the green channels from the images alpha.png and beta.png, use:

    +
    +
    exception
    +
    return any errors or warnings in this structure.
    -
    convert alpha.png beta.png -channel red -fx "(u.g+v.g)/2" gamma.png
    -
    +
    +
    +

    WaveImage

    + +

    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.

    + +

    The format of the WaveImage method is:

    + +
    +Image *WaveImage(const Image *image,const double amplitude,
    +  const double wave_length,const PixelInterpolateMethod method,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    +
    +
    +
    image
    +
    the image.
    -

    Results

    +
    +
    amplitude, wave_length
    +
    Define the amplitude and wave length of the sine wave.
    -

    The -fx operator evaluates the given expression for each channel (set by -channel) of each pixel in the first image (u) in the sequence. The computed values are temporarily stored in a copy (clone) of that first image until all the pixels have been processed, after which this single new image replaces the list of images in the current image sequence. As such, in the previous example the updated version of alpha.png replaces both of the original images, alpha.png and beta.png, before being saved as gamma.png.

    +
    +
    interpolate
    +
    the pixel interpolation method.
    -

    The current image s is set to the first image in the sequence (u), and t to its index, 0. The symbols i and j reference the current pixel being processed.

    +
    +
    exception
    +
    return any errors or warnings in this structure.
    +
    +
    +

    WaveletDenoiseImage

    + +

    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.

    + +

    The format of the WaveletDenoiseImage method is:

    -

    For use with -format, the value-escape %[fx:] is evaluated just once for each image in the current image sequence. As each image in the sequence is being evaluated, s and t successively refer to the current image and its index, while i and j are set to zero, and the current channel set to red (-channel is ignored). An example:

    +
    +Image *WaveletDenoiseImage(const Image *image,const double threshold,
    +  const double softness,ExceptionInfo *exception)
    +
    -
    $ convert canvas:'rgb(25%,50%,75%)' rose: -colorspace rgb  \ 
    -  -format 'Red channel of NW corner of image #%[fx:t] is %[fx:s]' info:
    -Red channel of NW corner of image #0 is 0.453758 
    -Red channel of NW corner of image #1 is 0.184588
    -
    +

    A description of each parameter follows:

    -

    Here we use the image indexes to rotate each image differently, and use -set with the image index to set a different pause delay on the first image in the animation:

    +
    +
    -
    convert rose: -duplicate 29 -virtual-pixel Gray -distort SRT '%[fx:360.0*t/n]' \
    -  -set delay '%[fx:t == 0 ? 240 : 10]' -loop 0 rose.gif"
    -
    +
    +
    +
    image
    +
    the image.
    -

    The color-escape %[pixel:] or %[hex:] is evaluated once per image and per color channel in that image (-channel is ignored), The values generated are then converted into a color string (a named color or hex color value). The symbols i and j are set to zero, and s and t refer to each successively current image and index.

    +
    +
    threshold
    +
    set the threshold for smoothing.
    +
    +
    softness
    +
    attenuate the smoothing threshold.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    @@ -422,7 +848,7 @@ Red channel of NW corner of image #1 is 0.184588 Related • Sitemap - + Public Key • Donate • @@ -436,4 +862,4 @@ Red channel of NW corner of image #1 is 0.184588 - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/histogram.html b/www/api/histogram.html index 4022b88a8..d8c91e9bb 100644 --- a/www/api/histogram.html +++ b/www/api/histogram.html @@ -32,7 +32,7 @@
    @@ -250,7 +250,7 @@ Image *UniqueImageColors(const Image *image,ExceptionInfo *exception) Related • Sitemap - + Public Key • Donate • @@ -264,3 +264,4 @@ Image *UniqueImageColors(const Image *image,ExceptionInfo *exception) + \ No newline at end of file diff --git a/www/api/image-view.html b/www/api/image-view.html index 315a4a03f..f7f1ce9d6 100644 --- a/www/api/image-view.html +++ b/www/api/image-view.html @@ -32,7 +32,7 @@
    @@ -649,7 +649,7 @@ MagickBooleanType UpdateImageViewIterator(ImageView *source, Related • Sitemap - + Public Key • Donate • @@ -663,4 +663,4 @@ MagickBooleanType UpdateImageViewIterator(ImageView *source, - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/image.html b/www/api/image.html index c2b5cc9c2..ee1b098e5 100644 --- a/www/api/image.html +++ b/www/api/image.html @@ -32,7 +32,7 @@
    @@ -1167,7 +1167,7 @@ MagickBooleanType SyncImagesSettings(const ImageInfo *image_info, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/layer.html b/www/api/layer.html index 434481ba1..da4804e28 100644 --- a/www/api/layer.html +++ b/www/api/layer.html @@ -32,7 +32,7 @@
    @@ -411,7 +411,7 @@ Image *MergeImageLayers(const Image *image, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/list.html b/www/api/list.html index 25e81772b..7ebc3a6a9 100644 --- a/www/api/list.html +++ b/www/api/list.html @@ -32,7 +32,7 @@
    @@ -751,7 +751,7 @@ Image *SplitImageList(Image *images) Related • Sitemap - + Public Key • Donate • diff --git a/www/api/magick++-classes.html b/www/api/magick++-classes.html index f0408e178..4e369f052 100644 --- a/www/api/magick++-classes.html +++ b/www/api/magick++-classes.html @@ -32,7 +32,7 @@
    @@ -145,7 +145,7 @@ containers of image frames. Related • Sitemap - + Public Key • Donate • @@ -159,3 +159,4 @@ containers of image frames. + \ No newline at end of file diff --git a/www/api/magick-deprecate.html b/www/api/magick-deprecate.html index d96aca37e..73baf0719 100644 --- a/www/api/magick-deprecate.html +++ b/www/api/magick-deprecate.html @@ -32,7 +32,7 @@
    @@ -92,7 +92,7 @@ Related • Sitemap - + Public Key • Donate • diff --git a/www/api/magick-image.html b/www/api/magick-image.html index 08092cb26..2a3e7931d 100644 --- a/www/api/magick-image.html +++ b/www/api/magick-image.html @@ -32,7 +32,7 @@
    @@ -7834,7 +7834,7 @@ MagickBooleanType MagickWriteImagesFile(MagickWand *wand,FILE *file) Related • Sitemap - + Public Key • Donate • @@ -7848,3 +7848,4 @@ MagickBooleanType MagickWriteImagesFile(MagickWand *wand,FILE *file) + \ No newline at end of file diff --git a/www/api/magick-property.html b/www/api/magick-property.html index db4469ef0..56f16fef6 100644 --- a/www/api/magick-property.html +++ b/www/api/magick-property.html @@ -32,7 +32,7 @@
    @@ -1931,7 +1931,7 @@ MagickBooleanType MagickSetType(MagickWand *wand, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/magick-wand.html b/www/api/magick-wand.html index f194e84bc..8a7f6591c 100644 --- a/www/api/magick-wand.html +++ b/www/api/magick-wand.html @@ -32,7 +32,7 @@
    @@ -394,7 +394,7 @@ int main(int argc,char **argv) Related • Sitemap - + Public Key • Donate • @@ -408,4 +408,4 @@ int main(int argc,char **argv) - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/magick.html b/www/api/magick.html index b57e3e07f..6df970fe9 100644 --- a/www/api/magick.html +++ b/www/api/magick.html @@ -32,7 +32,7 @@
    @@ -1332,7 +1332,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -1346,4 +1346,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/memory.html b/www/api/memory.html index e697d9fae..f7dccb292 100644 --- a/www/api/memory.html +++ b/www/api/memory.html @@ -32,7 +32,7 @@
    @@ -460,7 +460,7 @@ SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler, Related • Sitemap - + Public Key • Donate • @@ -474,3 +474,4 @@ SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler, + \ No newline at end of file diff --git a/www/api/mime.html b/www/api/mime.html index 7bc986d4a..dac7a509d 100644 --- a/www/api/mime.html +++ b/www/api/mime.html @@ -32,7 +32,7 @@
    @@ -243,7 +243,7 @@ MagickBooleanType ListMimeInfo(FILE *file,ExceptionInfo *exception) Related • Sitemap - + Public Key • Donate • diff --git a/www/api/module.html b/www/api/module.html index f2bc8be77..f18737e5a 100644 --- a/www/api/module.html +++ b/www/api/module.html @@ -32,7 +32,7 @@
    @@ -510,7 +510,7 @@ MagickBooleanType UnregisterModule(const ModuleInfo *module_info, Related • Sitemap - + Public Key • Donate • @@ -524,4 +524,4 @@ MagickBooleanType UnregisterModule(const ModuleInfo *module_info, - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/mogrify.html b/www/api/mogrify.html index 4328ca9c1..1a95ae769 100644 --- a/www/api/mogrify.html +++ b/www/api/mogrify.html @@ -32,7 +32,7 @@
    @@ -1312,7 +1312,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -1326,4 +1326,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/monitor.html b/www/api/monitor.html index d093bf83d..6c4117bdb 100644 --- a/www/api/monitor.html +++ b/www/api/monitor.html @@ -32,7 +32,7 @@
    @@ -170,7 +170,7 @@ MagickProgressMonitor SetImageInfoProgressMonitor(ImageInfo *image_info, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/montage.html b/www/api/montage.html index 4072e6f84..48e116b24 100644 --- a/www/api/montage.html +++ b/www/api/montage.html @@ -7,12 +7,12 @@ - Command-line Tools: Montage @ ImageMagick + MagickCore, C API: Create an Image Thumbnail @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -32,7 +32,7 @@
    @@ -81,564 +81,7 @@
    -

    Example Usage • Option Summary

    - -

    Use the montage program to create a composite image by combining several separate images. The images are tiled on the composite image optionally adorned with a border, frame, image name, and more. See Command Line Processing for advice on how to structure your montage command or see below for example usages of the command.

    - -

    Example Usage

    - -

    We list a few examples of the montage command here to illustrate its usefulness and ease of use. To get started, let's montage two images into a single composite:

    - -
    magick montage -background '#336699' -geometry +4+4 rose.jpg red-ball.png montage.jpg
    -
    - - - -

    Ok, let's add some decorations:

    - -
    magick montage -label %f -frame 5 -background '#336699' -geometry +4+4 rose.jpg red-ball.png frame.jpg
    -
    - - - -

    You can find additional examples of using montage at Examples of ImageMagick Usage and Graphics from the Command Line. Further discussion is available in More Graphics from the Command Line and Examples of ImageMagick Usage.

    - -

    Option Summary

    - -

    The montage command recognizes these options. Click on an option to get more details about how that option works.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OptionDescription
    -adaptive-sharpen geometryadaptively sharpen pixels; increase effect near edges
    -adjoinjoin images into a single multi-image file
    -affine matrixaffine transform matrix
    -alphaon, activate, off, deactivate, set, opaque, copy", -transparent, extract, background, or shape the alpha channel
    -annotate geometry textannotate the image with text
    -authenticate valuedecrypt image with this password
    -auto-orientautomagically orient image
    -background colorbackground color
    -blue-primary pointchromaticity blue primary point
    -blur geometryreduce image noise and reduce detail levels
    -border geometrysurround image with a border of color
    -bordercolor colorborder color
    -caption stringassign a caption to an image
    -channel typeapply option to select image channels
    -clone indexclone an image
    -coalescemerge a sequence of images
    -colors valuepreferred number of colors in the image
    -colorspace typeset image colorspace
    -comment stringannotate image with comment
    -compose operatorset image composite operator
    -compositecomposite image
    -compress typeimage compression type
    -crop geometrypreferred size and location of the cropped image
    -debug eventsdisplay copious debugging information
    -define format:optiondefine one or more image format options
    -density geometryhorizontal and vertical density of the image
    -depth valueimage depth
    -display serverget image or font from this X server
    -dispose methodlayer disposal method
    -dither methodapply error diffusion to image
    -draw stringannotate the image with a graphic primitive
    -duplicate count,indexesduplicate an image one or more times
    -endian typeendianness (MSB or LSB) of the image
    -extent geometryset the image size
    -extract geometryextract area from image
    -fill colorcolor to use when filling a graphic primitive
    -filter typeuse this filter when resizing an image
    -flattenflatten a sequence of images
    -flipflip image in the vertical direction
    -flopflop image in the horizontal direction
    -font namerender text with this font
    -frame geometrysurround image with an ornamental border
    -gamma valuelevel of gamma correction
    -geometry geometrypreferred size or location of the image
    -gravity typehorizontal and vertical text placement
    -green-primary pointchromaticity green primary point
    -helpprint program options
    -identifyidentify the format and characteristics of the image
    -interlace typetype of image interlacing scheme
    -interpolate methodpixel color interpolation method
    -kerning valuethe space between two characters
    -label stringassign a label to an image
    -limit type valuepixel cache resource limit
    -log formatformat of debugging information
    -mattecolor colorframe color
    -mode typeframing style
    -monitormonitor progress
    -monochrometransform image to black and white
    -origin geometryimage origin
    -page geometrysize and location of an image canvas (setting)
    -pointsize valuefont point size
    -polaroid anglesimulate a Polaroid picture
    -profile filenameadd, delete, or apply an image profile
    -quality valueJPEG/MIFF/PNG compression level
    -quantize colorspacereduce image colors in this colorspace
    -quietsuppress all warning messages
    -red-primary pointchromaticity red primary point
    -regard-warningspay attention to warning messages.
    -repage geometrysize and location of an image canvas
    -resize geometryresize the image
    -respect-parenthesessettings remain in effect until parenthesis boundary.
    -rotate degreesapply Paeth rotation to the image
    -sampling-factor geometryhorizontal and vertical sampling factor
    -scale geometryscale the image
    -scenesrangeimage scene range
    -seed valueseed a new sequence of pseudo-random numbers
    -shadow geometrysimulate an image shadow
    -size geometrywidth and height of image
    -stripstrip image of all profiles and comments
    -stroke colorgraphic primitive stroke color
    -synchronizesynchronize image to storage device
    -taintmark the image as modified
    -texture filenamename of texture to tile onto the image background
    -tile filenametile image when filling a graphic primitive
    -tile-offset geometryset the image tile offset
    -titledecorate the montage image with a title
    -transformaffine transform image
    -transparent colormake this color transparent within the image
    -transposeflip image in the vertical direction and rotate 90 degrees
    -transparent-color colortransparent color
    -treedepth valuecolor tree depth
    -trimtrim image edges
    -type typeimage type
    -units typethe units of image resolution
    -unsharp geometrysharpen the image
    -verboseprint detailed information about the image
    -versionprint version information
    -viewFlashPix viewing transforms
    -virtual-pixel methodaccess method for pixels outside the boundaries of the image
    -white-point pointchromaticity white point
    +

    Unknown method

    @@ -649,7 +92,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -663,4 +106,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/morphology.html b/www/api/morphology.html index 5a01c3678..f7a0588c1 100644 --- a/www/api/morphology.html +++ b/www/api/morphology.html @@ -32,7 +32,7 @@
    @@ -627,7 +627,7 @@ void ZeroKernelNans (KernelInfo *kernel) Related • Sitemap - + Public Key • Donate • diff --git a/www/api/paint.html b/www/api/paint.html index c473efe98..0a2990e6e 100644 --- a/www/api/paint.html +++ b/www/api/paint.html @@ -32,7 +32,7 @@
    @@ -304,7 +304,7 @@ MagickBooleanType TransparentPaintImageChroma(Image *image, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/pixel-iterator.html b/www/api/pixel-iterator.html index 6b37399f7..7a52b29ee 100644 --- a/www/api/pixel-iterator.html +++ b/www/api/pixel-iterator.html @@ -32,7 +32,7 @@
    @@ -515,7 +515,7 @@ MagickBooleanType PixelSyncIterator(PixelIterator *iterator) Related • Sitemap - + Public Key • Donate • diff --git a/www/api/pixel-wand.html b/www/api/pixel-wand.html index f69a6f966..2b94a7653 100644 --- a/www/api/pixel-wand.html +++ b/www/api/pixel-wand.html @@ -32,7 +32,7 @@
    @@ -1584,7 +1584,7 @@ void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow) Related • Sitemap - + Public Key • Donate • diff --git a/www/api/profile.html b/www/api/profile.html index 722ce8a6e..6b8366c45 100644 --- a/www/api/profile.html +++ b/www/api/profile.html @@ -32,7 +32,7 @@
    @@ -357,7 +357,7 @@ MagickBooleanType SyncImageProfiles(Image *image) Related • Sitemap - + Public Key • Donate • @@ -371,4 +371,4 @@ MagickBooleanType SyncImageProfiles(Image *image) - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/property.html b/www/api/property.html index 1c2c39ba1..95886a39b 100644 --- a/www/api/property.html +++ b/www/api/property.html @@ -32,7 +32,7 @@
    @@ -409,7 +409,7 @@ MagickBooleanType SetImageProperty(Image *image,const char *property, Related • Sitemap - + Public Key • Donate • @@ -423,4 +423,4 @@ MagickBooleanType SetImageProperty(Image *image,const char *property, - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/quantize.html b/www/api/quantize.html index e78519fe3..0f0b481c9 100644 --- a/www/api/quantize.html +++ b/www/api/quantize.html @@ -32,7 +32,7 @@
    @@ -212,7 +212,7 @@ while number of nodes with (n2 > 0) > required maximum number of colors Related • Sitemap - + Public Key • Donate • @@ -226,4 +226,4 @@ while number of nodes with (n2 > 0) > required maximum number of colors - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/registry.html b/www/api/registry.html index 9eccb4b2e..23157fbdb 100644 --- a/www/api/registry.html +++ b/www/api/registry.html @@ -32,7 +32,7 @@
    @@ -263,7 +263,7 @@ MagickBooleanType SetImageRegistry(const RegistryType type, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/resize.html b/www/api/resize.html index b54c2381f..f8a8969a0 100644 --- a/www/api/resize.html +++ b/www/api/resize.html @@ -32,7 +32,7 @@
    @@ -453,7 +453,7 @@ Image *ThumbnailImage(const Image *image,const size_t columns, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/resource.html b/www/api/resource.html index 36d9e8b2b..c84cbb99d 100644 --- a/www/api/resource.html +++ b/www/api/resource.html @@ -32,7 +32,7 @@
    @@ -280,7 +280,7 @@ MagickBooleanType SetMagickResourceLimit(const ResourceType type, Related • Sitemap - + Public Key • Donate • @@ -294,4 +294,4 @@ MagickBooleanType SetMagickResourceLimit(const ResourceType type, - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/segment.html b/www/api/segment.html index 3bf793730..dc209566f 100644 --- a/www/api/segment.html +++ b/www/api/segment.html @@ -32,7 +32,7 @@
    @@ -125,7 +125,7 @@ MagickBooleanType SegmentImage(Image *image, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/shear.html b/www/api/shear.html index 78856f867..eef087f89 100644 --- a/www/api/shear.html +++ b/www/api/shear.html @@ -32,7 +32,7 @@
    @@ -196,7 +196,7 @@ Image *ShearRotateImage(const Image *image,const double degrees, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/signature.html b/www/api/signature.html index e1659899e..3341e509a 100644 --- a/www/api/signature.html +++ b/www/api/signature.html @@ -32,7 +32,7 @@
    @@ -118,7 +118,7 @@ MagickBooleanType SignatureImage(Image *image,ExceptionInfo *exception) Related • Sitemap - + Public Key • Donate • @@ -132,3 +132,4 @@ MagickBooleanType SignatureImage(Image *image,ExceptionInfo *exception) + \ No newline at end of file diff --git a/www/api/statistic.html b/www/api/statistic.html index 1b76e0d45..3e3c66252 100644 --- a/www/api/statistic.html +++ b/www/api/statistic.html @@ -32,7 +32,7 @@
    @@ -500,7 +500,7 @@ Image *StatisticImage(const Image *image,const StatisticType type, Related • Sitemap - + Public Key • Donate • diff --git a/www/api/stream.html b/www/api/stream.html index 1260830fd..b1c4591c3 100644 --- a/www/api/stream.html +++ b/www/api/stream.html @@ -32,7 +32,7 @@
    @@ -282,7 +282,7 @@ magick display -depth 8 -size 640x480 rgb:pixels.dat Related • Sitemap - + Public Key • Donate • @@ -296,4 +296,4 @@ magick display -depth 8 -size 640x480 rgb:pixels.dat - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/transform.html b/www/api/transform.html index 890b970f6..6573aa828 100644 --- a/www/api/transform.html +++ b/www/api/transform.html @@ -32,7 +32,7 @@
    @@ -547,7 +547,7 @@ Image *TrimImage(const Image *image,ExceptionInfo *exception) Related • Sitemap - + Public Key • Donate • diff --git a/www/api/version.html b/www/api/version.html index 5ed52a3fe..b00144eec 100644 --- a/www/api/version.html +++ b/www/api/version.html @@ -32,7 +32,7 @@
    @@ -280,7 +280,7 @@ void ListMagickVersion(FILE *file) Related • Sitemap - + Public Key • Donate • @@ -294,3 +294,4 @@ void ListMagickVersion(FILE *file) + \ No newline at end of file diff --git a/www/api/wand-view.html b/www/api/wand-view.html index b6f0471b1..989d9d73c 100644 --- a/www/api/wand-view.html +++ b/www/api/wand-view.html @@ -32,7 +32,7 @@
    @@ -571,7 +571,7 @@ MagickBooleanType UpdateWandViewIterator(WandView *source, Related • Sitemap - + Public Key • Donate • @@ -585,4 +585,4 @@ MagickBooleanType UpdateWandViewIterator(WandView *source, - \ No newline at end of file + \ No newline at end of file diff --git a/www/architecture.html b/www/architecture.html index 7b9245cc6..be5eb2b77 100644 --- a/www/architecture.html +++ b/www/architecture.html @@ -32,7 +32,7 @@
    @@ -159,7 +159,7 @@ if (image == (Image *) NULL)

    When the pixel cache is initialized, pixels are scaled from whatever bit depth they originated from to that required by the pixel cache. For example, a 1-channel 1-bit monochrome PBM image is scaled to 8-bit gray image, if you are using the Q8 version of ImageMagick, and 16-bit RGBA for the Q16 version. You can determine which version you have with the ‑version option:

    -
    $ identify -version
    $ Version: ImageMagick 7.0.7-15 2017-12-10 Q16 https://www.imagemagick.org
    +
    $ identify -version
    $ Version: ImageMagick 7.0.7-18 2017-12-25 Q16 https://www.imagemagick.org

    As you can see, the convenience of the pixel cache sometimes comes with a trade-off in storage (e.g. storing a 1-bit monochrome image as 16-bit is wasteful) and speed (i.e. storing the entire image in memory is generally slower than accessing one scanline of pixels at a time). In most cases, the benefits of the pixel cache typically outweigh any disadvantages.

    Access the Pixel Cache

    @@ -1465,7 +1465,7 @@ ModuleExport size_t analyzeImage(Image **images,const int argc, Related • Sitemap - + Public Key • Donate • @@ -1479,4 +1479,4 @@ ModuleExport size_t analyzeImage(Image **images,const int argc, - \ No newline at end of file + \ No newline at end of file diff --git a/www/binary-releases.html b/www/binary-releases.html index 5ec6d4cc5..beb600275 100644 --- a/www/binary-releases.html +++ b/www/binary-releases.html @@ -447,7 +447,7 @@ objShell.Exec("convert ""e:/myimages/image.png"" ""e:/myimages/image.jpg""")

    Back to top • Public Key • - Contact Us

    + Contact Us

    © 1999-2016 ImageMagick Studio LLC

    diff --git a/www/changelog.html b/www/changelog.html index ed50ded11..8cbd47a33 100644 --- a/www/changelog.html +++ b/www/changelog.html @@ -32,7 +32,7 @@
    @@ -80,7 +80,21 @@
    -
    2017-12-16 7.0.7-15 Cristy <quetzlzacatenango@image...>
    +
    2017-12-26 7.0.7-18 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-18, GIT revision 22096:ad4bdeb40:20171228.
  • +
    2017-12-28 7.0.7-18 Cristy <quetzlzacatenango@image...>
    +
  • Fix error reading from pipe under Windows (reference https://www.imagemagick.org/discourse-server//viewtopic.html?f=3&t=33288).
  • +
    2017-12-26 7.0.7-17 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-17, GIT revision 22093:9caea323b:20171227.
  • +
    2017-12-26 7.0.7-17 Cristy <quetzlzacatenango@image...>
    +
  • Fix heap use after free error (reference https://github.com/ImageMagick/ImageMagick/issues/918).
  • +
    2017-12-24 7.0.7-16 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-16, GIT revision 22038:e55dc7626:20171225.
  • +
    2017-12-18 7.0.7-16 Cristy <quetzlzacatenango@image...>
    +
  • Fix error reading multi-layer XCF image file.
  • +
  • Fix possible stack overflow in WEBP reader (reference https://github.com/ImageMagick/ImageMagick/issues/907)
  • +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
    2017-12-16 7.0.7-15 Cristy <quetzlzacatenango@image...>
  • Release ImageMagick version 7.0.7-15, GIT revision 21924:30cb31746:20171216.
  • 2017-12-08 7.0.7-15 Cristy <quetzlzacatenango@image...>
  • Overall standard deviation is the average of each pixel channel (reference https://www.imagemagick.org/discourse-server//viewforum.html?f=3).
  • @@ -595,7 +609,7 @@ Related • Sitemap - + Public Key • Donate • @@ -609,4 +623,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/cipher.html b/www/cipher.html index 4488629a7..8929a1e53 100644 --- a/www/cipher.html +++ b/www/cipher.html @@ -32,7 +32,7 @@
    @@ -150,7 +150,7 @@ Examples Related • Sitemap - + Public Key • Donate • @@ -164,4 +164,4 @@ Examples window.jQuery || document.write(' - \ No newline at end of file + \ No newline at end of file diff --git a/www/color-management.html b/www/color-management.html index 5ed1d2d85..6c197f134 100644 --- a/www/color-management.html +++ b/www/color-management.html @@ -32,7 +32,7 @@
    @@ -99,13 +99,17 @@

    By default, converting color images to grayscale returns non-linear gray. To instead convert to linear gray, use the -set or -intensity or -grayscaleoptions:

    +> options:

    -
    magick myimage.png -set colorspace RGB -colorspace gray myRGBimage.png
    -magick myimage.png -intensity Rec709luminance -colorspace gray myRGBimage.png
    -magick myimage.png -grayscale Rec709luminance myRGBimage.png
    +
    
    +convert myimage.png -colorspace LinearGray myRGBimage.png
    +convert myimage.png -colorspace RGB -colorspace Gray myRGBimage.png
    +convert myimage.png -intensity Rec709luminance -colorspace gray myRGBimage.png
    +convert myimage.png -grayscale Rec709luminance myRGBimage.png
     
    +

    Note that LinearGray is new as of Imagemagick 6.9.9-29 and 7.0.7-17.

    +

    The same concept is needed when separating channels. Normally, the conversion to separate each channel of an sRGB color image produces separate non-linear grayscale images. However the same concept can be applied, if it is desired to keep the separate channels as linear grayscale. For example, the following produces linear grayscale channels.

    magick myimage.png -colorspace RGB -separate myimage_channels_%d.png
    @@ -144,7 +148,7 @@ magick myimage_channels_*.png -set colorspace HSL -combine -colorspace RGB -set Related • Sitemap - + Public Key • Donate • @@ -158,4 +162,4 @@ magick myimage_channels_*.png -set colorspace HSL -combine -colorspace RGB -set - \ No newline at end of file + \ No newline at end of file diff --git a/www/color.html b/www/color.html index 96472bea1..c9cef49f0 100644 --- a/www/color.html +++ b/www/color.html @@ -32,7 +32,7 @@
    @@ -136,7 +136,7 @@ gray(127) near mid gray gray(50%) mid gray graya(50%, 0.5) semi-transparent mid gray -

    For linear gray values add -colorspace RGB -colorspace gray when creating gray colors

    +

    For linear gray values add -colorspace RGB -colorspace Gray or -colorspace LinearGray when creating gray colors. The latter is new as of Imagemagick 6.9.9-29 and 7.0.7-17.

    The ImageMagick color model also supports hue-saturation-lightness (HSL) and hue-saturation-brightness (HSB) colors as a complement to numerical sRGB colors. HSL colors are encoding as a triple (hue, saturation, lightness). Likewise HSB colors are encoding as a triple (hue, saturation, brightness). HSL or HSB triples are either direct values (hue 0—360, saturation 0—255, lightness or brightness 0—255) or with S,L,B as percentage values relative to these ranges.

    @@ -196,8 +196,15 @@ hsla(120, 255, 127.5, 1.0) the same, with an alpha value of 1.0 magick -size 100x100 xc:"cielab(91.1131%,-18.8571%,-5.5436%)" -colorspace sRGB cyan.png

    Or specify colors generically with the icc-color keyword, for example:

    -
    icc-color(cmyk, 0.11, 0.48, 0.83, 0.00)
    -icc-color(rgb, white)
    +
    
    +icc-color(cmyk, 0.11, 0.48, 0.83, 0.00)  cymk
    +icc-color(rgb, 1, 0, 0)                  linear rgb
    +icc-color(rgb, red)                      linear rgb
    +icc-color(lineargray, 0.5)               linear gray
    +icc-color(srgb, 1, 0, 0)                 non-linear rgb
    +icc-color(srgb, red)                     non-linear rgb
    +icc-color(gray, 0.5)                     non-linear gray
    +

    Or specify uncalibrated device colors with the device- keyword, for example:

    device-gray(0.5)
    @@ -4947,7 +4954,7 @@ device-cmyk(0.11, 0.48, 0.83, 0.00)
    Related • Sitemap - + Public Key • Donate • @@ -4961,4 +4968,4 @@ device-cmyk(0.11, 0.48, 0.83, 0.00) - \ No newline at end of file + \ No newline at end of file diff --git a/www/command-line-options.html b/www/command-line-options.html index 12b72e3e8..95bcd9a37 100644 --- a/www/command-line-options.html +++ b/www/command-line-options.html @@ -32,7 +32,7 @@
    @@ -855,10 +855,12 @@ abbreviated as a concatenation of the letters 'R', 'G'

    For example, to only select the Red and Blue channels you can use any of the following:

    -
    -channel Red,Blue
    -
    -channel R,B
    -
    -channel RB
    -
    -channel 0,2
    +
    +-channel Red,Blue
    +-channel R,B
    +-channel RB
    +-channel 0,2
    +

    All the channels that are present in an image can be specified using the special channel type All. Not all operators are 'channel capable', @@ -1271,7 +1273,7 @@ YIQ YPbPr YUV Undefined Y=QuantumRange*(Y−K)/(QuantumRange−K) Gray - Gray = 0.298839*R+0.586811*G+0.114350*B + Gray = 0.212656*R+0.715158*G+0.072186*B HSB — Hue, Saturation, Brightness; like a cone peak downward H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green @@ -1292,6 +1294,8 @@ YIQ YPbPr YUV Undefined L (complicated equation relating X,Y,Z) A (complicated equation relating X,Y,Z) B (complicated equation relating X,Y,Z) + LinearGray + LinearGray = 0.298839*R+0.586811*G+0.114350*B LOG I1 (complicated equation involving logarithm of R) @@ -1318,7 +1322,6 @@ YIQ YPbPr YUV Undefined Y=0.212656*R+0.715158*G+0.072186*B; intensity-like Cb=(−0.114572*R−0.385428*G+0.500000*B)+(QuantumRange+1)/2 Cr=(0.500000*R−0.454153*G−0.045847*B)+(QuantumRange+1)/2 - sRGB if R ≤ .0.0031308 then Rs=R/12.92 else Rs=1.055 R ^ (1.0 / 2.4) ? 0.055 if G ≤ .0.0031308 then Gs=B/12.92 else Gs=1.055 R ^ (1.0 / 2.4) ? 0.055 @@ -4553,8 +4556,13 @@ convert the given image into a grayscale image.

    which is equivalent to:

    -
    convert in.png -colorspace RGB -colorspace gray out.png
    -
    +
    +convert in.png -colorspace RGB -colorspace Gray out.png
    +or
    +convert in.png -colorspace LinearGray out.png
    +
    + +

    Note that LinearGray is new as of Imagemagick 6.9.9-29 and 7.0.7-17.

    Similarly, to convert an image to (non-linear) Rec709Luma grayscale, type:

    @@ -4563,12 +4571,12 @@ convert the given image into a grayscale image.

    which is equivalent to:

    -
    convert in.png -colorspace gray out.png
    +
    convert in.png -colorspace Gray out.png
     

    Note that a 'colorspace' intensity method will produce the same result regardless of the current colorpsace of the image. But a 'mathematical' -intensity method will depend on the current colorspace the image is currently +intensity method depends on the current colorspace the image is currently using.

    While this operation uses an -intensity method, @@ -8040,7 +8048,7 @@ but with strict boolean masking.

    Related • Sitemap - + Public Key • Donate • @@ -8054,4 +8062,4 @@ but with strict boolean masking.

    - \ No newline at end of file + \ No newline at end of file diff --git a/www/command-line-processing.html b/www/command-line-processing.html index 94142315c..baae3b1d6 100644 --- a/www/command-line-processing.html +++ b/www/command-line-processing.html @@ -32,7 +32,7 @@
    @@ -621,7 +621,7 @@ image-2.jpg
    Related • Sitemap - + Public Key • Donate • @@ -635,4 +635,4 @@ image-2.jpg - \ No newline at end of file + \ No newline at end of file diff --git a/www/command-line-tools.html b/www/command-line-tools.html index 2728309ee..ff07d285e 100644 --- a/www/command-line-tools.html +++ b/www/command-line-tools.html @@ -32,7 +32,7 @@
    @@ -118,7 +118,7 @@ Related • Sitemap - + Public Key • Donate • @@ -132,4 +132,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/compare.html b/www/compare.html index e3516109c..14b198c4f 100644 --- a/www/compare.html +++ b/www/compare.html @@ -32,7 +32,7 @@
    @@ -433,7 +433,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -447,4 +447,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/compose.html b/www/compose.html index 919180aba..362f5f092 100644 --- a/www/compose.html +++ b/www/compose.html @@ -32,7 +32,7 @@
    @@ -634,7 +634,7 @@ href="../www/command-line-options.html#list">-list compose.

    Related • Sitemap - + Public Key • Donate • @@ -648,3 +648,4 @@ href="../www/command-line-options.html#list">-list compose.

    + \ No newline at end of file diff --git a/www/composite.html b/www/composite.html index 9cdb2e394..45c39b13a 100644 --- a/www/composite.html +++ b/www/composite.html @@ -32,7 +32,7 @@
    @@ -537,7 +537,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -551,4 +551,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/conjure.html b/www/conjure.html index 65d752e98..eb52f0085 100644 --- a/www/conjure.html +++ b/www/conjure.html @@ -32,7 +32,7 @@
    @@ -1146,7 +1146,7 @@ fill="color name", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Related • Sitemap - + Public Key • Donate • @@ -1160,4 +1160,4 @@ fill="color name", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, - \ No newline at end of file + \ No newline at end of file diff --git a/www/connected-components.html b/www/connected-components.html index 4b18769b0..e3f06deda 100644 --- a/www/connected-components.html +++ b/www/connected-components.html @@ -32,7 +32,7 @@
    @@ -128,7 +128,7 @@ Related • Sitemap - + Public Key • Donate • @@ -142,4 +142,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/contact.html b/www/contact.html index 73620ba71..761e26926 100644 --- a/www/contact.html +++ b/www/contact.html @@ -32,7 +32,7 @@
    @@ -147,7 +147,7 @@ Related • Sitemap - + Public Key • Donate • diff --git a/www/convert.html b/www/convert.html index 892ea2bdc..e57c34be7 100644 --- a/www/convert.html +++ b/www/convert.html @@ -32,7 +32,7 @@
    @@ -1336,7 +1336,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -1350,4 +1350,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/develop.html b/www/develop.html index bc980274e..ccb8de317 100644 --- a/www/develop.html +++ b/www/develop.html @@ -32,7 +32,7 @@
    @@ -213,7 +213,7 @@ Related • Sitemap - + Public Key • Donate • @@ -227,4 +227,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/display.html b/www/display.html index 4a568907a..1dfe32286 100644 --- a/www/display.html +++ b/www/display.html @@ -32,7 +32,7 @@
    @@ -577,7 +577,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -591,4 +591,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/distribute-pixel-cache.html b/www/distribute-pixel-cache.html index a32173dbb..501db375f 100644 --- a/www/distribute-pixel-cache.html +++ b/www/distribute-pixel-cache.html @@ -32,7 +32,7 @@
    @@ -106,7 +106,7 @@ convert -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \ Related • Sitemap - + Public Key • Donate • @@ -120,4 +120,4 @@ convert -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \ - \ No newline at end of file + \ No newline at end of file diff --git a/www/download.html b/www/download.html index e2745d8af..1799aa144 100644 --- a/www/download.html +++ b/www/download.html @@ -32,7 +32,7 @@
    @@ -102,16 +102,16 @@ - ImageMagick-7.0.7-15.x86_64.rpm - download - download + ImageMagick-7.0.7-18.x86_64.rpm + download + download Redhat / CentOS 7.1 x86_64 RPM - ImageMagick-libs-7.0.7-15.x86_64.rpm - download - download + ImageMagick-libs-7.0.7-18.x86_64.rpm + download + download Redhat / CentOS 7.1 x86_64 RPM @@ -148,8 +148,8 @@

    ImageMagick RPM's are self-installing. Simply type the following command and you're ready to start using ImageMagick:

    -
    $ rpm -Uvh ImageMagick-7.0.7-15.x86_64.rpm

    You'll need the libraries as well:

    -
    $ rpm -Uvh ImageMagick-libs-7.0.7-15.x86_64.rpm
    +
    $ rpm -Uvh ImageMagick-7.0.7-18.x86_64.rpm

    You'll need the libraries as well:

    +
    $ rpm -Uvh ImageMagick-libs-7.0.7-18.x86_64.rpm

    For other systems, create (or choose) a directory to install the package into and change to that directory, for example:

    cd $HOME
    @@ -260,7 +260,7 @@ display logo.gif

    To run the script:

    ./imagemagick_compile.sh VERSION
    -

    where VERSION is the version of ImageMagick you want to compile (i.e.: 7.0.7-15, svn, ...)

    +

    where VERSION is the version of ImageMagick you want to compile (i.e.: 7.0.7-18, svn, ...)

    This script compiles ImageMagick as a static library to be included in iOS projects and adds support for

      @@ -309,9 +309,9 @@ display logo.gif - ImageMagick-7.0.7-15-Q16-x64-dll.exe - download - download + ImageMagick-7.0.7-18-Q16-x64-dll.exe + download + download Win64 dynamic at 16 bits-per-pixel component @@ -329,93 +329,93 @@ display logo.gif - ImageMagick-7.0.7-15-Q16-x64-static.exe - download - download + ImageMagick-7.0.7-18-Q16-x64-static.exe + download + download Win64 static at 16 bits-per-pixel component - ImageMagick-7.0.7-15-Q8-x64-dll.exe - download - download + ImageMagick-7.0.7-18-Q8-x64-dll.exe + download + download Win64 dynamic at 8 bits-per-pixel component - ImageMagick-7.0.7-15-Q8-x64-static.exe - download - download + ImageMagick-7.0.7-18-Q8-x64-static.exe + download + download Win64 static at 8 bits-per-pixel component - ImageMagick-7.0.7-15-Q16-HDRI-x64-dll.exe - download - download + ImageMagick-7.0.7-18-Q16-HDRI-x64-dll.exe + download + download Win64 dynamic at 16 bits-per-pixel component with high dynamic-range imaging enabled - ImageMagick-7.0.7-15-Q16-HDRI-x64-static.exe - download - download + ImageMagick-7.0.7-18-Q16-HDRI-x64-static.exe + download + download Win64 static at 16 bits-per-pixel component with high dynamic-range imaging enabled - ImageMagick-7.0.7-15-Q16-x86-dll.exe - download - download + ImageMagick-7.0.7-18-Q16-x86-dll.exe + download + download Win32 dynamic at 16 bits-per-pixel component - ImageMagick-7.0.7-15-Q16-x86-static.exe - download - download + ImageMagick-7.0.7-18-Q16-x86-static.exe + download + download Win32 static at 16 bits-per-pixel component - ImageMagick-7.0.7-15-Q8-x86-dll.exe - download - download + ImageMagick-7.0.7-18-Q8-x86-dll.exe + download + download Win32 dynamic at 8 bits-per-pixel component - ImageMagick-7.0.7-15-Q8-x86-static.exe - download - download + ImageMagick-7.0.7-18-Q8-x86-static.exe + download + download Win32 static at 8 bits-per-pixel component - ImageMagick-7.0.7-15-Q16-HDRI-x86-dll.exe - download - download + ImageMagick-7.0.7-18-Q16-HDRI-x86-dll.exe + download + download Win32 dynamic at 16 bits-per-pixel component with high dynamic-range imaging enabled - ImageMagick-7.0.7-15-Q16-HDRI-x86-static.exe - download - download + ImageMagick-7.0.7-18-Q16-HDRI-x86-static.exe + download + download Win32 static at 16 bits-per-pixel component with high dynamic-range imaging enabled - ImageMagick-7.0.7-15-portable-Q16-x86.zip - download - download + ImageMagick-7.0.7-18-portable-Q16-x86.zip + download + download Portable Win32 static at 16 bits-per-pixel component. Just copy to your host and run (no installer, no Windows registry entries). - ImageMagick-7.0.7-15-portable-Q16-x64.zip - download - download + ImageMagick-7.0.7-18-portable-Q16-x64.zip + download + download Portable Win64 static at 16 bits-per-pixel component. Just copy to your host and run (no installer, no Windows registry entries). @@ -448,7 +448,7 @@ objShell.Exec("magick ""e:/myimages/image.png"" ""e:/myimages/image.jpg""")Related • Sitemap - + Public Key • Donate • @@ -462,4 +462,4 @@ objShell.Exec("magick ""e:/myimages/image.png"" ""e:/myimages/image.jpg""")window.jQuery || document.write(' - \ No newline at end of file + \ No newline at end of file diff --git a/www/escape.html b/www/escape.html index 38809b137..0ff4a04a0 100644 --- a/www/escape.html +++ b/www/escape.html @@ -32,7 +32,7 @@
    - +
    @@ -893,7 +893,7 @@ Post ObjectData Descriptor Record Related • Sitemap - + Public Key • Donate • @@ -907,4 +907,4 @@ Post ObjectData Descriptor Record - \ No newline at end of file + \ No newline at end of file diff --git a/www/examples.html b/www/examples.html index 64799b32c..7ef5b7b30 100644 --- a/www/examples.html +++ b/www/examples.html @@ -32,7 +32,7 @@
    @@ -93,7 +93,7 @@ Related • Sitemap - + Public Key • Donate • @@ -107,4 +107,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/exception.html b/www/exception.html index bc2c6c95c..62a5c8d7f 100644 --- a/www/exception.html +++ b/www/exception.html @@ -32,7 +32,7 @@
    @@ -282,7 +282,7 @@ Related • Sitemap - + Public Key • Donate • diff --git a/www/export.html b/www/export.html index d8ac60d8a..7998da0ae 100644 --- a/www/export.html +++ b/www/export.html @@ -32,7 +32,7 @@
    @@ -93,7 +93,7 @@ Related • Sitemap - + Public Key • Donate • @@ -107,4 +107,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/formats.html b/www/formats.html index 1c42abeed..8e70286af 100644 --- a/www/formats.html +++ b/www/formats.html @@ -32,7 +32,7 @@
    @@ -1987,7 +1987,7 @@ the supported image formats.

    Related • Sitemap - + Public Key • Donate • @@ -2001,4 +2001,4 @@ the supported image formats.

    - \ No newline at end of file + \ No newline at end of file diff --git a/www/fx.html b/www/fx.html index f60dba4b1..58243d885 100644 --- a/www/fx.html +++ b/www/fx.html @@ -7,12 +7,12 @@ - The Fx Special Effects Image Operator @ ImageMagick + MagickCore, C API: Add a Special Effect @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -32,7 +32,7 @@
    @@ -81,338 +81,764 @@
    -

    The Fx Special Effects Image Operator • The Anatomy of an Fx Expression

    - - - -

    Use the Fx special effects image operator to apply a mathematical expression to an image or image channels. Use Fx to:

    - -
      -
    • create canvases, gradients, mathematical colormaps
    • -
    • move color values between images and channels
    • -
    • translate, flip, mirror, rotate, scale, shear and generally distort images
    • -
    • merge or composite multiple images together
    • -
    • convolve or merge neighboring pixels together
    • -
    • generate image metrics or 'fingerprints'
    • -
    - -

    The expression can be simple:

    - -
    convert -size 64x64 canvas:black -channel blue -fx "1/2" fx_navy.png
    -
    - -

    Here, we convert a black to a navy blue image:

    - -
      - black - ==> - navy -
    - -

    Or the expression can be complex:

    - -
    convert rose.jpg \  
    -  -fx "(1.0/(1.0+exp(10.0*(0.5-u)))-0.006693)*1.0092503" \ 
    -  rose-sigmoidal.png'
    -
    - -

    This expression results in a high contrast version of the image:

    - -
      - rose - ==> - rose-sigmoidal -
    - -

    The expression can include variable assignments. Assignments, in most cases, reduce the complexity of an expression and permit some operations that might not be possible any other way. For example, lets create a radial gradient:

    - -
    convert -size 70x70 canvas: \
    -  -fx "Xi=i-w/2; Yj=j-h/2; 1.2*(0.5-hypot(Xi,Yj)/70.0)+0.5" 
    -  radial-gradient.png'
    -
    - -

    The command above returns this image:

    - -
      - radial-gradient -
    - -

    This FX expression adds random noise to an image:

    - -
    convert photo.jpg -fx \'iso=32; rone=rand(); rtwo=rand(); \
    -  myn=sqrt(-2*ln(rone))*cos(2*Pi*rtwo); myntwo=sqrt(-2*ln(rtwo))* \
    -  cos(2*Pi*rone); pnoise=sqrt(p)*myn*sqrt(iso)* \ 
    -  channel(4.28,3.86,6.68,0)/255; max(0,p+pnoise)\' noisy.png
    -
    - -

    See Using FX, The Special Effects Image Operator for more examples.

    - -

    The next section discusses the Fx expression language.

    - -

    The Anatomy of an Fx Expression

    - -

    The Fx Expression Language

    - -

    The formal Fx expression language is defined here:

    - -
    -
    numbers:
    -
    integer, floating point, scientific notation (+/- required, e.g. 3.81469e-06), International System number postfixes (.e.g KB, Mib, GB, etc.)
    -
    constants:
    -
    E (Euler's number), Epsilon, QuantumRange, QuantumScale, Opaque, Phi (golden ratio), Pi, Transparent
    -
    Fx operators (in order of precedence):
    -
    ^ (power), unary -, *, /, % (modulo), +, -, - <<, >>, <, <=, >, >=, ==, !=, - & (bitwise AND), | (bitwise OR), - && (logical AND), || (logical OR), - ~ (logical NOT), ?: (ternary conditional)
    -
    math functions:
    -
    abs(), acos(), acosh(), airy(), alt(), asin(), asinh(), atan(), atanh(), atan2(), ceil(), clamp(), cos(), cosh(), debug(), drc(), erf(), exp(), floor(), gauss(), gcd(), hypot(), int(), isnan(), j0(), j1(), jinc(), ln(), log(), logtwo(), max(), min(), mod(), not(), pow(), rand(), round(), sign(), sin(), sinc(), sinh(), sqrt(), squish(), tan(), tanh(), trunc()
    -
    channel functions:
    -
    channel(r,g,b,a), channel(c,m,y,k,a)
    -
    color names:
    -
    red, cyan, black, etc.
    -
    color functions:
    -
    srgb(), srgba(), rgb(), rgba(), cmyk(), cmyka(), hsl(), hsla(), etc.
    -
    color hex values:
    -
    #ccc, #cbfed0, #b9e1cc00, etc.
    -
    symbols:
    -
  • u=> first image in list
  • -
  • v=> second image in list
  • -
  • s=> current image in list (for %[fx:] otherwise = u)
  • -
  • t=> index of current image (s) in list
  • -
  • n=> number of images in list
  • - -
  • i=> column offset
  • -
  • j=> row offset
  • -
  • p=> pixel to use (absolute or relative to current pixel)
  • - -
  • w=> width of this image
  • -
  • h=> height of this image
  • -
  • z=> channel depth
  • - -
  • r=> red value (from RGBA), of a specific or current pixel
  • -
  • g=> green
  • -
  • b=> blue
  • -
  • a=> alpha
  • -
  • o=> opacity
  • - -
  • c=> cyan value of CMYK color of pixel
  • -
  • y=> yellow
  • -
  • m=> magenta
  • -
  • k=> black
  • - -
  • intensity=> pixel intensity
  • - -
  • hue=> pixel hue
  • -
  • saturation=> pixel saturation
  • -
  • lightness=> pixel lightness
  • -
  • luma=> pixel luma
  • - -
  • page.width=> page width
  • -
  • page.height=> page height
  • -
  • page.x=> page x offset
  • -
  • page.y=> page y offset
  • - -
  • resolution.x=> x resolution
  • -
  • resolution.y=> y resolution
  • - -
  • depth=> image depth
  • -
  • minima=> image minima
  • -
  • maxima=> image maxima
  • -
  • mean=> image mean
  • -
  • standard_deviation=> image standard deviation
  • -
  • kurtosis=> image kurtosis
  • -
  • skewness=> image skewness (add a channel specifier to compute a statistic for that channel, e.g. depth.r)
  • -
    iterators:
    -
    while()
    +

    AddNoiseImageBlueShiftImageCharcoalImageColorizeImageColorMatrixImageFxImageImplodeImageThe MorphImagesPlasmaImagePolaroidImageMagickSepiaToneImageShadowImageSketchImageSolarizeImageSteganoImageStereoAnaglyphImageSwirlImageTintImageVignetteImageWaveImageWaveletDenoiseImage

    + +

    AddNoiseImage

    + +

    AddNoiseImage() adds random noise to the image.

    + +

    The format of the AddNoiseImage method is:

    + +
    +Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
    +  const double attenuate,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    channel
    +
    the channel type.
    + +
    +
    noise_type
    +
    The type of noise: Uniform, Gaussian, Multiplicative, Impulse, Laplacian, or Poisson.
    + +
    +
    attenuate
    +
    attenuate the random distribution.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    BlueShiftImage

    + +

    BlueShiftImage() mutes the colors of the image to simulate a scene at nighttime in the moonlight.

    + +

    The format of the BlueShiftImage method is:

    + +
    +Image *BlueShiftImage(const Image *image,const double factor,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    factor
    +
    the shift factor.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    CharcoalImage

    + +

    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.

    + +

    The format of the CharcoalImage method is:

    + +
    +Image *CharcoalImage(const Image *image,const double radius,
    +  const double sigma,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    radius
    +
    the radius of the pixel neighborhood.
    + +
    +
    sigma
    +
    the standard deviation of the Gaussian, in pixels.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    ColorizeImage

    + +

    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).

    + +

    The format of the ColorizeImage method is:

    + +
    +Image *ColorizeImage(const Image *image,const char *blend,
    +  const PixelInfo *colorize,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    blend
    +
    A character string indicating the level of blending as a percentage.
    + +
    +
    colorize
    +
    A color value.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    ColorMatrixImage

    + +

    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).

    + +

    The format of the ColorMatrixImage method is:

    + +
    +Image *ColorMatrixImage(const Image *image,
    +  const KernelInfo *color_matrix,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    color_matrix
    +
    the color matrix.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    FxImage

    + +

    FxImage() applies a mathematical expression to the specified image.

    + +

    The format of the FxImage method is:

    + +
    +Image *FxImage(const Image *image,const char *expression,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    expression
    +
    A mathematical expression.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    ImplodeImage

    + +

    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.

    + +

    The format of the ImplodeImage method is:

    + +
    +Image *ImplodeImage(const Image *image,const double amount,
    +  const PixelInterpolateMethod method,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    implode_image
    +
    Method ImplodeImage returns a pointer to the image after it is implode. A null image is returned if there is a memory shortage.
    + +
    +
    image
    +
    the image.
    + +
    +
    amount
    +
    Define the extent of the implosion.
    + +
    +
    method
    +
    the pixel interpolation method.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    The MorphImages

    + +

    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.

    + +

    The format of the MorphImage method is:

    + +
    +Image *MorphImages(const Image *image,const size_t number_frames,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    number_frames
    +
    Define the number of in-between image to generate. The more in-between frames, the smoother the morph.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    PlasmaImage

    + +

    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.

    + +

    The format of the PlasmaImage method is:

    + +
    +MagickBooleanType PlasmaImage(Image *image,const SegmentInfo *segment,
    +  size_t attenuate,size_t depth,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    segment
    +
    Define the region to apply plasma fractals values.
    + +
    +
    attenuate
    +
    Define the plasma attenuation factor.
    + +
    +
    depth
    +
    Limit the plasma recursion depth.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    PolaroidImage

    + +

    PolaroidImage() simulates a Polaroid picture.

    + +

    The format of the PolaroidImage method is:

    + +
    +Image *PolaroidImage(const Image *image,const DrawInfo *draw_info,
    +  const char *caption,const double angle,
    +  const PixelInterpolateMethod method,ExceptionInfo exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    draw_info
    +
    the draw info.
    + +
    +
    caption
    +
    the Polaroid caption.
    + +
    +
    angle
    +
    Apply the effect along this angle.
    + +
    +
    method
    +
    the pixel interpolation method.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    MagickSepiaToneImage

    + +

    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.

    + +

    The format of the SepiaToneImage method is:

    + +
    +Image *SepiaToneImage(const Image *image,const double threshold,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    threshold
    +
    the tone threshold.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    ShadowImage

    + +

    ShadowImage() simulates a shadow from the specified image and returns it.

    + +

    The format of the ShadowImage method is:

    + +
    +Image *ShadowImage(const Image *image,const double alpha,
    +  const double sigma,const ssize_t x_offset,const ssize_t y_offset,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    alpha
    +
    percentage transparency.
    + +
    +
    sigma
    +
    the standard deviation of the Gaussian, in pixels.
    + +
    +
    x_offset
    +
    the shadow x-offset.
    + +
    +
    y_offset
    +
    the shadow y-offset.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    SketchImage

    + +

    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.

    + +

    The format of the SketchImage method is:

    + +
    +    Image *SketchImage(const Image *image,const double radius,
    +const double sigma,const double angle,ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    radius
    +
    the radius of the Gaussian, in pixels, not counting the center pixel.
    + +
    +
    sigma
    +
    the standard deviation of the Gaussian, in pixels.
    + +
    +
    angle
    +
    apply the effect along this angle.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    SolarizeImage

    + +

    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.

    + +

    The format of the SolarizeImage method is:

    + +
    +MagickBooleanType SolarizeImage(Image *image,const double threshold,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    threshold
    +
    Define the extent of the solarization.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    SteganoImage

    + +

    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.

    + +

    The format of the SteganoImage method is:

    + +
    +Image *SteganoImage(const Image *image,Image *watermark,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    watermark
    +
    the watermark image.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    +

    StereoAnaglyphImage

    + +

    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.

    + +

    The format of the StereoAnaglyphImage method is:

    + +
    +Image *StereoImage(const Image *left_image,const Image *right_image,
    +  ExceptionInfo *exception)
    +Image *StereoAnaglyphImage(const Image *left_image,
    +  const Image *right_image,const ssize_t x_offset,const ssize_t y_offset,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    + +
    +
    +
    left_image
    +
    the left image.
    + +
    +
    right_image
    +
    the right image.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    x_offset
    +
    amount, in pixels, by which the left image is offset to the right of the right image.
    + +
    +
    y_offset
    +
    amount, in pixels, by which the left image is offset to the bottom of the right image.
    + +
    + +
    +

    SwirlImage

    + +

    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.

    + +

    The format of the SwirlImage method is:

    + +
    +Image *SwirlImage(const Image *image,double degrees,
    +  const PixelInterpolateMethod method,ExceptionInfo *exception)
    +
    +

    A description of each parameter follows:

    -

    The Fx Expression

    - -

    An Fx expression may include any combination of the following:

    -
    -
    x ^ y
    exponentiation (xy)
    -
    ( ... )
    grouping
    -
    x * y
    multiplication (the asterisk * is optional, for example, 2u or 2(x+y) are acceptable)
    -
    x / y
    division
    -
    x % y
    modulo
    -
    x + y
    addition
    -
    x - y
    subtraction
    -
    x << y
    left shift
    -
    x >> y
    right shift
    -
    x < y
    boolean relation, return value 1.0 if x < y, otherwise 0.0
    -
    x <= y
    boolean relation, return value 1.0 if x <= y, otherwise 0.0
    -
    x > y
    boolean relation, return value 1.0 if x > y, otherwise 0.0
    -
    x >= y
    boolean relation, return value 1.0 if x >= y, otherwise 0.0
    -
    x == y
    boolean relation, return value 1.0 if x == y, otherwise 0.0
    -
    x != y
    boolean relation, return value 1.0 if x != y, otherwise 0.0
    -
    x & y
    binary AND
    -
    x | y
    binary OR
    -
    x && y
    logical AND connective, return value 1.0 if x > 0 and y > 0, otherwise 0.0
    -
    x || y
    logical OR connective (inclusive), return value 1.0 if x > 0 or y > 0 (or both), otherwise 0.0
    -
    ~x
    logical NOT operator, return value 1.0 if not x > 0, otherwise 0.0
    -
    +x
    unary plus, return 1.0*value
    -
    -x
    unary minus, return -1.0*value
    -
    x ? y : z
    ternary conditional expression, return value y if x != 0, otherwise z; only one ternary conditional permitted per statement
    -
    x = y
    assignment; assignment variables are restricted to letter combinations only (e.g. Xi not X1)
    -
    x ; y
    statement separator
    -
    phi
    constant (1.618034...)
    -
    pi
    constant (3.14159265359...)
    -
    e
    constant (2.71828...)
    -
    QuantumRange
    constant maximum pixel value (255 for Q8, 65535 for Q16)
    -
    QuantumScale
    constant 1.0/QuantumRange
    -
    intensity
    pixel intensity whose value respects the -intensity option.
    -
    hue
    pixel hue
    -
    saturation
    pixel saturation
    -
    lightness
    pixel lightness; equivalent to 0.5*max(red,green,blue) + 0.5*min(red,green,blue)
    -
    luminance
    pixel luminance; equivalent to 0.212656*red + 0.715158*green + 0.072186*blue
    -
    red, green, blue, etc.
    color names
    -
    #ccc, #cbfed0, #b9e1cc00, etc.
    color hex values
    -
    rgb(), rgba(), cmyk(), cmyka(), hsl(), hsla()
    color functions
    -
    s, t, u, v, n, i, j, w, h, z, r, g, b, a, o, c, y, m, k
    symbols
    -
    abs(x)
    absolute value function
    -
    acos(x)
    arc cosine function
    -
    acosh(x)
    inverse hyperbolic cosine function
    -
    airy(x)
    Airy function (max=1, min=0); airy(x)=[jinc(x)]2=[2*j1(pi*x)/(pi*x)]2
    -
    alt(x)
    sign alternation function (return 1.0 if int(x) is even, -1.0 if int(x) is odd)
    -
    asin(x)
    arc sine function
    -
    asinh(x)
    inverse hyperbolic sine function
    -
    atan(x)
    arc tangent function
    -
    atanh(x)
    inverse hyperbolic tangent function
    -
    atan2(x,y)
    arc tangent function of two variables
    -
    ceil(x)
    smallest integral value not less than argument
    -
    channel(r,g,b,a)
    select numeric argument based on current channel
    -
    channel(c,m,y,k,a)
    select numeric argument based on current channel
    -
    clamp(x)
    clamp value
    -
    cos(x)
    cosine function
    -
    cosh(x)
    hyperbolic cosine function
    -
    debug(x)
    print x (useful for debugging your expression)
    -
    drc(x,y)
    dynamic range compression (knee curve); drc(x,y)=(x)/(y*(x-1)+1); -1<y<1
    -
    erf(x)
    error function
    -
    exp(x)
    natural exponential function (ex)
    -
    floor(x)
    largest integral value not greater than argument
    -
    gauss(x)
    gaussian function; gauss(x)=exp(-x*x/2)/sqrt(2*pi)
    -
    gcd(x,y)
    greatest common denominator
    -
    hypot(x,y)
    the square root of x2+y2
    -
    int(x)
    greatest integer function (return greatest integer less than or equal to x)
    -
    isnan(x)
    return 1.0 if x is NAN, 0.0 otherwise
    -
    j0(x)
    Bessel functions of x of the first kind of order 0
    -
    j1(x)
    Bessel functions of x of the first kind of order 1
    -
    jinc(x)
    jinc function (max=1, min=-0.1323); jinc(x)=2*j1(pi*x)/(pi**x)
    -
    ln(x)
    natural logarithm function
    -
    log(x)
    logarithm base 10
    -
    logtwo(x)
    logarithm base 2
    -
    ln(x)
    natural logarithm
    -
    max(x, y)
    maximum of x and y
    -
    min(x, y)
    minimum of x and y
    -
    mod(x, y)
    floating-point remainder function
    -
    not(x)
    return 1.0 if x is zero, 0.0 otherwise
    -
    pow(x,y)
    power function (xy)
    -
    rand()
    value uniformly distributed over the interval [0.0, 1.0) with a 2 to the 128th-1 period
    -
    round()
    round to integral value, regardless of rounding direction
    -
    sign(x)
    return -1.0 if x is less than 0.0 otherwise 1.0
    -
    sin(x)
    sine function
    -
    sinc(x)
    sinc function (max=1, min=-0.21); sinc(x)=sin(pi*x)/(pi*x)
    -
    squish(x)
    squish function; squish(x)=1.0/(1.0+exp(-x))
    -
    sinh(x)
    hyperbolic sine function
    -
    sqrt(x)
    square root function
    -
    tan(x)
    tangent function
    -
    tanh(x)
    hyperbolic tangent function
    -
    trunc(x)
    round to integer, towards zero
    -
    while(condition,expression)
    iterate while the condition is not equal to 0
    +
    +
    + +
    +
    +
    image
    +
    the image.
    + +
    +
    degrees
    +
    Define the tightness of the swirling effect.
    + +
    +
    method
    +
    the pixel interpolation method.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    -
    -

    The expression semantics include these rules:

    +

    TintImage

    -
      -
    • symbols are case insensitive
    • -
    • only one ternary conditional (e.g. x ? y : z) per statement
    • -
    • statements are assignments or the final expression to return
    • -
    • an assignment starts a statement, it is not an operator
    • -
    • assignments to built-ins do not throw an exception and have no effect; e.g. r=3.0; r returns the pixel red color value, not 3.0
    • -
    • Unary operators have a lower priority than binary operators, that is, the unary minus (negation) has lower precedence than exponentiation, so -3^2 is interpreted as -(3^2) = -9. Use parentheses to clarify your intent (e.g. (-3)^2 = 9).
    • -
    • Similarly, care must be exercised when using the slash ('/') symbol. The string of characters 1/2x is interpreted as (1/2)x. The contrary interpretation should be written explicitly as 1/(2x). Again, the use of parentheses helps clarify the meaning and should be used whenever there is any chance of misinterpretation.
    • -
    -
    +

    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))))

    +

    The format of the TintImage method is:

    -

    Source Images

    +
    +Image *TintImage(const Image *image,const char *blend,
    +  const PixelInfo *tint,ExceptionInfo *exception)
    +
    -

    The symbols u and v refer to the first and second images, respectively, in the current image sequence. Refer to a particular image in a sequence by appending its index to any image reference (usually u), with a zero index for the beginning of the sequence. A negative index counts from the end. For example, u[0] is the first image in the sequence, u[2] is the third, u[-1] is the last image, and u[t] is the current image. The current image can also be referenced by s. If the sequence number exceeds the length of the sequence, the count is wrapped. Thus in a 3-image sequence, u[-1], u[2], and u[5] all refer to the same (third) image.

    +

    A description of each parameter follows:

    -

    As an example, we form an image by averaging the first image and third images (the second (index 1) image is ignored and just junked):

    +
    +
    -
    convert image1.jpg image2.jpg image3.jpg -fx "(u+u[2])/2.0" image.jpg
    -
    +
    +
    +
    image
    +
    the image.
    -

    By default, the image to which p, r, g, b, a, etc., are applied is the current image s in the image list. This is equivalent to u except when used in an escape sequence %[fx:...].

    +
    +
    blend
    +
    A color value used for tinting.
    -

    It is important to note the special role played by the first image. This is the only image in the image sequence that is modified, other images are used only for their data. As an illustrative example, consider the following, and note that the setting -channel red instructs -fx to modify only the red channel; nothing in the green or blue channels will change. It is instructive to ponder why the result is not symmetric.

    +
    +
    tint
    +
    A color value used for tinting.
    -
    convert -channel red logo: -flop logo: -resize "20%" -fx "(u+v)/2" image.jpg
    -
    +
    +
    exception
    +
    return any errors or warnings in this structure.
    -
      - logo-sm-flop.png - logo-sm.png -==> - logo-sm-fx.png -
    +
    +
    +

    VignetteImage

    -
    -

    Accessing Pixels

    +

    VignetteImage() softens the edges of the image in vignette style.

    -

    All color values are normalized to the range of 0.0 to 1.0. The alpha channel ranges from 0.0 (fully transparent) to 1.0 (fully opaque).

    +

    The format of the VignetteImage method is:

    -

    The pixels are processed one at a time, but a different pixel of an image can be specified using a pixel index represented by p. For example,

    +
    +Image *VignetteImage(const Image *image,const double radius,
    +  const double sigma,const ssize_t x,const ssize_t y,
    +  ExceptionInfo *exception)
    +
    -
    p[-1].g      green value of pixel to the immediate left of the current pixel
    -p[-1,-1].r   red value of the pixel diagonally left and up from current pixel
    -
    +

    A description of each parameter follows:

    -

    To specify an absolute position, use braces, rather than brackets.

    +
    +
    -
    p{0,0}.r     red value of the pixel in the upper left corner of the image
    -p{12,34}.b   blue pixel value at column number 12, row 34 of the image
    -
    +
    +
    +
    image
    +
    the image.
    -

    Integer values of the position retrieve the color of the pixel referenced, while non-integer position values return a blended color according to the current -interpolate setting.

    +
    +
    radius
    +
    the radius of the pixel neighborhood.
    -

    A position outside the boundary of the image retrieves a value dictated by the -virtual-pixel option setting.

    +
    +
    sigma
    +
    the standard deviation of the Gaussian, in pixels.
    -

    Apply an Expression to Select Image Channels

    +
    +
    x, y
    +
    Define the x and y ellipse offset.
    -

    Use the -channel setting to specify the output channel of the result. If no output channel is given, the result is set over all channels except the opacity channel. For example, to replace the red channel of alpha.png with the average of the green channels from the images alpha.png and beta.png, use:

    +
    +
    exception
    +
    return any errors or warnings in this structure.
    -
    convert alpha.png beta.png -channel red -fx "(u.g+v.g)/2" gamma.png
    -
    +
    +
    +

    WaveImage

    + +

    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.

    + +

    The format of the WaveImage method is:

    + +
    +Image *WaveImage(const Image *image,const double amplitude,
    +  const double wave_length,const PixelInterpolateMethod method,
    +  ExceptionInfo *exception)
    +
    + +

    A description of each parameter follows:

    + +
    +
    +
    +
    +
    image
    +
    the image.
    -

    Results

    +
    +
    amplitude, wave_length
    +
    Define the amplitude and wave length of the sine wave.
    -

    The -fx operator evaluates the given expression for each channel (set by -channel) of each pixel in the first image (u) in the sequence. The computed values are temporarily stored in a copy (clone) of that first image until all the pixels have been processed, after which this single new image replaces the list of images in the current image sequence. As such, in the previous example the updated version of alpha.png replaces both of the original images, alpha.png and beta.png, before being saved as gamma.png.

    +
    +
    interpolate
    +
    the pixel interpolation method.
    -

    The current image s is set to the first image in the sequence (u), and t to its index, 0. The symbols i and j reference the current pixel being processed.

    +
    +
    exception
    +
    return any errors or warnings in this structure.
    +
    +
    +

    WaveletDenoiseImage

    + +

    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.

    + +

    The format of the WaveletDenoiseImage method is:

    -

    For use with -format, the value-escape %[fx:] is evaluated just once for each image in the current image sequence. As each image in the sequence is being evaluated, s and t successively refer to the current image and its index, while i and j are set to zero, and the current channel set to red (-channel is ignored). An example:

    +
    +Image *WaveletDenoiseImage(const Image *image,const double threshold,
    +  const double softness,ExceptionInfo *exception)
    +
    -
    $ convert canvas:'rgb(25%,50%,75%)' rose: -colorspace rgb  \ 
    -  -format 'Red channel of NW corner of image #%[fx:t] is %[fx:s]' info:
    -Red channel of NW corner of image #0 is 0.453758 
    -Red channel of NW corner of image #1 is 0.184588
    -
    +

    A description of each parameter follows:

    -

    Here we use the image indexes to rotate each image differently, and use -set with the image index to set a different pause delay on the first image in the animation:

    +
    +
    -
    convert rose: -duplicate 29 -virtual-pixel Gray -distort SRT '%[fx:360.0*t/n]' \
    -  -set delay '%[fx:t == 0 ? 240 : 10]' -loop 0 rose.gif"
    -
    +
    +
    +
    image
    +
    the image.
    -

    The color-escape %[pixel:] or %[hex:] is evaluated once per image and per color channel in that image (-channel is ignored), The values generated are then converted into a color string (a named color or hex color value). The symbols i and j are set to zero, and s and t refer to each successively current image and index.

    +
    +
    threshold
    +
    set the threshold for smoothing.
    +
    +
    softness
    +
    attenuate the smoothing threshold.
    + +
    +
    exception
    +
    return any errors or warnings in this structure.
    + +
    +
    @@ -422,7 +848,7 @@ Red channel of NW corner of image #1 is 0.184588 Related • Sitemap - + Public Key • Donate • @@ -436,4 +862,4 @@ Red channel of NW corner of image #1 is 0.184588 - \ No newline at end of file + \ No newline at end of file diff --git a/www/gradient.html b/www/gradient.html index 94a849c8f..1bdc3d8c9 100644 --- a/www/gradient.html +++ b/www/gradient.html @@ -32,7 +32,7 @@
    @@ -253,7 +253,7 @@ magick -size 256x128 -define gradient:radii=128,64 radial-gradient:black-white r Related • Sitemap - + Public Key • Donate • @@ -267,4 +267,4 @@ magick -size 256x128 -define gradient:radii=128,64 radial-gradient:black-white r - \ No newline at end of file + \ No newline at end of file diff --git a/www/high-dynamic-range.html b/www/high-dynamic-range.html index ed5650fac..dd0156d68 100644 --- a/www/high-dynamic-range.html +++ b/www/high-dynamic-range.html @@ -32,7 +32,7 @@
    @@ -118,7 +118,7 @@ Features: HDRI Related • Sitemap - + Public Key • Donate • @@ -132,4 +132,4 @@ Features: HDRI - \ No newline at end of file + \ No newline at end of file diff --git a/www/history.html b/www/history.html index 80f5aae91..43d2cd84e 100644 --- a/www/history.html +++ b/www/history.html @@ -32,7 +32,7 @@
    @@ -110,7 +110,7 @@ I swear by my life and my love of it that I will never live for the sake of anot Related • Sitemap - + Public Key • Donate • @@ -124,4 +124,4 @@ I swear by my life and my love of it that I will never live for the sake of anot - \ No newline at end of file + \ No newline at end of file diff --git a/www/identify.html b/www/identify.html index de96055fa..ad9d82a7f 100644 --- a/www/identify.html +++ b/www/identify.html @@ -32,7 +32,7 @@
    @@ -437,7 +437,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -451,4 +451,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/import.html b/www/import.html index c88ecdb5a..03ebbba23 100644 --- a/www/import.html +++ b/www/import.html @@ -32,7 +32,7 @@
    @@ -438,7 +438,7 @@ Related • Sitemap - + Public Key • Donate • @@ -452,4 +452,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/index.html b/www/index.html index aef91a322..45b6e49d5 100644 --- a/www/index.html +++ b/www/index.html @@ -32,7 +32,7 @@
    @@ -92,7 +92,7 @@ Use ImageMagickABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to help prevent security vulnerabilities.

    -

    The current release is ImageMagick 7.0.7-15. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.

    +

    The current release is ImageMagick 7.0.7-18. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.

    The authoritative ImageMagick web site is https://www.imagemagick.org. The authoritative source code repository is https://github.com/ImageMagick. We maintain a source code mirror at https://gitlab.com/ImageMagick.

    @@ -241,6 +241,8 @@ Use ImageMagicksecurity policy that suits your local environment.

    +

    As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as of ImageMagick 7.0.7-17, we introduce the LinearGray colorspace. Gray is non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).

    +

    Want more performance from ImageMagick? Try these options:

      @@ -251,7 +253,7 @@ Use ImageMagickHDRI, you use half the memory and instead of predominately floating point operations, you use the typically more efficient integer operations. The tradeoff is reduced percision and you cannot process out of range pixel values (e.g. negative). If you build the Q8 non-HDRI version of ImageMagick, you again reduce the memory requirements in half-- and once again there is a tradeoff, even less percision and no out of range pixel values. For a Q8 non-HDRI build of ImageMagick, use these configure script options: --with-quantum-depth=8 --disable-hdri.

      Community

      -

      To join the ImageMagick community, try the discourse server. You can review questions or comments (with informed responses) posed by ImageMagick users or ask your own questions. If you want to contribute image processing algorithms, other enhancements, or bug fixes, open an issue.

      +

      To join the ImageMagick community, try the discourse server. You can review questions or comments (with informed responses) posed by ImageMagick users or ask your own questions. If you want to contribute image processing algorithms, other enhancements, or bug fixes, open an issue.

    @@ -261,7 +263,7 @@ Use ImageMagickRelated • Sitemap - + Public Key • Donate • @@ -275,4 +277,4 @@ Use ImageMagick<\/script>') - \ No newline at end of file + \ No newline at end of file diff --git a/www/install-source.html b/www/install-source.html index 387b04ec1..f550a4e09 100644 --- a/www/install-source.html +++ b/www/install-source.html @@ -32,7 +32,7 @@
    @@ -167,7 +167,7 @@ to compile the program and on completion run the program.

    Related • Sitemap - + Public Key • Donate • @@ -181,4 +181,4 @@ to compile the program and on completion run the program.

    - \ No newline at end of file + \ No newline at end of file diff --git a/www/jp2.html b/www/jp2.html index 007522fb7..6d79b4407 100644 --- a/www/jp2.html +++ b/www/jp2.html @@ -32,7 +32,7 @@
    @@ -170,7 +170,7 @@ Related • Sitemap - + Public Key • Donate • @@ -184,4 +184,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/license.html b/www/license.html index 2024ffa1b..8c83a7627 100644 --- a/www/license.html +++ b/www/license.html @@ -32,7 +32,7 @@
    @@ -215,7 +215,7 @@ Related • Sitemap - + Public Key • Donate • @@ -229,4 +229,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/links.html b/www/links.html index 56479c2bc..c688a0885 100644 --- a/www/links.html +++ b/www/links.html @@ -32,7 +32,7 @@
    @@ -176,7 +176,7 @@ Related • Sitemap - + Public Key • Donate • @@ -190,4 +190,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick++.html b/www/magick++.html index aa376ee55..af1ca72f2 100644 --- a/www/magick++.html +++ b/www/magick++.html @@ -32,7 +32,7 @@
    @@ -197,7 +197,7 @@ int main(int argc,char **argv) Related • Sitemap - + Public Key • Donate • @@ -211,4 +211,4 @@ int main(int argc,char **argv) - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick-core.html b/www/magick-core.html index 364cba03f..0e216e294 100644 --- a/www/magick-core.html +++ b/www/magick-core.html @@ -32,7 +32,7 @@
    @@ -342,7 +342,7 @@ int main(int argc,char **argv) Related • Sitemap - + Public Key • Donate • @@ -356,4 +356,4 @@ int main(int argc,char **argv) - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick-script.html b/www/magick-script.html index f724b65da..60c23d079 100644 --- a/www/magick-script.html +++ b/www/magick-script.html @@ -32,7 +32,7 @@
    @@ -1295,7 +1295,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -1309,4 +1309,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick-vector-graphics.html b/www/magick-vector-graphics.html index a91b6cca0..ce8768d46 100644 --- a/www/magick-vector-graphics.html +++ b/www/magick-vector-graphics.html @@ -32,7 +32,7 @@
    @@ -884,7 +884,7 @@ round Related • Sitemap - + Public Key • Donate • @@ -898,4 +898,4 @@ round - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick-wand.html b/www/magick-wand.html index 960b7c24d..9c0f9f6ad 100644 --- a/www/magick-wand.html +++ b/www/magick-wand.html @@ -32,7 +32,7 @@
    @@ -394,7 +394,7 @@ int main(int argc,char **argv) Related • Sitemap - + Public Key • Donate • @@ -408,4 +408,4 @@ int main(int argc,char **argv) - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick.html b/www/magick.html index 460f6221e..a17b1d351 100644 --- a/www/magick.html +++ b/www/magick.html @@ -32,7 +32,7 @@
    @@ -1332,7 +1332,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -1346,4 +1346,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/miff.html b/www/miff.html index 0428a566c..270988eea 100644 --- a/www/miff.html +++ b/www/miff.html @@ -32,7 +32,7 @@
    @@ -257,7 +257,7 @@ or fewer colors in the image, each byte of image data contains an index value. I Related • Sitemap - + Public Key • Donate • @@ -271,4 +271,4 @@ or fewer colors in the image, each byte of image data contains an index value. I - \ No newline at end of file + \ No newline at end of file diff --git a/www/mirror.html b/www/mirror.html index 51a4516e5..ffa042da7 100644 --- a/www/mirror.html +++ b/www/mirror.html @@ -32,7 +32,7 @@
    @@ -82,7 +82,7 @@

    ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors around the world listed below. ImageMagick stable and development source releases are also available from Git. Before you download, you may want to review recent changes to the ImageMagick distribution. The authoritative source code repository is http://git.imagemagick.org/repos/ImageMagick.

    -

    The latest release of ImageMagick is version 7.0.7-15.

    +

    The latest release of ImageMagick is version 7.0.7-18.

    Germany
    http://mirror.checkdomain.de/imagemagick/
    @@ -128,7 +128,7 @@ Related • Sitemap - + Public Key • Donate • @@ -142,4 +142,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/mogrify.html b/www/mogrify.html index d11d7c996..a3e7332ad 100644 --- a/www/mogrify.html +++ b/www/mogrify.html @@ -32,7 +32,7 @@
    @@ -1312,7 +1312,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -1326,4 +1326,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/montage.html b/www/montage.html index b46be0abc..1d35556df 100644 --- a/www/montage.html +++ b/www/montage.html @@ -7,12 +7,12 @@ - Command-line Tools: Montage @ ImageMagick + MagickCore, C API: Create an Image Thumbnail @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -32,7 +32,7 @@
    @@ -81,564 +81,7 @@
    -

    Example Usage • Option Summary

    - -

    Use the montage program to create a composite image by combining several separate images. The images are tiled on the composite image optionally adorned with a border, frame, image name, and more. See Command Line Processing for advice on how to structure your montage command or see below for example usages of the command.

    - -

    Example Usage

    - -

    We list a few examples of the montage command here to illustrate its usefulness and ease of use. To get started, let's montage two images into a single composite:

    - -
    magick montage -background '#336699' -geometry +4+4 rose.jpg red-ball.png montage.jpg
    -
    - - - -

    Ok, let's add some decorations:

    - -
    magick montage -label %f -frame 5 -background '#336699' -geometry +4+4 rose.jpg red-ball.png frame.jpg
    -
    - - - -

    You can find additional examples of using montage at Examples of ImageMagick Usage and Graphics from the Command Line. Further discussion is available in More Graphics from the Command Line and Examples of ImageMagick Usage.

    - -

    Option Summary

    - -

    The montage command recognizes these options. Click on an option to get more details about how that option works.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OptionDescription
    -adaptive-sharpen geometryadaptively sharpen pixels; increase effect near edges
    -adjoinjoin images into a single multi-image file
    -affine matrixaffine transform matrix
    -alphaon, activate, off, deactivate, set, opaque, copy", -transparent, extract, background, or shape the alpha channel
    -annotate geometry textannotate the image with text
    -authenticate valuedecrypt image with this password
    -auto-orientautomagically orient image
    -background colorbackground color
    -blue-primary pointchromaticity blue primary point
    -blur geometryreduce image noise and reduce detail levels
    -border geometrysurround image with a border of color
    -bordercolor colorborder color
    -caption stringassign a caption to an image
    -channel typeapply option to select image channels
    -clone indexclone an image
    -coalescemerge a sequence of images
    -colors valuepreferred number of colors in the image
    -colorspace typeset image colorspace
    -comment stringannotate image with comment
    -compose operatorset image composite operator
    -compositecomposite image
    -compress typeimage compression type
    -crop geometrypreferred size and location of the cropped image
    -debug eventsdisplay copious debugging information
    -define format:optiondefine one or more image format options
    -density geometryhorizontal and vertical density of the image
    -depth valueimage depth
    -display serverget image or font from this X server
    -dispose methodlayer disposal method
    -dither methodapply error diffusion to image
    -draw stringannotate the image with a graphic primitive
    -duplicate count,indexesduplicate an image one or more times
    -endian typeendianness (MSB or LSB) of the image
    -extent geometryset the image size
    -extract geometryextract area from image
    -fill colorcolor to use when filling a graphic primitive
    -filter typeuse this filter when resizing an image
    -flattenflatten a sequence of images
    -flipflip image in the vertical direction
    -flopflop image in the horizontal direction
    -font namerender text with this font
    -frame geometrysurround image with an ornamental border
    -gamma valuelevel of gamma correction
    -geometry geometrypreferred size or location of the image
    -gravity typehorizontal and vertical text placement
    -green-primary pointchromaticity green primary point
    -helpprint program options
    -identifyidentify the format and characteristics of the image
    -interlace typetype of image interlacing scheme
    -interpolate methodpixel color interpolation method
    -kerning valuethe space between two characters
    -label stringassign a label to an image
    -limit type valuepixel cache resource limit
    -log formatformat of debugging information
    -mattecolor colorframe color
    -mode typeframing style
    -monitormonitor progress
    -monochrometransform image to black and white
    -origin geometryimage origin
    -page geometrysize and location of an image canvas (setting)
    -pointsize valuefont point size
    -polaroid anglesimulate a Polaroid picture
    -profile filenameadd, delete, or apply an image profile
    -quality valueJPEG/MIFF/PNG compression level
    -quantize colorspacereduce image colors in this colorspace
    -quietsuppress all warning messages
    -red-primary pointchromaticity red primary point
    -regard-warningspay attention to warning messages.
    -repage geometrysize and location of an image canvas
    -resize geometryresize the image
    -respect-parenthesessettings remain in effect until parenthesis boundary.
    -rotate degreesapply Paeth rotation to the image
    -sampling-factor geometryhorizontal and vertical sampling factor
    -scale geometryscale the image
    -scenesrangeimage scene range
    -seed valueseed a new sequence of pseudo-random numbers
    -shadow geometrysimulate an image shadow
    -size geometrywidth and height of image
    -stripstrip image of all profiles and comments
    -stroke colorgraphic primitive stroke color
    -synchronizesynchronize image to storage device
    -taintmark the image as modified
    -texture filenamename of texture to tile onto the image background
    -tile filenametile image when filling a graphic primitive
    -tile-offset geometryset the image tile offset
    -titledecorate the montage image with a title
    -transformaffine transform image
    -transparent colormake this color transparent within the image
    -transposeflip image in the vertical direction and rotate 90 degrees
    -transparent-color colortransparent color
    -treedepth valuecolor tree depth
    -trimtrim image edges
    -type typeimage type
    -units typethe units of image resolution
    -unsharp geometrysharpen the image
    -verboseprint detailed information about the image
    -versionprint version information
    -viewFlashPix viewing transforms
    -virtual-pixel methodaccess method for pixels outside the boundaries of the image
    -white-point pointchromaticity white point
    +

    Unknown method

    @@ -649,7 +92,7 @@ transparent, extract, background, or shape the alpha channel Related • Sitemap - + Public Key • Donate • @@ -663,4 +106,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/motion-picture.html b/www/motion-picture.html index 6ac95ef4f..832228d16 100644 --- a/www/motion-picture.html +++ b/www/motion-picture.html @@ -32,7 +32,7 @@
    @@ -203,7 +203,7 @@ dpx:user.data Related • Sitemap - + Public Key • Donate • @@ -217,4 +217,4 @@ dpx:user.data - \ No newline at end of file + \ No newline at end of file diff --git a/www/opencl.html b/www/opencl.html index d87c13621..8b6f9aa3b 100644 --- a/www/opencl.html +++ b/www/opencl.html @@ -32,7 +32,7 @@
    @@ -127,7 +127,7 @@ InitImageMagickOpenCL(MAGICK_OPENCL_DEVICE_SELECT_USER, (void*)(myDevices+2), NU Related • Sitemap - + Public Key • Donate • @@ -141,4 +141,4 @@ InitImageMagickOpenCL(MAGICK_OPENCL_DEVICE_SELECT_USER, (void*)(myDevices+2), NU - \ No newline at end of file + \ No newline at end of file diff --git a/www/openmp.html b/www/openmp.html index 9760d27bb..69125655b 100644 --- a/www/openmp.html +++ b/www/openmp.html @@ -32,7 +32,7 @@
    @@ -84,10 +84,10 @@

    Many of ImageMagick's internal algorithms are threaded to take advantage of speed-ups offered by the multicore processor chips and OpenMP. OpenMP, is an API specification for parallel programming. If your compiler supports OpenMP (e.g. gcc, Visual Studio 2005) directives, ImageMagick automatically includes support. To verify, look for the OpenMP feature of ImageMagick with this command:

    -> magick identify -version
    -Version: ImageMagick 7.0.3-9 2016-10-14 Q16 https://www.imagemagick.org
    +Version: ImageMagick 7.0.7-19 2018-01-04 Q16 https://www.imagemagick.org
     Copyright: © 1999-2018 ImageMagick Studio LLC
     Features: OpenMP
    -

    With OpenMP enabled, most ImageMagick algorithms execute on all the cores on your system in parallel. ImageMagick typically divides the work so that each thread processes four rows of pixels. As rows are completed, OpenMP assigns more chunks of pixel rows to each thread until the algorithm completes. For example, if you have a quad-core system, and attempt to resize an image, the resizing takes place on 4 cores (8 if hyperthreading is enabled).

    +

    With OpenMP enabled, most ImageMagick algorithms execute on all the cores on your system in parallel. ImageMagick typically divides the work so that each thread processes 64 rows of pixels. As rows are completed, OpenMP assigns more chunks of pixel rows to each thread until the algorithm completes. For example, if you have a quad-core system, and attempt to resize an image, the resizing takes place on 4 cores (8 if hyperthreading is enabled).

    The Perils of Parallel Execution

    It can be difficult to predict behavior in a parallel environment. Performance might depend on a number of factors including the compiler, the version of the OpenMP library, the processor type, the number of cores, the amount of memory, whether hyperthreading is enabled, the mix of applications that are executing concurrently with ImageMagick, or the particular image-processing algorithm you utilize. The only way to be certain of the optimal performance, in terms of the number of threads, is to benchmark. ImageMagick includes progressive threading when benchmarking a command and returns the elapsed time and efficiency for one or more threads. This can help you identify how many threads are the most efficient in your environment. Here is an example benchmark for threads 1-8:

    @@ -110,7 +110,7 @@ Performance[8]: 40i 4.831ips 0.872e 15.680u 0:02.070 Related • Sitemap - + Public Key • Donate • @@ -124,4 +124,4 @@ Performance[8]: 40i 4.831ips 0.872e 15.680u 0:02.070 - \ No newline at end of file + \ No newline at end of file diff --git a/www/perl-magick.html b/www/perl-magick.html index 71d3d39ce..45215cc33 100644 --- a/www/perl-magick.html +++ b/www/perl-magick.html @@ -32,7 +32,7 @@
    @@ -2554,7 +2554,7 @@ XServerWarning Related • Sitemap - + Public Key • Donate • @@ -2568,4 +2568,4 @@ XServerWarning - \ No newline at end of file + \ No newline at end of file diff --git a/www/porting.html b/www/porting.html index 577dc3adc..b6b81fd05 100644 --- a/www/porting.html +++ b/www/porting.html @@ -32,7 +32,7 @@
    @@ -467,11 +467,7 @@ scripts.

    are to be processed 'in-place'. (not yet implemented). However if not provided, "-read" can still be used to differentiate secondary image reads (for use in things like alpha composition) from - the 'in-place' image being processed. - -
    In other commands (such as "magick") it is equivalent to a explicit - "-read" (see below) of the next option as a image (as it was in - IMv6).
    + the 'in-place' image being processed. In other commands (such as "magick") it is equivalent to a explicit "-read" (see below) of the next option as a image (as it was in IMv6).
    -alpha discrete
    treat the alpha channel independently (do not blend).
    @@ -508,9 +504,7 @@ scripts.

    Stop processing at this point. No further options will be processed after this option. Can be used in a script to force the "magick" command to exit, without actually closing the pipeline that it is - processing options from.
    - -
    May also be used as a 'final' option on the "magick" command + processing options from. May also be used as a 'final' option on the "magick" command line, instead of a implicit output image, to completely prevent any image write. ASIDE: even the "NULL:" coder requires at least one image, for it to 'not write'! This option does not require any images at @@ -657,7 +651,7 @@ example "+annotate", "+resize", "+clut", and "+draw" .

    Related • Sitemap - + Public Key • Donate • @@ -671,4 +665,4 @@ example "+annotate", "+resize", "+clut", and "+draw" .

    - \ No newline at end of file + \ No newline at end of file diff --git a/www/quantize.html b/www/quantize.html index fa03441f8..612cd4d45 100644 --- a/www/quantize.html +++ b/www/quantize.html @@ -32,7 +32,7 @@
    @@ -212,7 +212,7 @@ while number of nodes with (n2 > 0) > required maximum number of colors Related • Sitemap - + Public Key • Donate • @@ -226,3 +226,4 @@ while number of nodes with (n2 > 0) > required maximum number of colors + \ No newline at end of file diff --git a/www/resources.html b/www/resources.html index c35eacb79..84398c796 100644 --- a/www/resources.html +++ b/www/resources.html @@ -32,7 +32,7 @@
    @@ -376,7 +376,7 @@ $MAGICK_FONT_PATH Related • Sitemap - + Public Key • Donate • @@ -390,4 +390,4 @@ $MAGICK_FONT_PATH - \ No newline at end of file + \ No newline at end of file diff --git a/www/search.html b/www/search.html index a7c67c9bb..95a025c0c 100644 --- a/www/search.html +++ b/www/search.html @@ -32,7 +32,7 @@
    @@ -115,7 +115,7 @@ s.parentNode.insertBefore(gcse, s); })(); - +
    @@ -125,7 +125,7 @@ Related • Sitemap - + Public Key • Donate • diff --git a/www/security-policy.html b/www/security-policy.html index bb95f5462..0b1cd569a 100644 --- a/www/security-policy.html +++ b/www/security-policy.html @@ -32,7 +32,7 @@
    @@ -206,7 +206,7 @@ Path: [built-in]

    Other Security Considerations

    -

    If you spot a security flaw in ImageMagick, post your concern to +

    If you spot a security flaw in ImageMagick, post your concern as an issue to GitHub. Be sure to include how to reproduce the security flaw and a link to any images needed to reproduce the flaw. Alternatively, contact us and select Security Issue as the issue.

    In addition to the security policy, you can make ImageMagick safer by ...

    @@ -227,7 +227,7 @@ Path: [built-in] Related • Sitemap - + Public Key • Donate • @@ -241,4 +241,4 @@ Path: [built-in] - \ No newline at end of file + \ No newline at end of file diff --git a/www/sitemap.html b/www/sitemap.html index 913f3bde1..5f3fcfa93 100644 --- a/www/sitemap.html +++ b/www/sitemap.html @@ -32,7 +32,7 @@
    @@ -250,7 +250,7 @@ Related • Sitemap - + Public Key • Donate • @@ -264,4 +264,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/stream.html b/www/stream.html index e77d2a93a..655c51241 100644 --- a/www/stream.html +++ b/www/stream.html @@ -32,7 +32,7 @@
    @@ -282,7 +282,7 @@ magick display -depth 8 -size 640x480 rgb:pixels.dat Related • Sitemap - + Public Key • Donate • @@ -296,4 +296,4 @@ magick display -depth 8 -size 640x480 rgb:pixels.dat - \ No newline at end of file + \ No newline at end of file diff --git a/www/subversion.html b/www/subversion.html index 7d0c985d4..ac06e3648 100644 --- a/www/subversion.html +++ b/www/subversion.html @@ -82,7 +82,7 @@ svn update

    Back to top • Public Key • - Contact Us

    + Contact Us

    © 1999-2018 ImageMagick Studio LLC

    diff --git a/www/support.html b/www/support.html index 62d7e4f9f..4cde0bf94 100644 --- a/www/support.html +++ b/www/support.html @@ -32,7 +32,7 @@
    @@ -167,7 +167,7 @@ USA Related • Sitemap - + Public Key • Donate • @@ -181,4 +181,4 @@ USA - \ No newline at end of file + \ No newline at end of file diff --git a/www/webp.html b/www/webp.html index afea21565..5415a625d 100644 --- a/www/webp.html +++ b/www/webp.html @@ -32,7 +32,7 @@
    @@ -194,7 +194,7 @@ Related • Sitemap - + Public Key • Donate • @@ -208,4 +208,4 @@ - \ No newline at end of file + \ No newline at end of file