From 8e1d74e66113583aff16786418b37a92e833518e Mon Sep 17 00:00:00 2001 From: Cristy Date: Mon, 19 Feb 2018 07:49:19 -0500 Subject: [PATCH] ... --- www/ImageMagickObject.html | 2 +- www/advanced-unix-installation.html | 8 +- www/advanced-windows-installation.html | 4 +- www/animate.html | 2 +- www/api.html | 2 +- www/api/Image++.html | 2 +- www/api/animate.html | 461 +-- www/api/annotate.html | 1 + www/api/attribute.html | 1 + www/api/blob.html | 1 + www/api/cache-view.html | 2 +- www/api/cache.html | 2 +- www/api/channel.html | 1 + www/api/cipher.html | 263 +- www/api/color.html | 4922 +----------------------- www/api/colormap.html | 1 + www/api/colorspace.html | 1 + www/api/compare.html | 368 +- www/api/composite.html | 472 +-- www/api/constitute.html | 1 + www/api/decorate.html | 1 + www/api/deprecate.html | 1 + www/api/display.html | 495 +-- www/api/distort.html | 1 + www/api/draw.html | 1 + www/api/drawing-wand.html | 1 + www/api/effect.html | 1 + www/api/enhance.html | 1 + www/api/exception.html | 588 ++- www/api/fourier.html | 1 + www/api/fx.html | 2 +- www/api/histogram.html | 2 +- www/api/image-view.html | 2 +- www/api/image.html | 1 + www/api/layer.html | 1 + www/api/list.html | 1 + www/api/magick++-classes.html | 4 +- www/api/magick-deprecate.html | 1 + www/api/magick-image.html | 2 +- www/api/magick-property.html | 1 + www/api/magick-wand.html | 896 +++-- www/api/magick.html | 1287 +------ www/api/memory.html | 2 +- www/api/mime.html | 1 + www/api/module.html | 2 +- www/api/mogrify.html | 1250 +----- www/api/monitor.html | 1 + www/api/montage.html | 2 +- www/api/morphology.html | 1 + www/api/paint.html | 1 + www/api/pixel-iterator.html | 1 + www/api/pixel-wand.html | 1 + www/api/profile.html | 2 +- www/api/property.html | 2 +- www/api/quantize.html | 456 ++- www/api/registry.html | 1 + www/api/resize.html | 1 + www/api/resource.html | 2 +- www/api/segment.html | 1 + www/api/shear.html | 1 + www/api/signature.html | 2 +- www/api/statistic.html | 1 + www/api/stream.html | 217 +- www/api/transform.html | 1 + www/api/version.html | 2 +- www/api/wand-view.html | 2 +- www/architecture.html | 4 +- www/binary-releases.html | 2 +- www/changelog.html | 22 +- www/cipher.html | 2 +- www/color-management.html | 2 +- www/color.html | 2 +- www/command-line-options.html | 23 +- www/command-line-processing.html | 14 +- www/command-line-tools.html | 2 +- www/compare.html | 2 +- www/compose.html | 2 +- www/composite.html | 2 +- www/conjure.html | 2 +- www/connected-components.html | 2 +- www/convert.html | 2 +- www/develop.html | 2 +- www/display.html | 2 +- www/distribute-pixel-cache.html | 2 +- www/download.html | 104 +- www/escape.html | 2 +- www/examples.html | 2 +- www/exception.html | 1 + www/export.html | 1 - www/formats.html | 9 +- www/fx.html | 1026 ++--- www/gradient.html | 2 +- www/high-dynamic-range.html | 2 +- www/history.html | 2 +- www/identify.html | 2 +- www/import.html | 2 +- www/index.html | 8 +- www/install-source.html | 13 +- www/jp2.html | 2 +- www/license.html | 2 +- www/links.html | 5 +- www/magick++.html | 2 +- www/magick-core.html | 2 +- www/magick-script.html | 2 +- www/magick-vector-graphics.html | 2 +- www/magick-wand.html | 2 +- www/magick.html | 2 +- www/miff.html | 2 +- www/mirror.html | 4 +- www/mogrify.html | 2 +- www/montage.html | 567 ++- www/motion-picture.html | 2 +- www/opencl.html | 2 +- www/openmp.html | 2 +- www/perl-magick.html | 21 +- www/porting.html | 4 +- www/quantize.html | 2 +- www/resources.html | 8 +- www/security-policy.html | 12 +- www/sitemap.html | 2 +- www/stream.html | 2 +- www/subversion.html | 2 +- www/support.html | 2 +- www/webp.html | 2 +- 124 files changed, 3007 insertions(+), 10680 deletions(-) diff --git a/www/ImageMagickObject.html b/www/ImageMagickObject.html index 59cedf0c9..7850ddab2 100644 --- a/www/ImageMagickObject.html +++ b/www/ImageMagickObject.html @@ -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 10f1aa8b6..52f73e456 100644 --- a/www/advanced-unix-installation.html +++ b/www/advanced-unix-installation.html @@ -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-18$ ./configure
+
$ cd ImageMagick-7.0.7-22$ ./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-18.tar.gz$ cd ImageMagick-7.0.7-18

Configure ImageMagick:

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

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-18
$ 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-22
$ 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

@@ -639,4 +639,4 @@ no encode delegate for this image format - \ No newline at end of file + \ No newline at end of file diff --git a/www/advanced-windows-installation.html b/www/advanced-windows-installation.html index 67ec1ac58..c43814050 100644 --- a/www/advanced-windows-installation.html +++ b/www/advanced-windows-installation.html @@ -344,7 +344,7 @@ dmake release
  1. Double-click on - VisualMagick/bin/ImageMagick-7.0.7-18-Q16-windows-dll.exe + VisualMagick/bin/ImageMagick-7.0.7-22-Q16-windows-dll.exe to launch the ImageMagick binary distribution.
  2. Complete the installer screens to install ImageMagick on your system.
@@ -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 1f1f92df9..f43c2e468 100644 --- a/www/animate.html +++ b/www/animate.html @@ -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 08f15cee7..6968c268b 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 e4cf3b9c2..01f79e98e 100644 --- a/www/api/Image++.html +++ b/www/api/Image++.html @@ -3232,4 +3232,4 @@ the region set by a preceding getPixels or getConstPixels call. - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/animate.html b/www/api/animate.html index 47ae798ae..fc2b28dd6 100644 --- a/www/api/animate.html +++ b/www/api/animate.html @@ -7,12 +7,12 @@ - Command-line Tools: Animate @ ImageMagick + MagickCore, C API: Interactively Animate an Image Sequence @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,459 +81,8 @@
-

Example Usage • Option Summary

+

Unknown method

-

Use the animate program to animate an image sequence on any X server. See Command Line Processing for advice on how to structure your animate command or see below for example usages of the command.

- -

Example Usage

- -

We list a few examples of the animate command here to illustrate its usefulness and ease of use. To get started, lets animate an image sequence in the GIF format:

- -
magick animate movie.gif
-
- -

To animate a directory of JPEG images, use:

- -
magick animate *.jpg
-
- -

You can find additional examples of using animate in Examples of ImageMagick Usage.

- - -

Option Summary

- -

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescription
-alphaon, activate, off, deactivate, set, opaque, copy", -transparent, extract, background, or shape the alpha channel
-antialiasremove pixel-aliasing
-authenticate valuedecrypt image with this password
-backdropbackground color
-background colorbackground color
-border geometrysurround image with a border of color
-bordercolor colorborder color
-channel typeapply option to select image channels
-clipclip along the first path from the 8BIM profile
-clip-path idclip along a named path from the 8BIM profile
-coalescemerge a sequence of images
-colormap typeShared or Private
-colors valuepreferred number of colors in the image
-colorspace typeset image colorspace
-comment stringannotate image with comment
-compress typeimage compression type
-contrastenhance or reduce the image contrast
-crop geometrypreferred size and location of the cropped image
-debug eventsanimate copious debugging information
-decipher filenameconvert cipher pixels to plain
-define format:optiondefine one or more image format options
-delay valueanimate the next image after pausing
-density geometryhorizontal and vertical density of the image
-depth valueimage depth
-despecklereduce the speckles within an image
-display serverget image or font from this X server
-dispose methodlayer disposal method
-dither methodapply error diffusion to image
-edge radiusapply a filter to detect edges in the image
-endian typeendianness (MSB or LSB) of the image
-enhanceapply a digital filter to enhance a noisy image
-extract geometryextract area from image
-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
-frame geometrysurround image with an ornamental border
-gamma valuelevel of gamma correction
-geometry geometrypreferred size or location of the image
-gravity geometryhorizontal and vertical backdrop placement
-helpprint program options
-identifyidentify the format and characteristics of the image
-immutable typeprohibit image edits
-interlace typetype of image interlacing scheme
-interpolate methodpixel color interpolation method
-label nameassign a label to an image
-limit type valuepixel cache resource limit
-log formatformat of debugging information
-map filenametransform image colors to match this set of colors
-mattecolor colorframe color
-monitormonitor progress
-monochrometransform image to black and white
-negatereplace each pixel with its complementary color
-page geometrysize and location of an image canvas (setting)
-profile filenameadd, delete, or apply an image profile
-quantize colorspacereduce image colors in this colorspace
-quietsuppress all warning messages
-raise valuelighten/darken image edges to create a 3-D effect
-regard-warningspay attention to warning messages.
-remote commandexecute a command in an remote animate process
-resample geometrychange the resolution of an image
-resize geometryresize the image
-respect-parenthesessettings remain in effect until parenthesis boundary.
-roll geometryroll an image vertically or horizontally
-rotate degreesapply Paeth rotation to the image
-sample geometryscale image with pixel sampling
-sampling-factor geometryhorizontal and vertical sampling factor
-scene valueimage scene number
-segment valuessegment an image
-seed valueseed a new sequence of pseudo-random numbers
-set attribute valueset an image attribute
-sharpen geometrysharpen the image
-size geometrywidth and height of image
-stripstrip image of all profiles and comments
-thumbnail geometrycreate a thumbnail of the image
-transparent-color colortransparent color
-trimtrim image edges
-update secondsdetect when image file is modified and reanimate
-verboseprint detailed information about the image
-versionprint version information
-virtual-pixel methodaccess method for pixels outside the boundaries of the image
-visualanimate image using this visual type
-window idanimate images to background of this window
-window-group idexit program when this window id is destroyed
@@ -557,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/annotate.html b/www/api/annotate.html index 771f0ad19..294cb922a 100644 --- a/www/api/annotate.html +++ b/www/api/annotate.html @@ -327,3 +327,4 @@ MagickBooleanType GetTypeMetrics(Image *image,const DrawInfo *draw_info, + \ No newline at end of file diff --git a/www/api/attribute.html b/www/api/attribute.html index cc8652588..05581c3ff 100644 --- a/www/api/attribute.html +++ b/www/api/attribute.html @@ -411,3 +411,4 @@ MagickBooleanType SetImageType(Image *image,const ImageType type, + \ No newline at end of file diff --git a/www/api/blob.html b/www/api/blob.html index 5727b1a37..37680a1fc 100644 --- a/www/api/blob.html +++ b/www/api/blob.html @@ -464,3 +464,4 @@ MagickBooleanType InjectImageBlob(const ImageInfo *image_info, + \ No newline at end of file diff --git a/www/api/cache-view.html b/www/api/cache-view.html index c2add6c49..917ebe1c4 100644 --- a/www/api/cache-view.html +++ b/www/api/cache-view.html @@ -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 460cfc1d5..ed071487e 100644 --- a/www/api/cache.html +++ b/www/api/cache.html @@ -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 a93eb549a..17759ecc3 100644 --- a/www/api/channel.html +++ b/www/api/channel.html @@ -291,3 +291,4 @@ MagickBooleanType SetImageAlphaChannel(Image *image, + \ No newline at end of file diff --git a/www/api/cipher.html b/www/api/cipher.html index 955e85210..28ecf2f25 100644 --- a/www/api/cipher.html +++ b/www/api/cipher.html @@ -7,12 +7,12 @@ - Encipher or Decipher an Image @ ImageMagick + MagickCore, C API: Convert to and from Cipher Pixels @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,66 +81,241 @@
-

Encipher an Image • Decipher an Image • Encipher and Decipher Caveats

+

AcquireAESInfoDestroyAESInfoEncipherAESBlockPasskeyDecipherImagePasskeyEncipherImageSetAESKeyPasskeyDecipherImagePasskeyEncipherImage

-

Most images, by design, are made to be viewed often and by many people. Web images, for example, may be viewed hundreds of times a day by a multitude of vistors. However, in some cases, you may want to keep a particular image private so that only you or perhaps a select group of your friends or web visitors can view it. ImageMagick permits you to scramble your images such that unless someone knows your passphrase, they will be unable to view the original content.

+

AcquireAESInfo

-

You could use an enciphering utility to scramble your image but they typically scramble the entire file making it unrecognizable as an image format. With ImageMagick, only the pixels are scrambled. The scrambled image continues to be recognized as an image and will even display in your web page. However, the content appears as gibberish, nothing like the original content.

+

AcquireAESInfo() allocate the AESInfo structure.

-

Encipher an Image

+

The format of the AcquireAESInfo method is:

-

Use the -encipher option to scramble your image so that it is unrecognizable. The option requires a filename that contains your passphrase. In this example we scramble an image and save it in the PNG format:

+
+AESInfo *AcquireAESInfo(void)
+
-
convert rose.jpg -encipher passphrase.txt rose.png
-
+

DestroyAESInfo

-

Here we encipher an image using another image as the passphrase:

+

DestroyAESInfo() zeros memory associated with the AESInfo structure.

-
convert rose.jpg -encipher smiley.gif rose.png
-
+

The format of the DestroyAESInfo method is:

-

Decipher an Image

+
+AESInfo *DestroyAESInfo(AESInfo *aes_info)
+
-

Use the -decipher option to unscramble your image so that it is recognizable once again. The option requires a filename that contains your passphrase. In this example we unscramble an image and save it in the JPEG format:

+

A description of each parameter follows:

-
convert rose.png -decipher passphrase.txt rose.jpg
-
+
+
-

Encipher and Decipher Caveats

+
+
+
aes_info
+
the cipher context.
-

Some formats do not support enciphered pixels-- the JPEG or GIF format, for -example. To ensure your image format is supported, encipher a test image and -verify you can restore its original content before you encipher any -additional images in that format.

+
+
+

EncipherAESBlock

-

The image format may only support 8-bit and RGB (TrueColor). As such you may -like to include the options "-depth 8 -type TrueColor" before the output -filename.

+

EncipherAESBlock() enciphers a single block of plaintext to produce a block of ciphertext.

-

The passphrase can be any combinations of letters and symbols. It should -be a minimum of 12 character combinations to help ensure your image remains -private. Also make sure your passphrase file permissions prevent others from -reading it otherwise unintended users may be able to view the original image -content.

+

The format of the EncipherAESBlock method is:

-

You can only restore the original image content if you know your -passphrase. If you lose or forget it, your original image content is lost -forever.

+
+void EncipherAES(AESInfo *aes_info,const unsigned char *plaintext,
+  unsigned char *ciphertext)
+
-

ImageMagick only scrambles the image pixels. The image metadata remains -untouched and readable by anyone with access to the image file.

+

A description of each parameter follows:

-

ImageMagick uses the AES -cipher in Counter mode. We use the the first half of your passphrase to derive the nonce. The second half is the cipher key. When used correctly, AES-CTR provides a high level of confidentiality. To avoid information leaks, you must use a fresh passphrase for each image your encrypt.

+
+
-

Currently only ImageMagick can restore your enciphered image content. We -use a standard cipher and mode so other vendors could support enciphered image content.

+
+
+
aes_info
+
the cipher context.
-

Some small practical examples of image enciphering can be found in IM -Examples Encrypting Image Data.

+
+
plaintext
+
the plain text.
+
+
ciphertext
+
the cipher text.
+ +
+
+

PasskeyDecipherImage

+ +

PasskeyDecipherImage() converts cipher pixels to plain pixels.

+ +

The format of the PasskeyDecipherImage method is:

+ +
+MagickBooleanType PasskeyDecipherImage(Image *image,
+  const StringInfo *passkey,ExceptionInfo *exception)
+MagickBooleanType DecipherImage(Image *image,const char *passphrase,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
passphrase
+
decipher cipher pixels with this passphrase.
+ +
+
passkey
+
decrypt cipher pixels with this passkey.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

PasskeyEncipherImage

+ +

PasskeyEncipherImage() converts pixels to cipher-pixels.

+ +

The format of the PasskeyEncipherImage method is:

+ +
+MagickBooleanType PasskeyEncipherImage(Image *image,
+  const StringInfo *passkey,ExceptionInfo *exception)
+MagickBooleanType EncipherImage(Image *image,const char *passphrase,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
passphrase
+
encipher pixels with this passphrase.
+ +
+
passkey
+
decrypt cipher pixels with this passkey.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetAESKey

+ +

SetAESKey() sets the key for the AES cipher. The key length is specified in bits. Valid values are 128, 192, or 256 requiring a key buffer length in bytes of 16, 24, and 32 respectively.

+ +

The format of the SetAESKey method is:

+ +
+SetAESKey(AESInfo *aes_info,const StringInfo *key)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
aes_info
+
the cipher context.
+ +
+
key
+
the key.
+ +
+
+

PasskeyDecipherImage

+ +

PasskeyDecipherImage() converts cipher pixels to plain pixels.

+ +

The format of the PasskeyDecipherImage method is:

+ +
+MagickBooleanType PasskeyDecipherImage(Image *image,
+  const StringInfo *passkey,ExceptionInfo *exception)
+MagickBooleanType DecipherImage(Image *image,const char *passphrase,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
passphrase
+
decipher cipher pixels with this passphrase.
+ +
+
passkey
+
decrypt cipher pixels with this passkey.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

PasskeyEncipherImage

+ +

PasskeyEncipherImage() converts pixels to cipher-pixels.

+ +

The format of the PasskeyEncipherImage method is:

+ +
+MagickBooleanType PasskeyEncipherImage(Image *image,
+  const StringInfo *passkey,ExceptionInfo *exception)
+MagickBooleanType EncipherImage(Image *image,const char *passphrase,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
passphrase
+
decipher cipher pixels with this passphrase.
+ +
+
passkey
+
decrypt cipher pixels with this passkey.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
@@ -164,4 +339,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 0ec88dade..3998b9121 100644 --- a/www/api/color.html +++ b/www/api/color.html @@ -7,12 +7,12 @@ - Color Names @ ImageMagick + MagickCore, C API: Count the Colors in an Image @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,4869 +81,145 @@
-

Example Usage • Color Model Specification • List of Color Names

+

AcquireColorCacheGetColorInfoListGetColorListListColorInfoQueryColorname

-

A number of ImageMagick options and methods take a color as an argument. The color can then be given as a color name (there is a limited but large set of these; see below) or it can be given as a set of numbers (in decimal or hexadecimal), each corresponding to a channel in an RGB or RGBA color model. HSL, HSLA, HSB, HSBA, CMYK, or CMYKA color models may also be specified. These topics are briefly described in the sections below.

+

AcquireColorCache

-

Use the Color Converter to supply any valid ImageMagick color specification as described below to see a color swatch of that color and to convert to all the other color models.

+

AcquireColorCache() caches one or more color configurations which provides a mapping between color attributes and a color name.

-

Example Usage

+

The format of the AcquireColorCache method is:

-

Each of the following commands produces the same lime border around the image. (Use "double quotes" for Windows.)

+
+LinkedListInfo *AcquireColorCache(const char *filename,
+  ExceptionInfo *exception)
+
-
magick -bordercolor lime -border 10 image.jpg image.png
-magick -bordercolor '#0f0' -border 10 image.jpg image.png
-magick -bordercolor '#00ff00' -border 10 image.jpg image.png
-magick -bordercolor 'rgb(0,255,0)' -border 10 image.jpg image.png
-magick -bordercolor 'rgb(0,100%,0)' -border 10 image.jpg image.png
+

A description of each parameter follows:

-

The list of recognized color names (for example, aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow, and others) is shown in a table further below.

+
+
-

Color Model Specification

+
+
+
filename
+
the font file name.
-

The sRGB, CMYK, HSL and HSB color models are used in numerical color specifications. These examples all specify the same red sRGB color:

+
+
exception
+
return any errors or warnings in this structure.
-
#f00                      #rgb
-#ff0000                   #rrggbb
-#ff0000ff                 #rrggbbaa
-#ffff00000000             #rrrrggggbbbb
-#ffff00000000ffff         #rrrrggggbbbbaaaa
-rgb(255, 0, 0)            an integer in the range 0—255 for each component
-rgb(100.0%, 0.0%, 0.0%)   a float in the range 0—100% for each component
+
+
+

GetColorInfoList

-

The format of an sRGB value in hexadecimal notation is a '#' immediately followed by either three, six, or twelve hexadecimal characters. The three-digit sRGB notation (#rgb) is converted into six-digit form (#rrggbb) by replicating digits, not by adding zeros. For example, #fb0 expands to #ffbb00. This ensures that white (#ffffff) can be specified with the short notation (#fff) and removes any dependencies on the color depth of the image. Use the hexadecimal notation whenever performance is an issue. ImageMagick does not need to load the expansive color table to interpret a hexadecimal color, e.g., #000000, but it does if black is used instead.

+

GetColorInfoList() returns any colors that match the specified pattern.

-

The format of an sRGB value in the functional notation is 'rgb(r,g,b)', where r, g, and b are either three integer or float values in the range 0—255 or three integer or float percentage values in the range 0—100%. The value 255 corresponds to 100%, and to #F or #FF in the hexadecimal notation: rgb(255, 255, 255) = rgb(100%, 100%, 100%) = #FFF = #FFFFFF.

+

The format of the GetColorInfoList function is:

-

White space characters are allowed around the numerical values, at least if the entire color argument is enclosed in quotes ('single quotes' for Unix-like systems, "double quotes" for Windows).

+
+const ColorInfo **GetColorInfoList(const char *pattern,
+  size_t *number_colors,ExceptionInfo *exception)
+
-

The sRGB color model is extended in this specification to include alpha to allow specification of the transparency of a color. These examples all specify the same color:

+

A description of each parameter follows:

-
rgb(255, 0, 0)                 range 0 - 255
-rgba(255, 0, 0, 1.0)           the same, with an explicit alpha value
-rgb(100%, 0%, 0%)              range 0.0% - 100.0%
-rgba(100%, 0%, 0%, 1.0)        the same, with an explicit alpha value
+
+
-

The format of an RGBA value in the functional notation is 'rgba(r,g,b,a)', where r, g, and b are as described above for the RGB functional notation, and where the alpha value a ranges from 0.0 (fully transparent) to 1.0 (fully opaque).

+
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
-

There is also a color called 'none' that is fully transparent. This color is shorthand for rgba(0, 0, 0, 0.0).

+
+
number_colors
+
This integer returns the number of colors in the list.
-

Non-linear gray values are conveniently defined with a name, single intensity value or an intensity value and an alpha value:

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

-gray50            near mid gray
-gray(127)         near mid gray
-gray(50%)         mid gray
-graya(50%, 0.5)   semi-transparent mid gray
+
+
+

GetColorList

-

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.

+

GetColorList() returns any colors that match the specified pattern.

-

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.

+

The format of the GetColorList function is:

-

The HSB color system is geometrically represented as a cone with its apex pointing downward. Hue is measured around the perimeter. Saturation is measured from the axis outward. Brightness is measured from the apex upward.

+
+char **GetColorList(const char *pattern,size_t *number_colors,
+  ExceptionInfo *exception)
+
-

The HSL color system is geometrically represented as a stacked double cone with one apex pointing downward and the other pointing upward. The widest ends of both cones are stacked together one on top of the other. Hue is measured around the perimeter. Saturation is measured from the axis outward. Lightness is measured from the bottom apex upward.

+

A description of each parameter follows:

-

See http://en.wikipedia.org/wiki/HSL_and_HSV for more details on HSL and HSB color systems.

+
+
-

Hue is represented as an angle of the color around the circular perimeter of the cone(s) (i.e. the rainbow represented in a circle). Hue values are integers or floats in the range 0—360. By definition red=0=360, and the other colors are spread around the circle, so green=120, blue=240, etc. As an angle, it implicitly wraps around such that -120=240 and 480=120, for instance. (Students of trigonometry would say that "coterminal angles are equivalent" here; an angle θ can be standardized by computing the equivalent angle, θ mod 360.)

+
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
-

Saturation is measure outward from the central axis of the cone(s) toward the perimeter of the cone(s). Saturation may be expressed as an integer or float in the range 0—255 or as an integer or float percentage in the range 0—100. Saturation may be thought of as the absence of any "white" mixed with the base color. Thus 255 or 100% is full saturation and corresponds to a point on the outside surface of the cone (HSB) or double cone (HSL). It will be the most "colorful" region. 0 or 0% is no saturation which results in some shade of gray. It occurs along the central axis of the cone or double cone with black at the bottom apex and white at the top.

+
+
number_colors
+
This integer returns the number of colors in the list.
-

Brightness and Lightness also may be represented as integers or floats in the range 0—255 or as integer or float percentages in the range 0—100%. Brightness and Lightness are measured from the bottom apex upward to the top of the cone or double cone along the cone(s) central axis. 0 or 0% corresponds to the bottom apex and 255 or 100% corresponds to the top center of the cone for Brightness and to the top apex of the double cone for Lightness.

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

The HSB color system is a little easier to understand than the HSL color system. In the HSB color system, black is at the bottom apex and white is at the top center of the cone on the central axis. The most colorful or saturated colors will then be at the outer edge of the top of the cone at the widest part. Thus at Saturation=100% and Brightness=100%

+
+
+

ListColorInfo

-
hsb(0,   100%,  100%)    or    hsb(0,   255,   255)          full red
-hsb(120, 100%,  100%)    or    hsb(120, 255,   255)       full green
-hsb(120, 100%,  75%)     or    hsb(120, 255,   191.25)    medium green
-hsb(120, 100%,  50%)     or    hsb(120, 255,   127.5)     dark green
-hsb(120, 100%,  25%)     or    hsb(120, 255,   63.75)     very dark green
-hsb(120, 50%,   50%)     or    hsb(120, 127.5, 127.5)     pastel green
+

ListColorInfo() lists color names to the specified file. Color names are a convenience. Rather than defining a color by its red, green, and blue intensities just use a color name such as white, blue, or yellow.

-

In the HSL color system, black is at the bottom apex and white is at the top apex. However, saturation is largest at the middle of the double cone on its outer perimeter and thus at a lightness value of 50%. The most colorful or saturated colors will then be at the outer edge of the double cone at its widest part. Thus at Saturation=100% and Brightness=50%

+

The format of the ListColorInfo method is:

-
hsl(0,   100%,  50%)     or    hsl(0,   255,   127.5)        full red
-hsl(120, 100%,  100%)    or    hsl(120, 255,   255)       white
-hsl(120, 100%,  75%)     or    hsl(120, 255,   191.25)    pastel green
-hsl(120, 100%,  50%)     or    hsl(120, 255,   127.5)     full green
-hsl(120, 100%,  25%)     or    hsl(120, 255,   63.75)     dark green
-hsl(120, 50%,   50%)     or    hsl(120, 127.5, 127.5)     medium green
+
+MagickBooleanType ListColorInfo(FILE *file,ExceptionInfo *exception)
+
-

One advantage of HSB or HSL over RGB is that it can be more intuitive: you can guess at the colors you want, and then tweak. It is also easier to create sets of matching colors (by keeping the hue the same and varying the brightness or lightness and saturation, for example).

+

A description of each parameter follows.

-

Just as the 'rgb()' functional notation has the 'rgba()' alpha counterpart, the 'hsl()' and 'hsb()' functional notations have their 'hsla()' 'hsba()' alpha counterparts. These examples specify the same color:

+
file
+

List color names to this file handle.

-
hsb(120, 100%,  100%)              full green in hsb
-hsba(120, 100%,  100%,  1.0)       the same, with an alpha value of 1.0
-hsb(120, 255,  255)                full green in hsb
-hsba(120, 255,  255,  1.0)         the same, with an alpha value of 1.0
+
exception
+

return any errors or warnings in this structure.

-hsl(120, 100%, 50%) full green in hsl -hsla(120, 100%, 50%, 1.0) the same, with an alpha value of 1.0 -hsl(120, 255, 127.5) full green in hsl -hsla(120, 255, 127.5, 1.0) the same, with an alpha value of 1.0
+

QueryColorname

-

For ImageMagick between 6.5.6-6 and 6.9.2-0, HSL (HSB) could only be specified with Hue as percent in range 0—100%, when Saturation and Lightness (Brightness) were also specified as percent in range 0—100%.

+

QueryColorname() returns a named color for the given color intensity. If an exact match is not found, a hex value is returned instead. For example an intensity of rgb:(0,0,0) returns black whereas rgb:(223,223,223) returns #dfdfdf.

-

Specify the Lab colors like this:

-
cielab(62.253188, 23.950124, 48.410653)
-

Note, the a and b components of any Lab color you specify are biased internally by 50% to ensure it fits in the quantum range (typically 0 to 65535). The bias is retained when writing to the TIFF and MIFF image formats. However, the TXT format supports negative pixel values so the bias is removed when writing to this format:

-
-> magick xc:cyan -colorspace LAB txt:
-# ImageMagick pixel enumeration: 1,1,65535,cielab
-0,0: (91.1131%,-18.8571%,-5.5436%)  #E93F00000000  cielab(91.1131%,-18.8571%,-5.5436%)
+

UPDATE: the 'image' argument is no longer needed as all information should have been preset using GetPixelInfo().

--> magick -size 100x100 xc:"cielab(91.1131%,-18.8571%,-5.5436%)" -colorspace sRGB cyan.png
+

The format of the QueryColorname method is:

-

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

-

-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
-
+
+MagickBooleanType QueryColorname(const Image *image,
+  const PixelInfo *color,const ComplianceType compliance,char *name,
+  ExceptionInfo *exception)
+
-

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

-
device-gray(0.5)
-device-rgb(0.5, 1.0, 0.0)
-device-cmyk(0.11, 0.48, 0.83, 0.00)
+

A description of each parameter follows.

-

List of Color Names

+
image
+

the image. (not used! - color gets settings from GetPixelInfo()

-

The table below provides a list of named colors recognized by ImageMagick:

+
color
+

the color intensities.

- - - - - - - - +
Compliance
+

Adhere to this color standard: SVG, X11, or XPM.

- - - - - - +
name
+

Return the color name or hex value.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameColorRGBHex
snowsnowrgb(255, 250, 250)#FFFAFA
snow1snow1rgb(255, 250, 250)#FFFAFA
snow2snow2rgb(238, 233, 233)#EEE9E9
RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
snow3snow3rgb(205, 201, 201)#CDC9C9
LightCoralLightCoralrgb(240, 128, 128)#F08080
IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
brown1brown1rgb(255, 64, 64)#FF4040
firebrick1firebrick1rgb(255, 48, 48)#FF3030
brown2brown2rgb(238, 59, 59)#EE3B3B
IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
snow4snow4rgb(139, 137, 137)#8B8989
brown3brown3rgb(205, 51, 51)#CD3333
redredrgb(255, 0, 0)#FF0000
red1red1rgb(255, 0, 0)#FF0000
RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
firebrick3firebrick3rgb(205, 38, 38)#CD2626
red2red2rgb(238, 0, 0)#EE0000
firebrickfirebrickrgb(178, 34, 34)#B22222
brownbrownrgb(165, 42, 42)#A52A2A
red3red3rgb(205, 0, 0)#CD0000
IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
brown4brown4rgb(139, 35, 35)#8B2323
firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
DarkRedDarkRedrgb(139, 0, 0)#8B0000
red4red4rgb(139, 0, 0)#8B0000
maroonmaroon (SVG compliance)rgb(128, 0, 0)#800000
LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
LightPink3LightPink3rgb(205, 140, 149)#CD8C95
LightPink4LightPink4rgb(139, 95, 101)#8B5F65
LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
pinkpinkrgb(255, 192, 203)#FFC0CB
crimsoncrimsonrgb(220, 20, 60)#DC143C
pink1pink1rgb(255, 181, 197)#FFB5C5
pink2pink2rgb(238, 169, 184)#EEA9B8
pink3pink3rgb(205, 145, 158)#CD919E
pink4pink4rgb(139, 99, 108)#8B636C
PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
maroonmaroon (X11 compliance)rgb(176, 48, 96)#B03060
HotPink3HotPink3rgb(205, 96, 144)#CD6090
VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
HotPink4HotPink4rgb(139, 58, 98)#8B3A62
HotPinkHotPinkrgb(255, 105, 180)#FF69B4
DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
maroon1maroon1rgb(255, 52, 179)#FF34B3
maroon2maroon2rgb(238, 48, 167)#EE30A7
maroon3maroon3rgb(205, 41, 144)#CD2990
maroon4maroon4rgb(139, 28, 98)#8B1C62
MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
VioletRedVioletRedrgb(208, 32, 144)#D02090
orchid2orchid2rgb(238, 122, 233)#EE7AE9
orchidorchidrgb(218, 112, 214)#DA70D6
orchid1orchid1rgb(255, 131, 250)#FF83FA
orchid3orchid3rgb(205, 105, 201)#CD69C9
orchid4orchid4rgb(139, 71, 137)#8B4789
thistle1thistle1rgb(255, 225, 255)#FFE1FF
thistle2thistle2rgb(238, 210, 238)#EED2EE
plum1plum1rgb(255, 187, 255)#FFBBFF
plum2plum2rgb(238, 174, 238)#EEAEEE
thistlethistlergb(216, 191, 216)#D8BFD8
thistle3thistle3rgb(205, 181, 205)#CDB5CD
plumplumrgb(221, 160, 221)#DDA0DD
violetvioletrgb(238, 130, 238)#EE82EE
plum3plum3rgb(205, 150, 205)#CD96CD
thistle4thistle4rgb(139, 123, 139)#8B7B8B
fuchsiafuchsiargb(255, 0, 255)#FF00FF
magentamagentargb(255, 0, 255)#FF00FF
magenta1magenta1rgb(255, 0, 255)#FF00FF
plum4plum4rgb(139, 102, 139)#8B668B
magenta2magenta2rgb(238, 0, 238)#EE00EE
magenta3magenta3rgb(205, 0, 205)#CD00CD
DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
magenta4magenta4rgb(139, 0, 139)#8B008B
purplepurple (SVG compliance)rgb(128, 0, 128)#800080
MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
purplepurple (X11 compliance)rgb(160, 32, 240)#A020F0
indigoindigorgb( 75, 0, 130)#4B0082
BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
purple2purple2rgb(145, 44, 238)#912CEE
purple3purple3rgb(125, 38, 205)#7D26CD
purple4purple4rgb( 85, 26, 139)#551A8B
purple1purple1rgb(155, 48, 255)#9B30FF
MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
lavenderlavenderrgb(230, 230, 250)#E6E6FA
bluebluergb( 0, 0, 255)#0000FF
blue1blue1rgb( 0, 0, 255)#0000FF
blue2blue2rgb( 0, 0, 238)#0000EE
blue3blue3rgb( 0, 0, 205)#0000CD
MediumBlueMediumBluergb( 0, 0, 205)#0000CD
blue4blue4rgb( 0, 0, 139)#00008B
DarkBlueDarkBluergb( 0, 0, 139)#00008B
MidnightBlueMidnightBluergb( 25, 25, 112)#191970
navynavyrgb( 0, 0, 128)#000080
NavyBlueNavyBluergb( 0, 0, 128)#000080
RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
SlateGraySlateGrayrgb(112, 128, 144)#708090
SlateGreySlateGreyrgb(112, 128, 144)#708090
DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
SteelBlueSteelBluergb( 70, 130, 180)#4682B4
SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
SkyBlueSkyBluergb(135, 206, 235)#87CEEB
LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
LightBlueLightBluergb(173, 216, 230)#ADD8E6
LightBlue4LightBlue4rgb(104, 131, 139)#68838B
PowderBluePowderBluergb(176, 224, 230)#B0E0E6
CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
turquoise4turquoise4rgb( 0, 134, 139)#00868B
cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
azureazurergb(240, 255, 255)#F0FFFF
azure1azure1rgb(240, 255, 255)#F0FFFF
LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
azure2azure2rgb(224, 238, 238)#E0EEEE
LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
azure3azure3rgb(193, 205, 205)#C1CDCD
LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
azure4azure4rgb(131, 139, 139)#838B8B
LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
aquaaquargb( 0, 255, 255)#00FFFF
cyancyanrgb( 0, 255, 255)#00FFFF
cyan1cyan1rgb( 0, 255, 255)#00FFFF
PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
cyan2cyan2rgb( 0, 238, 238)#00EEEE
DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
cyan3cyan3rgb( 0, 205, 205)#00CDCD
cyan4cyan4rgb( 0, 139, 139)#008B8B
DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
tealtealrgb( 0, 128, 128)#008080
DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
turquoiseturquoisergb( 64, 224, 208)#40E0D0
aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
aquamarineaquamarinergb(127, 255, 212)#7FFFD4
aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
honeydewhoneydewrgb(240, 255, 240)#F0FFF0
honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
LightGreenLightGreenrgb(144, 238, 144)#90EE90
PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
honeydew4honeydew4rgb(131, 139, 131)#838B83
green1green1rgb( 0, 255, 0)#00FF00
limelimergb( 0, 255, 0)#00FF00
LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
green2green2rgb( 0, 238, 0)#00EE00
PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
green3green3rgb( 0, 205, 0)#00CD00
ForestGreenForestGreenrgb( 34, 139, 34)#228B22
green4green4rgb( 0, 139, 0)#008B00
greengreenrgb( 0, 128, 0)#008000
DarkGreenDarkGreenrgb( 0, 100, 0)#006400
LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
chartreusechartreusergb(127, 255, 0)#7FFF00
chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
ivoryivoryrgb(255, 255, 240)#FFFFF0
ivory1ivory1rgb(255, 255, 240)#FFFFF0
LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
beigebeigergb(245, 245, 220)#F5F5DC
ivory2ivory2rgb(238, 238, 224)#EEEEE0
LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
ivory3ivory3rgb(205, 205, 193)#CDCDC1
LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
ivory4ivory4rgb(139, 139, 131)#8B8B83
LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
yellowyellowrgb(255, 255, 0)#FFFF00
yellow1yellow1rgb(255, 255, 0)#FFFF00
yellow2yellow2rgb(238, 238, 0)#EEEE00
yellow3yellow3rgb(205, 205, 0)#CDCD00
yellow4yellow4rgb(139, 139, 0)#8B8B00
oliveolivergb(128, 128, 0)#808000
DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
khaki2khaki2rgb(238, 230, 133)#EEE685
LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
khaki1khaki1rgb(255, 246, 143)#FFF68F
khaki3khaki3rgb(205, 198, 115)#CDC673
khaki4khaki4rgb(139, 134, 78)#8B864E
PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
khakikhakirgb(240, 230, 140)#F0E68C
LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
goldgoldrgb(255, 215, 0)#FFD700
gold1gold1rgb(255, 215, 0)#FFD700
gold2gold2rgb(238, 201, 0)#EEC900
gold3gold3rgb(205, 173, 0)#CDAD00
gold4gold4rgb(139, 117, 0)#8B7500
LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
goldenrodgoldenrodrgb(218, 165, 32)#DAA520
goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
wheat2wheat2rgb(238, 216, 174)#EED8AE
OldLaceOldLacergb(253, 245, 230)#FDF5E6
wheatwheatrgb(245, 222, 179)#F5DEB3
wheat1wheat1rgb(255, 231, 186)#FFE7BA
wheat3wheat3rgb(205, 186, 150)#CDBA96
orangeorangergb(255, 165, 0)#FFA500
orange1orange1rgb(255, 165, 0)#FFA500
orange2orange2rgb(238, 154, 0)#EE9A00
orange3orange3rgb(205, 133, 0)#CD8500
orange4orange4rgb(139, 90, 0)#8B5A00
wheat4wheat4rgb(139, 126, 102)#8B7E66
moccasinmoccasinrgb(255, 228, 181)#FFE4B5
PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
tantanrgb(210, 180, 140)#D2B48C
bisque4bisque4rgb(139, 125, 107)#8B7D6B
burlywoodburlywoodrgb(222, 184, 135)#DEB887
AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
burlywood1burlywood1rgb(255, 211, 155)#FFD39B
burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
burlywood2burlywood2rgb(238, 197, 145)#EEC591
AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
burlywood4burlywood4rgb(139, 115, 85)#8B7355
AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
bisque2bisque2rgb(238, 213, 183)#EED5B7
bisquebisquergb(255, 228, 196)#FFE4C4
bisque1bisque1rgb(255, 228, 196)#FFE4C4
bisque3bisque3rgb(205, 183, 158)#CDB79E
DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
linenlinenrgb(250, 240, 230)#FAF0E6
DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
peruperurgb(205, 133, 63)#CD853F
tan1tan1rgb(255, 165, 79)#FFA54F
tan2tan2rgb(238, 154, 73)#EE9A49
tan3tan3rgb(205, 133, 63)#CD853F
tan4tan4rgb(139, 90, 43)#8B5A2B
PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
seashell4seashell4rgb(139, 134, 130)#8B8682
seashell2seashell2rgb(238, 229, 222)#EEE5DE
seashell3seashell3rgb(205, 197, 191)#CDC5BF
chocolatechocolatergb(210, 105, 30)#D2691E
chocolate1chocolate1rgb(255, 127, 36)#FF7F24
chocolate2chocolate2rgb(238, 118, 33)#EE7621
chocolate3chocolate3rgb(205, 102, 29)#CD661D
chocolate4chocolate4rgb(139, 69, 19)#8B4513
SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
seashellseashellrgb(255, 245, 238)#FFF5EE
seashell1seashell1rgb(255, 245, 238)#FFF5EE
sienna4sienna4rgb(139, 71, 38)#8B4726
siennasiennargb(160, 82, 45)#A0522D
sienna1sienna1rgb(255, 130, 71)#FF8247
sienna2sienna2rgb(238, 121, 66)#EE7942
sienna3sienna3rgb(205, 104, 57)#CD6839
LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
coralcoralrgb(255, 127, 80)#FF7F50
OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
salmon1salmon1rgb(255, 140, 105)#FF8C69
salmon2salmon2rgb(238, 130, 98)#EE8262
salmon3salmon3rgb(205, 112, 84)#CD7054
salmon4salmon4rgb(139, 76, 57)#8B4C39
coral1coral1rgb(255, 114, 86)#FF7256
coral2coral2rgb(238, 106, 80)#EE6A50
coral3coral3rgb(205, 91, 69)#CD5B45
coral4coral4rgb(139, 62, 47)#8B3E2F
tomato4tomato4rgb(139, 54, 38)#8B3626
tomatotomatorgb(255, 99, 71)#FF6347
tomato1tomato1rgb(255, 99, 71)#FF6347
tomato2tomato2rgb(238, 92, 66)#EE5C42
tomato3tomato3rgb(205, 79, 57)#CD4F39
MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
salmonsalmonrgb(250, 128, 114)#FA8072
MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
whitewhitergb(255, 255, 255)#FFFFFF
gray100gray100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
gray99gray99rgb(252, 252, 252)#FCFCFC
grey99grey99rgb(252, 252, 252)#FCFCFC
gray98gray98rgb(250, 250, 250)#FAFAFA
grey98grey98rgb(250, 250, 250)#FAFAFA
gray97gray97rgb(247, 247, 247)#F7F7F7
grey97grey97rgb(247, 247, 247)#F7F7F7
gray96gray96rgb(245, 245, 245)#F5F5F5
grey96grey96rgb(245, 245, 245)#F5F5F5
WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
gray95gray95rgb(242, 242, 242)#F2F2F2
grey95grey95rgb(242, 242, 242)#F2F2F2
gray94gray94rgb(240, 240, 240)#F0F0F0
grey94grey94rgb(240, 240, 240)#F0F0F0
gray93gray93rgb(237, 237, 237)#EDEDED
grey93grey93rgb(237, 237, 237)#EDEDED
gray92gray92rgb(235, 235, 235)#EBEBEB
grey92grey92rgb(235, 235, 235)#EBEBEB
gray91gray91rgb(232, 232, 232)#E8E8E8
grey91grey91rgb(232, 232, 232)#E8E8E8
gray90gray90rgb(229, 229, 229)#E5E5E5
grey90grey90rgb(229, 229, 229)#E5E5E5
gray89gray89rgb(227, 227, 227)#E3E3E3
grey89grey89rgb(227, 227, 227)#E3E3E3
gray88gray88rgb(224, 224, 224)#E0E0E0
grey88grey88rgb(224, 224, 224)#E0E0E0
gray87gray87rgb(222, 222, 222)#DEDEDE
grey87grey87rgb(222, 222, 222)#DEDEDE
gainsborogainsbororgb(220, 220, 220)#DCDCDC
gray86gray86rgb(219, 219, 219)#DBDBDB
grey86grey86rgb(219, 219, 219)#DBDBDB
gray85gray85rgb(217, 217, 217)#D9D9D9
grey85grey85rgb(217, 217, 217)#D9D9D9
gray84gray84rgb(214, 214, 214)#D6D6D6
grey84grey84rgb(214, 214, 214)#D6D6D6
gray83gray83rgb(212, 212, 212)#D4D4D4
grey83grey83rgb(212, 212, 212)#D4D4D4
LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
gray82gray82rgb(209, 209, 209)#D1D1D1
grey82grey82rgb(209, 209, 209)#D1D1D1
gray81gray81rgb(207, 207, 207)#CFCFCF
grey81grey81rgb(207, 207, 207)#CFCFCF
gray80gray80rgb(204, 204, 204)#CCCCCC
grey80grey80rgb(204, 204, 204)#CCCCCC
gray79gray79rgb(201, 201, 201)#C9C9C9
grey79grey79rgb(201, 201, 201)#C9C9C9
gray78gray78rgb(199, 199, 199)#C7C7C7
grey78grey78rgb(199, 199, 199)#C7C7C7
gray77gray77rgb(196, 196, 196)#C4C4C4
grey77grey77rgb(196, 196, 196)#C4C4C4
gray76gray76rgb(194, 194, 194)#C2C2C2
grey76grey76rgb(194, 194, 194)#C2C2C2
silversilverrgb(192, 192, 192)#C0C0C0
gray75gray75rgb(191, 191, 191)#BFBFBF
grey75grey75rgb(191, 191, 191)#BFBFBF
gray74gray74rgb(189, 189, 189)#BDBDBD
grey74grey74rgb(189, 189, 189)#BDBDBD
gray73gray73rgb(186, 186, 186)#BABABA
grey73grey73rgb(186, 186, 186)#BABABA
gray72gray72rgb(184, 184, 184)#B8B8B8
grey72grey72rgb(184, 184, 184)#B8B8B8
gray71gray71rgb(181, 181, 181)#B5B5B5
grey71grey71rgb(181, 181, 181)#B5B5B5
gray70gray70rgb(179, 179, 179)#B3B3B3
grey70grey70rgb(179, 179, 179)#B3B3B3
gray69gray69rgb(176, 176, 176)#B0B0B0
grey69grey69rgb(176, 176, 176)#B0B0B0
gray68gray68rgb(173, 173, 173)#ADADAD
grey68grey68rgb(173, 173, 173)#ADADAD
gray67gray67rgb(171, 171, 171)#ABABAB
grey67grey67rgb(171, 171, 171)#ABABAB
DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
gray66gray66rgb(168, 168, 168)#A8A8A8
grey66grey66rgb(168, 168, 168)#A8A8A8
gray65gray65rgb(166, 166, 166)#A6A6A6
grey65grey65rgb(166, 166, 166)#A6A6A6
gray64gray64rgb(163, 163, 163)#A3A3A3
grey64grey64rgb(163, 163, 163)#A3A3A3
gray63gray63rgb(161, 161, 161)#A1A1A1
grey63grey63rgb(161, 161, 161)#A1A1A1
gray62gray62rgb(158, 158, 158)#9E9E9E
grey62grey62rgb(158, 158, 158)#9E9E9E
gray61gray61rgb(156, 156, 156)#9C9C9C
grey61grey61rgb(156, 156, 156)#9C9C9C
gray60gray60rgb(153, 153, 153)#999999
grey60grey60rgb(153, 153, 153)#999999
gray59gray59rgb(150, 150, 150)#969696
grey59grey59rgb(150, 150, 150)#969696
gray58gray58rgb(148, 148, 148)#949494
grey58grey58rgb(148, 148, 148)#949494
gray57gray57rgb(145, 145, 145)#919191
grey57grey57rgb(145, 145, 145)#919191
gray56gray56rgb(143, 143, 143)#8F8F8F
grey56grey56rgb(143, 143, 143)#8F8F8F
gray55gray55rgb(140, 140, 140)#8C8C8C
grey55grey55rgb(140, 140, 140)#8C8C8C
gray54gray54rgb(138, 138, 138)#8A8A8A
grey54grey54rgb(138, 138, 138)#8A8A8A
gray53gray53rgb(135, 135, 135)#878787
grey53grey53rgb(135, 135, 135)#878787
gray52gray52rgb(133, 133, 133)#858585
grey52grey52rgb(133, 133, 133)#858585
gray51gray51rgb(130, 130, 130)#828282
grey51grey51rgb(130, 130, 130)#828282
fractalfractalrgb(128, 128, 128)#808080
gray50gray50rgb(127, 127, 127)#7F7F7F
grey50grey50rgb(127, 127, 127)#7F7F7F
graygrayrgb(126, 126, 126)#7E7E7E
gray49gray49rgb(125, 125, 125)#7D7D7D
grey49grey49rgb(125, 125, 125)#7D7D7D
gray48gray48rgb(122, 122, 122)#7A7A7A
grey48grey48rgb(122, 122, 122)#7A7A7A
gray47gray47rgb(120, 120, 120)#787878
grey47grey47rgb(120, 120, 120)#787878
gray46gray46rgb(117, 117, 117)#757575
grey46grey46rgb(117, 117, 117)#757575
gray45gray45rgb(115, 115, 115)#737373
grey45grey45rgb(115, 115, 115)#737373
gray44gray44rgb(112, 112, 112)#707070
grey44grey44rgb(112, 112, 112)#707070
gray43gray43rgb(110, 110, 110)#6E6E6E
grey43grey43rgb(110, 110, 110)#6E6E6E
gray42gray42rgb(107, 107, 107)#6B6B6B
grey42grey42rgb(107, 107, 107)#6B6B6B
DimGrayDimGrayrgb(105, 105, 105)#696969
DimGreyDimGreyrgb(105, 105, 105)#696969
gray41gray41rgb(105, 105, 105)#696969
grey41grey41rgb(105, 105, 105)#696969
gray40gray40rgb(102, 102, 102)#666666
grey40grey40rgb(102, 102, 102)#666666
gray39gray39rgb( 99, 99, 99)#636363
grey39grey39rgb( 99, 99, 99)#636363
gray38gray38rgb( 97, 97, 97)#616161
grey38grey38rgb( 97, 97, 97)#616161
gray37gray37rgb( 94, 94, 94)#5E5E5E
grey37grey37rgb( 94, 94, 94)#5E5E5E
gray36gray36rgb( 92, 92, 92)#5C5C5C
grey36grey36rgb( 92, 92, 92)#5C5C5C
gray35gray35rgb( 89, 89, 89)#595959
grey35grey35rgb( 89, 89, 89)#595959
gray34gray34rgb( 87, 87, 87)#575757
grey34grey34rgb( 87, 87, 87)#575757
gray33gray33rgb( 84, 84, 84)#545454
grey33grey33rgb( 84, 84, 84)#545454
gray32gray32rgb( 82, 82, 82)#525252
grey32grey32rgb( 82, 82, 82)#525252
gray31gray31rgb( 79, 79, 79)#4F4F4F
grey31grey31rgb( 79, 79, 79)#4F4F4F
gray30gray30rgb( 77, 77, 77)#4D4D4D
grey30grey30rgb( 77, 77, 77)#4D4D4D
gray29gray29rgb( 74, 74, 74)#4A4A4A
grey29grey29rgb( 74, 74, 74)#4A4A4A
gray28gray28rgb( 71, 71, 71)#474747
grey28grey28rgb( 71, 71, 71)#474747
gray27gray27rgb( 69, 69, 69)#454545
grey27grey27rgb( 69, 69, 69)#454545
gray26gray26rgb( 66, 66, 66)#424242
grey26grey26rgb( 66, 66, 66)#424242
gray25gray25rgb( 64, 64, 64)#404040
grey25grey25rgb( 64, 64, 64)#404040
gray24gray24rgb( 61, 61, 61)#3D3D3D
grey24grey24rgb( 61, 61, 61)#3D3D3D
gray23gray23rgb( 59, 59, 59)#3B3B3B
grey23grey23rgb( 59, 59, 59)#3B3B3B
gray22gray22rgb( 56, 56, 56)#383838
grey22grey22rgb( 56, 56, 56)#383838
gray21gray21rgb( 54, 54, 54)#363636
grey21grey21rgb( 54, 54, 54)#363636
gray20gray20rgb( 51, 51, 51)#333333
grey20grey20rgb( 51, 51, 51)#333333
gray19gray19rgb( 48, 48, 48)#303030
grey19grey19rgb( 48, 48, 48)#303030
gray18gray18rgb( 46, 46, 46)#2E2E2E
grey18grey18rgb( 46, 46, 46)#2E2E2E
gray17gray17rgb( 43, 43, 43)#2B2B2B
grey17grey17rgb( 43, 43, 43)#2B2B2B
gray16gray16rgb( 41, 41, 41)#292929
grey16grey16rgb( 41, 41, 41)#292929
gray15gray15rgb( 38, 38, 38)#262626
grey15grey15rgb( 38, 38, 38)#262626
gray14gray14rgb( 36, 36, 36)#242424
grey14grey14rgb( 36, 36, 36)#242424
gray13gray13rgb( 33, 33, 33)#212121
grey13grey13rgb( 33, 33, 33)#212121
gray12gray12rgb( 31, 31, 31)#1F1F1F
grey12grey12rgb( 31, 31, 31)#1F1F1F
gray11gray11rgb( 28, 28, 28)#1C1C1C
grey11grey11rgb( 28, 28, 28)#1C1C1C
gray10gray10rgb( 26, 26, 26)#1A1A1A
grey10grey10rgb( 26, 26, 26)#1A1A1A
gray9gray9rgb( 23, 23, 23)#171717
grey9grey9rgb( 23, 23, 23)#171717
gray8gray8rgb( 20, 20, 20)#141414
grey8grey8rgb( 20, 20, 20)#141414
gray7gray7rgb( 18, 18, 18)#121212
grey7grey7rgb( 18, 18, 18)#121212
gray6gray6rgb( 15, 15, 15)#0F0F0F
grey6grey6rgb( 15, 15, 15)#0F0F0F
gray5gray5rgb( 13, 13, 13)#0D0D0D
grey5grey5rgb( 13, 13, 13)#0D0D0D
gray4gray4rgb( 10, 10, 10)#0A0A0A
grey4grey4rgb( 10, 10, 10)#0A0A0A
gray3gray3rgb( 8, 8, 8)#080808
grey3grey3rgb( 8, 8, 8)#080808
gray2gray2rgb( 5, 5, 5)#050505
grey2grey2rgb( 5, 5, 5)#050505
gray1gray1rgb( 3, 3, 3)#030303
grey1grey1rgb( 3, 3, 3)#030303
blackblackrgb( 0, 0, 0)#000000
gray0gray0rgb( 0, 0, 0)#000000
grey0grey0rgb( 0, 0, 0)#000000
opaqueopaquergb( 0, 0, 0)#000000
nonenonergba( 0, 0, 0, 0.0)#00000000
transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
+
exception
+

return any errors or warnings in this structure.

@@ -4968,4 +244,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 56f23cf28..abafc68e5 100644 --- a/www/api/colormap.html +++ b/www/api/colormap.html @@ -170,3 +170,4 @@ MagickBooleanType CycleColormapImage(Image *image,const ssize_t displace, + \ No newline at end of file diff --git a/www/api/colorspace.html b/www/api/colorspace.html index 1162dba8b..601b5657d 100644 --- a/www/api/colorspace.html +++ b/www/api/colorspace.html @@ -256,3 +256,4 @@ MagickBooleanType TransformImageColorspace(Image *image, + \ No newline at end of file diff --git a/www/api/compare.html b/www/api/compare.html index 07a423abc..5f14ef011 100644 --- a/www/api/compare.html +++ b/www/api/compare.html @@ -7,12 +7,12 @@ - Command-line Tools: Compare @ ImageMagick + MagickCore, C API: Compare an Image to a Reconstructed Image @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,349 +81,47 @@
-

Example Usage • Option Summary

+

CompareImagesCommand

-

Use the compare program to mathematically and visually annotate the difference between an image and its reconstruction. See Command Line Processing for advice on how to structure your compare command or see below for example usages of the command.

+

CompareImagesCommand

-

Example Usage

+

CompareImagesCommand() compares two images and returns the difference between them as a distortion metric and as a new image visually annotating their differences.

-

We list a few examples of the compare command here to illustrate its usefulness and ease of use. To get started, lets compare an image to one thats been sharpened:

+

The format of the CompareImagesCommand method is:

-
magick convert rose.jpg -sharpen 0x1 reconstruct.jpg
-magick compare rose.jpg reconstruct.jpg difference.png
-magick compare -compose src rose.jpg reconstruct.jpg difference.png
-
+
+MagickBooleanType CompareImagesCommand(ImageInfo *image_info,int argc,
+  char **argv,char **metadata,ExceptionInfo *exception)
+
-
    - rose - rose - ==> - rose -
+

A description of each parameter follows:

-

The red areas of the difference image emphasizes (highlight) pixels that are affected by the image sharpening, whereas white de-emphasizes (lowlight) pixels that are untouched by the sharpening process.

+
+
-

In addition to the visual interpretation of the difference in an image and its reconstruction, we report a mathematical measure of the difference:

+
+
+
image_info
+
the image info.
-
-> magick compare -verbose -metric mae rose.jpg reconstruct.jpg difference.png
-Image: rose.jpg
- Channel distortion: MAE
-  red: 2282.91 (0.034835)
-  green: 1853.99 (0.0282901)
-  blue: 2008.67 (0.0306503)
-  all: 1536.39 (0.0234439)
-
-

Or, if you just want the red channel distortion, use this command:

+
+
argc
+
the number of elements in the argument vector.
-
-> magick compare -channel red -metric PSNR rose.jpg reconstruct.jpg difference.png
-19.63
-
+
+
argv
+
A text array containing the command line arguments.
-

Or, if you just want the overall image distortion, use this command:

+
+
metadata
+
any metadata is returned here.
-
-> magick compare -metric PSNR rose.jpg reconstruct.jpg difference.png
-28.31
-
+
+
exception
+
return any errors or warnings in this structure.
-

If the reconstructed image is a subimage of the image, the compare program returns the best match offset. In addition, it returns a similarity image such that an exact match location is completely white and if none of the pixels match, black, otherwise some gray level in-between:

- -
-> magick compare -metric RMSE -subimage-search logo.png wizard.jpg similarity.gif
-85.05 (0.00129778) @ 353,157
-
- -

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

- -

The compare program returns 2 on error otherwise 0 if the images are similar or 1 if they are dissimilar.

- -

Option Summary

- -

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescription
-alphaon, activate, off, deactivate, set, opaque, copy", -transparent, extract, background, or shape the alpha channel
-authenticate valuedecrypt image with this password
-background colorbackground color
-brightness-contrast geometryimprove brightness / contrast of the image
-channel typeapply option to select image channels
-colorspace typeset image colorspace
-compose operatorset image composite operator
-crop geometrycrop the image
-decipher filenameconvert cipher pixels to plain
-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
-dissimilarity-threshold valuemaximum distortion for (sub)image match (default 0.2)
-distort type coefficientsdistort image
-encipher filenameconvert plain pixels to cipher pixels
-extract geometryextract area from image
-fuzz distancecolors within this distance are considered equal
-gravity typehorizontal and vertical text placement
-helpprint program options
-highlight-color coloremphasize pixel differences with this color
-identifyidentify the format and characteristics of the image
-interlace typetype of image interlacing scheme
-level valueadjust the level of image contrast
-limit type valuepixel cache resource limit
-log formatformat of debugging information
-lowlight-color colorde-emphasize pixel differences with this color
-metric typemeasure differences between images with this metric
-negatereplace each pixel with its complementary color
-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
-read-mask filenameassociate a read mask with the image
-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
-seed valueseed a new sequence of pseudo-random numbers
-separateseparate an image channel into a grayscale image
-set attribute valueset an image attribute
-sigmoidal-contrast geometryincrease the contrast without saturating highlights or shadows
-similarity-threshold valueminimum distortion for (sub)image match (default 0.0)
-size geometrywidth and height of image
-subimage-searchsearch for subimage
-synchronizesynchronize image to storage device
-taintmark the image as modified
-transparent-color colortransparent color
-trimtrim image edges
-verboseprint detailed information about the image
-versionprint version information
-virtual-pixel methodaccess method for pixels outside the boundaries of the image
-read-mask filenameassociate a write mask with the image
+
+
@@ -447,4 +145,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 9f9777287..2b0d88976 100644 --- a/www/api/composite.html +++ b/www/api/composite.html @@ -7,12 +7,12 @@ - Command-line Tools: Composite @ ImageMagick + MagickCore, C API: Composite an Image @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,453 +81,47 @@
-

Example Usage • Option Summary

+

CompositeImageCommand

-

Use the composite program to overlap one image over another. See Command Line Processing for advice on how to structure your composite command or see below for example usages of the command.

+

CompositeImageCommand

-

Example Usage

+

CompositeImageCommand() reads one or more images and an optional mask and composites them into a new image.

-

We list a few examples of the composite command here to illustrate its usefulness and ease of use. To get started, lets overlay a smiley face over a rose:

+

The format of the CompositeImageCommand method is:

-
magick composite -gravity center smile.gif  rose: rose-over.png
-
+
+MagickBooleanType CompositeImageCommand(ImageInfo *image_info,int argc,
+  char **argv,char **metadata,ExceptionInfo *exception)
+
-
    - smile - over - rose - ==> - rose -
+

A description of each parameter follows:

-

You can create three-dimensional effect with the Atop:

+
+
-
magick convert -size 70x70 canvas:none -fill red -draw 'circle 35,35 10,30' red-circle.png
-magick convert -size 70x70 canvas:none -draw 'circle 35,35 35,20' -negate \
--channel A -gaussian-blur 0x8 white-highlight.png
-magick composite -compose atop -geometry -13-17 white-highlight.png red-circle.png red-ball.png
-
+
+
+
image_info
+
the image info.
-
    - white highlight - atop - red circle - ==> - red ball -
+
+
argc
+
the number of elements in the argument vector.
-

You can find additional examples of using composite in Examples of ImageMagick Usage. You can find out more about them and the mathematics by looking at SVG Alpha Compositing

+
+
argv
+
A text array containing the command line arguments.
-

Option Summary

+
+
metadata
+
any metadata is returned here.
-

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

+
+
exception
+
return any errors or warnings in this structure.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescription
-affine matrixaffine transform matrix
-alphaon, activate, off, deactivate, set, opaque, copy", -transparent, extract, background, or shape the alpha channel
-authenticate valuedecrypt image with this password
-blend geometryblend images
-blue-primary pointchromaticity blue primary point
-border geometrysurround image with a border of color
-bordercolor colorborder color
-channel typeapply option to select image channels
-colors valuepreferred number of colors in the image
-colorspace typeset image colorspace
-comment stringannotate image with comment
-compose operatorset image composite operator
-compress typeimage compression type
-debug eventsdisplay copious debugging information
-decipher filenameconvert cipher pixels to plain
-define format:optiondefine one or more image format options
-density geometryhorizontal and vertical density of the image
-depth valueimage depth
-displace geometryshift image pixels defined by a displacement map
-dissolve valuedissolve the two images a given percent
-dither methodapply error diffusion to image
-encipher filenameconvert plain pixels to cipher pixels
-encoding typetext encoding type
-endian typeendianness (MSB or LSB) of the image
-extract geometryextract area from image
-filter typeuse this filter when resizing an image
-font namerender text with this font
-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
-label stringassign a label to an image
-level valueadjust the level of image contrast
-limit type valuepixel cache resource limit
-log formatformat of debugging information
-monitormonitor progress
-monochrometransform image to black and white
-negatereplace each pixel with its complementary color
-page geometrysize and location of an image canvas (setting)
-pointsize valuefont point size
-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.
-respect-parenthesessettings remain in effect until parenthesis boundary.
-rotate degreesapply Paeth rotation to the image
-sampling-factor geometryhorizontal and vertical sampling factor
-scene valueimage scene number
-seed valueseed a new sequence of pseudo-random numbers
-set attribute valueset an image attribute
-sharpen geometrysharpen the image
-shave geometryshave pixels from the image edges
-size geometrywidth and height of image
-stegano offsethide watermark within an image
-stereo geometrycombine two image to create a stereo anaglyph
-stripstrip image of all profiles and comments
-swap indexesswap two images in the image sequence
-synchronizesynchronize image to storage device
-taintmark the image as modified
-thumbnail geometrycreate a thumbnail of the image
-tilerepeat composite operation across and down image
-transformaffine transform image
-transparent-color colortransparent color
-treedepth valuecolor tree depth
-type typeimage type
-units typethe units of image resolution
-unsharp geometrysharpen the image
-verboseprint detailed information about the image
-versionprint version information
-virtual-pixel methodaccess method for pixels outside the boundaries of the image
-watermark geometrypercent brightness and saturation of a watermark
-white-point pointchromaticity white point
-white-threshold valueforce all pixels above the threshold into white
-write filenamewrite images to this file
+
+
@@ -551,4 +145,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 9e668a9b1..0ddbd1efc 100644 --- a/www/api/constitute.html +++ b/www/api/constitute.html @@ -334,3 +334,4 @@ MagickBooleanType WriteImages(const ImageInfo *image_info,Image *images, + \ No newline at end of file diff --git a/www/api/decorate.html b/www/api/decorate.html index 275000e86..7acdd8d46 100644 --- a/www/api/decorate.html +++ b/www/api/decorate.html @@ -212,3 +212,4 @@ MagickBooleanType RaiseImage(const Image *image, + \ No newline at end of file diff --git a/www/api/deprecate.html b/www/api/deprecate.html index a577a2594..f0d0f774e 100644 --- a/www/api/deprecate.html +++ b/www/api/deprecate.html @@ -160,3 +160,4 @@ MagickBooleanType MagickSetImageAlphaColor(MagickWand *wand, + \ No newline at end of file diff --git a/www/api/display.html b/www/api/display.html index b8ac30331..598079e18 100644 --- a/www/api/display.html +++ b/www/api/display.html @@ -7,12 +7,12 @@ - Command-line Tools: Display @ ImageMagick + MagickCore, C API: Interactively Display and Edit an Image @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,492 +81,7 @@
-

Example Usage • Option Summary

- -

Use the display program to display an image or image sequence on any X server. See Command Line Processing for advice on how to structure your display command or see below for example usages of the command.

- -

Example Usage

- -

We list a few examples of the display command here to illustrate its usefulness and ease of use. To get started, lets display an image in the JPEG format:

- -
magick display rose.jpg
-
- -

To tile a slate texture onto the root window, use:

- -
magick display -size 1280x1024 -window root slate.png
-
- -

To display a visual image directory of all your JPEG images, use:

- -
magick display 'vid:*.jpg'
-
- -

The display program defaults to the X screen resolution. To display vecotr formats at their intended size, override the default resolution:

- -
magick display -density 72 drawing.svg
-
- -

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

- -

Option Summary

- -

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescription
-alphaon, activate, off, deactivate, set, opaque, copy", -transparent, extract, background, or shape the alpha channel
-antialiasremove pixel-aliasing
-authenticate valuedecrypt image with this password
-backdropdisplay image centered on a backdrop
-background colorbackground color
-border geometrysurround image with a border of color
-bordercolor colorborder color
-channel typeapply option to select image channels
-clipclip along the first path from the 8BIM profile
-clip-path idclip along a named path from the 8BIM profile
-coalescemerge a sequence of images
-colormap typeShared or Private
-colors valuepreferred number of colors in the image
-colorspace typeset image colorspace
-comment stringannotate image with comment
-compress typeimage compression type
-contrastenhance or reduce the image contrast
-crop geometrypreferred size and location of the cropped image
-debug eventsdisplay copious debugging information
-decipher filenameconvert cipher pixels to plain
-define format:optiondefine one or more image format options
-delay valuedisplay the next image after pausing
-density geometryhorizontal and vertical density of the image
-depth valueimage depth
-despecklereduce the speckles within an image
-display serverget image or font from this X server
-dispose methodlayer disposal method
-dither methodapply error diffusion to image
-edge radiusapply a filter to detect edges in the image
-endian typeendianness (MSB or LSB) of the image
-enhanceapply a digital filter to enhance a noisy image
-equalizeperform histogram equalization to an image
-extract geometryextract area from image
-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
-frame geometrysurround image with an ornamental border
-fuzz distancecolors within this distance are considered equal
-gamma valuelevel of gamma correction
-geometry geometrypreferred size or location of the image
-gravity geometryhorizontal and vertical backdrop placement
-helpprint program options
-identifyidentify the format and characteristics of the image
-immutable typeprohibit image edits
-interlace typetype of image interlacing scheme
-interpolate methodpixel color interpolation method
-label nameassign a label to an image
-limit type valuepixel cache resource limit
-log formatformat of debugging information
-map filenametransform image colors to match this set of colors
-mattecolor colorframe color
-monitormonitor progress
-monochrometransform image to black and white
-negatereplace each pixel with its complementary color
-normalizetransform image to span the full range of colors
-page geometrysize and location of an image canvas (setting)
-profile filenameadd, delete, or apply an image profile
-quantize colorspacereduce image colors in this colorspace
-quietsuppress all warning messages
-raise valuelighten/darken image edges to create a 3-D effect
-regard-warningspay attention to warning messages.
-remote commandexecute a command in an remote display process
-resample geometrychange the resolution of an image
-resize geometryresize the image
-respect-parenthesessettings remain in effect until parenthesis boundary.
-roll geometryroll an image vertically or horizontally
-rotate degreesapply Paeth rotation to the image
-sample geometryscale image with pixel sampling
-sampling-factor geometryhorizontal and vertical sampling factor
-scene valueimage scene number
-seed valueseed a new sequence of pseudo-random numbers
-segment valuessegment an image
-set attribute valueset an image attribute
-sharpen geometrysharpen the image
-size geometrywidth and height of image
-stripstrip image of all profiles and comments
-thumbnail geometrycreate a thumbnail of the image
-transparent-color colortransparent color
-black-threshold valueforce all pixels below the threshold into black
-trimtrim image edges
-update secondsdetect when image file is modified and redisplay
-verboseprint detailed information about the image
-versionprint version information
-virtual-pixel methodaccess method for pixels outside the boundaries of the image
-visualdisplay image using this visual type
-window iddisplay image to background of this window
-window-group idexit program when this window id is destroyed
-write filenamewrite images to this file
+

Unknown method

@@ -591,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/distort.html b/www/api/distort.html index 6fa10db7a..07b5f6726 100644 --- a/www/api/distort.html +++ b/www/api/distort.html @@ -269,3 +269,4 @@ Image *SparseColorImage(const Image *image, + \ No newline at end of file diff --git a/www/api/draw.html b/www/api/draw.html index 20be02901..a05cbc266 100644 --- a/www/api/draw.html +++ b/www/api/draw.html @@ -393,3 +393,4 @@ void GetAffineMatrix(AffineMatrix *affine_matrix) + \ No newline at end of file diff --git a/www/api/drawing-wand.html b/www/api/drawing-wand.html index 97ca6af38..99b097943 100644 --- a/www/api/drawing-wand.html +++ b/www/api/drawing-wand.html @@ -3870,3 +3870,4 @@ MagickBooleanType PushDrawingWand(DrawingWand *wand) + \ No newline at end of file diff --git a/www/api/effect.html b/www/api/effect.html index 8249071f9..e9254a2a6 100644 --- a/www/api/effect.html +++ b/www/api/effect.html @@ -739,3 +739,4 @@ ExceptionInfo *exception) + \ No newline at end of file diff --git a/www/api/enhance.html b/www/api/enhance.html index 0fc97b151..d197d6d42 100644 --- a/www/api/enhance.html +++ b/www/api/enhance.html @@ -787,3 +787,4 @@ MagickBooleanType SigmoidalContrastImage(Image *image, + \ No newline at end of file diff --git a/www/api/exception.html b/www/api/exception.html index 9a977d9f9..1c9de87df 100644 --- a/www/api/exception.html +++ b/www/api/exception.html @@ -7,12 +7,12 @@ - Exceptions @ ImageMagick + MagickCore, C API: Dealing with Exceptions @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,198 +81,398 @@
+

AcquireExceptionInfoClearMagickExceptionCatchExceptionCloneExceptionInfoDestroyExceptionInfoGetExceptionMessageGetLocaleExceptionMessageInheritExceptionInitializeExceptionInfoMagickErrorMagickFatalErrorMagickWarningSetErrorHandlerSetFatalErrorHandlerSetWarningHandlerThrowException

-

ImageMagick returns a status of 0 whenever a command or algorithm successfully complete without complaint. A warning code generally is typically just a notice that something unusual occurred but the command or algorithm still completed and most likely the results are still usable. An error means the command or algorithm could not complete as expected and any results are unreliable. A fatal error means the command or algorithm could not complete and the process exits prematurely and no results are returned.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ImageMagick Error and Warning Codes
DomainDescriptionWarningErrorFatal Error
Successthe command or algorithm completed successfully without complaint000
Resource Limita program resource is exhausted (e.g. not enough memory)300400700
TypeA font is unavailable; a substitution may have occurred305405705
Optiona command-line option was malformed310410710
Delegatean ImageMagick delegate failed to complete315415715
Missing Delegatethe image type can not be read or written because the appropriate Delegate is missing320420720
Corrupt Imagethe image file may be corrupt325425725
FileOpenthe image file could not be opened for reading or writing330430730
Bloba binary large object could not be allocated, read, or written335435735
Streamthere was a problem reading or writing from a stream340440740
Cachepixels could not be read or written to the pixel cache345445745
Coderthere was a problem with an image coder350450750
Modulethere was a problem with an image module355455755
Drawa drawing operation failed360460760
Imagethe operation could not complete due to an incompatible image365465765
Wandthere was a problem specific to the MagickWand API370470770
Randomthere is a problem generating a true or pseudo-random number375475775
XServeran X resource is unavailable380480780
Monitorthere was a problem activating the progress monitor385485785
Registrythere was a problem getting or setting the registry390490790
Configurethere was a problem getting a configuration file395495795
Policya policy denies access to a delegate, coder, filter, path, or resource.399499799
+

AcquireExceptionInfo

+

AcquireExceptionInfo() allocates the ExceptionInfo structure.

+ +

The format of the AcquireExceptionInfo method is:

+ +
+ExceptionInfo *AcquireExceptionInfo(void)
+
+ +

ClearMagickException

+ +

ClearMagickException() clears any exception that may not have been caught yet.

+ +

The format of the ClearMagickException method is:

+ +
+ClearMagickException(ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
exception
+
the exception info.
+ +
+
+

CatchException

+ +

CatchException() returns if no exceptions is found otherwise it reports the exception as a warning, error, or fatal depending on the severity.

+ +

The format of the CatchException method is:

+ +
+CatchException(ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
exception
+
the exception info.
+ +
+
+

CloneExceptionInfo

+ +

CloneExceptionInfo() clones the ExceptionInfo structure.

+ +

The format of the CloneExceptionInfo method is:

+ +
+ExceptionInfo *CloneException(ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
exception
+
the exception info.
+ +
+
+

DestroyExceptionInfo

+ +

DestroyExceptionInfo() deallocates memory associated with an exception.

+ +

The format of the DestroyExceptionInfo method is:

+ +
+ExceptionInfo *DestroyExceptionInfo(ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
exception
+
the exception info.
+ +
+
+

GetExceptionMessage

+ +

GetExceptionMessage() returns the error message defined by the specified error code.

+ +

The format of the GetExceptionMessage method is:

+ +
+char *GetExceptionMessage(const int error)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
error
+
the error code.
+ +
+
+

GetLocaleExceptionMessage

+ +

GetLocaleExceptionMessage() converts a enumerated exception severity and tag to a message in the current locale.

+ +

The format of the GetLocaleExceptionMessage method is:

+ +
+const char *GetLocaleExceptionMessage(const ExceptionType severity,
+  const char *tag)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
severity
+
the severity of the exception.
+ +
+
tag
+
the message tag.
+ +
+
+

InheritException

+ +

InheritException() inherits an exception from a related exception.

+ +

The format of the InheritException method is:

+ +
+InheritException(ExceptionInfo *exception,const ExceptionInfo *relative)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
exception
+
the exception info.
+ +
+
relative
+
the related exception info.
+ +
+
+

InitializeExceptionInfo

+ +

InitializeExceptionInfo() initializes an exception to default values.

+ +

The format of the InitializeExceptionInfo method is:

+ +
+InitializeExceptionInfo(ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
exception
+
the exception info.
+ +
+
+

MagickError

+ +

MagickError() calls the exception handler methods with an error reason.

+ +

The format of the MagickError method is:

+ +
+void MagickError(const ExceptionType error,const char *reason,
+  const char *description)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
exception
+
Specifies the numeric error category.
+ +
+
reason
+
Specifies the reason to display before terminating the program.
+ +
+
description
+
Specifies any description to the reason.
+ +
+
+

MagickFatalError

+ +

MagickFatalError() calls the fatal exception handler methods with an error reason.

+ +

The format of the MagickError method is:

+ +
+void MagickFatalError(const ExceptionType error,const char *reason,
+  const char *description)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
exception
+
Specifies the numeric error category.
+ +
+
reason
+
Specifies the reason to display before terminating the program.
+ +
+
description
+
Specifies any description to the reason.
+ +
+
+

MagickWarning

+ +

MagickWarning() calls the warning handler methods with a warning reason.

+ +

The format of the MagickWarning method is:

+ +
+void MagickWarning(const ExceptionType warning,const char *reason,
+  const char *description)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
warning
+
the warning severity.
+ +
+
reason
+
Define the reason for the warning.
+ +
+
description
+
Describe the warning.
+ +
+
+

SetErrorHandler

+ +

SetErrorHandler() sets the exception handler to the specified method and returns the previous exception handler.

+ +

The format of the SetErrorHandler method is:

+ +
+ErrorHandler SetErrorHandler(ErrorHandler handler)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
handler
+
the method to handle errors.
+ +
+
+

SetFatalErrorHandler

+ +

SetFatalErrorHandler() sets the fatal exception handler to the specified method and returns the previous fatal exception handler.

+ +

The format of the SetErrorHandler method is:

+ +
+ErrorHandler SetErrorHandler(ErrorHandler handler)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
handler
+
the method to handle errors.
+ +
+
+

SetWarningHandler

+ +

SetWarningHandler() sets the warning handler to the specified method and returns the previous warning handler.

+ +

The format of the SetWarningHandler method is:

+ +
+ErrorHandler SetWarningHandler(ErrorHandler handler)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
handler
+
the method to handle warnings.
+ +
+
+

ThrowException

+ +

ThrowException() throws an exception with the specified severity code, reason, and optional description.

+ +

The format of the ThrowException method is:

+ +
+MagickBooleanType ThrowException(ExceptionInfo *exception,
+  const ExceptionType severity,const char *reason,
+  const char *description)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
exception
+
the exception info.
+ +
+
severity
+
the severity of the exception.
+ +
+
reason
+
the reason for the exception.
+ +
+
description
+
the exception description.
+ +
+
@@ -296,4 +496,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/fourier.html b/www/api/fourier.html index ea413e6e9..2bec5882d 100644 --- a/www/api/fourier.html +++ b/www/api/fourier.html @@ -204,3 +204,4 @@ Image *InverseFourierTransformImage(const Image *magnitude_image, + \ No newline at end of file diff --git a/www/api/fx.html b/www/api/fx.html index 48a9340cd..90ccf018a 100644 --- a/www/api/fx.html +++ b/www/api/fx.html @@ -862,4 +862,4 @@ Image *WaveletDenoiseImage(const Image *image,const double threshold, - \ 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 d8c91e9bb..1c7c10cfa 100644 --- a/www/api/histogram.html +++ b/www/api/histogram.html @@ -264,4 +264,4 @@ Image *UniqueImageColors(const Image *image,ExceptionInfo *exception) - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/image-view.html b/www/api/image-view.html index f7f1ce9d6..1614ecf83 100644 --- a/www/api/image-view.html +++ b/www/api/image-view.html @@ -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 ee1b098e5..dc2405f47 100644 --- a/www/api/image.html +++ b/www/api/image.html @@ -1181,3 +1181,4 @@ MagickBooleanType SyncImagesSettings(const ImageInfo *image_info, + \ No newline at end of file diff --git a/www/api/layer.html b/www/api/layer.html index da4804e28..b80341830 100644 --- a/www/api/layer.html +++ b/www/api/layer.html @@ -425,3 +425,4 @@ Image *MergeImageLayers(const Image *image, + \ No newline at end of file diff --git a/www/api/list.html b/www/api/list.html index 7ebc3a6a9..a1bd1819a 100644 --- a/www/api/list.html +++ b/www/api/list.html @@ -765,3 +765,4 @@ Image *SplitImageList(Image *images) + \ No newline at end of file diff --git a/www/api/magick++-classes.html b/www/api/magick++-classes.html index 4e369f052..b9bf07760 100644 --- a/www/api/magick++-classes.html +++ b/www/api/magick++-classes.html @@ -116,7 +116,7 @@ Geometry Geometry specification. -Image +Image Image frame. This is the primary object in Magick++. Montage @@ -159,4 +159,4 @@ containers of image frames. - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/magick-deprecate.html b/www/api/magick-deprecate.html index 73baf0719..71de6f6ca 100644 --- a/www/api/magick-deprecate.html +++ b/www/api/magick-deprecate.html @@ -106,3 +106,4 @@ + \ No newline at end of file diff --git a/www/api/magick-image.html b/www/api/magick-image.html index 2a3e7931d..f35171e20 100644 --- a/www/api/magick-image.html +++ b/www/api/magick-image.html @@ -7848,4 +7848,4 @@ MagickBooleanType MagickWriteImagesFile(MagickWand *wand,FILE *file) - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/magick-property.html b/www/api/magick-property.html index 56f16fef6..53f3ca6f7 100644 --- a/www/api/magick-property.html +++ b/www/api/magick-property.html @@ -1945,3 +1945,4 @@ MagickBooleanType MagickSetType(MagickWand *wand, + \ No newline at end of file diff --git a/www/api/magick-wand.html b/www/api/magick-wand.html index 8a7f6591c..ded56fb61 100644 --- a/www/api/magick-wand.html +++ b/www/api/magick-wand.html @@ -7,12 +7,12 @@ - MagickWand, C API @ ImageMagick + MagickWand, C API: Wand Methods @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,310 +81,592 @@
+

ClearMagickWandCloneMagickWandDestroyMagickWandIsMagickWandMagickClearExceptionMagickGetExceptionMagickGetExceptionTypeMagickGetIteratorIndexMagickQueryConfigureOptionMagickQueryConfigureOptionsMagickQueryFontMetricsMagickQueryMultilineFontMetricsMagickQueryFontsMagickQueryFormatsMagickRelinquishMemoryMagickResetIteratorMagickSetFirstIteratorMagickSetIteratorIndexMagickSetLastIteratorMagickWandGenesisMagickWandTerminusNewMagickWandNewMagickWandFromImageIsMagickWandInstantiated

+ +

ClearMagickWand

+ +

ClearMagickWand() clears resources associated with the wand, leaving the wand blank, and ready to be used for a new set of images.

+ +

The format of the ClearMagickWand method is:

+ +
+void ClearMagickWand(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

CloneMagickWand

+ +

CloneMagickWand() makes an exact copy of the specified wand.

+ +

The format of the CloneMagickWand method is:

+ +
+MagickWand *CloneMagickWand(const MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

DestroyMagickWand

+ +

DestroyMagickWand() deallocates memory associated with an MagickWand.

+ +

The format of the DestroyMagickWand method is:

+ +
+MagickWand *DestroyMagickWand(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

IsMagickWand

+ +

IsMagickWand() returns MagickTrue if the wand is verified as a magick wand.

+ +

The format of the IsMagickWand method is:

+ +
+MagickBooleanType IsMagickWand(const MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

MagickClearException

+ +

MagickClearException() clears any exceptions associated with the wand.

+ +

The format of the MagickClearException method is:

+ +
+MagickBooleanType MagickClearException(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

MagickGetException

+ +

MagickGetException() returns the severity, reason, and description of any error that occurs when using other methods in this API.

+ +

The format of the MagickGetException method is:

+ +
+char *MagickGetException(const MagickWand *wand,ExceptionType *severity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
severity
+
the severity of the error is returned here.
+ +
+
+

MagickGetExceptionType

+ +

MagickGetExceptionType() returns the exception type associated with the wand. If no exception has occurred, UndefinedExceptionType is returned.

+ +

The format of the MagickGetExceptionType method is:

+ +
+ExceptionType MagickGetExceptionType(const MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

MagickGetIteratorIndex

+ +

MagickGetIteratorIndex() returns the position of the iterator in the image list.

+ +

The format of the MagickGetIteratorIndex method is:

+ +
+ssize_t MagickGetIteratorIndex(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

MagickQueryConfigureOption

+ +

MagickQueryConfigureOption() returns the value associated with the specified configure option.

+ +

The format of the MagickQueryConfigureOption function is:

+ +
+char *MagickQueryConfigureOption(const char *option)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
option
+
the option name.
+ +
+
+

MagickQueryConfigureOptions

+ +

MagickQueryConfigureOptions() returns any configure options that match the specified pattern (e.g. "*" for all). Options include NAME, VERSION, LIB_VERSION, etc.

+ +

The format of the MagickQueryConfigureOptions function is:

+ +
+char **MagickQueryConfigureOptions(const char *pattern,
+  size_t *number_options)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_options
+
Returns the number of configure options in the list.
+ +
+ +
+
+

MagickQueryFontMetrics

+ +

MagickQueryFontMetrics() returns a 13 element array representing the following font metrics:

+ +
+    Element Description
+    -------------------------------------------------
+    0 character width
+    1 character height
+    2 ascender
+    3 descender
+    4 text width
+    5 text height
+    6 maximum horizontal advance
+    7 bounding box: x1
+    8 bounding box: y1
+    9 bounding box: x2
+   10 bounding box: y2
+   11 origin: x
+   12 origin: y
+
+ +

The format of the MagickQueryFontMetrics method is:

+ +
+double *MagickQueryFontMetrics(MagickWand *wand,
+  const DrawingWand *drawing_wand,const char *text)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the Magick wand.
+ +
+
drawing_wand
+
the drawing wand.
+ +
+
text
+
the text.
+ +
+
+

MagickQueryMultilineFontMetrics

+ +

MagickQueryMultilineFontMetrics() returns a 13 element array representing the following font metrics:

+ +
+    Element Description
+    -------------------------------------------------
+    0 character width
+    1 character height
+    2 ascender
+    3 descender
+    4 text width
+    5 text height
+    6 maximum horizontal advance
+    7 bounding box: x1
+    8 bounding box: y1
+    9 bounding box: x2
+   10 bounding box: y2
+   11 origin: x
+   12 origin: y
+
+ +

This method is like MagickQueryFontMetrics() but it returns the maximum text width and height for multiple lines of text.

+ +

The format of the MagickQueryFontMetrics method is:

+ +
+double *MagickQueryMultilineFontMetrics(MagickWand *wand,
+  const DrawingWand *drawing_wand,const char *text)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the Magick wand.
+ +
+
drawing_wand
+
the drawing wand.
+ +
+
text
+
the text.
+ +
+
+

MagickQueryFonts

+ +

MagickQueryFonts() returns any font that match the specified pattern (e.g. "*" for all).

+ +

The format of the MagickQueryFonts function is:

+ +
+char **MagickQueryFonts(const char *pattern,size_t *number_fonts)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_fonts
+
Returns the number of fonts in the list.
+ +
+ +
+
+

MagickQueryFormats

+ +

MagickQueryFormats() returns any image formats that match the specified pattern (e.g. "*" for all).

+ +

The format of the MagickQueryFormats function is:

+ +
+char **MagickQueryFormats(const char *pattern,size_t *number_formats)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_formats
+
This integer returns the number of image formats in the list.
+ +
+
+

MagickRelinquishMemory

+ +

MagickRelinquishMemory() relinquishes memory resources returned by such methods as MagickIdentifyImage(), MagickGetException(), etc.

+ +

The format of the MagickRelinquishMemory method is:

+ +
+void *MagickRelinquishMemory(void *resource)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
resource
+
Relinquish the memory associated with this resource.
+ +
+
+

MagickResetIterator

+ +

MagickResetIterator() resets the wand iterator.

+ +

It is typically used either before iterating though images, or before calling specific functions such as MagickAppendImages() to append all images together.

+ +

Afterward you can use MagickNextImage() to iterate over all the images in a wand container, starting with the first image.

+ +

Using this before MagickAddImages() or MagickReadImages() will cause new images to be inserted between the first and second image.

+ +

The format of the MagickResetIterator method is:

+ +
+void MagickResetIterator(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

MagickSetFirstIterator

+ +

MagickSetFirstIterator() sets the wand iterator to the first image.

+ +

After using any images added to the wand using MagickAddImage() or MagickReadImage() will be prepended before any image in the wand.

+ +

Also the current image has been set to the first image (if any) in the Magick Wand. Using MagickNextImage() will then set teh current image to the second image in the list (if present).

+ +

This operation is similar to MagickResetIterator() but differs in how MagickAddImage(), MagickReadImage(), and MagickNextImage() behaves afterward.

+ +

The format of the MagickSetFirstIterator method is:

+ +
+void MagickSetFirstIterator(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

MagickSetIteratorIndex

+ +

MagickSetIteratorIndex() set the iterator to the given position in the image list specified with the index parameter. A zero index will set the first image as current, and so on. Negative indexes can be used to specify an image relative to the end of the images in the wand, with -1 being the last image in the wand.

+ +

If the index is invalid (range too large for number of images in wand) the function will return MagickFalse, but no 'exception' will be raised, as it is not actually an error. In that case the current image will not change.

+ +

After using any images added to the wand using MagickAddImage() or MagickReadImage() will be added after the image indexed, regardless of if a zero (first image in list) or negative index (from end) is used.

+ +

Jumping to index 0 is similar to MagickResetIterator() but differs in how MagickNextImage() behaves afterward.

+ +

The format of the MagickSetIteratorIndex method is:

+ +
+MagickBooleanType MagickSetIteratorIndex(MagickWand *wand,
+  const ssize_t index)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
index
+
the scene number.
+ +
+
+

MagickSetLastIterator

+ +

MagickSetLastIterator() sets the wand iterator to the last image.

+ +

The last image is actually the current image, and the next use of MagickPreviousImage() will not change this allowing this function to be used to iterate over the images in the reverse direction. In this sense it is more like MagickResetIterator() than MagickSetFirstIterator().

+ +

Typically this function is used before MagickAddImage(), MagickReadImage() functions to ensure new images are appended to the very end of wand's image list.

+ +

The format of the MagickSetLastIterator method is:

+ +
+void MagickSetLastIterator(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
+

MagickWandGenesis

+ +

MagickWandGenesis() initializes the MagickWand environment.

+ +

The format of the MagickWandGenesis method is:

+ +
+void MagickWandGenesis(void)
+
+ +

MagickWandTerminus

+ +

MagickWandTerminus() terminates the MagickWand environment.

+ +

The format of the MaickWandTerminus method is:

+ +
+void MagickWandTerminus(void)
+
+ +

NewMagickWand

+ +

NewMagickWand() returns a wand required for all other methods in the API. A fatal exception is thrown if there is not enough memory to allocate the wand. Use DestroyMagickWand() to dispose of the wand when it is no longer needed.

+ +

The format of the NewMagickWand method is:

+ +
+MagickWand *NewMagickWand(void)
+
+ +

NewMagickWandFromImage

+ +

NewMagickWandFromImage() returns a wand with an image.

+ +

The format of the NewMagickWandFromImage method is:

+ +
+MagickWand *NewMagickWandFromImage(const Image *image)
+
+ +

A description of each parameter follows:

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

IsMagickWandInstantiated

+ +

IsMagickWandInstantiated() returns MagickTrue if the ImageMagick environment is currently instantiated-- that is, MagickWandGenesis() has been called but MagickWandTerminus() has not.

+ +

The format of the IsMagickWandInstantiated method is:

+ +
+MagickBooleanType IsMagickWandInstantiated(void)
+
-

The MagickWand API is the recommended interface between the C programming language and the ImageMagick image processing libraries. Unlike the MagickCore C API, MagickWand uses only a few opaque types. Accessors are available to set or get important wand properties. A description of the MagickWand public methods are found here:

- - - -

After you write your MagickWand program, compile it like this:

- -
cc -o wand wand.c `pkg-config --cflags --libs MagickWand`
-
- -

Set the PKG_CONFIG_PATH environment variable if ImageMagick is not in your default system path:

- -
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
-
- -

Here is a example program that utilizes the MagickWand API to get you started, wand.c. It reads an image, creates a thumbnail, and writes the result to disk.

- -
#include <stdio.h>
-#include <stdlib.h>
-#include <wand/MagickWand.h>
-
-int main(int argc,char **argv)
-{
-#define ThrowWandException(wand) \
-{ \
-  char \
-    *description; \
- \
-  ExceptionType \
-    severity; \
- \
-  description=MagickGetException(wand,&severity); \
-  (void) fprintf(stderr,"%s %s %lu %s\n",GetMagickModule(),description); \
-  description=(char *) MagickRelinquishMemory(description); \
-  exit(-1); \
-}
-
-  MagickBooleanType
-    status;
-
-  MagickWand
-    *magick_wand;
-
-  if (argc != 3)
-    {
-      (void) fprintf(stdout,"Usage: %s image thumbnail\n",argv[0]);
-      exit(0);
-    }
-  /*
-    Read an image.
-  */
-  MagickWandGenesis();
-  magick_wand=NewMagickWand();
-  status=MagickReadImage(magick_wand,argv[1]);
-  if (status == MagickFalse)
-    ThrowWandException(magick_wand);
-  /*
-    Turn the images into a thumbnail sequence.
-  */
-  MagickResetIterator(magick_wand);
-  while (MagickNextImage(magick_wand) != MagickFalse)
-    MagickResizeImage(magick_wand,106,80,LanczosFilter,1.0);
-  /*
-    Write the image then destroy it.
-  */
-  status=MagickWriteImages(magick_wand,argv[2],MagickTrue);
-  if (status == MagickFalse)
-    ThrowWandException(magick_wand);
-  magick_wand=DestroyMagickWand(magick_wand);
-  MagickWandTerminus();
-  return(0);
-}
-
- -

Here is another program that shows one way to get and set image pixels with the MagickWand API, contrast.c. It reads an image, applies sigmoidal non-linearity contrast control, and writes the result to disk.

- -
#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <wand/MagickWand.h>
-
-int main(int argc,char **argv)
-{
-#define QuantumScale  ((MagickRealType) 1.0/(MagickRealType) QuantumRange)
-#define SigmoidalContrast(x) \
-  (QuantumRange*(1.0/(1+exp(10.0*(0.5-QuantumScale*x)))-0.0066928509)*1.0092503)
-#define ThrowWandException(wand) \
-{ \
-  char \
-    *description; \
- \
-  ExceptionType \
-    severity; \
- \
-  description=MagickGetException(wand,&severity); \
-  (void) fprintf(stderr,"%s %s %lu %s\n",GetMagickModule(),description); \
-  description=(char *) MagickRelinquishMemory(description); \
-  exit(-1); \
-}
-
-  long
-    y;
-
-  MagickBooleanType
-    status;
-
-  MagickPixelPacket
-    pixel;
-
-  MagickWand
-    *contrast_wand,
-    *image_wand;
-
-  PixelIterator
-    *contrast_iterator,
-    *iterator;
-
-  PixelWand
-    **contrast_pixels,
-    **pixels;
-
-  register long
-    x;
-
-  unsigned long
-    width;
-
-  if (argc != 3)
-    {
-      (void) fprintf(stdout,"Usage: %s image sigmoidal-image\n",argv[0]);
-      exit(0);
-    }
-  /*
-    Read an image.
-  */
-  MagickWandGenesis();
-  image_wand=NewMagickWand();
-  status=MagickReadImage(image_wand,argv[1]);
-  if (status == MagickFalse)
-    ThrowWandException(image_wand);
-  contrast_wand=CloneMagickWand(image_wand);
-  /*
-    Sigmoidal non-linearity contrast control.
-  */
-  iterator=NewPixelIterator(image_wand);
-  contrast_iterator=NewPixelIterator(contrast_wand);
-  if ((iterator == (PixelIterator *) NULL) ||
-      (contrast_iterator == (PixelIterator *) NULL))
-    ThrowWandException(image_wand);
-  for (y=0; y < (long) MagickGetImageHeight(image_wand); y++)
-  {
-    pixels=PixelGetNextIteratorRow(iterator,&width);
-    contrast_pixels=PixelGetNextIteratorRow(contrast_iterator,&width);
-    if ((pixels == (PixelWand **) NULL) ||
-        (contrast_pixels == (PixelWand **) NULL))
-      break;
-    for (x=0; x < (long) width; x++)
-    {
-      PixelGetMagickColor(pixels[x],&pixel);
-      pixel.red=SigmoidalContrast(pixel.red);
-      pixel.green=SigmoidalContrast(pixel.green);
-      pixel.blue=SigmoidalContrast(pixel.blue);
-      pixel.index=SigmoidalContrast(pixel.index);
-      PixelSetMagickColor(contrast_pixels[x],&pixel);
-    }
-    (void) PixelSyncIterator(contrast_iterator);
-  }
-  if (y < (long) MagickGetImageHeight(image_wand))
-    ThrowWandException(image_wand);
-  contrast_iterator=DestroyPixelIterator(contrast_iterator);
-  iterator=DestroyPixelIterator(iterator);
-  image_wand=DestroyMagickWand(image_wand);
-  /*
-    Write the image then destroy it.
-  */
-  status=MagickWriteImages(contrast_wand,argv[2],MagickTrue);
-  if (status == MagickFalse)
-    ThrowWandException(image_wand);
-  contrast_wand=DestroyMagickWand(contrast_wand);
-  MagickWandTerminus();
-  return(0);
-}
-
-

Now lets perform the same contrast enhancement while taking advantage of our dual or quad-core processing system by running the algorithm in parallel utilizing wand views. The sigmoidal-contrast.c module reads an image, applies sigmoidal non-linearity contrast control, and writes the result to disk just like the previous contrast enhancement program, but now it does its work in parallel (assumes ImageMagick is built with OpenMP support).

- -
#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <wand/MagickWand.h>
-
-static MagickBooleanType SigmoidalContrast(WandView *pixel_view,
-  const ssize_t y,const int id,void *context)
-{
-#define QuantumScale  ((MagickRealType) 1.0/(MagickRealType) QuantumRange)
-#define SigmoidalContrast(x) \
-  (QuantumRange*(1.0/(1+exp(10.0*(0.5-QuantumScale*x)))-0.0066928509)*1.0092503)
-
-  RectangleInfo
-    extent;
-
-  MagickPixelPacket
-    pixel;
-
-  PixelWand
-    **pixels;
-
-  register long
-    x;
-
-  extent=GetWandViewExtent(contrast_view);
-  pixels=GetWandViewPixels(contrast_view);
-  for (x=0; x < (long) (extent.width-extent.height); x++)
-  {
-    PixelGetMagickColor(pixels[x],&pixel);
-    pixel.red=SigmoidalContrast(pixel.red);
-    pixel.green=SigmoidalContrast(pixel.green);
-    pixel.blue=SigmoidalContrast(pixel.blue);
-    pixel.index=SigmoidalContrast(pixel.index);
-    PixelSetMagickColor(contrast_pixels[x],&pixel);
-  }
-  return(MagickTrue);
-}
-
-int main(int argc,char **argv)
-{
-#define ThrowViewException(view) \
-{ \
-  description=GetWandViewException(view,&severity); \
-  (void) fprintf(stderr,"%s %s %lu %s\n",GetMagickModule(),description); \
-  description=(char *) MagickRelinquishMemory(description); \
-  exit(-1); \
-}
-#define ThrowWandException(wand) \
-{ \
-  description=MagickGetException(wand,&severity); \
-  (void) fprintf(stderr,"%s %s %lu %s\n",GetMagickModule(),description); \
-  description=(char *) MagickRelinquishMemory(description); \
-  exit(-1); \
-}
-
-  char
-    *description;
-
-  ExceptionType
-    severity;
-
-  MagickBooleanType
-    status;
-
-  MagickPixelPacket
-    pixel;
-
-  MagickWand
-    *contrast_wand;
-
-  WandView
-    *contrast_view;
-
-  if (argc != 3)
-    {
-      (void) fprintf(stdout,"Usage: %s image sigmoidal-image\n",argv[0]);
-      exit(0);
-    }
-  /*
-    Read an image.
-  */
-  MagickWandGenesis();
-  contrast_wand=NewMagickWand();
-  status=MagickReadImage(contrast_wand,argv[1]);
-  if (status == MagickFalse)
-    ThrowWandException(contrast_wand);
-  /*
-    Sigmoidal non-linearity contrast control.
-  */
-  contrast_view=NewWandView(contrast_wand);
-  if (contrast_view == (WandView *) NULL)
-    ThrowWandException(contrast_wand);
-  status=UpdateWandViewIterator(contrast_view,SigmoidalContrast,(void *) NULL);
-  if (status == MagickFalse)
-    ThrowWandException(contrast_wand);
-  contrast_view=DestroyWandView(contrast_view);
-  /*
-    Write the image then destroy it.
-  */
-  status=MagickWriteImages(contrast_wand,argv[2],MagickTrue);
-  if (status == MagickFalse)
-    ThrowWandException(contrast_wand);
-  contrast_wand=DestroyMagickWand(contrast_wand);
-  MagickWandTerminus();
-  return(0);
-}
-
-

MagickWand Examples in C illustrates how to use the ImageMagick MagickWand API. Each example is presented as a C function, complete with headers, so that it can be copied to a file and then included in your own C project.

@@ -408,4 +690,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 6df970fe9..c6a08a57f 100644 --- a/www/api/magick.html +++ b/www/api/magick.html @@ -7,12 +7,12 @@ - Command-line Tools: Magick @ ImageMagick + MagickCore, C API: Read or List Image formats @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,1248 +81,121 @@
-

Use the magick program to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. See Command Line Processing for advice on how to structure your convert command or see below for example usages of the command.

+

AcquireMagickInfoGetMagickPrecisionIsMagickCoreInstantiatedMagickCoreGenesisMagickCoreTerminusSetMagickPrecision

-

We list a few examples of the magick command here to illustrate its usefulness and ease of use. To get started, lets convert an image in the JPEG format to PNG:

+

AcquireMagickInfo

-
magick rose.jpg rose.png
-
+

AcquireMagickInfo() allocates a MagickInfo structure and initializes the members to default values.

-

Next, we reduce the image size before it is written to the PNG format:

+

The format of the AcquireMagickInfo method is:

-
magick rose.jpg -resize 50% rose.png
-
+
+MagickInfo *AcquireMagickInfo(const char *module, const char *name,)
+
- +

A description of each parameter follows:

-

You can combine multiple image-processing operations to produce complex results:

+
+
-
magick -size 320x85 canvas:none -font Bookman-DemiItalic -pointsize 72 \
-  -draw "text 25,60 \'Magick\'" -channel RGBA -blur 0x6 -fill darkred -stroke magenta \
-  -draw "text 20,55 \'Magick\'" fuzzy-magick.png
-
+
+
+
module
+
a character string that represents the module associated with the MagickInfo structure.
-
    - fuzzy-magick -
+
+
name
+
a character string that represents the image format associated with the MagickInfo structure.
-

or here we resize an image with improved quality:

+
+
description
+
a character string that represents the image format associated with the MagickInfo structure.
-
magick input.png -colorspace RGB +sigmoidal-contrast 11.6933 \
-  -define filter:filter=Sinc -define filter:window=Jinc -define filter:lobes=3 \
-  -resize 400% -sigmoidal-contrast 11.6933 -colorspace sRGB output.png');
-
+
+
+

GetMagickPrecision

-

Utilize other command-line tools from the magick tool. To invoke this functionality, simply create a symbolic link to the magick tool or specify the tool you want to use as the first argument. These two methods are equivalent:

+

GetMagickPrecision() returns the maximum number of significant digits to be printed.

-
ln -s magick convert
-convert rose.jpg rose.png
-magick convert rose.jpg rose.png
-
+

The format of the GetMagickPrecision method is:

-

You can find additional examples of using magick in Examples of ImageMagick Usage.

+
+int GetMagickPrecision(void)
+
-

Option Summary

+

IsMagickCoreInstantiated

-

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

+

IsMagickCoreInstantiated() returns MagickTrue if the ImageMagick environment is currently instantiated: MagickCoreGenesis() has been called but MagickDestroy() has not.

-
- - - - - +

The format of the IsMagickCoreInstantiated method is:

- - - - +
+MagickBooleanType IsMagickCoreInstantiated(void)
+
- - - - +

MagickCoreGenesis

- - - - +

MagickCoreGenesis() initializes the MagickCore environment.

- - - - +

The format of the MagickCoreGenesis function is:

- - - - +
+MagickCoreGenesis(const char *path,
+  const MagickBooleanType establish_signal_handlers)
+
- - - - +

A description of each parameter follows:

- - - - +
+
- - - - +
+
+
path
+
the execution path of the current ImageMagick client.
-
- - - +
+
establish_signal_handlers
+
set to MagickTrue to use MagickCore's own signal handlers for common signals.
- - - - +
+ +

MagickCoreTerminus

- - - - +

MagickCoreTerminus() destroys the MagickCore environment.

- - - - +

The format of the MagickCoreTerminus function is:

- - - - +
+MagickCoreTerminus(void)
+
- - - - +

SetMagickPrecision

- - - - +

SetMagickPrecision() sets the maximum number of significant digits to be printed.

- - - - +

An input argument of 0 returns the current precision setting.

- - - - +

A negative value forces the precision to reset to a default value according to the environment variable "MAGICK_PRECISION", the current 'policy' configuration setting, or the default value of '6', in that order.

- - - - +

The format of the SetMagickPrecision method is:

- - - - +
+int SetMagickPrecision(const int precision)
+
- - - - +

A description of each parameter follows:

- - - - +
+
- - - - +
+
+
precision
+
set the maximum number of significant digits to be printed.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-adaptive-blur geometryadaptively blur pixels; decrease effect near edges
-adaptive-resize geometryadaptively resize image with data dependent triangulation.
-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
-antialiasremove pixel-aliasing
-appendappend an image sequence
-authenticate valuedecipher image with this password
-auto-gammaautomagically adjust gamma level of image
-auto-levelautomagically adjust color levels of image
-auto-orientautomagically orient image
-background colorbackground color
-bench iterationsmeasure performance
-bias valueadd bias when convolving an image
-black-threshold valueforce all pixels below the threshold into black
-blue-primary pointchromaticity blue primary point
-blue-shift factorsimulate a scene at nighttime in the moonlight
-blur geometryreduce image noise and reduce detail levels
-border geometrysurround image with a border of color
-bordercolor colorborder color
-brightness-contrast geometryimprove brightness / contrast of the image
-canny geometryuse a multi-stage algorithm to detect a wide range of edges in the image
-caption stringassign a caption to an image
-cdl filenamecolor correct with a color decision list
-channel typeapply option to select image channels
-charcoal radiussimulate a charcoal drawing
-chop geometryremove pixels from the image interior
-clampset each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.
-clipclip along the first path from the 8BIM profile
-clip-mask filenameassociate clip mask with the image
-clip-path idclip along a named path from the 8BIM profile
-clone indexclone an image
-clutapply a color lookup table to the image
-connected-components connectivityconnected-components uniquely labeled, choose from 4 or 8 way connectivity
-contrast-stretch geometryimprove the contrast in an image by `stretching' the range of intensity value
-coalescemerge a sequence of images
-colorize valuecolorize the image with the fill color
-color-matrix matrixapply color correction to the image.
-colors valuepreferred number of colors in the image
-colorspace typeset image colorspace
-combinecombine a sequence of images
-comment stringannotate image with comment
-comparecompare image
-complexoperatorperform complex mathematics on an image sequence
-compose operatorset image composite operator
-compositecomposite image
-compress typeimage compression type
-contrastenhance or reduce the image contrast
-convolve coefficientsapply a convolution kernel to the image
-copy geometry offsetcopy pixels from one area of an image to another
-crop geometrycrop the image
-cycle amountcycle the image colormap
-decipher filenameconvert cipher pixels to plain
-debug eventsdisplay copious debugging information
-define format:optiondefine one or more image format options
-deconstructbreak down an image sequence into constituent parts
-delay valuedisplay the next image after pausing
-delete indexdelete the image from the image sequence
-density geometryhorizontal and vertical density of the image
-depth valueimage depth
-despecklereduce the speckles within an image
-direction typerender text right-to-left or left-to-right
-display serverget image or font from this X server
-dispose methodlayer disposal method
-distribute-cache portlaunch a distributed pixel cache server
-distort type coefficientsdistort image
-dither methodapply error diffusion to image
-draw stringannotate the image with a graphic primitive
-duplicate count,indexesduplicate an image one or more times
-edge radiusapply a filter to detect edges in the image
-emboss radiusemboss an image
-encipher filenameconvert plain pixels to cipher pixels
-encoding typetext encoding type
-endian typeendianness (MSB or LSB) of the image
-enhanceapply a digital filter to enhance a noisy image
-equalizeperform histogram equalization to an image
-evaluate operator valueevaluate an arithmetic, relational, or logical expression
-evaluate-sequence operatorevaluate an arithmetic, relational, or logical expression for an image sequence
-extent geometryset the image size
-extract geometryextract area from image
-family namerender text with this font family
-features distanceanalyze image features (e.g. contract, correlations, etc.).
-fftimplements the discrete Fourier transform (DFT)
-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
-floodfill geometry colorfloodfill the image with color
-flopflop image in the horizontal direction
-font namerender text with this font
-format stringoutput formatted image characteristics
-frame geometrysurround image with an ornamental border
-function nameapply a function to the image
-fuzz distancecolors within this distance are considered equal
-fx expressionapply mathematical expression to an image channel(s)
-gamma valuelevel of gamma correction
-gaussian-blur geometryreduce image noise and reduce detail levels
-geometry geometrypreferred size or location of the image
-gravity typehorizontal and vertical text placement
-grayscale methodconvert image to grayscale
-green-primary pointchromaticity green primary point
-helpprint program options
-hough-lines geometryidentify lines in the image
-identifyidentify the format and characteristics of the image
-iftimplements the inverse discrete Fourier transform (DFT)
-implode amountimplode image pixels about the center
-insert indexinsert last image into the image sequence
-intensity methodmethod to generate an intensity value from a pixel
-intent typetype of rendering intent when managing the image color
-interlace typetype of image interlacing scheme
-interline-spacing valuethe space between two text lines
-interpolate methodpixel color interpolation method
-interword-spacing valuethe space between two words
-kerning valuethe space between two characters
-kuwahara geometryedge preserving noise reduction filter
-label stringassign a label to an image
-lat geometrylocal adaptive thresholding
-layers methodoptimize or compare image layers
-level valueadjust the level of image contrast
-limit type valuepixel cache resource limit
-linear-stretch geometrylinear with saturation histogram stretch
-liquid-rescale geometryrescale image with seam-carving
-list typeColor, Configure, Delegate, Format, Magic, Module, Resource, or Type
-log formatformat of debugging information
-loop iterationsadd Netscape loop extension to your GIF animation
-mask filenameassociate a mask with the image
-mattecolor colorframe color
-median radiusapply a median filter to the image
-mean-shift geometrydelineate arbitrarily shaped clusters in the image
-metric typemeasure differences between images with this metric
-mode radiusmake each pixel the 'predominant color' of the neighborhood
-modulate valuevary the brightness, saturation, and hue
-momentsdisplay image moments.
-monitormonitor progress
-monochrometransform image to black and white
-morph valuemorph an image sequence
-morphology method kernelapply a morphology method to the image
-motion-blur geometrysimulate motion blur
-negatereplace each pixel with its complementary color
-noise radiusadd or reduce noise in an image
-normalizetransform image to span the full range of colors
-opaque colorchange this color to the fill color
-ordered-dither NxNordered dither the image
-orient typeimage orientation
-page geometrysize and location of an image canvas (setting)
-paint radiussimulate an oil painting
-perceptibleset each pixel whose value is less than |epsilon| to -epsilon or epsilon (whichever is closer) otherwise the pixel value remains unchanged.
-pingefficiently determine image attributes
-pointsize valuefont point size
-polaroid anglesimulate a Polaroid picture
-poly termsbuild a polynomial from the image sequence and the corresponding terms (coefficients and degree pairs).
-posterize levelsreduce the image to a limited number of color levels
-precision valueset the maximum number of significant digits to be printed
-preview typeimage preview type
-print stringinterpret string and print to console
-process image-filterprocess the image with a custom image filter
-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
-radial-blur angleradial blur the image
-raise valuelighten/darken image edges to create a 3-D effect
-random-threshold low,highrandom threshold the image
-red-primary pointchromaticity red primary point
-regard-warningspay attention to warning messages.
-region geometryapply options to a portion of the image
-remap filenametransform image colors to match this set of colors
-renderrender vector graphics
-repage geometrysize and location of an image canvas
-resample geometrychange the resolution of an image
-resize geometryresize the image
-respect-parenthesessettings remain in effect until parenthesis boundary.
-roll geometryroll an image vertically or horizontally
-rotate degreesapply Paeth rotation to the image
-sample geometryscale image with pixel sampling
-sampling-factor geometryhorizontal and vertical sampling factor
-scale geometryscale the image
-scene valueimage scene number
-seed valueseed a new sequence of pseudo-random numbers
-segment valuessegment an image
-selective-blur geometryselectively blur pixels within a contrast threshold
-separateseparate an image channel into a grayscale image
-sepia-tone thresholdsimulate a sepia-toned photo
-set attribute valueset an image attribute
-shade degreesshade the image using a distant light source
-shadow geometrysimulate an image shadow
-sharpen geometrysharpen the image
-shave geometryshave pixels from the image edges
-shear geometryslide one edge of the image along the X or Y axis
-sigmoidal-contrast geometryincrease the contrast without saturating highlights or shadows
-smush offsetsmush an image sequence together
-size geometrywidth and height of image
-sketch geometrysimulate a pencil sketch
-solarize thresholdnegate all pixels above the threshold level
-splice geometrysplice the background color into the image
-spread radiusdisplace image pixels by a random amount
-statistic type geometryreplace each pixel with corresponding statistic from the neighborhood
-stripstrip image of all profiles and comments
-stroke colorgraphic primitive stroke color
-strokewidth valuegraphic primitive stroke width
-stretch typerender text with this font stretch
-style typerender text with this font style
-swap indexesswap two images in the image sequence
-swirl degreesswirl image pixels about the center
-synchronizesynchronize image to storage device
-taintmark the image as modified
-texture filenamename of texture to tile onto the image background
-threshold valuethreshold the image
-thumbnail geometrycreate a thumbnail of the image
-tile filenametile image when filling a graphic primitive
-tile-offset geometryset the image tile offset
-tint valuetint the image with the fill color
-transformaffine transform image
-transparent colormake this color transparent within the image
-transparent-color colortransparent color
-transposeflip image in the vertical direction and rotate 90 degrees
-transverseflop image in the horizontal direction and rotate 270 degrees
-treedepth valuecolor tree depth
-trimtrim image edges
-type typeimage type
-undercolor colorannotation bounding box color
-unique-colorsdiscard all but one of any pixel color.
-units typethe units of image resolution
-unsharp geometrysharpen the image
-verboseprint detailed information about the image
-versionprint version information
-viewFlashPix viewing transforms
-vignette geometrysoften the edges of the image in vignette style
-virtual-pixel methodaccess method for pixels outside the boundaries of the image
-wave geometryalter an image along a sine wave
-wavelet-denoise thresholdremoves noise from the image using a wavelet transform
-weight typerender text with this font weight
-white-point pointchromaticity white point
-white-threshold valueforce all pixels above the threshold into white
-write filenamewrite images to this file
-
+
+
@@ -1346,4 +219,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 f7dccb292..c8bff3f05 100644 --- a/www/api/memory.html +++ b/www/api/memory.html @@ -474,4 +474,4 @@ SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler, - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/mime.html b/www/api/mime.html index dac7a509d..32ac83cb8 100644 --- a/www/api/mime.html +++ b/www/api/mime.html @@ -257,3 +257,4 @@ MagickBooleanType ListMimeInfo(FILE *file,ExceptionInfo *exception) + \ No newline at end of file diff --git a/www/api/module.html b/www/api/module.html index f18737e5a..0ce2d0dcc 100644 --- a/www/api/module.html +++ b/www/api/module.html @@ -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 1a95ae769..4c9e85b3e 100644 --- a/www/api/mogrify.html +++ b/www/api/mogrify.html @@ -7,12 +7,12 @@ - Command-line Tools: Mogrify @ ImageMagick + MagickWand, C API: Command-line Interface @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,1228 +81,54 @@
-

Example Usage • Option Summary

+

MagickCommandGenesis

-

Use the mogrify program to resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. This tool is similar to convert except that the original image file is overwritten (unless you change the file suffix with the -format option) with any changes you request. See Command Line Processing for advice on how to structure your mogrify command or see below for sample usages of the command.

+

MagickCommandGenesis

-

Example Usage

+

MagickCommandGenesis() applies image processing options to an image as prescribed by command line options.

-

We list a few examples of the mogrify command here to illustrate its usefulness and ease of use. To get started, let's reduce the size of our -rose:

+

It wiil look for special options like "-debug", "-bench", and "-distribute-cache" that needs to be applied even before the main processing begins, and may completely overrule normal command processing. Such 'Genesis' Options can only be given on the CLI, (not in a script) and are typically ignored (as they have been handled) if seen later.

-
magick mogrify -resize 50% rose.jpg
-
+

The format of the MagickCommandGenesis method is:

- +
+MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
+  MagickCommand command,int argc,char **argv,char **metadata,
+  ExceptionInfo *exception)
+
-

You can resize all your JPEG images in a folder to a maximum dimension of 256x256 with this command:

+

A description of each parameter follows:

-
magick mogrify -resize 256x256 *.jpg
-
+
+
-

Finally, we convert all our PNG images in a folder to the JPEG format:

+
+
+
image_info
+
the image info.
-
magick mogrify -format jpg *.png
-
+
+
command
+
Choose from ConvertImageCommand, IdentifyImageCommand, MogrifyImageCommand, CompositeImageCommand, CompareImagesCommand, ConjureImageCommand, StreamImageCommand, ImportImageCommand, DisplayImageCommand, or AnimateImageCommand.
-

Here image files 1.png, 2.png, etc., are left untouched and files 1.jpg, 2.jpg, etc., are created. They are copies of their respective PNG images except are stored in the JPEG image format.

+
+
argc
+
Specifies a pointer to an integer describing the number of elements in the argument vector.
+
+
argv
+
Specifies a pointer to a text array containing the command line arguments.
-

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

+
+
metadata
+
any metadata is returned here.
-

Option Summary

- -

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescription
-adaptive-blur geometryadaptively blur pixels; decrease effect near edges
-adaptive-resize geometryadaptively resize image with data dependent triangulation.
-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
-antialiasremove pixel-aliasing
-appendappend an image sequence
-authenticate valuedecipher image with this password
-auto-gammaautomagically adjust gamma level of image
-auto-levelautomagically adjust color levels of image
-auto-orientautomagically orient image
-auto-threshold methodautomatically perform image thresholding
-background colorbackground color
-bench iterationsmeasure performance
-bias valueadd bias when convolving an image
-black-threshold valueforce all pixels below the threshold into black
-blue-primary pointchromaticity blue primary point
-blue-shift factorsimulate a scene at nighttime in the moonlight
-blur geometryreduce image noise and reduce detail levels
-border geometrysurround image with a border of color
-bordercolor colorborder color
-brightness-contrast geometryimprove brightness / contrast of the image
-canny geometryuse a multi-stage algorithm to detect a wide range of edges in the image
-caption stringassign a caption to an image
-cdl filenamecolor correct with a color decision list
-channel typeapply option to select image channels
-charcoal radiussimulate a charcoal drawing
-chop geometryremove pixels from the image interior
-clipclip along the first path from the 8BIM profile
-clampset each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.
-clip-mask filenameassociate clip mask with the image
-clip-path idclip along a named path from the 8BIM profile
-clutapply a color lookup table to the image
-complexoperatorperform complex mathematics on an image sequence
-connected-components connectivityconnected-components uniquely labeled, choose from 4 or 8 way connectivity
-contrast-stretch geometryimprove the contrast in an image by `stretching' the range of intensity value
-coalescemerge a sequence of images
-colorize valuecolorize the image with the fill color
-color-matrix matrixapply color correction to the image.
-colors valuepreferred number of colors in the image
-colorspace typeset image colorspace
-combinecombine a sequence of images
-comment stringannotate image with comment
-compose operatorset image composite operator
-compositecomposite image
-compress typeimage compression type
-contrastenhance or reduce the image contrast
-convolve coefficientsapply a convolution kernel to the image
-copy geometry offsetcopy pixels from one area of an image to another
-crop geometrycrop the image
-cycle amountcycle the image colormap
-decipher filenameconvert cipher pixels to plain
-debug eventsdisplay copious debugging information
-define format:optiondefine one or more image format options
-deconstructbreak down an image sequence into constituent parts
-delay valuedisplay the next image after pausing
-delete indexdelete the image from the image sequence
-density geometryhorizontal and vertical density of the image
-depth valueimage depth
-despecklereduce the speckles within an image
-direction typerender text right-to-left or left-to-right
-display serverget image or font from this X server
-dispose methodlayer disposal method
-distort type coefficientsdistort image
-distribute-cache portlaunch a pixel cache server
-dither methodapply error diffusion to image
-draw stringannotate the image with a graphic primitive
-duplicate count,indexesduplicate an image one or more times
-edge radiusapply a filter to detect edges in the image
-emboss radiusemboss an image
-encipher filenameconvert plain pixels to cipher pixels
-encoding typetext encoding type
-endian typeendianness (MSB or LSB) of the image
-enhanceapply a digital filter to enhance a noisy image
-equalizeperform histogram equalization to an image
-evaluate operator valueevaluate an arithmetic, relational, or logical expression
-evaluate-sequence operatorevaluate an arithmetic, relational, or logical expression for an image sequence
-extent geometryset the image size
-extract geometryextract area from image
-family namerender text with this font family
-features distanceanalyze image features (e.g. contract, correlations, etc.).
-fftimplements the discrete Fourier transform (DFT)
-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
-floodfill geometry colorfloodfill the image with color
-flopflop image in the horizontal direction
-font namerender text with this font
-format typeoutput formatted image characteristics
-frame geometrysurround image with an ornamental border
-function nameapply a function to the image
-fuzz distancecolors within this distance are considered equal
-fx expressionapply mathematical expression to an image channel(s)
-gamma valuelevel of gamma correction
-gaussian-blur geometryreduce image noise and reduce detail levels
-geometry geometrypreferred size or location of the image
-gravity typehorizontal and vertical text placement
-grayscale methodconvert image to grayscale
-green-primary pointchromaticity green primary point
-helpprint program options
-hough-lines geometryidentify lines in the image
-identifyidentify the format and characteristics of the image
-ifftimplements the inverse discrete Fourier transform (DFT)
-implode amountimplode image pixels about the center
-insert indexinsert last image into the image sequence
-intensity methodmethod to generate an intensity value from a pixel
-intent typetype of rendering intent when managing the image color
-interlace typetype of image interlacing scheme
-interline-spacing valuethe space between two text lines
-interpolate methodpixel color interpolation method
-interword-spacing valuethe space between two words
-kerning valuethe space between two characters
-kuwahara geometryedge preserving noise reduction filter
-label stringassign a label to an image
-lat geometrylocal adaptive thresholding
-layers methodoptimize or compare image layers
-level valueadjust the level of image contrast
-limit type valuepixel cache resource limit
-linear-stretch geometrylinear with saturation histogram stretch
-liquid-rescale geometryrescale image with seam-carving
-log formatformat of debugging information
-loop iterationsadd Netscape loop extension to your GIF animation
-mattecolor colorframe color
-median radiusapply a median filter to the image
-mean-shift geometrydelineate arbitrarily shaped clusters in the image
-metric typemeasure differences between images with this metric
-mode radiusmake each pixel the 'predominant color' of the neighborhood
-modulate valuevary the brightness, saturation, and hue
-monitormonitor progress
-monochrometransform image to black and white
-morph valuemorph an image sequence
-morphology method kernelapply a morphology method to the image
-motion-blur geometrysimulate motion blur
-negatereplace each pixel with its complementary color
-noise radiusadd or reduce noise in an image
-normalizetransform image to span the full range of colors
-opaque colorchange this color to the fill color
-ordered-dither NxNordered dither the image
-orient typeimage orientation
-page geometrysize and location of an image canvas (setting)
-paint radiussimulate an oil painting
-perceptibleset each pixel whose value is less than |epsilon| to -epsilon or epsilon (whichever is closer) otherwise the pixel value remains unchanged.
-pingefficiently determine image attributes
-pointsize valuefont point size
-polaroid anglesimulate a Polaroid picture
-poly termsbuild a polynomial from the image sequence and the corresponding terms (coefficients and degree pairs).
-posterize levelsreduce the image to a limited number of color levels
-precision valueset the maximum number of significant digits to be printed
-preview typeimage preview type
-print stringinterpret string and print to console
-process image-filterprocess the image with a custom image filter
-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
-radial-blur angleradial blur the image
-raise valuelighten/darken image edges to create a 3-D effect
-random-threshold low,highrandom threshold the image
-read-mask filenameassociate a read mask with the image
-red-primary pointchromaticity red primary point
-regard-warningspay attention to warning messages.
-region geometryapply options to a portion of the image
-remap filenametransform image colors to match this set of colors
-renderrender vector graphics
-repage geometrysize and location of an image canvas
-resample geometrychange the resolution of an image
-resize geometryresize the image
-respect-parenthesessettings remain in effect until parenthesis boundary.
-roll geometryroll an image vertically or horizontally
-rotate degreesapply Paeth rotation to the image
-sample geometryscale image with pixel sampling
-sampling-factor geometryhorizontal and vertical sampling factor
-scale geometryscale the image
-scene valueimage scene number
-seed valueseed a new sequence of pseudo-random numbers
-segment valuessegment an image
-selective-blur geometryselectively blur pixels within a contrast threshold
-separateseparate an image channel into a grayscale image
-sepia-tone thresholdsimulate a sepia-toned photo
-set attribute valueset an image attribute
-shade degreesshade the image using a distant light source
-shadow geometrysimulate an image shadow
-sharpen geometrysharpen the image
-shave geometryshave pixels from the image edges
-shear geometryslide one edge of the image along the X or Y axis
-sigmoidal-contrast geometryincrease the contrast without saturating highlights or shadows
-size geometrywidth and height of image
-sketch geometrysimulate a pencil sketch
-smush offsetsmush an image sequence together
-solarize thresholdnegate all pixels above the threshold level
-splice geometrysplice the background color into the image
-spread radiusdisplace image pixels by a random amount
-statistic type geometryreplace each pixel with corresponding statistic from the neighborhood
-stripstrip image of all profiles and comments
-stroke colorgraphic primitive stroke color
-strokewidth valuegraphic primitive stroke width
-stretch typerender text with this font stretch
-style typerender text with this font style
-swap indexesswap two images in the image sequence
-swirl degreesswirl image pixels about the center
-synchronizesynchronize image to storage device
-texture filenamename of texture to tile onto the image background
-threshold valuethreshold the image
-thumbnail geometrycreate a thumbnail of the image
-tile filenametile image when filling a graphic primitive
-tile-offset geometryset the image tile offset
-tint valuetint the image with the fill color
-transformaffine transform image
-transparent colormake this color transparent within the image
-transparent-color colortransparent color
-transposeflip image in the vertical direction and rotate 90 degrees
-transverseflop image in the horizontal direction and rotate 270 degrees
-treedepth valuecolor tree depth
-trimtrim image edges
-type typeimage type
-undercolor colorannotation bounding box color
-unique-colorsdiscard all but one of any pixel color.
-units typethe units of image resolution
-unsharp geometrysharpen the image
-verboseprint detailed information about the image
-versionprint version information
-viewFlashPix viewing transforms
-vignette geometrysoften the edges of the image in vignette style
-virtual-pixel methodaccess method for pixels outside the boundaries of the image
-wave geometryalter an image along a sine wave
-wavelet-denoise thresholdremoves noise from the image using a wavelet transform
-weight typerender text with this font weight
-white-point pointchromaticity white point
-white-threshold valueforce all pixels above the threshold into white
-write filenamewrite images to this file
-write-mask filenameassociate a write mask with the image
+
+
exception
+
return any errors or warnings in this structure.
+
+
@@ -1326,4 +152,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 6c4117bdb..69d55d4f3 100644 --- a/www/api/monitor.html +++ b/www/api/monitor.html @@ -184,3 +184,4 @@ MagickProgressMonitor SetImageInfoProgressMonitor(ImageInfo *image_info, + \ No newline at end of file diff --git a/www/api/montage.html b/www/api/montage.html index 48e116b24..b5aee6916 100644 --- a/www/api/montage.html +++ b/www/api/montage.html @@ -106,4 +106,4 @@ - \ 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 f7a0588c1..c6a8e8a31 100644 --- a/www/api/morphology.html +++ b/www/api/morphology.html @@ -641,3 +641,4 @@ void ZeroKernelNans (KernelInfo *kernel) + \ No newline at end of file diff --git a/www/api/paint.html b/www/api/paint.html index 0a2990e6e..9669f87d3 100644 --- a/www/api/paint.html +++ b/www/api/paint.html @@ -318,3 +318,4 @@ MagickBooleanType TransparentPaintImageChroma(Image *image, + \ No newline at end of file diff --git a/www/api/pixel-iterator.html b/www/api/pixel-iterator.html index 7a52b29ee..f32b17e27 100644 --- a/www/api/pixel-iterator.html +++ b/www/api/pixel-iterator.html @@ -529,3 +529,4 @@ MagickBooleanType PixelSyncIterator(PixelIterator *iterator) + \ No newline at end of file diff --git a/www/api/pixel-wand.html b/www/api/pixel-wand.html index 2b94a7653..ffdf9b328 100644 --- a/www/api/pixel-wand.html +++ b/www/api/pixel-wand.html @@ -1598,3 +1598,4 @@ void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow) + \ No newline at end of file diff --git a/www/api/profile.html b/www/api/profile.html index 6b8366c45..935001a38 100644 --- a/www/api/profile.html +++ b/www/api/profile.html @@ -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 95886a39b..dfc9108e8 100644 --- a/www/api/property.html +++ b/www/api/property.html @@ -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 0f0b481c9..154acb175 100644 --- a/www/api/quantize.html +++ b/www/api/quantize.html @@ -7,12 +7,12 @@ - Color Reduction Utilizing Adaptive Spatial Subdivision @ ImageMagick + MagickCore, C API: Reduce the Number of Unique Colors in an Image @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,128 +81,412 @@
-

Algorithm Description • Measuring Color Reduction Error

+

QuantizeImageAcquireQuantizeInfoCloneQuantizeInfoCompressImageColormapDestroyQuantizeInfoGetImageQuantizeErrorGetQuantizeInfoPosterizeImageQuantizeImageQuantizeImagesRemapImageRemapImagesSetGrayscaleImage

-

This document describes how ImageMagick performs color reduction on an image. To fully understand what follows, you should have a knowledge of basic imaging techniques and the tree data structure and terminology.

+

QuantizeImage

-

Algorithm Description

+

QuantizeImage() takes a standard RGB or monochrome images and quantizes them down to some fixed number of colors.

-

For purposes of color allocation, an image is a set of n pixels, where each pixel is a point in RGB space. RGB space is a 3-dimensional vector space, and each pixel, p(i), is defined by an ordered triple of red, green, and blue coordinates, (r(i), g(i), b(i)).

+

For purposes of color allocation, an image is a set of n pixels, where each pixel is a point in RGB space. RGB space is a 3-dimensional vector space, and each pixel, Pi, is defined by an ordered triple of red, green, and blue coordinates, (Ri, Gi, Bi).

-

Each primary color component (red, green, or blue) represents an intensity which varies linearly from 0 to a maximum value, Cmax, which corresponds to full saturation of that color. Color allocation is defined over a domain consisting of the cube in RGB space with opposite vertices at (0, 0, 0) and (Cmax, Cmax, Cmax). ImageMagick requires Cmax= 255.

+

Each primary color component (red, green, or blue) represents an intensity which varies linearly from 0 to a maximum value, Cmax, which corresponds to full saturation of that color. Color allocation is defined over a domain consisting of the cube in RGB space with opposite vertices at (0,0,0) and (Cmax, Cmax, Cmax). QUANTIZE requires Cmax = 255.

-

The algorithm maps this domain onto a tree in which each node represents a cube within that domain. In the following discussion, these cubes are defined by the coordinate of two opposite vertices: The vertex nearest the origin in RGB space and the vertex farthest from the origin.

+

The algorithm maps this domain onto a tree in which each node represents a cube within that domain. In the following discussion these cubes are defined by the coordinate of two opposite vertices (vertex nearest the origin in RGB space and the vertex farthest from the origin).

-

The tree's root node represents the entire domain, (0,0,0) through (Cmax, Cmax, Cmax). Each lower level in the tree is generated by subdividing one node's cube into eight smaller cubes of equal size. This corresponds to bisecting the parent cube with planes passing through the midpoints of each edge.

+

The tree's root node represents the entire domain, (0,0,0) through (Cmax,Cmax,Cmax). Each lower level in the tree is generated by subdividing one node's cube into eight smaller cubes of equal size. This corresponds to bisecting the parent cube with planes passing through the midpoints of each edge.

-

The basic algorithm operates in three phases:

+

The basic algorithm operates in three phases: Classification, Reduction, and Assignment. Classification builds a color description tree for the image. Reduction collapses the tree until the number it represents, at most, the number of colors desired in the output image. Assignment defines the output image's color map and sets each pixel's color by restorage_class in the reduced tree. Our goal is to minimize the numerical discrepancies between the original colors and quantized colors (quantization error).

-
    -
  1. Classification
  2. -
  3. Reduction
  4. -
  5. Assignment
  6. -
+

Classification begins by initializing a color description tree of sufficient depth to represent each possible input color in a leaf. However, it is impractical to generate a fully-formed color description tree in the storage_class phase for realistic values of Cmax. If colors components in the input image are quantized to k-bit precision, so that Cmax= 2k-1, the tree would need k levels below the root node to allow representing each possible input color in a leaf. This becomes prohibitive because the tree's total number of nodes is 1 + sum(i=1, k, 8k).

-

Classification

+

A complete tree would require 19,173,961 nodes for k = 8, Cmax = 255.

+
avoid building a fully populated tree, QUANTIZE
+

(1) Initializes data structures for nodes only as they are needed; (2) Chooses a maximum depth for the tree as a function of the desired number of colors in the output image (currently log2(colormap size)).

-

Classification builds a color description tree for the image. Reduction collapses the tree until the number it represents, at most, is the number of colors desired in the output image. Assignment defines the output image's color map and sets each pixel's color by reclassification in the reduced tree. Our goal is to minimize the numerical discrepancies between the original colors and quantized colors. To learn more about quantization error, see Measuring Color Reduction Error.

+

For each pixel in the input image, storage_class scans downward from the root of the color description tree. At each level of the tree it identifies the single node which represents a cube in RGB space containing the pixel's color. It updates the following data for each such node:

-

Classification begins by initializing a color description tree of sufficient depth to represent each possible input color in a leaf. However, it is impractical to generate a fully-formed color description tree in the classification phase for realistic values of Cmax. If color components in the input image are quantized to k-bit precision, so that Cmax = 2^k-1, the tree would need k levels below the root node to allow representing each possible input color in a leaf. This becomes prohibitive because the tree's total number of nodes:

+
+    n1: Number of pixels whose color is contained in the RGB cube which
+    this node represents;
+
-
total nodes = 1+Sum(8^i), i=1,k
+

n2: Number of pixels whose color is not represented in a node at lower depth in the tree; initially, n2 = 0 for all nodes except leaves of the tree.

-For k=8, -nodes = 1 + (8^1+8^2+....+8^8) - = 1 + 8(8^8 - 1)/(8 - 1) - = 19,173,961 -
+

Sr, Sg, Sb: Sums of the red, green, and blue component values for all pixels not classified at a lower depth. The combination of these sums and n2 will ultimately characterize the mean color of a set of pixels represented by this node.

-

Therefore, to avoid building a fully populated tree, ImageMagick:

+

E: the distance squared in RGB space between each pixel contained within a node and the nodes' center. This represents the quantization error for a node.

-
    -
  1. initializes data structures for nodes only as they are needed;
  2. -
  3. chooses a maximum depth for the tree as a function of the desired number of colors in the output image (currently the base-two logarithm of Cmax).
  4. -
+

Reduction repeatedly prunes the tree until the number of nodes with n2 > 0 is less than or equal to the maximum number of colors allowed in the output image. On any given iteration over the tree, it selects those nodes whose E count is minimal for pruning and merges their color statistics upward. It uses a pruning threshold, Ep, to govern node selection as follows:

-
For Cmax=255,
-maximum tree depth = log2(256)
-                   = 8
-
+
+
-

A tree of this depth generally allows the best representation of the source image with the fastest computational speed and the least amount of memory. However, the default depth is inappropriate for some images. Therefore, the caller can request a specific tree depth.

+
Ep = 0 while number of nodes with (n2 > 0) > required maximum number of colors prune all nodes such that E <= Ep Set Ep to minimum E in remaining nodes
-

For each pixel in the input image, classification scans downward from the root of the color description tree. At each level of the tree, it identifies the single node which represents a cube in RGB space containing the pixels' color. It updates the following data for each such node:

+
This has the effect of minimizing any quantization error when merging two nodes together.
-
-
n1
-
number of pixels whose color is contained in the RGB cube which this node represents;
-
n2
-
number of pixels whose color is not represented in a node at lower depth in the tree; initially, n2=0 for all nodes except leaves of the tree.
-
Sr,Sg,Sb
-
sums of the red, green, and blue component values for all pixels not classified at a lower depth. The combination of these sums and n2 will ultimately characterize the mean color of a set of pixels represented by this node.
-
E
-
the distance squared in RGB space between each pixel contained within a node and the nodes' center. This represents the quantization error for a node.
+
When a node to be pruned has offspring, the pruning procedure invokes itself recursively in order to prune the tree from the leaves upward. n2, Sr, Sg, and Sb in a node being pruned are always added to the corresponding data in that node's parent. This retains the pruned node's color characteristics for later averaging.
+ +
For each node, n2 pixels exist for which that node represents the smallest volume in RGB space containing those pixel's colors. When n2 > 0 the node will uniquely define a color in the output image. At the beginning of reduction, n2 = 0 for all nodes except a the leaves of the tree which represent colors present in the input image.
+ +
The other pixel count, n1, indicates the total number of colors within the cubic volume which the node represents. This includes n1 - n2 pixels whose colors should be defined by nodes at a lower level in the tree.
+ +
Assignment generates the output image from the pruned tree. The output
+
+
parts
+
(1) A color map, which is an array of color descriptions (RGB triples) for each color present in the output image; (2) A pixel array, which represents each pixel as an index into the color map array.
+ +
First, the assignment phase makes one pass over the pruned color description tree to establish the image's color map. For each node with n2 > 0, it divides Sr, Sg, and Sb by n2 . This produces the mean color of all pixels that classify no lower than this node. Each of these colors becomes an entry in the color map.
+ +
Finally, the assignment phase reclassifies each pixel in the pruned tree to identify the deepest node containing the pixel's color. The pixel's value in the pixel array becomes the index of this node's mean color in the color map.
+ +
This method is based on a similar algorithm written by Paul Raveling.
+ +
+
+

AcquireQuantizeInfo

+ +

AcquireQuantizeInfo() allocates the QuantizeInfo structure.

+ +

The format of the AcquireQuantizeInfo method is:

+ +
+QuantizeInfo *AcquireQuantizeInfo(const ImageInfo *image_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+

CloneQuantizeInfo

-

Reduction

+

CloneQuantizeInfo() makes a duplicate of the given quantize info structure, or if quantize info is NULL, a new one.

-

Reduction repeatedly prunes the tree until the number of nodes with n2 > 0 is less than or equal to the maximum number of colors allowed in the output image. On any given iteration over the tree, it selects those nodes whose E value is minimal for pruning and merges their color statistics upward. It uses a pruning threshold, Ep, to govern node selection as follows:

+

The format of the CloneQuantizeInfo method is:

-
Ep = 0
-while number of nodes with (n2 > 0) > required maximum number of colors
-   prune all nodes such that E <= Ep
-   Set Ep  to minimum E in remaining nodes
-
+
+QuantizeInfo *CloneQuantizeInfo(const QuantizeInfo *quantize_info)
+
-

This has the effect of minimizing any quantization error when merging two nodes together.

+

A description of each parameter follows:

-

When a node to be pruned has offspring, the pruning procedure invokes itself recursively in order to prune the tree from the leaves upward. The values of n2, Sr, Sg, and Sb in a node being pruned are always added to the corresponding data in that node's parent. This retains the pruned node's color characteristics for later averaging.

+
+
-

For each node, n2 pixels exist for which that node represents the smallest volume in RGB space containing those pixel's colors. When n2 > 0 the node will uniquely define a color in the output image. At the beginning of reduction, n2 = 0 for all nodes except the leaves of the tree which represent colors present in the input image.

+
+
+
clone_info
+
Method CloneQuantizeInfo returns a duplicate of the given quantize info, or if image info is NULL a new one.
-

The other pixel count, n1, indicates the total number of colors within the cubic volume which the node represents. This includes n1 - n2 pixels whose colors should be defined by nodes at a lower level in the tree.

+
+
quantize_info
+
a structure of type info.
+ +
+
+

CompressImageColormap

-

Assignment

+

CompressImageColormap() compresses an image colormap by removing any duplicate or unused color entries.

-

Assignment generates the output image from the pruned tree. The output image consists of two parts:

-
    -
  1. A color map, which is an array of color descriptions (RGB triples) for each color present in the output image.
  2. +

    The format of the CompressImageColormap method is:

    -
  3. A pixel array, which represents each pixel as an index into the color map array.
  4. -
+
+MagickBooleanType CompressImageColormap(Image *image,
+  ExceptionInfo *exception)
+
-

First, the assignment phase makes one pass over the pruned color description tree to establish the image's color map. For each node with n2 > 0, it divides Sr, Sg, and Sb by n2. This produces the mean color of all pixels that classify no lower than this node. Each of these colors becomes an entry in the color map.

+

A description of each parameter follows:

-

Finally, the assignment phase reclassifies each pixel in the pruned tree to identify the deepest node containing the pixel's color. The pixel's value in the pixel array becomes the index of this node's mean color in the color map.

+
+
-

Empirical evidence suggests that the distances in color spaces such as YUV, or YIQ correspond to perceptual color differences more closely than do distances in RGB space. These color spaces may give better results when color reducing an image. Here the algorithm is as described except each pixel is a point in the alternate color space. For convenience, the color components are normalized to the range 0 to a maximum value, Cmax. The color reduction can then proceed as described.

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

DestroyQuantizeInfo

-

Measuring Color Reduction Error

+

DestroyQuantizeInfo() deallocates memory associated with an QuantizeInfo structure.

-

Depending on the image, the color reduction error may be obvious or invisible. Images with high spatial frequencies (such as hair or grass) will show error much less than pictures with large smoothly shaded areas (such as faces). This because the high-frequency contour edges introduced by the color reduction process are masked by the high frequencies in the image.

+

The format of the DestroyQuantizeInfo method is:

+ +
+QuantizeInfo *DestroyQuantizeInfo(QuantizeInfo *quantize_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
quantize_info
+
Specifies a pointer to an QuantizeInfo structure.
+ +
+
+

GetImageQuantizeError

-

To measure the difference between the original and color reduced images (the total color reduction error), ImageMagick sums over all pixels in an image the distance squared in RGB space between each original pixel value and its color reduced value. ImageMagick prints several error measurements including the mean error per pixel, the normalized mean error, and the normalized maximum error.

+

GetImageQuantizeError() measures the difference between the original and quantized images. This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value. These values are computed:

-

The normalized error measurement can be used to compare images. In general, the closer the mean error is to zero the more the quantized image resembles the source image. Ideally, the error should be perceptually-based, since the human eye is the final judge of quantization quality.

+
+    o mean_error_per_pixel:  This value is the mean error for any single
+pixel in the image.
+
-

These errors are measured and printed when the -colors and -verbose options are specified on the convert command line:

+
normalized_mean_square_error
+

This value is the normalized mean quantization error for any single pixel in the image. This distance measure is normalized to a range between 0 and 1. It is independent of the range of red, green, and blue values in the image.

-
- - - - - - - - - - - - - -
mean error per pixelis the mean error for any single pixel in the image.
normalized mean square erroris the normalized mean square quantization error for any single pixel in the image. This distance measure is normalized to a range between 0 and 1. It is independent of the range of red, green, and blue values in the image.
normalized maximum square erroris the largest normalized square quantization error for any single pixel in the image. This distance measure is normalized to a range between of red, green, and blue values in the image.
+
normalized_maximum_square_error
+

Thsi value is the normalized maximum quantization error for any single pixel in the image. This distance measure is normalized to a range between 0 and 1. It is independent of the range of red, green, and blue values in your image.

+ +

The format of the GetImageQuantizeError method is:

+ +
+MagickBooleanType GetImageQuantizeError(Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

GetQuantizeInfo

+ +

GetQuantizeInfo() initializes the QuantizeInfo structure.

+ +

The format of the GetQuantizeInfo method is:

+ +
+GetQuantizeInfo(QuantizeInfo *quantize_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
quantize_info
+
Specifies a pointer to a QuantizeInfo structure.
+ +
+
+

PosterizeImage

+ +

PosterizeImage() reduces the image to a limited number of colors for a "poster" effect.

+ +

The format of the PosterizeImage method is:

+ +
+MagickBooleanType PosterizeImage(Image *image,const size_t levels,
+  const DitherMethod dither_method,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
Specifies a pointer to an Image structure.
+ +
+
levels
+
Number of color levels allowed in each channel. Very low values (2, 3, or 4) have the most visible effect.
+ +
+
dither_method
+
choose from UndefinedDitherMethod, NoDitherMethod, RiemersmaDitherMethod, FloydSteinbergDitherMethod.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

QuantizeImage

+

QuantizeImage() analyzes the colors within a reference image and chooses a fixed number of colors to represent the image. The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.

+ +

The format of the QuantizeImage method is:

+ +
+MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info,
+  Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
quantize_info
+
Specifies a pointer to an QuantizeInfo structure.
+ +
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

QuantizeImages

+ +

QuantizeImages() analyzes the colors within a set of reference images and chooses a fixed number of colors to represent the set. The goal of the algorithm is to minimize the color difference between the input and output images while minimizing the processing time.

+ +

The format of the QuantizeImages method is:

+ +
+MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info,
+  Image *images,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
quantize_info
+
Specifies a pointer to an QuantizeInfo structure.
+ +
+
images
+
Specifies a pointer to a list of Image structures.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

RemapImage

+ +

RemapImage() replaces the colors of an image with the closest of the colors from the reference image.

+ +

The format of the RemapImage method is:

+ +
+MagickBooleanType RemapImage(const QuantizeInfo *quantize_info,
+  Image *image,const Image *remap_image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
quantize_info
+
Specifies a pointer to an QuantizeInfo structure.
+ +
+
image
+
the image.
+ +
+
remap_image
+
the reference image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

RemapImages

+ +

RemapImages() replaces the colors of a sequence of images with the closest color from a reference image.

+ +

The format of the RemapImage method is:

+ +
+MagickBooleanType RemapImages(const QuantizeInfo *quantize_info,
+  Image *images,Image *remap_image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
quantize_info
+
Specifies a pointer to an QuantizeInfo structure.
+ +
+
images
+
the image sequence.
+ +
+
remap_image
+
the reference image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetGrayscaleImage

+ +

SetGrayscaleImage() converts an image to a PseudoClass grayscale image.

+ +

The format of the SetGrayscaleImage method is:

+ +
+MagickBooleanType SetGrayscaleImage(Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
The image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
@@ -226,4 +510,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 23157fbdb..4348278be 100644 --- a/www/api/registry.html +++ b/www/api/registry.html @@ -277,3 +277,4 @@ MagickBooleanType SetImageRegistry(const RegistryType type, + \ No newline at end of file diff --git a/www/api/resize.html b/www/api/resize.html index f8a8969a0..0b6aa06eb 100644 --- a/www/api/resize.html +++ b/www/api/resize.html @@ -467,3 +467,4 @@ Image *ThumbnailImage(const Image *image,const size_t columns, + \ No newline at end of file diff --git a/www/api/resource.html b/www/api/resource.html index c84cbb99d..8d1fd8fae 100644 --- a/www/api/resource.html +++ b/www/api/resource.html @@ -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 dc209566f..7a9aa8dac 100644 --- a/www/api/segment.html +++ b/www/api/segment.html @@ -139,3 +139,4 @@ MagickBooleanType SegmentImage(Image *image, + \ No newline at end of file diff --git a/www/api/shear.html b/www/api/shear.html index eef087f89..28e779849 100644 --- a/www/api/shear.html +++ b/www/api/shear.html @@ -210,3 +210,4 @@ Image *ShearRotateImage(const Image *image,const double degrees, + \ No newline at end of file diff --git a/www/api/signature.html b/www/api/signature.html index 3341e509a..d7a40cc1f 100644 --- a/www/api/signature.html +++ b/www/api/signature.html @@ -132,4 +132,4 @@ MagickBooleanType SignatureImage(Image *image,ExceptionInfo *exception) - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/statistic.html b/www/api/statistic.html index 3e3c66252..23134220d 100644 --- a/www/api/statistic.html +++ b/www/api/statistic.html @@ -514,3 +514,4 @@ Image *StatisticImage(const Image *image,const StatisticType type, + \ No newline at end of file diff --git a/www/api/stream.html b/www/api/stream.html index b1c4591c3..52ad17c4b 100644 --- a/www/api/stream.html +++ b/www/api/stream.html @@ -7,12 +7,12 @@ - Command-line Tools: Stream @ ImageMagick + MagickCore, C API: The Pixel FIFO @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,198 +81,47 @@
-

Example Usage • Option Summary

+

StreamImageCommand

-

Stream is a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats. It writes the pixel components as they are read from the input image a row at a time making stream desirable when working with large images or when you require raw pixel components.

+

StreamImageCommand

-

Example Usage

+

StreamImageCommand() is a lightweight method designed to extract pixels from large image files to a raw format using a minimum of system resources. The entire image or any regular portion of the image can be extracted.

-

We list a few examples of the stream command here to illustrate its usefulness and ease of use. To get started, lets stream the red, green, blue components of a 640x480 JPEG image to disk as unsigned characters:

+

The format of the StreamImageCommand method is:

-
magick stream -map rgb -storage-type char image.jpg pixels.dat
-magick display -depth 8 -size 640x480 rgb:pixels.dat
-
+
+MagickBooleanType StreamImageCommand(ImageInfo *image_info,int argc,
+  char **argv,char **metadata,ExceptionInfo *exception)
+
-

Here we extract a 100x100 region from a TIFF image in the grayscale format as doubles:

+

A description of each parameter follows:

-
magick stream -map i -storage-type double -extract 100x100+30+40 image.tif gray.raw
-
+
+
-

You can also associate the region to extract with the image filename:

+
+
+
image_info
+
the image info.
-
magick stream -map i -storage-type double 'image.tif[100x100+30+40]' gray.raw
-
+
+
argc
+
the number of elements in the argument vector.
+
+
argv
+
A text array containing the command line arguments.
-

Option Summary

+
+
metadata
+
any metadata is returned here.
-

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescription
-authenticate valuedecrypt image with this password
-channel typeapply option to select image channels
-colorspace typeset image colorspace
-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
-extract geometryextract area from image
-helpprint program options
-interlace typetype of image interlacing scheme
-interpolate methodpixel color interpolation method
-limit type valuepixel cache resource limit
-list typeColor, Configure, Delegate, Format, Magic, Module, Resource, or Type
-log formatformat of debugging information
-map componentsstore pixels in this format.
-monitormonitor progress
-quantize colorspacereduce image colors in this colorspace
-quietsuppress all warning messages
-regard-warningspay attention to warning messages.
-respect-parenthesessettings remain in effect until parenthesis boundary.
-sampling-factor geometryhorizontal and vertical sampling factor
-seed valueseed a new sequence of pseudo-random numbers
-set attribute valueset an image attribute
-size geometrywidth and height of image
-storage-type typestore pixels with this storage type.
-synchronizesynchronize image to storage device
-taintmark the image as modified
-transparent-color colortransparent color
-verboseprint detailed information about the image
-versionprint version information
-virtual-pixel methodaccess method for pixels outside the boundaries of the image
+
+
exception
+
return any errors or warnings in this structure.
+
+
@@ -296,4 +145,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 6573aa828..0a7e7d3d9 100644 --- a/www/api/transform.html +++ b/www/api/transform.html @@ -561,3 +561,4 @@ Image *TrimImage(const Image *image,ExceptionInfo *exception) + \ No newline at end of file diff --git a/www/api/version.html b/www/api/version.html index b00144eec..cc08d165e 100644 --- a/www/api/version.html +++ b/www/api/version.html @@ -294,4 +294,4 @@ void ListMagickVersion(FILE *file) - \ No newline at end of file + \ No newline at end of file diff --git a/www/api/wand-view.html b/www/api/wand-view.html index 989d9d73c..393e82e49 100644 --- a/www/api/wand-view.html +++ b/www/api/wand-view.html @@ -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 be5eb2b77..1a004f326 100644 --- a/www/architecture.html +++ b/www/architecture.html @@ -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-18 2017-12-25 Q16 https://www.imagemagick.org
+
$ identify -version
$ Version: ImageMagick 7.0.7-22 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

@@ -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 beb600275..de71704cd 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 8cbd47a33..10fedde90 100644 --- a/www/changelog.html +++ b/www/changelog.html @@ -80,7 +80,25 @@
-
2017-12-26 7.0.7-18 Cristy <quetzlzacatenango@image...>
+
2018-01-22 7.0.7-22 Cristy <quetzlzacatenango@image...>
+
  • Release ImageMagick version 7.0.0-22, GIT revision 22391:e8be814f1:20180122.
  • +
    2018-01-06 7.0.7-22 Cristy <quetzlzacatenango@image...>
    +
  • Support aspect ratio geometry, e.g. -crop 3:2.
  • +
  • Add support for reading the HEIC image format (reference https://github.com/ImageMagick/ImageMagick/issues/507).
  • +
  • Fixed numerous memory leaks, credit to OSS Fuzz.
  • +
    2018-01-06 7.0.7-21 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.0-21, GIT revision 22168:a91afc45b:20180106.
  • +
    2018-01-06 7.0.7-21 Dirk Lemstra <dirk@lem.....org>
    +
  • Fix some enum values in the OpenCL code.
  • +
    2018-01-06 7.0.7-20 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-20, GIT revision 22161:33a04d3e5:20180105.
  • +
    2018-01-05 7.0.7-20 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
    2018-01-01 7.0.7-19 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-19, GIT revision 22133:977fe08bf:20180101.
  • +
    2017-12-29 7.0.7-19 Cristy <quetzlzacatenango@image...>
    +
  • Check for webpmux library version 0.4.4 (reference https://github.com/ImageMagick/ImageMagick/issues/896).
  • +
    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).
  • @@ -623,4 +641,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/cipher.html b/www/cipher.html index 8929a1e53..afe42a747 100644 --- a/www/cipher.html +++ b/www/cipher.html @@ -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 6c197f134..e54489d5a 100644 --- a/www/color-management.html +++ b/www/color-management.html @@ -162,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 c9cef49f0..0f064549e 100644 --- a/www/color.html +++ b/www/color.html @@ -4968,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 95bcd9a37..12511bf1d 100644 --- a/www/command-line-options.html +++ b/www/command-line-options.html @@ -1822,6 +1822,12 @@ available:

    is not available, such as when using the
    mogrify utility. + + bmp:subtype=RGB555|RGB565|ARGB4444|ARGB1555 + BMP channel depth subtypes. Only support in BMP (BMP4). BMP3 and BMP2 do not + contain header fields to support these options. + + colorspace:auto-grayscale=on|off prevent automatic conversion to grayscale inside coders that support @@ -2325,6 +2331,12 @@ available:

    inserts in the output PNG.

    + + png:ignore-crc[=true] + When you know your image has no CRC or ADLER32 errors, this can speed up + decoding. It is also helpful in debugging bug reports from "fuzzers" + + png:preserve-colormap[=true] Use the existing image->colormap. Normally the PNG encoder will @@ -2502,7 +2514,7 @@ available:

    txt:compliance=css - + The first argument of a hsl() color is integer, not percentage @@ -2632,7 +2644,7 @@ or CMYK, or to change the depth of any image after it has been read.

    -direction type

    -

    render text right-to-left or left-to-right.

    +

    render text right-to-left or left-to-right. Requires the RAQM delegate library and complex text layout.

    -displace horizontal-scale{%}{!}
    -displace horizontal-scalexvertical-scale{%}{!}

    @@ -3354,10 +3366,7 @@ magick! for an image titled bird.miff.

    to annotate an image with text.

    The rotate primitive rotates subsequent shape primitives and -text primitives about the origin of the main image. If the -region option precedes the -draw -option, the origin for transformations is the upper left corner of the -region.

    +text primitives about the origin of the main image.

    The translate primitive translates subsequent shape and text primitives.

    @@ -8062,4 +8071,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 baae3b1d6..9826e1693 100644 --- a/www/command-line-processing.html +++ b/www/command-line-processing.html @@ -94,7 +94,7 @@ \( -clone 0 -shade 110x50 -normalize -channel BG -fx 0 +channel -matte \) \ -delete 0 +swap -compose Multiply -composite button.gif"); -

    This example command is long enough that the command must be written across several lines, so we formatted it for clarity by inserting backslashes (\). The backslash is the Unix line-continuation character. In the Windows shell, use a carat character (^) for line-continuation. We use the Unix style on these web pages, as above. Sometimes, however, the lines are wrapped by your browser if the browser window is small enough, but the command-lines, shown in white, are still intended to be typed as one line. Line continuation characters need not be entered. The parentheses that are escaped above using the backslash are not escaped in Windows. There are some other differences between Windows and Unix (involving quotation marks, for instance), but we'll discuss some of those issues later, as they arise.

    +

    This example command is long enough that the command must be written across several lines, so we formatted it for clarity by inserting backslashes (\). The backslash is the Unix line-continuation character. In the Windows shell, use a carat character (^) for line-continuation. We use the Unix style on these web pages, as above. Sometimes, however, the lines are wrapped by your browser if the browser window is small enough, but the command-lines, shown in white, are still intended to be typed as one line. Line continuation characters need not be entered. The parentheses that are escaped above using the backslash are not escaped in Windows. There are some other differences between Windows and Unix (involving quotation marks, for instance), but we'll discuss some of those issues later, as they arise.

    Without knowing much about the ImageMagick command-line, you can probably surmise that the first command above converts an image in the JPEG format to one in the PNG format. However, very few may realize the second, more complex command, gives a flat two-dimensional label a three-dimensional look with rich textures and simulated depth:

    @@ -229,7 +229,7 @@ so we explicitly set one:
    magick 'images.gif[0]' image.png
    -

    Unix shells generally interpret brackets so we enclosed the filename in quotes above. +

    Unix shells generally interpret brackets so we enclosed the filename in quotes above. In a Windows command shell the brackets are not interpreted but using quotes doesn't hurt. However, in most cases the roles of single-quotes and double-quotes are reversed with respect to Unix and Windows, so Windows users should usually try double-quotes where we display single-quotes, and vice versa.

    @@ -462,6 +462,10 @@ setting for more specifics.

    area@ Resize image to have specified area in pixels. Aspect ratio is preserved. + + x:y~ + Here x and y denotes an aspect ratio (e.g. 3:2 = 1.5). + {size}{offset} @@ -515,7 +519,7 @@ magick logo: -resize '100x200<' wiz4.png
    magick logo: -resize '10000@' wiz10000.png
    -

    In all the examples above and below, we have enclosed the geometry arguments within quotation marks. Doing so is optional in many cases, but not always. We must enclose the geometry specifications in quotation marks when using < or > to prevent these characters from being interpreted by the shell as file redirection. On Windows systems, the carat ^ needs to be within quotes, else it is ignored. To be safe, one should probably maintain a habit of enclosing all geometry arguments in quotes, as we have here. +

    In all the examples above and below, we have enclosed the geometry arguments within quotation marks. Doing so is optional in many cases, but not always. We must enclose the geometry specifications in quotation marks when using < or > to prevent these characters from being interpreted by the shell as file redirection. On Windows systems, the carat ^ needs to be within quotes, else it is ignored. To be safe, one should probably maintain a habit of enclosing all geometry arguments in quotes, as we have here.

    Offsets in geometry

    @@ -543,7 +547,7 @@ magick logo: -gravity center -region '100x200-10+20' -negate wizNeg3.png<
    magick wand.gif \( wizard.gif -rotate 30 \) +append images.gif
    -

    Notice again that the parentheses are escaped by preceding them with +

    Notice again that the parentheses are escaped by preceding them with backslashes. This is required under Unix, where parentheses are special shell characters. The backslash tells the shell not to interpret these characters, but to pass them directly to the command being executed. Do @@ -635,4 +639,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 ff07d285e..0569ba3b5 100644 --- a/www/command-line-tools.html +++ b/www/command-line-tools.html @@ -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 14b198c4f..7e49aea50 100644 --- a/www/compare.html +++ b/www/compare.html @@ -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 362f5f092..bc2fb1702 100644 --- a/www/compose.html +++ b/www/compose.html @@ -648,4 +648,4 @@ href="../www/command-line-options.html#list">-list compose.

    - \ No newline at end of file + \ No newline at end of file diff --git a/www/composite.html b/www/composite.html index 45c39b13a..4365b0733 100644 --- a/www/composite.html +++ b/www/composite.html @@ -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 eb52f0085..2d54cdfee 100644 --- a/www/conjure.html +++ b/www/conjure.html @@ -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 e3f06deda..6a06eeecf 100644 --- a/www/connected-components.html +++ b/www/connected-components.html @@ -142,4 +142,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/convert.html b/www/convert.html index e57c34be7..e71ff4c3f 100644 --- a/www/convert.html +++ b/www/convert.html @@ -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 ccb8de317..082074606 100644 --- a/www/develop.html +++ b/www/develop.html @@ -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 1dfe32286..34014b491 100644 --- a/www/display.html +++ b/www/display.html @@ -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 501db375f..8675d497c 100644 --- a/www/distribute-pixel-cache.html +++ b/www/distribute-pixel-cache.html @@ -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 1799aa144..9a3b2cbcd 100644 --- a/www/download.html +++ b/www/download.html @@ -102,16 +102,16 @@ - ImageMagick-7.0.7-18.x86_64.rpm - download - download + ImageMagick-7.0.7-22.x86_64.rpm + download + download Redhat / CentOS 7.1 x86_64 RPM - ImageMagick-libs-7.0.7-18.x86_64.rpm - download - download + ImageMagick-libs-7.0.7-22.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-18.x86_64.rpm

    You'll need the libraries as well:

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

    You'll need the libraries as well:

    +
    $ rpm -Uvh ImageMagick-libs-7.0.7-22.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-18, svn, ...)

    +

    where VERSION is the version of ImageMagick you want to compile (i.e.: 7.0.7-22, 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-18-Q16-x64-dll.exe - download - download + ImageMagick-7.0.7-22-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-18-Q16-x64-static.exe - download - download + ImageMagick-7.0.7-22-Q16-x64-static.exe + download + download Win64 static at 16 bits-per-pixel component - ImageMagick-7.0.7-18-Q8-x64-dll.exe - download - download + ImageMagick-7.0.7-22-Q8-x64-dll.exe + download + download Win64 dynamic at 8 bits-per-pixel component - ImageMagick-7.0.7-18-Q8-x64-static.exe - download - download + ImageMagick-7.0.7-22-Q8-x64-static.exe + download + download Win64 static at 8 bits-per-pixel component - ImageMagick-7.0.7-18-Q16-HDRI-x64-dll.exe - download - download + ImageMagick-7.0.7-22-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-18-Q16-HDRI-x64-static.exe - download - download + ImageMagick-7.0.7-22-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-18-Q16-x86-dll.exe - download - download + ImageMagick-7.0.7-22-Q16-x86-dll.exe + download + download Win32 dynamic at 16 bits-per-pixel component - ImageMagick-7.0.7-18-Q16-x86-static.exe - download - download + ImageMagick-7.0.7-22-Q16-x86-static.exe + download + download Win32 static at 16 bits-per-pixel component - ImageMagick-7.0.7-18-Q8-x86-dll.exe - download - download + ImageMagick-7.0.7-22-Q8-x86-dll.exe + download + download Win32 dynamic at 8 bits-per-pixel component - ImageMagick-7.0.7-18-Q8-x86-static.exe - download - download + ImageMagick-7.0.7-22-Q8-x86-static.exe + download + download Win32 static at 8 bits-per-pixel component - ImageMagick-7.0.7-18-Q16-HDRI-x86-dll.exe - download - download + ImageMagick-7.0.7-22-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-18-Q16-HDRI-x86-static.exe - download - download + ImageMagick-7.0.7-22-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-18-portable-Q16-x86.zip - download - download + ImageMagick-7.0.7-22-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-18-portable-Q16-x64.zip - download - download + ImageMagick-7.0.7-22-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).
    @@ -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 0ff4a04a0..4be26e9f4 100644 --- a/www/escape.html +++ b/www/escape.html @@ -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 7ef5b7b30..ae72f1e0d 100644 --- a/www/examples.html +++ b/www/examples.html @@ -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 62a5c8d7f..66d92a223 100644 --- a/www/exception.html +++ b/www/exception.html @@ -296,3 +296,4 @@ + \ No newline at end of file diff --git a/www/export.html b/www/export.html index 7998da0ae..794e0cce0 100644 --- a/www/export.html +++ b/www/export.html @@ -107,4 +107,3 @@ - \ No newline at end of file diff --git a/www/formats.html b/www/formats.html index 8e70286af..d89270fd6 100644 --- a/www/formats.html +++ b/www/formats.html @@ -468,6 +468,13 @@ the supported image formats.

    + + HEIC + R + Apple High efficiency Image Format + + + HPGL R @@ -2001,4 +2008,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 58243d885..3e0b1b187 100644 --- a/www/fx.html +++ b/www/fx.html @@ -7,12 +7,12 @@ - MagickCore, C API: Add a Special Effect @ ImageMagick + The Fx Special Effects Image Operator @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,764 +81,338 @@
    -

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

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

    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:

    -
    -
    - -
    -
    -
    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 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; variables must be at least 2 characters, 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
    -

    TintImage

    +
    +

    The expression semantics include these rules:

    -

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

    +
      +
    • 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.
    • +
    +
    -

    The format of the TintImage method is:

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

    Source Images

    -

    A description of each parameter follows:

    +

    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.

    -
    -
    +

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

    -
    -
    -
    image
    -
    the image.
    +
    convert image1.jpg image2.jpg image3.jpg -fx "(u+u[2])/2.0" image.jpg
    +
    -
    -
    blend
    -
    A color value used for tinting.
    +

    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:...].

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

    -
    -
    exception
    -
    return any errors or warnings in this structure.
    +
    convert -channel red logo: -flop logo: -resize "20%" -fx "(u+v)/2" image.jpg
    +
    -
    -
    -

    VignetteImage

    +
      + logo-sm-flop.png + logo-sm.png +==> + logo-sm-fx.png +
    -

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

    +
    +

    Accessing Pixels

    -

    The format of the VignetteImage method is:

    +

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

    -
    -Image *VignetteImage(const Image *image,const double radius,
    -  const double sigma,const ssize_t x,const ssize_t y,
    -  ExceptionInfo *exception)
    -
    +

    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,

    -

    A description of each parameter follows:

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

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

    -
    -
    -
    image
    -
    the image.
    +
    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
    +
    -
    -
    radius
    -
    the radius of the pixel neighborhood.
    +

    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.

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

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

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

    Apply an Expression to Select Image Channels

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

    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:

    -
    -
    -

    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:

    - -
    -
    +
    convert alpha.png beta.png -channel red -fx "(u.g+v.g)/2" gamma.png
    +
    -
    -
    -
    image
    -
    the image.
    -
    -
    amplitude, wave_length
    -
    Define the amplitude and wave length of the sine wave.
    +

    Results

    -
    -
    interpolate
    -
    the pixel interpolation method.
    +

    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.

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

    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.

    -
    -
    -

    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:

    -
    -Image *WaveletDenoiseImage(const Image *image,const double threshold,
    -  const double softness,ExceptionInfo *exception)
    -
    +

    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:

    -

    A description of each parameter follows:

    +
    $ 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
    +
    -
    -
    +

    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:

    -
    -
    -
    image
    -
    the image.
    +
    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"
    +
    -
    -
    threshold
    -
    set the threshold for smoothing.
    +

    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.

    -
    -
    softness
    -
    attenuate the smoothing threshold.
    - -
    -
    exception
    -
    return any errors or warnings in this structure.
    - -
    -
    @@ -862,4 +436,4 @@ Image *WaveletDenoiseImage(const Image *image,const double threshold, - \ No newline at end of file + \ No newline at end of file diff --git a/www/gradient.html b/www/gradient.html index 1bdc3d8c9..e4928e9ea 100644 --- a/www/gradient.html +++ b/www/gradient.html @@ -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 dd0156d68..7febfaf63 100644 --- a/www/high-dynamic-range.html +++ b/www/high-dynamic-range.html @@ -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 43d2cd84e..c818aef26 100644 --- a/www/history.html +++ b/www/history.html @@ -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 ad9d82a7f..8bff2e2b7 100644 --- a/www/identify.html +++ b/www/identify.html @@ -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 03ebbba23..7e2c5d70e 100644 --- a/www/import.html +++ b/www/import.html @@ -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 45b6e49d5..575121064 100644 --- a/www/index.html +++ b/www/index.html @@ -84,15 +84,15 @@

    Features and Capabilities • News • Community

    -Use ImageMagick® to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

    +Use ImageMagick® to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

    The functionality of ImageMagick is typically utilized from the command-line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), JuliaIO (Julia), L-Magick (Lisp), Lua (LuaJIT), NMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), magick (R), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.

    ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.

    ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under the Apache 2.0 license.

    -

    The ImageMagick development process ensures a stable API and ABI. 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 ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error, thread data race detection, and continuous fuzzing to help prevent security vulnerabilities.

    -

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

    +

    The current release is ImageMagick 7.0.7-22. 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.

    @@ -277,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 f550a4e09..e1bb14762 100644 --- a/www/install-source.html +++ b/www/install-source.html @@ -101,7 +101,7 @@
    tar xvzf ImageMagick.tar.gz
     
    -

    Next configure and compile ImageMagick:

    +

    Next configure and compile ImageMagick. Note the pkg-config script is required so that ImageMagick can find certain optional delegate libraries on your system. To configure, type:

    $ cd ImageMagick-7.0.7
    $ ./configure
    $ make

    If ImageMagick configured and compiled without complaint, you are ready to install it on your system. Administrator privileges are required to install. To install, type

    @@ -132,12 +132,13 @@

    Building ImageMagick source for Windows requires a modern version of Microsoft Visual Studio IDE. Users have reported success with the Borland C++ compiler as well. If you don't have a compiler you can still install a self-installing binary release.

    -

    Download ImageMagick-windows.zip from www.imagemagick.org or a mirrors and verify its message digest.

    +

    Clone the Github repo:

    -

    You can unpack the distribution with WinZip or type the following from any MS-DOS Command Prompt window:

    +
    git clone git@github.com:ImageMagick/ImageMagick-Windows.git ImageMagick-Windows-7
    -
    unzip ImageMagick-windows.zip
    -
    +

    and run CloneRepositories.cmd. Alternatively, download ImageMagick-windows.zip and verify its message digest. For the latter, you can unpack the distribution with WinZip or type the following from any MS-DOS Command Prompt window:

    + +
    unzip ImageMagick-windows.zip

    Next, launch your Visual Studio IDE and choose Open->Project. Select the configure workspace from the ImageMagick-7.0.7/VisualMagick/configure folder and press Open. Choose Build->Build Solution to compile the program and on completion run the program.

    @@ -181,4 +182,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 6d79b4407..2a0962b16 100644 --- a/www/jp2.html +++ b/www/jp2.html @@ -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 8c83a7627..7d4d22451 100644 --- a/www/license.html +++ b/www/license.html @@ -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 c688a0885..8c5caf04a 100644 --- a/www/links.html +++ b/www/links.html @@ -148,10 +148,9 @@

    ImageMagick Web Site Mirrors

    Image Bank

    @@ -190,4 +189,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick++.html b/www/magick++.html index af1ca72f2..adf274a50 100644 --- a/www/magick++.html +++ b/www/magick++.html @@ -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 0e216e294..6fc473ea2 100644 --- a/www/magick-core.html +++ b/www/magick-core.html @@ -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 60c23d079..45fe9e85c 100644 --- a/www/magick-script.html +++ b/www/magick-script.html @@ -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 ce8768d46..9cc365906 100644 --- a/www/magick-vector-graphics.html +++ b/www/magick-vector-graphics.html @@ -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 9c0f9f6ad..edc20d01d 100644 --- a/www/magick-wand.html +++ b/www/magick-wand.html @@ -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 a17b1d351..d9d7f5930 100644 --- a/www/magick.html +++ b/www/magick.html @@ -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 270988eea..922df535d 100644 --- a/www/miff.html +++ b/www/miff.html @@ -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 ffa042da7..e646824c3 100644 --- a/www/mirror.html +++ b/www/mirror.html @@ -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-18.

    +

    The latest release of ImageMagick is version 7.0.7-22.

    Germany
    http://mirror.checkdomain.de/imagemagick/
    @@ -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 a3e7332ad..79230a4c6 100644 --- a/www/mogrify.html +++ b/www/mogrify.html @@ -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 1d35556df..85631dc9e 100644 --- a/www/montage.html +++ b/www/montage.html @@ -7,12 +7,12 @@ - MagickCore, C API: Create an Image Thumbnail @ ImageMagick + Command-line Tools: Montage @ ImageMagick - + @@ -24,7 +24,7 @@ - + @@ -81,7 +81,564 @@
    -

    Unknown method

    +

    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
    @@ -106,4 +663,4 @@ - \ 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 832228d16..709c0c268 100644 --- a/www/motion-picture.html +++ b/www/motion-picture.html @@ -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 8b6f9aa3b..e827474d5 100644 --- a/www/opencl.html +++ b/www/opencl.html @@ -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 69125655b..777efc858 100644 --- a/www/openmp.html +++ b/www/openmp.html @@ -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 de43dd091..ba8ed7c90 100644 --- a/www/perl-magick.html +++ b/www/perl-magick.html @@ -1864,12 +1864,6 @@ $width = $image->[3]->Get('columns'); IPTC profile - - magick - string - get the image format tag - - mean-error double @@ -2310,11 +2304,6 @@ $image->BlobToImage(@blob);
    @features = $image->Features(1);
     
    -

    Finally, the Transform() method accepts a fully-qualified geometry specification for cropping or resizing one or more images. For example,

    - -
    $p = $images->Transform(crop=>'100x100+10+60');
    -
    -

    The Flatten() method flattens a set of images and returns it. For example,

    $p = $images->Flatten(background=>'none');
    @@ -2355,6 +2344,10 @@ $image->Mogrify('crop', '340x256+0+0');
     
    $image->MogrifyRegion('100x100+40+50', 'modulate', brightness=>50);
     
    +

    PerceptualHash() maps visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking. For each channel and for the sRGB and the HCLp colorspaces, 7 hash values are returned For an sRGB images, for example, expect 42 perceptual hashes.

    + +
    @phash = $image->PerceptualHash();
    +

    Ping() is a convenience method that returns information about an image without having to read the image into memory. It returns the width, height, file size in bytes, and the file format of the image. You can specify more than one filename but only one filehandle:

    ($width, $height, $size, $format) = $image->Ping('logo.png');
    @@ -2404,8 +2397,8 @@ $preview->Display();
     

    Call QueryColor() with no parameters to return a list of known colors names or specify one or more color names to get these attributes: red, green, blue, and opacity value.

    @colors = $image->QueryColor();
    -($red, $green, $blue, $opacity) = $image->QueryColor('cyan');
    -($red, $green, $blue, $opacity) = $image->QueryColor('#716bae');
    +($red, $green, $blue) = $image->QueryColor('cyan');
    +($red, $green, $blue, $alpha) = $image->QueryColor('#716baeff');
     

    QueryColorname() accepts a color value and returns its respective name or hex value;

    @@ -2574,4 +2567,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 b6b81fd05..68be83716 100644 --- a/www/porting.html +++ b/www/porting.html @@ -446,6 +446,8 @@ be applied to expand the one channel into separate RGB (or other) channels.
    This option now requires an argument, the image colorspace (e.g. +combine sRGB).
    -gamma
    Multiple gamma arguments (e.g. -gamma 1,2,3) are no longer supported, instead use -channel (e.g. -channel blue -gamma 2).
    +
    -region
    +
    The draw transformations are relative to the upper left corner of the image, previously in IMv6 they were relative to the region.

    New Options

    @@ -665,4 +667,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 612cd4d45..7be375a72 100644 --- a/www/quantize.html +++ b/www/quantize.html @@ -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/resources.html b/www/resources.html index 84398c796..720de4795 100644 --- a/www/resources.html +++ b/www/resources.html @@ -319,6 +319,10 @@ $MAGICK_FONT_PATH
    MAGICK_HOME Set the path at the top of ImageMagick installation directory. This path is consulted by uninstalled builds of ImageMagick which do not have their location hard-coded or set by an installer. + + MAGICK_LIST_LENGTH_LIMIT + Set the maximum length of an image sequence. + MAGICK_MAP_LIMIT Set maximum amount of memory map in bytes to allocate for the pixel cache. When this limit is exceeded, the image pixels are cached to disk (see MAGICK_DISK_LIMIT). @@ -365,7 +369,7 @@ $MAGICK_FONT_PATH
    -

    Define arguments for the MAGICK_AREA_LIMIT, MAGICK_DISK_LIMIT, MAGICK_MAP_LIMIT, and MAGICK_MEMORY_LIMIT environment variables with SI prefixes (.e.g 100MB). MAGICK_WIDTH_LIMIT and MAGICK_HEIGHT_LIMIT accepts pixel suffixes such as MP for mega-pixels (e.g. 100MP).

    +

    Define arguments for the MAGICK_MEMORY_LIMIT, MAGICK_DISK_LIMIT, and MAGICK_MEMORY_LIMIT environment variables with SI prefixes (.e.g 100MB). MAGICK_WIDTH_LIMIT, MAGICK_HEIGHT_LIMIT and MAGICK_AREA_LIMIT accepts pixel suffixes such as MP for mega-pixels (e.g. 100MP).

    @@ -390,4 +394,4 @@ $MAGICK_FONT_PATH - \ No newline at end of file + \ No newline at end of file diff --git a/www/security-policy.html b/www/security-policy.html index 0b1cd569a..f64a1f13e 100644 --- a/www/security-policy.html +++ b/www/security-policy.html @@ -84,7 +84,9 @@

    Security Policy • Pixel Cache Synchronize Policy • Zero Configuration Security Policy • Other Security Considerations

    -

    ImageMagick includes a security policy configuration file, policy.xml. It is useful for limiting the resources consumed by ImageMagick and can help prevent a denial-of-service or other exploits.

    +

    ImageMagick best practices strongly encourages you to configure a security policy.xml that suits your local environment. The policy is open by default. This affords maximum utility for ImageMagick installations that run in a sandboxed environment, perhaps in a Docker instance, or behind a firewall where security risks are greatly diminished as opposed to a public website.

    + +

    Security is a trade-off between a secure environment and convenience. If you want ImageMagick to be optimally secure, you could, for example, limit ImageMagick to only read or write web safe images (e.g. GIF, JPEG, PNG). However, ImageMagick provides for a more secure option by adjusting the security policy per the requirements of your local environment or organizational policies. The security policy covers areas such as memory, which paths to read or write, how many images are permitted in an image sequence, how long a workflow can run, how much disk the image pixels can consume, a secret passphrase for remote connections, which coders are permitted or denied, and others. These policies should provide robust coverage to not only secure your environment per your requirements but also ensure ImageMagick remains a good citizen (e.g. prevent thrashing with large images) in your local environment.

    As an example, suppose you download an image from the internet and unbeknownst to you its been crafted to generate a 20000 by 20000 pixel image. ImageMagick attempts to allocate enough resources (memory, disk) and your system will likely deny the resource request and exit. However, its also possible that your computer might be temporarily sluggish or unavailable or ImageMagick may abort. To prevent such a scenario, you can set limits in the policy.xml configuration file. You might wonder why ImageMagick does not already include reasonable limits? Simply because what is reasonable in your environment, might not be reasonable to someone else. For example, you may have ImageMagick sandboxed where security is not a concern, whereas another user may use ImageMagick to process images on their publically accessible website. Or ImageMagick runs on a host with 1TB of memory whereas another ImageMagick instance runs on an iPhone. By policy, permitting giga-pixel image processing on the large memory host makes sense, not so much for the resource constrained iPhone. If you utilize ImageMagick from a public website, you may want to increase security by preventing usage of the MVG or HTTPS coders. Only you can decide what are reasonable limits taking in consideration your environment. We provide this policy with reasonable limits and encourage you to modify it to suit your local environment:

    @@ -100,6 +102,7 @@ <policy domain="resource" name="thread" value="2"/> <policy domain="resource" name="throttle" value="0"/> <policy domain="resource" name="time" value="120"/> + <policy domain="resource" name="list-length" value="128"/> <policy domain="system" name="precision" value="6"/> <policy domain="cache" name="shared-secret" stealth="true" value="replace with your secret phrase"/> <policy domain="coder" rights="none" pattern="MVG" /> @@ -108,7 +111,7 @@ <policy domain="path" rights="none" pattern="@*"/> </policymap> -

    Since we process multiple simultaneous sessions, we do not want any one session consuming all the available memory.With this policy, large images are cached to disk. If the image is too large and exceeds the pixel cache disk limit, the program exits. In addition, we place a time limit to prevent any run-away processing tasks. If any one image has a width or height that exceeds 8192 pixels, an exception is thrown and processing stops. As of ImageMagick 7.0.1-8 and 6.9.4-6, you can prevent the use of any delegate or all delegates (set the pattern to "*"). Note, prior to these releases, use a domain of coder to prevent delegate usage (e.g. domain="coder" rights="none" pattern="HTTPS"). We prevent users from executing any image filters. The policy also prevents indirect reads. If you want to, for example, read text from a file (e.g. caption:@myCaption.txt), you'll need to disable the path policy.

    +

    Since we process multiple simultaneous sessions, we do not want any one session consuming all the available memory. With this policy, large images are cached to disk. If the image is too large and exceeds the pixel cache disk limit, the program exits. In addition, we place a time limit to prevent any run-away processing tasks. If any one image has a width or height that exceeds 8192 pixels or if an image sequence exceeds 128 frames, an exception is thrown and processing stops. As of ImageMagick 7.0.1-8 and 6.9.4-6, you can prevent the use of any delegate or all delegates (set the pattern to "*"). Note, prior to these releases, use a domain of coder to prevent delegate usage (e.g. domain="coder" rights="none" pattern="HTTPS"). We prevent users from executing any image filters. The policy also prevents indirect reads. If you want to, for example, read text from a file (e.g. caption:@myCaption.txt), you'll need to disable the path policy.

    Here is what you can expect when you restrict the HTTPS coder, for example:

    @@ -131,6 +134,9 @@ convert: no images defined `wizard.jpg'

    Some image processing algorithms (e.g. wavelet transform) might consume a substantial amount of memory to complete. ImageMagick maintains a separate memory pool for these large resource requests and as of 7.0.6-1 permits you to set a maximum request limit. If the limit is exceeded, the allocation is instead memory-mapped on disk. Here we limit the maximum memory request by policy:

    <policy domain="system" name="max-memory-request" value="256MiB"/> 
    +

    As of ImageMagick version 7.0.4-23, you can limit the maximum number of images in a sequence. For example, to limit an image sequence to 64 frames, use:

    +
    <policy domain="resource" name="list-length" value="64"/>
    +

    You can verify your policy changes are in effect with this command:

    -> identify -list policy
    @@ -241,4 +247,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 5f3fcfa93..0dc9709f3 100644
    --- a/www/sitemap.html
    +++ b/www/sitemap.html
    @@ -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 655c51241..cdabb08ca 100644
    --- a/www/stream.html
    +++ b/www/stream.html
    @@ -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 ac06e3648..5d31747d3 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 4cde0bf94..be1f99973 100644 --- a/www/support.html +++ b/www/support.html @@ -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 5415a625d..a4c35d0cd 100644 --- a/www/webp.html +++ b/www/webp.html @@ -208,4 +208,4 @@ - \ No newline at end of file + \ No newline at end of file -- 2.40.0