commit db33c2fb08fb05cdbb684be345b1b4f8fb763b77 Author: elektroll Date: Sat Jun 23 10:56:10 2018 +0200 add files diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/bin/Magick++-config b/bin/Magick++-config new file mode 100755 index 0000000..ba88fb5 --- /dev/null +++ b/bin/Magick++-config @@ -0,0 +1,65 @@ +#!/bin/sh +# +# Configure options script for re-calling Magick+ compilation options +# required to use the Magick++ library. +# +# + +prefix=/root/package +exec_prefix=${prefix} + +usage='Usage: Magick++-config [--cppflags] [--cxxflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version] + + For example, "magick.cpp" may be compiled to produce "magick" as follows: + + "c++ -o magick magick.cpp `Magick++-config --cppflags --cxxflags --ldflags --libs`"' + +if test $# -eq 0; then + echo "${usage}" 1>&2 + exit 1 +fi + +while test $# -gt 0; do + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + case $1 in + --prefix=*) + prefix=$optarg + ;; + --prefix) + echo $prefix + ;; + --exec-prefix=*) + exec_prefix=$optarg + ;; + --exec-prefix) + echo $exec_prefix + ;; + --version) + echo '7.0.7 Q16 HDRI' + ;; + --cflags) + /usr/bin/pkg-config --cflags Magick++ + ;; + --cxxflags) + /usr/bin/pkg-config --cflags Magick++ + ;; + --cppflags) + /usr/bin/pkg-config --cflags Magick++ + ;; + --ldflags) + /usr/bin/pkg-config --libs Magick++ + ;; + --libs) + /usr/bin/pkg-config --libs Magick++ + ;; + *) + echo "${usage}" 1>&2 + exit 1 + ;; + esac + shift +done + diff --git a/bin/MagickCore-config b/bin/MagickCore-config new file mode 100755 index 0000000..8ecad43 --- /dev/null +++ b/bin/MagickCore-config @@ -0,0 +1,67 @@ +#!/bin/sh +# +# Configure options script for re-calling MagickCore compilation options +# required to use the MagickCore library. +# + +prefix=/root/package +exec_prefix=${prefix} + +usage="\ +Usage: MagickCore-config [--cflags] [--cppflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]" + +if test $# -eq 0; then + echo "${usage}" 1>&2 + echo "Example: gcc \`MagickCore-config --cflags --cppflags\` -o core core.c \`Magick-config --ldflags --libs\`" 1>&2 + exit 1 +fi + +while test $# -gt 0; do + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + case $1 in + --prefix=*) + prefix=$optarg + ;; + --prefix) + echo $prefix + ;; + --exec-prefix=*) + exec_prefix=$optarg + ;; + --exec-prefix) + echo $exec_prefix + ;; + --version) + echo '7.0.7 Q16 HDRI' + ;; + --cflags) + /usr/bin/pkg-config --cflags MagickCore + ;; + --cxxflags) + /usr/bin/pkg-config --cflags MagickCore + ;; + --cppflags) + /usr/bin/pkg-config --cflags MagickCore + ;; + --ldflags) + /usr/bin/pkg-config --libs MagickCore + ;; + --libs) + /usr/bin/pkg-config --libs MagickCore + ;; + --coder-path) + echo "/root/package/lib/ImageMagick-7.0.7/modules-Q16HDRI/coders" + ;; + --filter-path) + echo "/root/package/lib/ImageMagick-7.0.7/modules-Q16HDRI/filters" + ;; + *) + echo "${usage}" 1>&2 + exit 1 + ;; + esac + shift +done diff --git a/bin/MagickWand-config b/bin/MagickWand-config new file mode 100755 index 0000000..e783233 --- /dev/null +++ b/bin/MagickWand-config @@ -0,0 +1,62 @@ +#!/bin/sh +# +# Configure options script for re-calling MagickWand compilation options +# required to use the MagickWand library. +# + +prefix=/root/package +exec_prefix=${prefix} + +usage="\ +Usage: MagickWand-config [--cflags] [--cppflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]" + +if test $# -eq 0; then + echo "${usage}" 1>&2 + echo "Example: gcc \`MagickWand-config --cflags --cppflags\` -o wand wand.c \`MagickWand-config --ldflags --libs\`" 1>&2 + exit 1 +fi + +while test $# -gt 0; do + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + case $1 in + --prefix=*) + prefix=$optarg + ;; + --prefix) + echo $prefix + ;; + --exec-prefix=*) + exec_prefix=$optarg + ;; + --exec-prefix) + echo $exec_prefix + ;; + --version) + echo '7.0.7 Q16 HDRI' + ;; + --cflags) + /usr/bin/pkg-config --cflags MagickWand + ;; + --cxxflags) + /usr/bin/pkg-config --cflags MagickWand + ;; + --cppflags) + /usr/bin/pkg-config --cflags MagickWand + ;; + --ldflags) + /usr/bin/pkg-config --libs MagickWand + ;; + --libs) + /usr/bin/pkg-config --libs MagickWand + ;; + *) + echo "${usage}" 1>&2 + exit 1 + ;; + esac + shift +done + diff --git a/bin/animate b/bin/animate new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/animate @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/compare b/bin/compare new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/compare @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/composite b/bin/composite new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/composite @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/conjure b/bin/conjure new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/conjure @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/convert b/bin/convert new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/convert @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/display b/bin/display new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/display @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/identify b/bin/identify new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/identify @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/import b/bin/import new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/import @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/magick b/bin/magick new file mode 100755 index 0000000..933fe39 Binary files /dev/null and b/bin/magick differ diff --git a/bin/magick-script b/bin/magick-script new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/magick-script @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/mogrify b/bin/mogrify new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/mogrify @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/montage b/bin/montage new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/montage @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/bin/stream b/bin/stream new file mode 120000 index 0000000..2e00264 --- /dev/null +++ b/bin/stream @@ -0,0 +1 @@ +magick \ No newline at end of file diff --git a/etc/ImageMagick-7/coder.xml b/etc/ImageMagick-7/coder.xml new file mode 100644 index 0000000..4d2394f --- /dev/null +++ b/etc/ImageMagick-7/coder.xml @@ -0,0 +1,23 @@ + + + + + +]> + + + + + + diff --git a/etc/ImageMagick-7/colors.xml b/etc/ImageMagick-7/colors.xml new file mode 100644 index 0000000..55bfb5d --- /dev/null +++ b/etc/ImageMagick-7/colors.xml @@ -0,0 +1,28 @@ + + + + + + +]> + + + + + + + + + + + + diff --git a/etc/ImageMagick-7/delegates.xml b/etc/ImageMagick-7/delegates.xml new file mode 100644 index 0000000..d9a62e9 --- /dev/null +++ b/etc/ImageMagick-7/delegates.xml @@ -0,0 +1,122 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/ImageMagick-7/log.xml b/etc/ImageMagick-7/log.xml new file mode 100644 index 0000000..8a29099 --- /dev/null +++ b/etc/ImageMagick-7/log.xml @@ -0,0 +1,80 @@ + + + + + + + + + +]> + + + + + + + + + diff --git a/etc/ImageMagick-7/magic.xml b/etc/ImageMagick-7/magic.xml new file mode 100644 index 0000000..7f17731 --- /dev/null +++ b/etc/ImageMagick-7/magic.xml @@ -0,0 +1,23 @@ + + + + + + +]> + + + + + + + diff --git a/etc/ImageMagick-7/mime.xml b/etc/ImageMagick-7/mime.xml new file mode 100644 index 0000000..9530fc8 --- /dev/null +++ b/etc/ImageMagick-7/mime.xml @@ -0,0 +1,1145 @@ + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/ImageMagick-7/policy.xml b/etc/ImageMagick-7/policy.xml new file mode 100644 index 0000000..0d85426 --- /dev/null +++ b/etc/ImageMagick-7/policy.xml @@ -0,0 +1,77 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/ImageMagick-7/quantization-table.xml b/etc/ImageMagick-7/quantization-table.xml new file mode 100644 index 0000000..fb71874 --- /dev/null +++ b/etc/ImageMagick-7/quantization-table.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + +]> + + + + Luma Quantization Table + + 16, 16, 16, 18, 25, 37, 56, 85, + 16, 17, 20, 27, 34, 40, 53, 75, + 16, 20, 24, 31, 43, 62, 91, 135, + 18, 27, 31, 40, 53, 74, 106, 156, + 25, 34, 43, 53, 69, 94, 131, 189, + 37, 40, 62, 74, 94, 124, 169, 238, + 56, 53, 91, 106, 131, 169, 226, 311, + 85, 75, 135, 156, 189, 238, 311, 418 + +
+ +
+ diff --git a/etc/ImageMagick-7/thresholds.xml b/etc/ImageMagick-7/thresholds.xml new file mode 100644 index 0000000..02b96a8 --- /dev/null +++ b/etc/ImageMagick-7/thresholds.xml @@ -0,0 +1,336 @@ + + + + + + + + + +]> + + + + + + Threshold 1x1 (non-dither) + + 1 + + + + + Checkerboard 2x1 (dither) + + 1 2 + 2 1 + + + + + + Ordered 2x2 (dispersed) + + 1 3 + 4 2 + + + + + Ordered 3x3 (dispersed) + + 3 7 4 + 6 1 9 + 2 8 5 + + + + + + Ordered 4x4 (dispersed) + + 1 9 3 11 + 13 5 15 7 + 4 12 2 10 + 16 8 14 6 + + + + + + Ordered 8x8 (dispersed) + + 1 49 13 61 4 52 16 64 + 33 17 45 29 36 20 48 32 + 9 57 5 53 12 60 8 56 + 41 25 37 21 44 28 40 24 + 3 51 15 63 2 50 14 62 + 35 19 47 31 34 18 46 30 + 11 59 7 55 10 58 6 54 + 43 27 39 23 42 26 38 22 + + + + + + Halftone 4x4 (angled) + + 4 2 7 5 + 3 1 8 6 + 7 5 4 2 + 8 6 3 1 + + + + + Halftone 6x6 (angled) + + 14 13 10 8 2 3 + 16 18 12 7 1 4 + 15 17 11 9 6 5 + 8 2 3 14 13 10 + 7 1 4 16 18 12 + 9 6 5 15 17 11 + + + + + Halftone 8x8 (angled) + + 13 7 8 14 17 21 22 18 + 6 1 3 9 28 31 29 23 + 5 2 4 10 27 32 30 24 + 16 12 11 15 20 26 25 19 + 17 21 22 18 13 7 8 14 + 28 31 29 23 6 1 3 9 + 27 32 30 24 5 2 4 10 + 20 26 25 19 16 12 11 15 + + + + + + Halftone 4x4 (orthogonal) + + 7 13 11 4 + 12 16 14 8 + 10 15 6 2 + 5 9 3 1 + + + + + Halftone 6x6 (orthogonal) + + 7 17 27 14 9 4 + 21 29 33 31 18 11 + 24 32 36 34 25 22 + 19 30 35 28 20 10 + 8 15 26 16 6 2 + 5 13 23 12 3 1 + + + + + Halftone 8x8 (orthogonal) + + 7 21 33 43 36 19 9 4 + 16 27 51 55 49 29 14 11 + 31 47 57 61 59 45 35 23 + 41 53 60 64 62 52 40 38 + 37 44 58 63 56 46 30 22 + 15 28 48 54 50 26 17 10 + 8 18 34 42 32 20 6 2 + 5 13 25 39 24 12 3 1 + + + + + + Halftone 16x16 (orthogonal) + + 4 12 24 44 72 100 136 152 150 134 98 70 42 23 11 3 + 7 16 32 52 76 104 144 160 158 142 102 74 50 31 15 6 + 19 27 40 60 92 132 168 180 178 166 130 90 58 39 26 18 + 36 48 56 80 124 176 188 204 203 187 175 122 79 55 47 35 + 64 68 84 116 164 200 212 224 223 211 199 162 114 83 67 63 + 88 96 112 156 192 216 232 240 239 231 214 190 154 111 95 87 + 108 120 148 184 208 228 244 252 251 243 226 206 182 147 119 107 + 128 140 172 196 219 235 247 256 255 246 234 218 194 171 139 127 + 126 138 170 195 220 236 248 253 254 245 233 217 193 169 137 125 + 106 118 146 183 207 227 242 249 250 241 225 205 181 145 117 105 + 86 94 110 155 191 215 229 238 237 230 213 189 153 109 93 85 + 62 66 82 115 163 198 210 221 222 209 197 161 113 81 65 61 + 34 46 54 78 123 174 186 202 201 185 173 121 77 53 45 33 + 20 28 37 59 91 131 167 179 177 165 129 89 57 38 25 17 + 8 13 29 51 75 103 143 159 157 141 101 73 49 30 14 5 + 1 9 21 43 71 99 135 151 149 133 97 69 41 22 10 2 + + + + + + + Circles 5x5 (black) + + 1 21 16 15 4 + 5 17 20 19 14 + 6 21 25 24 12 + 7 18 22 23 11 + 2 8 9 10 3 + + + + + + Circles 5x5 (white) + + 25 21 10 11 22 + 20 9 6 7 12 + 19 5 1 2 13 + 18 8 4 3 14 + 24 17 16 15 23 + + + + + Circles 6x6 (black) + + 1 5 14 13 12 4 + 6 22 28 27 21 11 + 15 29 35 34 26 20 + 16 30 36 33 25 19 + 7 23 31 32 24 10 + 2 8 17 18 9 3 + + + + + Circles 6x6 (white) + + 36 32 23 24 25 33 + 31 15 9 10 16 26 + 22 8 2 3 11 17 + 21 7 1 4 12 18 + 30 14 6 5 13 27 + 35 29 20 19 28 34 + + + + + Circles 7x7 (black) + + 3 9 18 28 17 8 2 + 10 24 33 39 32 23 7 + 19 34 44 48 43 31 16 + 25 40 45 49 47 38 27 + 20 35 41 46 42 29 15 + 11 21 36 37 28 22 6 + 4 12 13 26 14 5 1 + + + + + + Circles 7x7 (white) + + 47 41 32 22 33 42 48 + 40 26 17 11 18 27 43 + 31 16 6 2 7 19 34 + 25 10 5 1 3 12 23 + 30 15 9 4 8 20 35 + 39 29 14 13 21 28 44 + 46 38 37 24 36 45 49 + + + + + + + diff --git a/etc/ImageMagick-7/type-apple.xml b/etc/ImageMagick-7/type-apple.xml new file mode 100644 index 0000000..57fe9d1 --- /dev/null +++ b/etc/ImageMagick-7/type-apple.xml @@ -0,0 +1,1367 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/ImageMagick-7/type-dejavu.xml b/etc/ImageMagick-7/type-dejavu.xml new file mode 100644 index 0000000..29b3c20 --- /dev/null +++ b/etc/ImageMagick-7/type-dejavu.xml @@ -0,0 +1,58 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/ImageMagick-7/type-ghostscript.xml b/etc/ImageMagick-7/type-ghostscript.xml new file mode 100644 index 0000000..6a8b715 --- /dev/null +++ b/etc/ImageMagick-7/type-ghostscript.xml @@ -0,0 +1,50 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/ImageMagick-7/type-urw-base35.xml b/etc/ImageMagick-7/type-urw-base35.xml new file mode 100644 index 0000000..2f70e72 --- /dev/null +++ b/etc/ImageMagick-7/type-urw-base35.xml @@ -0,0 +1,50 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/ImageMagick-7/type-windows.xml b/etc/ImageMagick-7/type-windows.xml new file mode 100644 index 0000000..621eec4 --- /dev/null +++ b/etc/ImageMagick-7/type-windows.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/ImageMagick-7/type.xml b/etc/ImageMagick-7/type.xml new file mode 100644 index 0000000..405d186 --- /dev/null +++ b/etc/ImageMagick-7/type.xml @@ -0,0 +1,17 @@ + + + + + +]> + + + + diff --git a/include/ImageMagick-7/Magick++.h b/include/ImageMagick-7/Magick++.h new file mode 100644 index 0000000..40f24db --- /dev/null +++ b/include/ImageMagick-7/Magick++.h @@ -0,0 +1,23 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000 +// Copyright Dirk Lemstra 2014 +// +// Simplified includes for Magick++. +// Inclusion of this header is sufficient to use all Magick++ APIs. +// +#ifndef MagickPlusPlus_Header +#include +#include +#include +#include +#include +#include + +// Don't leak our definition of the 'restrict' keyword. 'restrict' is a valid +// identifier in C++, and leaking it could cause extraneous build failures. +#ifdef restrict +#undef restrict +#endif +#define MagickPlusPlus_Header +#endif // MagickPlusPlus_Header diff --git a/include/ImageMagick-7/Magick++/Blob.h b/include/ImageMagick-7/Magick++/Blob.h new file mode 100644 index 0000000..87abd6b --- /dev/null +++ b/include/ImageMagick-7/Magick++/Blob.h @@ -0,0 +1,80 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002 +// Copyright Dirk Lemstra 2015 +// +// Reference counted container class for Binary Large Objects (BLOBs) +// + +#if !defined(Magick_BlobRef_header) +#define Magick_BlobRef_header + +#include "Magick++/Include.h" +#include + +namespace Magick +{ + // Forward decl + class BlobRef; + + class MagickPPExport Blob + { + public: + + enum Allocator + { + MallocAllocator, + NewAllocator + }; + + // Default constructor + Blob(void); + + // Construct object with data, making a copy of the supplied data. + Blob(const void* data_,const size_t length_); + + // Copy constructor (reference counted) + Blob(const Blob& blob_); + + // Destructor (reference counted) + virtual ~Blob(); + + // Assignment operator (reference counted) + Blob& operator=(const Blob& blob_); + + // Update object contents from Base64-encoded string representation. + void base64(const std::string base64_); + // Return Base64-encoded string representation. + std::string base64(void) const; + + // Obtain pointer to data. The user should never try to modify or + // free this data since the Blob class manages its own data. The + // user must be finished with the data before allowing the Blob to + // be destroyed since the pointer is invalid once the Blob is + // destroyed. + const void* data(void) const; + + // Obtain data length. + size_t length(void) const; + + // Update object contents, making a copy of the supplied data. + // Any existing data in the object is deallocated. + void update(const void* data_,const size_t length_); + + // Update object contents, using supplied pointer directly (no + // copy). Any existing data in the object is deallocated. The user + // must ensure that the pointer supplied is not deleted or + // otherwise modified after it has been supplied to this method. + // Specify allocator_ as "MallocAllocator" if memory is allocated + // via the C language malloc() function, or "NewAllocator" if + // memory is allocated via C++ 'new'. + void updateNoCopy(void* data_,const size_t length_, + const Allocator allocator_=NewAllocator); + + private: + BlobRef *_blobRef; + }; + +} // namespace Magick + +#endif // Magick_BlobRef_header diff --git a/include/ImageMagick-7/Magick++/CoderInfo.h b/include/ImageMagick-7/Magick++/CoderInfo.h new file mode 100644 index 0000000..f860020 --- /dev/null +++ b/include/ImageMagick-7/Magick++/CoderInfo.h @@ -0,0 +1,88 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 2001, 2002 +// Copyright Dirk Lemstra 2013-2015 +// +// CoderInfo Definition +// +// Container for image format support information. +// + +#if !defined (Magick_CoderInfo_header) +#define Magick_CoderInfo_header 1 + +#include "Magick++/Include.h" +#include + +namespace Magick +{ + class MagickPPExport CoderInfo + { + public: + + enum MatchType { + AnyMatch, // match any coder + TrueMatch, // match coder if true + FalseMatch // match coder if false + }; + + // Default constructor + CoderInfo(void); + + // Copy constructor + CoderInfo(const CoderInfo &coder_); + + // Construct with coder name + CoderInfo(const std::string &name_); + + // Destructor + ~CoderInfo(void); + + // Assignment operator + CoderInfo& operator=(const CoderInfo &coder_); + + // Format can read multi-threaded + bool canReadMultithreaded(void) const; + + // Format can write multi-threaded + bool canWriteMultithreaded(void) const; + + // Format description + std::string description(void) const; + + // Format supports multiple frames + bool isMultiFrame(void) const; + + // Format is readable + bool isReadable(void) const; + + // Format is writeable + bool isWritable(void) const; + + // Format mime type + std::string mimeType(void) const; + + // Name of the module + std::string module(void) const; + + // Format name + std::string name(void) const; + + // Unregisters this coder + bool unregister(void) const; + + private: + bool _decoderThreadSupport; + std::string _description; + bool _encoderThreadSupport; + bool _isMultiFrame; + bool _isReadable; + bool _isWritable; + std::string _mimeType; + std::string _module; + std::string _name; + }; + +} // namespace Magick + +#endif // Magick_CoderInfo_header diff --git a/include/ImageMagick-7/Magick++/Color.h b/include/ImageMagick-7/Magick++/Color.h new file mode 100644 index 0000000..d9c73be --- /dev/null +++ b/include/ImageMagick-7/Magick++/Color.h @@ -0,0 +1,444 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003, 2008 +// Copyright Dirk Lemstra 2013-2018 +// +// Color Implementation +// +#if !defined (Magick_Color_header) +#define Magick_Color_header + +#include "Magick++/Include.h" +#include + +namespace Magick +{ + class MagickPPExport Color; + + // Compare two Color objects regardless of LHS/RHS + MagickPPExport int operator == + (const Magick::Color& left_,const Magick::Color& right_); + MagickPPExport int operator != + (const Magick::Color& left_,const Magick::Color& right_); + MagickPPExport int operator > + (const Magick::Color& left_,const Magick::Color& right_); + MagickPPExport int operator < + (const Magick::Color& left_,const Magick::Color& right_); + MagickPPExport int operator >= + (const Magick::Color& left_,const Magick::Color& right_); + MagickPPExport int operator <= + (const Magick::Color& left_,const Magick::Color& right_); + + // Base color class stores RGBA components scaled to fit Quantum + // All double arguments have a valid range of 0.0 - 1.0. + class MagickPPExport Color + { + public: + + // PixelType specifies the interpretation of PixelInfo members + // CYMKPixel: + // Cyan = red + // Magenta = green + // Yellow = blue + // Black(K) = black + // CYMKPixel: + // Cyan = red + // Magenta = green + // Yellow = blue + // Black(K) = black + // Alpha = alpha + // RGBPixel: + // Red = red; + // Green = green; + // Blue = blue; + // RGBAPixel: + // Red = red; + // Green = green; + // Blue = blue; + // Alpha = alpha; + enum PixelType + { + CMYKPixel, + CMYKAPixel, + RGBPixel, + RGBAPixel + }; + + // Default constructor + Color(void); + + // Construct Color using the specified RGB values + Color(const Magick::Quantum red_,const Magick::Quantum green_, + const Magick::Quantum blue_); + + // Construct Color using the specified RGBA values + Color(const Magick::Quantum red_,const Magick::Quantum green_, + const Magick::Quantum blue_,const Magick::Quantum alpha_); + + // Construct Color using the specified CMYKA values + Color(const Magick::Quantum cyan_,const Magick::Quantum magenta_, + const Magick::Quantum yellow_,const Magick::Quantum black_, + const Magick::Quantum alpha_); + + // Construct Color using the specified color string + Color(const char *color_); + + // Copy constructor + Color(const Color &color_); + + // Construct color via ImageMagick PixelInfo + Color(const PixelInfo &color_); + + // Constructor Color using the specified color string + Color(const std::string &color_); + + // Destructor + virtual ~Color(void); + + // Assignment operator + Color& operator=(const Color &color_); + + // Set color via X11 color specification string + const Color& operator=(const char *color); + + // Set color via ImageMagick PixelInfo + const Color& operator=(const PixelInfo &color_); + + // Set color via color specification string + const Color& operator=(const std::string &color); + + // Return ImageMagick PixelInfo + operator PixelInfo() const; + + // Return color specification string + operator std::string() const; + + // Returns true if the distance between the other color is less than the + // specified distance in a linear three(or four) % dimensional color space. + bool isFuzzyEquivalent(const Color &color_,const double fuzz_) const; + + // Does object contain valid color? + void isValid(const bool valid_); + bool isValid(void) const; + + // Returns pixel type of the color + Magick::Color::PixelType pixelType(void) const; + + // Alpha level (range OpaqueAlpha=0 to TransparentAlpha=QuantumRange) + void quantumAlpha(const Quantum alpha_); + Quantum quantumAlpha(void) const; + + // Black color (range 0 to QuantumRange) + void quantumBlack(const Quantum black_); + Quantum quantumBlack(void) const; + + // Blue/Yellow color (range 0 to QuantumRange) + void quantumBlue(const Quantum blue_); + Quantum quantumBlue(void) const; + + // Green/Magenta color (range 0 to QuantumRange) + void quantumGreen(const Quantum green_); + Quantum quantumGreen(void) const; + + // Red/Cyan color (range 0 to QuantumRange) + void quantumRed(const Quantum red_); + Quantum quantumRed(void) const; + + protected: + + // Constructor to construct with PixelInfo* + // Used to point Color at a pixel in an image + Color(PixelInfo *rep_,PixelType pixelType_); + + // Constructor to construct with PixelType + Color(PixelType pixelType_); + + // Set pixel + // Used to point Color at a pixel in an image + void pixel(PixelInfo *rep_,PixelType pixelType_); + + // Scale a value expressed as a double (0-1) to Quantum range (0-QuantumRange) + static Quantum scaleDoubleToQuantum(const double double_); + + // Scale a value expressed as a Quantum (0-QuantumRange) to double range (0-1) + static double scaleQuantumToDouble(const Quantum quantum_); + + // PixelInfo represents a color pixel: + // red = red (range 0 to QuantumRange) + // green = green (range 0 to QuantumRange) + // blue = blue (range 0 to QuantumRange) + // alpha = alpha (range OpaqueAlpha=0 to TransparentAlpha=QuantumRange) + // index = PseudoColor colormap index + PixelInfo *_pixel; + + private: + + bool _isValid; // Set true if pixel is "valid" + bool _pixelOwn; // Set true if we allocated pixel + PixelType _pixelType; // Color type supported by _pixel + + // Common initializer for PixelInfo representation + void initPixel(); + + void setAlpha(const Magick::Quantum alpha_); + + // Sets the pixel type using the specified PixelInfo. + void setPixelType(const PixelInfo &color_); + }; + + class MagickPPExport ColorCMYK: public Color + { + public: + + // Default constructor + ColorCMYK(void); + + // Copy constructor + ColorCMYK(const Color &color_); + + // Construct ColorCMYK using the specified CMYK values + ColorCMYK(const double cyan_,const double magenta_,const double yellow_, + const double black_); + + // Construct ColorCMYK using the specified CMYKA values + ColorCMYK(const double cyan_,const double magenta_,const double yellow_, + const double black_,const double alpha_); + + // Destructor + ~ColorCMYK(void); + + // Assignment operator from base class + ColorCMYK& operator=(const Color& color_); + + // Alpha level (range 0 to 1.0) + void alpha(const double alpha_); + double alpha(void) const; + + // Black/Key color (range 0 to 1.0) + void black(const double black_); + double black(void) const; + + // Black/Key color (range 0.0 to 1.0) + void cyan(const double cyan_); + double cyan(void) const; + + // Magenta color (range 0 to 1.0) + void magenta(const double magenta_); + double magenta(void) const; + + // Yellow color (range 0 to 1.0) + void yellow(const double yellow_); + double yellow(void) const; + + protected: + + // Constructor to construct with PixelInfo* + ColorCMYK(PixelInfo *rep_,PixelType pixelType_); + }; + + // + // Grayscale RGB color + // + // Grayscale is simply RGB with equal parts of red, green, and blue + // All double arguments have a valid range of 0.0 - 1.0. + class MagickPPExport ColorGray: public Color + { + public: + + // Default constructor + ColorGray(void); + + // Copy constructor + ColorGray(const Color &color_); + + // Construct ColorGray using the specified shade + ColorGray(const double shade_); + + // Destructor + ~ColorGray(); + + // Shade + void shade(const double shade_); + double shade(void) const; + + // Assignment operator from base class + ColorGray& operator=(const Color& color_); + + protected: + + // Constructor to construct with PixelInfo* + ColorGray(PixelInfo *rep_,PixelType pixelType_); + }; + + // + // HSL Colorspace colors + // + // All double arguments have a valid range of 0.0 - 1.0. + class MagickPPExport ColorHSL: public Color + { + public: + + // Default constructor + ColorHSL(void); + + // Copy constructor + ColorHSL(const Color &color_); + + // Construct ColorHSL using the specified HSL values + ColorHSL(const double hue_,const double saturation_, + const double lightness_); + + // Destructor + ~ColorHSL(); + + // Assignment operator from base class + ColorHSL& operator=(const Color& color_); + + // Hue color + void hue(const double hue_); + double hue(void) const; + + // Lightness color + void lightness(const double lightness_); + double lightness(void) const; + + // Saturation color + void saturation(const double saturation_); + double saturation(void) const; + + protected: + + // Constructor to construct with PixelInfo* + ColorHSL(PixelInfo *rep_,PixelType pixelType_); + }; + + // + // Monochrome color + // + // Color arguments are constrained to 'false' (black pixel) and 'true' + // (white pixel) + class MagickPPExport ColorMono: public Color + { + public: + + // Default constructor + ColorMono(void); + + // Construct ColorMono (false=black, true=white) + ColorMono(const bool mono_); + + // Copy constructor + ColorMono(const Color &color_); + + // Destructor + ~ColorMono(); + + // Assignment operator from base class + ColorMono& operator=(const Color& color_); + + // Mono color + void mono(const bool mono_); + bool mono(void) const; + + protected: + + // Constructor to construct with PixelInfo* + ColorMono(PixelInfo* rep_,PixelType pixelType_); + }; + + class MagickPPExport ColorRGB: public Color + { + public: + + // Default constructor + ColorRGB(void); + + // Copy constructor + ColorRGB(const Color &color_); + + // Construct ColorRGB using the specified RGB values + ColorRGB(const double red_,const double green_,const double blue_); + + // Construct ColorRGB using the specified RGBA values + ColorRGB(const double red_,const double green_,const double blue_, + const double alpha_); + + // Destructor + ~ColorRGB(void); + + // Assignment operator from base class + ColorRGB& operator=(const Color& color_); + + // Alpha level (range 0 to 1.0) + void alpha(const double alpha_); + double alpha(void) const; + + // Blue color (range 0.0 to 1.0) + void blue(const double blue_); + double blue(void) const; + + // Green color (range 0 to 1.0) + void green(const double green_); + double green(void) const; + + // Red color (range 0 to 1.0) + void red(const double red_); + double red(void) const; + + protected: + + // Constructor to construct with PixelInfo* + ColorRGB(PixelInfo *rep_,PixelType pixelType_); + }; + + // + // YUV Colorspace color + // + // Argument ranges: + // Y: 0.0 through 1.0 + // U: -0.5 through 0.5 + // V: -0.5 through 0.5 + class MagickPPExport ColorYUV: public Color + { + public: + + // Default constructor + ColorYUV(void); + + // Copy constructor + ColorYUV(const Color &color_); + + // Construct ColorYUV using the specified YUV values + ColorYUV(const double y_,const double u_,const double v_); + + // Destructor + ~ColorYUV(void); + + // Assignment operator from base class + ColorYUV& operator=(const Color& color_); + + // Color U (0.0 through 1.0) + void u(const double u_); + double u(void) const; + + // Color V (-0.5 through 0.5) + void v(const double v_); + double v(void) const; + + // Color Y (-0.5 through 0.5) + void y(const double y_); + double y(void) const; + + protected: + + // Constructor to construct with PixelInfo* + ColorYUV(PixelInfo *rep_,PixelType pixelType_); + + private: + + void convert(const double y_,const double u_,const double v_); + + }; +} // namespace Magick + +#endif // Magick_Color_header diff --git a/include/ImageMagick-7/Magick++/Drawable.h b/include/ImageMagick-7/Magick++/Drawable.h new file mode 100644 index 0000000..34e80d6 --- /dev/null +++ b/include/ImageMagick-7/Magick++/Drawable.h @@ -0,0 +1,3138 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002 +// Copyright Dirk Lemstra 2014-2017 +// +// Definition of Drawable (Graphic objects) +// +// The technique used for instantiating classes which derive from STL +// templates is described in Microsoft MSDN Article ID: Q168958 +// "HOWTO: Exporting STL Components Inside & Outside of a Class". +// "http://support.microsoft.com/kb/168958" +// +// Note that version 3.0 of this article says that that only STL +// container template which supports DLL export is and we are +// not using as part of the Drawable implementation. +// + +#if !defined(Magick_Drawable_header) +#define Magick_Drawable_header + +#include "Magick++/Include.h" + +#include +#include +#include +#include +#include "Magick++/Color.h" +#include "Magick++/Geometry.h" + +#if defined(MagickDLLExplicitTemplate) +# if defined(MAGICK_PLUSPLUS_IMPLEMENTATION) +# define MagickDrawableExtern +# else +# pragma warning( disable: 4231 ) // Disable warning regarding using extern +# define MagickDrawableExtern extern +# endif // MAGICK_PLUSPLUS_IMPLEMENTATION +#else +# define MagickDrawableExtern +#endif // MagickDLLExplicitTemplate + +namespace Magick +{ + // + // Representation of an x,y coordinate + // + class MagickPPExport Coordinate + { + public: + + Coordinate(void) + : _x(0), + _y(0) {} + + Coordinate(double x_,double y_) + : _x(x_), + _y(y_) {} + + virtual ~Coordinate() {} + + void x(double x_) { _x=x_; } + double x(void) const { return _x; } + + void y(double y_) { _y=y_; } + double y(void) const { return _y; } + + private: + double _x; + double _y; + }; + + typedef std::vector CoordinateList; + +#if defined(MagickDLLExplicitTemplate) + + MagickDrawableExtern template class MagickPPExport + std::allocator; + +#endif // MagickDLLExplicitTemplate + + // Compare two Coordinate objects regardless of LHS/RHS + extern MagickPPExport int operator == + (const Coordinate& left_,const Coordinate& right_); + extern MagickPPExport int operator != + (const Coordinate& left_, const Coordinate& right_); + extern MagickPPExport int operator > + (const Coordinate& left_, const Coordinate& right_); + extern MagickPPExport int operator < + (const Coordinate& left_, const Coordinate& right_); + extern MagickPPExport int operator >= + (const Coordinate& left_, const Coordinate& right_); + extern MagickPPExport int operator <= + (const Coordinate& left_, const Coordinate& right_); + + // + // Base class for all drawable objects + // + class MagickPPExport DrawableBase + { + public: + + // Default constructor + DrawableBase(void); + + // Destructor + virtual ~DrawableBase(void); + + // Operator to invoke equivalent draw API call + virtual void operator()(MagickCore::DrawingWand *) const; + + // Return polymorphic copy of object + virtual DrawableBase* copy() const; + }; + + // + // Representation of a drawable surrogate object to manage drawable objects + // + #undef Drawable // Conflict with + class MagickPPExport Drawable + { + public: + + // Default constructor + Drawable(void); + + // Construct from DrawableBase + Drawable(const DrawableBase& original_); + + // Destructor + ~Drawable(void); + + // Copy constructor + Drawable(const Drawable& original_); + + // Assignment operator + Drawable& operator=(const Drawable& original_); + + // Operator to invoke contained object + void operator()(MagickCore::DrawingWand *) const; + + private: + DrawableBase* dp; + }; + + typedef std::vector DrawableList; + +#if defined(MagickDLLExplicitTemplate) + + MagickDrawableExtern template class MagickPPExport + std::allocator; + +#endif // MagickDLLExplicitTemplate + +// +// Base class for all drawable path elements for use with +// DrawablePath +// +class MagickPPExport VPathBase +{ +public: + // Constructor + VPathBase ( void ) + { } + + // Destructor + virtual ~VPathBase ( void ); + + // Assignment operator + // const VPathBase& operator= (const VPathBase& original_ ); + + // Operator to invoke equivalent draw API call + virtual void operator()( MagickCore::DrawingWand *context_ ) const = 0; + + // Return polymorphic copy of object + virtual VPathBase* copy() const = 0; +}; + +// +// Representation of a drawable path element surrogate object to +// manage drawable path elements so they may be passed as a list to +// DrawablePath. +// +class MagickPPExport VPath +{ +public: + // Constructor + VPath ( void ); + + // Construct from VPathBase + VPath ( const VPathBase& original_ ); + + // Destructor + virtual ~VPath ( void ); + + // Copy constructor + VPath ( const VPath& original_ ); + + // Assignment operator + VPath& operator= (const VPath& original_ ); + + // Operator to invoke contained object + void operator()( MagickCore::DrawingWand *context_ ) const; + +private: + VPathBase* dp; +}; + +typedef std::vector VPathList; + +#if defined(MagickDLLExplicitTemplate) + +MagickDrawableExtern template class MagickPPExport +std::allocator; + +// MagickDrawableExtern template class MagickPPExport +// std::vector >; + +#endif // MagickDLLExplicitTemplate + +// +// Drawable Objects +// + +// Affine (scaling, rotation, and translation) +class MagickPPExport DrawableAffine : public DrawableBase +{ +public: + DrawableAffine ( double sx_, double sy_, + double rx_, double ry_, + double tx_, double ty_ ); + + DrawableAffine ( void ); + + /*virtual*/ ~DrawableAffine( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ + DrawableBase* copy() const; + + void sx( const double sx_ ) + { + _affine.sx = sx_; + } + double sx( void ) const + { + return _affine.sx; + } + + void sy( const double sy_ ) + { + _affine.sy = sy_; + } + double sy( void ) const + { + return _affine.sy; + } + + void rx( const double rx_ ) + { + _affine.rx = rx_; + } + double rx( void ) const + { + return _affine.rx; + } + + void ry( const double ry_ ) + { + _affine.ry = ry_; + } + double ry( void ) const + { + return _affine.ry; + } + + void tx( const double tx_ ) + { + _affine.tx = tx_; + } + double tx( void ) const + { + return _affine.tx; + } + + void ty( const double ty_ ) + { + _affine.ty = ty_; + } + double ty( void ) const + { + return _affine.ty; + } + +private: + MagickCore::AffineMatrix _affine; +}; + +// Change pixel alpha value to transparent using PaintMethod +class MagickPPExport DrawableAlpha : public DrawableBase +{ +public: + + DrawableAlpha(double x_, double y_,PaintMethod paintMethod_) + : _x(x_), + _y(y_), + _paintMethod(paintMethod_) + { + } + + ~DrawableAlpha(void); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + + void x(double x_) + { + _x=x_; + } + + double x(void) const + { + return(_x); + } + + void y(double y_) + { + _y=y_; + } + + double y(void) const + { + return(_y); + } + + void paintMethod(PaintMethod paintMethod_) + { + _paintMethod=paintMethod_; + } + + PaintMethod paintMethod(void) const + { + return(_paintMethod); + } + + private: + + double _x; + double _y; + PaintMethod _paintMethod; +}; + +// Arc +class MagickPPExport DrawableArc : public DrawableBase +{ +public: + DrawableArc ( double startX_, double startY_, + double endX_, double endY_, + double startDegrees_, double endDegrees_ ) + : _startX(startX_), + _startY(startY_), + _endX(endX_), + _endY(endY_), + _startDegrees(startDegrees_), + _endDegrees(endDegrees_) + { } + + /*virtual*/ ~DrawableArc( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void startX( double startX_ ) + { + _startX = startX_; + } + double startX( void ) const + { + return _startX; + } + + void startY( double startY_ ) + { + _startY = startY_; + } + double startY( void ) const + { + return _startY; + } + + void endX( double endX_ ) + { + _endX = endX_; + } + double endX( void ) const + { + return _endX; + } + + void endY( double endY_ ) + { + _endY = endY_; + } + double endY( void ) const + { + return _endY; + } + + void startDegrees( double startDegrees_ ) + { + _startDegrees = startDegrees_; + } + double startDegrees( void ) const + { + return _startDegrees; + } + + void endDegrees( double endDegrees_ ) + { + _endDegrees = endDegrees_; + } + double endDegrees( void ) const + { + return _endDegrees; + } + +private: + double _startX; + double _startY; + double _endX; + double _endY; + double _startDegrees; + double _endDegrees; +}; + +// Bezier curve (Coordinate list must contain at least three members) +class MagickPPExport DrawableBezier : public DrawableBase +{ +public: + // Construct from coordinates + DrawableBezier ( const CoordinateList &coordinates_ ); + + // Copy constructor + DrawableBezier ( const DrawableBezier& original_ ); + + // Destructor + /*virtual*/ ~DrawableBezier ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + CoordinateList _coordinates; +}; + + // Sets the border color to be used for drawing bordered objects. + class MagickPPExport DrawableBorderColor : public DrawableBase + { + public: + + DrawableBorderColor(const Color &color_); + + DrawableBorderColor(const DrawableBorderColor &original_); + + ~DrawableBorderColor(void); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + void color(const Color &color_); + Color color(void) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + + private: + Color _color; + }; + + // Sets the polygon fill rule to be used by the clipping path. + class MagickPPExport DrawableClipRule : public DrawableBase + { + public: + + DrawableClipRule(const FillRule fillRule_); + + ~DrawableClipRule(void); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + void fillRule(const FillRule fillRule_); + FillRule fillRule(void) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + + private: + FillRule _fillRule; + }; + + // Sets the interpretation of clip path units. + class MagickPPExport DrawableClipUnits : public DrawableBase + { + public: + + DrawableClipUnits(const ClipPathUnits units_); + + ~DrawableClipUnits(void); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + void units(const ClipPathUnits units_); + ClipPathUnits units(void) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + + private: + ClipPathUnits _units; + }; + +// Pop (terminate) clip path definition +class MagickPPExport DrawablePopClipPath : public DrawableBase +{ +public: + DrawablePopClipPath ( void ) + : _dummy(0) + { + } + + /*virtual*/ ~DrawablePopClipPath ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + ::ssize_t _dummy; +}; + +// Push (create) Clip path definition +class MagickPPExport DrawablePushClipPath : public DrawableBase +{ +public: + DrawablePushClipPath ( const std::string &id_); + + DrawablePushClipPath ( const DrawablePushClipPath& original_ ); + + /*virtual*/ ~DrawablePushClipPath ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + std::string _id; +}; + +// Named Clip Path +class MagickPPExport DrawableClipPath : public DrawableBase +{ +public: + DrawableClipPath ( const std::string &id_ ); + DrawableClipPath ( const DrawableClipPath& original_ ); + + /*virtual*/ ~DrawableClipPath ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void clip_path( const std::string &id_ ) + { + _id = id_.c_str(); //multithread safe + } + std::string clip_path( void ) const + { + return _id; + } + +private: + std::string _id; +}; + +// Circle +class MagickPPExport DrawableCircle : public DrawableBase +{ +public: + DrawableCircle ( double originX_, double originY_, + double perimX_, double perimY_ ) + : _originX(originX_), + _originY(originY_), + _perimX(perimX_), + _perimY(perimY_) + { + } + + /*virtual*/ ~DrawableCircle ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void originX( double originX_ ) + { + _originX = originX_; + } + double originX( void ) const + { + return _originX; + } + + void originY( double originY_ ) + { + _originY = originY_; + } + double originY( void ) const + { + return _originY; + } + + void perimX( double perimX_ ) + { + _perimX = perimX_; + } + double perimX( void ) const + { + return _perimX; + } + + void perimY( double perimY_ ) + { + _perimY = perimY_; + } + double perimY( void ) const + { + return _perimY; + } + +private: + double _originX; + double _originY; + double _perimX; + double _perimY; +}; + +// Colorize at point using PaintMethod +class MagickPPExport DrawableColor : public DrawableBase +{ +public: + DrawableColor ( double x_, double y_, + PaintMethod paintMethod_ ) + : _x(x_), + _y(y_), + _paintMethod(paintMethod_) + { } + + /*virtual*/ ~DrawableColor ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + + void paintMethod( PaintMethod paintMethod_ ) + { + _paintMethod = paintMethod_; + } + PaintMethod paintMethod( void ) const + { + return _paintMethod; + } + +private: + double _x; + double _y; + PaintMethod _paintMethod; +}; + +// Draw image at point, scaled to size specified by width and height +class MagickPPExport Image; +class MagickPPExport DrawableCompositeImage : public DrawableBase +{ +public: + DrawableCompositeImage ( double x_, double y_, + const std::string &filename_ ); + + DrawableCompositeImage ( double x_, double y_, + const Image &image_ ); + + DrawableCompositeImage ( double x_, double y_, + double width_, double height_, + const std::string &filename_ ); + + DrawableCompositeImage ( double x_, double y_, + double width_, double height_, + const Image &image_ ); + + DrawableCompositeImage ( double x_, double y_, + double width_, double height_, + const std::string &filename_, + CompositeOperator composition_ ); + + DrawableCompositeImage ( double x_, double y_, + double width_, double height_, + const Image &image_, + CompositeOperator composition_ ); + + // Copy constructor + DrawableCompositeImage ( const DrawableCompositeImage& original_ ); + + // Destructor + /*virtual*/ ~DrawableCompositeImage( void ); + + // Assignment operator + DrawableCompositeImage& operator= + (const DrawableCompositeImage& original_ ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void composition( CompositeOperator composition_ ) + { + _composition = composition_; + } + CompositeOperator composition( void ) const + { + return _composition; + } + + void filename( const std::string &image_ ); + std::string filename( void ) const; + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + + void width( double width_ ) + { + _width = width_; + } + double width( void ) const + { + return _width; + } + + void height( double height_ ) + { + _height = height_; + } + double height( void ) const + { + return _height; + } + + void image( const Image &image_ ); + Magick::Image image( void ) const; + + // Specify image format used to output Base64 inlined image data. + void magick( std::string magick_ ); + std::string magick( void ); + +private: + CompositeOperator _composition; + double _x; + double _y; + double _width; + double _height; + Image* _image; +}; + +// Density +class MagickPPExport DrawableDensity : public DrawableBase +{ +public: + + DrawableDensity(const Point &density_); + + DrawableDensity(const std::string &density_); + + ~DrawableDensity(void); + + void operator()(MagickCore::DrawingWand *context_) const; + + DrawableBase* copy() const; + +private: + std::string _density; +}; + +// Ellipse +class MagickPPExport DrawableEllipse : public DrawableBase +{ +public: + DrawableEllipse ( double originX_, double originY_, + double radiusX_, double radiusY_, + double arcStart_, double arcEnd_ ) + : _originX(originX_), + _originY(originY_), + _radiusX(radiusX_), + _radiusY(radiusY_), + _arcStart(arcStart_), + _arcEnd(arcEnd_) + { } + + /*virtual*/ ~DrawableEllipse( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void originX( double originX_ ) + { + _originX = originX_; + } + double originX( void ) const + { + return _originX; + } + + void originY( double originY_ ) + { + _originY = originY_; + } + double originY( void ) const + { + return _originY; + } + + void radiusX( double radiusX_ ) + { + _radiusX = radiusX_; + } + double radiusX( void ) const + { + return _radiusX; + } + + void radiusY( double radiusY_ ) + { + _radiusY = radiusY_; + } + double radiusY( void ) const + { + return _radiusY; + } + + void arcStart( double arcStart_ ) + { + _arcStart = arcStart_; + } + double arcStart( void ) const + { + return _arcStart; + } + + void arcEnd( double arcEnd_ ) + { + _arcEnd = arcEnd_; + } + double arcEnd( void ) const + { + return _arcEnd; + } + +private: + double _originX; + double _originY; + double _radiusX; + double _radiusY; + double _arcStart; + double _arcEnd; +}; + +// Specify drawing fill color +class MagickPPExport DrawableFillColor : public DrawableBase +{ +public: + DrawableFillColor ( const Color &color_ ); + + DrawableFillColor ( const DrawableFillColor& original_ ); + + /*virtual*/ ~DrawableFillColor( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void color( const Color &color_ ) + { + _color = color_; + } + Color color( void ) const + { + return _color; + } + +private: + Color _color; +}; + + // Sets the URL to use as a fill pattern for filling objects. Only local + // URLs("#identifier") are supported at this time. These local URLs are + // normally created by defining a named fill pattern with + // DrawablePushPattern/DrawablePopPattern. + class MagickPPExport DrawableFillPatternUrl : public DrawableBase + { + public: + + DrawableFillPatternUrl(const std::string &url_); + + ~DrawableFillPatternUrl(void); + + DrawableFillPatternUrl(const DrawableFillPatternUrl& original_); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + void url(const std::string &url_); + std::string url(void) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + + private: + std::string _url; + }; + +// Specify fill rule (fill-rule) +class MagickPPExport DrawableFillRule : public DrawableBase +{ +public: + DrawableFillRule ( const FillRule fillRule_ ) + : _fillRule(fillRule_) + { + } + + /*virtual*/ ~DrawableFillRule ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void fillRule( const FillRule fillRule_ ) + { + _fillRule = fillRule_; + } + FillRule fillRule( void ) const + { + return _fillRule; + } + +private: + FillRule _fillRule; +}; + +// Specify drawing fill alpha +class MagickPPExport DrawableFillOpacity : public DrawableBase +{ +public: + + DrawableFillOpacity(double opacity_) + : _opacity(opacity_) + { + } + + ~DrawableFillOpacity ( void ); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + + void opacity(double opacity_) + { + _opacity=opacity_; + } + + double opacity(void) const + { + return(_opacity); + } + +private: + double _opacity; +}; + +// Specify text font +class MagickPPExport DrawableFont : public DrawableBase +{ +public: + DrawableFont ( const std::string &font_ ); + + DrawableFont ( const std::string &family_, + StyleType style_, + const unsigned int weight_, + StretchType stretch_ ); + DrawableFont ( const DrawableFont& original_ ); + + /*virtual*/ ~DrawableFont ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void font( const std::string &font_ ) + { + _font = font_; + } + std::string font( void ) const + { + return _font; + } + +private: + std::string _font; + std::string _family; + StyleType _style; + unsigned int _weight; + StretchType _stretch; +}; + +// Specify text positioning gravity +class MagickPPExport DrawableGravity : public DrawableBase +{ +public: + DrawableGravity ( GravityType gravity_ ) + : _gravity(gravity_) + { + } + + /*virtual*/ ~DrawableGravity ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void gravity( GravityType gravity_ ) + { + _gravity = gravity_; + } + GravityType gravity( void ) const + { + return _gravity; + } + +private: + GravityType _gravity; +}; + +// Line +class MagickPPExport DrawableLine : public DrawableBase +{ +public: + DrawableLine ( double startX_, double startY_, + double endX_, double endY_ ) + : _startX(startX_), + _startY(startY_), + _endX(endX_), + _endY(endY_) + { } + + /*virtual*/ ~DrawableLine ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void startX( double startX_ ) + { + _startX = startX_; + } + double startX( void ) const + { + return _startX; + } + + void startY( double startY_ ) + { + _startY = startY_; + } + double startY( void ) const + { + return _startY; + } + + void endX( double endX_ ) + { + _endX = endX_; + } + double endX( void ) const + { + return _endX; + } + + void endY( double endY_ ) + { + _endY = endY_; + } + double endY( void ) const + { + return _endY; + } + +private: + double _startX; + double _startY; + double _endX; + double _endY; +}; + +// Drawable Path +class MagickPPExport DrawablePath : public DrawableBase +{ +public: + DrawablePath ( const VPathList &path_ ); + + DrawablePath ( const DrawablePath& original_ ); + + /*virtual*/ ~DrawablePath ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + VPathList _path; +}; + +// Point +class MagickPPExport DrawablePoint : public DrawableBase +{ +public: + DrawablePoint ( double x_, double y_ ) + : _x(x_), + _y(y_) + { } + + /*virtual*/ ~DrawablePoint ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + +private: + double _x; + double _y; +}; + +// Text pointsize +class MagickPPExport DrawablePointSize : public DrawableBase +{ +public: + DrawablePointSize ( double pointSize_ ) + : _pointSize(pointSize_) + { } + + /*virtual*/ ~DrawablePointSize ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void pointSize( double pointSize_ ) + { + _pointSize = pointSize_; + } + double pointSize( void ) const + { + return _pointSize; + } + +private: + double _pointSize; +}; + +// Polygon (Coordinate list must contain at least three members) +class MagickPPExport DrawablePolygon : public DrawableBase +{ +public: + DrawablePolygon ( const CoordinateList &coordinates_ ); + + DrawablePolygon ( const DrawablePolygon& original_ ); + + /*virtual*/ ~DrawablePolygon ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + CoordinateList _coordinates; +}; + +// Polyline (Coordinate list must contain at least three members) +class MagickPPExport DrawablePolyline : public DrawableBase +{ +public: + DrawablePolyline ( const CoordinateList &coordinates_ ); + + DrawablePolyline ( const DrawablePolyline& original_ ); + + /*virtual*/ ~DrawablePolyline ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + CoordinateList _coordinates; +}; + +// Pop Graphic Context +class MagickPPExport DrawablePopGraphicContext : public DrawableBase +{ +public: + DrawablePopGraphicContext ( void ) + : _dummy(0) + { + } + + /*virtual*/ ~DrawablePopGraphicContext ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + ::ssize_t _dummy; +}; + +// Push Graphic Context +class MagickPPExport DrawablePushGraphicContext : public DrawableBase +{ +public: + DrawablePushGraphicContext ( void ) + : _dummy(0) + { + } + + /*virtual*/ ~DrawablePushGraphicContext ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + ::ssize_t _dummy; +}; + +// Pop (terminate) Pattern definition +class MagickPPExport DrawablePopPattern : public DrawableBase +{ +public: + DrawablePopPattern ( void ) + : _dummy(0) + { + } + + /*virtual*/ ~DrawablePopPattern ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + ::ssize_t _dummy; +}; + +// Push (create) Pattern definition +class MagickPPExport DrawablePushPattern : public DrawableBase +{ +public: + DrawablePushPattern ( const std::string &id_, ::ssize_t x_, ::ssize_t y_, + size_t width_, size_t height_ ); + + DrawablePushPattern ( const DrawablePushPattern& original_ ); + + /*virtual*/ ~DrawablePushPattern ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +private: + std::string _id; + ::ssize_t _x; + ::ssize_t _y; + size_t _width; + size_t _height; +}; + +// Rectangle +class MagickPPExport DrawableRectangle : public DrawableBase +{ +public: + DrawableRectangle ( double upperLeftX_, double upperLeftY_, + double lowerRightX_, double lowerRightY_ ) + : _upperLeftX(upperLeftX_), + _upperLeftY(upperLeftY_), + _lowerRightX(lowerRightX_), + _lowerRightY(lowerRightY_) + { } + + /*virtual*/ ~DrawableRectangle ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void upperLeftX( double upperLeftX_ ) + { + _upperLeftX = upperLeftX_; + } + double upperLeftX( void ) const + { + return _upperLeftX; + } + + void upperLeftY( double upperLeftY_ ) + { + _upperLeftY = upperLeftY_; + } + double upperLeftY( void ) const + { + return _upperLeftY; + } + + void lowerRightX( double lowerRightX_ ) + { + _lowerRightX = lowerRightX_; + } + double lowerRightX( void ) const + { + return _lowerRightX; + } + + void lowerRightY( double lowerRightY_ ) + { + _lowerRightY = lowerRightY_; + } + double lowerRightY( void ) const + { + return _lowerRightY; + } + +private: + double _upperLeftX; + double _upperLeftY; + double _lowerRightX; + double _lowerRightY; +}; + +// Apply Rotation +class MagickPPExport DrawableRotation : public DrawableBase +{ +public: + DrawableRotation ( double angle_ ) + : _angle( angle_ ) + { } + + /*virtual*/ ~DrawableRotation ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void angle( double angle_ ) + { + _angle = angle_; + } + double angle( void ) const + { + return _angle; + } + +private: + double _angle; +}; + +// Round Rectangle +class MagickPPExport DrawableRoundRectangle : public DrawableBase +{ +public: + DrawableRoundRectangle ( double upperLeftX_, double upperLeftY_, + double lowerRightX_, double lowerRightY_, + double cornerWidth_, double cornerHeight_ ) + : _upperLeftX(upperLeftX_), + _upperLeftY(upperLeftY_), + _lowerRightX(lowerRightX_), + _lowerRightY(lowerRightY_), + _cornerWidth(cornerWidth_), + _cornerHeight(cornerHeight_) + { } + + /*virtual*/ ~DrawableRoundRectangle ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + +#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED) + + void centerX( double centerX_ ) + { + _upperLeftX = centerX_; + } + double centerX( void ) const + { + return _upperLeftX; + } + + void centerY( double centerY_ ) + { + _upperLeftY = centerY_; + } + double centerY( void ) const + { + return _upperLeftY; + } + + void width( double width_ ) + { + _lowerRightX = width_; + } + double width( void ) const + { + return _lowerRightX; + } + + void hight( double hight_ ) + { + _lowerRightY = hight_; + } + double hight( void ) const + { + return _lowerRightY; + } + +#endif + + void upperLeftX( double upperLeftX_ ) + { + _upperLeftX = upperLeftX_; + } + double upperLeftX( void ) const + { + return _upperLeftX; + } + + void upperLeftY( double upperLeftY_ ) + { + _upperLeftY = upperLeftY_; + } + double upperLeftY( void ) const + { + return _upperLeftY; + } + + void lowerRightX( double lowerRightX_ ) + { + _lowerRightX = lowerRightX_; + } + double lowerRightX( void ) const + { + return _lowerRightX; + } + + void lowerRightY( double lowerRightY_ ) + { + _lowerRightY = lowerRightY_; + } + double lowerRightY( void ) const + { + return _lowerRightY; + } + + void cornerWidth( double cornerWidth_ ) + { + _cornerWidth = cornerWidth_; + } + double cornerWidth( void ) const + { + return _cornerWidth; + } + + void cornerHeight( double cornerHeight_ ) + { + _cornerHeight = cornerHeight_; + } + double cornerHeight( void ) const + { + return _cornerHeight; + } + +private: + double _upperLeftX; + double _upperLeftY; + double _lowerRightX; + double _lowerRightY; + double _cornerWidth; + double _cornerHeight; +}; + +// Apply Scaling +class MagickPPExport DrawableScaling : public DrawableBase +{ +public: + DrawableScaling ( double x_, double y_ ) + : _x(x_), + _y(y_) + { } + + /*virtual*/ ~DrawableScaling ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + +private: + double _x; + double _y; +}; + +// Apply Skew in X direction +class MagickPPExport DrawableSkewX : public DrawableBase +{ +public: + DrawableSkewX ( double angle_ ) + : _angle(angle_) + { } + + /*virtual*/ ~DrawableSkewX ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void angle( double angle_ ) + { + _angle = angle_; + } + double angle( void ) const + { + return _angle; + } + +private: + double _angle; +}; + +// Apply Skew in Y direction +class MagickPPExport DrawableSkewY : public DrawableBase +{ +public: + DrawableSkewY ( double angle_ ) + : _angle(angle_) + { } + + /*virtual*/ ~DrawableSkewY ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void angle( double angle_ ) + { + _angle = angle_; + } + double angle( void ) const + { + return _angle; + } + +private: + double _angle; +}; + + // Stroke dasharray + // + // dasharray_ is an allocated array terminated by value 0.0 or 0. + // The array is copied so the original does not need to be preserved. + // Pass a null pointer to clear an existing dash array setting. + class MagickPPExport DrawableStrokeDashArray : public DrawableBase + { + public: + + DrawableStrokeDashArray(const double* dasharray_); + + DrawableStrokeDashArray(const Magick::DrawableStrokeDashArray &original_); + + ~DrawableStrokeDashArray(void); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + + void dasharray(const double* dasharray_); + const double* dasharray(void) const; + + DrawableStrokeDashArray& operator=( + const Magick::DrawableStrokeDashArray &original_); + + private: + size_t _size; + double *_dasharray; + }; + + // Stroke dashoffset + class MagickPPExport DrawableStrokeDashOffset : public DrawableBase + { + public: + DrawableStrokeDashOffset(const double offset_) + : _offset(offset_) + { } + + ~DrawableStrokeDashOffset(void); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + + void offset(const double offset_); + double offset(void) const; + + private: + double _offset; + }; + +// Stroke linecap +class MagickPPExport DrawableStrokeLineCap : public DrawableBase +{ +public: + DrawableStrokeLineCap ( LineCap linecap_ ) + : _linecap(linecap_) + { } + + /*virtual*/ ~DrawableStrokeLineCap ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void linecap( LineCap linecap_ ) + { + _linecap = linecap_; + } + LineCap linecap( void ) const + { + return _linecap; + } + +private: + LineCap _linecap; +}; + +// Stroke linejoin +class MagickPPExport DrawableStrokeLineJoin : public DrawableBase +{ +public: + DrawableStrokeLineJoin ( LineJoin linejoin_ ) + : _linejoin(linejoin_) + { } + + /*virtual*/ ~DrawableStrokeLineJoin ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void linejoin( LineJoin linejoin_ ) + { + _linejoin = linejoin_; + } + LineJoin linejoin( void ) const + { + return _linejoin; + } + +private: + LineJoin _linejoin; +}; + +// Stroke miterlimit +class MagickPPExport DrawableMiterLimit : public DrawableBase +{ +public: + DrawableMiterLimit ( size_t miterlimit_ ) + : _miterlimit(miterlimit_) + { } + + /*virtual*/ ~DrawableMiterLimit ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void miterlimit( size_t miterlimit_ ) + { + _miterlimit = miterlimit_; + } + size_t miterlimit( void ) const + { + return _miterlimit; + } + +private: + size_t _miterlimit; +}; + +// Sets the pattern used for stroking object outlines. +class MagickPPExport DrawableStrokePatternUrl : public DrawableBase +{ +public: + + DrawableStrokePatternUrl(const std::string &url_); + + ~DrawableStrokePatternUrl(void); + + DrawableStrokePatternUrl(const DrawableStrokePatternUrl& original_); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + void url(const std::string &url_); + std::string url(void) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + +private: + std::string _url; +}; + +// Stroke antialias +class MagickPPExport DrawableStrokeAntialias : public DrawableBase +{ +public: + DrawableStrokeAntialias ( bool flag_ ) + : _flag(flag_) + { } + + /*virtual*/ ~DrawableStrokeAntialias ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void flag( bool flag_ ) + { + _flag = flag_; + } + bool flag( void ) const + { + return _flag; + } + +private: + bool _flag; +}; + +// Stroke color +class MagickPPExport DrawableStrokeColor : public DrawableBase +{ +public: + DrawableStrokeColor ( const Color &color_ ); + + DrawableStrokeColor ( const DrawableStrokeColor& original_ ); + + /*virtual*/ ~DrawableStrokeColor ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void color( const Color& color_ ) + { + _color = color_; + } + Color color( void ) const + { + return _color; + } + +private: + Color _color; +}; + +// Stroke opacity +class MagickPPExport DrawableStrokeOpacity : public DrawableBase +{ +public: + + DrawableStrokeOpacity(double opacity_) + : _opacity(opacity_) + { + } + + ~DrawableStrokeOpacity(void); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + + void opacity(double opacity_) + { + _opacity=opacity_; + } + + double opacity(void) const + { + return(_opacity); + } + +private: + double _opacity; +}; + +// Stroke width +class MagickPPExport DrawableStrokeWidth : public DrawableBase +{ +public: + DrawableStrokeWidth ( double width_ ) + : _width(width_) + { } + + /*virtual*/ ~DrawableStrokeWidth ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void width( double width_ ) + { + _width = width_; + } + double width( void ) const + { + return _width; + } + +private: + double _width; +}; + +// Draw text at point +class MagickPPExport DrawableText : public DrawableBase +{ +public: + DrawableText ( const double x_, const double y_, + const std::string &text_ ); + DrawableText ( const double x_, const double y_, + const std::string &text_, const std::string &encoding_); + + DrawableText ( const DrawableText& original_ ); + + /*virtual*/ ~DrawableText ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void encoding(const std::string &encoding_) + { + _encoding = encoding_; + } + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + + void text( const std::string &text_ ) + { + _text = text_; + } + std::string text( void ) const + { + return _text; + } + +private: + double _x; + double _y; + std::string _text; + std::string _encoding; +}; + +// Text alignment +class MagickPPExport DrawableTextAlignment : public DrawableBase +{ +public: + + DrawableTextAlignment(AlignType alignment_); + + DrawableTextAlignment(const DrawableTextAlignment& original_); + + ~DrawableTextAlignment(void); + + // Operator to invoke equivalent draw API call + void operator()(MagickCore::DrawingWand *context_) const; + + void alignment(AlignType alignment_); + AlignType alignment(void) const; + + // Return polymorphic copy of object + DrawableBase* copy() const; + +private: + AlignType _alignment; +}; + +// Text antialias +class MagickPPExport DrawableTextAntialias : public DrawableBase +{ +public: + DrawableTextAntialias ( bool flag_ ); + + DrawableTextAntialias( const DrawableTextAntialias &original_ ); + + /*virtual*/ ~DrawableTextAntialias ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void flag( bool flag_ ) + { + _flag = flag_; + } + bool flag( void ) const + { + return _flag; + } + +private: + bool _flag; +}; + +// Decoration (text decoration) +class MagickPPExport DrawableTextDecoration : public DrawableBase +{ +public: + DrawableTextDecoration ( DecorationType decoration_ ); + + DrawableTextDecoration ( const DrawableTextDecoration& original_ ); + + /*virtual*/ ~DrawableTextDecoration( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void decoration( DecorationType decoration_ ) + { + _decoration = decoration_; + } + DecorationType decoration( void ) const + { + return _decoration; + } + +private: + DecorationType _decoration; +}; + + // Render text right-to-left or left-to-right. + class MagickPPExport DrawableTextDirection : public DrawableBase + { + public: + + DrawableTextDirection(DirectionType direction_); + + ~DrawableTextDirection(void); + + void operator()(MagickCore::DrawingWand *context_) const; + + void direction(DirectionType direction_); + DirectionType direction(void) const; + + DrawableBase* copy() const; + + private: + DirectionType _direction; + }; + + // Specify text inter-line spacing + class MagickPPExport DrawableTextInterlineSpacing : public DrawableBase + { + public: + + DrawableTextInterlineSpacing(double spacing_); + + ~DrawableTextInterlineSpacing(void); + + void operator()(MagickCore::DrawingWand *context_) const; + + void spacing(double spacing_); + double spacing(void) const; + + DrawableBase* copy() const; + + private: + double _spacing; + }; + + // Specify text inter-word spacing + class MagickPPExport DrawableTextInterwordSpacing : public DrawableBase + { + public: + + DrawableTextInterwordSpacing(double spacing_); + + ~DrawableTextInterwordSpacing(void); + + void operator()(MagickCore::DrawingWand *context_) const; + + void spacing(double spacing_); + double spacing(void) const; + + DrawableBase *copy() const; + + private: + double _spacing; + }; + + // Specify text kerning + class MagickPPExport DrawableTextKerning : public DrawableBase + { + public: + + DrawableTextKerning(double kerning_); + + ~DrawableTextKerning(void); + + void operator()(MagickCore::DrawingWand *context_) const; + + void kerning(double kerning_); + double kerning(void) const; + + DrawableBase *copy() const; + + private: + double _kerning; + }; + +// Text undercolor box +class MagickPPExport DrawableTextUnderColor : public DrawableBase +{ +public: + DrawableTextUnderColor ( const Color &color_ ); + + DrawableTextUnderColor ( const DrawableTextUnderColor& original_ ); + + /*virtual*/ ~DrawableTextUnderColor ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void color( const Color& color_ ) + { + _color = color_; + } + Color color( void ) const + { + return _color; + } + +private: + Color _color; +}; + +// Apply Translation +class MagickPPExport DrawableTranslation : public DrawableBase +{ +public: + DrawableTranslation ( double x_, double y_ ) + : _x(x_), + _y(y_) + { } + + /*virtual*/ ~DrawableTranslation ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ DrawableBase* copy() const; + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + +private: + double _x; + double _y; +}; + +// Set the size of the viewbox +class MagickPPExport DrawableViewbox : public DrawableBase +{ +public: + DrawableViewbox(::ssize_t x1_, ::ssize_t y1_, + ::ssize_t x2_, ::ssize_t y2_) + : _x1(x1_), + _y1(y1_), + _x2(x2_), + _y2(y2_) { } + + /*virtual*/ ~DrawableViewbox ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ + DrawableBase* copy() const; + + void x1( ::ssize_t x1_ ) + { + _x1 = x1_; + } + ::ssize_t x1( void ) const + { + return _x1; + } + + void y1( ::ssize_t y1_ ) + { + _y1 = y1_; + } + ::ssize_t y1( void ) const + { + return _y1; + } + + void x2( ::ssize_t x2_ ) + { + _x2 = x2_; + } + ::ssize_t x2( void ) const + { + return _x2; + } + + void y2( ::ssize_t y2_ ) + { + _y2 = y2_; + } + ::ssize_t y2( void ) const + { + return _y2; + } + +private: + ::ssize_t _x1; + ::ssize_t _y1; + ::ssize_t _x2; + ::ssize_t _y2; +}; + +// +// Path Element Classes To Support DrawablePath +// +class MagickPPExport PathArcArgs +{ +public: + PathArcArgs( void ); + + PathArcArgs( double radiusX_, double radiusY_, + double xAxisRotation_, bool largeArcFlag_, + bool sweepFlag_, double x_, double y_ ); + + PathArcArgs( const PathArcArgs &original_ ); + + ~PathArcArgs ( void ); + + void radiusX( double radiusX_ ) + { + _radiusX = radiusX_; + } + double radiusX( void ) const + { + return _radiusX; + } + + void radiusY( double radiusY_ ) + { + _radiusY = radiusY_; + } + double radiusY( void ) const + { + return _radiusY; + } + + void xAxisRotation( double xAxisRotation_ ) + { + _xAxisRotation = xAxisRotation_; + } + double xAxisRotation( void ) const + { + return _xAxisRotation; + } + + void largeArcFlag( bool largeArcFlag_ ) + { + _largeArcFlag = largeArcFlag_; + } + bool largeArcFlag( void ) const + { + return _largeArcFlag; + } + + void sweepFlag( bool sweepFlag_ ) + { + _sweepFlag = sweepFlag_; + } + bool sweepFlag( void ) const + { + return _sweepFlag; + } + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + +private: + double _radiusX; // X radius + double _radiusY; // Y radius + double _xAxisRotation; // Rotation relative to X axis + bool _largeArcFlag; // Draw longer of the two matching arcs + bool _sweepFlag; // Draw arc matching clock-wise rotation + double _x; // End-point X + double _y; // End-point Y +}; + +// Compare two PathArcArgs objects regardless of LHS/RHS +extern MagickPPExport int operator == ( const PathArcArgs& left_, + const PathArcArgs& right_ ); +extern MagickPPExport int operator != ( const PathArcArgs& left_, + const PathArcArgs& right_ ); +extern MagickPPExport int operator > ( const PathArcArgs& left_, + const PathArcArgs& right_ ); +extern MagickPPExport int operator < ( const PathArcArgs& left_, + const PathArcArgs& right_ ); +extern MagickPPExport int operator >= ( const PathArcArgs& left_, + const PathArcArgs& right_ ); +extern MagickPPExport int operator <= ( const PathArcArgs& left_, + const PathArcArgs& right_ ); + +typedef std::vector PathArcArgsList; + +#if defined(MagickDLLExplicitTemplate) + +MagickDrawableExtern template class MagickPPExport +std::allocator; + +// MagickDrawableExtern template class MagickPPExport +// std::vector >; + +#endif // MagickDLLExplicitTemplate + +// Path Arc (Elliptical Arc) +class MagickPPExport PathArcAbs : public VPathBase +{ +public: + // Draw a single arc segment + PathArcAbs ( const PathArcArgs &coordinates_ ); + + // Draw multiple arc segments + PathArcAbs ( const PathArcArgsList &coordinates_ ); + + // Copy constructor + PathArcAbs ( const PathArcAbs& original_ ); + + // Destructor + /*virtual*/ ~PathArcAbs ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + PathArcArgsList _coordinates; +}; +class MagickPPExport PathArcRel : public VPathBase +{ +public: + // Draw a single arc segment + PathArcRel ( const PathArcArgs &coordinates_ ); + + // Draw multiple arc segments + PathArcRel ( const PathArcArgsList &coordinates_ ); + + PathArcRel ( const PathArcRel& original_ ); + + /*virtual*/ ~PathArcRel ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + PathArcArgsList _coordinates; +}; + +// Path Closepath +class MagickPPExport PathClosePath : public VPathBase +{ +public: + PathClosePath ( void ) + : _dummy(0) + { + } + + /*virtual*/ ~PathClosePath ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + ::ssize_t _dummy; +}; + +// +// Curveto (Cubic Bezier) +// +class MagickPPExport PathCurvetoArgs +{ +public: + PathCurvetoArgs( void ); + + PathCurvetoArgs( double x1_, double y1_, + double x2_, double y2_, + double x_, double y_ ); + + PathCurvetoArgs( const PathCurvetoArgs &original_ ); + + ~PathCurvetoArgs ( void ); + + void x1( double x1_ ) + { + _x1 = x1_; + } +double x1( void ) const +{ + return _x1; +} + +void y1( double y1_ ) +{ + _y1 = y1_; +} +double y1( void ) const +{ + return _y1; +} + +void x2( double x2_ ) +{ + _x2 = x2_; +} +double x2( void ) const +{ + return _x2; +} + +void y2( double y2_ ) +{ + _y2 = y2_; +} +double y2( void ) const +{ + return _y2; +} + +void x( double x_ ) +{ + _x = x_; +} +double x( void ) const +{ + return _x; +} + +void y( double y_ ) +{ + _y = y_; +} +double y( void ) const +{ + return _y; +} + +private: +double _x1; +double _y1; +double _x2; +double _y2; +double _x; +double _y; +}; + +// Compare two PathCurvetoArgs objects regardless of LHS/RHS +extern MagickPPExport int operator == ( const PathCurvetoArgs& left_, + const PathCurvetoArgs& right_ ); +extern MagickPPExport int operator != ( const PathCurvetoArgs& left_, + const PathCurvetoArgs& right_ ); +extern MagickPPExport int operator > ( const PathCurvetoArgs& left_, + const PathCurvetoArgs& right_ ); +extern MagickPPExport int operator < ( const PathCurvetoArgs& left_, + const PathCurvetoArgs& right_ ); +extern MagickPPExport int operator >= ( const PathCurvetoArgs& left_, + const PathCurvetoArgs& right_ ); +extern MagickPPExport int operator <= ( const PathCurvetoArgs& left_, + const PathCurvetoArgs& right_ ); + +typedef std::vector PathCurveToArgsList; + +#if defined(MagickDLLExplicitTemplate) + +MagickDrawableExtern template class MagickPPExport +std::allocator; + +// MagickDrawableExtern template class MagickPPExport +// std::vector >; + +#endif // MagickDLLExplicitTemplate + +class MagickPPExport PathCurvetoAbs : public VPathBase +{ +public: + // Draw a single curve + PathCurvetoAbs ( const PathCurvetoArgs &args_ ); + + // Draw multiple curves + PathCurvetoAbs ( const PathCurveToArgsList &args_ ); + + // Copy constructor + PathCurvetoAbs ( const PathCurvetoAbs& original_ ); + + // Destructor + /*virtual*/ ~PathCurvetoAbs ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + PathCurveToArgsList _args; +}; +class MagickPPExport PathCurvetoRel : public VPathBase +{ +public: + // Draw a single curve + PathCurvetoRel ( const PathCurvetoArgs &args_ ); + + // Draw multiple curves + PathCurvetoRel ( const PathCurveToArgsList &args_ ); + + // Copy constructor + PathCurvetoRel ( const PathCurvetoRel& original_ ); + + /*virtual*/ ~PathCurvetoRel ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + PathCurveToArgsList _args; +}; +class MagickPPExport PathSmoothCurvetoAbs : public VPathBase +{ +public: + // Draw a single curve + PathSmoothCurvetoAbs ( const Magick::Coordinate &coordinates_ ); + + // Draw multiple curves + PathSmoothCurvetoAbs ( const CoordinateList &coordinates_ ); + + // Copy constructor + PathSmoothCurvetoAbs ( const PathSmoothCurvetoAbs& original_ ); + + /*virtual*/ ~PathSmoothCurvetoAbs ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ + VPathBase* copy() const; + +private: + CoordinateList _coordinates; +}; +class MagickPPExport PathSmoothCurvetoRel : public VPathBase +{ +public: + // Draw a single curve + PathSmoothCurvetoRel ( const Coordinate &coordinates_ ); + + // Draw multiple curves + PathSmoothCurvetoRel ( const CoordinateList &coordinates_ ); + + // Copy constructor + PathSmoothCurvetoRel ( const PathSmoothCurvetoRel& original_ ); + + // Destructor + /*virtual*/ ~PathSmoothCurvetoRel ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ + VPathBase* copy() const; + +private: + CoordinateList _coordinates; +}; + +// +// Quadratic Curveto (Quadratic Bezier) +// +class MagickPPExport PathQuadraticCurvetoArgs +{ +public: + PathQuadraticCurvetoArgs( void ); + + PathQuadraticCurvetoArgs( double x1_, double y1_, + double x_, double y_ ); + + PathQuadraticCurvetoArgs( const PathQuadraticCurvetoArgs &original_ ); + + ~PathQuadraticCurvetoArgs ( void ); + + void x1( double x1_ ) + { + _x1 = x1_; + } + double x1( void ) const + { + return _x1; + } + + void y1( double y1_ ) + { + _y1 = y1_; + } + double y1( void ) const + { + return _y1; + } + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + +private: + double _x1; + double _y1; + double _x; + double _y; +}; + +// Compare two PathQuadraticCurvetoArgs objects regardless of LHS/RHS +extern MagickPPExport int operator == ( const PathQuadraticCurvetoArgs& left_, + const PathQuadraticCurvetoArgs& right_ ); +extern MagickPPExport int operator != ( const PathQuadraticCurvetoArgs& left_, + const PathQuadraticCurvetoArgs& right_); +extern MagickPPExport int operator > ( const PathQuadraticCurvetoArgs& left_, + const PathQuadraticCurvetoArgs& right_); +extern MagickPPExport int operator < ( const PathQuadraticCurvetoArgs& left_, + const PathQuadraticCurvetoArgs& right_); +extern MagickPPExport int operator >= ( const PathQuadraticCurvetoArgs& left_, + const PathQuadraticCurvetoArgs& right_ ); +extern MagickPPExport int operator <= ( const PathQuadraticCurvetoArgs& left_, + const PathQuadraticCurvetoArgs& right_ ); + +typedef std::vector PathQuadraticCurvetoArgsList; + +#if defined(MagickDLLExplicitTemplate) + +MagickDrawableExtern template class MagickPPExport +std::allocator; + +// MagickDrawableExtern template class MagickPPExport +// std::vector >; + +#endif // MagickDLLExplicitTemplate + +class MagickPPExport PathQuadraticCurvetoAbs : public VPathBase +{ +public: + // Draw a single curve + PathQuadraticCurvetoAbs ( const Magick::PathQuadraticCurvetoArgs &args_ ); + + // Draw multiple curves + PathQuadraticCurvetoAbs ( const PathQuadraticCurvetoArgsList &args_ ); + + // Copy constructor + PathQuadraticCurvetoAbs ( const PathQuadraticCurvetoAbs& original_ ); + + // Destructor + /*virtual*/ ~PathQuadraticCurvetoAbs ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + PathQuadraticCurvetoArgsList _args; +}; +class MagickPPExport PathQuadraticCurvetoRel : public VPathBase +{ +public: + // Draw a single curve + PathQuadraticCurvetoRel ( const Magick::PathQuadraticCurvetoArgs &args_ ); + + // Draw multiple curves + PathQuadraticCurvetoRel ( const PathQuadraticCurvetoArgsList &args_ ); + + // Copy constructor + PathQuadraticCurvetoRel ( const PathQuadraticCurvetoRel& original_ ); + + // Destructor + /*virtual*/ ~PathQuadraticCurvetoRel ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + PathQuadraticCurvetoArgsList _args; +}; +class MagickPPExport PathSmoothQuadraticCurvetoAbs : public VPathBase +{ +public: + // Draw a single curve + PathSmoothQuadraticCurvetoAbs ( const Magick::Coordinate &coordinate_ ); + + // Draw multiple curves + PathSmoothQuadraticCurvetoAbs ( const CoordinateList &coordinates_ ); + + // Copy constructor + PathSmoothQuadraticCurvetoAbs ( const PathSmoothQuadraticCurvetoAbs& original_ ); + + // Destructor + /*virtual*/ ~PathSmoothQuadraticCurvetoAbs ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + CoordinateList _coordinates; +}; +class MagickPPExport PathSmoothQuadraticCurvetoRel : public VPathBase +{ +public: + // Draw a single curve + PathSmoothQuadraticCurvetoRel ( const Magick::Coordinate &coordinate_ ); + + // Draw multiple curves + PathSmoothQuadraticCurvetoRel ( const CoordinateList &coordinates_ ); + + // Copy constructor + PathSmoothQuadraticCurvetoRel ( const PathSmoothQuadraticCurvetoRel& original_ ); + + // Destructor + /*virtual*/ ~PathSmoothQuadraticCurvetoRel ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + CoordinateList _coordinates; +}; + +// +// Path Lineto +// +class MagickPPExport PathLinetoAbs : public VPathBase +{ +public: + // Draw to a single point + PathLinetoAbs ( const Magick::Coordinate& coordinate_ ); + + // Draw to multiple points + PathLinetoAbs ( const CoordinateList &coordinates_ ); + + // Copy constructor + PathLinetoAbs ( const PathLinetoAbs& original_ ); + + // Destructor + /*virtual*/ ~PathLinetoAbs ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + CoordinateList _coordinates; +}; +class MagickPPExport PathLinetoRel : public VPathBase +{ +public: + // Draw to a single point + PathLinetoRel ( const Magick::Coordinate& coordinate_ ); + + // Draw to multiple points + PathLinetoRel ( const CoordinateList &coordinates_ ); + + // Copy constructor + PathLinetoRel ( const PathLinetoRel& original_ ); + + // Destructor + /*virtual*/ ~PathLinetoRel ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + CoordinateList _coordinates; +}; + +// Path Horizontal Lineto +class MagickPPExport PathLinetoHorizontalAbs : public VPathBase +{ +public: + PathLinetoHorizontalAbs ( double x_ ) + : _x(x_) + { + } + + /*virtual*/ ~PathLinetoHorizontalAbs ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + +private: + double _x; +}; +class MagickPPExport PathLinetoHorizontalRel : public VPathBase +{ +public: + PathLinetoHorizontalRel ( double x_ ) + : _x(x_) + { + } + + /*virtual*/ ~PathLinetoHorizontalRel ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + + void x( double x_ ) + { + _x = x_; + } + double x( void ) const + { + return _x; + } + +private: + double _x; +}; + +// Path Vertical Lineto +class MagickPPExport PathLinetoVerticalAbs : public VPathBase +{ +public: + PathLinetoVerticalAbs ( double y_ ) + : _y(y_) + { + } + + /*virtual*/ ~PathLinetoVerticalAbs ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + +private: + double _y; +}; +class MagickPPExport PathLinetoVerticalRel : public VPathBase +{ +public: + PathLinetoVerticalRel ( double y_ ) + : _y(y_) + { + } + + /*virtual*/ ~PathLinetoVerticalRel ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + + void y( double y_ ) + { + _y = y_; + } + double y( void ) const + { + return _y; + } + +private: + double _y; +}; + +// Path Moveto +class MagickPPExport PathMovetoAbs : public VPathBase +{ +public: + // Simple moveto + PathMovetoAbs ( const Magick::Coordinate &coordinate_ ); + + // Moveto followed by implicit linetos + PathMovetoAbs ( const CoordinateList &coordinates_ ); + + // Copy constructor + PathMovetoAbs ( const PathMovetoAbs& original_ ); + + // Destructor + /*virtual*/ ~PathMovetoAbs ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + CoordinateList _coordinates; +}; +class MagickPPExport PathMovetoRel : public VPathBase +{ +public: + // Simple moveto + PathMovetoRel ( const Magick::Coordinate &coordinate_ ); + + // Moveto followed by implicit linetos + PathMovetoRel ( const CoordinateList &coordinates_ ); + + // Copy constructor + PathMovetoRel ( const PathMovetoRel& original_ ); + + // Destructor + /*virtual*/ ~PathMovetoRel ( void ); + + // Operator to invoke equivalent draw API call + /*virtual*/ void operator()( MagickCore::DrawingWand *context_ ) const; + + // Return polymorphic copy of object + /*virtual*/ VPathBase* copy() const; + +private: + CoordinateList _coordinates; +}; + +} // namespace Magick + +#endif // Magick_Drawable_header diff --git a/include/ImageMagick-7/Magick++/Exception.h b/include/ImageMagick-7/Magick++/Exception.h new file mode 100644 index 0000000..eb77f40 --- /dev/null +++ b/include/ImageMagick-7/Magick++/Exception.h @@ -0,0 +1,425 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003 +// Copyright Dirk Lemstra 2014-2015 +// +// Definition of Magick::Exception and derived classes +// Magick::Warning* and Magick::Error*. Derived from C++ STD +// 'exception' class for convenience. +// +// These classes form part of the Magick++ user interface. +// + +#if !defined(Magick_Exception_header) +#define Magick_Exception_header + +#include "Magick++/Include.h" +#include +#include + +namespace Magick +{ + class MagickPPExport Exception: public std::exception + { + public: + + // Construct with message string + Exception(const std::string& what_); + + // Construct with message string and nested exception + Exception(const std::string& what_, Exception* nested_); + + // Copy constructor + Exception(const Exception& original_); + + // Destructor + virtual ~Exception() throw(); + + // Assignment operator + Exception& operator=(const Exception& original_); + + // Get string identifying exception + virtual const char* what() const throw(); + + // Get nested exception + const Exception* nested() const throw(); + + ////////////////////////////////////////////////////////////////////// + // + // No user-serviceable parts beyond this point + // + ////////////////////////////////////////////////////////////////////// + + void nested(Exception* nested_) throw(); + + private: + std::string _what; + Exception* _nested; + }; + + // + // Error exceptions + // + + class MagickPPExport Error: public Exception + { + public: + explicit Error(const std::string& what_); + explicit Error(const std::string& what_,Exception *nested_); + ~Error() throw(); + }; + + class MagickPPExport ErrorBlob: public Error + { + public: + explicit ErrorBlob(const std::string& what_); + explicit ErrorBlob(const std::string& what_,Exception *nested_); + ~ErrorBlob() throw(); + }; + + class MagickPPExport ErrorCache: public Error + { + public: + explicit ErrorCache(const std::string& what_); + explicit ErrorCache(const std::string& what_,Exception *nested_); + ~ErrorCache() throw(); + }; + + class MagickPPExport ErrorCoder: public Error + { + public: + explicit ErrorCoder(const std::string& what_); + explicit ErrorCoder(const std::string& what_,Exception *nested_); + ~ErrorCoder() throw(); + }; + + class MagickPPExport ErrorConfigure: public Error + { + public: + explicit ErrorConfigure(const std::string& what_); + explicit ErrorConfigure(const std::string& what_,Exception *nested_); + ~ErrorConfigure() throw(); + }; + + class MagickPPExport ErrorCorruptImage: public Error + { + public: + explicit ErrorCorruptImage(const std::string& what_); + explicit ErrorCorruptImage(const std::string& what_,Exception *nested_); + ~ErrorCorruptImage() throw(); + }; + + class MagickPPExport ErrorDelegate: public Error + { + public: + explicit ErrorDelegate(const std::string& what_); + explicit ErrorDelegate(const std::string& what_,Exception *nested_); + ~ErrorDelegate() throw(); + }; + + class MagickPPExport ErrorDraw: public Error + { + public: + explicit ErrorDraw(const std::string& what_); + explicit ErrorDraw(const std::string& what_,Exception *nested_); + ~ErrorDraw() throw(); + }; + + class MagickPPExport ErrorFileOpen: public Error + { + public: + explicit ErrorFileOpen(const std::string& what_); + explicit ErrorFileOpen(const std::string& what_,Exception *nested_); + ~ErrorFileOpen() throw(); + }; + + class MagickPPExport ErrorImage: public Error + { + public: + explicit ErrorImage(const std::string& what_); + explicit ErrorImage(const std::string& what_,Exception *nested_); + ~ErrorImage() throw(); + }; + + class MagickPPExport ErrorMissingDelegate: public Error + { + public: + explicit ErrorMissingDelegate(const std::string& what_); + explicit ErrorMissingDelegate(const std::string& what_,Exception *nested_); + ~ErrorMissingDelegate() throw(); + }; + + class MagickPPExport ErrorModule: public Error + { + public: + explicit ErrorModule(const std::string& what_); + explicit ErrorModule(const std::string& what_,Exception *nested_); + ~ErrorModule() throw(); + }; + + class MagickPPExport ErrorMonitor: public Error + { + public: + explicit ErrorMonitor(const std::string& what_); + explicit ErrorMonitor(const std::string& what_,Exception *nested_); + ~ErrorMonitor() throw(); + }; + + class MagickPPExport ErrorOption: public Error + { + public: + explicit ErrorOption(const std::string& what_); + explicit ErrorOption(const std::string& what_,Exception *nested_); + ~ErrorOption() throw(); + }; + + class MagickPPExport ErrorPolicy: public Error + { + public: + explicit ErrorPolicy(const std::string& what_); + explicit ErrorPolicy(const std::string& what_,Exception *nested_); + ~ErrorPolicy() throw(); + }; + + class MagickPPExport ErrorRegistry: public Error + { + public: + explicit ErrorRegistry(const std::string& what_); + explicit ErrorRegistry(const std::string& what_,Exception *nested_); + ~ErrorRegistry() throw(); + }; + + class MagickPPExport ErrorResourceLimit: public Error + { + public: + explicit ErrorResourceLimit(const std::string& what_); + explicit ErrorResourceLimit(const std::string& what_,Exception *nested_); + ~ErrorResourceLimit() throw(); + }; + + class MagickPPExport ErrorStream: public Error + { + public: + explicit ErrorStream(const std::string& what_); + explicit ErrorStream(const std::string& what_,Exception *nested_); + ~ErrorStream() throw(); + }; + + class MagickPPExport ErrorType: public Error + { + public: + explicit ErrorType(const std::string& what_); + explicit ErrorType(const std::string& what_,Exception *nested_); + ~ErrorType() throw(); + }; + + class MagickPPExport ErrorUndefined: public Error + { + public: + explicit ErrorUndefined(const std::string& what_); + explicit ErrorUndefined(const std::string& what_,Exception *nested_); + ~ErrorUndefined() throw(); + }; + + class MagickPPExport ErrorXServer: public Error + { + public: + explicit ErrorXServer(const std::string& what_); + explicit ErrorXServer(const std::string& what_,Exception *nested_); + ~ErrorXServer() throw(); + }; + + // + // Warnings + // + + class MagickPPExport Warning: public Exception + { + public: + explicit Warning(const std::string& what_); + explicit Warning(const std::string& what_,Exception *nested_); + ~Warning() throw(); + }; + + class MagickPPExport WarningBlob: public Warning + { + public: + explicit WarningBlob(const std::string& what_); + explicit WarningBlob(const std::string& what_,Exception *nested_); + ~WarningBlob() throw(); + }; + + class MagickPPExport WarningCache: public Warning + { + public: + explicit WarningCache(const std::string& what_); + explicit WarningCache(const std::string& what_,Exception *nested_); + ~WarningCache() throw(); + }; + + class MagickPPExport WarningCoder: public Warning + { + public: + explicit WarningCoder(const std::string& what_); + explicit WarningCoder(const std::string& what_,Exception *nested_); + ~WarningCoder() throw(); + }; + + class MagickPPExport WarningConfigure: public Warning + { + public: + explicit WarningConfigure(const std::string& what_); + explicit WarningConfigure(const std::string& what_,Exception *nested_); + ~WarningConfigure() throw(); + }; + + class MagickPPExport WarningCorruptImage: public Warning + { + public: + explicit WarningCorruptImage(const std::string& what_); + explicit WarningCorruptImage(const std::string& what_,Exception *nested_); + ~WarningCorruptImage() throw(); + }; + + class MagickPPExport WarningDelegate: public Warning + { + public: + explicit WarningDelegate(const std::string& what_); + explicit WarningDelegate(const std::string& what_,Exception *nested_); + ~WarningDelegate() throw(); + }; + + class MagickPPExport WarningDraw : public Warning + { + public: + explicit WarningDraw(const std::string& what_); + explicit WarningDraw(const std::string& what_,Exception *nested_); + ~WarningDraw() throw(); + }; + + class MagickPPExport WarningFileOpen: public Warning + { + public: + explicit WarningFileOpen(const std::string& what_); + explicit WarningFileOpen(const std::string& what_,Exception *nested_); + ~WarningFileOpen() throw(); + }; + + class MagickPPExport WarningImage: public Warning + { + public: + explicit WarningImage(const std::string& what_); + explicit WarningImage(const std::string& what_,Exception *nested_); + ~WarningImage() throw(); + }; + + class MagickPPExport WarningMissingDelegate: public Warning + { + public: + explicit WarningMissingDelegate(const std::string& what_); + explicit WarningMissingDelegate(const std::string& what_, + Exception *nested_); + ~WarningMissingDelegate() throw(); + }; + + class MagickPPExport WarningModule: public Warning + { + public: + explicit WarningModule(const std::string& what_); + explicit WarningModule(const std::string& what_,Exception *nested_); + ~WarningModule() throw(); + }; + + class MagickPPExport WarningMonitor: public Warning + { + public: + explicit WarningMonitor(const std::string& what_); + explicit WarningMonitor(const std::string& what_,Exception *nested_); + ~WarningMonitor() throw(); + }; + + class MagickPPExport WarningOption: public Warning + { + public: + explicit WarningOption(const std::string& what_); + explicit WarningOption(const std::string& what_,Exception *nested_); + ~WarningOption() throw(); + }; + + class MagickPPExport WarningPolicy: public Warning + { + public: + explicit WarningPolicy(const std::string& what_); + explicit WarningPolicy(const std::string& what_,Exception *nested_); + ~WarningPolicy() throw(); + }; + + class MagickPPExport WarningRegistry: public Warning + { + public: + explicit WarningRegistry(const std::string& what_); + explicit WarningRegistry(const std::string& what_,Exception *nested_); + ~WarningRegistry() throw(); + }; + + class MagickPPExport WarningResourceLimit: public Warning + { + public: + explicit WarningResourceLimit(const std::string& what_); + explicit WarningResourceLimit(const std::string& what_,Exception *nested_); + ~WarningResourceLimit() throw(); + }; + + class MagickPPExport WarningStream: public Warning + { + public: + explicit WarningStream(const std::string& what_); + explicit WarningStream(const std::string& what_,Exception *nested_); + ~WarningStream() throw(); + }; + + class MagickPPExport WarningType: public Warning + { + public: + explicit WarningType(const std::string& what_); + explicit WarningType(const std::string& what_,Exception *nested_); + ~WarningType() throw(); + }; + + class MagickPPExport WarningUndefined: public Warning + { + public: + explicit WarningUndefined(const std::string& what_); + explicit WarningUndefined(const std::string& what_,Exception *nested_); + ~WarningUndefined() throw(); + }; + + class MagickPPExport WarningXServer: public Warning + { + public: + explicit WarningXServer(const std::string& what_); + explicit WarningXServer(const std::string& what_,Exception *nested_); + ~WarningXServer() throw(); + }; + + // + // No user-serviceable components beyond this point. + // + + std::string formatExceptionMessage( + const MagickCore::ExceptionInfo *exception_); + + Exception* createException(const MagickCore::ExceptionInfo *exception_); + + // Throw exception based on raw data + extern MagickPPExport void throwExceptionExplicit( + const MagickCore::ExceptionType severity_,const char* reason_, + const char* description_=(char *) NULL); + + // Thow exception based on ImageMagick's ExceptionInfo + extern MagickPPExport void throwException( + MagickCore::ExceptionInfo *exception_,const bool quiet_=false); + +} // namespace Magick + +#endif // Magick_Exception_header diff --git a/include/ImageMagick-7/Magick++/Functions.h b/include/ImageMagick-7/Magick++/Functions.h new file mode 100644 index 0000000..68c52fd --- /dev/null +++ b/include/ImageMagick-7/Magick++/Functions.h @@ -0,0 +1,40 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2003 +// Copyright Dirk Lemstra 2014-2017 +// +// Simple C++ function wrappers for often used or otherwise +// inconvenient ImageMagick equivalents +// + +#if !defined(Magick_Functions_header) +#define Magick_Functions_header + +#include "Magick++/Include.h" +#include + +namespace Magick +{ + // Clone C++ string as allocated C string, de-allocating any existing string + MagickPPExport void CloneString(char **destination_, + const std::string &source_); + + // Disable OpenCL acceleration (only works when build with OpenCL support) + MagickPPExport void DisableOpenCL(void); + + // Enable OpenCL acceleration (only works when build with OpenCL support) + MagickPPExport bool EnableOpenCL(void); + + // C library initialization routine + MagickPPExport void InitializeMagick(const char *path_); + + // Seed a new sequence of pseudo-random numbers + MagickPPExport void SetRandomSeed(const unsigned long seed); + + // Set the ImageMagick security policy. + MagickPPExport bool SetSecurityPolicy(const std::string &policy_); + + // C library initialization routine + MagickPPExport void TerminateMagick(); +} +#endif // Magick_Functions_header diff --git a/include/ImageMagick-7/Magick++/Geometry.h b/include/ImageMagick-7/Magick++/Geometry.h new file mode 100644 index 0000000..6fa31cf --- /dev/null +++ b/include/ImageMagick-7/Magick++/Geometry.h @@ -0,0 +1,261 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002 +// Copyright Dirk Lemstra 2014 +// +// Geometry Definition +// +// Representation of an ImageMagick geometry specification +// X11 geometry specification plus hints + +#if !defined (Magick_Geometry_header) +#define Magick_Geometry_header + +#include "Magick++/Include.h" +#include + +namespace Magick +{ + class MagickPPExport Geometry; + + // Compare two Geometry objects regardless of LHS/RHS + MagickPPExport int operator == + (const Magick::Geometry& left_,const Magick::Geometry& right_); + MagickPPExport int operator != + (const Magick::Geometry& left_,const Magick::Geometry& right_); + MagickPPExport int operator > + (const Magick::Geometry& left_,const Magick::Geometry& right_); + MagickPPExport int operator < + (const Magick::Geometry& left_,const Magick::Geometry& right_); + MagickPPExport int operator >= + (const Magick::Geometry& left_,const Magick::Geometry& right_); + MagickPPExport int operator <= + (const Magick::Geometry& left_,const Magick::Geometry& right_); + + class MagickPPExport Geometry + { + public: + + // Default constructor + Geometry(); + + // Construct Geometry from specified string + Geometry(const char *geometry_); + + // Copy constructor + Geometry(const Geometry &geometry_); + + // Construct Geometry from specified string + Geometry(const std::string &geometry_); + + // Construct Geometry from specified dimensions + Geometry(size_t width_,size_t height_,::ssize_t xOff_=0, + ::ssize_t yOff_=0); + + // Destructor + ~Geometry(void); + + // Set via geometry string + const Geometry& operator=(const char *geometry_); + + // Assignment operator + Geometry& operator=(const Geometry& Geometry_); + + // Set via geometry string + const Geometry& operator=(const std::string &geometry_); + + // Return geometry string + operator std::string() const; + + // Resize without preserving aspect ratio (!) + void aspect(bool aspect_); + bool aspect(void) const; + + // Resize the image based on the smallest fitting dimension (^) + void fillArea(bool fillArea_); + bool fillArea(void) const; + + // Resize if image is greater than size (>) + void greater(bool greater_); + bool greater(void) const; + + // Height + void height(size_t height_); + size_t height(void) const; + + // Does object contain valid geometry? + void isValid(bool isValid_); + bool isValid(void) const; + + // Resize if image is less than size (<) + void less(bool less_); + bool less(void) const; + + // Resize using a pixel area count limit (@) + void limitPixels(bool limitPixels_); + bool limitPixels(void) const; + + // Width and height are expressed as percentages + void percent(bool percent_); + bool percent(void) const; + + // Width + void width(size_t width_); + size_t width(void) const; + + // X offset from origin + void xOff(::ssize_t xOff_); + ::ssize_t xOff(void) const; + + // Y offset from origin + void yOff(::ssize_t yOff_); + ::ssize_t yOff(void) const; + + // + // Public methods below this point are for Magick++ use only. + // + + // Construct from RectangleInfo + Geometry(const MagickCore::RectangleInfo &rectangle_); + + // Set via RectangleInfo + const Geometry& operator=(const MagickCore::RectangleInfo &rectangle_); + + // Return an ImageMagick RectangleInfo struct + operator MagickCore::RectangleInfo() const; + + private: + size_t _width; + size_t _height; + ::ssize_t _xOff; + ::ssize_t _yOff; + bool _isValid; + bool _percent; // Interpret width & height as percentages (%) + bool _aspect; // Force exact size (!) + bool _greater; // Resize only if larger than geometry (>) + bool _less; // Resize only if smaller than geometry (<) + bool _fillArea; // Resize the image based on the smallest fitting dimension (^) + bool _limitPixels; // Resize using a pixel area count limit (@) + }; + + class MagickPPExport Offset; + + // Compare two Offset objects + MagickPPExport int operator == + (const Magick::Offset& left_,const Magick::Offset& right_); + MagickPPExport int operator != + (const Magick::Offset& left_,const Magick::Offset& right_); + + class MagickPPExport Offset + { + public: + + // Default constructor + Offset(); + + // Construct Offset from specified string + Offset(const char *offset_); + + // Copy constructor + Offset(const Offset &offset_); + + // Construct Offset from specified string + Offset(const std::string &offset_); + + // Construct Offset from specified x and y + Offset(ssize_t x_,ssize_t y_); + + // Destructor + ~Offset(void); + + // Set via offset string + const Offset& operator=(const char *offset_); + + // Assignment operator + Offset& operator=(const Offset& offset_); + + // Set via offset string + const Offset& operator=(const std::string &offset_); + + // X offset from origin + ssize_t x(void) const; + + // Y offset from origin + ssize_t y(void) const; + + // + // Public methods below this point are for Magick++ use only. + // + + // Return an ImageMagick OffsetInfo struct + operator MagickCore::OffsetInfo() const; + + private: + ssize_t _x; + ssize_t _y; + }; + + class MagickPPExport Point; + + // Compare two Point objects + MagickPPExport int operator == + (const Magick::Point& left_,const Magick::Point& right_); + MagickPPExport int operator != + (const Magick::Point& left_,const Magick::Point& right_); + + class MagickPPExport Point + { + public: + + // Default constructor + Point(); + + // Construct Point from specified string + Point(const char *point_); + + // Copy constructor + Point(const Point &point_); + + // Construct Point from specified string + Point(const std::string &point_); + + // Construct Point from specified x and y + Point(double x_,double y_); + + // Construct Point from specified x y + Point(double xy_); + + // Destructor + ~Point(void); + + // Set via point string + const Point& operator=(const char *point_); + + // Set via double value + const Point& operator=(double xy_); + + // Assignment operator + Point& operator=(const Point& point_); + + // Set via point string + const Point& operator=(const std::string &point_); + + // Return point string + operator std::string() const; + + // Does object contain valid point? + bool isValid() const; + + // X offset from origin + double x(void) const; + + // Y offset from origin + double y(void) const; + + private: + double _x; + double _y; + }; +} // namespace Magick + +#endif // Magick_Geometry_header diff --git a/include/ImageMagick-7/Magick++/Image.h b/include/ImageMagick-7/Magick++/Image.h new file mode 100644 index 0000000..33df63f --- /dev/null +++ b/include/ImageMagick-7/Magick++/Image.h @@ -0,0 +1,1554 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003 +// Copyright Dirk Lemstra 2013-2017 +// +// Definition of Image, the representation of a single image in Magick++ +// + +#if !defined(Magick_Image_header) +#define Magick_Image_header + +#include "Magick++/Include.h" +#include +#include +#include "Magick++/Blob.h" +#include "Magick++/Color.h" +#include "Magick++/Drawable.h" +#include "Magick++/Exception.h" +#include "Magick++/Geometry.h" +#include "Magick++/Statistic.h" +#include "Magick++/TypeMetric.h" + +namespace Magick +{ + // Forward declarations + class Options; + class ImageRef; + + extern MagickPPExport const char *borderGeometryDefault; + extern MagickPPExport const char *frameGeometryDefault; + extern MagickPPExport const char *raiseGeometryDefault; + + // Compare two Image objects regardless of LHS/RHS + // Image sizes and signatures are used as basis of comparison + MagickPPExport int operator == + (const Magick::Image &left_,const Magick::Image &right_); + MagickPPExport int operator != + (const Magick::Image &left_,const Magick::Image &right_); + MagickPPExport int operator > + (const Magick::Image &left_,const Magick::Image &right_); + MagickPPExport int operator < + (const Magick::Image &left_,const Magick::Image &right_); + MagickPPExport int operator >= + (const Magick::Image &left_,const Magick::Image &right_); + MagickPPExport int operator <= + (const Magick::Image &left_,const Magick::Image &right_); + + // + // Image is the representation of an image. In reality, it actually + // a handle object which contains a pointer to a shared reference + // object (ImageRef). As such, this object is extremely space efficient. + // + class MagickPPExport Image + { + public: + + // Default constructor + Image(void); + + // Construct Image from in-memory BLOB + Image(const Blob &blob_); + + // Construct Image of specified size from in-memory BLOB + Image(const Blob &blob_,const Geometry &size_); + + // Construct Image of specified size and depth from in-memory BLOB + Image(const Blob &blob_,const Geometry &size_,const size_t depth_); + + // Construct Image of specified size, depth, and format from + // in-memory BLOB + Image(const Blob &blob_,const Geometry &size_,const size_t depth_, + const std::string &magick_); + + // Construct Image of specified size, and format from in-memory BLOB + Image(const Blob &blob_,const Geometry &size_,const std::string &magick_); + + // Construct a blank image canvas of specified size and color + Image(const Geometry &size_,const Color &color_); + + // Copy constructor + Image(const Image &image_); + + // Copy constructor to copy part of the image + Image(const Image &image_,const Geometry &geometry_); + + // Construct an image based on an array of raw pixels, of + // specified type and mapping, in memory + Image(const size_t width_,const size_t height_,const std::string &map_, + const StorageType type_,const void *pixels_); + + // Construct from image file or image specification + Image(const std::string &imageSpec_); + + // Destructor + virtual ~Image(); + + // Assignment operator + Image& operator=(const Image &image_); + + // Join images into a single multi-image file + void adjoin(const bool flag_); + bool adjoin(void) const; + + // Image supports transparency (alpha channel) + void alpha(const bool alphaFlag_); + bool alpha(void) const; + + // Transparent color + void matteColor(const Color &matteColor_); + Color matteColor(void) const; + + // Time in 1/100ths of a second which must expire before + // displaying the next image in an animated sequence. + void animationDelay(const size_t delay_); + size_t animationDelay(void) const; + + // Number of iterations to loop an animation (e.g. Netscape loop + // extension) for. + void animationIterations(const size_t iterations_); + size_t animationIterations(void) const; + + // Image background color + void backgroundColor(const Color &color_); + Color backgroundColor(void) const; + + // Name of texture image to tile onto the image background + void backgroundTexture(const std::string &backgroundTexture_); + std::string backgroundTexture(void) const; + + // Base image width (before transformations) + size_t baseColumns(void) const; + + // Base image filename (before transformations) + std::string baseFilename(void) const; + + // Base image height (before transformations) + size_t baseRows(void) const; + + // Use black point compensation. + void blackPointCompensation(const bool flag_); + bool blackPointCompensation(void) const; + + // Image border color + void borderColor(const Color &color_); + Color borderColor(void) const; + + // Return smallest bounding box enclosing non-border pixels. The + // current fuzz value is used when discriminating between pixels. + // This is the crop bounding box used by crop(Geometry(0,0)); + Geometry boundingBox(void) const; + + // Text bounding-box base color (default none) + void boxColor(const Color &boxColor_); + Color boxColor(void) const; + + // Set or obtain modulus channel depth + void channelDepth(const ChannelType channel_,const size_t depth_); + size_t channelDepth(const ChannelType channel_); + + // Returns the number of channels in this image. + size_t channels() const; + + // Image class (DirectClass or PseudoClass) + // NOTE: setting a DirectClass image to PseudoClass will result in + // the loss of color information if the number of colors in the + // image is greater than the maximum palette size (either 256 or + // 65536 entries depending on the value of MAGICKCORE_QUANTUM_DEPTH when + // ImageMagick was built). + void classType(const ClassType class_); + ClassType classType(void) const; + + // Colors within this distance are considered equal + void colorFuzz(const double fuzz_); + double colorFuzz(void) const; + + // Colormap size (number of colormap entries) + void colorMapSize(const size_t entries_); + size_t colorMapSize(void) const; + + // Image Color Space + void colorSpace(const ColorspaceType colorSpace_); + ColorspaceType colorSpace(void) const; + + void colorSpaceType(const ColorspaceType colorSpace_); + ColorspaceType colorSpaceType(void) const; + + // Image width + size_t columns(void) const; + + // Comment image (add comment string to image) + void comment(const std::string &comment_); + std::string comment(void) const; + + // Composition operator to be used when composition is implicitly + // used (such as for image flattening). + void compose(const CompositeOperator compose_); + CompositeOperator compose(void) const; + + // Compression type + void compressType(const CompressionType compressType_); + CompressionType compressType(void) const; + + // Enable printing of debug messages from ImageMagick + void debug(const bool flag_); + bool debug(void) const; + + // Vertical and horizontal resolution in pixels of the image + void density(const Point &density_); + Point density(void) const; + + // Image depth (bits allocated to red/green/blue components) + void depth(const size_t depth_); + size_t depth(void) const; + + // Tile names from within an image montage + std::string directory(void) const; + + // Endianness (little like Intel or big like SPARC) for image + // formats which support endian-specific options. + void endian(const EndianType endian_); + EndianType endian(void) const; + + // Exif profile (BLOB) + void exifProfile(const Blob &exifProfile_); + Blob exifProfile(void) const; + + // Image file name + void fileName(const std::string &fileName_); + std::string fileName(void) const; + + // Number of bytes of the image on disk + MagickSizeType fileSize(void) const; + + // Color to use when filling drawn objects + void fillColor(const Color &fillColor_); + Color fillColor(void) const; + + // Rule to use when filling drawn objects + void fillRule(const FillRule &fillRule_); + FillRule fillRule(void) const; + + // Pattern to use while filling drawn objects. + void fillPattern(const Image &fillPattern_); + Image fillPattern(void) const; + + // Filter to use when resizing image + void filterType(const FilterType filterType_); + FilterType filterType(void) const; + + // Text rendering font + void font(const std::string &font_); + std::string font(void) const; + + // Font family + void fontFamily(const std::string &family_); + std::string fontFamily(void) const; + + // Font point size + void fontPointsize(const double pointSize_); + double fontPointsize(void) const; + + // Font style + void fontStyle(const StyleType style_); + StyleType fontStyle(void) const; + + // Font weight + void fontWeight(const size_t weight_); + size_t fontWeight(void) const; + + // Long image format description + std::string format(void) const; + + // Formats the specified expression + // More info here: http://www.imagemagick.org/script/escape.php + std::string formatExpression(const std::string expression); + + // Gamma level of the image + double gamma(void) const; + + // Preferred size of the image when encoding + Geometry geometry(void) const; + + // GIF disposal method + void gifDisposeMethod(const DisposeType disposeMethod_); + DisposeType gifDisposeMethod(void) const; + + bool hasChannel(const PixelChannel channel) const; + + // When comparing images, emphasize pixel differences with this color. + void highlightColor(const Color color_); + + // ICC color profile (BLOB) + void iccColorProfile(const Blob &colorProfile_); + Blob iccColorProfile(void) const; + + // Type of interlacing to use + void interlaceType(const InterlaceType interlace_); + InterlaceType interlaceType(void) const; + + // Pixel color interpolation method to use + void interpolate(const PixelInterpolateMethod interpolate_); + PixelInterpolateMethod interpolate(void) const; + + // IPTC profile (BLOB) + void iptcProfile(const Blob &iptcProfile_); + Blob iptcProfile(void) const; + + // Returns true if none of the pixels in the image have an alpha value + // other than OpaqueAlpha (QuantumRange). + bool isOpaque(void) const; + + // Does object contain valid image? + void isValid(const bool isValid_); + bool isValid(void) const; + + // Image label + void label(const std::string &label_); + std::string label(void) const; + + // When comparing images, de-emphasize pixel differences with this color. + void lowlightColor(const Color color_); + + // File type magick identifier (.e.g "GIF") + void magick(const std::string &magick_); + std::string magick(void) const; + + // When comparing images, set pixels with a read mask to this color. + void masklightColor(const Color color_); + + // The mean error per pixel computed when an image is color reduced + double meanErrorPerPixel(void) const; + + // Image modulus depth (minimum number of bits required to support + // red/green/blue components without loss of accuracy) + void modulusDepth(const size_t modulusDepth_); + size_t modulusDepth(void) const; + + // Transform image to black and white + void monochrome(const bool monochromeFlag_); + bool monochrome(void) const; + + // Tile size and offset within an image montage + Geometry montageGeometry(void) const; + + // The normalized max error per pixel computed when an image is + // color reduced. + double normalizedMaxError(void) const; + + // The normalized mean error per pixel computed when an image is + // color reduced. + double normalizedMeanError(void) const; + + // Image orientation + void orientation(const OrientationType orientation_); + OrientationType orientation(void) const; + + // Preferred size and location of an image canvas. + void page(const Geometry &pageSize_); + Geometry page(void) const; + + // JPEG/MIFF/PNG compression level (default 75). + void quality(const size_t quality_); + size_t quality(void) const; + + // Maximum number of colors to quantize to + void quantizeColors(const size_t colors_); + size_t quantizeColors(void) const; + + // Colorspace to quantize in. + void quantizeColorSpace(const ColorspaceType colorSpace_); + ColorspaceType quantizeColorSpace(void) const; + + // Dither image during quantization (default true). + void quantizeDither(const bool ditherFlag_); + bool quantizeDither(void) const; + + // Dither method + void quantizeDitherMethod(const DitherMethod ditherMethod_); + DitherMethod quantizeDitherMethod(void) const; + + // Quantization tree-depth + void quantizeTreeDepth(const size_t treeDepth_); + size_t quantizeTreeDepth(void) const; + + // Suppress all warning messages. Error messages are still reported. + void quiet(const bool quiet_); + bool quiet(void) const; + + // The type of rendering intent + void renderingIntent(const RenderingIntent renderingIntent_); + RenderingIntent renderingIntent(void) const; + + // Units of image resolution + void resolutionUnits(const ResolutionType resolutionUnits_); + ResolutionType resolutionUnits(void) const; + + // The number of pixel rows in the image + size_t rows(void) const; + + // Image scene number + void scene(const size_t scene_); + size_t scene(void) const; + + // Width and height of a raw image + void size(const Geometry &geometry_); + Geometry size(void) const; + + // enabled/disable stroke anti-aliasing + void strokeAntiAlias(const bool flag_); + bool strokeAntiAlias(void) const; + + // Color to use when drawing object outlines + void strokeColor(const Color &strokeColor_); + Color strokeColor(void) const; + + // Specify the pattern of dashes and gaps used to stroke + // paths. The strokeDashArray represents a zero-terminated array + // of numbers that specify the lengths of alternating dashes and + // gaps in pixels. If an odd number of values is provided, then + // the list of values is repeated to yield an even number of + // values. A typical strokeDashArray_ array might contain the + // members 5 3 2 0, where the zero value indicates the end of the + // pattern array. + void strokeDashArray(const double *strokeDashArray_); + const double *strokeDashArray(void) const; + + // While drawing using a dash pattern, specify distance into the + // dash pattern to start the dash (default 0). + void strokeDashOffset(const double strokeDashOffset_); + double strokeDashOffset(void) const; + + // Specify the shape to be used at the end of open subpaths when + // they are stroked. Values of LineCap are UndefinedCap, ButtCap, + // RoundCap, and SquareCap. + void strokeLineCap(const LineCap lineCap_); + LineCap strokeLineCap(void) const; + + // Specify the shape to be used at the corners of paths (or other + // vector shapes) when they are stroked. Values of LineJoin are + // UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin. + void strokeLineJoin(const LineJoin lineJoin_); + LineJoin strokeLineJoin(void) const; + + // Specify miter limit. When two line segments meet at a sharp + // angle and miter joins have been specified for 'lineJoin', it is + // possible for the miter to extend far beyond the thickness of + // the line stroking the path. The miterLimit' imposes a limit on + // the ratio of the miter length to the 'lineWidth'. The default + // value of this parameter is 4. + void strokeMiterLimit(const size_t miterLimit_); + size_t strokeMiterLimit(void) const; + + // Pattern image to use while stroking object outlines. + void strokePattern(const Image &strokePattern_); + Image strokePattern(void) const; + + // Stroke width for drawing vector objects (default one) + void strokeWidth(const double strokeWidth_); + double strokeWidth(void) const; + + // Subimage of an image sequence + void subImage(const size_t subImage_); + size_t subImage(void) const; + + // Number of images relative to the base image + void subRange(const size_t subRange_); + size_t subRange(void) const; + + // Anti-alias Postscript and TrueType fonts (default true) + void textAntiAlias(const bool flag_); + bool textAntiAlias(void) const; + + // Render text right-to-left or left-to-right. + void textDirection(DirectionType direction_); + DirectionType textDirection() const; + + // Annotation text encoding (e.g. "UTF-16") + void textEncoding(const std::string &encoding_); + std::string textEncoding(void) const; + + // Text gravity. + void textGravity(GravityType gravity_); + GravityType textGravity() const; + + // Text inter-line spacing + void textInterlineSpacing(double spacing_); + double textInterlineSpacing(void) const; + + // Text inter-word spacing + void textInterwordSpacing(double spacing_); + double textInterwordSpacing(void) const; + + // Text inter-character kerning + void textKerning(double kerning_); + double textKerning(void) const; + + // Text undercolor box + void textUnderColor(const Color &underColor_); + Color textUnderColor(void) const; + + // Number of colors in the image + size_t totalColors(void) const; + + // Rotation to use when annotating with text or drawing + void transformRotation(const double angle_); + + // Skew to use in X axis when annotating with text or drawing + void transformSkewX(const double skewx_); + + // Skew to use in Y axis when annotating with text or drawing + void transformSkewY(const double skewy_); + + // Image representation type (also see type operation) + // Available types: + // Bilevel Grayscale GrayscaleMatte + // Palette PaletteMatte TrueColor + // TrueColorMatte ColorSeparation ColorSeparationMatte + void type(const ImageType type_); + ImageType type(void) const; + + // Print detailed information about the image + void verbose(const bool verboseFlag_); + bool verbose(void) const; + + // Virtual pixel method + void virtualPixelMethod(const VirtualPixelMethod virtualPixelMethod_); + VirtualPixelMethod virtualPixelMethod(void) const; + + // X11 display to display to, obtain fonts from, or to capture + // image from + void x11Display(const std::string &display_); + std::string x11Display(void) const; + + // x resolution of the image + double xResolution(void) const; + + // y resolution of the image + double yResolution(void) const; + + // Adaptive-blur image with specified blur factor + // The radius_ parameter specifies the radius of the Gaussian, in + // pixels, not counting the center pixel. The sigma_ parameter + // specifies the standard deviation of the Laplacian, in pixels. + void adaptiveBlur(const double radius_=0.0,const double sigma_=1.0); + + // This is shortcut function for a fast interpolative resize using mesh + // interpolation. It works well for small resizes of less than +/- 50% + // of the original image size. For larger resizing on images a full + // filtered and slower resize function should be used instead. + void adaptiveResize(const Geometry &geometry_); + + // Adaptively sharpens the image by sharpening more intensely near image + // edges and less intensely far from edges. We sharpen the image with a + // Gaussian operator of the given radius and standard deviation (sigma). + // For reasonable results, radius should be larger than sigma. + void adaptiveSharpen(const double radius_=0.0,const double sigma_=1.0); + void adaptiveSharpenChannel(const ChannelType channel_, + const double radius_=0.0,const double sigma_=1.0); + + // Local adaptive threshold image + // http://www.dai.ed.ac.uk/HIPR2/adpthrsh.htm + // Width x height define the size of the pixel neighborhood + // bias = constant to subtract from pixel neighborhood mean + void adaptiveThreshold(const size_t width_,const size_t height_, + const double bias_=0.0); + + // Add noise to image with specified noise type + void addNoise(const NoiseType noiseType_,const double attenuate_=1.0); + void addNoiseChannel(const ChannelType channel_, + const NoiseType noiseType_,const double attenuate_=1.0); + + // Transform image by specified affine (or free transform) matrix. + void affineTransform(const DrawableAffine &affine); + + // Set or attenuate the alpha channel in the image. If the image + // pixels are opaque then they are set to the specified alpha + // value, otherwise they are blended with the supplied alpha + // value. The value of alpha_ ranges from 0 (completely opaque) + // to QuantumRange. The defines OpaqueAlpha and TransparentAlpha are + // available to specify completely opaque or completely + // transparent, respectively. + void alpha(const unsigned int alpha_); + + // AlphaChannel() activates, deactivates, resets, or sets the alpha + // channel. + void alphaChannel(AlphaChannelOption alphaOption_); + + // + // Annotate image (draw text on image) + // + // Gravity effects text placement in bounding area according to rules: + // NorthWestGravity text bottom-left corner placed at top-left + // NorthGravity text bottom-center placed at top-center + // NorthEastGravity text bottom-right corner placed at top-right + // WestGravity text left-center placed at left-center + // CenterGravity text center placed at center + // EastGravity text right-center placed at right-center + // SouthWestGravity text top-left placed at bottom-left + // SouthGravity text top-center placed at bottom-center + // SouthEastGravity text top-right placed at bottom-right + + // Annotate using specified text, and placement location + void annotate(const std::string &text_,const Geometry &location_); + + // Annotate using specified text, bounding area, and placement + // gravity + void annotate(const std::string &text_,const Geometry &boundingArea_, + const GravityType gravity_); + + // Annotate with text using specified text, bounding area, + // placement gravity, and rotation. + void annotate(const std::string &text_,const Geometry &boundingArea_, + const GravityType gravity_,const double degrees_); + + // Annotate with text (bounding area is entire image) and placement + // gravity. + void annotate(const std::string &text_,const GravityType gravity_); + + // Inserts the artifact with the specified name and value into + // the artifact tree of the image. + void artifact(const std::string &name_,const std::string &value_); + + // Returns the value of the artifact with the specified name. + std::string artifact(const std::string &name_) const; + + // Access/Update a named image attribute + void attribute(const std::string name_,const char *value_); + void attribute(const std::string name_,const std::string value_); + std::string attribute(const std::string name_) const; + + // Extracts the 'mean' from the image and adjust the image to try + // make set its gamma appropriatally. + void autoGamma(void); + void autoGammaChannel(const ChannelType channel_); + + // Adjusts the levels of a particular image channel by scaling the + // minimum and maximum values to the full quantum range. + void autoLevel(void); + void autoLevelChannel(const ChannelType channel_); + + // Adjusts an image so that its orientation is suitable for viewing. + void autoOrient(void); + + // Automatically selects a threshold and replaces each pixel in the image + // with a black pixel if the image intentsity is less than the selected + // threshold otherwise white. + void autoThreshold(const AutoThresholdMethod method_); + + // Forces all pixels below the threshold into black while leaving all + // pixels at or above the threshold unchanged. + void blackThreshold(const std::string &threshold_); + void blackThresholdChannel(const ChannelType channel_, + const std::string &threshold_); + + // Simulate a scene at nighttime in the moonlight. + void blueShift(const double factor_=1.5); + + // Blur image with specified blur factor + // The radius_ parameter specifies the radius of the Gaussian, in + // pixels, not counting the center pixel. The sigma_ parameter + // specifies the standard deviation of the Laplacian, in pixels. + void blur(const double radius_=0.0,const double sigma_=1.0); + void blurChannel(const ChannelType channel_,const double radius_=0.0, + const double sigma_=1.0); + + // Border image (add border to image) + void border(const Geometry &geometry_=borderGeometryDefault); + + // Changes the brightness and/or contrast of an image. It converts the + // brightness and contrast parameters into slope and intercept and calls + // a polynomical function to apply to the image. + void brightnessContrast(const double brightness_=0.0, + const double contrast_=0.0); + void brightnessContrastChannel(const ChannelType channel_, + const double brightness_=0.0,const double contrast_=0.0); + + // Uses a multi-stage algorithm to detect a wide range of edges in images. + void cannyEdge(const double radius_=0.0,const double sigma_=1.0, + const double lowerPercent_=0.1,const double upperPercent_=0.3); + + // Accepts a lightweight Color Correction Collection + // (CCC) file which solely contains one or more color corrections and + // applies the correction to the image. + void cdl(const std::string &cdl_); + + // Extract channel from image + void channel(const ChannelType channel_); + + // Charcoal effect image (looks like charcoal sketch) + // The radius_ parameter specifies the radius of the Gaussian, in + // pixels, not counting the center pixel. The sigma_ parameter + // specifies the standard deviation of the Laplacian, in pixels. + void charcoal(const double radius_=0.0,const double sigma_=1.0); + void charcoalChannel(const ChannelType channel_,const double radius_=0.0, + const double sigma_=1.0); + + // Chop image (remove vertical or horizontal subregion of image) + // FIXME: describe how geometry argument is used to select either + // horizontal or vertical subregion of image. + void chop(const Geometry &geometry_); + + // Chromaticity blue primary point. + void chromaBluePrimary(const double x_,const double y_,const double z_); + void chromaBluePrimary(double *x_,double *y_,double *z_) const; + + // Chromaticity green primary point. + void chromaGreenPrimary(const double x_,const double y_,const double z_); + void chromaGreenPrimary(double *x_,double *y_,double *z_) const; + + // Chromaticity red primary point. + void chromaRedPrimary(const double x_,const double y_,const double z_); + void chromaRedPrimary(double *x_,double *y_,double *z_) const; + + // Chromaticity white point. + void chromaWhitePoint(const double x_,const double y_,const double z_); + void chromaWhitePoint(double *x_,double *y_,double *z_) const; + + // Set 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. + void clamp(void); + void clampChannel(const ChannelType channel_); + + // Sets the image clip mask based on any clipping path information + // if it exists. + void clip(void); + void clipPath(const std::string pathname_,const bool inside_); + + // Apply a color lookup table (CLUT) to the image. + void clut(const Image &clutImage_,const PixelInterpolateMethod method); + void clutChannel(const ChannelType channel_,const Image &clutImage_, + const PixelInterpolateMethod method); + + // Colorize image with pen color, using specified percent alpha. + void colorize(const unsigned int alpha_,const Color &penColor_); + + // Colorize image with pen color, using specified percent alpha + // for red, green, and blue quantums + void colorize(const unsigned int alphaRed_,const unsigned int alphaGreen_, + const unsigned int alphaBlue_,const Color &penColor_); + + // Color at colormap position index_ + void colorMap(const size_t index_,const Color &color_); + Color colorMap(const size_t index_) const; + + // Apply a color matrix to the image channels. The user supplied + // matrix may be of order 1 to 5 (1x1 through 5x5). + void colorMatrix(const size_t order_,const double *color_matrix_); + + // Compare current image with another image + // False is returned if the images are not identical. + bool compare(const Image &reference_) const; + + // Compare current image with another image + // Returns the distortion based on the specified metric. + double compare(const Image &reference_,const MetricType metric_); + double compareChannel(const ChannelType channel_, + const Image &reference_, + const MetricType metric_ ); + + // Compare current image with another image + // Sets the distortion and returns the difference image. + Image compare(const Image &reference_,const MetricType metric_, + double *distortion); + Image compareChannel(const ChannelType channel_,const Image &reference_, + const MetricType metric_,double *distortion); + + // Compose an image onto another at specified offset and using + // specified algorithm + void composite(const Image &compositeImage_,const Geometry &offset_, + const CompositeOperator compose_=InCompositeOp); + void composite(const Image &compositeImage_,const GravityType gravity_, + const CompositeOperator compose_=InCompositeOp); + void composite(const Image &compositeImage_,const ::ssize_t xOffset_, + const ::ssize_t yOffset_,const CompositeOperator compose_=InCompositeOp); + + // Determines the connected-components of the image + void connectedComponents(const size_t connectivity_); + + // Contrast image (enhance intensity differences in image) + void contrast(const bool sharpen_); + + // A simple image enhancement technique that attempts to improve the + // contrast in an image by 'stretching' the range of intensity values + // it contains to span a desired range of values. It differs from the + // more sophisticated histogram equalization in that it can only apply a + // linear scaling function to the image pixel values. As a result the + // 'enhancement' is less harsh. + void contrastStretch(const double blackPoint_,const double whitePoint_); + void contrastStretchChannel(const ChannelType channel_, + const double blackPoint_,const double whitePoint_); + + // Convolve image. Applies a user-specified convolution to the image. + // order_ represents the number of columns and rows in the filter kernel. + // kernel_ is an array of doubles representing the convolution kernel. + void convolve(const size_t order_,const double *kernel_); + + // Copies pixels from the source image as defined by the geometry the + // destination image at the specified offset. + void copyPixels(const Image &source_,const Geometry &geometry_, + const Offset &offset_); + + // Crop image (subregion of original image) + void crop(const Geometry &geometry_); + + // Cycle image colormap + void cycleColormap(const ::ssize_t amount_); + + // Converts cipher pixels to plain pixels. + void decipher(const std::string &passphrase_); + + // Tagged image format define. Similar to the defineValue() method + // except that passing the flag_ value 'true' creates a value-less + // define with that format and key. Passing the flag_ value 'false' + // removes any existing matching definition. The method returns 'true' + // if a matching key exists, and 'false' if no matching key exists. + void defineSet(const std::string &magick_,const std::string &key_, + bool flag_); + bool defineSet(const std::string &magick_,const std::string &key_) const; + + // Tagged image format define (set/access coder-specific option) The + // magick_ option specifies the coder the define applies to. The key_ + // option provides the key specific to that coder. The value_ option + // provides the value to set (if any). See the defineSet() method if the + // key must be removed entirely. + void defineValue(const std::string &magick_,const std::string &key_, + const std::string &value_); + std::string defineValue(const std::string &magick_, + const std::string &key_) const; + + // Removes skew from the image. Skew is an artifact that occurs in scanned + // images because of the camera being misaligned, imperfections in the + // scanning or surface, or simply because the paper was not placed + // completely flat when scanned. The value of threshold_ ranges from 0 + // to QuantumRange. + void deskew(const double threshold_); + + // Despeckle image (reduce speckle noise) + void despeckle(void); + + // Display image on screen + void display(void); + + // Distort image. distorts an image using various distortion methods, by + // mapping color lookups of the source image to a new destination image + // usally of the same size as the source image, unless 'bestfit' is set to + // true. + void distort(const DistortMethod method_, + const size_t numberArguments_,const double *arguments_, + const bool bestfit_=false); + + // Draw on image using a single drawable + void draw(const Drawable &drawable_); + + // Draw on image using a drawable list + void draw(const std::vector &drawable_); + + // Edge image (hilight edges in image) + void edge(const double radius_=0.0); + + // Emboss image (hilight edges with 3D effect) + // The radius_ parameter specifies the radius of the Gaussian, in + // pixels, not counting the center pixel. The sigma_ parameter + // specifies the standard deviation of the Laplacian, in pixels. + void emboss(const double radius_=0.0,const double sigma_=1.0); + + // Converts pixels to cipher-pixels. + void encipher(const std::string &passphrase_); + + // Enhance image (minimize noise) + void enhance(void); + + // Equalize image (histogram equalization) + void equalize(void); + + // Erase image to current "background color" + void erase(void); + + // Apply a value with an arithmetic, relational, or logical operator. + void evaluate(const ChannelType channel_, + const MagickEvaluateOperator operator_,double rvalue_); + + // Apply a value with an arithmetic, relational, or logical operator. + void evaluate(const ChannelType channel_,const MagickFunction function_, + const size_t number_parameters_,const double *parameters_); + + // Apply a value with an arithmetic, relational, or logical operator. + void evaluate(const ChannelType channel_,const ::ssize_t x_, + const ::ssize_t y_,const size_t columns_,const size_t rows_, + const MagickEvaluateOperator operator_,const double rvalue_); + + // Extend the image as defined by the geometry. + void extent(const Geometry &geometry_); + void extent(const Geometry &geometry_,const Color &backgroundColor); + void extent(const Geometry &geometry_,const Color &backgroundColor, + const GravityType gravity_); + void extent(const Geometry &geometry_,const GravityType gravity_); + + // Flip image (reflect each scanline in the vertical direction) + void flip(void); + + // Floodfill pixels matching color (within fuzz factor) of target + // pixel(x,y) with replacement alpha value. + void floodFillAlpha(const ::ssize_t x_,const ::ssize_t y_, + const unsigned int alpha_,const bool invert_=false); + + // Floodfill designated area with replacement alpha value + void floodFillAlpha(const ssize_t x_,const ssize_t y_, + const unsigned int alpha_,const Color &target_,const bool invert_=false); + + // Flood-fill color across pixels that match the color of the + // target pixel and are neighbors of the target pixel. + // Uses current fuzz setting when determining color match. + void floodFillColor(const Geometry &point_,const Color &fillColor_, + const bool invert_=false); + void floodFillColor(const ::ssize_t x_,const ::ssize_t y_, + const Color &fillColor_,const bool invert_=false); + + // Flood-fill color across pixels starting at target-pixel and + // stopping at pixels matching specified border color. + // Uses current fuzz setting when determining color match. + void floodFillColor(const Geometry &point_,const Color &fillColor_, + const Color &borderColor_,const bool invert_=false); + void floodFillColor(const ::ssize_t x_,const ::ssize_t y_, + const Color &fillColor_,const Color &borderColor_, + const bool invert_=false); + + // Flood-fill texture across pixels that match the color of the + // target pixel and are neighbors of the target pixel. + // Uses current fuzz setting when determining color match. + void floodFillTexture(const Geometry &point_,const Image &texture_, + const bool invert_=false); + void floodFillTexture(const ::ssize_t x_,const ::ssize_t y_, + const Image &texture_,const bool invert_=false); + + // Flood-fill texture across pixels starting at target-pixel and + // stopping at pixels matching specified border color. + // Uses current fuzz setting when determining color match. + void floodFillTexture(const Geometry &point_,const Image &texture_, + const Color &borderColor_,const bool invert_=false); + void floodFillTexture(const ::ssize_t x_,const ::ssize_t y_, + const Image &texture_,const Color &borderColor_, + const bool invert_=false); + + // Flop image (reflect each scanline in the horizontal direction) + void flop(void); + + // Obtain font metrics for text string given current font, + // pointsize, and density settings. + void fontTypeMetrics(const std::string &text_,TypeMetric *metrics); + + // Obtain multi line font metrics for text string given current font, + // pointsize, and density settings. + void fontTypeMetricsMultiline(const std::string &text_, + TypeMetric *metrics); + + // Frame image + void frame(const Geometry &geometry_=frameGeometryDefault); + void frame(const size_t width_,const size_t height_, + const ::ssize_t innerBevel_=6,const ::ssize_t outerBevel_=6); + + // Applies a mathematical expression to the image. + void fx(const std::string expression_); + void fx(const std::string expression_,const Magick::ChannelType channel_); + + // Gamma correct image + void gamma(const double gamma_); + void gamma(const double gammaRed_,const double gammaGreen_, + const double gammaBlue_); + + // Gaussian blur image + // The number of neighbor pixels to be included in the convolution + // mask is specified by 'radius_'. The standard deviation of the + // gaussian bell curve is specified by 'sigma_'. + void gaussianBlur(const double radius_,const double sigma_); + void gaussianBlurChannel(const ChannelType channel_,const double radius_, + const double sigma_); + + // Transfers read-only pixels from the image to the pixel cache as + // defined by the specified region + const Quantum *getConstPixels(const ::ssize_t x_, const ::ssize_t y_, + const size_t columns_,const size_t rows_) const; + + // Obtain immutable image pixel metacontent (valid for PseudoClass images) + const void *getConstMetacontent(void) const; + + // Obtain mutable image pixel metacontent (valid for PseudoClass images) + void *getMetacontent(void); + + // Transfers pixels from the image to the pixel cache as defined + // by the specified region. Modified pixels may be subsequently + // transferred back to the image via syncPixels. This method is + // valid for DirectClass images. + Quantum *getPixels(const ::ssize_t x_,const ::ssize_t y_, + const size_t columns_,const size_t rows_); + + // Converts the colors in the image to gray. + void grayscale(const PixelIntensityMethod method_); + + // Apply a color lookup table (Hald CLUT) to the image. + void haldClut(const Image &clutImage_); + + // Identifies lines in the image. + void houghLine(const size_t width_,const size_t height_, + const size_t threshold_=40); + + // Identifies the potential color type of the image. This method can be + // used to detect if the type can be changed to GrayScale. + ImageType identifyType(void) const; + + // Implode image (special effect) + void implode(const double factor_); + + // Implements the inverse discrete Fourier transform (DFT) of the image + // either as a magnitude / phase or real / imaginary image pair. + void inverseFourierTransform(const Image &phase_); + void inverseFourierTransform(const Image &phase_,const bool magnitude_); + + // An edge preserving noise reduction filter. + void kuwahara(const double radius_=0.0,const double sigma_=1.0); + void kuwaharaChannel(const ChannelType channel_,const double radius_=0.0, + const double sigma_=1.0); + + // Level image. Adjust the levels of the image by scaling the + // colors falling between specified white and black points to the + // full available quantum range. The parameters provided represent + // the black, mid (gamma), and white points. The black point + // specifies the darkest color in the image. Colors darker than + // the black point are set to zero. Mid point (gamma) specifies a + // gamma correction to apply to the image. White point specifies + // the lightest color in the image. Colors brighter than the + // white point are set to the maximum quantum value. The black and + // white point have the valid range 0 to QuantumRange while mid (gamma) + // has a useful range of 0 to ten. + void level(const double blackPoint_,const double whitePoint_, + const double gamma_=1.0); + void levelChannel(const ChannelType channel_,const double blackPoint_, + const double whitePoint_,const double gamma_=1.0); + + // Maps the given color to "black" and "white" values, linearly spreading + // out the colors, and level values on a channel by channel bases, as + // per level(). The given colors allows you to specify different level + // ranges for each of the color channels separately. + void levelColors(const Color &blackColor_,const Color &whiteColor_, + const bool invert_=true); + void levelColorsChannel(const ChannelType channel_, + const Color &blackColor_,const Color &whiteColor_, + const bool invert_=true); + + // Levelize applies the reversed level operation to just the specific + // channels specified.It compresses the full range of color values, so + // that they lie between the given black and white points. Gamma is + // applied before the values are mapped. + void levelize(const double blackPoint_,const double whitePoint_, + const double gamma_=1.0); + void levelizeChannel(const ChannelType channel_,const double blackPoint_, + const double whitePoint_,const double gamma_=1.0); + + // Discards any pixels below the black point and above the white point and + // levels the remaining pixels. + void linearStretch(const double blackPoint_,const double whitePoint_); + + // Rescales image with seam carving. + void liquidRescale(const Geometry &geometry_); + + // Local contrast enhancement + void localContrast(const double radius_,const double strength_); + void localContrastChannel(const ChannelType channel_,const double radius_, + const double strength_); + + // Magnify image by integral size + void magnify(void); + + // Remap image colors with closest color from reference image + void map(const Image &mapImage_,const bool dither_=false); + + // Delineate arbitrarily shaped clusters in the image. + void meanShift(const size_t width_,const size_t height_, + const double color_distance_); + + // Filter image by replacing each pixel component with the median + // color in a circular neighborhood + void medianFilter(const double radius_=0.0); + + // Reduce image by integral size + void minify(void); + + // Modulate percent hue, saturation, and brightness of an image + void modulate(const double brightness_,const double saturation_, + const double hue_); + + // Returns the normalized moments of one or more image channels. + ImageMoments moments(void) const; + + // Applies a kernel to the image according to the given mophology method. + void morphology(const MorphologyMethod method_,const std::string kernel_, + const ssize_t iterations_=1); + void morphology(const MorphologyMethod method_, + const KernelInfoType kernel_,const std::string arguments_, + const ssize_t iterations_=1); + void morphologyChannel(const ChannelType channel_, + const MorphologyMethod method_,const std::string kernel_, + const ssize_t iterations_=1); + void morphologyChannel(const ChannelType channel_, + const MorphologyMethod method_,const KernelInfoType kernel_, + const std::string arguments_,const ssize_t iterations_=1); + + // Motion blur image with specified blur factor + // The radius_ parameter specifies the radius of the Gaussian, in + // pixels, not counting the center pixel. The sigma_ parameter + // specifies the standard deviation of the Laplacian, in pixels. + // The angle_ parameter specifies the angle the object appears + // to be comming from (zero degrees is from the right). + void motionBlur(const double radius_,const double sigma_, + const double angle_); + + // Negate colors in image. Set grayscale to only negate grayscale + // values in image. + void negate(const bool grayscale_=false); + void negateChannel(const ChannelType channel_,const bool grayscale_=false); + + // Normalize image (increase contrast by normalizing the pixel + // values to span the full range of color values) + void normalize(void); + + // Oilpaint image (image looks like oil painting) + void oilPaint(const double radius_=0.0,const double sigma=1.0); + + // Change color of opaque pixel to specified pen color. + void opaque(const Color &opaqueColor_,const Color &penColor_, + const bool invert_=false); + + // Perform a ordered dither based on a number of pre-defined dithering + // threshold maps, but over multiple intensity levels. + void orderedDither(std::string thresholdMap_); + void orderedDitherChannel(const ChannelType channel_, + std::string thresholdMap_); + + // Set each pixel whose value is less than epsilon to epsilon or + // -epsilon (whichever is closer) otherwise the pixel value remains + // unchanged. + void perceptible(const double epsilon_); + void perceptibleChannel(const ChannelType channel_,const double epsilon_); + + // Returns the perceptual hash for this image. + Magick::ImagePerceptualHash perceptualHash() const; + + // Ping is similar to read except only enough of the image is read + // to determine the image columns, rows, and filesize. Access the + // columns(), rows(), and fileSize() attributes after invoking + // ping. The image data is not valid after calling ping. + void ping(const std::string &imageSpec_); + + // Ping is similar to read except only enough of the image is read + // to determine the image columns, rows, and filesize. Access the + // columns(), rows(), and fileSize() attributes after invoking + // ping. The image data is not valid after calling ping. + void ping(const Blob &blob_); + + // Get/set pixel color at location x & y. + void pixelColor(const ::ssize_t x_,const ::ssize_t y_,const Color &color_); + Color pixelColor(const ::ssize_t x_,const ::ssize_t y_ ) const; + + // Simulates a Polaroid picture. + void polaroid(const std::string &caption_,const double angle_, + const PixelInterpolateMethod method_); + + // Reduces the image to a limited number of colors for a "poster" effect. + void posterize(const size_t levels_,const DitherMethod method_); + void posterizeChannel(const ChannelType channel_,const size_t levels_, + const DitherMethod method_); + + // Execute a named process module using an argc/argv syntax similar to + // that accepted by a C 'main' routine. An exception is thrown if the + // requested process module doesn't exist, fails to load, or fails during + // execution. + void process(std::string name_,const ::ssize_t argc_,const char **argv_); + + // Add or remove a named profile to/from the image. Remove the + // profile by passing an empty Blob (e.g. Blob()). Valid names are + // "*", "8BIM", "ICM", "IPTC", or a user/format-defined profile name. + void profile(const std::string name_,const Blob &colorProfile_); + + // Retrieve a named profile from the image. Valid names are: + // "8BIM", "8BIMTEXT", "APP1", "APP1JPEG", "ICC", "ICM", & "IPTC" + // or an existing user/format-defined profile name. + Blob profile(const std::string name_) const; + + // Quantize image (reduce number of colors) + void quantize(const bool measureError_=false); + + // Raise image (lighten or darken the edges of an image to give a + // 3-D raised or lowered effect) + void raise(const Geometry &geometry_=raiseGeometryDefault, + const bool raisedFlag_=false); + + // Random threshold image. + // + // Changes the value of individual pixels based on the intensity + // of each pixel compared to a random threshold. The result is a + // low-contrast, two color image. + void randomThreshold(const double low_,const double high_); + void randomThresholdChannel(const ChannelType channel_,const double low_, + const double high_); + + // Read single image frame from in-memory BLOB + void read(const Blob &blob_); + + // Read single image frame of specified size from in-memory BLOB + void read(const Blob &blob_,const Geometry &size_); + + // Read single image frame of specified size and depth from + // in-memory BLOB + void read(const Blob &blob_,const Geometry &size_,const size_t depth_); + + // Read single image frame of specified size, depth, and format + // from in-memory BLOB + void read(const Blob &blob_,const Geometry &size_,const size_t depth_, + const std::string &magick_); + + // Read single image frame of specified size, and format from + // in-memory BLOB + void read(const Blob &blob_,const Geometry &size_, + const std::string &magick_); + + // Read single image frame of specified size into current object + void read(const Geometry &size_,const std::string &imageSpec_); + + // Read single image frame from an array of raw pixels, with + // specified storage type (ConstituteImage), e.g. + // image.read( 640, 480, "RGB", 0, pixels ); + void read(const size_t width_,const size_t height_,const std::string &map_, + const StorageType type_,const void *pixels_); + + // Read single image frame into current object + void read(const std::string &imageSpec_); + + // Associate a mask with the image. The mask must be the same dimensions + // as the image. Pass an invalid image to unset an existing mask. + void readMask(const Image &mask_); + Image readMask(void) const; + + // Transfers one or more pixel components from a buffer or file + // into the image pixel cache of an image. + // Used to support image decoders. + void readPixels(const QuantumType quantum_,const unsigned char *source_); + + // Reduce noise in image using a noise peak elimination filter + void reduceNoise(void); + void reduceNoise(const size_t order_); + + // Resets the image page canvas and position. + void repage(); + + // Resize image in terms of its pixel size. + void resample(const Point &density_); + + // Resize image to specified size. + void resize(const Geometry &geometry_); + + // Roll image (rolls image vertically and horizontally) by specified + // number of columnms and rows) + void roll(const Geometry &roll_); + void roll(const size_t columns_,const size_t rows_); + + // Rotate image clockwise by specified number of degrees. Specify a + // negative number for degrees to rotate counter-clockwise. + void rotate(const double degrees_); + + // Rotational blur image. + void rotationalBlur(const double angle_); + void rotationalBlurChannel(const ChannelType channel_,const double angle_); + + // Resize image by using pixel sampling algorithm + void sample(const Geometry &geometry_); + + // Resize image by using simple ratio algorithm + void scale(const Geometry &geometry_); + + // Segment (coalesce similar image components) by analyzing the + // histograms of the color components and identifying units that + // are homogeneous with the fuzzy c-means technique. Also uses + // QuantizeColorSpace and Verbose image attributes + void segment(const double clusterThreshold_=1.0, + const double smoothingThreshold_=1.5); + + // Selectively blur pixels within a contrast threshold. It is similar to + // the unsharpen mask that sharpens everything with contrast above a + // certain threshold. + void selectiveBlur(const double radius_,const double sigma_, + const double threshold_); + void selectiveBlurChannel(const ChannelType channel_,const double radius_, + const double sigma_,const double threshold_); + + // Separates a channel from the image and returns it as a grayscale image. + Image separate(const ChannelType channel_) const; + + // 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. + void sepiaTone(const double threshold_); + + // Sets meanErrorPerPixel, normalizedMaxError, and normalizedMeanError + // in the current image. False is returned if the images are not identical. + bool setColorMetric(const Image &reference_); + + // Allocates a pixel cache region to store image pixels as defined + // by the region rectangle. This area is subsequently transferred + // from the pixel cache to the image via syncPixels. + Quantum *setPixels(const ::ssize_t x_, const ::ssize_t y_, + const size_t columns_,const size_t rows_); + + // Shade image using distant light source + void shade(const double azimuth_=30,const double elevation_=30, + const bool colorShading_=false); + + // Simulate an image shadow + void shadow(const double percentAlpha_=80.0,const double sigma_=0.5, + const ssize_t x_=5,const ssize_t y_=5); + + // Sharpen pixels in image + // The radius_ parameter specifies the radius of the Gaussian, in + // pixels, not counting the center pixel. The sigma_ parameter + // specifies the standard deviation of the Laplacian, in pixels. + void sharpen(const double radius_=0.0,const double sigma_=1.0); + void sharpenChannel(const ChannelType channel_,const double radius_=0.0, + const double sigma_=1.0); + + // Shave pixels from image edges. + void shave(const Geometry &geometry_); + + // Shear image (create parallelogram by sliding image by X or Y axis) + void shear(const double xShearAngle_,const double yShearAngle_); + + // adjust the image contrast with a non-linear sigmoidal contrast algorithm + void sigmoidalContrast(const bool sharpen_,const double contrast, + const double midpoint=QuantumRange/2.0); + + // Image signature. Set force_ to true in order to re-calculate + // the signature regardless of whether the image data has been + // modified. + std::string signature(const bool force_=false) const; + + // 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. + void sketch(const double radius_=0.0,const double sigma_=1.0, + const double angle_=0.0); + + // Solarize image (similar to effect seen when exposing a + // photographic film to light during the development process) + void solarize(const double factor_=50.0); + + // Sparse color image, given a set of coordinates, interpolates the colors + // found at those coordinates, across the whole image, using various + // methods. + void sparseColor(const ChannelType channel_, + const SparseColorMethod method_,const size_t numberArguments_, + const double *arguments_); + + // Splice the background color into the image. + void splice(const Geometry &geometry_); + void splice(const Geometry &geometry_,const Color &backgroundColor_); + void splice(const Geometry &geometry_,const Color &backgroundColor_, + const GravityType gravity_); + + // Spread pixels randomly within image by specified ammount + void spread(const double amount_=3.0); + + // Returns the statistics for this image. + Magick::ImageStatistics statistics() const; + + // Add a digital watermark to the image (based on second image) + void stegano(const Image &watermark_); + + // Create an image which appears in stereo when viewed with + // red-blue glasses (Red image on left, blue on right) + void stereo(const Image &rightImage_); + + // Strip strips an image of all profiles and comments. + void strip(void); + + // Search for the specified image at EVERY possible location in this image. + // This is slow! very very slow.. 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. + Image subImageSearch(const Image &reference_,const MetricType metric_, + Geometry *offset_,double *similarityMetric_, + const double similarityThreshold=(-1.0)); + + // Swirl image (image pixels are rotated by degrees) + void swirl(const double degrees_); + + // Transfers the image cache pixels to the image. + void syncPixels(void); + + // Channel a texture on image background + void texture(const Image &texture_); + + // Threshold image + void threshold(const double threshold_); + + // Resize image to thumbnail size + void thumbnail(const Geometry &geometry_); + + // 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)))) + void tint(const std::string opacity_); + + // Origin of coordinate system to use when annotating with text or drawing + void transformOrigin(const double x_,const double y_); + + // Reset transformation parameters to default + void transformReset(void); + + // Scale to use when annotating with text or drawing + void transformScale(const double sx_,const double sy_); + + // Add matte image to image, setting pixels matching color to + // transparent + void transparent(const Color &color_,const bool inverse_=false); + + // Add matte image to image, for all the pixels that lies in between + // the given two color + void transparentChroma(const Color &colorLow_,const Color &colorHigh_); + + // Creates a horizontal mirror image by reflecting the pixels around the + // central y-axis while rotating them by 90 degrees. + void transpose(void); + + // Creates a vertical mirror image by reflecting the pixels around the + // central x-axis while rotating them by 270 degrees. + void transverse(void); + + // Trim edges that are the background color from the image + void trim(void); + + // Returns the unique colors of an image. + Image uniqueColors(void) const; + + // Replace image with a sharpened version of the original image + // using the unsharp mask algorithm. + // radius_ + // the radius of the Gaussian, in pixels, not counting the + // center pixel. + // sigma_ + // the standard deviation of the Gaussian, in pixels. + // amount_ + // the percentage of the difference between the original and + // the blur image that is added back into the original. + // threshold_ + // the threshold in pixels needed to apply the diffence amount. + void unsharpmask(const double radius_,const double sigma_, + const double amount_,const double threshold_); + void unsharpmaskChannel(const ChannelType channel_,const double radius_, + const double sigma_,const double amount_,const double threshold_); + + // Softens the edges of the image in vignette style. + void vignette(const double radius_=0.0,const double sigma_=1.0, + const ssize_t x_=0,const ssize_t y_=0); + + // Map image pixels to a sine wave + void wave(const double amplitude_=25.0,const double wavelength_=150.0); + + // Removes noise from the image using a wavelet transform. + void waveletDenoise(const double threshold_,const double softness_); + + // Forces all pixels above the threshold into white while leaving all + // pixels at or below the threshold unchanged. + void whiteThreshold(const std::string &threshold_); + void whiteThresholdChannel(const ChannelType channel_, + const std::string &threshold_); + + // Write single image frame to in-memory BLOB, with optional + // format and adjoin parameters. + void write(Blob *blob_); + void write(Blob *blob_,const std::string &magick_); + void write(Blob *blob_,const std::string &magick_,const size_t depth_); + + // Write single image frame to an array of pixels with storage + // type specified by user (DispatchImage), e.g. + // image.write( 0, 0, 640, 1, "RGB", 0, pixels ); + void write(const ::ssize_t x_,const ::ssize_t y_,const size_t columns_, + const size_t rows_,const std::string &map_,const StorageType type_, + void *pixels_); + + // Write single image frame to a file + void write(const std::string &imageSpec_); + + // Associate a mask with the image. The mask must be the same dimensions + // as the image. Pass an invalid image to unset an existing mask. + void writeMask(const Image &mask_); + Image writeMask(void) const; + + // Transfers one or more pixel components from the image pixel + // cache to a buffer or file. + // Used to support image encoders. + void writePixels(const QuantumType quantum_,unsigned char *destination_); + + // Zoom image to specified size. + void zoom(const Geometry &geometry_); + + ////////////////////////////////////////////////////////////////////// + // + // No user-serviceable parts beyond this point + // + ////////////////////////////////////////////////////////////////////// + + // Construct with MagickCore::Image and default options + Image(MagickCore::Image *image_); + + // Retrieve Image* + MagickCore::Image *&image(void); + const MagickCore::Image *constImage(void) const; + + // Retrieve ImageInfo* + MagickCore::ImageInfo *imageInfo(void); + const MagickCore::ImageInfo *constImageInfo(void) const; + + // Retrieve Options* + Options *options(void); + const Options *constOptions(void) const; + + // Retrieve QuantizeInfo* + MagickCore::QuantizeInfo *quantizeInfo(void); + const MagickCore::QuantizeInfo *constQuantizeInfo(void) const; + + // Prepare to update image (copy if reference > 1) + void modifyImage(void); + + // Replace current image (reference counted) + MagickCore::Image *replaceImage(MagickCore::Image *replacement_); + + private: + + void floodFill(const ssize_t x_,const ssize_t y_, + const Magick::Image *fillPattern_,const Color &fill_, + const PixelInfo *target,const bool invert_); + + void mask(const Image &mask_,const PixelMask); + Image mask(const PixelMask) const; + + void read(MagickCore::Image *image, + MagickCore::ExceptionInfo *exceptionInfo); + + ImageRef *_imgRef; + }; + +} // end of namespace Magick + +#endif // Magick_Image_header diff --git a/include/ImageMagick-7/Magick++/Include.h b/include/ImageMagick-7/Magick++/Include.h new file mode 100644 index 0000000..c250fa1 --- /dev/null +++ b/include/ImageMagick-7/Magick++/Include.h @@ -0,0 +1,1555 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002 +// Copyright Dirk Lemstra 2013-2017 +// +// Inclusion of ImageMagick headers (with namespace magic) + +#ifndef Magick_Include_header +#define Magick_Include_header + +#if !defined(_MAGICK_CONFIG_H) +# define _MAGICK_CONFIG_H +# if !defined(vms) && !defined(macintosh) +# include "MagickCore/magick-config.h" +# else +# include "magick-config.h" +# endif +# undef inline // Remove possible definition from config.h +# undef class +#endif + +// Needed for stdio FILE +#include +#include +#include +#include +#include +#include + +#if defined(__BORLANDC__) +# include /* Borland C++ Builder 4.0 requirement */ +#endif // defined(__BORLANDC__) + +// +// Include ImageMagick headers into namespace "MagickCore". If +// MAGICKCORE_IMPLEMENTATION is defined, include ImageMagick development +// headers. This scheme minimizes the possibility of conflict with +// user code. +// +namespace MagickCore +{ +#include +#include +#undef inline // Remove possible definition from config.h + +#undef class +} + +// +// Provide appropriate DLL imports/exports for Visual C++, +// Borland C++Builder and MinGW builds. +// +#if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__) +# define MagickCplusPlusDLLSupported +#endif +#if defined(MagickCplusPlusDLLSupported) +# if defined(_MT) && defined(_DLL) && !defined(_LIB) && !defined(STATIC_MAGICK) +// +// In a native Windows build, the following defines are used: +// +// _MT = Multithreaded +// _DLL = Using code is part of a DLL +// _LIB = Using code is being built as a library. +// _MAGICKMOD_ = Build uses loadable modules (Magick++ does not care about this) +// +// In the case where ImageMagick is built as a static library but the +// using code is dynamic, STATIC_MAGICK may be defined in the project to +// override triggering dynamic library behavior. +// +# if defined(_VISUALC_) +# define MagickDLLExplicitTemplate +# pragma warning( disable: 4275 ) +# pragma warning( disable: 4273 ) /* Disable the stupid dll linkage warnings */ +# pragma warning( disable: 4251 ) +# endif +# if !defined(MAGICKCORE_IMPLEMENTATION) +# if defined(__GNUC__) +# define MagickPPExport __attribute__ ((dllimport)) +# else +# define MagickPPExport __declspec(dllimport) +# endif +# define MagickPPPrivate extern __declspec(dllimport) +# if defined(_VISUALC_) +# pragma message( "Magick++ lib DLL import" ) +# endif +# else +# if defined(__BORLANDC__) || defined(__MINGW32__) +# define MagickPPExport __declspec(dllexport) +# define MagickPPPrivate __declspec(dllexport) +# if defined(__BORLANDC__) +# pragma message( "BCBMagick++ lib DLL export" ) +# endif +# else +# if defined(__GNUC__) +# define MagickPPExport __attribute__ ((dllexport)) +# else +# define MagickPPExport __declspec(dllexport) +# endif +# define MagickPPPrivate extern __declspec(dllexport) +# endif +# if defined(_VISUALC_) +# pragma message( "Magick++ lib DLL export" ) +# endif +# endif +# else +# define MagickPPExport +# define MagickPPPrivate +# if defined(_VISUALC_) +# pragma message( "Magick++ lib static interface" ) +# endif +# if defined(_MSC_VER) && defined(STATIC_MAGICK) && !defined(NOAUTOLINK_MAGICK) +# if defined(_DEBUG) +# if defined(MAGICKCORE_BZLIB_DELEGATE) +# pragma comment(lib, "CORE_DB_bzlib_.lib") +# endif +# if defined(MAGICKCORE_CAIRO_DELEGATE) +# pragma comment(lib, "CORE_DB_cairo_.lib") +# endif +# if defined(MAGICKCORE_OPENEXR_DELEGATE) +# pragma comment(lib, "CORE_DB_exr_.lib") +# endif +# if defined(MAGICKCORE_FLIF_DELEGATE) +# pragma comment(lib, "CORE_DB_flif_.lib") +# endif +# if defined(MAGICKCORE_JBIG_DELEGATE) +# pragma comment(lib, "CORE_DB_jbig_.lib") +# endif +# if defined(MAGICKCORE_JP2_DELEGATE) +# pragma comment(lib, "CORE_DB_jp2_.lib") +# endif +# if defined(MAGICKCORE_JPEG_DELEGATE) +# pragma comment(lib, "CORE_DB_jpeg_.lib") +# endif +# if defined(MAGICKCORE_LCMS_DELEGATE) +# pragma comment(lib, "CORE_DB_lcms_.lib") +# endif +# if defined(MAGICKCORE_HEIC_DELEGATE) +# pragma comment(lib, "CORE_DB_libde265_.lib") +# pragma comment(lib, "CORE_DB_libheif_.lib") +# endif +# if defined(MAGICKCORE_LZMA_DELEGATE) +# pragma comment(lib, "CORE_DB_lzma_.lib") +# endif +# if defined(MAGICKCORE_RAW_R_DELEGATE) +# pragma comment(lib, "CORE_DB_libraw_.lib") +# endif +# if defined(MAGICKCORE_RSVG_DELEGATE) +# pragma comment(lib, "CORE_DB_librsvg_.lib") +# endif +# if defined(MAGICKCORE_XML_DELEGATE) +# pragma comment(lib, "CORE_DB_libxml_.lib") +# endif +# if defined(MAGICKCORE_LQR_DELEGATE) +# pragma comment(lib, "CORE_DB_ffi_.lib") +# pragma comment(lib, "CORE_DB_glib_.lib") +# pragma comment(lib, "CORE_DB_lqr_.lib") +# pragma comment(lib, "winmm.lib") +# endif +# if defined(MAGICKCORE_LIBOPENJP2_DELEGATE) +# pragma comment(lib, "CORE_DB_openjpeg_.lib") +# endif +# if defined(MAGICKCORE_PANGOCAIRO_DELEGATE) +# pragma comment(lib, "CORE_DB_pango_.lib") +# pragma comment(lib, "CORE_DB_pixman_.lib") +# endif +# if defined(MAGICKCORE_PNG_DELEGATE) +# pragma comment(lib, "CORE_DB_png_.lib") +# endif +# if defined(MAGICKCORE_TIFF_DELEGATE) +# pragma comment(lib, "CORE_DB_tiff_.lib") +# endif +# if defined(MAGICKCORE_FREETYPE_DELEGATE) +# pragma comment(lib, "CORE_DB_ttf_.lib") +# endif +# if defined(MAGICKCORE_WEBP_DELEGATE) +# pragma comment(lib, "CORE_DB_webp_.lib") +# endif +# if defined(MAGICKCORE_ZLIB_DELEGATE) +# pragma comment(lib, "CORE_DB_zlib_.lib") +# endif +# pragma comment(lib, "CORE_DB_coders_.lib") +# pragma comment(lib, "CORE_DB_filters_.lib") +# pragma comment(lib, "CORE_DB_Magick++_.lib") +# pragma comment(lib, "CORE_DB_MagickCore_.lib") +# pragma comment(lib, "CORE_DB_MagickWand_.lib") +# else +# if defined(MAGICKCORE_BZLIB_DELEGATE) +# pragma comment(lib, "CORE_RL_bzlib_.lib") +# endif +# if defined(MAGICKCORE_CAIRO_DELEGATE) +# pragma comment(lib, "CORE_RL_cairo_.lib") +# endif +# if defined(MAGICKCORE_OPENEXR_DELEGATE) +# pragma comment(lib, "CORE_RL_exr_.lib") +# endif +# if defined(MAGICKCORE_FLIF_DELEGATE) +# pragma comment(lib, "CORE_RL_flif_.lib") +# endif +# if defined(MAGICKCORE_JBIG_DELEGATE) +# pragma comment(lib, "CORE_RL_jbig_.lib") +# endif +# if defined(MAGICKCORE_JP2_DELEGATE) +# pragma comment(lib, "CORE_RL_jp2_.lib") +# endif +# if defined(MAGICKCORE_JPEG_DELEGATE) +# pragma comment(lib, "CORE_RL_jpeg_.lib") +# endif +# if defined(MAGICKCORE_LCMS_DELEGATE) +# pragma comment(lib, "CORE_RL_lcms_.lib") +# endif +# if defined(MAGICKCORE_HEIC_DELEGATE) +# pragma comment(lib, "CORE_RL_libde265_.lib") +# pragma comment(lib, "CORE_RL_libheif_.lib") +# endif +# if defined(MAGICKCORE_LZMA_DELEGATE) +# pragma comment(lib, "CORE_RL_lzma_.lib") +# endif +# if defined(MAGICKCORE_RAW_R_DELEGATE) +# pragma comment(lib, "CORE_RL_libraw_.lib") +# endif +# if defined(MAGICKCORE_RSVG_DELEGATE) +# pragma comment(lib, "CORE_RL_librsvg_.lib") +# endif +# if defined(MAGICKCORE_XML_DELEGATE) +# pragma comment(lib, "CORE_RL_libxml_.lib") +# endif +# if defined(MAGICKCORE_LQR_DELEGATE) +# pragma comment(lib, "CORE_RL_ffi_.lib") +# pragma comment(lib, "CORE_RL_glib_.lib") +# pragma comment(lib, "CORE_RL_lqr_.lib") +# pragma comment(lib, "winmm.lib") +# endif +# if defined(MAGICKCORE_LIBOPENJP2_DELEGATE) +# pragma comment(lib, "CORE_RL_openjpeg_.lib") +# endif +# if defined(MAGICKCORE_PANGOCAIRO_DELEGATE) +# pragma comment(lib, "CORE_RL_pango_.lib") +# pragma comment(lib, "CORE_RL_pixman_.lib") +# endif +# if defined(MAGICKCORE_PNG_DELEGATE) +# pragma comment(lib, "CORE_RL_png_.lib") +# endif +# if defined(MAGICKCORE_TIFF_DELEGATE) +# pragma comment(lib, "CORE_RL_tiff_.lib") +# endif +# if defined(MAGICKCORE_FREETYPE_DELEGATE) +# pragma comment(lib, "CORE_RL_ttf_.lib") +# endif +# if defined(MAGICKCORE_WEBP_DELEGATE) +# pragma comment(lib, "CORE_RL_webp_.lib") +# endif +# if defined(MAGICKCORE_ZLIB_DELEGATE) +# pragma comment(lib, "CORE_RL_zlib_.lib") +# endif +# pragma comment(lib, "CORE_RL_coders_.lib") +# pragma comment(lib, "CORE_RL_filters_.lib") +# pragma comment(lib, "CORE_RL_Magick++_.lib") +# pragma comment(lib, "CORE_RL_MagickCore_.lib") +# pragma comment(lib, "CORE_RL_MagickWand_.lib") +# endif +# if defined(_WIN32_WCE) +# pragma comment(lib, "wsock32.lib") +# else +# pragma comment(lib, "ws2_32.lib") +# endif +# pragma comment(lib, "urlmon.lib") +# endif +# endif +#else +# if __GNUC__ >= 4 +# define MagickPPExport __attribute__ ((visibility ("default"))) +# define MagickPPPrivate __attribute__ ((visibility ("hidden"))) +# else +# define MagickPPExport +# define MagickPPPrivate +# endif +#endif + +#if (defined(WIN32) || defined(WIN64)) && defined(_VISUALC_) +# pragma warning(disable : 4996) /* function deprecation warnings */ +#endif + +// +// Import ImageMagick symbols and types which are used as part of the +// Magick++ API definition into namespace "Magick". +// +namespace Magick +{ + // The datatype for an RGB component + using MagickCore::Quantum; + using MagickCore::MagickRealType; + using MagickCore::MagickSizeType; + using MagickCore::MagickStatusType; + + // Structures + using MagickCore::AffineMatrix; + using MagickCore::CacheView; + using MagickCore::CCObjectInfo; + using MagickCore::DrawInfo; + using MagickCore::DrawingWand; + using MagickCore::ExceptionInfo; + using MagickCore::FrameInfo; + using MagickCore::ImageInfo; + using MagickCore::KernelInfo; + using MagickCore::LinkedListInfo; + using MagickCore::MagickInfo; + using MagickCore::MagickWand; + using MagickCore::MontageInfo; + using MagickCore::OffsetInfo; + using MagickCore::PixelInfo; + using MagickCore::PixelWand; + using MagickCore::PointInfo; + using MagickCore::ProfileInfo; + using MagickCore::QuantizeInfo; + using MagickCore::QuantumInfo; + using MagickCore::RectangleInfo; + using MagickCore::StringInfo; + + // Alignment types. + using MagickCore::AlignType; + using MagickCore::UndefinedAlign; + using MagickCore::LeftAlign; + using MagickCore::CenterAlign; + using MagickCore::RightAlign; + + // Alpha channel options + using MagickCore::AlphaChannelOption; + using MagickCore::UndefinedAlphaChannel; + using MagickCore::ActivateAlphaChannel; + using MagickCore::AssociateAlphaChannel; + using MagickCore::BackgroundAlphaChannel; + using MagickCore::CopyAlphaChannel; + using MagickCore::DeactivateAlphaChannel; + using MagickCore::DiscreteAlphaChannel; + using MagickCore::DisassociateAlphaChannel; + using MagickCore::ExtractAlphaChannel; + using MagickCore::OffAlphaChannel; + using MagickCore::OnAlphaChannel; + using MagickCore::OpaqueAlphaChannel; + using MagickCore::RemoveAlphaChannel; + using MagickCore::SetAlphaChannel; + using MagickCore::ShapeAlphaChannel; + using MagickCore::TransparentAlphaChannel; + + // Auto threshold methods + using MagickCore::AutoThresholdMethod; + using MagickCore::UndefinedThresholdMethod; + using MagickCore::KapurThresholdMethod; + using MagickCore::OTSUThresholdMethod; + using MagickCore::TriangleThresholdMethod; + + // Channel types + using MagickCore::ChannelType; + using MagickCore::UndefinedChannel; + using MagickCore::RedChannel; + using MagickCore::GrayChannel; + using MagickCore::CyanChannel; + using MagickCore::GreenChannel; + using MagickCore::MagentaChannel; + using MagickCore::BlueChannel; + using MagickCore::YellowChannel; + using MagickCore::BlackChannel; + using MagickCore::AlphaChannel; + using MagickCore::OpacityChannel; + using MagickCore::IndexChannel; + using MagickCore::ReadMaskChannel; + using MagickCore::WriteMaskChannel; + using MagickCore::MetaChannel; + using MagickCore::CompositeChannels; + using MagickCore::AllChannels; + using MagickCore::TrueAlphaChannel; + using MagickCore::RGBChannels; + using MagickCore::GrayChannels; + using MagickCore::SyncChannels; + using MagickCore::DefaultChannels; + + // Image class types + using MagickCore::ClassType; + using MagickCore::UndefinedClass; + using MagickCore::DirectClass; + using MagickCore::PseudoClass; + + // Clip path units + using MagickCore::ClipPathUnits; + using MagickCore::UndefinedPathUnits; + using MagickCore::UserSpace; + using MagickCore::UserSpaceOnUse; + using MagickCore::ObjectBoundingBox; + + // Color-space types + using MagickCore::ColorspaceType; + using MagickCore::UndefinedColorspace; + using MagickCore::CMYColorspace; + using MagickCore::CMYKColorspace; + using MagickCore::GRAYColorspace; + using MagickCore::HCLColorspace; + using MagickCore::HCLpColorspace; + using MagickCore::HSBColorspace; + using MagickCore::HSIColorspace; + using MagickCore::HSLColorspace; + using MagickCore::HSVColorspace; + using MagickCore::HWBColorspace; + using MagickCore::LabColorspace; + using MagickCore::LCHColorspace; + using MagickCore::LCHabColorspace; + using MagickCore::LCHuvColorspace; + using MagickCore::LogColorspace; + using MagickCore::LMSColorspace; + using MagickCore::LuvColorspace; + using MagickCore::OHTAColorspace; + using MagickCore::Rec601YCbCrColorspace; + using MagickCore::Rec709YCbCrColorspace; + using MagickCore::RGBColorspace; + using MagickCore::scRGBColorspace; + using MagickCore::sRGBColorspace; + using MagickCore::TransparentColorspace; + using MagickCore::xyYColorspace; + using MagickCore::XYZColorspace; + using MagickCore::YCbCrColorspace; + using MagickCore::YCCColorspace; + using MagickCore::YDbDrColorspace; + using MagickCore::YIQColorspace; + using MagickCore::YPbPrColorspace; + using MagickCore::YUVColorspace; + + // Command options + using MagickCore::CommandOption; + using MagickCore::MagickDirectionOptions; + using MagickCore::MagickGravityOptions; + using MagickCore::MagickKernelOptions; + using MagickCore::MagickStyleOptions; + + // Compliance types + using MagickCore::ComplianceType; + using MagickCore::AllCompliance; + + // Composition operations + using MagickCore::CompositeOperator; + using MagickCore::AlphaCompositeOp; + using MagickCore::AtopCompositeOp; + using MagickCore::BlendCompositeOp; + using MagickCore::BlurCompositeOp; + using MagickCore::BumpmapCompositeOp; + using MagickCore::ChangeMaskCompositeOp; + using MagickCore::ClearCompositeOp; + using MagickCore::ColorBurnCompositeOp; + using MagickCore::ColorDodgeCompositeOp; + using MagickCore::ColorizeCompositeOp; + using MagickCore::CopyBlackCompositeOp; + using MagickCore::CopyBlueCompositeOp; + using MagickCore::CopyCompositeOp; + using MagickCore::CopyCyanCompositeOp; + using MagickCore::CopyGreenCompositeOp; + using MagickCore::CopyMagentaCompositeOp; + using MagickCore::CopyAlphaCompositeOp; + using MagickCore::CopyRedCompositeOp; + using MagickCore::CopyYellowCompositeOp; + using MagickCore::DarkenCompositeOp; + using MagickCore::DarkenIntensityCompositeOp; + using MagickCore::DifferenceCompositeOp; + using MagickCore::DisplaceCompositeOp; + using MagickCore::DissolveCompositeOp; + using MagickCore::DistortCompositeOp; + using MagickCore::DivideDstCompositeOp; + using MagickCore::DivideSrcCompositeOp; + using MagickCore::DstAtopCompositeOp; + using MagickCore::DstCompositeOp; + using MagickCore::DstInCompositeOp; + using MagickCore::DstOutCompositeOp; + using MagickCore::DstOverCompositeOp; + using MagickCore::ExclusionCompositeOp; + using MagickCore::HardLightCompositeOp; + using MagickCore::HardMixCompositeOp; + using MagickCore::HueCompositeOp; + using MagickCore::InCompositeOp; + using MagickCore::IntensityCompositeOp; + using MagickCore::LightenCompositeOp; + using MagickCore::LightenIntensityCompositeOp; + using MagickCore::LinearBurnCompositeOp; + using MagickCore::LinearDodgeCompositeOp; + using MagickCore::LinearLightCompositeOp; + using MagickCore::LuminizeCompositeOp; + using MagickCore::MathematicsCompositeOp; + using MagickCore::MinusDstCompositeOp; + using MagickCore::MinusSrcCompositeOp; + using MagickCore::ModulateCompositeOp; + using MagickCore::ModulusAddCompositeOp; + using MagickCore::ModulusSubtractCompositeOp; + using MagickCore::MultiplyCompositeOp; + using MagickCore::NoCompositeOp; + using MagickCore::OutCompositeOp; + using MagickCore::OverCompositeOp; + using MagickCore::OverlayCompositeOp; + using MagickCore::PegtopLightCompositeOp; + using MagickCore::PinLightCompositeOp; + using MagickCore::PlusCompositeOp; + using MagickCore::ReplaceCompositeOp; + using MagickCore::SaturateCompositeOp; + using MagickCore::ScreenCompositeOp; + using MagickCore::SoftLightCompositeOp; + using MagickCore::SrcAtopCompositeOp; + using MagickCore::SrcCompositeOp; + using MagickCore::SrcInCompositeOp; + using MagickCore::SrcOutCompositeOp; + using MagickCore::SrcOverCompositeOp; + using MagickCore::ThresholdCompositeOp; + using MagickCore::UndefinedCompositeOp; + using MagickCore::VividLightCompositeOp; + using MagickCore::XorCompositeOp; + + // Compression algorithms + using MagickCore::CompressionType; + using MagickCore::UndefinedCompression; + using MagickCore::B44ACompression; + using MagickCore::B44Compression; + using MagickCore::BZipCompression; + using MagickCore::DXT1Compression; + using MagickCore::DXT3Compression; + using MagickCore::DXT5Compression; + using MagickCore::FaxCompression; + using MagickCore::Group4Compression; + using MagickCore::JBIG1Compression; + using MagickCore::JBIG2Compression; + using MagickCore::JPEG2000Compression; + using MagickCore::JPEGCompression; + using MagickCore::LosslessJPEGCompression; + using MagickCore::LZMACompression; + using MagickCore::LZWCompression; + using MagickCore::NoCompression; + using MagickCore::PizCompression; + using MagickCore::Pxr24Compression; + using MagickCore::RLECompression; + using MagickCore::ZipCompression; + using MagickCore::ZipSCompression; + + // Decoration types + using MagickCore::DecorationType; + using MagickCore::UndefinedDecoration; + using MagickCore::NoDecoration; + using MagickCore::UnderlineDecoration; + using MagickCore::OverlineDecoration; + using MagickCore::LineThroughDecoration; + + // Direction types + using MagickCore::DirectionType; + using MagickCore::UndefinedDirection; + using MagickCore::RightToLeftDirection; + using MagickCore::LeftToRightDirection; + + // Dispose methods + using MagickCore::DisposeType; + using MagickCore::UndefinedDispose; + using MagickCore::NoneDispose; + using MagickCore::BackgroundDispose; + using MagickCore::PreviousDispose; + + // Distort methods + using MagickCore::DistortMethod; + using MagickCore::UndefinedDistortion; + using MagickCore::AffineDistortion; + using MagickCore::AffineProjectionDistortion; + using MagickCore::ScaleRotateTranslateDistortion; + using MagickCore::PerspectiveDistortion; + using MagickCore::PerspectiveProjectionDistortion; + using MagickCore::BilinearForwardDistortion; + using MagickCore::BilinearDistortion; + using MagickCore::BilinearReverseDistortion; + using MagickCore::PolynomialDistortion; + using MagickCore::ArcDistortion; + using MagickCore::PolarDistortion; + using MagickCore::DePolarDistortion; + using MagickCore::Cylinder2PlaneDistortion; + using MagickCore::Plane2CylinderDistortion; + using MagickCore::BarrelDistortion; + using MagickCore::BarrelInverseDistortion; + using MagickCore::ShepardsDistortion; + using MagickCore::ResizeDistortion; + using MagickCore::SentinelDistortion; + + // Dither methods + using MagickCore::DitherMethod; + using MagickCore::UndefinedDitherMethod; + using MagickCore::NoDitherMethod; + using MagickCore::RiemersmaDitherMethod; + using MagickCore::FloydSteinbergDitherMethod; + + // Endian options + using MagickCore::EndianType; + using MagickCore::UndefinedEndian; + using MagickCore::LSBEndian; + using MagickCore::MSBEndian; + + // Boolean types + using MagickCore::MagickBooleanType; + using MagickCore::MagickFalse; + using MagickCore::MagickTrue; + + // Evaluate options + using MagickCore::MagickEvaluateOperator; + using MagickCore::UndefinedEvaluateOperator; + using MagickCore::AbsEvaluateOperator; + using MagickCore::AddEvaluateOperator; + using MagickCore::AddModulusEvaluateOperator; + using MagickCore::AndEvaluateOperator; + using MagickCore::CosineEvaluateOperator; + using MagickCore::DivideEvaluateOperator; + using MagickCore::ExponentialEvaluateOperator; + using MagickCore::GaussianNoiseEvaluateOperator; + using MagickCore::ImpulseNoiseEvaluateOperator; + using MagickCore::LaplacianNoiseEvaluateOperator; + using MagickCore::LeftShiftEvaluateOperator; + using MagickCore::LogEvaluateOperator; + using MagickCore::MaxEvaluateOperator; + using MagickCore::MeanEvaluateOperator; + using MagickCore::MedianEvaluateOperator; + using MagickCore::MinEvaluateOperator; + using MagickCore::MultiplicativeNoiseEvaluateOperator; + using MagickCore::MultiplyEvaluateOperator; + using MagickCore::OrEvaluateOperator; + using MagickCore::PoissonNoiseEvaluateOperator; + using MagickCore::PowEvaluateOperator; + using MagickCore::RootMeanSquareEvaluateOperator; + using MagickCore::RightShiftEvaluateOperator; + using MagickCore::SetEvaluateOperator; + using MagickCore::SineEvaluateOperator; + using MagickCore::SubtractEvaluateOperator; + using MagickCore::SumEvaluateOperator; + using MagickCore::ThresholdBlackEvaluateOperator; + using MagickCore::ThresholdEvaluateOperator; + using MagickCore::ThresholdWhiteEvaluateOperator; + using MagickCore::UniformNoiseEvaluateOperator; + using MagickCore::XorEvaluateOperator; + + // Fill rules + using MagickCore::FillRule; + using MagickCore::UndefinedRule; + using MagickCore::EvenOddRule; + using MagickCore::NonZeroRule; + + // Filter types + using MagickCore::FilterType; + using MagickCore::UndefinedFilter; + using MagickCore::PointFilter; + using MagickCore::BoxFilter; + using MagickCore::TriangleFilter; + using MagickCore::HermiteFilter; + using MagickCore::HannFilter; + using MagickCore::HammingFilter; + using MagickCore::BlackmanFilter; + using MagickCore::GaussianFilter; + using MagickCore::QuadraticFilter; + using MagickCore::CubicFilter; + using MagickCore::CatromFilter; + using MagickCore::MitchellFilter; + using MagickCore::JincFilter; + using MagickCore::SincFilter; + using MagickCore::SincFastFilter; + using MagickCore::KaiserFilter; + using MagickCore::WelchFilter; + using MagickCore::ParzenFilter; + using MagickCore::BohmanFilter; + using MagickCore::BartlettFilter; + using MagickCore::LagrangeFilter; + using MagickCore::LanczosFilter; + using MagickCore::LanczosSharpFilter; + using MagickCore::Lanczos2Filter; + using MagickCore::Lanczos2SharpFilter; + using MagickCore::RobidouxFilter; + using MagickCore::RobidouxSharpFilter; + using MagickCore::CosineFilter; + using MagickCore::SplineFilter; + using MagickCore::LanczosRadiusFilter; + using MagickCore::SentinelFilter; + + // Geometry flags; + using MagickCore::GeometryFlags; + using MagickCore::AreaValue; + using MagickCore::AspectValue; + using MagickCore::GreaterValue; + using MagickCore::HeightValue; + using MagickCore::LessValue; + using MagickCore::MinimumValue; + using MagickCore::NoValue; + using MagickCore::PercentValue; + using MagickCore::WidthValue; + using MagickCore::XNegative; + using MagickCore::XValue; + using MagickCore::YNegative; + using MagickCore::YValue; + + // Bit gravity + using MagickCore::GravityType; + using MagickCore::UndefinedGravity; + using MagickCore::ForgetGravity; + using MagickCore::NorthWestGravity; + using MagickCore::NorthGravity; + using MagickCore::NorthEastGravity; + using MagickCore::WestGravity; + using MagickCore::CenterGravity; + using MagickCore::EastGravity; + using MagickCore::SouthWestGravity; + using MagickCore::SouthGravity; + using MagickCore::SouthEastGravity; + + // Image types + using MagickCore::ImageType; + using MagickCore::UndefinedType; + using MagickCore::BilevelType; + using MagickCore::GrayscaleType; + using MagickCore::GrayscaleAlphaType; + using MagickCore::PaletteType; + using MagickCore::PaletteAlphaType; + using MagickCore::TrueColorType; + using MagickCore::TrueColorAlphaType; + using MagickCore::ColorSeparationType; + using MagickCore::ColorSeparationAlphaType; + using MagickCore::OptimizeType; + using MagickCore::PaletteBilevelAlphaType; + + // Interlace types + using MagickCore::InterlaceType; + using MagickCore::UndefinedInterlace; + using MagickCore::NoInterlace; + using MagickCore::LineInterlace; + using MagickCore::PlaneInterlace; + using MagickCore::PartitionInterlace; + using MagickCore::GIFInterlace; + using MagickCore::JPEGInterlace; + using MagickCore::PNGInterlace; + + // Built-in kernels + using MagickCore::KernelInfoType; + using MagickCore::UndefinedKernel; + using MagickCore::UnityKernel; + using MagickCore::GaussianKernel; + using MagickCore::DoGKernel; + using MagickCore::LoGKernel; + using MagickCore::BlurKernel; + using MagickCore::CometKernel; + using MagickCore::BinomialKernel; + using MagickCore::LaplacianKernel; + using MagickCore::SobelKernel; + using MagickCore::FreiChenKernel; + using MagickCore::RobertsKernel; + using MagickCore::PrewittKernel; + using MagickCore::CompassKernel; + using MagickCore::KirschKernel; + using MagickCore::DiamondKernel; + using MagickCore::SquareKernel; + using MagickCore::RectangleKernel; + using MagickCore::OctagonKernel; + using MagickCore::DiskKernel; + using MagickCore::PlusKernel; + using MagickCore::CrossKernel; + using MagickCore::RingKernel; + using MagickCore::PeaksKernel; + using MagickCore::EdgesKernel; + using MagickCore::CornersKernel; + using MagickCore::DiagonalsKernel; + using MagickCore::LineEndsKernel; + using MagickCore::LineJunctionsKernel; + using MagickCore::RidgesKernel; + using MagickCore::ConvexHullKernel; + using MagickCore::ThinSEKernel; + using MagickCore::SkeletonKernel; + using MagickCore::ChebyshevKernel; + using MagickCore::ManhattanKernel; + using MagickCore::OctagonalKernel; + using MagickCore::EuclideanKernel; + using MagickCore::UserDefinedKernel; + + // Layer method + using MagickCore::LayerMethod; + using MagickCore::UndefinedLayer; + using MagickCore::CoalesceLayer; + using MagickCore::CompareAnyLayer; + using MagickCore::CompareClearLayer; + using MagickCore::CompareOverlayLayer; + using MagickCore::DisposeLayer; + using MagickCore::OptimizeLayer; + using MagickCore::OptimizeImageLayer; + using MagickCore::OptimizePlusLayer; + using MagickCore::OptimizeTransLayer; + using MagickCore::RemoveDupsLayer; + using MagickCore::RemoveZeroLayer; + using MagickCore::CompositeLayer; + using MagickCore::MergeLayer; + using MagickCore::FlattenLayer; + using MagickCore::MosaicLayer; + using MagickCore::TrimBoundsLayer; + + // Line cap types + using MagickCore::LineCap; + using MagickCore::UndefinedCap; + using MagickCore::ButtCap; + using MagickCore::RoundCap; + using MagickCore::SquareCap; + + // Line join types + using MagickCore::LineJoin; + using MagickCore::UndefinedJoin; + using MagickCore::MiterJoin; + using MagickCore::RoundJoin; + using MagickCore::BevelJoin; + + // Log event types + using MagickCore::LogEventType; + using MagickCore::UndefinedEvents; + using MagickCore::NoEvents; + using MagickCore::AccelerateEvent; + using MagickCore::AnnotateEvent; + using MagickCore::BlobEvent; + using MagickCore::CacheEvent; + using MagickCore::CoderEvent; + using MagickCore::ConfigureEvent; + using MagickCore::DeprecateEvent; + using MagickCore::DrawEvent; + using MagickCore::ExceptionEvent; + using MagickCore::ImageEvent; + using MagickCore::LocaleEvent; + using MagickCore::ModuleEvent; + using MagickCore::PixelEvent; + using MagickCore::PolicyEvent; + using MagickCore::ResourceEvent; + using MagickCore::TraceEvent; + using MagickCore::TransformEvent; + using MagickCore::UserEvent; + using MagickCore::WandEvent; + using MagickCore::X11Event; + using MagickCore::CommandEvent; + using MagickCore::AllEvents; + + // Magick functions + using MagickCore::MagickFunction; + using MagickCore::UndefinedFunction; + using MagickCore::ArcsinFunction; + using MagickCore::ArctanFunction; + using MagickCore::PolynomialFunction; + using MagickCore::SinusoidFunction; + + // Metric types + using MagickCore::MetricType; + using MagickCore::UndefinedErrorMetric; + using MagickCore::AbsoluteErrorMetric; + using MagickCore::FuzzErrorMetric; + using MagickCore::MeanAbsoluteErrorMetric; + using MagickCore::MeanErrorPerPixelErrorMetric; + using MagickCore::MeanSquaredErrorMetric; + using MagickCore::NormalizedCrossCorrelationErrorMetric; + using MagickCore::PeakAbsoluteErrorMetric; + using MagickCore::PeakSignalToNoiseRatioErrorMetric; + using MagickCore::PerceptualHashErrorMetric; + using MagickCore::RootMeanSquaredErrorMetric; + + // Morphology methods + using MagickCore::MorphologyMethod; + using MagickCore::UndefinedMorphology; + using MagickCore::ConvolveMorphology; + using MagickCore::CorrelateMorphology; + using MagickCore::ErodeMorphology; + using MagickCore::DilateMorphology; + using MagickCore::ErodeIntensityMorphology; + using MagickCore::DilateIntensityMorphology; + using MagickCore::IterativeDistanceMorphology; + using MagickCore::OpenMorphology; + using MagickCore::CloseMorphology; + using MagickCore::OpenIntensityMorphology; + using MagickCore::CloseIntensityMorphology; + using MagickCore::SmoothMorphology; + using MagickCore::EdgeInMorphology; + using MagickCore::EdgeOutMorphology; + using MagickCore::EdgeMorphology; + using MagickCore::TopHatMorphology; + using MagickCore::BottomHatMorphology; + using MagickCore::HitAndMissMorphology; + using MagickCore::ThinningMorphology; + using MagickCore::ThickenMorphology; + using MagickCore::DistanceMorphology; + using MagickCore::VoronoiMorphology; + + // Noise types + using MagickCore::NoiseType; + using MagickCore::UndefinedNoise; + using MagickCore::UniformNoise; + using MagickCore::GaussianNoise; + using MagickCore::MultiplicativeGaussianNoise; + using MagickCore::ImpulseNoise; + using MagickCore::LaplacianNoise; + using MagickCore::PoissonNoise; + + // Orientation types + using MagickCore::OrientationType; + using MagickCore::UndefinedOrientation; + using MagickCore::TopLeftOrientation; + using MagickCore::TopRightOrientation; + using MagickCore::BottomRightOrientation; + using MagickCore::BottomLeftOrientation; + using MagickCore::LeftTopOrientation; + using MagickCore::RightTopOrientation; + using MagickCore::RightBottomOrientation; + using MagickCore::LeftBottomOrientation; + + // Paint methods + using MagickCore::PaintMethod; + using MagickCore::UndefinedMethod; + using MagickCore::PointMethod; + using MagickCore::ReplaceMethod; + using MagickCore::FloodfillMethod; + using MagickCore::FillToBorderMethod; + using MagickCore::ResetMethod; + + using MagickCore::PixelChannel; + using MagickCore::UndefinedPixelChannel; + using MagickCore::RedPixelChannel; + using MagickCore::CyanPixelChannel; + using MagickCore::GrayPixelChannel; + using MagickCore::LPixelChannel; + using MagickCore::YPixelChannel; + using MagickCore::aPixelChannel; + using MagickCore::GreenPixelChannel; + using MagickCore::MagentaPixelChannel; + using MagickCore::CbPixelChannel; + using MagickCore::bPixelChannel; + using MagickCore::BluePixelChannel; + using MagickCore::YellowPixelChannel; + using MagickCore::CrPixelChannel; + using MagickCore::BlackPixelChannel; + using MagickCore::AlphaPixelChannel; + using MagickCore::IndexPixelChannel; + using MagickCore::ReadMaskPixelChannel; + using MagickCore::WriteMaskPixelChannel; + using MagickCore::MetaPixelChannel; + using MagickCore::IntensityPixelChannel; + using MagickCore::CompositePixelChannel; + using MagickCore::SyncPixelChannel; + + // Pixel intensity method + using MagickCore::PixelIntensityMethod; + using MagickCore::UndefinedPixelIntensityMethod; + using MagickCore::AveragePixelIntensityMethod; + using MagickCore::BrightnessPixelIntensityMethod; + using MagickCore::LightnessPixelIntensityMethod; + using MagickCore::MSPixelIntensityMethod; + using MagickCore::Rec601LumaPixelIntensityMethod; + using MagickCore::Rec601LuminancePixelIntensityMethod; + using MagickCore::Rec709LumaPixelIntensityMethod; + using MagickCore::Rec709LuminancePixelIntensityMethod; + using MagickCore::RMSPixelIntensityMethod; + + // PixelInterpolate methods + using MagickCore::PixelInterpolateMethod; + using MagickCore::UndefinedInterpolatePixel; + using MagickCore::AverageInterpolatePixel; + using MagickCore::Average9InterpolatePixel; + using MagickCore::Average16InterpolatePixel; + using MagickCore::BackgroundInterpolatePixel; + using MagickCore::BilinearInterpolatePixel; + using MagickCore::BlendInterpolatePixel; + using MagickCore::CatromInterpolatePixel; + using MagickCore::IntegerInterpolatePixel; + using MagickCore::MeshInterpolatePixel; + using MagickCore::NearestInterpolatePixel; + using MagickCore::SplineInterpolatePixel; + + // Pixel traits + using MagickCore::PixelTrait; + using MagickCore::UndefinedPixelTrait; + using MagickCore::CopyPixelTrait; + using MagickCore::UpdatePixelTrait; + using MagickCore::BlendPixelTrait; + + // Policy domains + using MagickCore::PolicyDomain; + using MagickCore::UndefinedPolicyDomain; + using MagickCore::CoderPolicyDomain; + using MagickCore::DelegatePolicyDomain; + using MagickCore::FilterPolicyDomain; + using MagickCore::PathPolicyDomain; + using MagickCore::ResourcePolicyDomain; + using MagickCore::SystemPolicyDomain; + using MagickCore::CachePolicyDomain; + + // Preview types. Not currently used by Magick++ + using MagickCore::PreviewType; + using MagickCore::UndefinedPreview; + using MagickCore::RotatePreview; + using MagickCore::ShearPreview; + using MagickCore::RollPreview; + using MagickCore::HuePreview; + using MagickCore::SaturationPreview; + using MagickCore::BrightnessPreview; + using MagickCore::GammaPreview; + using MagickCore::SpiffPreview; + using MagickCore::DullPreview; + using MagickCore::GrayscalePreview; + using MagickCore::QuantizePreview; + using MagickCore::DespecklePreview; + using MagickCore::ReduceNoisePreview; + using MagickCore::AddNoisePreview; + using MagickCore::SharpenPreview; + using MagickCore::BlurPreview; + using MagickCore::ThresholdPreview; + using MagickCore::EdgeDetectPreview; + using MagickCore::SpreadPreview; + using MagickCore::SolarizePreview; + using MagickCore::ShadePreview; + using MagickCore::RaisePreview; + using MagickCore::SegmentPreview; + using MagickCore::SwirlPreview; + using MagickCore::ImplodePreview; + using MagickCore::WavePreview; + using MagickCore::OilPaintPreview; + using MagickCore::CharcoalDrawingPreview; + using MagickCore::JPEGPreview; + + // Quantum types + using MagickCore::QuantumType; + using MagickCore::IndexQuantum; + using MagickCore::GrayQuantum; + using MagickCore::IndexAlphaQuantum; + using MagickCore::GrayAlphaQuantum; + using MagickCore::RedQuantum; + using MagickCore::CyanQuantum; + using MagickCore::GreenQuantum; + using MagickCore::YellowQuantum; + using MagickCore::BlueQuantum; + using MagickCore::MagentaQuantum; + using MagickCore::AlphaQuantum; + using MagickCore::BlackQuantum; + using MagickCore::RGBQuantum; + using MagickCore::RGBAQuantum; + using MagickCore::CMYKQuantum; + + // Pixel mask types + using MagickCore::PixelMask; + using MagickCore::UndefinedPixelMask; + using MagickCore::ReadPixelMask; + using MagickCore::WritePixelMask; + + // Rendering intents + using MagickCore::RenderingIntent; + using MagickCore::UndefinedIntent; + using MagickCore::SaturationIntent; + using MagickCore::PerceptualIntent; + using MagickCore::AbsoluteIntent; + using MagickCore::RelativeIntent; + + // Resource types + using MagickCore::ResourceType; + using MagickCore::UndefinedResource; + using MagickCore::AreaResource; + using MagickCore::DiskResource; + using MagickCore::FileResource; + using MagickCore::HeightResource; + using MagickCore::MapResource; + using MagickCore::MemoryResource; + using MagickCore::ThreadResource; + using MagickCore::ThrottleResource; + using MagickCore::TimeResource; + using MagickCore::WidthResource; + using MagickCore::ListLengthResource; + + // Resolution units + using MagickCore::ResolutionType; + using MagickCore::UndefinedResolution; + using MagickCore::PixelsPerInchResolution; + using MagickCore::PixelsPerCentimeterResolution; + + // Sparse Color methods + using MagickCore::SparseColorMethod; + using MagickCore::UndefinedColorInterpolate; + using MagickCore::BarycentricColorInterpolate; + using MagickCore::BilinearColorInterpolate; + using MagickCore::PolynomialColorInterpolate; + using MagickCore::ShepardsColorInterpolate; + using MagickCore::VoronoiColorInterpolate; + using MagickCore::InverseColorInterpolate; + using MagickCore::ManhattanColorInterpolate; + + // Statistic type + using MagickCore::StatisticType; + using MagickCore::UndefinedStatistic; + using MagickCore::GradientStatistic; + using MagickCore::MaximumStatistic; + using MagickCore::MeanStatistic; + using MagickCore::MedianStatistic; + using MagickCore::MinimumStatistic; + using MagickCore::ModeStatistic; + using MagickCore::NonpeakStatistic; + using MagickCore::RootMeanSquareStatistic; + using MagickCore::StandardDeviationStatistic; + + // StorageType type + using MagickCore::StorageType; + using MagickCore::UndefinedPixel; + using MagickCore::CharPixel; + using MagickCore::DoublePixel; + using MagickCore::FloatPixel; + using MagickCore::LongPixel; + using MagickCore::LongLongPixel; + using MagickCore::QuantumPixel; + using MagickCore::ShortPixel; + + // StretchType type + using MagickCore::StretchType; + using MagickCore::UndefinedStretch; + using MagickCore::NormalStretch; + using MagickCore::UltraCondensedStretch; + using MagickCore::ExtraCondensedStretch; + using MagickCore::CondensedStretch; + using MagickCore::SemiCondensedStretch; + using MagickCore::SemiExpandedStretch; + using MagickCore::ExpandedStretch; + using MagickCore::ExtraExpandedStretch; + using MagickCore::UltraExpandedStretch; + using MagickCore::AnyStretch; + + // StyleType type + using MagickCore::StyleType; + using MagickCore::UndefinedStyle; + using MagickCore::NormalStyle; + using MagickCore::ItalicStyle; + using MagickCore::ObliqueStyle; + using MagickCore::AnyStyle; + + // Virtual pixel methods + using MagickCore::VirtualPixelMethod; + using MagickCore::UndefinedVirtualPixelMethod; + using MagickCore::BackgroundVirtualPixelMethod; + using MagickCore::DitherVirtualPixelMethod; + using MagickCore::EdgeVirtualPixelMethod; + using MagickCore::MirrorVirtualPixelMethod; + using MagickCore::RandomVirtualPixelMethod; + using MagickCore::TileVirtualPixelMethod; + using MagickCore::TransparentVirtualPixelMethod; + using MagickCore::MaskVirtualPixelMethod; + using MagickCore::BlackVirtualPixelMethod; + using MagickCore::GrayVirtualPixelMethod; + using MagickCore::WhiteVirtualPixelMethod; + using MagickCore::HorizontalTileVirtualPixelMethod; + using MagickCore::VerticalTileVirtualPixelMethod; + using MagickCore::HorizontalTileEdgeVirtualPixelMethod; + using MagickCore::VerticalTileEdgeVirtualPixelMethod; + using MagickCore::CheckerTileVirtualPixelMethod; + +#if defined(MAGICKCORE_IMPLEMENTATION) + // + // ImageMagick symbols used in implementation code + // + using MagickCore::AcquireAlignedMemory; + using MagickCore::AcquireAuthenticCacheView; + using MagickCore::AcquireDrawingWand; + using MagickCore::AcquireExceptionInfo; + using MagickCore::AcquireVirtualCacheView; + using MagickCore::AcquireImage; + using MagickCore::AcquireKernelInfo; + using MagickCore::AcquireMagickInfo; + using MagickCore::AcquireMagickMemory; + using MagickCore::AcquireQuantumInfo; + using MagickCore::AcquireString; + using MagickCore::AcquireStringInfo; + using MagickCore::AdaptiveBlurImage; + using MagickCore::AdaptiveResizeImage; + using MagickCore::AdaptiveSharpenImage; + using MagickCore::AdaptiveThresholdImage; + using MagickCore::AddNoiseImage; + using MagickCore::AffineTransformImage; + using MagickCore::AnnotateImage; + using MagickCore::AutoGammaImage; + using MagickCore::AutoLevelImage; + using MagickCore::AutoOrientImage; + using MagickCore::AutoThresholdImage; + using MagickCore::Base64Decode; + using MagickCore::Base64Encode; + using MagickCore::BilevelImage; + using MagickCore::BlackThresholdImage; + using MagickCore::BlobToImage; + using MagickCore::BlueShiftImage; + using MagickCore::BlurImage; + using MagickCore::BrightnessContrastImage; + using MagickCore::BorderImage; + using MagickCore::CharcoalImage; + using MagickCore::CannyEdgeImage; + using MagickCore::ChopImage; + using MagickCore::ClampImage; + using MagickCore::ClampToQuantum; + using MagickCore::ClearMagickException; + using MagickCore::CloneDrawInfo; + using MagickCore::CloneImage; + using MagickCore::CloneImageInfo; + using MagickCore::CloneQuantizeInfo; + using MagickCore::ClutImage; + using MagickCore::ColorDecisionListImage; + using MagickCore::ColorizeImage; + using MagickCore::ColorMatrixImage; + using MagickCore::CommandOptionToMnemonic; + using MagickCore::CompareImages; + using MagickCore::CompareImagesLayers; + using MagickCore::CompositeImage; + using MagickCore::ConnectedComponentsImage; + using MagickCore::ConstituteImage; + using MagickCore::ContrastImage; + using MagickCore::ContrastStretchImage; + using MagickCore::ConvertHSLToRGB; + using MagickCore::ConvertRGBToHSL; + using MagickCore::ConvolveImage; + using MagickCore::CopyImagePixels; + using MagickCore::CopyMagickString; + using MagickCore::CropImage; + using MagickCore::CropImageToTiles; + using MagickCore::CycleColormapImage; + using MagickCore::DecipherImage; + using MagickCore::DeleteImageOption; + using MagickCore::DeleteImageRegistry; + using MagickCore::DeskewImage; + using MagickCore::DespeckleImage; + using MagickCore::DestroyCacheView; + using MagickCore::DestroyDrawInfo; + using MagickCore::DestroyDrawingWand; + using MagickCore::DestroyExceptionInfo; + using MagickCore::DestroyImageInfo; + using MagickCore::DestroyImageList; + using MagickCore::DestroyKernelInfo; + using MagickCore::DestroyMagickWand; + using MagickCore::DestroyPixelWand; + using MagickCore::DestroyQuantizeInfo; + using MagickCore::DestroyQuantumInfo; + using MagickCore::DestroyString; + using MagickCore::DestroyStringInfo; + using MagickCore::DisplayImages; + using MagickCore::DistortImage; + using MagickCore::DrawAffine; + using MagickCore::DrawAlpha; + using MagickCore::DrawAnnotation; + using MagickCore::DrawArc; + using MagickCore::DrawBezier; + using MagickCore::DrawCircle; + using MagickCore::DrawColor; + using MagickCore::DrawComment; + using MagickCore::DrawComposite; + using MagickCore::DrawEllipse; + using MagickCore::DrawImage; + using MagickCore::DrawLine; + using MagickCore::DrawPathClose; + using MagickCore::DrawPathCurveToAbsolute; + using MagickCore::DrawPathCurveToQuadraticBezierAbsolute; + using MagickCore::DrawPathCurveToQuadraticBezierRelative; + using MagickCore::DrawPathCurveToQuadraticBezierSmoothAbsolute; + using MagickCore::DrawPathCurveToQuadraticBezierSmoothRelative; + using MagickCore::DrawPathCurveToRelative; + using MagickCore::DrawPathCurveToSmoothAbsolute; + using MagickCore::DrawPathCurveToSmoothRelative; + using MagickCore::DrawPathEllipticArcAbsolute; + using MagickCore::DrawPathEllipticArcRelative; + using MagickCore::DrawPathFinish; + using MagickCore::DrawPathLineToAbsolute; + using MagickCore::DrawPathLineToHorizontalAbsolute; + using MagickCore::DrawPathLineToHorizontalRelative; + using MagickCore::DrawPathLineToRelative; + using MagickCore::DrawPathLineToVerticalAbsolute; + using MagickCore::DrawPathLineToVerticalRelative; + using MagickCore::DrawPathMoveToAbsolute; + using MagickCore::DrawPathMoveToRelative; + using MagickCore::DrawPathStart; + using MagickCore::DrawPoint; + using MagickCore::DrawPolygon; + using MagickCore::DrawPolyline; + using MagickCore::DrawPopClipPath; + using MagickCore::DrawPopDefs; + using MagickCore::DrawPopPattern; + using MagickCore::DrawPushClipPath; + using MagickCore::DrawPushDefs; + using MagickCore::DrawPushPattern; + using MagickCore::DrawRectangle; + using MagickCore::DrawRender; + using MagickCore::DrawRotate; + using MagickCore::DrawRoundRectangle; + using MagickCore::DrawScale; + using MagickCore::DrawSetClipPath; + using MagickCore::DrawSetClipRule; + using MagickCore::DrawSetClipUnits; + using MagickCore::DrawSetFillColor; + using MagickCore::DrawSetFillOpacity; + using MagickCore::DrawSetFillPatternURL; + using MagickCore::DrawSetFillRule; + using MagickCore::DrawSetFont; + using MagickCore::DrawSetFontFamily; + using MagickCore::DrawSetFontSize; + using MagickCore::DrawSetFontStretch; + using MagickCore::DrawSetFontStyle; + using MagickCore::DrawSetFontWeight; + using MagickCore::DrawSetGravity; + using MagickCore::DrawSetStrokeAntialias; + using MagickCore::DrawSetStrokeColor; + using MagickCore::DrawSetStrokeDashArray; + using MagickCore::DrawSetStrokeDashOffset; + using MagickCore::DrawSetStrokeLineCap; + using MagickCore::DrawSetStrokeLineJoin; + using MagickCore::DrawSetStrokeMiterLimit; + using MagickCore::DrawSetStrokeOpacity; + using MagickCore::DrawSetStrokePatternURL; + using MagickCore::DrawSetStrokeWidth; + using MagickCore::DrawSetTextAntialias; + using MagickCore::DrawSetTextDecoration; + using MagickCore::DrawSetTextEncoding; + using MagickCore::DrawSetTextInterlineSpacing; + using MagickCore::DrawSetTextInterwordSpacing; + using MagickCore::DrawSetTextKerning; + using MagickCore::DrawSetTextUnderColor; + using MagickCore::DrawSetViewbox; + using MagickCore::DrawSkewX; + using MagickCore::DrawSkewY; + using MagickCore::DrawTranslate; + using MagickCore::EdgeImage; + using MagickCore::EmbossImage; + using MagickCore::EncipherImage; + using MagickCore::EnhanceImage; + using MagickCore::EqualizeImage; + using MagickCore::EvaluateImage; + using MagickCore::ExportImagePixels; + using MagickCore::ExportQuantumPixels; + using MagickCore::ExtentImage; + using MagickCore::FlipImage; + using MagickCore::FloodfillPaintImage; + using MagickCore::FlopImage; + using MagickCore::FormatLocaleString; + using MagickCore::ForwardFourierTransformImage; + using MagickCore::FrameImage; + using MagickCore::FxImage; + using MagickCore::GammaImage; + using MagickCore::GaussianBlurImage; + using MagickCore::GaussianBlurImage; + using MagickCore::GetAffineMatrix; + using MagickCore::GetAuthenticMetacontent; + using MagickCore::GetBlobSize; + using MagickCore::GetCacheViewAuthenticMetacontent; + using MagickCore::GetCacheViewAuthenticPixels; + using MagickCore::GetCacheViewVirtualPixels; + using MagickCore::GetClientName; + using MagickCore::GetColorTuple; + using MagickCore::GetDrawInfo; + using MagickCore::GetGeometry; + using MagickCore::GetImageArtifact; + using MagickCore::GetImageMoments; + using MagickCore::GetImageBoundingBox; + using MagickCore::GetImageDistortion; + using MagickCore::GetImageDepth; + using MagickCore::GetImageMask; + using MagickCore::GetImageMean; + using MagickCore::GetImageKurtosis; + using MagickCore::GetImageRange; + using MagickCore::GetImageDepth; + using MagickCore::GetImageInfo; + using MagickCore::GetImageInfoFile; + using MagickCore::GetImageOption; + using MagickCore::GetImagePerceptualHash; + using MagickCore::GetAuthenticPixels; + using MagickCore::GetImageProfile; + using MagickCore::GetImageProperty; + using MagickCore::GetImageQuantizeError; + using MagickCore::GetImageType; + using MagickCore::GetMagickDecoderThreadSupport; + using MagickCore::GetMagickEncoderThreadSupport; + using MagickCore::GetMagickInfo; + using MagickCore::GetMultilineTypeMetrics; + using MagickCore::GetNextValueInLinkedList; + using MagickCore::GetNumberOfElementsInLinkedList; + using MagickCore::GetPixelBlue; + using MagickCore::GetPixelChannelOffset; + using MagickCore::GetPixelChannelTraits; + using MagickCore::GetPixelGreen; + using MagickCore::GetPixelInfo; + using MagickCore::GetPixelRed; + using MagickCore::GetNumberColors; + using MagickCore::GetPageGeometry; + using MagickCore::GetQuantizeInfo; + using MagickCore::GetStringInfoDatum; + using MagickCore::GetStringInfoLength; + using MagickCore::GetTypeMetrics; + using MagickCore::GetValueFromLinkedList; + using MagickCore::GetVirtualMetacontent; + using MagickCore::GetVirtualPixels; + using MagickCore::GetImageVirtualPixelMethod; + using MagickCore::GlobExpression; + using MagickCore::GravityAdjustGeometry; + using MagickCore::GrayscaleImage; + using MagickCore::HaldClutImage; + using MagickCore::HoughLineImage; + using MagickCore::ImageToBlob; + using MagickCore::ImagesToBlob; + using MagickCore::ImplodeImage; + using MagickCore::ImportQuantumPixels; + using MagickCore::InterpretImageProperties; + using MagickCore::InverseFourierTransformImage; + using MagickCore::InvokeDynamicImageFilter; + using MagickCore::IsEventLogging; + using MagickCore::IsGeometry; + using MagickCore::IsImageOpaque; + using MagickCore::IsImagesEqual; + using MagickCore::KuwaharaImage; + using MagickCore::LevelImage; + using MagickCore::LevelImageColors; + using MagickCore::LevelizeImage; + using MagickCore::LinearStretchImage; + using MagickCore::LiquidRescaleImage; + using MagickCore::LocalContrastImage; + using MagickCore::LocaleCompare; + using MagickCore::LockSemaphoreInfo; + using MagickCore::LogMagickEvent; + using MagickCore::MagickCoreTerminus; + using MagickCore::MagickToMime; + using MagickCore::MagnifyImage; + using MagickCore::MergeImageLayers; + using MagickCore::MinifyImage; + using MagickCore::ModulateImage; + using MagickCore::MorphologyImage; + using MagickCore::MotionBlurImage; + using MagickCore::NegateImage; + using MagickCore::NewMagickWandFromImage; + using MagickCore::NewPixelWand; + using MagickCore::NormalizeImage; + using MagickCore::OilPaintImage; + using MagickCore::OpaquePaintImage; + using MagickCore::OrderedDitherImage; + using MagickCore::OptimizeImageLayers; + using MagickCore::OptimizeImageTransparency; + using MagickCore::OptimizePlusImageLayers; + using MagickCore::ParseMetaGeometry; + using MagickCore::PerceptibleImage; + using MagickCore::PingBlob; + using MagickCore::PingImage; + using MagickCore::PixelSetPixelColor; + using MagickCore::PolaroidImage; + using MagickCore::PopDrawingWand; + using MagickCore::PosterizeImage; + using MagickCore::ProfileImage; + using MagickCore::PushDrawingWand; + using MagickCore::QuantizeImage; + using MagickCore::QueueAuthenticPixels; + using MagickCore::QueueCacheViewAuthenticPixels; + using MagickCore::RaiseImage; + using MagickCore::RandomThresholdImage; + using MagickCore::ReadImage; + using MagickCore::RegisterMagickInfo; + using MagickCore::RelinquishMagickMemory; + using MagickCore::RemapImage; + using MagickCore::ResampleImage; + using MagickCore::ResetLinkedListIterator; + using MagickCore::ResizeImage; + using MagickCore::ResizeMagickMemory; + using MagickCore::RollImage; + using MagickCore::RotateImage; + using MagickCore::RotationalBlurImage; + using MagickCore::SampleImage; + using MagickCore::ScaleImage; + using MagickCore::SegmentImage; + using MagickCore::SelectiveBlurImage; + using MagickCore::SeparateImage; + using MagickCore::SepiaToneImage; + using MagickCore::SetGeometry; + using MagickCore::SetImageAlpha; + using MagickCore::SetImageArtifact; + using MagickCore::SetImageBackgroundColor; + using MagickCore::SetImageColorspace; + using MagickCore::SetImageDepth; + using MagickCore::SetImageExtent; + using MagickCore::SetImageInfo; + using MagickCore::SetImageInfoFile; + using MagickCore::SetImageMask; + using MagickCore::SetImageOption; + using MagickCore::SetImageProfile; + using MagickCore::SetImageProperty; + using MagickCore::SetImageRegistry; + using MagickCore::SetImageType; + using MagickCore::SetLogEventMask; + using MagickCore::SetMagickResourceLimit; + using MagickCore::SetImageVirtualPixelMethod; + using MagickCore::SetPixelChannel; + using MagickCore::SetImageChannelMask; + using MagickCore::SetStringInfoDatum; + using MagickCore::ShadeImage; + using MagickCore::ShadowImage; + using MagickCore::SharpenImage; + using MagickCore::SharpenImage; + using MagickCore::ShaveImage; + using MagickCore::ShearImage; + using MagickCore::SigmoidalContrastImage; + using MagickCore::SignatureImage; + using MagickCore::SimilarityImage; + using MagickCore::SketchImage; + using MagickCore::SmushImages; + using MagickCore::SolarizeImage; + using MagickCore::SparseColorImage; + using MagickCore::SpliceImage; + using MagickCore::SpreadImage; + using MagickCore::StatisticImage; + using MagickCore::SteganoImage; + using MagickCore::StereoImage; + using MagickCore::StripImage; + using MagickCore::SwirlImage; + using MagickCore::SyncCacheViewAuthenticPixels; + using MagickCore::SyncImage; + using MagickCore::SyncAuthenticPixels; + using MagickCore::TextureImage; + using MagickCore::ThrowException; + using MagickCore::TintImage; + using MagickCore::TransformImageColorspace; + using MagickCore::TransparentPaintImage; + using MagickCore::TransparentPaintImageChroma; + using MagickCore::TransposeImage; + using MagickCore::TransverseImage; + using MagickCore::TrimImage; + using MagickCore::UniqueImageColors; + using MagickCore::UnlockSemaphoreInfo; + using MagickCore::UnregisterMagickInfo; + using MagickCore::UnsharpMaskImage; + using MagickCore::VignetteImage; + using MagickCore::WaveImage; + using MagickCore::WaveletDenoiseImage; + using MagickCore::WhiteThresholdImage; + using MagickCore::WriteImage; + +#endif // MAGICKCORE_IMPLEMENTATION + +} + +////////////////////////////////////////////////////////////////////// +// +// No user-serviceable parts beyond this point +// +////////////////////////////////////////////////////////////////////// +#define GetPPException \ + MagickCore::ExceptionInfo \ + *exceptionInfo; \ + exceptionInfo=MagickCore::AcquireExceptionInfo(); +#define GetAndSetPPChannelMask(channel) \ + MagickCore::ChannelType \ + channel_mask; \ + channel_mask=MagickCore::SetImageChannelMask(image(),channel) +#define ClonePPDrawException(wand) \ + MagickCore::ExceptionInfo \ + *exceptionInfo; \ + exceptionInfo=MagickCore::DrawCloneExceptionInfo(wand) +#define RestorePPChannelMask \ + MagickCore::SetPixelChannelMask(image(),channel_mask) +#define SetPPChannelMask(channel) \ + (void) MagickCore::SetImageChannelMask(image(),channel) +#define ThrowPPDrawException(quiet) \ + throwException(exceptionInfo,quiet); \ + (void) MagickCore::DestroyExceptionInfo(exceptionInfo) +#define ThrowPPException(quiet) \ + throwException(exceptionInfo,quiet); \ + (void) MagickCore::DestroyExceptionInfo(exceptionInfo) + +#endif // Magick_Include_header diff --git a/include/ImageMagick-7/Magick++/Montage.h b/include/ImageMagick-7/Magick++/Montage.h new file mode 100644 index 0000000..61a161d --- /dev/null +++ b/include/ImageMagick-7/Magick++/Montage.h @@ -0,0 +1,155 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003 +// +// Definition of Montage class used to specify montage options. +// + +#if !defined(Magick_Montage_header) +#define Magick_Montage_header + +#include "Magick++/Include.h" +#include +#include "Magick++/Color.h" +#include "Magick++/Geometry.h" + +// +// Basic (Un-framed) Montage +// +namespace Magick +{ + class MagickPPExport Montage + { + public: + + Montage(void); + virtual ~Montage(void); + + // Color that thumbnails are composed on + void backgroundColor(const Color &backgroundColor_); + Color backgroundColor(void) const; + + // Composition algorithm to use (e.g. ReplaceCompositeOp) + void compose(CompositeOperator compose_); + CompositeOperator compose(void) const; + + // Filename to save montages to + void fileName(const std::string &fileName_); + std::string fileName(void) const; + + // Fill color + void fillColor(const Color &fill_); + Color fillColor(void) const; + + // Label font + void font(const std::string &font_); + std::string font(void) const; + + // Thumbnail width & height plus border width & height + void geometry(const Geometry &geometry_); + Geometry geometry(void) const; + + // Thumbnail position (e.g. SouthWestGravity) + void gravity(GravityType gravity_); + GravityType gravity(void) const; + + // Thumbnail label (applied to image prior to montage) + void label(const std::string &label_); + std::string label(void) const; + + // Font point size + void pointSize(size_t pointSize_); + size_t pointSize(void) const; + + // Enable drop-shadows on thumbnails + void shadow(bool shadow_); + bool shadow(void) const; + + // Outline color + void strokeColor(const Color &stroke_); + Color strokeColor(void) const; + + // Background texture image + void texture(const std::string &texture_); + std::string texture(void) const; + + // Thumbnail rows and colmns + void tile(const Geometry &tile_); + Geometry tile(void) const; + + // Montage title + void title(const std::string &title_); + std::string title(void) const; + + // Transparent color + void transparentColor(const Color &transparentColor_); + Color transparentColor(void) const; + + // + // Implementation methods/members + // + + // Update elements in existing MontageInfo structure + virtual void updateMontageInfo(MagickCore::MontageInfo &montageInfo_) const; + + private: + + Color _backgroundColor; + std::string _fileName; + Color _fill; + std::string _font; + Geometry _geometry; + GravityType _gravity; + std::string _label; + size_t _pointSize; + bool _shadow; + Color _stroke; + std::string _texture; + Geometry _tile; + std::string _title; + Color _transparentColor; + }; + + // + // Montage With Frames (Extends Basic Montage) + // + class MagickPPExport MontageFramed : public Montage + { + public: + + MontageFramed(void); + ~MontageFramed(void); + + // Frame foreground color + void matteColor(const Color &matteColor_); + Color matteColor(void) const; + + // Frame border color + void borderColor(const Color &borderColor_); + Color borderColor(void) const; + + // Pixels between thumbnail and surrounding frame + void borderWidth(size_t borderWidth_); + size_t borderWidth(void) const; + + // Frame geometry (width & height frame thickness) + void frameGeometry(const Geometry &frame_); + Geometry frameGeometry(void) const; + + // + // Implementation methods/members + // + + // Update elements in existing MontageInfo structure + void updateMontageInfo(MagickCore::MontageInfo &montageInfo_) const; + + private: + + Color _matteColor; + Color _borderColor; + size_t _borderWidth; + Geometry _frame; + }; +} // namespace Magick + +#endif // Magick_Montage_header diff --git a/include/ImageMagick-7/Magick++/Pixels.h b/include/ImageMagick-7/Magick++/Pixels.h new file mode 100644 index 0000000..1eb11b0 --- /dev/null +++ b/include/ImageMagick-7/Magick++/Pixels.h @@ -0,0 +1,152 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002 +// Copyright Dirk Lemstra 2014 +// +// Representation of a pixel view. +// + +#if !defined(Magick_Pixels_header) +#define Magick_Pixels_header + +#include "Magick++/Include.h" +#include "Magick++/Color.h" +#include "Magick++/Image.h" + +namespace Magick +{ + class MagickPPExport Pixels + { + public: + + // Construct pixel view using specified image. + Pixels(Magick::Image &image_); + + // Destroy pixel view + ~Pixels(void); + + // Transfer pixels from the image to the pixel view as defined by + // the specified region. Modified pixels may be subsequently + // transferred back to the image via sync. + Quantum *get(const ::ssize_t x_,const ::ssize_t y_, + const size_t columns_,const size_t rows_); + + // Transfer read-only pixels from the image to the pixel view as + // defined by the specified region. + const Quantum *getConst(const ::ssize_t x_,const ::ssize_t y_, + const size_t columns_,const size_t rows_); + + // Return pixel metacontent + void *metacontent(void); + + // Returns the offset for the specified channel. + ssize_t offset(PixelChannel channel) const; + + // Allocate a pixel view region to store image pixels as defined + // by the region rectangle. This area is subsequently transferred + // from the pixel view to the image via sync. + Quantum *set(const ::ssize_t x_,const ::ssize_t y_,const size_t columns_, + const size_t rows_ ); + + // Transfers the image view pixels to the image. + void sync(void); + + // Left ordinate of view + ::ssize_t x(void) const; + + // Top ordinate of view + ::ssize_t y(void) const; + + // Width of view + size_t columns(void) const; + + // Height of view + size_t rows(void) const; + + private: + + // Copying and assigning Pixels is not supported. + Pixels(const Pixels& pixels_); + const Pixels& operator=(const Pixels& pixels_); + + Magick::Image _image; // Image reference + MagickCore::CacheView *_view; // Image view handle + ::ssize_t _x; // Left ordinate of view + ::ssize_t _y; // Top ordinate of view + size_t _columns; // Width of view + size_t _rows; // Height of view + + }; // class Pixels + + class MagickPPExport PixelData + { + public: + + // Construct pixel data using specified image + PixelData(Magick::Image &image_,std::string map_,const StorageType type_); + + // Construct pixel data using specified image + PixelData(Magick::Image &image_,const ::ssize_t x_,const ::ssize_t y_, + const size_t width_,const size_t height_,std::string map_, + const StorageType type_); + + // Destroy pixel data + ~PixelData(void); + + // Pixel data buffer + const void *data(void) const; + + // Length of the buffer + ::ssize_t length(void) const; + + // Size of the buffer in bytes + ::ssize_t size(void) const; + + private: + + // Copying and assigning PixelData is not supported + PixelData(const PixelData& pixels_); + const PixelData& operator=(const PixelData& pixels_); + + void init(Magick::Image &image_,const ::ssize_t x_,const ::ssize_t y_, + const size_t width_,const size_t height_,std::string map_, + const StorageType type_); + + void relinquish(void) throw(); + + void *_data; // The pixel data + ::ssize_t _length; // Length of the data + ::ssize_t _size; // Size of the data + }; // class PixelData + +} // Magick namespace + +// +// Inline methods +// + +// Left ordinate of view +inline ::ssize_t Magick::Pixels::x(void) const +{ + return _x; +} + +// Top ordinate of view +inline ::ssize_t Magick::Pixels::y(void) const +{ + return _y; +} + +// Width of view +inline size_t Magick::Pixels::columns(void) const +{ + return _columns; +} + +// Height of view +inline size_t Magick::Pixels::rows(void) const +{ + return _rows; +} + +#endif // Magick_Pixels_header diff --git a/include/ImageMagick-7/Magick++/ResourceLimits.h b/include/ImageMagick-7/Magick++/ResourceLimits.h new file mode 100644 index 0000000..3643bc3 --- /dev/null +++ b/include/ImageMagick-7/Magick++/ResourceLimits.h @@ -0,0 +1,76 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Dirk Lemstra 2014-2018 +// +// Definition of resource limits. +// + +#if !defined(Magick_ResourceLimits_header) +#define Magick_ResourceLimits_header + +#include "Magick++/Include.h" + +namespace Magick +{ + class MagickPPExport ResourceLimits + { + public: + + // Pixel cache limit in bytes. Requests for memory above this limit + // are automagically allocated on disk. + static void area(const MagickSizeType limit_); + static MagickSizeType area(void); + + // Pixel cache limit in bytes. Requests for memory above this limit + // will fail. + static void disk(const MagickSizeType limit_); + static MagickSizeType disk(void); + + // The maximum number of open pixel cache files. When this limit is + // exceeded, any subsequent pixels cached to disk are closed and reopened + // on demand. This behavior permits a large number of images to be accessed + // simultaneously on disk, but with a speed penalty due to repeated + // open/close calls. + static void file(const MagickSizeType limit_); + static MagickSizeType file(void); + + // The maximum height of an image. + static void height(const MagickSizeType limit_); + static MagickSizeType height(void); + + // The maximum number of images in an image list. + static void listLength(const MagickSizeType limit_); + static MagickSizeType listLength(); + + // Pixel cache limit in bytes. Once this memory limit is exceeded, + // all subsequent pixels cache operations are to/from disk. + static void map(const MagickSizeType limit_); + static MagickSizeType map(void); + + // Pixel cache limit in bytes. Once this memory limit is exceeded, + // all subsequent pixels cache operations are to/from disk or to/from + // memory mapped files. + static void memory(const MagickSizeType limit_); + static MagickSizeType memory(void); + + // Limits the number of threads used in multithreaded operations. + static void thread(const MagickSizeType limit_); + static MagickSizeType thread(void); + + // Periodically yield the CPU for at least the time specified in + // milliseconds. + static void throttle(const MagickSizeType limit_); + static MagickSizeType throttle(void); + + // The maximum width of an image. + static void width(const MagickSizeType limit_); + static MagickSizeType width(void); + + private: + ResourceLimits(void); + + }; // class ResourceLimits + +} // Magick namespace + +#endif // Magick_ResourceLimits_header diff --git a/include/ImageMagick-7/Magick++/STL.h b/include/ImageMagick-7/Magick++/STL.h new file mode 100644 index 0000000..e848008 --- /dev/null +++ b/include/ImageMagick-7/Magick++/STL.h @@ -0,0 +1,2835 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003 +// Copyright Dirk Lemstra 2013-2017 +// +// Definition and implementation of template functions for using +// Magick::Image with STL containers. +// + +#ifndef Magick_STL_header +#define Magick_STL_header + +#include "Magick++/Include.h" +#include +#include +#include +#include +#include + +#include "Magick++/CoderInfo.h" +#include "Magick++/Drawable.h" +#include "Magick++/Exception.h" +#include "Magick++/Montage.h" + +namespace Magick +{ + // + // STL function object declarations/definitions + // + + // Function objects provide the means to invoke an operation on one + // or more image objects in an STL-compatable container. The + // arguments to the function object constructor(s) are compatable + // with the arguments to the equivalent Image class method and + // provide the means to supply these options when the function + // object is invoked. + + // For example, to read a GIF animation, set the color red to + // transparent for all frames, and write back out: + // + // list images; + // readImages( &images, "animation.gif" ); + // for_each( images.begin(), images.end(), transparentImage( "red" ) ); + // writeImages( images.begin(), images.end(), "animation.gif" ); + + // Adaptive-blur image with specified blur factor + class MagickPPExport adaptiveBlurImage + { + public: + adaptiveBlurImage( const double radius_ = 1, const double sigma_ = 0.5 ); + + void operator()( Image &image_ ) const; + + private: + double _radius; + double _sigma; + }; + + // Local adaptive threshold image + // http://www.dai.ed.ac.uk/HIPR2/adpthrsh.htm + // Width x height define the size of the pixel neighborhood + // offset = constant to subtract from pixel neighborhood mean + class MagickPPExport adaptiveThresholdImage + { + public: + adaptiveThresholdImage( const size_t width_, + const size_t height_, + const ::ssize_t offset_ = 0 ); + + void operator()( Image &image_ ) const; + + private: + size_t _width; + size_t _height; + ::ssize_t _offset; + }; + + // Add noise to image with specified noise type + class MagickPPExport addNoiseImage + { + public: + addNoiseImage(const NoiseType noiseType_,const double attenuate_ = 1.0); + + void operator()(Image &image_) const; + + private: + NoiseType _noiseType; + double _attenuate; + }; + + // Transform image by specified affine (or free transform) matrix. + class MagickPPExport affineTransformImage + { + public: + affineTransformImage( const DrawableAffine &affine_ ); + + void operator()( Image &image_ ) const; + + private: + DrawableAffine _affine; + }; + + // Annotate image (draw text on image) + class MagickPPExport annotateImage + { + public: + // Annotate using specified text, and placement location + annotateImage ( const std::string &text_, + const Geometry &geometry_ ); + + // Annotate using specified text, bounding area, and placement + // gravity + annotateImage ( const std::string &text_, + const Geometry &geometry_, + const GravityType gravity_ ); + + // Annotate with text using specified text, bounding area, + // placement gravity, and rotation. + annotateImage ( const std::string &text_, + const Geometry &geometry_, + const GravityType gravity_, + const double degrees_ ); + + // Annotate with text (bounding area is entire image) and + // placement gravity. + annotateImage ( const std::string &text_, + const GravityType gravity_ ); + + void operator()( Image &image_ ) const; + + private: + const std::string _text; + const Geometry _geometry; + const GravityType _gravity; + const double _degrees; + }; + + // Blur image with specified blur factor + class MagickPPExport blurImage + { + public: + blurImage( const double radius_ = 1, const double sigma_ = 0.5 ); + + void operator()( Image &image_ ) const; + + private: + double _radius; + double _sigma; + }; + + // Border image (add border to image) + class MagickPPExport borderImage + { + public: + borderImage( const Geometry &geometry_ = borderGeometryDefault ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + // Extract channel from image + class MagickPPExport channelImage + { + public: + channelImage( const ChannelType channel_ ); + + void operator()( Image &image_ ) const; + + private: + ChannelType _channel; + }; + + // Charcoal effect image (looks like charcoal sketch) + class MagickPPExport charcoalImage + { + public: + charcoalImage( const double radius_ = 1, const double sigma_ = 0.5 ); + + void operator()( Image &image_ ) const; + + private: + double _radius; + double _sigma; + }; + + // Chop image (remove vertical or horizontal subregion of image) + class MagickPPExport chopImage + { + public: + chopImage( const Geometry &geometry_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + // Accepts a lightweight Color Correction Collection (CCC) file which solely + // contains one or more color corrections and applies the correction to the + // image. + class MagickPPExport cdlImage + { + public: + cdlImage( const std::string &cdl_ ); + + void operator()( Image &image_ ) const; + + private: + std::string _cdl; + }; + + // Colorize image using pen color at specified percent alpha + class MagickPPExport colorizeImage + { + public: + colorizeImage( const unsigned int alphaRed_, + const unsigned int alphaGreen_, + const unsigned int alphaBlue_, + const Color &penColor_ ); + + colorizeImage( const unsigned int alpha_, + const Color &penColor_ ); + + void operator()( Image &image_ ) const; + + private: + unsigned int _alphaRed; + unsigned int _alphaGreen; + unsigned int _alphaBlue; + Color _penColor; + }; + + // Apply a color matrix to the image channels. The user supplied + // matrix may be of order 1 to 5 (1x1 through 5x5). + class MagickPPExport colorMatrixImage + { + public: + colorMatrixImage( const size_t order_, + const double *color_matrix_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _order; + const double *_color_matrix; + }; + + // Convert the image colorspace representation + class MagickPPExport colorSpaceImage + { + public: + colorSpaceImage( ColorspaceType colorSpace_ ); + + void operator()( Image &image_ ) const; + + private: + ColorspaceType _colorSpace; + }; + + // Comment image (add comment string to image) + class MagickPPExport commentImage + { + public: + commentImage( const std::string &comment_ ); + + void operator()( Image &image_ ) const; + + private: + std::string _comment; + }; + + // Compose an image onto another at specified offset and using + // specified algorithm + class MagickPPExport compositeImage + { + public: + compositeImage( const Image &compositeImage_, + ::ssize_t xOffset_, + ::ssize_t yOffset_, + CompositeOperator compose_ = InCompositeOp ); + + compositeImage( const Image &compositeImage_, + const Geometry &offset_, + CompositeOperator compose_ = InCompositeOp ); + + void operator()( Image &image_ ) const; + + private: + Image _compositeImage; + ::ssize_t _xOffset; + ::ssize_t _yOffset; + CompositeOperator _compose; + }; + + // Contrast image (enhance intensity differences in image) + class MagickPPExport contrastImage + { + public: + contrastImage( const size_t sharpen_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _sharpen; + }; + + // Crop image (subregion of original image) + class MagickPPExport cropImage + { + public: + cropImage( const Geometry &geometry_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + // Cycle image colormap + class MagickPPExport cycleColormapImage + { + public: + cycleColormapImage( const ::ssize_t amount_ ); + + void operator()( Image &image_ ) const; + + private: + ::ssize_t _amount; + }; + + // Despeckle image (reduce speckle noise) + class MagickPPExport despeckleImage + { + public: + despeckleImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Distort image. distorts an image using various distortion methods, by + // mapping color lookups of the source image to a new destination image + // usally of the same size as the source image, unless 'bestfit' is set to + // true. + class MagickPPExport distortImage + { + public: + distortImage( const Magick::DistortMethod method_, + const size_t number_arguments_, + const double *arguments_, + const bool bestfit_ ); + + distortImage( const Magick::DistortMethod method_, + const size_t number_arguments_, + const double *arguments_ ); + + void operator()( Image &image_ ) const; + + private: + DistortMethod _method; + size_t _number_arguments; + const double *_arguments; + bool _bestfit; + }; + + // Draw on image + class MagickPPExport drawImage + { + public: + // Draw on image using a single drawable + // Store in list to make implementation easier + drawImage( const Drawable &drawable_ ); + + // Draw on image using a drawable list + drawImage( const DrawableList &drawable_ ); + + void operator()( Image &image_ ) const; + + private: + DrawableList _drawableList; + }; + + // Edge image (hilight edges in image) + class MagickPPExport edgeImage + { + public: + edgeImage( const double radius_ = 0.0 ); + + void operator()( Image &image_ ) const; + + private: + double _radius; + }; + + // Emboss image (hilight edges with 3D effect) + class MagickPPExport embossImage + { + public: + embossImage( void ); + embossImage( const double radius_, const double sigma_ ); + + void operator()( Image &image_ ) const; + + private: + double _radius; + double _sigma; + }; + + // Enhance image (minimize noise) + class MagickPPExport enhanceImage + { + public: + enhanceImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Equalize image (histogram equalization) + class MagickPPExport equalizeImage + { + public: + equalizeImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Color to use when filling drawn objects + class MagickPPExport fillColorImage + { + public: + fillColorImage( const Color &fillColor_ ); + + void operator()( Image &image_ ) const; + + private: + Color _fillColor; + }; + + // Flip image (reflect each scanline in the vertical direction) + class MagickPPExport flipImage + { + public: + flipImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Floodfill designated area with a matte value + class MagickPPExport floodFillAlphaImage + + { + public: + floodFillAlphaImage(const ::ssize_t x_,const ::ssize_t y_, + const unsigned int alpha_,const Color &target_,const bool invert_=false); + + void operator()(Image &image_) const; + + private: + Color _target; + unsigned int _alpha; + ::ssize_t _x; + ::ssize_t _y; + bool _invert; + }; + + // Flood-fill image with color + class MagickPPExport floodFillColorImage + + { + public: + // Flood-fill color across pixels starting at target-pixel and + // stopping at pixels matching specified border color. + // Uses current fuzz setting when determining color match. + floodFillColorImage(const Geometry &point_,const Color &fillColor_, + const bool invert_=false); + floodFillColorImage(const ::ssize_t x_,const ::ssize_t y_, + const Color &fillColor_,const bool invert_=false); + + // Flood-fill color across pixels starting at target-pixel and + // stopping at pixels matching specified border color. + // Uses current fuzz setting when determining color match. + floodFillColorImage(const Geometry &point_,const Color &fillColor_, + const Color &borderColor_,const bool invert_=false); + floodFillColorImage(const ::ssize_t x_,const ::ssize_t y_, + const Color &fillColor_,const Color &borderColor_, + const bool invert_=false); + + void operator()(Image &image_) const; + + private: + ::ssize_t _x; + ::ssize_t _y; + Color _fillColor; + Color _borderColor; + bool _invert; + }; + + // Flood-fill image with texture + class MagickPPExport floodFillTextureImage + + { + public: + // Flood-fill texture across pixels that match the color of the + // target pixel and are neighbors of the target pixel. + // Uses current fuzz setting when determining color match. + floodFillTextureImage(const ::ssize_t x_,const ::ssize_t y_, + const Image &texture_,const bool invert_=false); + floodFillTextureImage(const Geometry &point_,const Image &texture_, + const bool invert_=false); + + // Flood-fill texture across pixels starting at target-pixel and + // stopping at pixels matching specified border color. + // Uses current fuzz setting when determining color match. + floodFillTextureImage(const ::ssize_t x_,const ::ssize_t y_, + const Image &texture_,const Color &borderColor_, + const bool invert_=false); + + floodFillTextureImage(const Geometry &point_,const Image &texture_, + const Color &borderColor_,const bool invert_=false); + + void operator()(Image &image_) const; + + private: + ::ssize_t _x; + ::ssize_t _y; + Image _texture; + Color _borderColor; + bool _invert; + }; + + // Flop image (reflect each scanline in the horizontal direction) + class MagickPPExport flopImage + { + public: + flopImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Frame image + class MagickPPExport frameImage + { + public: + frameImage( const Geometry &geometry_ = frameGeometryDefault ); + + frameImage( const size_t width_, const size_t height_, + const ::ssize_t innerBevel_ = 6, const ::ssize_t outerBevel_ = 6 ); + + void operator()( Image &image_ ) const; + + private: + size_t _width; + size_t _height; + ::ssize_t _outerBevel; + ::ssize_t _innerBevel; + }; + + // Gamma correct image + class MagickPPExport gammaImage + { + public: + gammaImage( const double gamma_ ); + + gammaImage ( const double gammaRed_, + const double gammaGreen_, + const double gammaBlue_ ); + + void operator()( Image &image_ ) const; + + private: + double _gammaRed; + double _gammaGreen; + double _gammaBlue; + }; + + // Gaussian blur image + // The number of neighbor pixels to be included in the convolution + // mask is specified by 'width_'. The standard deviation of the + // gaussian bell curve is specified by 'sigma_'. + class MagickPPExport gaussianBlurImage + { + public: + gaussianBlurImage( const double width_, const double sigma_ ); + + void operator()( Image &image_ ) const; + + private: + double _width; + double _sigma; + }; + + // Apply a color lookup table (Hald CLUT) to the image. + class MagickPPExport haldClutImage + { + public: + haldClutImage( const Image &haldClutImage_ ); + + void operator()( Image &image_ ) const; + + private: + Image _haldClutImage; + }; + + // Implode image (special effect) + class MagickPPExport implodeImage + { + public: + implodeImage( const double factor_ = 50 ); + + void operator()( Image &image_ ) const; + + private: + double _factor; + }; + + // implements the inverse discrete Fourier transform (IFT) of the image + // either as a magnitude / phase or real / imaginary image pair. + class MagickPPExport inverseFourierTransformImage + { + public: + inverseFourierTransformImage( const Image &phaseImage_ ); + + void operator()( Image &image_ ) const; + + private: + Image _phaseImage; + }; + + // Set image validity. Valid images become empty (inValid) if + // argument is false. + class MagickPPExport isValidImage + { + public: + isValidImage( const bool isValid_ ); + + void operator()( Image &image_ ) const; + + private: + bool _isValid; + }; + + // Label image + class MagickPPExport labelImage + { + public: + labelImage( const std::string &label_ ); + + void operator()( Image &image_ ) const; + + private: + std::string _label; + }; + + + // Level image + class MagickPPExport levelImage + { + public: + levelImage( const double black_point, + const double white_point, + const double mid_point=1.0 ); + + void operator()( Image &image_ ) const; + + private: + double _black_point; + double _white_point; + double _mid_point; + }; + + // Magnify image by integral size + class MagickPPExport magnifyImage + { + public: + magnifyImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Remap image colors with closest color from reference image + class MagickPPExport mapImage + { + public: + mapImage( const Image &mapImage_ , + const bool dither_ = false ); + + void operator()( Image &image_ ) const; + + private: + Image _mapImage; + bool _dither; + }; + + // Filter image by replacing each pixel component with the median + // color in a circular neighborhood + class MagickPPExport medianConvolveImage + { + public: + medianConvolveImage( const double radius_ = 0.0 ); + + void operator()( Image &image_ ) const; + + private: + double _radius; + }; + + // Merge image layers + class MagickPPExport mergeLayersImage + { + public: + mergeLayersImage ( LayerMethod layerMethod_ ); + + void operator()( Image &image_ ) const; + + private: + LayerMethod _layerMethod; + }; + + // Reduce image by integral size + class MagickPPExport minifyImage + { + public: + minifyImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Modulate percent hue, saturation, and brightness of an image + class MagickPPExport modulateImage + { + public: + modulateImage( const double brightness_, + const double saturation_, + const double hue_ ); + + void operator()( Image &image_ ) const; + + private: + double _brightness; + double _saturation; + double _hue; + }; + + // Negate colors in image. Set grayscale to only negate grayscale + // values in image. + class MagickPPExport negateImage + { + public: + negateImage( const bool grayscale_ = false ); + + void operator()( Image &image_ ) const; + + private: + bool _grayscale; + }; + + // Normalize image (increase contrast by normalizing the pixel + // values to span the full range of color values) + class MagickPPExport normalizeImage + { + public: + normalizeImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Oilpaint image (image looks like oil painting) + class MagickPPExport oilPaintImage + { + public: + oilPaintImage( const double radius_ = 3 ); + + void operator()( Image &image_ ) const; + + private: + double _radius; + }; + + // Set or attenuate the image alpha channel. If the image pixels + // are opaque then they are set to the specified alpha value, + // otherwise they are blended with the supplied alpha value. The + // value of alpha_ ranges from 0 (completely opaque) to + // QuantumRange. The defines OpaqueAlpha and TransparentAlpha are + // available to specify completely opaque or completely transparent, + // respectively. + class MagickPPExport alphaImage + { + public: + alphaImage( const unsigned int alpha_ ); + + void operator()( Image &image_ ) const; + + private: + unsigned int _alpha; + }; + + // Change color of opaque pixel to specified pen color. + class MagickPPExport opaqueImage + { + public: + opaqueImage( const Color &opaqueColor_, + const Color &penColor_ ); + + void operator()( Image &image_ ) const; + + private: + Color _opaqueColor; + Color _penColor; + }; + + // Quantize image (reduce number of colors) + class MagickPPExport quantizeImage + { + public: + quantizeImage( const bool measureError_ = false ); + + void operator()( Image &image_ ) const; + + private: + bool _measureError; + }; + + // Raise image (lighten or darken the edges of an image to give a + // 3-D raised or lowered effect) + class MagickPPExport raiseImage + { + public: + raiseImage( const Geometry &geometry_ = raiseGeometryDefault, + const bool raisedFlag_ = false ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + bool _raisedFlag; + }; + + class MagickPPExport ReadOptions + { + public: + + // Default constructor + ReadOptions(void); + + // Copy constructor + ReadOptions(const ReadOptions& options_); + + // Destructor + ~ReadOptions(); + + // Vertical and horizontal resolution in pixels of the image + void density(const Geometry &geomery_); + Geometry density(void) const; + + // Image depth (8 or 16) + void depth(size_t depth_); + size_t depth(void) const; + + // Suppress all warning messages. Error messages are still reported. + void quiet(const bool quiet_); + bool quiet(void) const; + + // Image size (required for raw formats) + void size(const Geometry &geometry_); + Geometry size(void) const; + + // + // Internal implementation methods. Please do not use. + // + + MagickCore::ImageInfo *imageInfo(void); + + private: + + // Assignment not supported + ReadOptions& operator=(const ReadOptions&); + + MagickCore::ImageInfo *_imageInfo; + bool _quiet; + }; + + // Reduce noise in image using a noise peak elimination filter + class MagickPPExport reduceNoiseImage + { + public: + reduceNoiseImage( void ); + + reduceNoiseImage (const size_t order_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _order; + }; + + // Resize image to specified size. + class MagickPPExport resizeImage + { + public: + resizeImage( const Geometry &geometry_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + // Roll image (rolls image vertically and horizontally) by specified + // number of columnms and rows) + class MagickPPExport rollImage + { + public: + rollImage( const Geometry &roll_ ); + + rollImage( const ::ssize_t columns_, const ::ssize_t rows_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _columns; + size_t _rows; + }; + + // Rotate image counter-clockwise by specified number of degrees. + class MagickPPExport rotateImage + { + public: + rotateImage( const double degrees_ ); + + void operator()( Image &image_ ) const; + + private: + double _degrees; + }; + + // Resize image by using pixel sampling algorithm + class MagickPPExport sampleImage + { + public: + sampleImage( const Geometry &geometry_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + // Resize image by using simple ratio algorithm + class MagickPPExport scaleImage + { + public: + scaleImage( const Geometry &geometry_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + // Segment (coalesce similar image components) by analyzing the + // histograms of the color components and identifying units that are + // homogeneous with the fuzzy c-means technique. + // Also uses QuantizeColorSpace and Verbose image attributes + class MagickPPExport segmentImage + { + public: + segmentImage( const double clusterThreshold_ = 1.0, + const double smoothingThreshold_ = 1.5 ); + + void operator()( Image &image_ ) const; + + private: + double _clusterThreshold; + double _smoothingThreshold; + }; + + // Shade image using distant light source + class MagickPPExport shadeImage + { + public: + shadeImage( const double azimuth_ = 30, + const double elevation_ = 30, + const bool colorShading_ = false ); + + void operator()( Image &image_ ) const; + + private: + double _azimuth; + double _elevation; + bool _colorShading; + }; + + // Shadow effect image (simulate an image shadow) + class MagickPPExport shadowImage + { + public: + shadowImage( const double percent_opacity_ = 80, const double sigma_ = 0.5, + const ssize_t x_ = 5, const ssize_t y_ = 5 ); + + void operator()( Image &image_ ) const; + + private: + double _percent_opacity; + double _sigma; + ssize_t _x; + ssize_t _y; + }; + + // Sharpen pixels in image + class MagickPPExport sharpenImage + { + public: + sharpenImage( const double radius_ = 1, const double sigma_ = 0.5 ); + + void operator()( Image &image_ ) const; + + private: + double _radius; + double _sigma; + }; + + // Shave pixels from image edges. + class MagickPPExport shaveImage + { + public: + shaveImage( const Geometry &geometry_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + + // Shear image (create parallelogram by sliding image by X or Y axis) + class MagickPPExport shearImage + { + public: + shearImage( const double xShearAngle_, + const double yShearAngle_ ); + + void operator()( Image &image_ ) const; + + private: + double _xShearAngle; + double _yShearAngle; + }; + + // Solarize image (similar to effect seen when exposing a + // photographic film to light during the development process) + class MagickPPExport solarizeImage + { + public: + solarizeImage( const double factor_ ); + + void operator()( Image &image_ ) const; + + private: + double _factor; + }; + + // Splice the background color into the image. + class MagickPPExport spliceImage + { + public: + spliceImage( const Geometry &geometry_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + // Spread pixels randomly within image by specified ammount + class MagickPPExport spreadImage + { + public: + spreadImage( const size_t amount_ = 3 ); + + void operator()( Image &image_ ) const; + + private: + size_t _amount; + }; + + // Add a digital watermark to the image (based on second image) + class MagickPPExport steganoImage + { + public: + steganoImage( const Image &waterMark_ ); + + void operator()( Image &image_ ) const; + + private: + Image _waterMark; + }; + + // Create an image which appears in stereo when viewed with red-blue glasses + // (Red image on left, blue on right) + class MagickPPExport stereoImage + { + public: + stereoImage( const Image &rightImage_ ); + + void operator()( Image &image_ ) const; + + private: + Image _rightImage; + }; + + // Color to use when drawing object outlines + class MagickPPExport strokeColorImage + { + public: + strokeColorImage( const Color &strokeColor_ ); + + void operator()( Image &image_ ) const; + + private: + Color _strokeColor; + }; + + // Swirl image (image pixels are rotated by degrees) + class MagickPPExport swirlImage + { + public: + swirlImage( const double degrees_ ); + + void operator()( Image &image_ ) const; + + private: + double _degrees; + }; + + // Channel a texture on image background + class MagickPPExport textureImage + { + public: + textureImage( const Image &texture_ ); + + void operator()( Image &image_ ) const; + + private: + Image _texture; + }; + + // Threshold image + class MagickPPExport thresholdImage + { + public: + thresholdImage( const double threshold_ ); + + void operator()( Image &image_ ) const; + + private: + double _threshold; + }; + + // Set image color to transparent + class MagickPPExport transparentImage + { + public: + transparentImage( const Color& color_ ); + + void operator()( Image &image_ ) const; + + private: + Color _color; + }; + + // Trim edges that are the background color from the image + class MagickPPExport trimImage + { + public: + trimImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Map image pixels to a sine wave + class MagickPPExport waveImage + { + public: + waveImage( const double amplitude_ = 25.0, + const double wavelength_ = 150.0 ); + + void operator()( Image &image_ ) const; + + private: + double _amplitude; + double _wavelength; + }; + + // Zoom image to specified size. + class MagickPPExport zoomImage + { + public: + zoomImage( const Geometry &geometry_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + // + // Function object image attribute accessors + // + + // Join images into a single multi-image file + class MagickPPExport adjoinImage + { + public: + adjoinImage( const bool flag_ ); + + void operator()( Image &image_ ) const; + + private: + bool _flag; + }; + + // Time in 1/100ths of a second which must expire before displaying + // the next image in an animated sequence. + class MagickPPExport animationDelayImage + { + public: + animationDelayImage( const size_t delay_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _delay; + }; + + // Number of iterations to loop an animation (e.g. Netscape loop + // extension) for. + class MagickPPExport animationIterationsImage + { + public: + animationIterationsImage( const size_t iterations_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _iterations; + }; + + // Image background color + class MagickPPExport backgroundColorImage + { + public: + backgroundColorImage( const Color &color_ ); + + void operator()( Image &image_ ) const; + + private: + Color _color; + }; + + // Name of texture image to tile onto the image background + class MagickPPExport backgroundTextureImage + { + public: + backgroundTextureImage( const std::string &backgroundTexture_ ); + + void operator()( Image &image_ ) const; + + private: + std::string _backgroundTexture; + }; + + // Image border color + class MagickPPExport borderColorImage + { + public: + borderColorImage( const Color &color_ ); + + void operator()( Image &image_ ) const; + + private: + Color _color; + }; + + // Text bounding-box base color (default none) + class MagickPPExport boxColorImage + { + public: + boxColorImage( const Color &boxColor_ ); + + void operator()( Image &image_ ) const; + + private: + Color _boxColor; + }; + + // Chromaticity blue primary point. + class MagickPPExport chromaBluePrimaryImage + { + public: + chromaBluePrimaryImage(const double x_,const double y_,const double z_); + + void operator()(Image &image_) const; + + private: + double _x; + double _y; + double _z; + }; + + // Chromaticity green primary point. + class MagickPPExport chromaGreenPrimaryImage + { + public: + chromaGreenPrimaryImage(const double x_,const double y_,const double z_); + + void operator()(Image &image_) const; + + private: + double _x; + double _y; + double _z; + }; + + // Chromaticity red primary point. + class MagickPPExport chromaRedPrimaryImage + { + public: + chromaRedPrimaryImage(const double x_,const double y_,const double z_); + + void operator()(Image &image_) const; + + private: + double _x; + double _y; + double _z; + }; + + // Chromaticity white point. + class MagickPPExport chromaWhitePointImage + { + public: + chromaWhitePointImage(const double x_,const double y_,const double z_); + + void operator()(Image &image_) const; + + private: + double _x; + double _y; + double _z; + }; + + // Colors within this distance are considered equal + class MagickPPExport colorFuzzImage + { + public: + colorFuzzImage( const double fuzz_ ); + + void operator()( Image &image_ ) const; + + private: + double _fuzz; + }; + + // Color at colormap position index_ + class MagickPPExport colorMapImage + { + public: + colorMapImage( const size_t index_, const Color &color_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _index; + Color _color; + }; + + // Composition operator to be used when composition is implicitly used + // (such as for image flattening). + class MagickPPExport composeImage + { + public: + composeImage( const CompositeOperator compose_ ); + + void operator()( Image &image_ ) const; + + private: + CompositeOperator _compose; + }; + + // Compression type + class MagickPPExport compressTypeImage + { + public: + compressTypeImage( const CompressionType compressType_ ); + + void operator()( Image &image_ ) const; + + private: + CompressionType _compressType; + }; + + // Vertical and horizontal resolution in pixels of the image + class MagickPPExport densityImage + { + public: + densityImage( const Point &point_ ); + + void operator()( Image &image_ ) const; + + private: + Point _point; + }; + + // Image depth (bits allocated to red/green/blue components) + class MagickPPExport depthImage + { + public: + depthImage( const size_t depth_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _depth; + }; + + // Endianness (LSBEndian like Intel or MSBEndian like SPARC) for image + // formats which support endian-specific options. + class MagickPPExport endianImage + { + public: + endianImage( const EndianType endian_ ); + + void operator()( Image &image_ ) const; + + private: + EndianType _endian; + }; + + // Image file name + class MagickPPExport fileNameImage + { + public: + fileNameImage( const std::string &fileName_ ); + + void operator()( Image &image_ ) const; + + private: + std::string _fileName; + }; + + // Filter to use when resizing image + class MagickPPExport filterTypeImage + { + public: + filterTypeImage( const FilterType filterType_ ); + + void operator()( Image &image_ ) const; + + private: + FilterType _filterType; + }; + + // Text rendering font + class MagickPPExport fontImage + { + public: + fontImage( const std::string &font_ ); + + void operator()( Image &image_ ) const; + + private: + std::string _font; + }; + + // Font point size + class MagickPPExport fontPointsizeImage + { + public: + fontPointsizeImage( const size_t pointsize_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _pointsize; + }; + + // GIF disposal method + class MagickPPExport gifDisposeMethodImage + { + public: + gifDisposeMethodImage( const DisposeType disposeMethod_ ); + + void operator()( Image &image_ ) const; + + private: + DisposeType _disposeMethod; + }; + + // Type of interlacing to use + class MagickPPExport interlaceTypeImage + { + public: + interlaceTypeImage( const InterlaceType interlace_ ); + + void operator()( Image &image_ ) const; + + private: + InterlaceType _interlace; + }; + + // File type magick identifier (.e.g "GIF") + class MagickPPExport magickImage + { + public: + magickImage( const std::string &magick_ ); + + void operator()( Image &image_ ) const; + + private: + std::string _magick; + }; + + // Image supports transparent color + class MagickPPExport alphaFlagImage + { + public: + alphaFlagImage( const bool alphaFlag_ ); + + void operator()( Image &image_ ) const; + + private: + bool _alphaFlag; + }; + + // Transparent color + class MagickPPExport matteColorImage + { + public: + matteColorImage( const Color &matteColor_ ); + + void operator()( Image &image_ ) const; + + private: + Color _matteColor; + }; + + // Indicate that image is black and white + class MagickPPExport monochromeImage + { + public: + monochromeImage( const bool monochromeFlag_ ); + + void operator()( Image &image_ ) const; + + private: + bool _monochromeFlag; + }; + + // Pen color + class MagickPPExport penColorImage + { + public: + penColorImage( const Color &penColor_ ); + + void operator()( Image &image_ ) const; + + private: + Color _penColor; + }; + + // Pen texture image. + class MagickPPExport penTextureImage + { + public: + penTextureImage( const Image &penTexture_ ); + + void operator()( Image &image_ ) const; + + private: + Image _penTexture; + }; + + // Set pixel color at location x & y. + class MagickPPExport pixelColorImage + { + public: + pixelColorImage( const ::ssize_t x_, + const ::ssize_t y_, + const Color &color_); + + void operator()( Image &image_ ) const; + + private: + ::ssize_t _x; + ::ssize_t _y; + Color _color; + }; + + // Postscript page size. + class MagickPPExport pageImage + { + public: + pageImage( const Geometry &pageSize_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _pageSize; + }; + + // JPEG/MIFF/PNG compression level (default 75). + class MagickPPExport qualityImage + { + public: + qualityImage( const size_t quality_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _quality; + }; + + // Maximum number of colors to quantize to + class MagickPPExport quantizeColorsImage + { + public: + quantizeColorsImage( const size_t colors_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _colors; + }; + + // Colorspace to quantize in. + class MagickPPExport quantizeColorSpaceImage + { + public: + quantizeColorSpaceImage( const ColorspaceType colorSpace_ ); + + void operator()( Image &image_ ) const; + + private: + ColorspaceType _colorSpace; + }; + + // Dither image during quantization (default true). + class MagickPPExport quantizeDitherImage + { + public: + quantizeDitherImage( const bool ditherFlag_ ); + + void operator()( Image &image_ ) const; + + private: + bool _ditherFlag; + }; + + // Quantization tree-depth + class MagickPPExport quantizeTreeDepthImage + { + public: + quantizeTreeDepthImage( const size_t treeDepth_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _treeDepth; + }; + + // The type of rendering intent + class MagickPPExport renderingIntentImage + { + public: + renderingIntentImage( const RenderingIntent renderingIntent_ ); + + void operator()( Image &image_ ) const; + + private: + RenderingIntent _renderingIntent; + }; + + // Units of image resolution + class MagickPPExport resolutionUnitsImage + { + public: + resolutionUnitsImage( const ResolutionType resolutionUnits_ ); + + void operator()( Image &image_ ) const; + + private: + ResolutionType _resolutionUnits; + }; + + // Image scene number + class MagickPPExport sceneImage + { + public: + sceneImage( const size_t scene_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _scene; + }; + + // adjust the image contrast with a non-linear sigmoidal contrast algorithm + class MagickPPExport sigmoidalContrastImage + { + public: + sigmoidalContrastImage( const size_t sharpen_, + const double contrast, + const double midpoint = QuantumRange / 2.0 ); + + void operator()( Image &image_ ) const; + + private: + size_t _sharpen; + double contrast; + double midpoint; + }; + + // Width and height of a raw image + class MagickPPExport sizeImage + { + public: + sizeImage( const Geometry &geometry_ ); + + void operator()( Image &image_ ) const; + + private: + Geometry _geometry; + }; + + // stripImage strips an image of all profiles and comments. + class MagickPPExport stripImage + { + public: + stripImage( void ); + + void operator()( Image &image_ ) const; + + private: + }; + + // Subimage of an image sequence + class MagickPPExport subImageImage + { + public: + subImageImage( const size_t subImage_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _subImage; + }; + + // Number of images relative to the base image + class MagickPPExport subRangeImage + { + public: + subRangeImage( const size_t subRange_ ); + + void operator()( Image &image_ ) const; + + private: + size_t _subRange; + }; + + // Anti-alias Postscript and TrueType fonts (default true) + class MagickPPExport textAntiAliasImage + { + public: + textAntiAliasImage( const bool flag_ ); + + void operator()( Image &image_ ) const; + + private: + bool _flag; + }; + + // Image storage type + class MagickPPExport typeImage + { + public: + typeImage( const ImageType type_ ); + + void operator()( Image &image_ ) const; + + private: + Magick::ImageType _type; + }; + + + // Print detailed information about the image + class MagickPPExport verboseImage + { + public: + verboseImage( const bool verbose_ ); + + void operator()( Image &image_ ) const; + + private: + bool _verbose; + }; + + // X11 display to display to, obtain fonts from, or to capture + // image from + class MagickPPExport x11DisplayImage + { + public: + x11DisplayImage( const std::string &display_ ); + + void operator()( Image &image_ ) const; + + private: + std::string _display; + }; + + ////////////////////////////////////////////////////////// + // + // Implementation template definitions. Not for end-use. + // + ////////////////////////////////////////////////////////// + + // Changes the channel mask of the images and places the old + // values in the container. + template + void channelMaskImages(InputIterator first_,InputIterator last_, + Container *container_,const ChannelType channel_) + { + MagickCore::ChannelType + channel_mask; + + container_->clear(); + for (InputIterator iter = first_; iter != last_; ++iter) + { + iter->modifyImage(); + channel_mask=MagickCore::SetImageChannelMask(iter->image(),channel_); + container_->push_back(channel_mask); + } + } + + // Insert images in image list into existing container (appending to container) + // The images should not be deleted since only the image ownership is passed. + // The options are copied into the object. + template + void insertImages(Container *sequence_,MagickCore::Image* images_) + { + MagickCore::Image + *image, + *next; + + image=images_; + while (image != (MagickCore::Image *) NULL) + { + next=image->next; + image->next=(MagickCore::Image *) NULL; + + if (next != (MagickCore::Image *) NULL) + next->previous=(MagickCore::Image *) NULL; + + sequence_->push_back(Magick::Image(image)); + + image=next; + } + } + + // Link images together into an image list based on the ordering of + // the container implied by the iterator. This step is done in + // preparation for use with ImageMagick functions which operate on + // lists of images. + // Images are selected by range, first_ to last_ so that a subset of + // the container may be selected. Specify first_ via the + // container's begin() method and last_ via the container's end() + // method in order to specify the entire container. + template + bool linkImages(InputIterator first_,InputIterator last_) + { + MagickCore::Image + *current, + *previous; + + ::ssize_t + scene; + + scene=0; + previous=(MagickCore::Image *) NULL; + for (InputIterator iter = first_; iter != last_; ++iter) + { + // Unless we reduce the reference count to one, the same image + // structure may occur more than once in the container, causing + // the linked list to fail. + iter->modifyImage(); + + current=iter->image(); + + current->previous=previous; + current->next=(MagickCore::Image *) NULL; + current->scene=scene++; + + if (previous != (MagickCore::Image *) NULL) + previous->next=current; + + previous=current; + } + return(scene > 0 ? true : false); + } + + // Restores the channel mask of the images. + template + void restoreChannelMaskImages(InputIterator first_,InputIterator last_, + Container *container_) + { + typename Container::iterator + channel_mask; + + channel_mask=container_->begin(); + for (InputIterator iter = first_; iter != last_; ++iter) + { + iter->modifyImage(); + (void) MagickCore::SetImageChannelMask(iter->image(), + (const MagickCore::ChannelType) *channel_mask); + channel_mask++; + } + } + + // Remove links added by linkImages. This should be called after the + // ImageMagick function call has completed to reset the image list + // back to its pristine un-linked state. + template + void unlinkImages(InputIterator first_,InputIterator last_) + { + MagickCore::Image + *image; + + for (InputIterator iter = first_; iter != last_; ++iter) + { + image=iter->image(); + image->previous=(MagickCore::Image *) NULL; + image->next=(MagickCore::Image *) NULL; + } + } + + /////////////////////////////////////////////////////////////////// + // + // Template definitions for documented API + // + /////////////////////////////////////////////////////////////////// + + template + void animateImages( InputIterator first_,InputIterator last_) + { + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::AnimateImages(first_->imageInfo(),first_->image(), + exceptionInfo); + unlinkImages(first_,last_); + ThrowPPException(first_->quiet()); + } + + // Append images from list into single image in either horizontal or + // vertical direction. + template + void appendImages( Image *appendedImage_, + InputIterator first_, + InputIterator last_, + bool stack_ = false) { + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::Image* image = MagickCore::AppendImages( first_->image(), + (MagickBooleanType) stack_, + exceptionInfo ); + unlinkImages( first_, last_ ); + appendedImage_->replaceImage( image ); + ThrowPPException(appendedImage_->quiet()); + } + + // Adds the names of the artifacts of the image to the container. + template + void artifactNames(Container *names_,const Image* image_) + { + const char* + name; + + names_->clear(); + + MagickCore::ResetImageArtifactIterator(image_->constImage()); + name=MagickCore::GetNextImageArtifact(image_->constImage()); + while (name != (const char *) NULL) + { + names_->push_back(std::string(name)); + name=MagickCore::GetNextImageArtifact(image_->constImage()); + } + } + + // Adds the names of the attributes of the image to the container. + template + void attributeNames(Container *names_,const Image* image_) + { + const char* + name; + + names_->clear(); + + MagickCore::ResetImagePropertyIterator(image_->constImage()); + name=MagickCore::GetNextImageProperty(image_->constImage()); + while (name != (const char *) NULL) + { + names_->push_back(std::string(name)); + name=MagickCore::GetNextImageProperty(image_->constImage()); + } + } + + // Average a set of images. + // All the input images must be the same size in pixels. + template + void averageImages( Image *averagedImage_, + InputIterator first_, + InputIterator last_ ) { + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::Image* image = MagickCore::EvaluateImages( first_->image(), + MagickCore::MeanEvaluateOperator, exceptionInfo ); + unlinkImages( first_, last_ ); + averagedImage_->replaceImage( image ); + ThrowPPException(averagedImage_->quiet()); + } + + // Merge a sequence of images. + // This is useful for GIF animation sequences that have page + // offsets and disposal methods. A container to contain + // the updated image sequence is passed via the coalescedImages_ + // option. + template + void coalesceImages(Container *coalescedImages_,InputIterator first_, + InputIterator last_) + { + bool + quiet; + + MagickCore::Image + *images; + + if (linkImages(first_,last_) == false) + return; + + GetPPException; + quiet=first_->quiet(); + images=MagickCore::CoalesceImages(first_->image(),exceptionInfo); + + // Unlink image list + unlinkImages(first_,last_); + + // Ensure container is empty + coalescedImages_->clear(); + + // Move images to container + insertImages(coalescedImages_,images); + + // Report any error + ThrowPPException(quiet); + } + + // Return format coders matching specified conditions. + // + // The default (if no match terms are supplied) is to return all + // available format coders. + // + // For example, to return all readable formats: + // list coderList; + // coderInfoList( &coderList, CoderInfo::TrueMatch, CoderInfo::AnyMatch, CoderInfo::AnyMatch) + // + template + void coderInfoList( Container *container_, + CoderInfo::MatchType isReadable_ = CoderInfo::AnyMatch, + CoderInfo::MatchType isWritable_ = CoderInfo::AnyMatch, + CoderInfo::MatchType isMultiFrame_ = CoderInfo::AnyMatch + ) { + // Obtain first entry in MagickInfo list + size_t number_formats; + GetPPException; + char **coder_list = + MagickCore::GetMagickList( "*", &number_formats, exceptionInfo ); + if( !coder_list ) + { + throwException(exceptionInfo); + throwExceptionExplicit(MagickCore::MissingDelegateError, + "Coder array not returned!", 0 ); + } + + // Clear out container + container_->clear(); + + for ( ::ssize_t i=0; i < (::ssize_t) number_formats; i++) + { + const MagickCore::MagickInfo *magick_info = + MagickCore::GetMagickInfo( coder_list[i], exceptionInfo ); + coder_list[i]=(char *) + MagickCore::RelinquishMagickMemory( coder_list[i] ); + + // Skip stealth coders + if ( MagickCore::GetMagickStealth(magick_info) ) + continue; + + try { + CoderInfo coderInfo( magick_info->name ); + + // Test isReadable_ + if ( isReadable_ != CoderInfo::AnyMatch && + (( coderInfo.isReadable() && isReadable_ != CoderInfo::TrueMatch ) || + ( !coderInfo.isReadable() && isReadable_ != CoderInfo::FalseMatch )) ) + continue; + + // Test isWritable_ + if ( isWritable_ != CoderInfo::AnyMatch && + (( coderInfo.isWritable() && isWritable_ != CoderInfo::TrueMatch ) || + ( !coderInfo.isWritable() && isWritable_ != CoderInfo::FalseMatch )) ) + continue; + + // Test isMultiFrame_ + if ( isMultiFrame_ != CoderInfo::AnyMatch && + (( coderInfo.isMultiFrame() && isMultiFrame_ != CoderInfo::TrueMatch ) || + ( !coderInfo.isMultiFrame() && isMultiFrame_ != CoderInfo::FalseMatch )) ) + continue; + + // Append matches to container + container_->push_back( coderInfo ); + } + // Intentionally ignore missing module errors + catch ( Magick::ErrorModule& ) + { + continue; + } + } + coder_list=(char **) MagickCore::RelinquishMagickMemory( coder_list ); + ThrowPPException(false); + } + + // + // Fill container with color histogram. + // Entries are of type "std::pair". Use the pair + // "first" member to access the Color and the "second" member to access + // the number of times the color occurs in the image. + // + // For example: + // + // Using : + // + // Image image("image.miff"); + // map histogram; + // colorHistogram( &histogram, image ); + // std::map::const_iterator p=histogram.begin(); + // while (p != histogram.end()) + // { + // cout << setw(10) << (int)p->second << ": (" + // << setw(quantum_width) << (int)p->first.redQuantum() << "," + // << setw(quantum_width) << (int)p->first.greenQuantum() << "," + // << setw(quantum_width) << (int)p->first.blueQuantum() << ")" + // << endl; + // p++; + // } + // + // Using : + // + // Image image("image.miff"); + // std::vector > histogram; + // colorHistogram( &histogram, image ); + // std::vector >::const_iterator p=histogram.begin(); + // while (p != histogram.end()) + // { + // cout << setw(10) << (int)p->second << ": (" + // << setw(quantum_width) << (int)p->first.redQuantum() << "," + // << setw(quantum_width) << (int)p->first.greenQuantum() << "," + // << setw(quantum_width) << (int)p->first.blueQuantum() << ")" + // << endl; + // p++; + // } + + template + void colorHistogram( Container *histogram_, const Image image) + { + GetPPException; + + // Obtain histogram array + size_t colors; + MagickCore::PixelInfo *histogram_array = + MagickCore::GetImageHistogram( image.constImage(), &colors, exceptionInfo ); + ThrowPPException(image.quiet()); + + // Clear out container + histogram_->clear(); + + // Transfer histogram array to container + for ( size_t i=0; i < colors; i++) + { + histogram_->insert( histogram_->end(), std::pair + ( Color(histogram_array[i]), (size_t) histogram_array[i].count) ); + } + + // Deallocate histogram array + histogram_array=(MagickCore::PixelInfo *) + MagickCore::RelinquishMagickMemory(histogram_array); + } + + // Combines one or more images into a single image. The grayscale value of + // the pixels of each image in the sequence is assigned in order to the + // specified channels of the combined image. The typical ordering would be + // image 1 => Red, 2 => Green, 3 => Blue, etc. + template + void combineImages(Image *combinedImage_,InputIterator first_, + InputIterator last_,const ChannelType channel_, + const ColorspaceType colorspace_) + { + MagickCore::Image + *image; + + std::vector + channelMask; + + if (linkImages(first_,last_) == false) + return; + GetPPException; + channelMaskImages(first_,last_,&channelMask,channel_); + image=CombineImages(first_->image(),colorspace_,exceptionInfo); + restoreChannelMaskImages(first_,last_,&channelMask); + unlinkImages(first_,last_); + combinedImage_->replaceImage(image); + ThrowPPException(combinedImage_->quiet()); + } + + template + void cropToTiles(Container *tiledImages_,const Image image_, + const Geometry &geometry_) + { + GetPPException; + MagickCore::Image* images=CropImageToTiles(image_.constImage(), + static_cast(geometry_).c_str(),exceptionInfo); + tiledImages_->clear(); + insertImages(tiledImages_,images); + ThrowPPException(image_.quiet()); + } + + // Break down an image sequence into constituent parts. This is + // useful for creating GIF or MNG animation sequences. + template + void deconstructImages(Container *deconstructedImages_, + InputIterator first_,InputIterator last_) + { + bool + quiet; + + MagickCore::Image + *images; + + if (linkImages(first_,last_) == false) + return; + GetPPException; + quiet=first_->quiet(); + images=CompareImagesLayers(first_->image(),CompareAnyLayer,exceptionInfo); + unlinkImages(first_,last_); + + deconstructedImages_->clear(); + insertImages(deconstructedImages_,images); + + ThrowPPException(quiet); + } + + // + // Display an image sequence + // + template + void displayImages(InputIterator first_,InputIterator last_) + { + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::DisplayImages(first_->imageInfo(),first_->image(), + exceptionInfo); + unlinkImages(first_,last_); + ThrowPPException(first_->quiet()); + } + + // Applies a value to the image with an arithmetic, relational, + // or logical operator to an image. Use these operations to lighten or darken + // an image, to increase or decrease contrast in an image, or to produce the + // "negative" of an image. + template + void evaluateImages( Image *evaluatedImage_, + InputIterator first_, + InputIterator last_, + const MagickEvaluateOperator operator_ ) { + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::Image* image = EvaluateImages( first_->image(), operator_, exceptionInfo ); + unlinkImages( first_, last_ ); + evaluatedImage_->replaceImage( image ); + ThrowPPException(evaluatedImage_->quiet()); + } + + // Merge a sequence of image frames which represent image layers. + // This is useful for combining Photoshop layers into a single image. + template + void flattenImages( Image *flattendImage_, + InputIterator first_, + InputIterator last_ ) { + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::Image* image = MagickCore::MergeImageLayers( first_->image(), + FlattenLayer,exceptionInfo ); + unlinkImages( first_, last_ ); + flattendImage_->replaceImage( image ); + ThrowPPException(flattendImage_->quiet()); + } + + // Implements the discrete Fourier transform (DFT) of the image either as a + // magnitude / phase or real / imaginary image pair. + template + void forwardFourierTransformImage( Container *fourierImages_, + const Image &image_ ) { + GetPPException; + + // Build image list + MagickCore::Image* images = ForwardFourierTransformImage( + image_.constImage(), MagickTrue, exceptionInfo); + + // Ensure container is empty + fourierImages_->clear(); + + // Move images to container + insertImages( fourierImages_, images ); + + // Report any error + ThrowPPException(image_.quiet()); + } + template + void forwardFourierTransformImage( Container *fourierImages_, + const Image &image_, const bool magnitude_ ) { + GetPPException; + + // Build image list + MagickCore::Image* images = ForwardFourierTransformImage( + image_.constImage(), magnitude_ == true ? MagickTrue : MagickFalse, + exceptionInfo); + + // Ensure container is empty + fourierImages_->clear(); + + // Move images to container + insertImages( fourierImages_, images ); + + // Report any error + ThrowPPException(image_.quiet()); + } + + // Applies a mathematical expression to a sequence of images. + template + void fxImages(Image *fxImage_,InputIterator first_,InputIterator last_, + const std::string expression) + { + MagickCore::Image + *image; + + if (linkImages(first_,last_) == false) + return; + GetPPException; + image=FxImage(first_->constImage(),expression.c_str(),exceptionInfo); + unlinkImages(first_,last_); + fxImage_->replaceImage(image); + ThrowPPException(fxImage_->quiet()); + } + + // Replace the colors of a sequence of images with the closest color + // from a reference image. + // Set dither_ to true to enable dithering. Set measureError_ to + // true in order to evaluate quantization error. + template + void mapImages(InputIterator first_,InputIterator last_, + const Image& mapImage_,bool dither_=false,bool measureError_=false) + { + MagickCore::Image + *image; + + MagickCore::QuantizeInfo + quantizeInfo; + + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::GetQuantizeInfo(&quantizeInfo); + quantizeInfo.dither_method = dither_ ? MagickCore::RiemersmaDitherMethod : + MagickCore::NoDitherMethod; + MagickCore::RemapImages(&quantizeInfo,first_->image(), + (mapImage_.isValid() ? mapImage_.constImage() : + (const MagickCore::Image*) NULL),exceptionInfo); + unlinkImages(first_,last_); + if (exceptionInfo->severity != MagickCore::UndefinedException) + { + unlinkImages(first_,last_); + throwException(exceptionInfo,mapImage_.quiet()); + } + + image=first_->image(); + while(image != (MagickCore::Image *) NULL) + { + // Calculate quantization error + if (measureError_) + { + MagickCore::GetImageQuantizeError(image,exceptionInfo); + if (exceptionInfo->severity > MagickCore::UndefinedException) + { + unlinkImages(first_,last_); + throwException(exceptionInfo,mapImage_.quiet()); + } + } + + // Update DirectClass representation of pixels + MagickCore::SyncImage(image,exceptionInfo); + if (exceptionInfo->severity > MagickCore::UndefinedException) + { + unlinkImages(first_,last_); + throwException(exceptionInfo,mapImage_.quiet()); + } + + // Next image + image=image->next; + } + + unlinkImages(first_,last_); + (void) MagickCore::DestroyExceptionInfo(exceptionInfo); + } + + // Composes all the image layers from the current given + // image onward to produce a single image of the merged layers. + template + void mergeImageLayers( Image *mergedImage_, + InputIterator first_, + InputIterator last_, + const LayerMethod method_ ) { + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::Image* image = MergeImageLayers( first_->image(), method_, exceptionInfo ); + unlinkImages( first_, last_ ); + mergedImage_->replaceImage( image ); + ThrowPPException(mergedImage_->quiet()); + } + + // Create a composite image by combining several separate images. + template + void montageImages(Container *montageImages_,InputIterator first_, + InputIterator last_,const Montage &options_) + { + bool + quiet; + + MagickCore::Image + *images; + + MagickCore::MontageInfo + *montageInfo; + + if (linkImages(first_,last_) == false) + return; + + montageInfo=static_cast( + MagickCore::AcquireMagickMemory(sizeof(MagickCore::MontageInfo))); + + // Update montage options with those set in montageOpts_ + options_.updateMontageInfo(*montageInfo); + + // Update options which must transfer to image options + if (options_.label().length() != 0) + first_->label(options_.label()); + + // Do montage + GetPPException; + quiet=first_->quiet(); + images=MagickCore::MontageImages(first_->image(),montageInfo, + exceptionInfo); + + // Unlink linked image list + unlinkImages(first_,last_); + + // Reset output container to pristine state + montageImages_->clear(); + + if (images != (MagickCore::Image *) NULL) + insertImages(montageImages_,images); + + // Clean up any allocated data in montageInfo + MagickCore::DestroyMontageInfo(montageInfo); + + // Report any montage error + ThrowPPException(quiet); + + // Apply transparency to montage images + if (montageImages_->size() > 0 && options_.transparentColor().isValid()) + for_each(montageImages_->begin(),montageImages_->end(),transparentImage( + options_.transparentColor())); + } + + // Morph a set of images + template + void morphImages(Container *morphedImages_,InputIterator first_, + InputIterator last_,size_t frames_) + { + bool + quiet; + + MagickCore::Image + *images; + + if (linkImages(first_,last_) == false) + return; + + GetPPException; + quiet=first_->quiet(); + images=MagickCore::MorphImages(first_->image(),frames_,exceptionInfo); + + // Unlink image list + unlinkImages(first_,last_); + + // Ensure container is empty + morphedImages_->clear(); + + // Move images to container + insertImages(morphedImages_,images); + + // Report any error + ThrowPPException(quiet); + } + + // Inlay a number of images to form a single coherent picture. + template + void mosaicImages( Image *mosaicImage_, + InputIterator first_, + InputIterator last_ ) { + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::Image* image = MagickCore::MergeImageLayers( first_->image(), + MosaicLayer,exceptionInfo ); + unlinkImages( first_, last_ ); + mosaicImage_->replaceImage( image ); + ThrowPPException(mosaicImage_->quiet()); + } + + // Compares each image the GIF disposed forms of the previous image in + // the sequence. From this it attempts to select the smallest cropped + // image to replace each frame, while preserving the results of the + // GIF animation. + template + void optimizeImageLayers(Container *optimizedImages_,InputIterator first_, + InputIterator last_) + { + bool + quiet; + + MagickCore::Image + *images; + + if (linkImages(first_,last_) == false) + return; + + GetPPException; + quiet=first_->quiet(); + images=OptimizeImageLayers(first_->image(),exceptionInfo); + + unlinkImages(first_,last_); + + optimizedImages_->clear(); + + insertImages(optimizedImages_,images); + + ThrowPPException(quiet); + } + + // optimizeImagePlusLayers is exactly as optimizeImageLayers, but may + // also add or even remove extra frames in the animation, if it improves + // the total number of pixels in the resulting GIF animation. + template + void optimizePlusImageLayers(Container *optimizedImages_, + InputIterator first_,InputIterator last_ ) + { + bool + quiet; + + MagickCore::Image + *images; + + if (linkImages(first_,last_) == false) + return; + + GetPPException; + quiet=first_->quiet(); + images=OptimizePlusImageLayers(first_->image(),exceptionInfo); + + unlinkImages(first_,last_); + + optimizedImages_->clear(); + + insertImages(optimizedImages_,images); + + ThrowPPException(quiet); + } + + // Compares each image the GIF disposed forms of the previous image in the + // sequence. Any pixel that does not change the displayed result is replaced + // with transparency. + template + void optimizeTransparency(InputIterator first_,InputIterator last_) + { + if (linkImages(first_,last_) == false) + return; + GetPPException; + OptimizeImageTransparency(first_->image(),exceptionInfo); + unlinkImages(first_,last_ ); + + ThrowPPException(first_->quiet()); + } + + // Adds the names of the profiles of the image to the container. + template + void profileNames(Container *names_,const Image* image_) + { + const char* + name; + + names_->clear(); + + MagickCore::ResetImageProfileIterator(image_->constImage()); + name=MagickCore::GetNextImageProfile(image_->constImage()); + while (name != (const char *) NULL) + { + names_->push_back(std::string(name)); + name=MagickCore::GetNextImageProfile(image_->constImage()); + } + } + + // Quantize colors in images using current quantization settings + // Set measureError_ to true in order to measure quantization error + template + void quantizeImages(InputIterator first_,InputIterator last_, + bool measureError_ = false) + { + if (linkImages(first_,last_) == false) + return; + GetPPException; + MagickCore::QuantizeImages(first_->quantizeInfo(),first_->image(), + exceptionInfo); + unlinkImages(first_,last_); + + MagickCore::Image *image=first_->image(); + while (image != (MagickCore::Image *) NULL) + { + // Calculate quantization error + if (measureError_) + MagickCore::GetImageQuantizeError(image,exceptionInfo); + + // Update DirectClass representation of pixels + MagickCore::SyncImage(image,exceptionInfo); + + image=image->next; + } + unlinkImages(first_,last_); + ThrowPPException(first_->quiet()); + } + + // Read images into existing container (appending to container) + template + void readImages(Container *sequence_,const std::string &imageSpec_, + ReadOptions &options) + { + MagickCore::Image + *images; + + MagickCore::ImageInfo + *imageInfo; + + imageInfo=options.imageInfo(); + imageSpec_.copy(imageInfo->filename,MagickPathExtent-1); + imageInfo->filename[imageSpec_.length()] = 0; + GetPPException; + images=MagickCore::ReadImage(imageInfo,exceptionInfo); + insertImages(sequence_,images); + ThrowPPException(options.quiet()); + } + + template + void readImages(Container *sequence_,const std::string &imageSpec_) + { + ReadOptions options; + readImages(sequence_,imageSpec_,options); + } + + template + void readImages(Container *sequence_,const Blob &blob_,ReadOptions &options) + { + MagickCore::Image + *images; + + GetPPException; + images=MagickCore::BlobToImage(options.imageInfo(),blob_.data(), + blob_.length(),exceptionInfo); + insertImages(sequence_,images); + ThrowPPException(options.quiet()); + } + + template + void readImages(Container *sequence_,const Blob &blob_) + { + ReadOptions options; + readImages(sequence_,blob_,options); + } + + // Returns a separate grayscale image for each channel specified. + template + void separateImages(Container *separatedImages_,Image &image_, + const ChannelType channel_) + { + MagickCore::ChannelType + channel_mask; + + MagickCore::Image + *images; + + GetPPException; + channel_mask=MagickCore::SetImageChannelMask(image_.image(),channel_); + images=SeparateImages(image_.constImage(),exceptionInfo); + MagickCore::SetPixelChannelMask(image_.image(),channel_mask); + + separatedImages_->clear(); + insertImages(separatedImages_,images); + + ThrowPPException(image_.quiet()); + } + + // Smush images from list into single image in either horizontal or + // vertical direction. + template + void smushImages(Image *smushedImage_,InputIterator first_, + InputIterator last_,const ssize_t offset_,bool stack_=false) + { + MagickCore::Image + *newImage; + + if (linkImages(first_,last_) == false) + return; + GetPPException; + newImage=MagickCore::SmushImages(first_->constImage(), + (MagickBooleanType) stack_,offset_,exceptionInfo); + unlinkImages(first_,last_); + smushedImage_->replaceImage(newImage); + ThrowPPException(smushedImage_->quiet()); + } + + // Write Images + template + void writeImages( InputIterator first_, + InputIterator last_, + const std::string &imageSpec_, + bool adjoin_ = true ) { + + if (linkImages(first_,last_) == false) + return; + + first_->adjoin( adjoin_ ); + + GetPPException; + ::ssize_t errorStat = MagickCore::WriteImages( first_->constImageInfo(), + first_->image(), + imageSpec_.c_str(), + exceptionInfo ); + unlinkImages( first_, last_ ); + + if ( errorStat != false ) + { + (void) MagickCore::DestroyExceptionInfo( exceptionInfo ); + return; + } + + ThrowPPException(first_->quiet()); + } + // Write images to BLOB + template + void writeImages( InputIterator first_, + InputIterator last_, + Blob *blob_, + bool adjoin_ = true) { + if (linkImages(first_,last_) == false) + return; + + first_->adjoin( adjoin_ ); + + GetPPException; + size_t length = 2048; // Efficient size for small images + void* data = MagickCore::ImagesToBlob( first_->imageInfo(), + first_->image(), + &length, + exceptionInfo); + blob_->updateNoCopy( data, length, Magick::Blob::MallocAllocator ); + + unlinkImages( first_, last_ ); + + ThrowPPException(first_->quiet()); + } + +} // namespace Magick + +#endif // Magick_STL_header diff --git a/include/ImageMagick-7/Magick++/SecurityPolicy.h b/include/ImageMagick-7/Magick++/SecurityPolicy.h new file mode 100644 index 0000000..7140563 --- /dev/null +++ b/include/ImageMagick-7/Magick++/SecurityPolicy.h @@ -0,0 +1,48 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Dirk Lemstra 2018 +// +// Definition of the security policy. +// + +#if !defined(Magick_SecurityPolicy_header) +#define Magick_SecurityPolicy_header + +#include "Magick++/Include.h" +#include + +namespace Magick +{ + class MagickPPExport SecurityPolicy + { + public: + + // The maximum number of significant digits to be printed. + static bool precision(const int precision_); + + // Enables anonymous mapping for pixel cache. + static bool anonymousCacheMemoryMap(); + + // Enables anonymous virtual memory. + static bool anonymousSystemMemoryMap(); + + // The memory request limit in bytes. + static bool maxMemoryRequest(const MagickSizeType limit_); + + // The number of passes to use when shredding files. + static bool shred(const int passes_); + + private: + SecurityPolicy(void); + + static bool setValue(const PolicyDomain domain_, const std::string name_, + const std::string value_); + + template + static std::string toString(const T& value); + + }; // class SecurityPolicy + +} // Magick namespace + +#endif // Magick_SecurityPolicy_header diff --git a/include/ImageMagick-7/Magick++/Statistic.h b/include/ImageMagick-7/Magick++/Statistic.h new file mode 100644 index 0000000..f9d46a6 --- /dev/null +++ b/include/ImageMagick-7/Magick++/Statistic.h @@ -0,0 +1,307 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Dirk Lemstra 2014-2015 +// +// Definition of channel moments. +// + +#if !defined (Magick_ChannelMoments_header) +#define Magick_ChannelMoments_header + +#include "Magick++/Include.h" +#include + +namespace Magick +{ + class Image; + + class MagickPPExport ChannelMoments + { + public: + + // Default constructor + ChannelMoments(void); + + // Copy constructor + ChannelMoments(const ChannelMoments &channelMoments_); + + // Destroy channel moments + ~ChannelMoments(void); + + // X position of centroid + double centroidX(void) const; + + // Y position of centroid + double centroidY(void) const; + + // The channel + PixelChannel channel(void) const; + + // X position of ellipse axis + double ellipseAxisX(void) const; + + // Y position of ellipse axis + double ellipseAxisY(void) const; + + // Ellipse angle + double ellipseAngle(void) const; + + // Ellipse eccentricity + double ellipseEccentricity(void) const; + + // Ellipse intensity + double ellipseIntensity(void) const; + + // Hu invariants (valid range for index is 0-7) + double huInvariants(const size_t index_) const; + + // Does object contain valid channel moments? + bool isValid() const; + + // + // Implemementation methods + // + + ChannelMoments(const PixelChannel channel_, + const MagickCore::ChannelMoments *channelMoments_); + + private: + PixelChannel _channel; + std::vector _huInvariants; + double _centroidX; + double _centroidY; + double _ellipseAxisX; + double _ellipseAxisY; + double _ellipseAngle; + double _ellipseEccentricity; + double _ellipseIntensity; + }; + + class MagickPPExport ChannelPerceptualHash + { + public: + + // Default constructor + ChannelPerceptualHash(void); + + // Copy constructor + ChannelPerceptualHash(const ChannelPerceptualHash &channelPerceptualHash_); + + // Constructor using the specified hash string + ChannelPerceptualHash(const PixelChannel channel_, + const std::string &hash_); + + // Destroy channel perceptual hash + ~ChannelPerceptualHash(void); + + // Return hash string + operator std::string() const; + + // The channel + PixelChannel channel(void) const; + + // Does object contain valid channel perceptual hash? + bool isValid() const; + + // Returns the sum squared difference between this hash and the other hash + double sumSquaredDifferences( + const ChannelPerceptualHash &channelPerceptualHash_); + + // SRGB hu preceptual hash (valid range for index is 0-6) + double srgbHuPhash(const size_t index_) const; + + // HCLp hu preceptual hash (valid range for index is 0-6) + double hclpHuPhash(const size_t index_) const; + + // + // Implemementation methods + // + + ChannelPerceptualHash(const PixelChannel channel_, + const MagickCore::ChannelPerceptualHash *channelPerceptualHash_); + + private: + PixelChannel _channel; + std::vector _srgbHuPhash; + std::vector _hclpHuPhash; + }; + + // Obtain image statistics. Statistics are normalized to the range + // of 0.0 to 1.0 and are output to the specified ImageStatistics + // structure. + class MagickPPExport ChannelStatistics + { + public: + + // Default constructor + ChannelStatistics(void); + + // Copy constructor + ChannelStatistics(const ChannelStatistics &channelStatistics_); + + // Destroy channel statistics + ~ChannelStatistics(void); + + // Area + double area() const; + + // The channel + PixelChannel channel(void) const; + + // Depth + size_t depth() const; + + // Entropy + double entropy() const; + + // Does object contain valid channel statistics? + bool isValid() const; + + // Kurtosis + double kurtosis() const; + + // Minimum value observed + double maxima() const; + + // Average (mean) value observed + double mean() const; + + // Maximum value observed + double minima() const; + + // Skewness + double skewness() const; + + // Standard deviation, sqrt(variance) + double standardDeviation() const; + + // Sum + double sum() const; + + // Sum cubed + double sumCubed() const; + + // Sum fourth power + double sumFourthPower() const; + + // Sum squared + double sumSquared() const; + + // Variance + double variance() const; + + // + // Implemementation methods + // + + ChannelStatistics(const PixelChannel channel_, + const MagickCore::ChannelStatistics *channelStatistics_); + + private: + PixelChannel _channel; + double _area; + size_t _depth; + double _entropy; + double _kurtosis; + double _maxima; + double _mean; + double _minima; + double _skewness; + double _standardDeviation; + double _sum; + double _sumCubed; + double _sumFourthPower; + double _sumSquared; + double _variance; + }; + + class MagickPPExport ImageMoments + { + public: + + // Default constructor + ImageMoments(void); + + // Copy constructor + ImageMoments(const ImageMoments &imageMoments_); + + // Destroy image moments + ~ImageMoments(void); + + // Returns the moments for the specified channel + ChannelMoments channel(const PixelChannel channel_) const; + + // + // Implemementation methods + // + ImageMoments(const Image &image_); + + private: + std::vector _channels; + }; + + class MagickPPExport ImagePerceptualHash + { + public: + + // Default constructor + ImagePerceptualHash(void); + + // Copy constructor + ImagePerceptualHash(const ImagePerceptualHash &imagePerceptualHash_); + + // Constructor using the specified hash string + ImagePerceptualHash(const std::string &hash_); + + // Destroy image perceptual hash + ~ImagePerceptualHash(void); + + // Return hash string + operator std::string() const; + + // Returns the perceptual hash for the specified channel + ChannelPerceptualHash channel(const PixelChannel channel_) const; + + // Does object contain valid perceptual hash? + bool isValid() const; + + // Returns the sum squared difference between this hash and the other hash + double sumSquaredDifferences( + const ImagePerceptualHash &channelPerceptualHash_); + + // + // Implemementation methods + // + ImagePerceptualHash(const Image &image_); + + private: + std::vector _channels; + }; + + class MagickPPExport ImageStatistics + { + public: + + // Default constructor + ImageStatistics(void); + + // Copy constructor + ImageStatistics(const ImageStatistics &imageStatistics_); + + // Destroy image statistics + ~ImageStatistics(void); + + // Returns the statistics for the specified channel + ChannelStatistics channel(const PixelChannel channel_) const; + + // + // Implemementation methods + // + ImageStatistics(const Image &image_); + + private: + std::vector _channels; + }; +} + +#endif // Magick_ChannelMoments_header diff --git a/include/ImageMagick-7/Magick++/TypeMetric.h b/include/ImageMagick-7/Magick++/TypeMetric.h new file mode 100644 index 0000000..cf779d3 --- /dev/null +++ b/include/ImageMagick-7/Magick++/TypeMetric.h @@ -0,0 +1,68 @@ +// This may look like C code, but it is really -*- C++ -*- +// +// Copyright Bob Friesenhahn, 2001, 2002 +// Copyright Dirk Lemstra 2014-2018 +// +// TypeMetric Definition +// +// Container for font type metrics +// + +#if !defined (Magick_TypeMetric_header) +#define Magick_TypeMetric_header + +#include "Magick++/Include.h" +#include "Magick++/Drawable.h" + +namespace Magick +{ + class MagickPPExport TypeMetric + { + friend class Image; + + public: + + // Default constructor + TypeMetric(void); + + // Destructor + ~TypeMetric(void); + + // The distance in pixels from the text baseline to the highest/upper + // grid coordinate used to place an outline point. + double ascent(void) const; + + // The bounds of the type metric. + Geometry bounds(void) const; + + // The distance in pixels from the baseline to the lowest grid coordinate + // used to place an outline point. Always a negative value. + double descent(void) const; + + // Maximum horizontal advance in pixels. + double maxHorizontalAdvance(void) const; + + // The origin. + Coordinate origin(void) const; + + // The number of pixels per em. + Coordinate pixelsPerEm(void) const; + + // Text height in pixels. + double textHeight(void) const; + + // Text width in pixels. + double textWidth(void) const; + + // Underline position. + double underlinePosition(void) const; + + // Underline thickness. + double underlineThickness(void) const; + + private: + MagickCore::TypeMetric _typeMetric; + }; +} // namespace Magick + +#endif // Magick_TypeMetric_header diff --git a/include/ImageMagick-7/MagickCore/MagickCore.h b/include/ImageMagick-7/MagickCore/MagickCore.h new file mode 100644 index 0000000..0e87cf0 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/MagickCore.h @@ -0,0 +1,172 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore Application Programming Interface declarations. +*/ + +#ifndef MAGICKCORE_CORE_H +#define MAGICKCORE_CORE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if !defined(MAGICKCORE_CONFIG_H) +# define MAGICKCORE_CONFIG_H +# if !defined(vms) && !defined(macintosh) +# include "MagickCore/magick-config.h" +# else +# include "magick-config.h" +# endif +#if defined(_magickcore_const) && !defined(const) +# define const _magickcore_const +#endif +#if defined(_magickcore_inline) && !defined(inline) +# define inline _magickcore_inline +#endif +#if !defined(magick_restrict) +# if !defined(_magickcore_restrict) +# define magick_restrict restrict +# else +# define magick_restrict _magickcore_restrict +# endif +#endif +# if defined(__cplusplus) || defined(c_plusplus) +# undef inline +# endif +#endif +#if __cplusplus > 199711L +#define register +#endif + +#define MAGICKCORE_CHECK_VERSION(major,minor,micro) \ + ((MAGICKCORE_MAJOR_VERSION > (major)) || \ + ((MAGICKCORE_MAJOR_VERSION == (major)) && \ + (MAGICKCORE_MINOR_VERSION > (minor))) || \ + ((MAGICKCORE_MAJOR_VERSION == (major)) && \ + (MAGICKCORE_MINOR_VERSION == (minor)) && \ + (MAGICKCORE_MICRO_VERSION >= (micro)))) + +#include +#include +#include +#include +#include +#include + +#if defined(WIN32) || defined(WIN64) +# define MAGICKCORE_WINDOWS_SUPPORT +#else +# define MAGICKCORE_POSIX_SUPPORT +#endif + +#include "MagickCore/method-attribute.h" + +#if defined(MAGICKCORE_NAMESPACE_PREFIX) +# include "MagickCore/methods.h" +#endif +#include "MagickCore/magick-type.h" +#include "MagickCore/animate.h" +#include "MagickCore/annotate.h" +#include "MagickCore/artifact.h" +#include "MagickCore/attribute.h" +#include "MagickCore/blob.h" +#include "MagickCore/cache.h" +#include "MagickCore/cache-view.h" +#include "MagickCore/channel.h" +#include "MagickCore/cipher.h" +#include "MagickCore/client.h" +#include "MagickCore/coder.h" +#include "MagickCore/color.h" +#include "MagickCore/colorspace.h" +#include "MagickCore/colormap.h" +#include "MagickCore/compare.h" +#include "MagickCore/composite.h" +#include "MagickCore/compress.h" +#include "MagickCore/configure.h" +#include "MagickCore/constitute.h" +#include "MagickCore/decorate.h" +#include "MagickCore/delegate.h" +#include "MagickCore/deprecate.h" +#include "MagickCore/display.h" +#include "MagickCore/distort.h" +#include "MagickCore/distribute-cache.h" +#include "MagickCore/draw.h" +#include "MagickCore/effect.h" +#include "MagickCore/enhance.h" +#include "MagickCore/exception.h" +#include "MagickCore/feature.h" +#include "MagickCore/fourier.h" +#include "MagickCore/fx.h" +#include "MagickCore/gem.h" +#include "MagickCore/geometry.h" +#include "MagickCore/histogram.h" +#include "MagickCore/identify.h" +#include "MagickCore/image.h" +#include "MagickCore/image-view.h" +#include "MagickCore/layer.h" +#include "MagickCore/linked-list.h" +#include "MagickCore/list.h" +#include "MagickCore/locale_.h" +#include "MagickCore/log.h" +#include "MagickCore/magic.h" +#include "MagickCore/magick.h" +#include "MagickCore/matrix.h" +#include "MagickCore/memory_.h" +#include "MagickCore/module.h" +#include "MagickCore/mime.h" +#include "MagickCore/monitor.h" +#include "MagickCore/montage.h" +#include "MagickCore/morphology.h" +#include "MagickCore/opencl.h" +#include "MagickCore/option.h" +#include "MagickCore/paint.h" +#include "MagickCore/pixel.h" +#include "MagickCore/pixel-accessor.h" +#include "MagickCore/policy.h" +#include "MagickCore/prepress.h" +#include "MagickCore/profile.h" +#include "MagickCore/property.h" +#include "MagickCore/quantize.h" +#include "MagickCore/quantum.h" +#include "MagickCore/registry.h" +#include "MagickCore/random_.h" +#include "MagickCore/resample.h" +#include "MagickCore/resize.h" +#include "MagickCore/resource_.h" +#include "MagickCore/segment.h" +#include "MagickCore/shear.h" +#include "MagickCore/signature.h" +#include "MagickCore/splay-tree.h" +#include "MagickCore/static.h" +#include "MagickCore/statistic.h" +#include "MagickCore/stream.h" +#include "MagickCore/string_.h" +#include "MagickCore/timer.h" +#include "MagickCore/token.h" +#include "MagickCore/transform.h" +#include "MagickCore/threshold.h" +#include "MagickCore/type.h" +#include "MagickCore/utility.h" +#include "MagickCore/version.h" +#include "MagickCore/vision.h" +#include "MagickCore/xml-tree.h" +#include "MagickCore/xwindow.h" + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/animate.h b/include/ImageMagick-7/MagickCore/animate.h new file mode 100644 index 0000000..14972ff --- /dev/null +++ b/include/ImageMagick-7/MagickCore/animate.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore methods to interactively animate an image sequence. +*/ +#ifndef MAGICKCORE_ANIMATE_H +#define MAGICKCORE_ANIMATE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + AnimateImages(const ImageInfo *,Image *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/annotate.h b/include/ImageMagick-7/MagickCore/annotate.h new file mode 100644 index 0000000..50fc1c7 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/annotate.h @@ -0,0 +1,41 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image annotation methods. +*/ +#ifndef MAGICKCORE_ANNOTATE_H +#define MAGICKCORE_ANNOTATE_H + +#include "MagickCore/draw.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + AnnotateImage(Image *,const DrawInfo *,ExceptionInfo *), + GetMultilineTypeMetrics(Image *,const DrawInfo *,TypeMetric *, + ExceptionInfo *), + GetTypeMetrics(Image *,const DrawInfo *,TypeMetric *,ExceptionInfo *); + +extern MagickExport ssize_t + FormatMagickCaption(Image *,DrawInfo *,const MagickBooleanType,TypeMetric *, + char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/artifact.h b/include/ImageMagick-7/MagickCore/artifact.h new file mode 100644 index 0000000..af4022c --- /dev/null +++ b/include/ImageMagick-7/MagickCore/artifact.h @@ -0,0 +1,46 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore artifact methods. +*/ +#ifndef MAGICKCORE_ARTIFACT_H +#define MAGICKCORE_ARTIFACT_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport char + *RemoveImageArtifact(Image *,const char *); + +extern MagickExport const char + *GetNextImageArtifact(const Image *), + *GetImageArtifact(const Image *,const char *); + +extern MagickExport MagickBooleanType + CloneImageArtifacts(Image *,const Image *), + DefineImageArtifact(Image *,const char *), + DeleteImageArtifact(Image *,const char *), + SetImageArtifact(Image *,const char *,const char *); + +extern MagickExport void + DestroyImageArtifacts(Image *), + ResetImageArtifactIterator(const Image *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/attribute.h b/include/ImageMagick-7/MagickCore/attribute.h new file mode 100644 index 0000000..4ec8c26 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/attribute.h @@ -0,0 +1,52 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore methods to set or get image attributes. +*/ +#ifndef MAGICKCORE_ATTRIBUTE_H +#define MAGICKCORE_ATTRIBUTE_H + +#include "MagickCore/image.h" +#include "MagickCore/exception.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport ImageType + GetImageType(const Image *), + IdentifyImageGray(const Image *,ExceptionInfo *), + IdentifyImageType(const Image *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + IdentifyImageMonochrome(const Image *,ExceptionInfo *), + IsImageGray(const Image *), + IsImageMonochrome(const Image *), + IsImageOpaque(const Image *,ExceptionInfo *), + SetImageDepth(Image *,const size_t,ExceptionInfo *), + SetImageType(Image *,const ImageType,ExceptionInfo *); + +extern MagickExport RectangleInfo + GetImageBoundingBox(const Image *,ExceptionInfo *exception); + +extern MagickExport size_t + GetImageDepth(const Image *,ExceptionInfo *), + GetImageQuantumDepth(const Image *,const MagickBooleanType); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/blob.h b/include/ImageMagick-7/MagickCore/blob.h new file mode 100644 index 0000000..031aaab --- /dev/null +++ b/include/ImageMagick-7/MagickCore/blob.h @@ -0,0 +1,99 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore Binary Large OBjects methods. +*/ +#ifndef MAGICKCORE_BLOB_H +#define MAGICKCORE_BLOB_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define MagickMaxBufferExtent 81920 + +typedef enum +{ + ReadMode, + WriteMode, + IOMode, + PersistMode +} MapMode; + +typedef ssize_t + (*CustomStreamHandler)(unsigned char *,const size_t,void *); + +typedef MagickOffsetType + (*CustomStreamSeeker)(const MagickOffsetType,const int,void *); + +typedef MagickOffsetType + (*CustomStreamTeller)(void *); + +typedef struct _CustomStreamInfo + CustomStreamInfo; + +#include "MagickCore/image.h" +#include "MagickCore/stream.h" + +extern MagickExport CustomStreamInfo + *AcquireCustomStreamInfo(ExceptionInfo *), + *DestroyCustomStreamInfo(CustomStreamInfo *); + +extern MagickExport FILE + *GetBlobFileHandle(const Image *); + +extern MagickExport Image + *BlobToImage(const ImageInfo *,const void *,const size_t,ExceptionInfo *), + *PingBlob(const ImageInfo *,const void *,const size_t,ExceptionInfo *), + *CustomStreamToImage(const ImageInfo *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + BlobToFile(char *,const void *,const size_t,ExceptionInfo *), + FileToImage(Image *,const char *,ExceptionInfo *), + GetBlobError(const Image *), + ImageToFile(Image *,char *,ExceptionInfo *), + InjectImageBlob(const ImageInfo *,Image *,Image *,const char *, + ExceptionInfo *), + IsBlobExempt(const Image *), + IsBlobSeekable(const Image *), + IsBlobTemporary(const Image *); + +extern MagickExport MagickSizeType + GetBlobSize(const Image *); + +extern MagickExport StreamHandler + GetBlobStreamHandler(const Image *); + +extern MagickExport void + *GetBlobStreamData(const Image *), + DestroyBlob(Image *), + DuplicateBlob(Image *,const Image *), + *FileToBlob(const char *,const size_t,size_t *,ExceptionInfo *), + *ImageToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *), + ImageToCustomStream(const ImageInfo *,Image *,ExceptionInfo *), + *ImagesToBlob(const ImageInfo *,Image *,size_t *,ExceptionInfo *), + ImagesToCustomStream(const ImageInfo *,Image *,ExceptionInfo *), + SetBlobExempt(Image *,const MagickBooleanType), + SetCustomStreamData(CustomStreamInfo *,void *), + SetCustomStreamReader(CustomStreamInfo *,CustomStreamHandler), + SetCustomStreamSeeker(CustomStreamInfo *,CustomStreamSeeker), + SetCustomStreamTeller(CustomStreamInfo *,CustomStreamTeller), + SetCustomStreamWriter(CustomStreamInfo *,CustomStreamHandler); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/cache-view.h b/include/ImageMagick-7/MagickCore/cache-view.h new file mode 100644 index 0000000..e528f28 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/cache-view.h @@ -0,0 +1,106 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore cache view methods. +*/ +#ifndef MAGICKCORE_CACHE_VIEW_H +#define MAGICKCORE_CACHE_VIEW_H + +#include "MagickCore/pixel.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedVirtualPixelMethod, + BackgroundVirtualPixelMethod, + DitherVirtualPixelMethod, + EdgeVirtualPixelMethod, + MirrorVirtualPixelMethod, + RandomVirtualPixelMethod, + TileVirtualPixelMethod, + TransparentVirtualPixelMethod, + MaskVirtualPixelMethod, + BlackVirtualPixelMethod, + GrayVirtualPixelMethod, + WhiteVirtualPixelMethod, + HorizontalTileVirtualPixelMethod, + VerticalTileVirtualPixelMethod, + HorizontalTileEdgeVirtualPixelMethod, + VerticalTileEdgeVirtualPixelMethod, + CheckerTileVirtualPixelMethod +} VirtualPixelMethod; + +typedef struct _CacheView + CacheView; + +extern MagickExport CacheView + *AcquireAuthenticCacheView(const Image *,ExceptionInfo *), + *AcquireVirtualCacheView(const Image *,ExceptionInfo *), + *CloneCacheView(const CacheView *), + *DestroyCacheView(CacheView *); + +extern MagickExport ClassType + GetCacheViewStorageClass(const CacheView *); + +extern MagickExport ColorspaceType + GetCacheViewColorspace(const CacheView *); + +extern MagickExport const Image + *GetCacheViewImage(const CacheView *); + +extern MagickExport const Quantum + *GetCacheViewVirtualPixels(const CacheView *,const ssize_t,const ssize_t, + const size_t,const size_t,ExceptionInfo *) magick_hot_spot, + *GetCacheViewVirtualPixelQueue(const CacheView *) magick_hot_spot; + +extern MagickExport const void + *GetCacheViewVirtualMetacontent(const CacheView *); + +extern MagickExport MagickBooleanType + GetOneCacheViewAuthenticPixel(const CacheView *,const ssize_t,const ssize_t, + Quantum *,ExceptionInfo *), + GetOneCacheViewVirtualMethodPixel(const CacheView *,const VirtualPixelMethod, + const ssize_t,const ssize_t,Quantum *,ExceptionInfo *), + GetOneCacheViewVirtualPixel(const CacheView *,const ssize_t,const ssize_t, + Quantum *,ExceptionInfo *), + GetOneCacheViewVirtualPixelInfo(const CacheView *,const ssize_t,const ssize_t, + PixelInfo *,ExceptionInfo *), + SetCacheViewStorageClass(CacheView *,const ClassType,ExceptionInfo *), + SetCacheViewVirtualPixelMethod(CacheView *magick_restrict, + const VirtualPixelMethod), + SyncCacheViewAuthenticPixels(CacheView *magick_restrict,ExceptionInfo *) + magick_hot_spot; + +extern MagickExport MagickSizeType + GetCacheViewExtent(const CacheView *); + +extern MagickExport Quantum + *GetCacheViewAuthenticPixelQueue(CacheView *) magick_hot_spot, + *GetCacheViewAuthenticPixels(CacheView *,const ssize_t,const ssize_t, + const size_t,const size_t,ExceptionInfo *) magick_hot_spot, + *QueueCacheViewAuthenticPixels(CacheView *,const ssize_t,const ssize_t, + const size_t,const size_t,ExceptionInfo *) magick_hot_spot; + +extern MagickExport void + *GetCacheViewAuthenticMetacontent(CacheView *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/cache.h b/include/ImageMagick-7/MagickCore/cache.h new file mode 100644 index 0000000..ccb918a --- /dev/null +++ b/include/ImageMagick-7/MagickCore/cache.h @@ -0,0 +1,81 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore cache methods. +*/ +#ifndef MAGICKCORE_CACHE_H +#define MAGICKCORE_CACHE_H + +#include "MagickCore/blob.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedCache, + DiskCache, + DistributedCache, + MapCache, + MemoryCache, + PingCache +} CacheType; + +extern MagickExport CacheType + GetImagePixelCacheType(const Image *); + +extern MagickExport const char + *GetPixelCacheFilename(const Image *); + +extern MagickExport const Quantum + *GetVirtualPixels(const Image *,const ssize_t,const ssize_t,const size_t, + const size_t,ExceptionInfo *) magick_hot_spot, + *GetVirtualPixelQueue(const Image *) magick_hot_spot; + +extern MagickExport const void + *GetVirtualMetacontent(const Image *); + +extern MagickExport MagickBooleanType + GetOneAuthenticPixel(Image *,const ssize_t,const ssize_t,Quantum *, + ExceptionInfo *), + GetOneVirtualPixel(const Image *,const ssize_t,const ssize_t,Quantum *, + ExceptionInfo *), + GetOneVirtualPixelInfo(const Image *,const VirtualPixelMethod, + const ssize_t,const ssize_t,PixelInfo *,ExceptionInfo *), + PersistPixelCache(Image *,const char *,const MagickBooleanType, + MagickOffsetType *,ExceptionInfo *), + SyncAuthenticPixels(Image *,ExceptionInfo *) magick_hot_spot; + +extern MagickExport MagickSizeType + GetImageExtent(const Image *); + +extern MagickExport Quantum + *GetAuthenticPixels(Image *,const ssize_t,const ssize_t,const size_t, + const size_t,ExceptionInfo *) magick_hot_spot, + *GetAuthenticPixelQueue(const Image *) magick_hot_spot, + *QueueAuthenticPixels(Image *,const ssize_t,const ssize_t,const size_t, + const size_t,ExceptionInfo *) magick_hot_spot; + +extern MagickExport void + *AcquirePixelCachePixels(const Image *,size_t *,ExceptionInfo *), + *GetAuthenticMetacontent(const Image *), + *GetPixelCachePixels(Image *,MagickSizeType *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/channel.h b/include/ImageMagick-7/MagickCore/channel.h new file mode 100644 index 0000000..6a44294 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/channel.h @@ -0,0 +1,41 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image channel methods. +*/ +#ifndef MAGICKCORE_CHANNEL_H +#define MAGICKCORE_CHANNEL_H + +#include + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport Image + *ChannelFxImage(const Image *,const char *,ExceptionInfo *), + *CombineImages(const Image *,const ColorspaceType,ExceptionInfo *), + *SeparateImage(const Image *,const ChannelType,ExceptionInfo *), + *SeparateImages(const Image *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + GetImageAlphaChannel(const Image *), + SetImageAlphaChannel(Image *,const AlphaChannelOption,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/cipher.h b/include/ImageMagick-7/MagickCore/cipher.h new file mode 100644 index 0000000..6332356 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/cipher.h @@ -0,0 +1,35 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore cipher methods. +*/ +#ifndef MAGICKCORE_CIPHER_H +#define MAGICKCORE_CIPHER_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + DecipherImage(Image *,const char *,ExceptionInfo *), + EncipherImage(Image *,const char *,ExceptionInfo *), + PasskeyDecipherImage(Image *,const StringInfo *,ExceptionInfo *), + PasskeyEncipherImage(Image *,const StringInfo *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/client.h b/include/ImageMagick-7/MagickCore/client.h new file mode 100644 index 0000000..5bab9ff --- /dev/null +++ b/include/ImageMagick-7/MagickCore/client.h @@ -0,0 +1,35 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore client methods. +*/ +#ifndef MAGICKCORE_CLIENT_H +#define MAGICKCORE_CLIENT_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport const char + *GetClientPath(void), + *GetClientName(void), + *SetClientName(const char *), + *SetClientPath(const char *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/coder.h b/include/ImageMagick-7/MagickCore/coder.h new file mode 100644 index 0000000..4203226 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/coder.h @@ -0,0 +1,54 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image coder methods. +*/ +#ifndef MAGICKCORE_CODER_H +#define MAGICKCORE_CODER_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _CoderInfo +{ + char + *path, + *magick, + *name; + + MagickBooleanType + exempt, + stealth; + + size_t + signature; +} CoderInfo; + +extern MagickExport char + **GetCoderList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport const CoderInfo + *GetCoderInfo(const char *,ExceptionInfo *), + **GetCoderInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + ListCoderInfo(FILE *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/color.h b/include/ImageMagick-7/MagickCore/color.h new file mode 100644 index 0000000..1a3915b --- /dev/null +++ b/include/ImageMagick-7/MagickCore/color.h @@ -0,0 +1,93 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image color methods. +*/ +#ifndef MAGICKCORE_COLOR_H +#define MAGICKCORE_COLOR_H + +#include "MagickCore/pixel.h" +#include "MagickCore/exception.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedCompliance, + NoCompliance = 0x0000, + CSSCompliance = 0x0001, + SVGCompliance = 0x0001, + X11Compliance = 0x0002, + XPMCompliance = 0x0004, + MVGCompliance = 0x0008, + AllCompliance = 0x7fffffff +} ComplianceType; + +typedef struct _ColorInfo +{ + char + *path, + *name; + + ComplianceType + compliance; + + PixelInfo + color; + + MagickBooleanType + exempt, + stealth; + + size_t + signature; +} ColorInfo; + +typedef struct _ErrorInfo +{ + double + mean_error_per_pixel, + normalized_mean_error, + normalized_maximum_error; +} ErrorInfo; + +extern MagickExport char + **GetColorList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport const ColorInfo + *GetColorInfo(const char *,ExceptionInfo *), + **GetColorInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + IsEquivalentImage(const Image *,const Image *,ssize_t *x,ssize_t *y, + ExceptionInfo *), + ListColorInfo(FILE *,ExceptionInfo *), + QueryColorCompliance(const char *,const ComplianceType,PixelInfo *, + ExceptionInfo *), + QueryColorname(const Image *,const PixelInfo *,const ComplianceType, + char *,ExceptionInfo *); + +extern MagickExport void + ConcatenateColorComponent(const PixelInfo *,const PixelChannel, + const ComplianceType,char *), + GetColorTuple(const PixelInfo *,const MagickBooleanType,char *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/colormap.h b/include/ImageMagick-7/MagickCore/colormap.h new file mode 100644 index 0000000..4e5e8de --- /dev/null +++ b/include/ImageMagick-7/MagickCore/colormap.h @@ -0,0 +1,34 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image colormap methods. +*/ +#ifndef MAGICKCORE_COLORMAP_H +#define MAGICKCORE_COLORMAP_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + AcquireImageColormap(Image *,const size_t,ExceptionInfo *), + CycleColormapImage(Image *,const ssize_t,ExceptionInfo *), + SortColormapByIntensity(Image *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/colorspace.h b/include/ImageMagick-7/MagickCore/colorspace.h new file mode 100644 index 0000000..84779d7 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/colorspace.h @@ -0,0 +1,76 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image colorspace methods. +*/ +#ifndef MAGICKCORE_COLORSPACE_H +#define MAGICKCORE_COLORSPACE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedColorspace, + CMYColorspace, /* negated linear RGB colorspace */ + CMYKColorspace, /* CMY with Black separation */ + GRAYColorspace, /* Single Channel greyscale (non-linear) image */ + HCLColorspace, + HCLpColorspace, + HSBColorspace, + HSIColorspace, + HSLColorspace, + HSVColorspace, /* alias for HSB */ + HWBColorspace, + LabColorspace, + LCHColorspace, /* alias for LCHuv */ + LCHabColorspace, /* Cylindrical (Polar) Lab */ + LCHuvColorspace, /* Cylindrical (Polar) Luv */ + LogColorspace, + LMSColorspace, + LuvColorspace, + OHTAColorspace, + Rec601YCbCrColorspace, + Rec709YCbCrColorspace, + RGBColorspace, /* Linear RGB colorspace */ + scRGBColorspace, /* ??? */ + sRGBColorspace, /* Default: non-linear sRGB colorspace */ + TransparentColorspace, + xyYColorspace, + XYZColorspace, /* IEEE Color Reference colorspace */ + YCbCrColorspace, + YCCColorspace, + YDbDrColorspace, + YIQColorspace, + YPbPrColorspace, + YUVColorspace, + LinearGRAYColorspace /* Single Channel greyscale (linear) image */ +} ColorspaceType; + +extern MagickExport ColorspaceType + GetImageColorspaceType(const Image *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + SetImageColorspace(Image *,const ColorspaceType,ExceptionInfo *), + SetImageGray(Image *,ExceptionInfo *), + SetImageMonochrome(Image *,ExceptionInfo *), + TransformImageColorspace(Image *,const ColorspaceType,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/compare.h b/include/ImageMagick-7/MagickCore/compare.h new file mode 100644 index 0000000..5676807 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/compare.h @@ -0,0 +1,63 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image compare methods. +*/ +#ifndef MAGICKCORE_COMPARE_H +#define MAGICKCORE_COMPARE_H + +#include "MagickCore/image.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedErrorMetric, + AbsoluteErrorMetric, + FuzzErrorMetric, + MeanAbsoluteErrorMetric, + MeanErrorPerPixelErrorMetric, + MeanSquaredErrorMetric, + NormalizedCrossCorrelationErrorMetric, + PeakAbsoluteErrorMetric, + PeakSignalToNoiseRatioErrorMetric, + PerceptualHashErrorMetric, + RootMeanSquaredErrorMetric, + StructuralSimilarityErrorMetric, + StructuralDissimilarityErrorMetric +} MetricType; + +extern MagickExport double + *GetImageDistortions(Image *,const Image *,const MetricType,ExceptionInfo *); + +extern MagickExport Image + *CompareImages(Image *,const Image *,const MetricType,double *, + ExceptionInfo *), + *SimilarityImage(const Image *,const Image *,const MetricType,const double, + RectangleInfo *,double *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + GetImageDistortion(Image *,const Image *,const MetricType,double *, + ExceptionInfo *), + IsImagesEqual(const Image *,const Image *,ExceptionInfo *), + SetImageColorMetric(Image *,const Image *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/composite.h b/include/ImageMagick-7/MagickCore/composite.h new file mode 100644 index 0000000..da78958 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/composite.h @@ -0,0 +1,110 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image composite methods. +*/ +#ifndef MAGICKCORE_COMPOSITE_H +#define MAGICKCORE_COMPOSITE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedCompositeOp, + AlphaCompositeOp, + AtopCompositeOp, + BlendCompositeOp, + BlurCompositeOp, + BumpmapCompositeOp, + ChangeMaskCompositeOp, + ClearCompositeOp, + ColorBurnCompositeOp, + ColorDodgeCompositeOp, + ColorizeCompositeOp, + CopyBlackCompositeOp, + CopyBlueCompositeOp, + CopyCompositeOp, + CopyCyanCompositeOp, + CopyGreenCompositeOp, + CopyMagentaCompositeOp, + CopyAlphaCompositeOp, + CopyRedCompositeOp, + CopyYellowCompositeOp, + DarkenCompositeOp, + DarkenIntensityCompositeOp, + DifferenceCompositeOp, + DisplaceCompositeOp, + DissolveCompositeOp, + DistortCompositeOp, + DivideDstCompositeOp, + DivideSrcCompositeOp, + DstAtopCompositeOp, + DstCompositeOp, + DstInCompositeOp, + DstOutCompositeOp, + DstOverCompositeOp, + ExclusionCompositeOp, + HardLightCompositeOp, + HardMixCompositeOp, + HueCompositeOp, + InCompositeOp, + IntensityCompositeOp, + LightenCompositeOp, + LightenIntensityCompositeOp, + LinearBurnCompositeOp, + LinearDodgeCompositeOp, + LinearLightCompositeOp, + LuminizeCompositeOp, + MathematicsCompositeOp, + MinusDstCompositeOp, + MinusSrcCompositeOp, + ModulateCompositeOp, + ModulusAddCompositeOp, + ModulusSubtractCompositeOp, + MultiplyCompositeOp, + NoCompositeOp, + OutCompositeOp, + OverCompositeOp, + OverlayCompositeOp, + PegtopLightCompositeOp, + PinLightCompositeOp, + PlusCompositeOp, + ReplaceCompositeOp, + SaturateCompositeOp, + ScreenCompositeOp, + SoftLightCompositeOp, + SrcAtopCompositeOp, + SrcCompositeOp, + SrcInCompositeOp, + SrcOutCompositeOp, + SrcOverCompositeOp, + ThresholdCompositeOp, + VividLightCompositeOp, + XorCompositeOp, + StereoCompositeOp +} CompositeOperator; + +extern MagickExport MagickBooleanType + CompositeImage(Image *,const Image *,const CompositeOperator, + const MagickBooleanType,const ssize_t,const ssize_t,ExceptionInfo *), + TextureImage(Image *,const Image *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/compress.h b/include/ImageMagick-7/MagickCore/compress.h new file mode 100644 index 0000000..a45f2ef --- /dev/null +++ b/include/ImageMagick-7/MagickCore/compress.h @@ -0,0 +1,73 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image compression/decompression methods. +*/ +#ifndef MAGICKCORE_COMPRESS_H +#define MAGICKCORE_COMPRESS_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedCompression, + B44ACompression, + B44Compression, + BZipCompression, + DXT1Compression, + DXT3Compression, + DXT5Compression, + FaxCompression, + Group4Compression, + JBIG1Compression, /* ISO/IEC std 11544 / ITU-T rec T.82 */ + JBIG2Compression, /* ISO/IEC std 14492 / ITU-T rec T.88 */ + JPEG2000Compression, /* ISO/IEC std 15444-1 */ + JPEGCompression, + LosslessJPEGCompression, + LZMACompression, /* Lempel-Ziv-Markov chain algorithm */ + LZWCompression, + NoCompression, + PizCompression, + Pxr24Compression, + RLECompression, + ZipCompression, + ZipSCompression +} CompressionType; + +typedef struct _Ascii85Info + Ascii85Info; + +extern MagickExport MagickBooleanType + HuffmanDecodeImage(Image *,ExceptionInfo *), + HuffmanEncodeImage(const ImageInfo *,Image *,Image *,ExceptionInfo *), + LZWEncodeImage(Image *,const size_t,unsigned char *magick_restrict, + ExceptionInfo *), + PackbitsEncodeImage(Image *,const size_t,unsigned char *magick_restrict, + ExceptionInfo *), + ZLIBEncodeImage(Image *,const size_t,unsigned char *magick_restrict, + ExceptionInfo *); + +extern MagickExport void + Ascii85Encode(Image *,const unsigned char), + Ascii85Flush(Image *), + Ascii85Initialize(Image *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/configure.h b/include/ImageMagick-7/MagickCore/configure.h new file mode 100644 index 0000000..e3af65c --- /dev/null +++ b/include/ImageMagick-7/MagickCore/configure.h @@ -0,0 +1,66 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore configure methods. +*/ +#ifndef MAGICKCORE_CONFIGURE_H +#define MAGICKCORE_CONFIGURE_H + +#include "MagickCore/linked-list.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _ConfigureInfo +{ + char + *path, + *name, + *value; + + MagickBooleanType + exempt, + stealth; + + size_t + signature; +} ConfigureInfo; + +extern MagickExport char + **GetConfigureList(const char *,size_t *,ExceptionInfo *), + *GetConfigureOption(const char *); + +extern MagickExport const char + *GetConfigureValue(const ConfigureInfo *); + +extern MagickExport const ConfigureInfo + *GetConfigureInfo(const char *,ExceptionInfo *), + **GetConfigureInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport LinkedListInfo + *DestroyConfigureOptions(LinkedListInfo *), + *GetConfigurePaths(const char *,ExceptionInfo *), + *GetConfigureOptions(const char *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + ListConfigureInfo(FILE *,ExceptionInfo *); + + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/constitute.h b/include/ImageMagick-7/MagickCore/constitute.h new file mode 100644 index 0000000..87307fb --- /dev/null +++ b/include/ImageMagick-7/MagickCore/constitute.h @@ -0,0 +1,44 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image constitute methods. +*/ +#ifndef MAGICKCORE_CONSTITUTE_H +#define MAGICKCORE_CONSTITUTE_H + +#include "MagickCore/pixel.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport Image + *ConstituteImage(const size_t,const size_t,const char *,const StorageType, + const void *,ExceptionInfo *), + *PingImage(const ImageInfo *,ExceptionInfo *), + *PingImages(ImageInfo *,const char *,ExceptionInfo *), + *ReadImage(const ImageInfo *,ExceptionInfo *), + *ReadImages(ImageInfo *,const char *,ExceptionInfo *), + *ReadInlineImage(const ImageInfo *,const char *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + WriteImage(const ImageInfo *,Image *,ExceptionInfo *), + WriteImages(const ImageInfo *,Image *,const char *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/decorate.h b/include/ImageMagick-7/MagickCore/decorate.h new file mode 100644 index 0000000..11e14cd --- /dev/null +++ b/include/ImageMagick-7/MagickCore/decorate.h @@ -0,0 +1,54 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image decorate methods. +*/ +#ifndef MAGICKCORE_DECORATE_H +#define MAGICKCORE_DECORATE_H + +#include "MagickCore/image.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _FrameInfo +{ + size_t + width, + height; + + ssize_t + x, + y, + inner_bevel, + outer_bevel; +} FrameInfo; + +extern MagickExport Image + *BorderImage(const Image *,const RectangleInfo *,const CompositeOperator, + ExceptionInfo *), + *FrameImage(const Image *,const FrameInfo *,const CompositeOperator, + ExceptionInfo *); + +extern MagickExport MagickBooleanType + RaiseImage(Image *,const RectangleInfo *,const MagickBooleanType, + ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/delegate.h b/include/ImageMagick-7/MagickCore/delegate.h new file mode 100644 index 0000000..db05e43 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/delegate.h @@ -0,0 +1,79 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore delegates methods. +*/ +#ifndef MAGICKCORE_DELEGATE_H +#define MAGICKCORE_DELEGATE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#include +#include "MagickCore/semaphore.h" + +typedef struct _DelegateInfo +{ + char + *path, + *decode, + *encode, + *commands; + + ssize_t + mode; + + MagickBooleanType + thread_support, + spawn, + stealth; + + SemaphoreInfo + *semaphore; + + size_t + signature; +} DelegateInfo; + +extern MagickExport char + *GetDelegateCommand(const ImageInfo *,Image *,const char *,const char *, + ExceptionInfo *), + **GetDelegateList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport const char + *GetDelegateCommands(const DelegateInfo *); + +extern MagickExport const DelegateInfo + *GetDelegateInfo(const char *,const char *,ExceptionInfo *exception), + **GetDelegateInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport int + ExternalDelegateCommand(const MagickBooleanType,const MagickBooleanType, + const char *,char *,ExceptionInfo *); + +extern MagickExport ssize_t + GetDelegateMode(const DelegateInfo *); + +extern MagickExport MagickBooleanType + GetDelegateThreadSupport(const DelegateInfo *), + InvokeDelegate(ImageInfo *,Image *,const char *,const char *,ExceptionInfo *), + ListDelegateInfo(FILE *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/deprecate.h b/include/ImageMagick-7/MagickCore/deprecate.h new file mode 100644 index 0000000..b8d7722 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/deprecate.h @@ -0,0 +1,45 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore deprecated methods. +*/ +#ifndef MAGICKCORE_DEPRECATE_H +#define MAGICKCORE_DEPRECATE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED) + +#include "MagickCore/magick.h" + +typedef int + *(*BlobFifo)(const Image *,const void *,const size_t); + +extern MagickExport MagickBooleanType + GetMagickSeekableStream(const MagickInfo *); + +extern MagickExport void + *CropImageToHBITMAP(Image *,const RectangleInfo *,ExceptionInfo *), + *ImageToHBITMAP(Image *,ExceptionInfo *); + +#endif + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/display.h b/include/ImageMagick-7/MagickCore/display.h new file mode 100644 index 0000000..ca793d1 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/display.h @@ -0,0 +1,34 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore methods to interactively display and edit an image. +*/ +#ifndef MAGICKCORE_DISPLAY_H +#define MAGICKCORE_DISPLAY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + DisplayImages(const ImageInfo *,Image *,ExceptionInfo *), + RemoteDisplayCommand(const ImageInfo *,const char *,const char *, + ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/distort.h b/include/ImageMagick-7/MagickCore/distort.h new file mode 100644 index 0000000..b331def --- /dev/null +++ b/include/ImageMagick-7/MagickCore/distort.h @@ -0,0 +1,86 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image distortion methods. +*/ +#ifndef MAGICKCORE_DISTORT_H +#define MAGICKCORE_DISTORT_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* + These two enum are linked, with common enumerated values. Both + DistortImages() and SparseColor() often share code to determine functional + coefficients for common methods. + + Caution should be taken to ensure that only the common methods contain the + same enumerated value, while all others remain unique across both + enumerations. +*/ +typedef enum +{ + UndefinedDistortion, + AffineDistortion, + AffineProjectionDistortion, + ScaleRotateTranslateDistortion, + PerspectiveDistortion, + PerspectiveProjectionDistortion, + BilinearForwardDistortion, + BilinearDistortion = BilinearForwardDistortion, + BilinearReverseDistortion, + PolynomialDistortion, + ArcDistortion, + PolarDistortion, + DePolarDistortion, + Cylinder2PlaneDistortion, + Plane2CylinderDistortion, + BarrelDistortion, + BarrelInverseDistortion, + ShepardsDistortion, + ResizeDistortion, + SentinelDistortion +} DistortMethod; + +typedef enum +{ + UndefinedColorInterpolate = UndefinedDistortion, + BarycentricColorInterpolate = AffineDistortion, + BilinearColorInterpolate = BilinearReverseDistortion, + PolynomialColorInterpolate = PolynomialDistortion, + ShepardsColorInterpolate = ShepardsDistortion, + /* + Methods unique to SparseColor(). + */ + VoronoiColorInterpolate = SentinelDistortion, + InverseColorInterpolate, + ManhattanColorInterpolate +} SparseColorMethod; + +extern MagickExport Image + *AffineTransformImage(const Image *,const AffineMatrix *,ExceptionInfo *), + *DistortImage(const Image *,const DistortMethod,const size_t, + const double *,MagickBooleanType,ExceptionInfo *exception), + *DistortResizeImage(const Image *,const size_t,const size_t,ExceptionInfo *), + *RotateImage(const Image *,const double,ExceptionInfo *), + *SparseColorImage(const Image *,const SparseColorMethod,const size_t, + const double *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/distribute-cache.h b/include/ImageMagick-7/MagickCore/distribute-cache.h new file mode 100644 index 0000000..d74d79b --- /dev/null +++ b/include/ImageMagick-7/MagickCore/distribute-cache.h @@ -0,0 +1,34 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore distributed cache methods. +*/ +#ifndef MAGICKCORE_DISTRIBUTE_CACHE_H +#define MAGICKCORE_DISTRIBUTE_CACHE_H + +#include "MagickCore/exception.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport void + DistributePixelCacheServer(const int,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/draw.h b/include/ImageMagick-7/MagickCore/draw.h new file mode 100644 index 0000000..f63ad54 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/draw.h @@ -0,0 +1,406 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore drawing methods. +*/ +#ifndef MAGICKCORE_DRAW_H +#define MAGICKCORE_DRAW_H + +#include "MagickCore/geometry.h" +#include "MagickCore/image.h" +#include "MagickCore/pixel.h" +#include "MagickCore/type.h" +#include "MagickCore/color.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedAlign, + LeftAlign, + CenterAlign, + RightAlign +} AlignType; + +typedef enum +{ + UndefinedPathUnits, + UserSpace, + UserSpaceOnUse, + ObjectBoundingBox +} ClipPathUnits; + +typedef enum +{ + UndefinedDecoration, + NoDecoration, + UnderlineDecoration, + OverlineDecoration, + LineThroughDecoration +} DecorationType; + +typedef enum +{ + UndefinedDirection, + RightToLeftDirection, + LeftToRightDirection +} DirectionType; + +typedef enum +{ + UndefinedRule, +#undef EvenOddRule + EvenOddRule, + NonZeroRule +} FillRule; + +typedef enum +{ + UndefinedGradient, + LinearGradient, + RadialGradient +} GradientType; + +typedef enum +{ + UndefinedCap, + ButtCap, + RoundCap, + SquareCap +} LineCap; + +typedef enum +{ + UndefinedJoin, + MiterJoin, + RoundJoin, + BevelJoin +} LineJoin; + +typedef enum +{ + UndefinedMethod, + PointMethod, + ReplaceMethod, + FloodfillMethod, + FillToBorderMethod, + ResetMethod +} PaintMethod; + +typedef enum +{ + UndefinedPrimitive, + AlphaPrimitive, + ArcPrimitive, + BezierPrimitive, + CirclePrimitive, + ColorPrimitive, + EllipsePrimitive, + ImagePrimitive, + LinePrimitive, + PathPrimitive, + PointPrimitive, + PolygonPrimitive, + PolylinePrimitive, + RectanglePrimitive, + RoundRectanglePrimitive, + TextPrimitive +} PrimitiveType; + +typedef enum +{ + UndefinedReference, + GradientReference +} ReferenceType; + +typedef enum +{ + UndefinedSpread, + PadSpread, + ReflectSpread, + RepeatSpread +} SpreadMethod; + +typedef struct _StopInfo +{ + PixelInfo + color; + + double + offset; +} StopInfo; + +typedef struct _GradientInfo +{ + GradientType + type; + + RectangleInfo + bounding_box; + + SegmentInfo + gradient_vector; + + StopInfo + *stops; + + size_t + number_stops; + + SpreadMethod + spread; + + MagickBooleanType + debug; + + PointInfo + center, + radii; + + double + radius, + angle; + + size_t + signature; +} GradientInfo; + +typedef struct _ElementReference +{ + char + *id; + + ReferenceType + type; + + GradientInfo + gradient; + + struct _ElementReference + *previous, + *next; + + size_t + signature; +} ElementReference; + +typedef struct _DrawInfo +{ + char + *primitive, + *geometry; + + RectangleInfo + viewbox; + + AffineMatrix + affine; + + PixelInfo + fill, + stroke, + undercolor, + border_color; + + Image + *fill_pattern, + *stroke_pattern; + + double + stroke_width; + + GradientInfo + gradient; + + MagickBooleanType + stroke_antialias, + text_antialias; + + FillRule + fill_rule; + + LineCap + linecap; + + LineJoin + linejoin; + + size_t + miterlimit; + + double + dash_offset; + + DecorationType + decorate; + + CompositeOperator + compose; + + char + *text, + *font, + *metrics, + *family; + + size_t + face; + + StyleType + style; + + StretchType + stretch; + + size_t + weight; + + char + *encoding; + + double + pointsize; + + char + *density; + + AlignType + align; + + GravityType + gravity; + + char + *server_name; + + double + *dash_pattern; + + char + *clip_mask; + + SegmentInfo + bounds; + + ClipPathUnits + clip_units; + + Quantum + alpha; + + MagickBooleanType + render; + + ElementReference + element_reference; + + double + kerning, + interword_spacing, + interline_spacing; + + DirectionType + direction; + + MagickBooleanType + debug; + + size_t + signature; + + double + fill_alpha, + stroke_alpha; + + MagickBooleanType + clip_path; + + Image + *clipping_mask; + + ComplianceType + compliance; + + Image + *composite_mask; +} DrawInfo; + +typedef struct _PrimitiveInfo +{ + PointInfo + point; + + size_t + coordinates; + + PrimitiveType + primitive; + + PaintMethod + method; + + char + *text; + + MagickBooleanType + closed_subpath; +} PrimitiveInfo; + +typedef struct _TypeMetric +{ + PointInfo + pixels_per_em; + + double + ascent, + descent, + width, + height, + max_advance, + underline_position, + underline_thickness; + + SegmentInfo + bounds; + + PointInfo + origin; +} TypeMetric; + +extern MagickExport DrawInfo + *AcquireDrawInfo(void), + *CloneDrawInfo(const ImageInfo *,const DrawInfo *), + *DestroyDrawInfo(DrawInfo *); + +extern MagickExport MagickBooleanType + DrawAffineImage(Image *,const Image *,const AffineMatrix *,ExceptionInfo *), + DrawClipPath(Image *,const DrawInfo *,const char *,ExceptionInfo *), + DrawGradientImage(Image *,const DrawInfo *,ExceptionInfo *), + DrawImage(Image *,const DrawInfo *,ExceptionInfo *), + DrawPatternPath(Image *,const DrawInfo *,const char *,Image **, + ExceptionInfo *), + DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *,ExceptionInfo *); + +extern MagickExport void + GetAffineMatrix(AffineMatrix *), + GetDrawInfo(const ImageInfo *,DrawInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/effect.h b/include/ImageMagick-7/MagickCore/effect.h new file mode 100644 index 0000000..2855b30 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/effect.h @@ -0,0 +1,91 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image effects methods. +*/ +#ifndef MAGICKCORE_EFFECT_H +#define MAGICKCORE_EFFECT_H + +#include "MagickCore/morphology.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedPreview, + RotatePreview, + ShearPreview, + RollPreview, + HuePreview, + SaturationPreview, + BrightnessPreview, + GammaPreview, + SpiffPreview, + DullPreview, + GrayscalePreview, + QuantizePreview, + DespecklePreview, + ReduceNoisePreview, + AddNoisePreview, + SharpenPreview, + BlurPreview, + ThresholdPreview, + EdgeDetectPreview, + SpreadPreview, + SolarizePreview, + ShadePreview, + RaisePreview, + SegmentPreview, + SwirlPreview, + ImplodePreview, + WavePreview, + OilPaintPreview, + CharcoalDrawingPreview, + JPEGPreview +} PreviewType; + +extern MagickExport Image + *AdaptiveBlurImage(const Image *,const double,const double,ExceptionInfo *), + *AdaptiveSharpenImage(const Image *,const double,const double, + ExceptionInfo *), + *BlurImage(const Image *,const double,const double,ExceptionInfo *), + *ConvolveImage(const Image *,const KernelInfo *,ExceptionInfo *), + *DespeckleImage(const Image *,ExceptionInfo *), + *EdgeImage(const Image *,const double,ExceptionInfo *), + *EmbossImage(const Image *,const double,const double,ExceptionInfo *), + *GaussianBlurImage(const Image *,const double,const double,ExceptionInfo *), + *KuwaharaImage(const Image *,const double,const double,ExceptionInfo *), + *LocalContrastImage(const Image *,const double,const double,ExceptionInfo *), + *MotionBlurImage(const Image *,const double,const double,const double, + ExceptionInfo *), + *PreviewImage(const Image *,const PreviewType,ExceptionInfo *), + *RotationalBlurImage(const Image *,const double,ExceptionInfo *), + *SelectiveBlurImage(const Image *,const double,const double,const double, + ExceptionInfo *), + *ShadeImage(const Image *,const MagickBooleanType,const double,const double, + ExceptionInfo *), + *SharpenImage(const Image *,const double,const double,ExceptionInfo *), + *SpreadImage(const Image *,const PixelInterpolateMethod,const double, + ExceptionInfo *), + *UnsharpMaskImage(const Image *,const double,const double,const double, + const double,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/enhance.h b/include/ImageMagick-7/MagickCore/enhance.h new file mode 100644 index 0000000..65312d2 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/enhance.h @@ -0,0 +1,57 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image enhance methods. +*/ +#ifndef MAGICKCORE_ENHANCE_H +#define MAGICKCORE_ENHANCE_H + +#include "MagickCore/pixel.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + AutoGammaImage(Image *,ExceptionInfo *), + AutoLevelImage(Image *,ExceptionInfo *), + BrightnessContrastImage(Image *,const double,const double,ExceptionInfo *), + ClutImage(Image *,const Image *,const PixelInterpolateMethod,ExceptionInfo *), + ColorDecisionListImage(Image *,const char *,ExceptionInfo *), + ContrastImage(Image *,const MagickBooleanType,ExceptionInfo *), + ContrastStretchImage(Image *,const double,const double,ExceptionInfo *), + EqualizeImage(Image *image,ExceptionInfo *), + GammaImage(Image *,const double,ExceptionInfo *), + GrayscaleImage(Image *,const PixelIntensityMethod,ExceptionInfo *), + HaldClutImage(Image *,const Image *,ExceptionInfo *), + LevelImage(Image *,const double,const double,const double,ExceptionInfo *), + LevelizeImage(Image *,const double,const double,const double,ExceptionInfo *), + LevelImageColors(Image *,const PixelInfo *,const PixelInfo *, + const MagickBooleanType,ExceptionInfo *), + LinearStretchImage(Image *,const double,const double,ExceptionInfo *), + ModulateImage(Image *,const char *,ExceptionInfo *), + NegateImage(Image *,const MagickBooleanType,ExceptionInfo *), + NormalizeImage(Image *,ExceptionInfo *), + SigmoidalContrastImage(Image *,const MagickBooleanType,const double, + const double,ExceptionInfo *); + +extern MagickExport Image + *EnhanceImage(const Image *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/exception.h b/include/ImageMagick-7/MagickCore/exception.h new file mode 100644 index 0000000..375d733 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/exception.h @@ -0,0 +1,176 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore exception methods. +*/ +#ifndef MAGICKCORE_EXCEPTION_H +#define MAGICKCORE_EXCEPTION_H + +#include "MagickCore/semaphore.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedException, + WarningException = 300, + ResourceLimitWarning = 300, + TypeWarning = 305, + OptionWarning = 310, + DelegateWarning = 315, + MissingDelegateWarning = 320, + CorruptImageWarning = 325, + FileOpenWarning = 330, + BlobWarning = 335, + StreamWarning = 340, + CacheWarning = 345, + CoderWarning = 350, + FilterWarning = 352, + ModuleWarning = 355, + DrawWarning = 360, + ImageWarning = 365, + WandWarning = 370, + RandomWarning = 375, + XServerWarning = 380, + MonitorWarning = 385, + RegistryWarning = 390, + ConfigureWarning = 395, + PolicyWarning = 399, + ErrorException = 400, + ResourceLimitError = 400, + TypeError = 405, + OptionError = 410, + DelegateError = 415, + MissingDelegateError = 420, + CorruptImageError = 425, + FileOpenError = 430, + BlobError = 435, + StreamError = 440, + CacheError = 445, + CoderError = 450, + FilterError = 452, + ModuleError = 455, + DrawError = 460, + ImageError = 465, + WandError = 470, + RandomError = 475, + XServerError = 480, + MonitorError = 485, + RegistryError = 490, + ConfigureError = 495, + PolicyError = 499, + FatalErrorException = 700, + ResourceLimitFatalError = 700, + TypeFatalError = 705, + OptionFatalError = 710, + DelegateFatalError = 715, + MissingDelegateFatalError = 720, + CorruptImageFatalError = 725, + FileOpenFatalError = 730, + BlobFatalError = 735, + StreamFatalError = 740, + CacheFatalError = 745, + CoderFatalError = 750, + FilterFatalError = 752, + ModuleFatalError = 755, + DrawFatalError = 760, + ImageFatalError = 765, + WandFatalError = 770, + RandomFatalError = 775, + XServerFatalError = 780, + MonitorFatalError = 785, + RegistryFatalError = 790, + ConfigureFatalError = 795, + PolicyFatalError = 799 +} ExceptionType; + +struct _ExceptionInfo +{ + ExceptionType + severity; + + int + error_number; + + char + *reason, + *description; + + void + *exceptions; + + MagickBooleanType + relinquish; + + SemaphoreInfo + *semaphore; + + size_t + signature; +}; + +typedef void + (*ErrorHandler)(const ExceptionType,const char *,const char *); + +typedef void + (*FatalErrorHandler)(const ExceptionType,const char *,const char *); + +typedef void + (*WarningHandler)(const ExceptionType,const char *,const char *); + +extern MagickExport char + *GetExceptionMessage(const int); + +extern MagickExport const char + *GetLocaleExceptionMessage(const ExceptionType,const char *); + +extern MagickExport ErrorHandler + SetErrorHandler(ErrorHandler); + +extern MagickExport ExceptionInfo + *AcquireExceptionInfo(void), + *CloneExceptionInfo(ExceptionInfo *), + *DestroyExceptionInfo(ExceptionInfo *); + +extern MagickExport FatalErrorHandler + SetFatalErrorHandler(FatalErrorHandler); + +extern MagickExport MagickBooleanType + ThrowException(ExceptionInfo *,const ExceptionType,const char *, + const char *), + ThrowMagickExceptionList(ExceptionInfo *,const char *,const char *, + const size_t,const ExceptionType,const char *,const char *,va_list), + ThrowMagickException(ExceptionInfo *,const char *,const char *,const size_t, + const ExceptionType,const char *,const char *,...) + magick_attribute((__format__ (__printf__,7,8))); + +extern MagickExport void + CatchException(ExceptionInfo *), + ClearMagickException(ExceptionInfo *), + InheritException(ExceptionInfo *,const ExceptionInfo *), + MagickError(const ExceptionType,const char *,const char *), + MagickFatalError(const ExceptionType,const char *,const char *), + MagickWarning(const ExceptionType,const char *,const char *); + +extern MagickExport WarningHandler + SetWarningHandler(WarningHandler); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/feature.h b/include/ImageMagick-7/MagickCore/feature.h new file mode 100644 index 0000000..f71c346 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/feature.h @@ -0,0 +1,62 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore feature methods. +*/ +#ifndef MAGICKCORE_FEATURE_H +#define MAGICKCORE_FEATURE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* + Haralick texture features. +*/ +typedef struct _ChannelFeatures +{ + double + angular_second_moment[4], + contrast[4], + correlation[4], + variance_sum_of_squares[4], + inverse_difference_moment[4], + sum_average[4], + sum_variance[4], + sum_entropy[4], + entropy[4], + difference_variance[4], + difference_entropy[4], + measure_of_correlation_1[4], + measure_of_correlation_2[4], + maximum_correlation_coefficient[4]; +} ChannelFeatures; + +extern MagickExport ChannelFeatures + *GetImageFeatures(const Image *,const size_t,ExceptionInfo *); + +extern MagickExport Image + *CannyEdgeImage(const Image *,const double,const double,const double, + const double,ExceptionInfo *), + *HoughLineImage(const Image *,const size_t,const size_t,const size_t, + ExceptionInfo *), + *MeanShiftImage(const Image *,const size_t,const size_t,const double, + ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/fourier.h b/include/ImageMagick-7/MagickCore/fourier.h new file mode 100644 index 0000000..043cb1d --- /dev/null +++ b/include/ImageMagick-7/MagickCore/fourier.h @@ -0,0 +1,48 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore discrete Fourier transform (DFT) methods. +*/ +#ifndef MAGICKCORE_FFT_H +#define MAGICKCORE_FFT_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedComplexOperator, + AddComplexOperator, + ConjugateComplexOperator, + DivideComplexOperator, + MagnitudePhaseComplexOperator, + MultiplyComplexOperator, + RealImaginaryComplexOperator, + SubtractComplexOperator +} ComplexOperator; + +extern MagickExport Image + *ComplexImages(const Image *,const ComplexOperator,ExceptionInfo *), + *ForwardFourierTransformImage(const Image *,const MagickBooleanType, + ExceptionInfo *), + *InverseFourierTransformImage(const Image *,const Image *, + const MagickBooleanType,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/fx.h b/include/ImageMagick-7/MagickCore/fx.h new file mode 100644 index 0000000..8770c3e --- /dev/null +++ b/include/ImageMagick-7/MagickCore/fx.h @@ -0,0 +1,77 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image f/x methods. +*/ +#ifndef MAGICKCORE_FX_H +#define MAGICKCORE_FX_H + +#include "MagickCore/draw.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedNoise, + UniformNoise, + GaussianNoise, + MultiplicativeGaussianNoise, + ImpulseNoise, + LaplacianNoise, + PoissonNoise, + RandomNoise +} NoiseType; + +extern MagickExport Image + *AddNoiseImage(const Image *,const NoiseType,const double,ExceptionInfo *), + *BlueShiftImage(const Image *,const double,ExceptionInfo *), + *CharcoalImage(const Image *,const double,const double,ExceptionInfo *), + *ColorizeImage(const Image *,const char *,const PixelInfo *,ExceptionInfo *), + *ColorMatrixImage(const Image *,const KernelInfo *kernel,ExceptionInfo *), + *FxImage(const Image *,const char *,ExceptionInfo *), + *ImplodeImage(const Image *,const double,const PixelInterpolateMethod, + ExceptionInfo *), + *MorphImages(const Image *,const size_t,ExceptionInfo *), + *PolaroidImage(const Image *,const DrawInfo *,const char *,const double, + const PixelInterpolateMethod,ExceptionInfo *), + *SepiaToneImage(const Image *,const double,ExceptionInfo *), + *ShadowImage(const Image *,const double,const double,const ssize_t, + const ssize_t,ExceptionInfo *), + *SketchImage(const Image *,const double,const double,const double, + ExceptionInfo *), + *SteganoImage(const Image *,const Image *,ExceptionInfo *), + *StereoImage(const Image *,const Image *,ExceptionInfo *), + *StereoAnaglyphImage(const Image *,const Image *,const ssize_t,const ssize_t, + ExceptionInfo *), + *SwirlImage(const Image *,double,const PixelInterpolateMethod, + ExceptionInfo *), + *TintImage(const Image *,const char *,const PixelInfo *,ExceptionInfo *), + *VignetteImage(const Image *,const double,const double,const ssize_t, + const ssize_t,ExceptionInfo *), + *WaveImage(const Image *,const double,const double, + const PixelInterpolateMethod,ExceptionInfo *), + *WaveletDenoiseImage(const Image *,const double,const double,ExceptionInfo *); + +extern MagickExport MagickBooleanType + PlasmaImage(Image *,const SegmentInfo *,size_t,size_t,ExceptionInfo *), + SolarizeImage(Image *,const double,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/gem.h b/include/ImageMagick-7/MagickCore/gem.h new file mode 100644 index 0000000..860e50b --- /dev/null +++ b/include/ImageMagick-7/MagickCore/gem.h @@ -0,0 +1,41 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore graphic gems methods. +*/ +#ifndef MAGICKCORE_GEM_H +#define MAGICKCORE_GEM_H + +#include "MagickCore/fx.h" +#include "MagickCore/random_.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport double + ExpandAffine(const AffineMatrix *); + +extern MagickExport void + ConvertHSLToRGB(const double,const double,const double,double *,double *, + double *), + ConvertRGBToHSL(const double,const double,const double,double *,double *, + double *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/geometry.h b/include/ImageMagick-7/MagickCore/geometry.h new file mode 100644 index 0000000..ff11e25 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/geometry.h @@ -0,0 +1,167 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image geometry methods. +*/ +#ifndef MAGICKCORE_GEOMETRY_H +#define MAGICKCORE_GEOMETRY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ +#undef NoValue + NoValue = 0x0000, +#undef XValue + XValue = 0x0001, + XiValue = 0x0001, +#undef YValue + YValue = 0x0002, + PsiValue = 0x0002, +#undef WidthValue + WidthValue = 0x0004, + RhoValue = 0x0004, +#undef HeightValue + HeightValue = 0x0008, + SigmaValue = 0x0008, + ChiValue = 0x0010, + XiNegative = 0x0020, +#undef XNegative + XNegative = 0x0020, + PsiNegative = 0x0040, +#undef YNegative + YNegative = 0x0040, + ChiNegative = 0x0080, + PercentValue = 0x1000, /* '%' percentage of something */ + AspectValue = 0x2000, /* '!' resize no-aspect - special use flag */ + NormalizeValue = 0x2000, /* '!' ScaleKernelValue() in morphology.c */ + LessValue = 0x4000, /* '<' resize smaller - special use flag */ + GreaterValue = 0x8000, /* '>' resize larger - spacial use flag */ + MinimumValue = 0x10000, /* '^' special handling needed */ + CorrelateNormalizeValue = 0x10000, /* '^' see ScaleKernelValue() */ + AreaValue = 0x20000, /* '@' resize to area - special use flag */ + DecimalValue = 0x40000, /* '.' floating point numbers found */ + SeparatorValue = 0x80000, /* 'x' separator found */ + AspectRatioValue = 0x100000, /* '~' special handling needed */ +#undef AllValues + AllValues = 0x7fffffff +} GeometryFlags; + +#if defined(ForgetGravity) +#undef ForgetGravity +#undef NorthWestGravity +#undef NorthGravity +#undef NorthEastGravity +#undef WestGravity +#undef CenterGravity +#undef EastGravity +#undef SouthWestGravity +#undef SouthGravity +#undef SouthEastGravity +#endif + +typedef enum +{ + UndefinedGravity, + ForgetGravity = 0, + NorthWestGravity = 1, + NorthGravity = 2, + NorthEastGravity = 3, + WestGravity = 4, + CenterGravity = 5, + EastGravity = 6, + SouthWestGravity = 7, + SouthGravity = 8, + SouthEastGravity = 9 +} GravityType; + +typedef struct _AffineMatrix +{ + double + sx, + rx, + ry, + sy, + tx, + ty; +} AffineMatrix; + +typedef struct _GeometryInfo +{ + double + rho, + sigma, + xi, + psi, + chi; +} GeometryInfo; + +typedef struct _OffsetInfo +{ + ssize_t + x, + y; +} OffsetInfo; + +typedef struct _PointInfo +{ + double + x, + y; +} PointInfo; + +typedef struct _RectangleInfo +{ + size_t + width, + height; + + ssize_t + x, + y; +} RectangleInfo; + +extern MagickExport char + *GetPageGeometry(const char *); + +extern MagickExport MagickBooleanType + IsGeometry(const char *), + IsSceneGeometry(const char *,const MagickBooleanType); + +extern MagickExport MagickStatusType + GetGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *), + ParseAbsoluteGeometry(const char *,RectangleInfo *), + ParseAffineGeometry(const char *,AffineMatrix *,ExceptionInfo *), + ParseGeometry(const char *,GeometryInfo *), + ParseGravityGeometry(const Image *,const char *,RectangleInfo *, + ExceptionInfo *), + ParseMetaGeometry(const char *,ssize_t *,ssize_t *,size_t *,size_t *), + ParsePageGeometry(const Image *,const char *,RectangleInfo *,ExceptionInfo *), + ParseRegionGeometry(const Image *,const char *,RectangleInfo *, + ExceptionInfo *); + +extern MagickExport void + GravityAdjustGeometry(const size_t,const size_t,const GravityType, + RectangleInfo *), + SetGeometry(const Image *,RectangleInfo *), + SetGeometryInfo(GeometryInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/histogram.h b/include/ImageMagick-7/MagickCore/histogram.h new file mode 100644 index 0000000..2750840 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/histogram.h @@ -0,0 +1,45 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore histogram methods. +*/ +#ifndef MAGICKCORE_HISTOGRAM_H +#define MAGICKCORE_HISTOGRAM_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport PixelInfo + *GetImageHistogram(const Image *,size_t *,ExceptionInfo *); + +extern MagickExport Image + *UniqueImageColors(const Image *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + IdentifyPaletteImage(const Image *,ExceptionInfo *), + IsHistogramImage(const Image *,ExceptionInfo *), + IsPaletteImage(const Image *), + MinMaxStretchImage(Image *,const double,const double,const double, + ExceptionInfo *); + +extern MagickExport size_t + GetNumberColors(const Image *,FILE *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/identify.h b/include/ImageMagick-7/MagickCore/identify.h new file mode 100644 index 0000000..7110051 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/identify.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image identify method. +*/ +#ifndef MAGICKCORE_IDENTIFY_H +#define MAGICKCORE_IDENTIFY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + IdentifyImage(Image *,FILE *,const MagickBooleanType,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/image-view.h b/include/ImageMagick-7/MagickCore/image-view.h new file mode 100644 index 0000000..535c1e7 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/image-view.h @@ -0,0 +1,83 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITTransferNS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image view methods. +*/ +#ifndef MAGICKCORE_IMAGE_VIEW_H +#define MAGICKCORE_IMAGE_VIEW_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _ImageView + ImageView; + +typedef MagickBooleanType + (*DuplexTransferImageViewMethod)(const ImageView *,const ImageView *, + ImageView *,const ssize_t,const int,void *), + (*GetImageViewMethod)(const ImageView *,const ssize_t,const int,void *), + (*SetImageViewMethod)(ImageView *,const ssize_t,const int,void *), + (*TransferImageViewMethod)(const ImageView *,ImageView *,const ssize_t, + const int,void *), + (*UpdateImageViewMethod)(ImageView *,const ssize_t,const int,void *); + +extern MagickExport char + *GetImageViewException(const ImageView *,ExceptionType *); + +extern MagickExport const Quantum + *GetImageViewVirtualPixels(const ImageView *); + +extern MagickExport const void + *GetImageViewVirtualMetacontent(const ImageView *); + +extern MagickExport Image + *GetImageViewImage(const ImageView *); + +extern MagickExport ImageView + *CloneImageView(const ImageView *), + *DestroyImageView(ImageView *), + *NewImageView(Image *,ExceptionInfo *), + *NewImageViewRegion(Image *,const ssize_t,const ssize_t,const size_t, + const size_t,ExceptionInfo *); + +extern MagickExport MagickBooleanType + DuplexTransferImageViewIterator(ImageView *,ImageView *,ImageView *, + DuplexTransferImageViewMethod,void *), + GetImageViewIterator(ImageView *,GetImageViewMethod,void *), + IsImageView(const ImageView *), + SetImageViewIterator(ImageView *,SetImageViewMethod,void *), + TransferImageViewIterator(ImageView *,ImageView *,TransferImageViewMethod, + void *), + UpdateImageViewIterator(ImageView *,UpdateImageViewMethod,void *); + +extern MagickExport Quantum + *GetImageViewAuthenticPixels(const ImageView *); + +extern MagickExport RectangleInfo + GetImageViewExtent(const ImageView *); + +extern MagickExport void + SetImageViewDescription(ImageView *,const char *), + SetImageViewThreads(ImageView *,const size_t); + +extern MagickExport void + *GetImageViewAuthenticMetacontent(const ImageView *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/image.h b/include/ImageMagick-7/MagickCore/image.h new file mode 100644 index 0000000..7820a37 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/image.h @@ -0,0 +1,587 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image methods. +*/ +#ifndef MAGICKCORE_IMAGE_H +#define MAGICKCORE_IMAGE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define OpaqueAlpha ((Quantum) QuantumRange) +#define TransparentAlpha ((Quantum) 0) + +typedef enum +{ + UndefinedAlphaChannel, + ActivateAlphaChannel, + AssociateAlphaChannel, + BackgroundAlphaChannel, + CopyAlphaChannel, + DeactivateAlphaChannel, + DiscreteAlphaChannel, + DisassociateAlphaChannel, + ExtractAlphaChannel, + OffAlphaChannel, + OnAlphaChannel, + OpaqueAlphaChannel, + RemoveAlphaChannel, + SetAlphaChannel, + ShapeAlphaChannel, + TransparentAlphaChannel +} AlphaChannelOption; + +typedef enum +{ + UndefinedType, + BilevelType, + GrayscaleType, + GrayscaleAlphaType, + PaletteType, + PaletteAlphaType, + TrueColorType, + TrueColorAlphaType, + ColorSeparationType, + ColorSeparationAlphaType, + OptimizeType, + PaletteBilevelAlphaType +} ImageType; + +typedef enum +{ + UndefinedInterlace, + NoInterlace, + LineInterlace, + PlaneInterlace, + PartitionInterlace, + GIFInterlace, + JPEGInterlace, + PNGInterlace +} InterlaceType; + +typedef enum +{ + UndefinedOrientation, + TopLeftOrientation, + TopRightOrientation, + BottomRightOrientation, + BottomLeftOrientation, + LeftTopOrientation, + RightTopOrientation, + RightBottomOrientation, + LeftBottomOrientation +} OrientationType; + +typedef enum +{ + UndefinedResolution, + PixelsPerInchResolution, + PixelsPerCentimeterResolution +} ResolutionType; + +typedef struct _PrimaryInfo +{ + double + x, + y, + z; +} PrimaryInfo; + +typedef struct _SegmentInfo +{ + double + x1, + y1, + x2, + y2; +} SegmentInfo; + +typedef enum +{ + UndefinedTransmitType, + FileTransmitType, + BlobTransmitType, + StreamTransmitType, + ImageTransmitType +} TransmitType; + +typedef struct _ChromaticityInfo +{ + PrimaryInfo + red_primary, + green_primary, + blue_primary, + white_point; +} ChromaticityInfo; + +#include "MagickCore/blob.h" +#include "MagickCore/colorspace.h" +#include "MagickCore/cache-view.h" +#include "MagickCore/color.h" +#include "MagickCore/composite.h" +#include "MagickCore/compress.h" +#include "MagickCore/effect.h" +#include "MagickCore/geometry.h" +#include "MagickCore/layer.h" +#include "MagickCore/locale_.h" +#include "MagickCore/monitor.h" +#include "MagickCore/pixel.h" +#include "MagickCore/profile.h" +#include "MagickCore/quantum.h" +#include "MagickCore/resample.h" +#include "MagickCore/resize.h" +#include "MagickCore/semaphore.h" +#include "MagickCore/stream.h" +#include "MagickCore/timer.h" + +struct _Image +{ + ClassType + storage_class; + + ColorspaceType + colorspace; /* colorspace of image data */ + + CompressionType + compression; /* compression of image when read/write */ + + size_t + quality; /* compression quality setting, meaning varies */ + + OrientationType + orientation; /* photo orientation of image */ + + MagickBooleanType + taint; /* has image been modified since reading */ + + size_t + columns, /* physical size of image */ + rows, + depth, /* depth of image on read/write */ + colors; /* Size of color table, or actual color count */ + /* Only valid if image is not DirectClass */ + + PixelInfo + *colormap, + alpha_color, /* deprecated */ + background_color, /* current background color attribute */ + border_color, /* current bordercolor attribute */ + transparent_color; /* color for 'transparent' color index in GIF */ + + double + gamma; + + ChromaticityInfo + chromaticity; + + RenderingIntent + rendering_intent; + + void + *profiles; + + ResolutionType + units; /* resolution/density ppi or ppc */ + + char + *montage, + *directory, + *geometry; + + ssize_t + offset; /* ??? */ + + PointInfo + resolution; /* image resolution/density */ + + RectangleInfo + page, /* virtual canvas size and offset of image */ + extract_info; + + double + fuzz; /* current color fuzz attribute - move to image_info */ + + FilterType + filter; /* resize/distort filter to apply */ + + PixelIntensityMethod + intensity; /* method to generate an intensity value from a pixel */ + + InterlaceType + interlace; + + EndianType + endian; /* raw data integer ordering on read/write */ + + GravityType + gravity; /* Gravity attribute for positioning in image */ + + CompositeOperator + compose; /* alpha composition method for layered images */ + + DisposeType + dispose; /* GIF animation disposal method */ + + size_t + scene, /* index of image in multi-image file */ + delay, /* Animation delay time */ + duration; /* Total animation duration sum(delay*iterations) */ + + ssize_t + ticks_per_second; /* units for delay time, default 100 for GIF */ + + size_t + iterations, /* number of interations for GIF animations */ + total_colors; + + ssize_t + start_loop; /* ??? */ + + PixelInterpolateMethod + interpolate; /* Interpolation of color for between pixel lookups */ + + MagickBooleanType + black_point_compensation; + + RectangleInfo + tile_offset; + + ImageType + type; + + MagickBooleanType + dither; /* dithering on/off */ + + MagickSizeType + extent; /* Size of image read from disk */ + + MagickBooleanType + ping; /* no image data read, just attributes */ + + MagickBooleanType + read_mask, + write_mask; + + PixelTrait + alpha_trait; /* is transparency channel defined and active */ + + size_t + number_channels, + number_meta_channels, + metacontent_extent; + + ChannelType + channel_mask; + + PixelChannelMap + *channel_map; + + void + *cache; + + ErrorInfo + error; + + TimerInfo + timer; + + MagickProgressMonitor + progress_monitor; + + void + *client_data; + + Ascii85Info + *ascii85; + + ProfileInfo + *generic_profile; + + void + *properties, /* general settings, to save with image */ + *artifacts; /* general operational/coder settings, not saved */ + + char + filename[MagickPathExtent], /* images input filename */ + magick_filename[MagickPathExtent], /* given image filename (with read mods) */ + magick[MagickPathExtent]; /* images file format (file magic) */ + + size_t + magick_columns, /* size of image when read/created */ + magick_rows; + + BlobInfo + *blob; /* image file as in-memory string of 'extent' */ + + time_t + timestamp; + + MagickBooleanType + debug; /* debug output attribute */ + + volatile ssize_t + reference_count; /* image data sharing memory management */ + + SemaphoreInfo + *semaphore; + + struct _ImageInfo + *image_info; /* (Optional) Image belongs to this ImageInfo 'list' + * For access to 'global options' when no per-image + * attribute, properity, or artifact has been set. + */ + + struct _Image + *list, /* Undo/Redo image processing list (for display) */ + *previous, /* Image list links */ + *next; + + size_t + signature; + + PixelInfo + matte_color; /* current mattecolor attribute */ + + MagickBooleanType + composite_mask; + + PixelTrait + mask_trait; /* apply the clip or composite mask */ + + ChannelType + channels; +}; + +/* + ImageInfo structure: + Stores an image list, as well as all global settings used by all images + held, -- unless overridden for that specific image. See SyncImagesettings() + which maps any global setting that always overrides specific image settings. +*/ +struct _ImageInfo +{ + CompressionType + compression; /* compression method when reading/saving image */ + + OrientationType + orientation; /* orientation setting */ + + MagickBooleanType + temporary, /* image file to be deleted after read "empemeral:" */ + adjoin, /* save images to separate scene files */ + affirm, + antialias; + + char + *size, /* image generation size */ + *extract, /* crop/resize string on image read */ + *page, + *scenes; /* scene numbers that is to be read in */ + + size_t + scene, /* starting value for image save numbering */ + number_scenes, /* total number of images in list - for escapes */ + depth; /* current read/save depth of images */ + + InterlaceType + interlace; /* interlace for image write */ + + EndianType + endian; /* integer endian order for raw image data */ + + ResolutionType + units; /* denisty pixels/inch or pixel/cm */ + + size_t + quality; /* compression quality */ + + char + *sampling_factor, /* JPEG write sampling factor */ + *server_name, /* X windows server name - display/animate */ + *font, /* DUP for draw_info */ + *texture, /* montage/display background tile */ + *density; /* DUP for image and draw_info */ + + double + pointsize, + fuzz; /* current color fuzz attribute */ + + PixelInfo + alpha_color, /* deprecated */ + background_color, /* user set background color */ + border_color, /* user set border color */ + transparent_color; /* color for transparent index in color tables */ + /* NB: fill color is only needed in draw_info! */ + /* the same for undercolor (for font drawing) */ + + MagickBooleanType + dither, /* dither enable-disable */ + monochrome; /* read/write pcl,pdf,ps,xps as monocrome image */ + + ColorspaceType + colorspace; + + CompositeOperator + compose; + + ImageType + type; + + MagickBooleanType + ping, /* fast read image attributes, not image data */ + verbose; /* verbose output enable/disable */ + + ChannelType + channel; + + void + *options; /* splay tree of global options */ + + void + *profile; + + MagickBooleanType + synchronize; + + MagickProgressMonitor + progress_monitor; + + void + *client_data, + *cache; + + StreamHandler + stream; + + FILE + *file; + + void + *blob; + + size_t + length; + + char + magick[MagickPathExtent], /* image file format (file magick) */ + unique[MagickPathExtent], /* unique tempory filename - delegates */ + filename[MagickPathExtent]; /* filename when reading/writing image */ + + MagickBooleanType + debug; + + size_t + signature; + + CustomStreamInfo + *custom_stream; + + PixelInfo + matte_color; /* matte (frame) color */ +}; + +extern MagickExport ChannelType + SetImageChannelMask(Image *,const ChannelType); + +extern MagickExport const char + DefaultTileGeometry[], + DefaultTileLabel[], + LoadImageTag[], + LoadImagesTag[], + PSDensityGeometry[], + PSPageGeometry[], + SaveImageTag[], + SaveImagesTag[]; + +extern MagickExport const double + DefaultResolution; + +extern MagickExport ExceptionType + CatchImageException(Image *); + +extern MagickExport FILE + *GetImageInfoFile(const ImageInfo *); + +extern MagickExport Image + *AcquireImage(const ImageInfo *,ExceptionInfo *), + *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *), + *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType, + ExceptionInfo *), + *DestroyImage(Image *), + *GetImageMask(const Image *,const PixelMask,ExceptionInfo *), + *NewMagickImage(const ImageInfo *,const size_t,const size_t,const PixelInfo *, + ExceptionInfo *), + *ReferenceImage(Image *), + *SmushImages(const Image *,const MagickBooleanType,const ssize_t, + ExceptionInfo *); + +extern MagickExport ImageInfo + *AcquireImageInfo(void), + *CloneImageInfo(const ImageInfo *), + *DestroyImageInfo(ImageInfo *); + +extern MagickExport MagickBooleanType + ClipImage(Image *,ExceptionInfo *), + ClipImagePath(Image *,const char *,const MagickBooleanType,ExceptionInfo *), + CopyImagePixels(Image *,const Image *,const RectangleInfo *, + const OffsetInfo *,ExceptionInfo *), + IsTaintImage(const Image *), + IsHighDynamicRangeImage(const Image *,ExceptionInfo *), + IsImageObject(const Image *), + ListMagickInfo(FILE *,ExceptionInfo *), + ModifyImage(Image **,ExceptionInfo *), + ResetImagePage(Image *,const char *), + ResetImagePixels(Image *,ExceptionInfo *), + SetImageAlpha(Image *,const Quantum,ExceptionInfo *), + SetImageBackgroundColor(Image *,ExceptionInfo *), + SetImageColor(Image *,const PixelInfo *,ExceptionInfo *), + SetImageExtent(Image *,const size_t,const size_t,ExceptionInfo *), + SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *), + SetImageMask(Image *,const PixelMask type,const Image *,ExceptionInfo *), + SetImageRegionMask(Image *,const PixelMask type,const RectangleInfo *, + ExceptionInfo *), + SetImageStorageClass(Image *,const ClassType,ExceptionInfo *), + StripImage(Image *,ExceptionInfo *), + SyncImage(Image *,ExceptionInfo *), + SyncImageSettings(const ImageInfo *,Image *,ExceptionInfo *), + SyncImagesSettings(ImageInfo *,Image *,ExceptionInfo *); + +extern MagickExport size_t + InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *, + ExceptionInfo *); + +extern MagickExport ssize_t + GetImageReferenceCount(Image *); + +extern MagickExport VirtualPixelMethod + GetImageVirtualPixelMethod(const Image *), + SetImageVirtualPixelMethod(Image *,const VirtualPixelMethod,ExceptionInfo *); + +extern MagickExport void + AcquireNextImage(const ImageInfo *,Image *,ExceptionInfo *), + DestroyImagePixels(Image *), + DisassociateImageStream(Image *), + GetImageInfo(ImageInfo *), + SetImageInfoBlob(ImageInfo *,const void *,const size_t), + SetImageInfoFile(ImageInfo *,FILE *), + SetImageInfoCustomStream(ImageInfo *,CustomStreamInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/layer.h b/include/ImageMagick-7/MagickCore/layer.h new file mode 100644 index 0000000..e5cbdc1 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/layer.h @@ -0,0 +1,76 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image layer methods. +*/ +#ifndef MAGICKCORE_LAYER_H +#define MAGICKCORE_LAYER_H + +#include "MagickCore/composite.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UnrecognizedDispose, + UndefinedDispose = 0, + NoneDispose = 1, + BackgroundDispose = 2, + PreviousDispose = 3 +} DisposeType; + +typedef enum +{ + UndefinedLayer, + CoalesceLayer, + CompareAnyLayer, + CompareClearLayer, + CompareOverlayLayer, + DisposeLayer, + OptimizeLayer, + OptimizeImageLayer, + OptimizePlusLayer, + OptimizeTransLayer, + RemoveDupsLayer, + RemoveZeroLayer, + CompositeLayer, + MergeLayer, + FlattenLayer, + MosaicLayer, + TrimBoundsLayer +} LayerMethod; + +extern MagickExport Image + *CoalesceImages(const Image *,ExceptionInfo *), + *DisposeImages(const Image *,ExceptionInfo *), + *CompareImagesLayers(const Image *,const LayerMethod,ExceptionInfo *), + *MergeImageLayers(Image *,const LayerMethod,ExceptionInfo *), + *OptimizeImageLayers(const Image *,ExceptionInfo *), + *OptimizePlusImageLayers(const Image *,ExceptionInfo *); + +extern MagickExport void + CompositeLayers(Image *,const CompositeOperator,Image *,const ssize_t, + const ssize_t,ExceptionInfo *), + OptimizeImageTransparency(const Image *,ExceptionInfo *), + RemoveDuplicateLayers(Image **,ExceptionInfo *), + RemoveZeroDelayLayers(Image **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/linked-list.h b/include/ImageMagick-7/MagickCore/linked-list.h new file mode 100644 index 0000000..1323e09 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/linked-list.h @@ -0,0 +1,57 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore linked list methods. +*/ +#ifndef MAGICKCORE_LINKED_LIST_H +#define MAGICKCORE_LINKED_LIST_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _LinkedListInfo + LinkedListInfo; + +extern MagickExport LinkedListInfo + *DestroyLinkedList(LinkedListInfo *,void *(*)(void *)), + *NewLinkedList(const size_t); + +extern MagickExport MagickBooleanType + AppendValueToLinkedList(LinkedListInfo *,const void *), + InsertValueInLinkedList(LinkedListInfo *,const size_t,const void *), + InsertValueInSortedLinkedList(LinkedListInfo *, + int (*)(const void *,const void *),void **,const void *), + IsLinkedListEmpty(const LinkedListInfo *), + LinkedListToArray(LinkedListInfo *,void **); + +extern MagickExport size_t + GetNumberOfElementsInLinkedList(const LinkedListInfo *); + +extern MagickExport void + ClearLinkedList(LinkedListInfo *,void *(*)(void *)), + *GetLastValueInLinkedList(LinkedListInfo *), + *GetNextValueInLinkedList(LinkedListInfo *), + *GetValueFromLinkedList(LinkedListInfo *,const size_t), + *RemoveElementByValueFromLinkedList(LinkedListInfo *,const void *), + *RemoveElementFromLinkedList(LinkedListInfo *,const size_t), + *RemoveLastElementFromLinkedList(LinkedListInfo *), + ResetLinkedListIterator(LinkedListInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/list.h b/include/ImageMagick-7/MagickCore/list.h new file mode 100644 index 0000000..bb29bba --- /dev/null +++ b/include/ImageMagick-7/MagickCore/list.h @@ -0,0 +1,65 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image list methods. +*/ +#ifndef MAGICKCORE_LIST_H +#define MAGICKCORE_LIST_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport Image + *CloneImageList(const Image *,ExceptionInfo *), + *CloneImages(const Image *,const char *,ExceptionInfo *), + *DestroyImageList(Image *), + *DuplicateImages(Image *,const size_t,const char *,ExceptionInfo *), + *GetFirstImageInList(const Image *), + *GetImageFromList(const Image *,const ssize_t), + *GetLastImageInList(const Image *), + *GetNextImageInList(const Image *), + *GetPreviousImageInList(const Image *), + **ImageListToArray(const Image *,ExceptionInfo *), + *NewImageList(void), + *RemoveImageFromList(Image **), + *RemoveLastImageFromList(Image **), + *RemoveFirstImageFromList(Image **), + *SpliceImageIntoList(Image **,const size_t,const Image *), + *SplitImageList(Image *), + *SyncNextImageInList(const Image *); + +extern MagickExport size_t + GetImageListLength(const Image *); + +extern MagickExport ssize_t + GetImageIndexInList(const Image *); + +extern MagickExport void + AppendImageToList(Image **,const Image *), + DeleteImageFromList(Image **), + DeleteImages(Image **,const char *,ExceptionInfo *), + InsertImageInList(Image **,Image *), + PrependImageToList(Image **,Image *), + ReplaceImageInList(Image **,Image *), + ReplaceImageInListReturnLast(Image **,Image *), + ReverseImageList(Image **), + SyncImageList(Image *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/locale_.h b/include/ImageMagick-7/MagickCore/locale_.h new file mode 100644 index 0000000..45c9e14 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/locale_.h @@ -0,0 +1,80 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore locale methods. +*/ +#ifndef MAGICKCORE_LOCALE_H +#define MAGICKCORE_LOCALE_H + +#include "MagickCore/linked-list.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _LocaleInfo +{ + char + *path, + *tag, + *message; + + MagickBooleanType + stealth; + + size_t + signature; +} LocaleInfo; + +extern MagickExport char + **GetLocaleList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport const char + *GetLocaleMessage(const char *); + +extern MagickExport const LocaleInfo + *GetLocaleInfo_(const char *,ExceptionInfo *), + **GetLocaleInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport double + InterpretLocaleValue(const char *magick_restrict,char **magick_restrict); + +extern MagickExport int + LocaleCompare(const char *,const char *), + LocaleNCompare(const char *,const char *,const size_t); + +extern MagickExport LinkedListInfo + *DestroyLocaleOptions(LinkedListInfo *), + *GetLocaleOptions(const char *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + ListLocaleInfo(FILE *,ExceptionInfo *); + +extern MagickExport ssize_t + FormatLocaleFile(FILE *,const char *magick_restrict,...) + magick_attribute((__format__ (__printf__,2,3))), + FormatLocaleString(char *magick_restrict,const size_t, + const char *magick_restrict,...) + magick_attribute((__format__ (__printf__,3,4))); + +extern MagickExport void + LocaleLower(char *), + LocaleUpper(char *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/log.h b/include/ImageMagick-7/MagickCore/log.h new file mode 100644 index 0000000..53f71a5 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/log.h @@ -0,0 +1,97 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore log methods. +*/ +#ifndef MAGICKCORE_LOG_H +#define MAGICKCORE_LOG_H + +#include "MagickCore/exception.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if !defined(GetMagickModule) +# define GetMagickModule() __FILE__,__func__,(unsigned long) __LINE__ +#endif + +#define MagickLogFilename "log.xml" + +typedef enum +{ + UndefinedEvents = 0x000000, + NoEvents = 0x00000, + AccelerateEvent = 0x00001, + AnnotateEvent = 0x00002, + BlobEvent = 0x00004, + CacheEvent = 0x00008, + CoderEvent = 0x00010, + ConfigureEvent = 0x00020, + DeprecateEvent = 0x00040, + DrawEvent = 0x00080, + ExceptionEvent = 0x00100, /* Log Errors and Warnings immediately */ + ImageEvent = 0x00200, + LocaleEvent = 0x00400, + ModuleEvent = 0x00800, /* Loding of coder and filter modules */ + PixelEvent = 0x01000, + PolicyEvent = 0x02000, + ResourceEvent = 0x04000, + TraceEvent = 0x08000, + TransformEvent = 0x10000, + UserEvent = 0x20000, + WandEvent = 0x40000, /* Log MagickWand */ + X11Event = 0x80000, + CommandEvent = 0x100000, /* Log Command Processing (CLI & Scripts) */ + AllEvents = 0x7fffffff +} LogEventType; + +typedef struct _LogInfo + LogInfo; + +typedef void + (*MagickLogMethod)(const LogEventType,const char *); + +extern MagickExport char + **GetLogList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport const char + *GetLogName(void), + *SetLogName(const char *); + +extern MagickExport const LogInfo + **GetLogInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport LogEventType + SetLogEventMask(const char *); + +extern MagickExport MagickBooleanType + IsEventLogging(void), + ListLogInfo(FILE *,ExceptionInfo *), + LogMagickEvent(const LogEventType,const char *,const char *,const size_t, + const char *,...) magick_attribute((__format__ (__printf__,5,6))), + LogMagickEventList(const LogEventType,const char *,const char *,const size_t, + const char *,va_list) magick_attribute((__format__ (__printf__,5,0))); + +extern MagickExport void + CloseMagickLog(void), + SetLogFormat(const char *), + SetLogMethod(MagickLogMethod); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/magic.h b/include/ImageMagick-7/MagickCore/magic.h new file mode 100644 index 0000000..ac8b670 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/magic.h @@ -0,0 +1,69 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore magic methods. +*/ +#ifndef MAGICKCORE_MAGIC_H +#define MAGICKCORE_MAGIC_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _MagicInfo +{ + char + *path, + *name, + *target; + + unsigned char + *magic; + + size_t + length; + + MagickOffsetType + offset; + + MagickBooleanType + exempt, + stealth; + + size_t + signature; +} MagicInfo; + +extern MagickExport char + **GetMagicList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport const char + *GetMagicName(const MagicInfo *); + +extern MagickExport MagickBooleanType + ListMagicInfo(FILE *,ExceptionInfo *); + +extern MagickExport const MagicInfo + *GetMagicInfo(const unsigned char *,const size_t,ExceptionInfo *), + **GetMagicInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport size_t + GetMagicPatternExtent(ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/magick-baseconfig.h b/include/ImageMagick-7/MagickCore/magick-baseconfig.h new file mode 100644 index 0000000..ed35eeb --- /dev/null +++ b/include/ImageMagick-7/MagickCore/magick-baseconfig.h @@ -0,0 +1,1678 @@ +#ifndef _MAGICKCORE_MAGICK_BASECONFIG_H +#define _MAGICKCORE_MAGICK_BASECONFIG_H 1 + +/* MagickCore/magick-baseconfig.h. Generated automatically at end of configure. */ +/* config/config.h. Generated from config.h.in by configure. */ +/* config/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* Define if you have AUTOTRACE library */ +/* #undef AUTOTRACE_DELEGATE */ + +/* Define if coders and filters are to be built as modules. */ +/* #undef BUILD_MODULES */ + +/* Define if you have the bzip2 library */ +#ifndef MAGICKCORE_BZLIB_DELEGATE +#define MAGICKCORE_BZLIB_DELEGATE 1 +#endif + +/* Define if you have CAIRO library */ +/* #undef CAIRO_DELEGATE */ + +/* permit enciphering and deciphering image pixels */ +#ifndef MAGICKCORE_CIPHER_SUPPORT +#define MAGICKCORE_CIPHER_SUPPORT 1 +#endif + +/* Define to 1 if the `closedir' function returns void instead of `int'. */ +/* #undef CLOSEDIR_VOID */ + +/* coders subdirectory. */ +#ifndef MAGICKCORE_CODER_DIRNAME +#define MAGICKCORE_CODER_DIRNAME "coders" +#endif + +/* Directory where architecture-dependent configuration files live. */ +#ifndef MAGICKCORE_CONFIGURE_PATH +#define MAGICKCORE_CONFIGURE_PATH "/root/package/etc/ImageMagick-7/" +#endif + +/* Subdirectory of lib where architecture-dependent configuration files live. + */ +#ifndef MAGICKCORE_CONFIGURE_RELATIVE_PATH +#define MAGICKCORE_CONFIGURE_RELATIVE_PATH "ImageMagick-7" +#endif + +/* Define if you have DJVU library */ +/* #undef DJVU_DELEGATE */ + +/* Directory where ImageMagick documents live. */ +#ifndef MAGICKCORE_DOCUMENTATION_PATH +#define MAGICKCORE_DOCUMENTATION_PATH "/root/package/share/doc/ImageMagick-7/" +#endif + +/* Define if you have Display Postscript */ +/* #undef DPS_DELEGATE */ + +/* exclude deprecated methods in MagickCore API */ +/* #undef EXCLUDE_DEPRECATED */ + +/* Directory where executables are installed. */ +#ifndef MAGICKCORE_EXECUTABLE_PATH +#define MAGICKCORE_EXECUTABLE_PATH "/root/package/bin/" +#endif + +/* Define if you have FFTW library */ +/* #undef FFTW_DELEGATE */ + +/* filter subdirectory. */ +#ifndef MAGICKCORE_FILTER_DIRNAME +#define MAGICKCORE_FILTER_DIRNAME "filters" +#endif + +/* Define if you have FLIF library */ +/* #undef FLIF_DELEGATE */ + +/* Define if you have FONTCONFIG library */ +#ifndef MAGICKCORE_FONTCONFIG_DELEGATE +#define MAGICKCORE_FONTCONFIG_DELEGATE 1 +#endif + +/* Define if you have FlashPIX library */ +/* #undef FPX_DELEGATE */ + +/* Define if you have FREETYPE library */ +#ifndef MAGICKCORE_FREETYPE_DELEGATE +#define MAGICKCORE_FREETYPE_DELEGATE 1 +#endif + +/* Define if you have Ghostscript library or framework */ +/* #undef GS_DELEGATE */ + +/* Define if you have GVC library */ +/* #undef GVC_DELEGATE */ + +/* Define to 1 if you have the `acosh' function. */ +#ifndef MAGICKCORE_HAVE_ACOSH +#define MAGICKCORE_HAVE_ACOSH 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ARM_LIMITS_H */ + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_ARPA_INET_H +#define MAGICKCORE_HAVE_ARPA_INET_H 1 +#endif + +/* Define to 1 if you have the `asinh' function. */ +#ifndef MAGICKCORE_HAVE_ASINH +#define MAGICKCORE_HAVE_ASINH 1 +#endif + +/* Define to 1 if you have the `atanh' function. */ +#ifndef MAGICKCORE_HAVE_ATANH +#define MAGICKCORE_HAVE_ATANH 1 +#endif + +/* Define to 1 if you have the `atexit' function. */ +#ifndef MAGICKCORE_HAVE_ATEXIT +#define MAGICKCORE_HAVE_ATEXIT 1 +#endif + +/* Define to 1 if you have the `atoll' function. */ +#ifndef MAGICKCORE_HAVE_ATOLL +#define MAGICKCORE_HAVE_ATOLL 1 +#endif + +/* define if bool is a built-in type */ +#ifndef MAGICKCORE_HAVE_BOOL +#define MAGICKCORE_HAVE_BOOL /**/ +#endif + +/* Define to 1 if you have the `cabs' function. */ +#ifndef MAGICKCORE_HAVE_CABS +#define MAGICKCORE_HAVE_CABS 1 +#endif + +/* Define to 1 if you have the `carg' function. */ +#ifndef MAGICKCORE_HAVE_CARG +#define MAGICKCORE_HAVE_CARG 1 +#endif + +/* Define to 1 if you have the `cimag' function. */ +#ifndef MAGICKCORE_HAVE_CIMAG +#define MAGICKCORE_HAVE_CIMAG 1 +#endif + +/* Define to 1 if you have the `clock' function. */ +#ifndef MAGICKCORE_HAVE_CLOCK +#define MAGICKCORE_HAVE_CLOCK 1 +#endif + +/* Define to 1 if you have the `clock_getres' function. */ +#ifndef MAGICKCORE_HAVE_CLOCK_GETRES +#define MAGICKCORE_HAVE_CLOCK_GETRES 1 +#endif + +/* Define to 1 if you have clock_gettime. */ +#ifndef MAGICKCORE_HAVE_CLOCK_GETTIME +#define MAGICKCORE_HAVE_CLOCK_GETTIME 1 +#endif + +/* Define to 1 if clock_gettime supports CLOCK_REALTIME. */ +#ifndef MAGICKCORE_HAVE_CLOCK_REALTIME +#define MAGICKCORE_HAVE_CLOCK_REALTIME 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CL_CL_H */ + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_COMPLEX_H +#define MAGICKCORE_HAVE_COMPLEX_H 1 +#endif + +/* Define to 1 if you have the `creal' function. */ +#ifndef MAGICKCORE_HAVE_CREAL +#define MAGICKCORE_HAVE_CREAL 1 +#endif + +/* Define to 1 if you have the `ctime_r' function. */ +#ifndef MAGICKCORE_HAVE_CTIME_R +#define MAGICKCORE_HAVE_CTIME_R 1 +#endif + +/* Define to 1 if you have the declaration of `pread', and to 0 if you don't. + */ +#ifndef MAGICKCORE_HAVE_DECL_PREAD +#define MAGICKCORE_HAVE_DECL_PREAD 1 +#endif + +/* Define to 1 if you have the declaration of `pwrite', and to 0 if you don't. + */ +#ifndef MAGICKCORE_HAVE_DECL_PWRITE +#define MAGICKCORE_HAVE_DECL_PWRITE 1 +#endif + +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +#ifndef MAGICKCORE_HAVE_DECL_STRERROR_R +#define MAGICKCORE_HAVE_DECL_STRERROR_R 1 +#endif + +/* Define to 1 if you have the declaration of `strlcpy', and to 0 if you + don't. */ +#ifndef MAGICKCORE_HAVE_DECL_STRLCPY +#define MAGICKCORE_HAVE_DECL_STRLCPY 0 +#endif + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +/* #undef HAVE_DECL_TZNAME */ + +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you + don't. */ +#ifndef MAGICKCORE_HAVE_DECL_VSNPRINTF +#define MAGICKCORE_HAVE_DECL_VSNPRINTF 1 +#endif + +/* Define to 1 if you have the `directio' function. */ +/* #undef HAVE_DIRECTIO */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#ifndef MAGICKCORE_HAVE_DIRENT_H +#define MAGICKCORE_HAVE_DIRENT_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_DLFCN_H +#define MAGICKCORE_HAVE_DLFCN_H 1 +#endif + +/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ +/* #undef HAVE_DOPRNT */ + +/* Define to 1 if the system has the type `double_t'. */ +#ifndef MAGICKCORE_HAVE_DOUBLE_T +#define MAGICKCORE_HAVE_DOUBLE_T 1 +#endif + +/* Define to 1 if you have the `erf' function. */ +#ifndef MAGICKCORE_HAVE_ERF +#define MAGICKCORE_HAVE_ERF 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_ERRNO_H +#define MAGICKCORE_HAVE_ERRNO_H 1 +#endif + +/* Define to 1 if you have the `execvp' function. */ +#ifndef MAGICKCORE_HAVE_EXECVP +#define MAGICKCORE_HAVE_EXECVP 1 +#endif + +/* Define to 1 if you have the `fchmod' function. */ +#ifndef MAGICKCORE_HAVE_FCHMOD +#define MAGICKCORE_HAVE_FCHMOD 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_FCNTL_H +#define MAGICKCORE_HAVE_FCNTL_H 1 +#endif + +/* Define to 1 if the system has the type `float_t'. */ +#ifndef MAGICKCORE_HAVE_FLOAT_T +#define MAGICKCORE_HAVE_FLOAT_T 1 +#endif + +/* Define to 1 if you have the `floor' function. */ +#ifndef MAGICKCORE_HAVE_FLOOR +#define MAGICKCORE_HAVE_FLOOR 1 +#endif + +/* Define to 1 if you have the `fork' function. */ +#ifndef MAGICKCORE_HAVE_FORK +#define MAGICKCORE_HAVE_FORK 1 +#endif + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#ifndef MAGICKCORE_HAVE_FSEEKO +#define MAGICKCORE_HAVE_FSEEKO 1 +#endif + +/* Define to 1 if you have the `ftime' function. */ +#ifndef MAGICKCORE_HAVE_FTIME +#define MAGICKCORE_HAVE_FTIME 1 +#endif + +/* Define to 1 if you have the `ftruncate' function. */ +#ifndef MAGICKCORE_HAVE_FTRUNCATE +#define MAGICKCORE_HAVE_FTRUNCATE 1 +#endif + +/* Define to 1 if you have the `getcwd' function. */ +#ifndef MAGICKCORE_HAVE_GETCWD +#define MAGICKCORE_HAVE_GETCWD 1 +#endif + +/* Define to 1 if you have the `getc_unlocked' function. */ +#ifndef MAGICKCORE_HAVE_GETC_UNLOCKED +#define MAGICKCORE_HAVE_GETC_UNLOCKED 1 +#endif + +/* Define to 1 if you have the `getdtablesize' function. */ +#ifndef MAGICKCORE_HAVE_GETDTABLESIZE +#define MAGICKCORE_HAVE_GETDTABLESIZE 1 +#endif + +/* Define to 1 if you have the `getexecname' function. */ +/* #undef HAVE_GETEXECNAME */ + +/* Define to 1 if you have the `getpagesize' function. */ +#ifndef MAGICKCORE_HAVE_GETPAGESIZE +#define MAGICKCORE_HAVE_GETPAGESIZE 1 +#endif + +/* Define to 1 if you have the `getpid' function. */ +#ifndef MAGICKCORE_HAVE_GETPID +#define MAGICKCORE_HAVE_GETPID 1 +#endif + +/* Define to 1 if you have the `getrlimit' function. */ +#ifndef MAGICKCORE_HAVE_GETRLIMIT +#define MAGICKCORE_HAVE_GETRLIMIT 1 +#endif + +/* Define to 1 if you have the `getrusage' function. */ +#ifndef MAGICKCORE_HAVE_GETRUSAGE +#define MAGICKCORE_HAVE_GETRUSAGE 1 +#endif + +/* Define to 1 if you have the `gettimeofday' function. */ +#ifndef MAGICKCORE_HAVE_GETTIMEOFDAY +#define MAGICKCORE_HAVE_GETTIMEOFDAY 1 +#endif + +/* Define to 1 if you have the `gmtime_r' function. */ +#ifndef MAGICKCORE_HAVE_GMTIME_R +#define MAGICKCORE_HAVE_GMTIME_R 1 +#endif + +/* Compile with hugepage support */ +/* #undef HAVE_HUGEPAGES */ + +/* Define to 1 if the system has the type `intmax_t'. */ +#ifndef MAGICKCORE_HAVE_INTMAX_T +#define MAGICKCORE_HAVE_INTMAX_T 1 +#endif + +/* Define to 1 if the system has the type `intptr_t'. */ +#ifndef MAGICKCORE_HAVE_INTPTR_T +#define MAGICKCORE_HAVE_INTPTR_T 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_INTTYPES_H +#define MAGICKCORE_HAVE_INTTYPES_H 1 +#endif + +/* Define to 1 if you have the `isnan' function. */ +#ifndef MAGICKCORE_HAVE_ISNAN +#define MAGICKCORE_HAVE_ISNAN 1 +#endif + +/* Define to 1 if you have the `j0' function. */ +#ifndef MAGICKCORE_HAVE_J0 +#define MAGICKCORE_HAVE_J0 1 +#endif + +/* Define to 1 if you have the `j1' function. */ +#ifndef MAGICKCORE_HAVE_J1 +#define MAGICKCORE_HAVE_J1 1 +#endif + +/* Define if you have the header file. */ +#ifndef MAGICKCORE_HAVE_LCMS2_H +#define MAGICKCORE_HAVE_LCMS2_H 1 +#endif + +/* Define if you have the header file. */ +/* #undef HAVE_LCMS2_LCMS2_H */ + +/* Define to 1 if you have the `gcov' library (-lgcov). */ +/* #undef HAVE_LIBGCOV */ + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_LIMITS_H +#define MAGICKCORE_HAVE_LIMITS_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_LINUX_UNISTD_H +#define MAGICKCORE_HAVE_LINUX_UNISTD_H 1 +#endif + +/* Define to 1 if you have the `lltostr' function. */ +/* #undef HAVE_LLTOSTR */ + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_LOCALE_H +#define MAGICKCORE_HAVE_LOCALE_H 1 +#endif + +/* Define to 1 if the system has the type `locale_t'. */ +/* #undef HAVE_LOCALE_T */ + +/* Define to 1 if you have the `localtime_r' function. */ +#ifndef MAGICKCORE_HAVE_LOCALTIME_R +#define MAGICKCORE_HAVE_LOCALTIME_R 1 +#endif + +/* Define to 1 if the system has the type `long double'. */ +#ifndef MAGICKCORE_HAVE_LONG_DOUBLE +#define MAGICKCORE_HAVE_LONG_DOUBLE 1 +#endif + +/* Define to 1 if the type `long double' works and has more range or precision + than `double'. */ +/* #undef HAVE_LONG_DOUBLE_WIDER */ + +/* Define to 1 if the system has the type `long long int'. */ +#ifndef MAGICKCORE_HAVE_LONG_LONG_INT +#define MAGICKCORE_HAVE_LONG_LONG_INT 1 +#endif + +/* Define to 1 if you have the `lstat' function. */ +#ifndef MAGICKCORE_HAVE_LSTAT +#define MAGICKCORE_HAVE_LSTAT 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACHINE_PARAM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACH_O_DYLD_H */ + +/* Define to 1 if declares mbstate_t. */ +#ifndef MAGICKCORE_HAVE_MBSTATE_T +#define MAGICKCORE_HAVE_MBSTATE_T 1 +#endif + +/* Define to 1 if you have the `memmove' function. */ +#ifndef MAGICKCORE_HAVE_MEMMOVE +#define MAGICKCORE_HAVE_MEMMOVE 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_MEMORY_H +#define MAGICKCORE_HAVE_MEMORY_H 1 +#endif + +/* Define to 1 if you have the `memset' function. */ +#ifndef MAGICKCORE_HAVE_MEMSET +#define MAGICKCORE_HAVE_MEMSET 1 +#endif + +/* Define to 1 if you have the `mkstemp' function. */ +#ifndef MAGICKCORE_HAVE_MKSTEMP +#define MAGICKCORE_HAVE_MKSTEMP 1 +#endif + +/* Define to 1 if you have a working `mmap' system call. */ +#ifndef MAGICKCORE_HAVE_MMAP +#define MAGICKCORE_HAVE_MMAP 1 +#endif + +/* Define to 1 if you have the `munmap' function. */ +#ifndef MAGICKCORE_HAVE_MUNMAP +#define MAGICKCORE_HAVE_MUNMAP 1 +#endif + +/* define if the compiler implements namespaces */ +#ifndef MAGICKCORE_HAVE_NAMESPACES +#define MAGICKCORE_HAVE_NAMESPACES /**/ +#endif + +/* Define if g++ supports namespace std. */ +#ifndef MAGICKCORE_HAVE_NAMESPACE_STD +#define MAGICKCORE_HAVE_NAMESPACE_STD /**/ +#endif + +/* Define to 1 if you have the `nanosleep' function. */ +#ifndef MAGICKCORE_HAVE_NANOSLEEP +#define MAGICKCORE_HAVE_NANOSLEEP 1 +#endif + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_NETINET_IN_H +#define MAGICKCORE_HAVE_NETINET_IN_H 1 +#endif + +/* Define to 1 if you have the `newlocale' function. */ +#ifndef MAGICKCORE_HAVE_NEWLOCALE +#define MAGICKCORE_HAVE_NEWLOCALE 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_OPENCL_CL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_OS_H */ + +/* Define to 1 if you have the `pclose' function. */ +#ifndef MAGICKCORE_HAVE_PCLOSE +#define MAGICKCORE_HAVE_PCLOSE 1 +#endif + +/* Define to 1 if you have the `poll' function. */ +#ifndef MAGICKCORE_HAVE_POLL +#define MAGICKCORE_HAVE_POLL 1 +#endif + +/* Define to 1 if you have the `popen' function. */ +#ifndef MAGICKCORE_HAVE_POPEN +#define MAGICKCORE_HAVE_POPEN 1 +#endif + +/* Define to 1 if you have the `posix_fadvise' function. */ +#ifndef MAGICKCORE_HAVE_POSIX_FADVISE +#define MAGICKCORE_HAVE_POSIX_FADVISE 1 +#endif + +/* Define to 1 if you have the `posix_fallocate' function. */ +#ifndef MAGICKCORE_HAVE_POSIX_FALLOCATE +#define MAGICKCORE_HAVE_POSIX_FALLOCATE 1 +#endif + +/* Define to 1 if you have the `posix_madvise' function. */ +#ifndef MAGICKCORE_HAVE_POSIX_MADVISE +#define MAGICKCORE_HAVE_POSIX_MADVISE 1 +#endif + +/* Define to 1 if you have the `posix_memalign' function. */ +#ifndef MAGICKCORE_HAVE_POSIX_MEMALIGN +#define MAGICKCORE_HAVE_POSIX_MEMALIGN 1 +#endif + +/* Define to 1 if you have the `posix_spawnp' function. */ +#ifndef MAGICKCORE_HAVE_POSIX_SPAWNP +#define MAGICKCORE_HAVE_POSIX_SPAWNP 1 +#endif + +/* Define to 1 if you have the `pow' function. */ +#ifndef MAGICKCORE_HAVE_POW +#define MAGICKCORE_HAVE_POW 1 +#endif + +/* Define to 1 if you have the `pread' function. */ +#ifndef MAGICKCORE_HAVE_PREAD +#define MAGICKCORE_HAVE_PREAD 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define if you have POSIX threads libraries and header files. */ +#ifndef MAGICKCORE_HAVE_PTHREAD +#define MAGICKCORE_HAVE_PTHREAD 1 +#endif + +/* Have PTHREAD_PRIO_INHERIT. */ +#ifndef MAGICKCORE_HAVE_PTHREAD_PRIO_INHERIT +#define MAGICKCORE_HAVE_PTHREAD_PRIO_INHERIT 1 +#endif + +/* Define to 1 if you have the `pwrite' function. */ +#ifndef MAGICKCORE_HAVE_PWRITE +#define MAGICKCORE_HAVE_PWRITE 1 +#endif + +/* Define to 1 if you have the `qsort_r' function. */ +#ifndef MAGICKCORE_HAVE_QSORT_R +#define MAGICKCORE_HAVE_QSORT_R 1 +#endif + +/* Define to 1 if you have the `raise' function. */ +#ifndef MAGICKCORE_HAVE_RAISE +#define MAGICKCORE_HAVE_RAISE 1 +#endif + +/* Define to 1 if you have the `rand_r' function. */ +#ifndef MAGICKCORE_HAVE_RAND_R +#define MAGICKCORE_HAVE_RAND_R 1 +#endif + +/* Define to 1 if you have the `readlink' function. */ +#ifndef MAGICKCORE_HAVE_READLINK +#define MAGICKCORE_HAVE_READLINK 1 +#endif + +/* Define to 1 if you have the `realpath' function. */ +#ifndef MAGICKCORE_HAVE_REALPATH +#define MAGICKCORE_HAVE_REALPATH 1 +#endif + +/* Define to 1 if you have the `seekdir' function. */ +#ifndef MAGICKCORE_HAVE_SEEKDIR +#define MAGICKCORE_HAVE_SEEKDIR 1 +#endif + +/* Define to 1 if you have the `select' function. */ +#ifndef MAGICKCORE_HAVE_SELECT +#define MAGICKCORE_HAVE_SELECT 1 +#endif + +/* Define to 1 if you have the `sendfile' function. */ +#ifndef MAGICKCORE_HAVE_SENDFILE +#define MAGICKCORE_HAVE_SENDFILE 1 +#endif + +/* Define to 1 if you have the `setlocale' function. */ +#ifndef MAGICKCORE_HAVE_SETLOCALE +#define MAGICKCORE_HAVE_SETLOCALE 1 +#endif + +/* Define to 1 if you have the `setvbuf' function. */ +#ifndef MAGICKCORE_HAVE_SETVBUF +#define MAGICKCORE_HAVE_SETVBUF 1 +#endif + +/* X11 server supports shape extension */ +#ifndef MAGICKCORE_HAVE_SHAPE +#define MAGICKCORE_HAVE_SHAPE 1 +#endif + +/* X11 server supports shared memory extension */ +#ifndef MAGICKCORE_HAVE_SHARED_MEMORY +#define MAGICKCORE_HAVE_SHARED_MEMORY 1 +#endif + +/* Define to 1 if you have the `sigaction' function. */ +#ifndef MAGICKCORE_HAVE_SIGACTION +#define MAGICKCORE_HAVE_SIGACTION 1 +#endif + +/* Define to 1 if you have the `sigemptyset' function. */ +#ifndef MAGICKCORE_HAVE_SIGEMPTYSET +#define MAGICKCORE_HAVE_SIGEMPTYSET 1 +#endif + +/* Define to 1 if you have the `socket' function. */ +#ifndef MAGICKCORE_HAVE_SOCKET +#define MAGICKCORE_HAVE_SOCKET 1 +#endif + +/* Define to 1 if you have the `spawnvp' function. */ +/* #undef HAVE_SPAWNVP */ + +/* Define to 1 if you have the `sqrt' function. */ +#ifndef MAGICKCORE_HAVE_SQRT +#define MAGICKCORE_HAVE_SQRT 1 +#endif + +/* Define to 1 if you have the `stat' function. */ +#ifndef MAGICKCORE_HAVE_STAT +#define MAGICKCORE_HAVE_STAT 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_STDARG_H +#define MAGICKCORE_HAVE_STDARG_H 1 +#endif + +/* Define to 1 if stdbool.h conforms to C99. */ +#ifndef MAGICKCORE_HAVE_STDBOOL_H +#define MAGICKCORE_HAVE_STDBOOL_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_STDINT_H +#define MAGICKCORE_HAVE_STDINT_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_STDLIB_H +#define MAGICKCORE_HAVE_STDLIB_H 1 +#endif + +/* define if the compiler supports ISO C++ standard library */ +#ifndef MAGICKCORE_HAVE_STD_LIBS +#define MAGICKCORE_HAVE_STD_LIBS /**/ +#endif + +/* Define to 1 if you have the `strcasecmp' function. */ +#ifndef MAGICKCORE_HAVE_STRCASECMP +#define MAGICKCORE_HAVE_STRCASECMP 1 +#endif + +/* Define to 1 if you have the `strchr' function. */ +#ifndef MAGICKCORE_HAVE_STRCHR +#define MAGICKCORE_HAVE_STRCHR 1 +#endif + +/* Define to 1 if you have the `strcspn' function. */ +#ifndef MAGICKCORE_HAVE_STRCSPN +#define MAGICKCORE_HAVE_STRCSPN 1 +#endif + +/* Define to 1 if you have the `strdup' function. */ +#ifndef MAGICKCORE_HAVE_STRDUP +#define MAGICKCORE_HAVE_STRDUP 1 +#endif + +/* Define to 1 if you have the `strerror' function. */ +#ifndef MAGICKCORE_HAVE_STRERROR +#define MAGICKCORE_HAVE_STRERROR 1 +#endif + +/* Define to 1 if you have the `strerror_r' function. */ +#ifndef MAGICKCORE_HAVE_STRERROR_R +#define MAGICKCORE_HAVE_STRERROR_R 1 +#endif + +/* Define to 1 if cpp supports the ANSI # stringizing operator. */ +#ifndef MAGICKCORE_HAVE_STRINGIZE +#define MAGICKCORE_HAVE_STRINGIZE 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_STRINGS_H +#define MAGICKCORE_HAVE_STRINGS_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_STRING_H +#define MAGICKCORE_HAVE_STRING_H 1 +#endif + +/* Define to 1 if you have the `strlcat' function. */ +/* #undef HAVE_STRLCAT */ + +/* Define to 1 if you have the `strlcpy' function. */ +/* #undef HAVE_STRLCPY */ + +/* Define to 1 if you have the `strncasecmp' function. */ +#ifndef MAGICKCORE_HAVE_STRNCASECMP +#define MAGICKCORE_HAVE_STRNCASECMP 1 +#endif + +/* Define to 1 if you have the `strpbrk' function. */ +#ifndef MAGICKCORE_HAVE_STRPBRK +#define MAGICKCORE_HAVE_STRPBRK 1 +#endif + +/* Define to 1 if you have the `strrchr' function. */ +#ifndef MAGICKCORE_HAVE_STRRCHR +#define MAGICKCORE_HAVE_STRRCHR 1 +#endif + +/* Define to 1 if you have the `strspn' function. */ +#ifndef MAGICKCORE_HAVE_STRSPN +#define MAGICKCORE_HAVE_STRSPN 1 +#endif + +/* Define to 1 if you have the `strstr' function. */ +#ifndef MAGICKCORE_HAVE_STRSTR +#define MAGICKCORE_HAVE_STRSTR 1 +#endif + +/* Define to 1 if you have the `strtod' function. */ +#ifndef MAGICKCORE_HAVE_STRTOD +#define MAGICKCORE_HAVE_STRTOD 1 +#endif + +/* Define to 1 if you have the `strtod_l' function. */ +#ifndef MAGICKCORE_HAVE_STRTOD_L +#define MAGICKCORE_HAVE_STRTOD_L 1 +#endif + +/* Define to 1 if you have the `strtol' function. */ +#ifndef MAGICKCORE_HAVE_STRTOL +#define MAGICKCORE_HAVE_STRTOL 1 +#endif + +/* Define to 1 if you have the `strtoul' function. */ +#ifndef MAGICKCORE_HAVE_STRTOUL +#define MAGICKCORE_HAVE_STRTOUL 1 +#endif + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#ifndef MAGICKCORE_HAVE_STRUCT_TM_TM_ZONE +#define MAGICKCORE_HAVE_STRUCT_TM_TM_ZONE 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SUN_PREFETCH_H */ + +/* Define to 1 if you have the `symlink' function. */ +#ifndef MAGICKCORE_HAVE_SYMLINK +#define MAGICKCORE_HAVE_SYMLINK 1 +#endif + +/* Define to 1 if you have the `sysconf' function. */ +#ifndef MAGICKCORE_HAVE_SYSCONF +#define MAGICKCORE_HAVE_SYSCONF 1 +#endif + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_IPC_H +#define MAGICKCORE_HAVE_SYS_IPC_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_MMAN_H +#define MAGICKCORE_HAVE_SYS_MMAN_H 1 +#endif + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_PARAM_H +#define MAGICKCORE_HAVE_SYS_PARAM_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_RESOURCE_H +#define MAGICKCORE_HAVE_SYS_RESOURCE_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_SELECT_H +#define MAGICKCORE_HAVE_SYS_SELECT_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_SENDFILE_H +#define MAGICKCORE_HAVE_SYS_SENDFILE_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_SOCKET_H +#define MAGICKCORE_HAVE_SYS_SOCKET_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_STAT_H +#define MAGICKCORE_HAVE_SYS_STAT_H 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSLIMITS_H */ + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_TIMEB_H +#define MAGICKCORE_HAVE_SYS_TIMEB_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_TIMES_H +#define MAGICKCORE_HAVE_SYS_TIMES_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_TIME_H +#define MAGICKCORE_HAVE_SYS_TIME_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_TYPES_H +#define MAGICKCORE_HAVE_SYS_TYPES_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_SYS_WAIT_H +#define MAGICKCORE_HAVE_SYS_WAIT_H 1 +#endif + +/* Define to 1 if you have the `telldir' function. */ +#ifndef MAGICKCORE_HAVE_TELLDIR +#define MAGICKCORE_HAVE_TELLDIR 1 +#endif + +/* Define to 1 if you have the `tempnam' function. */ +#ifndef MAGICKCORE_HAVE_TEMPNAM +#define MAGICKCORE_HAVE_TEMPNAM 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_TIFFCONF_H +#define MAGICKCORE_HAVE_TIFFCONF_H 1 +#endif + +/* Define to 1 if you have the `TIFFIsBigEndian' function. */ +#ifndef MAGICKCORE_HAVE_TIFFISBIGENDIAN +#define MAGICKCORE_HAVE_TIFFISBIGENDIAN 1 +#endif + +/* Define to 1 if you have the `TIFFIsCODECConfigured' function. */ +#ifndef MAGICKCORE_HAVE_TIFFISCODECCONFIGURED +#define MAGICKCORE_HAVE_TIFFISCODECCONFIGURED 1 +#endif + +/* Define to 1 if you have the `TIFFMergeFieldInfo' function. */ +#ifndef MAGICKCORE_HAVE_TIFFMERGEFIELDINFO +#define MAGICKCORE_HAVE_TIFFMERGEFIELDINFO 1 +#endif + +/* Define to 1 if you have the `TIFFReadEXIFDirectory' function. */ +#ifndef MAGICKCORE_HAVE_TIFFREADEXIFDIRECTORY +#define MAGICKCORE_HAVE_TIFFREADEXIFDIRECTORY 1 +#endif + +/* Define to 1 if you have the `TIFFSetErrorHandlerExt' function. */ +#ifndef MAGICKCORE_HAVE_TIFFSETERRORHANDLEREXT +#define MAGICKCORE_HAVE_TIFFSETERRORHANDLEREXT 1 +#endif + +/* Define to 1 if you have the `TIFFSetTagExtender' function. */ +#ifndef MAGICKCORE_HAVE_TIFFSETTAGEXTENDER +#define MAGICKCORE_HAVE_TIFFSETTAGEXTENDER 1 +#endif + +/* Define to 1 if you have the `TIFFSetWarningHandlerExt' function. */ +#ifndef MAGICKCORE_HAVE_TIFFSETWARNINGHANDLEREXT +#define MAGICKCORE_HAVE_TIFFSETWARNINGHANDLEREXT 1 +#endif + +/* Define to 1 if you have the `TIFFSwabArrayOfTriples' function. */ +#ifndef MAGICKCORE_HAVE_TIFFSWABARRAYOFTRIPLES +#define MAGICKCORE_HAVE_TIFFSWABARRAYOFTRIPLES 1 +#endif + +/* Define to 1 if you have the `times' function. */ +#ifndef MAGICKCORE_HAVE_TIMES +#define MAGICKCORE_HAVE_TIMES 1 +#endif + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +#ifndef MAGICKCORE_HAVE_TM_ZONE +#define MAGICKCORE_HAVE_TM_ZONE 1 +#endif + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if the system has the type `uintmax_t'. */ +#ifndef MAGICKCORE_HAVE_UINTMAX_T +#define MAGICKCORE_HAVE_UINTMAX_T 1 +#endif + +/* Define to 1 if the system has the type `uintptr_t'. */ +#ifndef MAGICKCORE_HAVE_UINTPTR_T +#define MAGICKCORE_HAVE_UINTPTR_T 1 +#endif + +/* Define to 1 if you have the `ulltostr' function. */ +/* #undef HAVE_ULLTOSTR */ + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_UNISTD_H +#define MAGICKCORE_HAVE_UNISTD_H 1 +#endif + +/* Define to 1 if the system has the type `unsigned long long int'. */ +#ifndef MAGICKCORE_HAVE_UNSIGNED_LONG_LONG_INT +#define MAGICKCORE_HAVE_UNSIGNED_LONG_LONG_INT 1 +#endif + +/* Define to 1 if you have the `uselocale' function. */ +#ifndef MAGICKCORE_HAVE_USELOCALE +#define MAGICKCORE_HAVE_USELOCALE 1 +#endif + +/* Define to 1 if you have the `usleep' function. */ +#ifndef MAGICKCORE_HAVE_USLEEP +#define MAGICKCORE_HAVE_USLEEP 1 +#endif + +/* Define to 1 if you have the `utime' function. */ +#ifndef MAGICKCORE_HAVE_UTIME +#define MAGICKCORE_HAVE_UTIME 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_UTIME_H +#define MAGICKCORE_HAVE_UTIME_H 1 +#endif + +/* Define to 1 if you have the `vfork' function. */ +#ifndef MAGICKCORE_HAVE_VFORK +#define MAGICKCORE_HAVE_VFORK 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_VFORK_H */ + +/* Define to 1 if you have the `vfprintf' function. */ +#ifndef MAGICKCORE_HAVE_VFPRINTF +#define MAGICKCORE_HAVE_VFPRINTF 1 +#endif + +/* Define to 1 if you have the `vfprintf_l' function. */ +/* #undef HAVE_VFPRINTF_L */ + +/* Define to 1 if you have the `vprintf' function. */ +#ifndef MAGICKCORE_HAVE_VPRINTF +#define MAGICKCORE_HAVE_VPRINTF 1 +#endif + +/* Define to 1 if you have the `vsnprintf' function. */ +#ifndef MAGICKCORE_HAVE_VSNPRINTF +#define MAGICKCORE_HAVE_VSNPRINTF 1 +#endif + +/* Define to 1 if you have the `vsnprintf_l' function. */ +/* #undef HAVE_VSNPRINTF_L */ + +/* Define to 1 if you have the `vsprintf' function. */ +#ifndef MAGICKCORE_HAVE_VSPRINTF +#define MAGICKCORE_HAVE_VSPRINTF 1 +#endif + +/* Define to 1 if you have the `waitpid' function. */ +#ifndef MAGICKCORE_HAVE_WAITPID +#define MAGICKCORE_HAVE_WAITPID 1 +#endif + +/* Define to 1 if you have the header file. */ +#ifndef MAGICKCORE_HAVE_WCHAR_H +#define MAGICKCORE_HAVE_WCHAR_H 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WINDOWS_H */ + +/* Define to 1 if `fork' works. */ +#ifndef MAGICKCORE_HAVE_WORKING_FORK +#define MAGICKCORE_HAVE_WORKING_FORK 1 +#endif + +/* Define to 1 if `vfork' works. */ +#ifndef MAGICKCORE_HAVE_WORKING_VFORK +#define MAGICKCORE_HAVE_WORKING_VFORK 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_XLOCALE_H */ + +/* Define to 1 if you have the `_aligned_malloc' function. */ +/* #undef HAVE__ALIGNED_MALLOC */ + +/* Define to 1 if the system has the type `_Bool'. */ +#ifndef MAGICKCORE_HAVE__BOOL +#define MAGICKCORE_HAVE__BOOL 1 +#endif + +/* Define to 1 if you have the `_exit' function. */ +#ifndef MAGICKCORE_HAVE__EXIT +#define MAGICKCORE_HAVE__EXIT 1 +#endif + +/* Define to 1 if you have the `_NSGetExecutablePath' function. */ +/* #undef HAVE__NSGETEXECUTABLEPATH */ + +/* Define to 1 if you have the `_pclose' function. */ +/* #undef HAVE__PCLOSE */ + +/* Define to 1 if you have the `_popen' function. */ +/* #undef HAVE__POPEN */ + +/* Define to 1 if you have the `_wfopen' function. */ +/* #undef HAVE__WFOPEN */ + +/* Define to 1 if you have the `_wstat' function. */ +/* #undef HAVE__WSTAT */ + +/* define if your compiler has __attribute__ */ +#ifndef MAGICKCORE_HAVE___ATTRIBUTE__ +#define MAGICKCORE_HAVE___ATTRIBUTE__ 1 +#endif + +/* Whether hdri is enabled or not */ +#ifndef MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H +#define MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H 1 +#endif + +/* Define if you have libheif library */ +/* #undef HEIC_DELEGATE */ + +/* Define if you have jemalloc memory allocation library */ +/* #undef HasJEMALLOC */ + +/* Define if you have umem memory allocation library */ +/* #undef HasUMEM */ + +/* Directory where ImageMagick architecture headers live. */ +#ifndef MAGICKCORE_INCLUDEARCH_PATH +#define MAGICKCORE_INCLUDEARCH_PATH "/root/package/include/ImageMagick-7/" +#endif + +/* Directory where ImageMagick headers live. */ +#ifndef MAGICKCORE_INCLUDE_PATH +#define MAGICKCORE_INCLUDE_PATH "/root/package/include/ImageMagick-7/" +#endif + +/* ImageMagick is formally installed under prefix */ +#ifndef MAGICKCORE_INSTALLED_SUPPORT +#define MAGICKCORE_INSTALLED_SUPPORT 1 +#endif + +/* Define if you have JBIG library */ +/* #undef JBIG_DELEGATE */ + +/* Define if you have JPEG library */ +#ifndef MAGICKCORE_JPEG_DELEGATE +#define MAGICKCORE_JPEG_DELEGATE 1 +#endif + +/* Define if you have LCMS library */ +#ifndef MAGICKCORE_LCMS_DELEGATE +#define MAGICKCORE_LCMS_DELEGATE 1 +#endif + +/* Define if you have OPENJP2 library */ +/* #undef LIBOPENJP2_DELEGATE */ + +/* Directory where architecture-dependent files live. */ +#ifndef MAGICKCORE_LIBRARY_PATH +#define MAGICKCORE_LIBRARY_PATH "/root/package/lib/ImageMagick-7.0.7/" +#endif + +/* Subdirectory of lib where ImageMagick architecture dependent files are + installed. */ +#ifndef MAGICKCORE_LIBRARY_RELATIVE_PATH +#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-7.0.7" +#endif + +/* Binaries in libraries path base name (will be during install linked to bin) + */ +#ifndef MAGICKCORE_LIB_BIN_BASEDIRNAME +#define MAGICKCORE_LIB_BIN_BASEDIRNAME "bin" +#endif + +/* Define if you have LQR library */ +#ifndef MAGICKCORE_LQR_DELEGATE +#define MAGICKCORE_LQR_DELEGATE 1 +#endif + +/* Define if using libltdl to support dynamically loadable modules and OpenCL + */ +/* #undef LTDL_DELEGATE */ + +/* Native module suffix */ +/* #undef LTDL_MODULE_EXT */ + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#ifndef MAGICKCORE_LT_OBJDIR +#define MAGICKCORE_LT_OBJDIR ".libs/" +#endif + +/* Define if you have LZMA library */ +#ifndef MAGICKCORE_LZMA_DELEGATE +#define MAGICKCORE_LZMA_DELEGATE 1 +#endif + +/* Define to prepend to default font search path. */ +/* #undef MAGICK_FONT_PATH */ + +/* Target Host CPU */ +#ifndef MAGICKCORE_MAGICK_TARGET_CPU +#define MAGICKCORE_MAGICK_TARGET_CPU armv6l +#endif + +/* Target Host OS */ +#ifndef MAGICKCORE_MAGICK_TARGET_OS +#define MAGICKCORE_MAGICK_TARGET_OS linux-gnueabihf +#endif + +/* Target Host Vendor */ +#ifndef MAGICKCORE_MAGICK_TARGET_VENDOR +#define MAGICKCORE_MAGICK_TARGET_VENDOR unknown +#endif + +/* Module directory name without ABI part. */ +#ifndef MAGICKCORE_MODULES_BASEDIRNAME +#define MAGICKCORE_MODULES_BASEDIRNAME "modules" +#endif + +/* Module directory dirname */ +/* #undef MODULES_DIRNAME */ + +/* Magick API method prefix */ +/* #undef NAMESPACE_PREFIX */ + +/* Magick API method prefix tag */ +/* #undef NAMESPACE_PREFIX_TAG */ + +/* Define to 1 if assertions should be disabled. */ +/* #undef NDEBUG */ + +/* Define if you have OPENEXR library */ +/* #undef OPENEXR_DELEGATE */ + +/* Name of package */ +#ifndef MAGICKCORE_PACKAGE +#define MAGICKCORE_PACKAGE "ImageMagick" +#endif + +/* Define to the address where bug reports for this package should be sent. */ +#ifndef MAGICKCORE_PACKAGE_BUGREPORT +#define MAGICKCORE_PACKAGE_BUGREPORT "https://github.com/ImageMagick/ImageMagick/issues" +#endif + +/* Define to the full name of this package. */ +#ifndef MAGICKCORE_PACKAGE_NAME +#define MAGICKCORE_PACKAGE_NAME "ImageMagick" +#endif + +/* Define to the full name and version of this package. */ +#ifndef MAGICKCORE_PACKAGE_STRING +#define MAGICKCORE_PACKAGE_STRING "ImageMagick 7.0.7-35" +#endif + +/* Define to the one symbol short name of this package. */ +#ifndef MAGICKCORE_PACKAGE_TARNAME +#define MAGICKCORE_PACKAGE_TARNAME "ImageMagick" +#endif + +/* Define to the home page for this package. */ +#ifndef MAGICKCORE_PACKAGE_URL +#define MAGICKCORE_PACKAGE_URL "https://www.imagemagick.org" +#endif + +/* Define to the version of this package. */ +#ifndef MAGICKCORE_PACKAGE_VERSION +#define MAGICKCORE_PACKAGE_VERSION "7.0.7-35" +#endif + +/* Define if you have PANGOCAIRO library */ +/* #undef PANGOCAIRO_DELEGATE */ + +/* Define if you have PANGO library */ +/* #undef PANGO_DELEGATE */ + +/* enable pipes (|) in filenames */ +/* #undef PIPES_SUPPORT */ + +/* Define if you have PNG library */ +#ifndef MAGICKCORE_PNG_DELEGATE +#define MAGICKCORE_PNG_DELEGATE 1 +#endif + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +/* #undef PTHREAD_CREATE_JOINABLE */ + +/* Pixel cache threshold in MB (defaults to available memory) */ +/* #undef PixelCacheThreshold */ + +/* Number of bits in a pixel Quantum (8/16/32/64) */ +#ifndef MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H +#define MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H 16 +#endif + +/* Define if you have RAQM library */ +#ifndef MAGICKCORE_RAQM_DELEGATE +#define MAGICKCORE_RAQM_DELEGATE 1 +#endif + +/* Define if you have LIBRAW library */ +/* #undef RAW_R_DELEGATE */ + +/* Define as the return type of signal handlers (`int' or `void'). */ +#ifndef MAGICKCORE_RETSIGTYPE +#define MAGICKCORE_RETSIGTYPE void +#endif + +/* Define if you have RSVG library */ +/* #undef RSVG_DELEGATE */ + +/* Define to the type of arg 1 for `select'. */ +#ifndef MAGICKCORE_SELECT_TYPE_ARG1 +#define MAGICKCORE_SELECT_TYPE_ARG1 int +#endif + +/* Define to the type of args 2, 3 and 4 for `select'. */ +#ifndef MAGICKCORE_SELECT_TYPE_ARG234 +#define MAGICKCORE_SELECT_TYPE_ARG234 (fd_set *) +#endif + +/* Define to the type of arg 5 for `select'. */ +#ifndef MAGICKCORE_SELECT_TYPE_ARG5 +#define MAGICKCORE_SELECT_TYPE_ARG5 (struct timeval *) +#endif + +/* Sharearch directory name without ABI part. */ +#ifndef MAGICKCORE_SHAREARCH_BASEDIRNAME +#define MAGICKCORE_SHAREARCH_BASEDIRNAME "config" +#endif + +/* Sharearch directory dirname */ +/* #undef SHAREARCH_DIRNAME */ + +/* Directory where architecture-independent configuration files live. */ +#ifndef MAGICKCORE_SHARE_PATH +#define MAGICKCORE_SHARE_PATH "/root/package/share/ImageMagick-7/" +#endif + +/* Subdirectory of lib where architecture-independent configuration files + live. */ +#ifndef MAGICKCORE_SHARE_RELATIVE_PATH +#define MAGICKCORE_SHARE_RELATIVE_PATH "ImageMagick-7" +#endif + +/* The size of `double', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_DOUBLE +#define MAGICKCORE_SIZEOF_DOUBLE 8 +#endif + +/* The size of `double_t', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_DOUBLE_T +#define MAGICKCORE_SIZEOF_DOUBLE_T 8 +#endif + +/* The size of `float', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_FLOAT +#define MAGICKCORE_SIZEOF_FLOAT 4 +#endif + +/* The size of `float_t', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_FLOAT_T +#define MAGICKCORE_SIZEOF_FLOAT_T 4 +#endif + +/* The size of `long double', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_LONG_DOUBLE +#define MAGICKCORE_SIZEOF_LONG_DOUBLE 8 +#endif + +/* The size of `off_t', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_OFF_T +#define MAGICKCORE_SIZEOF_OFF_T 8 +#endif + +/* The size of `signed int', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_SIGNED_INT +#define MAGICKCORE_SIZEOF_SIGNED_INT 4 +#endif + +/* The size of `signed long', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG +#define MAGICKCORE_SIZEOF_SIGNED_LONG 4 +#endif + +/* The size of `signed long long', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG_LONG +#define MAGICKCORE_SIZEOF_SIGNED_LONG_LONG 8 +#endif + +/* The size of `signed short', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_SIGNED_SHORT +#define MAGICKCORE_SIZEOF_SIGNED_SHORT 2 +#endif + +/* The size of `size_t', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_SIZE_T +#define MAGICKCORE_SIZEOF_SIZE_T 4 +#endif + +/* The size of `ssize_t', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_SSIZE_T +#define MAGICKCORE_SIZEOF_SSIZE_T 4 +#endif + +/* The size of `unsigned int', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INT +#define MAGICKCORE_SIZEOF_UNSIGNED_INT 4 +#endif + +/* The size of `unsigned int*', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INTP +#define MAGICKCORE_SIZEOF_UNSIGNED_INTP 4 +#endif + +/* The size of `unsigned long', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG +#define MAGICKCORE_SIZEOF_UNSIGNED_LONG 4 +#endif + +/* The size of `unsigned long long', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG +#define MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG 8 +#endif + +/* The size of `unsigned short', as computed by sizeof. */ +#ifndef MAGICKCORE_SIZEOF_UNSIGNED_SHORT +#define MAGICKCORE_SIZEOF_UNSIGNED_SHORT 2 +#endif + +/* Define to 1 if the `S_IS*' macros in do not work properly. */ +/* #undef STAT_MACROS_BROKEN */ + +/* Define to 1 if you have the ANSI C header files. */ +#ifndef MAGICKCORE_STDC_HEADERS +#define MAGICKCORE_STDC_HEADERS 1 +#endif + +/* Define to 1 if strerror_r returns char *. */ +#ifndef MAGICKCORE_STRERROR_R_CHAR_P +#define MAGICKCORE_STRERROR_R_CHAR_P 1 +#endif + +/* Define if you have POSIX threads libraries and header files. */ +#ifndef MAGICKCORE_THREAD_SUPPORT +#define MAGICKCORE_THREAD_SUPPORT 1 +#endif + +/* Define if you have TIFF library */ +#ifndef MAGICKCORE_TIFF_DELEGATE +#define MAGICKCORE_TIFF_DELEGATE 1 +#endif + +/* Define to 1 if you can safely include both and . */ +#ifndef MAGICKCORE_TIME_WITH_SYS_TIME +#define MAGICKCORE_TIME_WITH_SYS_TIME 1 +#endif + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Version number of package */ +#ifndef MAGICKCORE_VERSION +#define MAGICKCORE_VERSION "7.0.7-35" +#endif + +/* Define if you have WEBPMUX library */ +/* #undef WEBPMUX_DELEGATE */ + +/* Define if you have WEBP library */ +/* #undef WEBP_DELEGATE */ + +/* Define to use the Windows GDI32 library */ +/* #undef WINGDI32_DELEGATE */ + +/* Define if using the dmalloc debugging malloc package */ +/* #undef WITH_DMALLOC */ + +/* Define if you have WMF library */ +/* #undef WMF_DELEGATE */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Location of X11 configure files */ +#ifndef MAGICKCORE_X11_CONFIGURE_PATH +#define MAGICKCORE_X11_CONFIGURE_PATH "" +#endif + +/* Define if you have X11 library */ +#ifndef MAGICKCORE_X11_DELEGATE +#define MAGICKCORE_X11_DELEGATE 1 +#endif + +/* Define if you have XML library */ +#ifndef MAGICKCORE_XML_DELEGATE +#define MAGICKCORE_XML_DELEGATE 1 +#endif + +/* Define to 1 if the X Window System is missing or not being used. */ +/* #undef X_DISPLAY_MISSING */ + +/* Build self-contained, embeddable, zero-configuration ImageMagick */ +/* #undef ZERO_CONFIGURATION_SUPPORT */ + +/* Define if you have ZLIB library */ +#ifndef MAGICKCORE_ZLIB_DELEGATE +#define MAGICKCORE_ZLIB_DELEGATE 1 +#endif + +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +#ifndef MAGICKCORE__FILE_OFFSET_BITS +#define MAGICKCORE__FILE_OFFSET_BITS 64 +#endif + +/* enable run-time bounds-checking */ +/* #undef _FORTIFY_SOURCE */ + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* #undef _LARGEFILE_SOURCE */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define this for the OpenCL Accelerator */ +/* #undef _OPENCL */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT32_T */ + +/* Define for Solaris 2.5.1 so the uint64_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT64_T */ + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT8_T */ + +/* Define to 1 if type `char' is unsigned and you are not using gcc. */ +#ifndef __CHAR_UNSIGNED__ +/* # undef __CHAR_UNSIGNED__ */ +#endif + +/* Define to appropriate substitue if compiler does not have __func__ */ +/* #undef __func__ */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to the type of a signed integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int16_t */ + +/* Define to the type of a signed integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int32_t */ + +/* Define to the type of a signed integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int64_t */ + +/* Define to the type of a signed integer type of width exactly 8 bits if such + a type exists and the standard includes do not define it. */ +/* #undef int8_t */ + +/* Define to the widest signed integer type if and do + not define. */ +/* #undef intmax_t */ + +/* Define to the type of a signed integer type wide enough to hold a pointer, + if such a type exists, and if the system does not define it. */ +/* #undef intptr_t */ + +/* Define to a type if does not define. */ +/* #undef mbstate_t */ + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define to `int' if does not define. */ +/* #undef pid_t */ + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#ifndef _magickcore_restrict +#define _magickcore_restrict __restrict +#endif +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to `int' if does not define. */ +/* #undef ssize_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint16_t */ + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint32_t */ + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint64_t */ + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint8_t */ + +/* Define to the widest unsigned integer type if and + do not define. */ +/* #undef uintmax_t */ + +/* Define to the type of an unsigned integer type wide enough to hold a + pointer, if such a type exists, and if the system does not define it. */ +/* #undef uintptr_t */ + +/* Define as `fork' if `vfork' does not work. */ +/* #undef vfork */ + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +/* #undef volatile */ + +/* once: _MAGICKCORE_MAGICK_BASECONFIG_H */ +#endif diff --git a/include/ImageMagick-7/MagickCore/magick-config.h b/include/ImageMagick-7/MagickCore/magick-config.h new file mode 100644 index 0000000..1dd2714 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/magick-config.h @@ -0,0 +1,205 @@ +/* + Copyright 2012 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickConfig not autogenerated (fixed stuff) +*/ +#ifndef MAGICKCORE_MAGICK_CONFIG_H +#define MAGICKCORE_MAGICK_CONFIG_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#include "MagickCore/magick-baseconfig.h" + +/* Compatibility block */ +#if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H) +# warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default" +# warning "this is an obsolete behavior please fix your makefile" +# define MAGICKCORE_QUANTUM_DEPTH MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H +#endif + +/* Number of bits in a pixel Quantum (8/16/32/64) */ +#ifndef MAGICKCORE_QUANTUM_DEPTH +# error "you should set MAGICKCORE_QUANTUM_DEPTH" +#endif + +/* check values */ +#if MAGICKCORE_QUANTUM_DEPTH != 8 +# if MAGICKCORE_QUANTUM_DEPTH != 16 +# if MAGICKCORE_QUANTUM_DEPTH != 32 +# if MAGICKCORE_QUANTUM_DEPTH != 64 +# error "MAGICKCORE_QUANTUM_DEPTH is not 8/16/32/64 bits" +# endif +# endif +# endif +#endif + + +#if !defined(MAGICKCORE_HDRI_ENABLE) && defined(MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H) +# warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default" +# warning "this is an obsolete behavior please fix yours makefile" +# define MAGICKCORE_HDRI_ENABLE MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H +#endif + +/* whether HDRI is enable */ +#if !defined(MAGICKCORE_HDRI_ENABLE) +# error "you should set MAGICKCORE_HDRI_ENABLE" +#endif + +#if MAGICKCORE_HDRI_ENABLE +# define MAGICKCORE_HDRI_SUPPORT 1 +#endif + +/* Compatibility block */ +#if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H) +# warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default" +# warning "this is an obsolete behavior please fix yours makefile" +# define MAGICKCORE_QUANTUM_DEPTH MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H +#endif + +/* Number of bits in a pixel Quantum (8/16/32/64) */ +#ifndef MAGICKCORE_QUANTUM_DEPTH +# error "you should set MAGICKCORE_QUANTUM_DEPTH" +#endif + +/* check values */ +#if MAGICKCORE_QUANTUM_DEPTH != 8 +# if MAGICKCORE_QUANTUM_DEPTH != 16 +# if MAGICKCORE_QUANTUM_DEPTH != 32 +# if MAGICKCORE_QUANTUM_DEPTH != 64 +# error "MAGICKCORE_QUANTUM_DEPTH is not 8/16/32/64 bits" +# endif +# endif +# endif +#endif + + +#if !defined(MAGICKCORE_HDRI_ENABLE) && defined(MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H) +# warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default" +# warning "this is an obsolete behavior please fix yours makefile" +# define MAGICKCORE_HDRI_ENABLE MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H +#endif + +/* whether HDRI is enable */ +#if !defined(MAGICKCORE_HDRI_ENABLE) +# error "you should set MAGICKCORE_HDRI_ENABLE" +#endif + +#if MAGICKCORE_HDRI_ENABLE +# define MAGICKCORE_HDRI_SUPPORT 1 +#endif + +#if defined __CYGWIN32__ && !defined __CYGWIN__ + /* For backwards compatibility with Cygwin b19 and + earlier, we define __CYGWIN__ here, so that + we can rely on checking just for that macro. */ +# define __CYGWIN__ __CYGWIN32__ +#endif + +/*! stringify */ +#define MAGICKCORE_STRING_QUOTE(str) #str +#define MAGICKCORE_STRING_XQUOTE(str) MAGICKCORE_STRING_QUOTE(str) + +/* ABI SUFFIX */ +#ifndef MAGICKCORE_HDRI_SUPPORT +#define MAGICKCORE_ABI_SUFFIX "Q" MAGICKCORE_STRING_XQUOTE(MAGICKCORE_QUANTUM_DEPTH) +#else +#define MAGICKCORE_ABI_SUFFIX "Q" MAGICKCORE_STRING_XQUOTE(MAGICKCORE_QUANTUM_DEPTH) "HDRI" +#endif + +/* some path game */ +#if !defined __CYGWIN__ +# if defined (_WIN32) || defined (_WIN64) || defined (__MSDOS__) || defined (__DJGPP__) || defined (__OS2__) + /* Use Windows separators on all _WIN32 defining + environments, except Cygwin. */ +# define MAGICKCORE_DIR_SEPARATOR_CHAR '\\' +# define MAGICKCORE_DIR_SEPARATOR "\\" +# define MAGICKCORE_PATH_SEPARATOR_CHAR ';' +# define MAGICKCORE_PATH_SEPARATOR ";" +# endif +#endif + +/* posix */ +#ifndef MAGICKCORE_DIR_SEPARATOR_CHAR + /* Assume that not having this is an indicator that all + are missing. */ +# define MAGICKCORE_DIR_SEPARATOR_CHAR '/' +# define MAGICKCORE_DIR_SEPARATOR "/" +# define MAGICKCORE_PATH_SEPARATOR_CHAR ':' +# define MAGICKCORE_PATH_SEPARATOR ":" +#endif /* !DIR_SEPARATOR_CHAR */ + +# if defined(MAGICKCORE_POSIX_SUPPORT) || defined(__MINGW32__) + +/* module dir */ +#ifndef MAGICKCORE_MODULES_DIRNAME +# define MAGICKCORE_MODULES_DIRNAME MAGICKCORE_MODULES_BASEDIRNAME "-" MAGICKCORE_ABI_SUFFIX +#endif + +#ifndef MAGICKCORE_MODULES_PATH +# define MAGICKCORE_MODULES_PATH MAGICKCORE_LIBRARY_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME +#endif + +#ifndef MAGICKCORE_MODULES_RELATIVE_PATH +#define MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_LIBRARY_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME +#endif + +/* Subdirectory under lib to place ImageMagick coder module files */ +#ifndef MAGICKCORE_CODER_PATH +# if defined(vms) +# define MAGICKCORE_CODER_PATH "sys$login:" +# else +# define MAGICKCORE_CODER_PATH MAGICKCORE_MODULES_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_CODER_DIRNAME +# endif +#endif + +#ifndef MAGICKCORE_CODER_RELATIVE_PATH +# define MAGICKCORE_CODER_RELATIVE_PATH MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_CODER_DIRNAME +#endif + +/* subdirectory under lib to place ImageMagick filter module files */ +#ifndef MAGICKCORE_FILTER_PATH +# if defined(vms) +# define MAGICKCORE_FILTER_PATH "sys$login:" +# else +# define MAGICKCORE_FILTER_PATH MAGICKCORE_MODULES_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_FILTER_DIRNAME +# endif +#endif + +#ifndef MAGICKCORE_FILTER_RELATIVE_PATH +# define MAGICKCORE_FILTER_RELATIVE_PATH MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_FILTER_DIRNAME +#endif + +/* sharearch dir */ +#ifndef MAGICKCORE_SHAREARCH_DIRNAME +# define MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_SHAREARCH_BASEDIRNAME "-" MAGICKCORE_ABI_SUFFIX +#endif + +#ifndef MAGICKCORE_SHAREARCH_PATH +# define MAGICKCORE_SHAREARCH_PATH MAGICKCORE_LIBRARY_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_DIR_SEPARATOR +#endif + +#ifndef MAGICKCORE_SHAREARCH_RELATIVE_PATH +#define MAGICKCORE_SHAREARCH_RELATIVE_PATH MAGICKCORE_LIBRARY_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME +#endif + +#endif + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/magick-type.h b/include/ImageMagick-7/MagickCore/magick-type.h new file mode 100644 index 0000000..11f6b88 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/magick-type.h @@ -0,0 +1,197 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore types. +*/ +#ifndef MAGICKCORE_MAGICK_TYPE_H +#define MAGICKCORE_MAGICK_TYPE_H + +#include "MagickCore/magick-config.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if !defined(MAGICKCORE_QUANTUM_DEPTH) +#define MAGICKCORE_QUANTUM_DEPTH 16 +#endif + +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__) +# define MagickLLConstant(c) ((MagickOffsetType) (c ## i64)) +# define MagickULLConstant(c) ((MagickSizeType) (c ## ui64)) +#else +# define MagickLLConstant(c) ((MagickOffsetType) (c ## LL)) +# define MagickULLConstant(c) ((MagickSizeType) (c ## ULL)) +#endif + +#if MAGICKCORE_SIZEOF_FLOAT_T == 0 +typedef float MagickFloatType; +#elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_FLOAT) +typedef float MagickFloatType; +#elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_DOUBLE) +typedef double MagickFloatType; +#elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_LONG_DOUBLE) +typedef long double MagickFloatType; +#else +#error Your MagickFloatType type is neither a float, nor a double, nor a long double +#endif +#if MAGICKCORE_SIZEOF_DOUBLE_T == 0 +typedef double MagickDoubleType; +#elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE) +typedef double MagickDoubleType; +#elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE) +typedef long double MagickDoubleType; +#else +#error Your MagickDoubleType type is neither a float, nor a double, nor a long double +#endif + +#if (MAGICKCORE_QUANTUM_DEPTH == 8) +#define MaxColormapSize 256UL +#define MaxMap 255UL + +#if defined(MAGICKCORE_HDRI_SUPPORT) +typedef MagickFloatType Quantum; +#define QuantumRange 255.0 +#define QuantumFormat "%g" +#else +typedef unsigned char Quantum; +#define QuantumRange ((Quantum) 255) +#define QuantumFormat "%u" +#endif +#elif (MAGICKCORE_QUANTUM_DEPTH == 16) +#define MaxColormapSize 65536UL +#define MaxMap 65535UL + +#if defined(MAGICKCORE_HDRI_SUPPORT) +typedef MagickFloatType Quantum; +#define QuantumRange 65535.0f +#define QuantumFormat "%g" +#else +typedef unsigned short Quantum; +#define QuantumRange ((Quantum) 65535) +#define QuantumFormat "%u" +#endif +#elif (MAGICKCORE_QUANTUM_DEPTH == 32) +#define MaxColormapSize 65536UL +#define MaxMap 65535UL + +#if defined(MAGICKCORE_HDRI_SUPPORT) +typedef MagickDoubleType Quantum; +#define QuantumRange 4294967295.0 +#define QuantumFormat "%g" +#else +typedef unsigned int Quantum; +#define QuantumRange ((Quantum) 4294967295) +#define QuantumFormat "%u" +#endif +#elif (MAGICKCORE_QUANTUM_DEPTH == 64) +#define MAGICKCORE_HDRI_SUPPORT 1 +#define MaxColormapSize 65536UL +#define MaxMap 65535UL + +typedef MagickDoubleType Quantum; +#define QuantumRange 18446744073709551615.0 +#define QuantumFormat "%g" +#else +#error "MAGICKCORE_QUANTUM_DEPTH must be one of 8, 16, 32, or 64" +#endif +#define MagickEpsilon (1.0e-15) +#define MagickMaximumValue 1.79769313486231570E+308 +#define MagickMinimumValue 2.22507385850720140E-308 +#define QuantumScale ((double) 1.0/(double) QuantumRange) + +/* + Typedef declarations. +*/ +typedef MagickDoubleType MagickRealType; +typedef unsigned int MagickStatusType; +#if !defined(MAGICKCORE_WINDOWS_SUPPORT) +#if (MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG == 8) +typedef long long MagickOffsetType; +typedef unsigned long long MagickSizeType; +#define MagickOffsetFormat "lld" +#define MagickSizeFormat "llu" +#else +typedef ssize_t MagickOffsetType; +typedef size_t MagickSizeType; +#define MagickOffsetFormat "ld" +#define MagickSizeFormat "lu" +#endif +#else +typedef __int64 MagickOffsetType; +typedef unsigned __int64 MagickSizeType; +#define MagickOffsetFormat "I64i" +#define MagickSizeFormat "I64u" +#endif + +#if defined(_MSC_VER) && (_MSC_VER == 1200) +typedef MagickOffsetType QuantumAny; +#else +typedef MagickSizeType QuantumAny; +#endif + +#if defined(macintosh) +#define ExceptionInfo MagickExceptionInfo +#endif + +typedef enum +{ + UndefinedClass, + DirectClass, + PseudoClass +} ClassType; + +typedef enum +{ + MagickFalse = 0, + MagickTrue = 1 +} MagickBooleanType; + +/* + The IsNaN test is for special floating point numbers of value Nan (not a + number). NaN's are defined as part of the IEEE standard for floating point + number representation, and need to be watched out for. Morphology Kernels + often use these special numbers as neighbourhood masks. + + The special property that two NaN's are never equal, even if they are from + the same variable allows you to test if a value is special NaN value. + + The macros are thus is only true if the value given is NaN. +*/ +#if defined(MAGICKCORE_HAVE_ISNAN) +# define IsNaN(a) isnan(a) +#elif defined(_MSC_VER) && (_MSC_VER >= 1310) +# include +# define IsNaN(a) _isnan(a) +#else +# define IsNaN(a) ((a) != (a)) +#endif +#if !defined(INFINITY) +# define INFINITY (-logf(0f)) +#endif + +typedef struct _BlobInfo BlobInfo; + +typedef struct _ExceptionInfo ExceptionInfo; + +typedef struct _Image Image; + +typedef struct _ImageInfo ImageInfo; + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/magick.h b/include/ImageMagick-7/MagickCore/magick.h new file mode 100644 index 0000000..b2baf44 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/magick.h @@ -0,0 +1,147 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore magick methods. +*/ +#ifndef MAGICKCORE_MAGICK_H +#define MAGICKCORE_MAGICK_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#include +#include "MagickCore/semaphore.h" + +typedef enum +{ + UndefinedFormatType, + ImplicitFormatType, + ExplicitFormatType +} MagickFormatType; + +typedef enum +{ + CoderNoFlag = 0x0000, + CoderAdjoinFlag = 0x0001, + CoderBlobSupportFlag = 0x0002, + CoderDecoderThreadSupportFlag = 0x0004, + CoderEncoderThreadSupportFlag = 0x0008, + CoderEndianSupportFlag = 0x0010, + CoderRawSupportFlag = 0x0020, + CoderSeekableStreamFlag = 0x0040, /* deprecated */ + CoderStealthFlag = 0x0080, + CoderUseExtensionFlag = 0x0100, + CoderDecoderSeekableStreamFlag = 0x0200, + CoderEncoderSeekableStreamFlag = 0x0400, + +} MagickInfoFlag; + +typedef Image + *DecodeImageHandler(const ImageInfo *,ExceptionInfo *); + +typedef MagickBooleanType + EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *); + +typedef MagickBooleanType + IsImageFormatHandler(const unsigned char *,const size_t); + +typedef struct _MagickInfo +{ + char + *name, + *description, + *version, + *mime_type, + *note, + *module; + + DecodeImageHandler + *decoder; + + EncodeImageHandler + *encoder; + + ImageInfo + *image_info; + + IsImageFormatHandler + *magick; + + MagickFormatType + format_type; + + MagickStatusType + flags; + + SemaphoreInfo + *semaphore; + + size_t + signature; + + void + *client_data; +} MagickInfo; + +extern MagickExport char + **GetMagickList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport const char + *GetMagickDescription(const MagickInfo *), + *GetMagickMimeType(const MagickInfo *); + +extern MagickExport DecodeImageHandler + *GetImageDecoder(const MagickInfo *); + +extern MagickExport EncodeImageHandler + *GetImageEncoder(const MagickInfo *); + +extern MagickExport int + GetMagickPrecision(void), + SetMagickPrecision(const int); + +extern MagickExport MagickBooleanType + GetImageMagick(const unsigned char *,const size_t,char *), + GetMagickAdjoin(const MagickInfo *), + GetMagickBlobSupport(const MagickInfo *), + GetMagickDecoderSeekableStream(const MagickInfo *), + GetMagickDecoderThreadSupport(const MagickInfo *), + GetMagickEncoderSeekableStream(const MagickInfo *), + GetMagickEncoderThreadSupport(const MagickInfo *), + GetMagickEndianSupport(const MagickInfo *), + GetMagickRawSupport(const MagickInfo *), + GetMagickStealth(const MagickInfo *), + GetMagickUseExtension(const MagickInfo *), + IsMagickCoreInstantiated(void), + RegisterMagickInfo(MagickInfo *), + UnregisterMagickInfo(const char *); + +extern const MagickExport MagickInfo + *GetMagickInfo(const char *,ExceptionInfo *), + **GetMagickInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport MagickInfo + *AcquireMagickInfo(const char *, const char *, const char *); + +extern MagickExport void + MagickCoreGenesis(const char *,const MagickBooleanType), + MagickCoreTerminus(void); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/matrix.h b/include/ImageMagick-7/MagickCore/matrix.h new file mode 100644 index 0000000..c7e0069 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/matrix.h @@ -0,0 +1,52 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore matrix methods. +*/ +#ifndef MAGICKCORE_MATRIX_H +#define MAGICKCORE_MATRIX_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _MatrixInfo + MatrixInfo; + +extern MagickExport double + **AcquireMagickMatrix(const size_t,const size_t), + **RelinquishMagickMatrix(double **,const size_t); + +extern MagickExport Image + *MatrixToImage(const MatrixInfo *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + GetMatrixElement(const MatrixInfo *,const ssize_t,const ssize_t,void *), + NullMatrix(MatrixInfo *), + SetMatrixElement(const MatrixInfo *,const ssize_t,const ssize_t,const void *); + +MagickExport MatrixInfo + *AcquireMatrixInfo(const size_t,const size_t,const size_t,ExceptionInfo *), + *DestroyMatrixInfo(MatrixInfo *); + +MagickExport size_t + GetMatrixColumns(const MatrixInfo *), + GetMatrixRows(const MatrixInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/memory_.h b/include/ImageMagick-7/MagickCore/memory_.h new file mode 100644 index 0000000..2cbc48e --- /dev/null +++ b/include/ImageMagick-7/MagickCore/memory_.h @@ -0,0 +1,64 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore memory methods. +*/ +#ifndef MAGICKCORE_MEMORY_H +#define MAGICKCORE_MEMORY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _MemoryInfo + MemoryInfo; + +typedef void + *(*AcquireMemoryHandler)(size_t) magick_alloc_size(1), + (*DestroyMemoryHandler)(void *), + *(*ResizeMemoryHandler)(void *,size_t) magick_alloc_size(2); + +extern MagickExport MemoryInfo + *AcquireVirtualMemory(const size_t,const size_t) magick_alloc_sizes(1,2), + *RelinquishVirtualMemory(MemoryInfo *); + +extern MagickExport void + *AcquireAlignedMemory(const size_t,const size_t) + magick_attribute((__malloc__)) magick_alloc_sizes(1,2), + *AcquireMagickMemory(const size_t) magick_attribute((__malloc__)) + magick_alloc_size(1), + *AcquireQuantumMemory(const size_t,const size_t) + magick_attribute((__malloc__)) magick_alloc_sizes(1,2), + *CopyMagickMemory(void *,const void *,const size_t) + magick_attribute((__nonnull__)), + DestroyMagickMemory(void), + GetMagickMemoryMethods(AcquireMemoryHandler *,ResizeMemoryHandler *, + DestroyMemoryHandler *), + *GetVirtualMemoryBlob(const MemoryInfo *), + *RelinquishAlignedMemory(void *), + *RelinquishMagickMemory(void *), + *ResetMagickMemory(void *,int,const size_t), + *ResizeMagickMemory(void *,const size_t) + magick_attribute((__malloc__)) magick_alloc_size(2), + *ResizeQuantumMemory(void *,const size_t,const size_t) + magick_attribute((__malloc__)) magick_alloc_sizes(2,3), + SetMagickMemoryMethods(AcquireMemoryHandler,ResizeMemoryHandler, + DestroyMemoryHandler); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/method-attribute.h b/include/ImageMagick-7/MagickCore/method-attribute.h new file mode 100644 index 0000000..e114227 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/method-attribute.h @@ -0,0 +1,147 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore method attributes. +*/ +#ifndef MAGICKCORE_METHOD_ATTRIBUTE_H +#define MAGICKCORE_METHOD_ATTRIBUTE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if defined(__BORLANDC__) && defined(_DLL) +# pragma message("BCBMagick lib DLL export interface") +# define _MAGICKDLL_ +# define _MAGICKLIB_ +# define MAGICKCORE_MODULES_SUPPORT +# undef MAGICKCORE_BUILD_MODULES +#endif + +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__) +# define MagickPrivate +# if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB) +# define _MAGICKDLL_ +# endif +# if defined(_MAGICKDLL_) +# if defined(_VISUALC_) +# pragma warning( disable: 4273 ) /* Disable the dll linkage warnings */ +# endif +# if !defined(_MAGICKLIB_) +# if defined(__clang__) || defined(__GNUC__) +# define MagickExport __attribute__ ((dllimport)) +# else +# define MagickExport __declspec(dllimport) +# endif +# if defined(_VISUALC_) +# pragma message( "MagickCore lib DLL import interface" ) +# endif +# else +# if defined(__clang__) || defined(__GNUC__) +# define MagickExport __attribute__ ((dllexport)) +# else +# define MagickExport __declspec(dllexport) +# endif +# if defined(_VISUALC_) +# pragma message( "MagickCore lib DLL export interface" ) +# endif +# endif +# else +# define MagickExport +# if defined(_VISUALC_) +# pragma message( "MagickCore lib static interface" ) +# endif +# endif + +# if defined(_DLL) && !defined(_LIB) +# if defined(__clang__) || defined(__GNUC__) +# define ModuleExport __attribute__ ((dllexport)) +# else +# define ModuleExport __declspec(dllexport) +# endif +# if defined(_VISUALC_) +# pragma message( "MagickCore module DLL export interface" ) +# endif +# else +# define ModuleExport +# if defined(_VISUALC_) +# pragma message( "MagickCore module static interface" ) +# endif + +# endif +# if defined(_VISUALC_) +# pragma warning(disable : 4018) +# pragma warning(disable : 4068) +# pragma warning(disable : 4244) +# pragma warning(disable : 4142) +# pragma warning(disable : 4800) +# pragma warning(disable : 4786) +# pragma warning(disable : 4996) +# endif +#else +# if defined(__clang__) || (__GNUC__ >= 4) +# define MagickExport __attribute__ ((visibility ("default"))) +# define MagickPrivate __attribute__ ((visibility ("hidden"))) +# else +# define MagickExport +# define MagickPrivate +# endif +# define ModuleExport MagickExport +#endif + +#define MagickCoreSignature 0xabacadabUL +#if !defined(MagickPathExtent) +# define MagickPathExtent 4096 /* always >= 4096 */ +#endif +# define MaxTextExtent MagickPathExtent + +#if defined(MAGICKCORE_HAVE___ATTRIBUTE__) +# define magick_aligned(x,y) x __attribute__((aligned(y))) +# define magick_attribute __attribute__ +# define magick_unused(x) magick_unused_ ## x __attribute__((unused)) +# define magick_unreferenced(x) /* nothing */ +#elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__) +# define magick_aligned(x,y) __declspec(align(y)) x +# define magick_attribute(x) /* nothing */ +# define magick_unused(x) x +# define magick_unreferenced(x) (x) +#else +# define magick_aligned(x,y) /* nothing */ +# define magick_attribute(x) /* nothing */ +# define magick_unused(x) x +# define magick_unreferenced(x) /* nothing */ +#endif + +#if !defined(__clang__) && (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))) +# define magick_alloc_size(x) __attribute__((__alloc_size__(x))) +# define magick_alloc_sizes(x,y) __attribute__((__alloc_size__(x,y))) +#else +# define magick_alloc_size(x) /* nothing */ +# define magick_alloc_sizes(x,y) /* nothing */ +#endif + +#if defined(__clang__) || (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))) +# define magick_cold_spot __attribute__((__cold__)) +# define magick_hot_spot __attribute__((__hot__)) +#else +# define magick_cold_spot +# define magick_hot_spot +#endif + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/methods.h b/include/ImageMagick-7/MagickCore/methods.h new file mode 100644 index 0000000..e141038 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/methods.h @@ -0,0 +1,1373 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore API methods prefix. + + nm -p MagickCore/.libs/libMagickCore-7.Q16HDRI.a | grep ' T ' | egrep -vi '(Magick)|(lt_)' | \ + egrep -v '(MagickError)|(MagickFatalError)|(MagickWarning)|(ThrowException)' | \ + awk '{ printf("#define %s PrependMagickMethod(%s)\n", $3, $3); }' | sort +*/ +#ifndef MAGICKCORE_METHOD_H +#define MAGICKCORE_METHOD_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if defined(MAGICKCORE_NAMESPACE_PREFIX) + +#if defined(__STDC__) +#define PrescanMagickPrefix(prefix,method) prefix ## method +#else +#define PrescanMagickPrefix(prefix,method) prefix(method) +#endif +#define EvaluateMagickPrefix(prefix,method) PrescanMagickPrefix(prefix,method) +#define PrependMagickMethod(method) \ + EvaluateMagickPrefix(MAGICKCORE_NAMESPACE_PREFIX,method) + +#define AcquireAlignedMemory PrependMagickMethod(AcquireAlignedMemory) +#define AcquireAuthenticCacheView PrependMagickMethod(AcquireAuthenticCacheView) +#define AcquireCustomStreamInfo PrependMagickMethod(AcquireCustomStreamInfo) +#define AcquireDistributeCacheInfo PrependMagickMethod(AcquireDistributeCacheInfo) +#define AcquireDrawInfo PrependMagickMethod(AcquireDrawInfo) +#define AcquireExceptionInfo PrependMagickMethod(AcquireExceptionInfo) +#define AcquireFxInfo PrependMagickMethod(AcquireFxInfo) +#define AcquireImageColormap PrependMagickMethod(AcquireImageColormap) +#define AcquireImageInfo PrependMagickMethod(AcquireImageInfo) +#define AcquireImage PrependMagickMethod(AcquireImage) +#define AcquireKernelBuiltIn PrependMagickMethod(AcquireKernelBuiltIn) +#define AcquireKernelInfo PrependMagickMethod(AcquireKernelInfo) +#define AcquireMatrixInfo PrependMagickMethod(AcquireMatrixInfo) +#define AcquireMimeCache PrependMagickMethod(AcquireMimeCache) +#define AcquireNextImage PrependMagickMethod(AcquireNextImage) +#define AcquirePixelCacheNexus PrependMagickMethod(AcquirePixelCacheNexus) +#define AcquirePixelCachePixels PrependMagickMethod(AcquirePixelCachePixels) +#define AcquirePixelCache PrependMagickMethod(AcquirePixelCache) +#define AcquirePixelChannelMap PrependMagickMethod(AcquirePixelChannelMap) +#define AcquireQuantizeInfo PrependMagickMethod(AcquireQuantizeInfo) +#define AcquireQuantumInfo PrependMagickMethod(AcquireQuantumInfo) +#define AcquireQuantumMemory PrependMagickMethod(AcquireQuantumMemory) +#define AcquireRandomInfo PrependMagickMethod(AcquireRandomInfo) +#define AcquireResampleFilter PrependMagickMethod(AcquireResampleFilter) +#define AcquireResizeFilter PrependMagickMethod(AcquireResizeFilter) +#define AcquireSemaphoreInfo PrependMagickMethod(AcquireSemaphoreInfo) +#define AcquireSignatureInfo PrependMagickMethod(AcquireSignatureInfo) +#define AcquireStreamInfo PrependMagickMethod(AcquireStreamInfo) +#define AcquireStringInfo PrependMagickMethod(AcquireStringInfo) +#define AcquireString PrependMagickMethod(AcquireString) +#define AcquireTimerInfo PrependMagickMethod(AcquireTimerInfo) +#define AcquireTokenInfo PrependMagickMethod(AcquireTokenInfo) +#define AcquireUniqueFilename PrependMagickMethod(AcquireUniqueFilename) +#define AcquireUniqueFileResource PrependMagickMethod(AcquireUniqueFileResource) +#define AcquireUniqueSymbolicLink PrependMagickMethod(AcquireUniqueSymbolicLink) +#define AcquireVirtualCacheView PrependMagickMethod(AcquireVirtualCacheView) +#define AcquireVirtualMemory PrependMagickMethod(AcquireVirtualMemory) +#define ActivateSemaphoreInfo PrependMagickMethod(ActivateSemaphoreInfo) +#define AdaptiveBlurImage PrependMagickMethod(AdaptiveBlurImage) +#define AdaptiveResizeImage PrependMagickMethod(AdaptiveResizeImage) +#define AdaptiveSharpenImage PrependMagickMethod(AdaptiveSharpenImage) +#define AdaptiveThresholdImage PrependMagickMethod(AdaptiveThresholdImage) +#define AddChildToXMLTree PrependMagickMethod(AddChildToXMLTree) +#define AddNoiseImage PrependMagickMethod(AddNoiseImage) +#define AddPathToXMLTree PrependMagickMethod(AddPathToXMLTree) +#define AddValueToSplayTree PrependMagickMethod(AddValueToSplayTree) +#define AffineTransformImage PrependMagickMethod(AffineTransformImage) +#define analyzeImage PrependMagickMethod(analyzeImage) +#define AnimateImages PrependMagickMethod(AnimateImages) +#define AnnotateComponentGenesis PrependMagickMethod(AnnotateComponentGenesis) +#define AnnotateComponentTerminus PrependMagickMethod(AnnotateComponentTerminus) +#define AnnotateImage PrependMagickMethod(AnnotateImage) +#define AppendImageFormat PrependMagickMethod(AppendImageFormat) +#define AppendImages PrependMagickMethod(AppendImages) +#define AppendImageToList PrependMagickMethod(AppendImageToList) +#define AppendValueToLinkedList PrependMagickMethod(AppendValueToLinkedList) +#define Ascii85Encode PrependMagickMethod(Ascii85Encode) +#define Ascii85Flush PrependMagickMethod(Ascii85Flush) +#define Ascii85Initialize PrependMagickMethod(Ascii85Initialize) +#define AsynchronousResourceComponentTerminus PrependMagickMethod(AsynchronousResourceComponentTerminus) +#define AttachBlob PrependMagickMethod(AttachBlob) +#define AttachCustomStream PrependMagickMethod(AttachCustomStream) +#define AutoGammaImage PrependMagickMethod(AutoGammaImage) +#define AutoLevelImage PrependMagickMethod(AutoLevelImage) +#define AutoOrientImage PrependMagickMethod(AutoOrientImage) +#define AutoThresholdImage PrependMagickMethod(AutoThresholdImage) +#define Base64Decode PrependMagickMethod(Base64Decode) +#define Base64Encode PrependMagickMethod(Base64Encode) +#define BilevelImage PrependMagickMethod(BilevelImage) +#define BlackThresholdImage PrependMagickMethod(BlackThresholdImage) +#define BlobToFile PrependMagickMethod(BlobToFile) +#define BlobToImage PrependMagickMethod(BlobToImage) +#define BlobToStringInfo PrependMagickMethod(BlobToStringInfo) +#define BlueShiftImage PrependMagickMethod(BlueShiftImage) +#define BlurImage PrependMagickMethod(BlurImage) +#define BorderImage PrependMagickMethod(BorderImage) +#define BrightnessContrastImage PrependMagickMethod(BrightnessContrastImage) +#define CacheComponentGenesis PrependMagickMethod(CacheComponentGenesis) +#define CacheComponentTerminus PrependMagickMethod(CacheComponentTerminus) +#define CannyEdgeImage PrependMagickMethod(CannyEdgeImage) +#define CanonicalXMLContent PrependMagickMethod(CanonicalXMLContent) +#define CatchException PrependMagickMethod(CatchException) +#define CatchImageException PrependMagickMethod(CatchImageException) +#define ChannelFxImage PrependMagickMethod(ChannelFxImage) +#define CharcoalImage PrependMagickMethod(CharcoalImage) +#define ChopImage PrependMagickMethod(ChopImage) +#define ChopPathComponents PrependMagickMethod(ChopPathComponents) +#define ClampImage PrependMagickMethod(ClampImage) +#define ClearLinkedList PrependMagickMethod(ClearLinkedList) +#define ClipImagePath PrependMagickMethod(ClipImagePath) +#define ClipImage PrependMagickMethod(ClipImage) +#define CloneBlobInfo PrependMagickMethod(CloneBlobInfo) +#define CloneCacheView PrependMagickMethod(CloneCacheView) +#define CloneDrawInfo PrependMagickMethod(CloneDrawInfo) +#define CloneExceptionInfo PrependMagickMethod(CloneExceptionInfo) +#define CloneImageArtifacts PrependMagickMethod(CloneImageArtifacts) +#define CloneImageInfo PrependMagickMethod(CloneImageInfo) +#define CloneImageList PrependMagickMethod(CloneImageList) +#define CloneImageOptions PrependMagickMethod(CloneImageOptions) +#define CloneImage PrependMagickMethod(CloneImage) +#define CloneImageProfiles PrependMagickMethod(CloneImageProfiles) +#define CloneImageProperties PrependMagickMethod(CloneImageProperties) +#define CloneImages PrependMagickMethod(CloneImages) +#define CloneImageView PrependMagickMethod(CloneImageView) +#define CloneKernelInfo PrependMagickMethod(CloneKernelInfo) +#define CloneMontageInfo PrependMagickMethod(CloneMontageInfo) +#define ClonePixelCacheMethods PrependMagickMethod(ClonePixelCacheMethods) +#define ClonePixelCache PrependMagickMethod(ClonePixelCache) +#define ClonePixelChannelMap PrependMagickMethod(ClonePixelChannelMap) +#define ClonePixelInfo PrependMagickMethod(ClonePixelInfo) +#define CloneQuantizeInfo PrependMagickMethod(CloneQuantizeInfo) +#define CloneSplayTree PrependMagickMethod(CloneSplayTree) +#define CloneStringInfo PrependMagickMethod(CloneStringInfo) +#define CloneString PrependMagickMethod(CloneString) +#define CloseBlob PrependMagickMethod(CloseBlob) +#define ClutImage PrependMagickMethod(ClutImage) +#define CoalesceImages PrependMagickMethod(CoalesceImages) +#define CoderComponentGenesis PrependMagickMethod(CoderComponentGenesis) +#define CoderComponentTerminus PrependMagickMethod(CoderComponentTerminus) +#define ColorComponentGenesis PrependMagickMethod(ColorComponentGenesis) +#define ColorComponentTerminus PrependMagickMethod(ColorComponentTerminus) +#define ColorDecisionListImage PrependMagickMethod(ColorDecisionListImage) +#define ColorizeImage PrependMagickMethod(ColorizeImage) +#define ColorMatrixImage PrependMagickMethod(ColorMatrixImage) +#define CombineImages PrependMagickMethod(CombineImages) +#define CommandOptionToMnemonic PrependMagickMethod(CommandOptionToMnemonic) +#define CompareImagesLayers PrependMagickMethod(CompareImagesLayers) +#define CompareImages PrependMagickMethod(CompareImages) +#define CompareSplayTreeStringInfo PrependMagickMethod(CompareSplayTreeStringInfo) +#define CompareSplayTreeString PrependMagickMethod(CompareSplayTreeString) +#define CompareStringInfo PrependMagickMethod(CompareStringInfo) +#define ComplexImages PrependMagickMethod(ComplexImages) +#define CompositeImage PrependMagickMethod(CompositeImage) +#define CompositeLayers PrependMagickMethod(CompositeLayers) +#define CompressImageColormap PrependMagickMethod(CompressImageColormap) +#define ConcatenateColorComponent PrependMagickMethod(ConcatenateColorComponent) +#define ConcatenateStringInfo PrependMagickMethod(ConcatenateStringInfo) +#define ConcatenateString PrependMagickMethod(ConcatenateString) +#define ConfigureComponentGenesis PrependMagickMethod(ConfigureComponentGenesis) +#define ConfigureComponentTerminus PrependMagickMethod(ConfigureComponentTerminus) +#define ConfigureFileToStringInfo PrependMagickMethod(ConfigureFileToStringInfo) +#define ConformPixelInfo PrependMagickMethod(ConformPixelInfo) +#define ConnectedComponentsImage PrependMagickMethod(ConnectedComponentsImage) +#define ConsolidateCMYKImages PrependMagickMethod(ConsolidateCMYKImages) +#define ConstantString PrependMagickMethod(ConstantString) +#define ConstituteImage PrependMagickMethod(ConstituteImage) +#define ContinueTimer PrependMagickMethod(ContinueTimer) +#define ContrastImage PrependMagickMethod(ContrastImage) +#define ContrastStretchImage PrependMagickMethod(ContrastStretchImage) +#define ConvertHCLpToRGB PrependMagickMethod(ConvertHCLpToRGB) +#define ConvertHCLToRGB PrependMagickMethod(ConvertHCLToRGB) +#define ConvertHSBToRGB PrependMagickMethod(ConvertHSBToRGB) +#define ConvertHSIToRGB PrependMagickMethod(ConvertHSIToRGB) +#define ConvertHSLToRGB PrependMagickMethod(ConvertHSLToRGB) +#define ConvertHSVToRGB PrependMagickMethod(ConvertHSVToRGB) +#define ConvertHWBToRGB PrependMagickMethod(ConvertHWBToRGB) +#define ConvertLCHabToRGB PrependMagickMethod(ConvertLCHabToRGB) +#define ConvertLCHuvToRGB PrependMagickMethod(ConvertLCHuvToRGB) +#define ConvertRGBToHCLp PrependMagickMethod(ConvertRGBToHCLp) +#define ConvertRGBToHCL PrependMagickMethod(ConvertRGBToHCL) +#define ConvertRGBToHSB PrependMagickMethod(ConvertRGBToHSB) +#define ConvertRGBToHSI PrependMagickMethod(ConvertRGBToHSI) +#define ConvertRGBToHSL PrependMagickMethod(ConvertRGBToHSL) +#define ConvertRGBToHSV PrependMagickMethod(ConvertRGBToHSV) +#define ConvertRGBToHWB PrependMagickMethod(ConvertRGBToHWB) +#define ConvertRGBToLCHab PrependMagickMethod(ConvertRGBToLCHab) +#define ConvertRGBToLCHuv PrependMagickMethod(ConvertRGBToLCHuv) +#define ConvolveImage PrependMagickMethod(ConvolveImage) +#define CopyImagePixels PrependMagickMethod(CopyImagePixels) +#define CropImage PrependMagickMethod(CropImage) +#define CropImageToTiles PrependMagickMethod(CropImageToTiles) +#define CustomStreamToImage PrependMagickMethod(CustomStreamToImage) +#define CycleColormapImage PrependMagickMethod(CycleColormapImage) +#define DecipherImage PrependMagickMethod(DecipherImage) +#define DecodePixelGamma PrependMagickMethod(DecodePixelGamma) +#define DefineImageArtifact PrependMagickMethod(DefineImageArtifact) +#define DefineImageOption PrependMagickMethod(DefineImageOption) +#define DefineImageProperty PrependMagickMethod(DefineImageProperty) +#define DefineImageRegistry PrependMagickMethod(DefineImageRegistry) +#define DelegateComponentGenesis PrependMagickMethod(DelegateComponentGenesis) +#define DelegateComponentTerminus PrependMagickMethod(DelegateComponentTerminus) +#define DeleteImageArtifact PrependMagickMethod(DeleteImageArtifact) +#define DeleteImageFromList PrependMagickMethod(DeleteImageFromList) +#define DeleteImageOption PrependMagickMethod(DeleteImageOption) +#define DeleteImageProfile PrependMagickMethod(DeleteImageProfile) +#define DeleteImageProperty PrependMagickMethod(DeleteImageProperty) +#define DeleteImageRegistry PrependMagickMethod(DeleteImageRegistry) +#define DeleteImages PrependMagickMethod(DeleteImages) +#define DeleteNodeByValueFromSplayTree PrependMagickMethod(DeleteNodeByValueFromSplayTree) +#define DeleteNodeFromSplayTree PrependMagickMethod(DeleteNodeFromSplayTree) +#define DeskewImage PrependMagickMethod(DeskewImage) +#define DespeckleImage PrependMagickMethod(DespeckleImage) +#define DestroyBlob PrependMagickMethod(DestroyBlob) +#define DestroyCacheView PrependMagickMethod(DestroyCacheView) +#define DestroyConfigureOptions PrependMagickMethod(DestroyConfigureOptions) +#define DestroyCustomStreamInfo PrependMagickMethod(DestroyCustomStreamInfo) +#define DestroyDistributeCacheInfo PrependMagickMethod(DestroyDistributeCacheInfo) +#define DestroyDrawInfo PrependMagickMethod(DestroyDrawInfo) +#define DestroyExceptionInfo PrependMagickMethod(DestroyExceptionInfo) +#define DestroyFxInfo PrependMagickMethod(DestroyFxInfo) +#define DestroyImageArtifacts PrependMagickMethod(DestroyImageArtifacts) +#define DestroyImageInfo PrependMagickMethod(DestroyImageInfo) +#define DestroyImageList PrependMagickMethod(DestroyImageList) +#define DestroyImageOptions PrependMagickMethod(DestroyImageOptions) +#define DestroyImagePixels PrependMagickMethod(DestroyImagePixels) +#define DestroyImage PrependMagickMethod(DestroyImage) +#define DestroyImageProfiles PrependMagickMethod(DestroyImageProfiles) +#define DestroyImageProperties PrependMagickMethod(DestroyImageProperties) +#define DestroyImageView PrependMagickMethod(DestroyImageView) +#define DestroyKernelInfo PrependMagickMethod(DestroyKernelInfo) +#define DestroyLinkedList PrependMagickMethod(DestroyLinkedList) +#define DestroyLocaleOptions PrependMagickMethod(DestroyLocaleOptions) +#define DestroyMatrixInfo PrependMagickMethod(DestroyMatrixInfo) +#define DestroyMontageInfo PrependMagickMethod(DestroyMontageInfo) +#define DestroyPixelCacheNexus PrependMagickMethod(DestroyPixelCacheNexus) +#define DestroyPixelCache PrependMagickMethod(DestroyPixelCache) +#define DestroyPixelChannelMap PrependMagickMethod(DestroyPixelChannelMap) +#define DestroyQuantizeInfo PrependMagickMethod(DestroyQuantizeInfo) +#define DestroyQuantumInfo PrependMagickMethod(DestroyQuantumInfo) +#define DestroyRandomInfo PrependMagickMethod(DestroyRandomInfo) +#define DestroyResampleFilter PrependMagickMethod(DestroyResampleFilter) +#define DestroyResizeFilter PrependMagickMethod(DestroyResizeFilter) +#define DestroySignatureInfo PrependMagickMethod(DestroySignatureInfo) +#define DestroySplayTree PrependMagickMethod(DestroySplayTree) +#define DestroyStreamInfo PrependMagickMethod(DestroyStreamInfo) +#define DestroyStringInfo PrependMagickMethod(DestroyStringInfo) +#define DestroyStringList PrependMagickMethod(DestroyStringList) +#define DestroyString PrependMagickMethod(DestroyString) +#define DestroyThresholdMap PrependMagickMethod(DestroyThresholdMap) +#define DestroyTimerInfo PrependMagickMethod(DestroyTimerInfo) +#define DestroyTokenInfo PrependMagickMethod(DestroyTokenInfo) +#define DestroyXMLTree PrependMagickMethod(DestroyXMLTree) +#define DestroyXResources PrependMagickMethod(DestroyXResources) +#define DestroyXWidget PrependMagickMethod(DestroyXWidget) +#define DetachBlob PrependMagickMethod(DetachBlob) +#define DisassociateBlob PrependMagickMethod(DisassociateBlob) +#define DisassociateImageStream PrependMagickMethod(DisassociateImageStream) +#define DiscardBlobBytes PrependMagickMethod(DiscardBlobBytes) +#define DisplayImages PrependMagickMethod(DisplayImages) +#define DisposeImages PrependMagickMethod(DisposeImages) +#define DistortImage PrependMagickMethod(DistortImage) +#define DistortResizeImage PrependMagickMethod(DistortResizeImage) +#define DistributePixelCacheServer PrependMagickMethod(DistributePixelCacheServer) +#define DrawAffineImage PrependMagickMethod(DrawAffineImage) +#define DrawClipPath PrependMagickMethod(DrawClipPath) +#define DrawGradientImage PrependMagickMethod(DrawGradientImage) +#define DrawImage PrependMagickMethod(DrawImage) +#define DrawPatternPath PrependMagickMethod(DrawPatternPath) +#define DrawPrimitive PrependMagickMethod(DrawPrimitive) +#define DuplexTransferImageViewIterator PrependMagickMethod(DuplexTransferImageViewIterator) +#define DuplicateBlob PrependMagickMethod(DuplicateBlob) +#define DuplicateImages PrependMagickMethod(DuplicateImages) +#define EdgeImage PrependMagickMethod(EdgeImage) +#define EmbossImage PrependMagickMethod(EmbossImage) +#define EncipherImage PrependMagickMethod(EncipherImage) +#define EncodePixelGamma PrependMagickMethod(EncodePixelGamma) +#define EnhanceImage PrependMagickMethod(EnhanceImage) +#define EOFBlob PrependMagickMethod(EOFBlob) +#define EqualizeImage PrependMagickMethod(EqualizeImage) +#define EscapeString PrependMagickMethod(EscapeString) +#define EvaluateImage PrependMagickMethod(EvaluateImage) +#define EvaluateImages PrependMagickMethod(EvaluateImages) +#define ExcerptImage PrependMagickMethod(ExcerptImage) +#define ExpandAffine PrependMagickMethod(ExpandAffine) +#define ExpandFilename PrependMagickMethod(ExpandFilename) +#define ExpandFilenames PrependMagickMethod(ExpandFilenames) +#define ExportImagePixels PrependMagickMethod(ExportImagePixels) +#define ExportQuantumPixels PrependMagickMethod(ExportQuantumPixels) +#define ExtentImage PrependMagickMethod(ExtentImage) +#define ExternalDelegateCommand PrependMagickMethod(ExternalDelegateCommand) +#define FileToBlob PrependMagickMethod(FileToBlob) +#define FileToImage PrependMagickMethod(FileToImage) +#define FileToStringInfo PrependMagickMethod(FileToStringInfo) +#define FileToString PrependMagickMethod(FileToString) +#define FileToXML PrependMagickMethod(FileToXML) +#define FinalizeSignature PrependMagickMethod(FinalizeSignature) +#define FlipImage PrependMagickMethod(FlipImage) +#define FloodfillPaintImage PrependMagickMethod(FloodfillPaintImage) +#define FlopImage PrependMagickMethod(FlopImage) +#define FormatImageProperty PrependMagickMethod(FormatImageProperty) +#define FormatLocaleFileList PrependMagickMethod(FormatLocaleFileList) +#define FormatLocaleFile PrependMagickMethod(FormatLocaleFile) +#define FormatLocaleStringList PrependMagickMethod(FormatLocaleStringList) +#define FormatLocaleString PrependMagickMethod(FormatLocaleString) +#define ForwardFourierTransformImage PrependMagickMethod(ForwardFourierTransformImage) +#define FrameImage PrependMagickMethod(FrameImage) +#define FunctionImage PrependMagickMethod(FunctionImage) +#define FxEvaluateChannelExpression PrependMagickMethod(FxEvaluateChannelExpression) +#define FxEvaluateExpression PrependMagickMethod(FxEvaluateExpression) +#define FxImage PrependMagickMethod(FxImage) +#define FxPreprocessExpression PrependMagickMethod(FxPreprocessExpression) +#define GammaImage PrependMagickMethod(GammaImage) +#define GaussianBlurImage PrependMagickMethod(GaussianBlurImage) +#define GaussJordanElimination PrependMagickMethod(GaussJordanElimination) +#define GenerateDifferentialNoise PrependMagickMethod(GenerateDifferentialNoise) +#define GetAffineMatrix PrependMagickMethod(GetAffineMatrix) +#define GetAuthenticMetacontent PrependMagickMethod(GetAuthenticMetacontent) +#define GetAuthenticPixelCacheNexus PrependMagickMethod(GetAuthenticPixelCacheNexus) +#define GetAuthenticPixelQueue PrependMagickMethod(GetAuthenticPixelQueue) +#define GetAuthenticPixels PrependMagickMethod(GetAuthenticPixels) +#define GetBlobError PrependMagickMethod(GetBlobError) +#define GetBlobFileHandle PrependMagickMethod(GetBlobFileHandle) +#define GetBlobInfo PrependMagickMethod(GetBlobInfo) +#define GetBlobProperties PrependMagickMethod(GetBlobProperties) +#define GetBlobSize PrependMagickMethod(GetBlobSize) +#define GetBlobStreamData PrependMagickMethod(GetBlobStreamData) +#define GetBlobStreamHandler PrependMagickMethod(GetBlobStreamHandler) +#define GetCacheViewAuthenticMetacontent PrependMagickMethod(GetCacheViewAuthenticMetacontent) +#define GetCacheViewAuthenticPixelQueue PrependMagickMethod(GetCacheViewAuthenticPixelQueue) +#define GetCacheViewAuthenticPixels PrependMagickMethod(GetCacheViewAuthenticPixels) +#define GetCacheViewColorspace PrependMagickMethod(GetCacheViewColorspace) +#define GetCacheViewExtent PrependMagickMethod(GetCacheViewExtent) +#define GetCacheViewImage PrependMagickMethod(GetCacheViewImage) +#define GetCacheViewStorageClass PrependMagickMethod(GetCacheViewStorageClass) +#define GetCacheViewVirtualMetacontent PrependMagickMethod(GetCacheViewVirtualMetacontent) +#define GetCacheViewVirtualPixelQueue PrependMagickMethod(GetCacheViewVirtualPixelQueue) +#define GetCacheViewVirtualPixels PrependMagickMethod(GetCacheViewVirtualPixels) +#define GetClientName PrependMagickMethod(GetClientName) +#define GetClientPath PrependMagickMethod(GetClientPath) +#define GetCoderInfoList PrependMagickMethod(GetCoderInfoList) +#define GetCoderInfo PrependMagickMethod(GetCoderInfo) +#define GetCoderList PrependMagickMethod(GetCoderList) +#define GetColorCompliance PrependMagickMethod(GetColorCompliance) +#define GetColorInfoList PrependMagickMethod(GetColorInfoList) +#define GetColorInfo PrependMagickMethod(GetColorInfo) +#define GetColorList PrependMagickMethod(GetColorList) +#define GetColorTuple PrependMagickMethod(GetColorTuple) +#define GetCommandOptionFlags PrependMagickMethod(GetCommandOptionFlags) +#define GetCommandOptionInfo PrependMagickMethod(GetCommandOptionInfo) +#define GetCommandOptions PrependMagickMethod(GetCommandOptions) +#define GetConfigureInfoList PrependMagickMethod(GetConfigureInfoList) +#define GetConfigureInfo PrependMagickMethod(GetConfigureInfo) +#define GetConfigureList PrependMagickMethod(GetConfigureList) +#define GetConfigureOption PrependMagickMethod(GetConfigureOption) +#define GetConfigureOptions PrependMagickMethod(GetConfigureOptions) +#define GetConfigurePaths PrependMagickMethod(GetConfigurePaths) +#define GetConfigureValue PrependMagickMethod(GetConfigureValue) +#define GetDelegateCommand PrependMagickMethod(GetDelegateCommand) +#define GetDelegateCommands PrependMagickMethod(GetDelegateCommands) +#define GetDelegateInfoList PrependMagickMethod(GetDelegateInfoList) +#define GetDelegateInfo PrependMagickMethod(GetDelegateInfo) +#define GetDelegateList PrependMagickMethod(GetDelegateList) +#define GetDelegateMode PrependMagickMethod(GetDelegateMode) +#define GetDelegateThreadSupport PrependMagickMethod(GetDelegateThreadSupport) +#define GetDistributeCacheFile PrependMagickMethod(GetDistributeCacheFile) +#define GetDistributeCacheHostname PrependMagickMethod(GetDistributeCacheHostname) +#define GetDistributeCachePort PrependMagickMethod(GetDistributeCachePort) +#define GetDrawInfo PrependMagickMethod(GetDrawInfo) +#define GetElapsedTime PrependMagickMethod(GetElapsedTime) +#define GetEnvironmentValue PrependMagickMethod(GetEnvironmentValue) +#define GetExceptionMessage PrependMagickMethod(GetExceptionMessage) +#define GetExecutionPath PrependMagickMethod(GetExecutionPath) +#define GetFirstImageInList PrependMagickMethod(GetFirstImageInList) +#define GetGeometry PrependMagickMethod(GetGeometry) +#define GetImageAlphaChannel PrependMagickMethod(GetImageAlphaChannel) +#define GetImageArtifact PrependMagickMethod(GetImageArtifact) +#define GetImageBoundingBox PrependMagickMethod(GetImageBoundingBox) +#define GetImageColorspaceType PrependMagickMethod(GetImageColorspaceType) +#define GetImageDecoder PrependMagickMethod(GetImageDecoder) +#define GetImageDepth PrependMagickMethod(GetImageDepth) +#define GetImageDistortion PrependMagickMethod(GetImageDistortion) +#define GetImageDistortions PrependMagickMethod(GetImageDistortions) +#define GetImageDynamicThreshold PrependMagickMethod(GetImageDynamicThreshold) +#define GetImageEncoder PrependMagickMethod(GetImageEncoder) +#define GetImageEntropy PrependMagickMethod(GetImageEntropy) +#define GetImageExtent PrependMagickMethod(GetImageExtent) +#define GetImageExtrema PrependMagickMethod(GetImageExtrema) +#define GetImageFeatures PrependMagickMethod(GetImageFeatures) +#define GetImageFromList PrependMagickMethod(GetImageFromList) +#define GetImageHistogram PrependMagickMethod(GetImageHistogram) +#define GetImageIndexInList PrependMagickMethod(GetImageIndexInList) +#define GetImageInfoFile PrependMagickMethod(GetImageInfoFile) +#define GetImageInfo PrependMagickMethod(GetImageInfo) +#define GetImageKurtosis PrependMagickMethod(GetImageKurtosis) +#define GetImageListLength PrependMagickMethod(GetImageListLength) +#define GetImageMask PrependMagickMethod(GetImageMask) +#define GetImageMean PrependMagickMethod(GetImageMean) +#define GetImageMoments PrependMagickMethod(GetImageMoments) +#define GetImageOption PrependMagickMethod(GetImageOption) +#define GetImagePerceptualHash PrependMagickMethod(GetImagePerceptualHash) +#define GetImagePixelCacheType PrependMagickMethod(GetImagePixelCacheType) +#define GetImageProfile PrependMagickMethod(GetImageProfile) +#define GetImageProperty PrependMagickMethod(GetImageProperty) +#define GetImageQuantizeError PrependMagickMethod(GetImageQuantizeError) +#define GetImageQuantumDepth PrependMagickMethod(GetImageQuantumDepth) +#define GetImageRange PrependMagickMethod(GetImageRange) +#define GetImageReferenceCount PrependMagickMethod(GetImageReferenceCount) +#define GetImageRegistry PrependMagickMethod(GetImageRegistry) +#define GetImageStatistics PrependMagickMethod(GetImageStatistics) +#define GetImageTotalInkDensity PrependMagickMethod(GetImageTotalInkDensity) +#define GetImageType PrependMagickMethod(GetImageType) +#define GetImageViewAuthenticMetacontent PrependMagickMethod(GetImageViewAuthenticMetacontent) +#define GetImageViewAuthenticPixels PrependMagickMethod(GetImageViewAuthenticPixels) +#define GetImageViewException PrependMagickMethod(GetImageViewException) +#define GetImageViewExtent PrependMagickMethod(GetImageViewExtent) +#define GetImageViewImage PrependMagickMethod(GetImageViewImage) +#define GetImageViewIterator PrependMagickMethod(GetImageViewIterator) +#define GetImageViewVirtualMetacontent PrependMagickMethod(GetImageViewVirtualMetacontent) +#define GetImageViewVirtualPixels PrependMagickMethod(GetImageViewVirtualPixels) +#define GetImageVirtualPixelMethod PrependMagickMethod(GetImageVirtualPixelMethod) +#define GetLastImageInList PrependMagickMethod(GetLastImageInList) +#define GetLastValueInLinkedList PrependMagickMethod(GetLastValueInLinkedList) +#define GetLocaleExceptionMessage PrependMagickMethod(GetLocaleExceptionMessage) +#define GetLocaleInfoList PrependMagickMethod(GetLocaleInfoList) +#define GetLocaleInfo_ PrependMagickMethod(GetLocaleInfo_) +#define GetLocaleList PrependMagickMethod(GetLocaleList) +#define GetLocaleMessage PrependMagickMethod(GetLocaleMessage) +#define GetLocaleOptions PrependMagickMethod(GetLocaleOptions) +#define GetLocaleValue PrependMagickMethod(GetLocaleValue) +#define GetLogInfoList PrependMagickMethod(GetLogInfoList) +#define GetLogList PrependMagickMethod(GetLogList) +#define GetLogName PrependMagickMethod(GetLogName) +#define GetMagicInfoList PrependMagickMethod(GetMagicInfoList) +#define GetMagicInfo PrependMagickMethod(GetMagicInfo) +#define GetMagicList PrependMagickMethod(GetMagicList) +#define GetMagicName PrependMagickMethod(GetMagicName) +#define GetMagicPatternExtent PrependMagickMethod(GetMagicPatternExtent) +#define GetMatrixColumns PrependMagickMethod(GetMatrixColumns) +#define GetMatrixElement PrependMagickMethod(GetMatrixElement) +#define GetMatrixRows PrependMagickMethod(GetMatrixRows) +#define GetMimeDescription PrependMagickMethod(GetMimeDescription) +#define GetMimeInfoList PrependMagickMethod(GetMimeInfoList) +#define GetMimeInfo PrependMagickMethod(GetMimeInfo) +#define GetMimeList PrependMagickMethod(GetMimeList) +#define GetMimeType PrependMagickMethod(GetMimeType) +#define GetMontageInfo PrependMagickMethod(GetMontageInfo) +#define GetMultilineTypeMetrics PrependMagickMethod(GetMultilineTypeMetrics) +#define GetNextImageArtifact PrependMagickMethod(GetNextImageArtifact) +#define GetNextImageInList PrependMagickMethod(GetNextImageInList) +#define GetNextImageOption PrependMagickMethod(GetNextImageOption) +#define GetNextImageProfile PrependMagickMethod(GetNextImageProfile) +#define GetNextImageProperty PrependMagickMethod(GetNextImageProperty) +#define GetNextImageRegistry PrependMagickMethod(GetNextImageRegistry) +#define GetNextKeyInSplayTree PrependMagickMethod(GetNextKeyInSplayTree) +#define GetNextToken PrependMagickMethod(GetNextToken) +#define GetNextValueInLinkedList PrependMagickMethod(GetNextValueInLinkedList) +#define GetNextValueInSplayTree PrependMagickMethod(GetNextValueInSplayTree) +#define GetNextXMLTreeTag PrependMagickMethod(GetNextXMLTreeTag) +#define GetNumberColors PrependMagickMethod(GetNumberColors) +#define GetNumberOfElementsInLinkedList PrependMagickMethod(GetNumberOfElementsInLinkedList) +#define GetNumberOfNodesInSplayTree PrependMagickMethod(GetNumberOfNodesInSplayTree) +#define GetOneAuthenticPixel PrependMagickMethod(GetOneAuthenticPixel) +#define GetOneCacheViewAuthenticPixel PrependMagickMethod(GetOneCacheViewAuthenticPixel) +#define GetOneCacheViewVirtualMethodPixel PrependMagickMethod(GetOneCacheViewVirtualMethodPixel) +#define GetOneCacheViewVirtualPixelInfo PrependMagickMethod(GetOneCacheViewVirtualPixelInfo) +#define GetOneCacheViewVirtualPixel PrependMagickMethod(GetOneCacheViewVirtualPixel) +#define GetOneVirtualPixelInfo PrependMagickMethod(GetOneVirtualPixelInfo) +#define GetOneVirtualPixel PrependMagickMethod(GetOneVirtualPixel) +#define GetOpenCLDeviceBenchmarkScore PrependMagickMethod(GetOpenCLDeviceBenchmarkScore) +#define GetOpenCLDeviceEnabled PrependMagickMethod(GetOpenCLDeviceEnabled) +#define GetOpenCLDeviceName PrependMagickMethod(GetOpenCLDeviceName) +#define GetOpenCLDevices PrependMagickMethod(GetOpenCLDevices) +#define GetOpenCLDeviceType PrependMagickMethod(GetOpenCLDeviceType) +#define GetOpenCLDeviceVersion PrependMagickMethod(GetOpenCLDeviceVersion) +#define GetOpenCLEnabled PrependMagickMethod(GetOpenCLEnabled) +#define GetOpenCLKernelProfileRecords PrependMagickMethod(GetOpenCLKernelProfileRecords) +#define GetOptimalKernelWidth1D PrependMagickMethod(GetOptimalKernelWidth1D) +#define GetOptimalKernelWidth2D PrependMagickMethod(GetOptimalKernelWidth2D) +#define GetOptimalKernelWidth PrependMagickMethod(GetOptimalKernelWidth) +#define GetPageGeometry PrependMagickMethod(GetPageGeometry) +#define GetPathAttributes PrependMagickMethod(GetPathAttributes) +#define GetPathComponent PrependMagickMethod(GetPathComponent) +#define GetPathComponents PrependMagickMethod(GetPathComponents) +#define GetPathTemplate PrependMagickMethod(GetPathTemplate) +#define GetPixelCacheColorspace PrependMagickMethod(GetPixelCacheColorspace) +#define GetPixelCacheFilename PrependMagickMethod(GetPixelCacheFilename) +#define GetPixelCacheMethods PrependMagickMethod(GetPixelCacheMethods) +#define GetPixelCacheNexusExtent PrependMagickMethod(GetPixelCacheNexusExtent) +#define GetPixelCachePixels PrependMagickMethod(GetPixelCachePixels) +#define GetPixelCacheStorageClass PrependMagickMethod(GetPixelCacheStorageClass) +#define GetPixelCacheTileSize PrependMagickMethod(GetPixelCacheTileSize) +#define GetPixelCacheVirtualMethod PrependMagickMethod(GetPixelCacheVirtualMethod) +#define GetPixelInfoIntensity PrependMagickMethod(GetPixelInfoIntensity) +#define GetPixelInfo PrependMagickMethod(GetPixelInfo) +#define GetPixelIntensity PrependMagickMethod(GetPixelIntensity) +#define GetPolicyInfoList PrependMagickMethod(GetPolicyInfoList) +#define GetPolicyList PrependMagickMethod(GetPolicyList) +#define GetPolicyValue PrependMagickMethod(GetPolicyValue) +#define GetPreviousImageInList PrependMagickMethod(GetPreviousImageInList) +#define GetPseudoRandomValue PrependMagickMethod(GetPseudoRandomValue) +#define GetQuantizeInfo PrependMagickMethod(GetQuantizeInfo) +#define GetQuantumEndian PrependMagickMethod(GetQuantumEndian) +#define GetQuantumExtent PrependMagickMethod(GetQuantumExtent) +#define GetQuantumFormat PrependMagickMethod(GetQuantumFormat) +#define GetQuantumInfo PrependMagickMethod(GetQuantumInfo) +#define GetQuantumPixels PrependMagickMethod(GetQuantumPixels) +#define GetQuantumType PrependMagickMethod(GetQuantumType) +#define GetRandomInfoNormalize PrependMagickMethod(GetRandomInfoNormalize) +#define GetRandomInfoSeed PrependMagickMethod(GetRandomInfoSeed) +#define GetRandomKey PrependMagickMethod(GetRandomKey) +#define GetRandomSecretKey PrependMagickMethod(GetRandomSecretKey) +#define GetRandomValue PrependMagickMethod(GetRandomValue) +#define GetResizeFilterBlur PrependMagickMethod(GetResizeFilterBlur) +#define GetResizeFilterCoefficient PrependMagickMethod(GetResizeFilterCoefficient) +#define GetResizeFilterScale PrependMagickMethod(GetResizeFilterScale) +#define GetResizeFilterSupport PrependMagickMethod(GetResizeFilterSupport) +#define GetResizeFilterWeightingType PrependMagickMethod(GetResizeFilterWeightingType) +#define GetResizeFilterWeight PrependMagickMethod(GetResizeFilterWeight) +#define GetResizeFilterWindowSupport PrependMagickMethod(GetResizeFilterWindowSupport) +#define GetResizeFilterWindowWeightingType PrependMagickMethod(GetResizeFilterWindowWeightingType) +#define GetRootValueFromSplayTree PrependMagickMethod(GetRootValueFromSplayTree) +#define GetSignatureBlocksize PrependMagickMethod(GetSignatureBlocksize) +#define GetSignatureDigest PrependMagickMethod(GetSignatureDigest) +#define GetSignatureDigestsize PrependMagickMethod(GetSignatureDigestsize) +#define GetStreamInfoClientData PrependMagickMethod(GetStreamInfoClientData) +#define GetStringInfoDatum PrependMagickMethod(GetStringInfoDatum) +#define GetStringInfoLength PrependMagickMethod(GetStringInfoLength) +#define GetStringInfoPath PrependMagickMethod(GetStringInfoPath) +#define GetThresholdMap PrependMagickMethod(GetThresholdMap) +#define GetTimerInfo PrependMagickMethod(GetTimerInfo) +#define GetTypeInfoByFamily PrependMagickMethod(GetTypeInfoByFamily) +#define GetTypeInfoList PrependMagickMethod(GetTypeInfoList) +#define GetTypeInfo PrependMagickMethod(GetTypeInfo) +#define GetTypeList PrependMagickMethod(GetTypeList) +#define GetTypeMetrics PrependMagickMethod(GetTypeMetrics) +#define GetUserTime PrependMagickMethod(GetUserTime) +#define GetValueFromLinkedList PrependMagickMethod(GetValueFromLinkedList) +#define GetValueFromSplayTree PrependMagickMethod(GetValueFromSplayTree) +#define GetVirtualMemoryBlob PrependMagickMethod(GetVirtualMemoryBlob) +#define GetVirtualMetacontentFromNexus PrependMagickMethod(GetVirtualMetacontentFromNexus) +#define GetVirtualMetacontent PrependMagickMethod(GetVirtualMetacontent) +#define GetVirtualPixelQueue PrependMagickMethod(GetVirtualPixelQueue) +#define GetVirtualPixelsFromNexus PrependMagickMethod(GetVirtualPixelsFromNexus) +#define GetVirtualPixelsNexus PrependMagickMethod(GetVirtualPixelsNexus) +#define GetVirtualPixels PrependMagickMethod(GetVirtualPixels) +#define GetXMLTreeAttribute PrependMagickMethod(GetXMLTreeAttribute) +#define GetXMLTreeAttributes PrependMagickMethod(GetXMLTreeAttributes) +#define GetXMLTreeChild PrependMagickMethod(GetXMLTreeChild) +#define GetXMLTreeContent PrependMagickMethod(GetXMLTreeContent) +#define GetXMLTreeOrdered PrependMagickMethod(GetXMLTreeOrdered) +#define GetXMLTreePath PrependMagickMethod(GetXMLTreePath) +#define GetXMLTreeProcessingInstructions PrependMagickMethod(GetXMLTreeProcessingInstructions) +#define GetXMLTreeSibling PrependMagickMethod(GetXMLTreeSibling) +#define GetXMLTreeTag PrependMagickMethod(GetXMLTreeTag) +#define GlobExpression PrependMagickMethod(GlobExpression) +#define GradientImage PrependMagickMethod(GradientImage) +#define GravityAdjustGeometry PrependMagickMethod(GravityAdjustGeometry) +#define GrayscaleImage PrependMagickMethod(GrayscaleImage) +#define HaldClutImage PrependMagickMethod(HaldClutImage) +#define HeapOverflowSanityCheck PrependMagickMethod(HeapOverflowSanityCheck) +#define HoughLineImage PrependMagickMethod(HoughLineImage) +#define HuffmanDecodeImage PrependMagickMethod(HuffmanDecodeImage) +#define HuffmanEncodeImage PrependMagickMethod(HuffmanEncodeImage) +#define IdentifyImageGray PrependMagickMethod(IdentifyImageGray) +#define IdentifyImageMonochrome PrependMagickMethod(IdentifyImageMonochrome) +#define IdentifyImage PrependMagickMethod(IdentifyImage) +#define IdentifyImageType PrependMagickMethod(IdentifyImageType) +#define IdentifyPaletteImage PrependMagickMethod(IdentifyPaletteImage) +#define ImageListToArray PrependMagickMethod(ImageListToArray) +#define ImagesToBlob PrependMagickMethod(ImagesToBlob) +#define ImagesToCustomStream PrependMagickMethod(ImagesToCustomStream) +#define ImageToBlob PrependMagickMethod(ImageToBlob) +#define ImageToCustomStream PrependMagickMethod(ImageToCustomStream) +#define ImageToFile PrependMagickMethod(ImageToFile) +#define ImplodeImage PrependMagickMethod(ImplodeImage) +#define ImportImagePixels PrependMagickMethod(ImportImagePixels) +#define ImportQuantumPixels PrependMagickMethod(ImportQuantumPixels) +#define InheritException PrependMagickMethod(InheritException) +#define InitializeExceptionInfo PrependMagickMethod(InitializeExceptionInfo) +#define InitializePixelChannelMap PrependMagickMethod(InitializePixelChannelMap) +#define InitializeSignature PrependMagickMethod(InitializeSignature) +#define InjectImageBlob PrependMagickMethod(InjectImageBlob) +#define InsertImageInList PrependMagickMethod(InsertImageInList) +#define InsertTagIntoXMLTree PrependMagickMethod(InsertTagIntoXMLTree) +#define InsertValueInLinkedList PrependMagickMethod(InsertValueInLinkedList) +#define InsertValueInSortedLinkedList PrependMagickMethod(InsertValueInSortedLinkedList) +#define IntegralRotateImage PrependMagickMethod(IntegralRotateImage) +#define InterpolatePixelChannel PrependMagickMethod(InterpolatePixelChannel) +#define InterpolatePixelChannels PrependMagickMethod(InterpolatePixelChannels) +#define InterpolatePixelInfo PrependMagickMethod(InterpolatePixelInfo) +#define InterpolativeResizeImage PrependMagickMethod(InterpolativeResizeImage) +#define InterpretImageFilename PrependMagickMethod(InterpretImageFilename) +#define InterpretImageProperties PrependMagickMethod(InterpretImageProperties) +#define InterpretLocaleValue PrependMagickMethod(InterpretLocaleValue) +#define InterpretSiPrefixValue PrependMagickMethod(InterpretSiPrefixValue) +#define InverseFourierTransformImage PrependMagickMethod(InverseFourierTransformImage) +#define InvokeDelegate PrependMagickMethod(InvokeDelegate) +#define InvokeDynamicImageFilter PrependMagickMethod(InvokeDynamicImageFilter) +#define IsBlobExempt PrependMagickMethod(IsBlobExempt) +#define IsBlobSeekable PrependMagickMethod(IsBlobSeekable) +#define IsBlobTemporary PrependMagickMethod(IsBlobTemporary) +#define IsCommandOption PrependMagickMethod(IsCommandOption) +#define IsEquivalentAlpha PrependMagickMethod(IsEquivalentAlpha) +#define IsEquivalentImage PrependMagickMethod(IsEquivalentImage) +#define IsEquivalentIntensity PrependMagickMethod(IsEquivalentIntensity) +#define IsEventLogging PrependMagickMethod(IsEventLogging) +#define IsFuzzyEquivalencePixelInfo PrependMagickMethod(IsFuzzyEquivalencePixelInfo) +#define IsFuzzyEquivalencePixel PrependMagickMethod(IsFuzzyEquivalencePixel) +#define IsGeometry PrependMagickMethod(IsGeometry) +#define IsGlob PrependMagickMethod(IsGlob) +#define IsHighDynamicRangeImage PrependMagickMethod(IsHighDynamicRangeImage) +#define IsHistogramImage PrependMagickMethod(IsHistogramImage) +#define IsImageGray PrependMagickMethod(IsImageGray) +#define IsImageMonochrome PrependMagickMethod(IsImageMonochrome) +#define IsImageObject PrependMagickMethod(IsImageObject) +#define IsImageOpaque PrependMagickMethod(IsImageOpaque) +#define IsImagesEqual PrependMagickMethod(IsImagesEqual) +#define IsImageView PrependMagickMethod(IsImageView) +#define IsLinkedListEmpty PrependMagickMethod(IsLinkedListEmpty) +#define IsOptionMember PrependMagickMethod(IsOptionMember) +#define IsPaletteImage PrependMagickMethod(IsPaletteImage) +#define IsPathAccessible PrependMagickMethod(IsPathAccessible) +#define IsRightsAuthorized PrependMagickMethod(IsRightsAuthorized) +#define IsSceneGeometry PrependMagickMethod(IsSceneGeometry) +#define IsStringFalse PrependMagickMethod(IsStringFalse) +#define IsStringTrue PrependMagickMethod(IsStringTrue) +#define IsTaintImage PrependMagickMethod(IsTaintImage) +#define KuwaharaImage PrependMagickMethod(KuwaharaImage) +#define LeastSquaresAddTerms PrependMagickMethod(LeastSquaresAddTerms) +#define LevelImageColors PrependMagickMethod(LevelImageColors) +#define LevelImage PrependMagickMethod(LevelImage) +#define LevelizeImage PrependMagickMethod(LevelizeImage) +#define LinearStretchImage PrependMagickMethod(LinearStretchImage) +#define LinkedListToArray PrependMagickMethod(LinkedListToArray) +#define LiquidRescaleImage PrependMagickMethod(LiquidRescaleImage) +#define ListCoderInfo PrependMagickMethod(ListCoderInfo) +#define ListColorInfo PrependMagickMethod(ListColorInfo) +#define ListCommandOptions PrependMagickMethod(ListCommandOptions) +#define ListConfigureInfo PrependMagickMethod(ListConfigureInfo) +#define ListDelegateInfo PrependMagickMethod(ListDelegateInfo) +#define ListFiles PrependMagickMethod(ListFiles) +#define ListLocaleInfo PrependMagickMethod(ListLocaleInfo) +#define ListLogInfo PrependMagickMethod(ListLogInfo) +#define ListMagicInfo PrependMagickMethod(ListMagicInfo) +#define ListMimeInfo PrependMagickMethod(ListMimeInfo) +#define ListModuleInfo PrependMagickMethod(ListModuleInfo) +#define ListPolicyInfo PrependMagickMethod(ListPolicyInfo) +#define ListThresholdMapFile PrependMagickMethod(ListThresholdMapFile) +#define ListThresholdMaps PrependMagickMethod(ListThresholdMaps) +#define ListTypeInfo PrependMagickMethod(ListTypeInfo) +#define LoadFontConfigFonts PrependMagickMethod(LoadFontConfigFonts) +#define LocalContrastImage PrependMagickMethod(LocalContrastImage) +#define LocaleCompare PrependMagickMethod(LocaleCompare) +#define LocaleComponentGenesis PrependMagickMethod(LocaleComponentGenesis) +#define LocaleComponentTerminus PrependMagickMethod(LocaleComponentTerminus) +#define LocaleLower PrependMagickMethod(LocaleLower) +#define LocaleNCompare PrependMagickMethod(LocaleNCompare) +#define LocaleUpper PrependMagickMethod(LocaleUpper) +#define LockSemaphoreInfo PrependMagickMethod(LockSemaphoreInfo) +#define LogComponentGenesis PrependMagickMethod(LogComponentGenesis) +#define LogComponentTerminus PrependMagickMethod(LogComponentTerminus) +#define LZWEncodeImage PrependMagickMethod(LZWEncodeImage) +#define MagicComponentGenesis PrependMagickMethod(MagicComponentGenesis) +#define MagicComponentTerminus PrependMagickMethod(MagicComponentTerminus) +#define MagnifyImage PrependMagickMethod(MagnifyImage) +#define MapBlob PrependMagickMethod(MapBlob) +#define MatrixToImage PrependMagickMethod(MatrixToImage) +#define MeanShiftImage PrependMagickMethod(MeanShiftImage) +#define MergeImageLayers PrependMagickMethod(MergeImageLayers) +#define MimeComponentGenesis PrependMagickMethod(MimeComponentGenesis) +#define MimeComponentTerminus PrependMagickMethod(MimeComponentTerminus) +#define MinifyImage PrependMagickMethod(MinifyImage) +#define MinMaxStretchImage PrependMagickMethod(MinMaxStretchImage) +#define ModifyImage PrependMagickMethod(ModifyImage) +#define ModulateImage PrependMagickMethod(ModulateImage) +#define MontageImageList PrependMagickMethod(MontageImageList) +#define MontageImages PrependMagickMethod(MontageImages) +#define MorphImages PrependMagickMethod(MorphImages) +#define MorphologyApply PrependMagickMethod(MorphologyApply) +#define MorphologyImage PrependMagickMethod(MorphologyImage) +#define MotionBlurImage PrependMagickMethod(MotionBlurImage) +#define MSBOrderLong PrependMagickMethod(MSBOrderLong) +#define MSBOrderShort PrependMagickMethod(MSBOrderShort) +#define MultilineCensus PrependMagickMethod(MultilineCensus) +#define NegateImage PrependMagickMethod(NegateImage) +#define NewImageList PrependMagickMethod(NewImageList) +#define NewImageView PrependMagickMethod(NewImageView) +#define NewImageViewRegion PrependMagickMethod(NewImageViewRegion) +#define NewLinkedList PrependMagickMethod(NewLinkedList) +#define NewSplayTree PrependMagickMethod(NewSplayTree) +#define NewXMLTree PrependMagickMethod(NewXMLTree) +#define NewXMLTreeTag PrependMagickMethod(NewXMLTreeTag) +#define NormalizeImage PrependMagickMethod(NormalizeImage) +#define NullMatrix PrependMagickMethod(NullMatrix) +#define OilPaintImage PrependMagickMethod(OilPaintImage) +#define OpaquePaintImage PrependMagickMethod(OpaquePaintImage) +#define OpenBlob PrependMagickMethod(OpenBlob) +#define OpenDistributePixelCache PrependMagickMethod(OpenDistributePixelCache) +#define OpenStream PrependMagickMethod(OpenStream) +#define OptimizeImageLayers PrependMagickMethod(OptimizeImageLayers) +#define OptimizeImageTransparency PrependMagickMethod(OptimizeImageTransparency) +#define OptimizePlusImageLayers PrependMagickMethod(OptimizePlusImageLayers) +#define OrderedDitherImage PrependMagickMethod(OrderedDitherImage) +#define PackbitsEncodeImage PrependMagickMethod(PackbitsEncodeImage) +#define ParseAbsoluteGeometry PrependMagickMethod(ParseAbsoluteGeometry) +#define ParseAffineGeometry PrependMagickMethod(ParseAffineGeometry) +#define ParseChannelOption PrependMagickMethod(ParseChannelOption) +#define ParseCommandOption PrependMagickMethod(ParseCommandOption) +#define ParseGeometry PrependMagickMethod(ParseGeometry) +#define ParseGravityGeometry PrependMagickMethod(ParseGravityGeometry) +#define ParseMetaGeometry PrependMagickMethod(ParseMetaGeometry) +#define ParsePageGeometry PrependMagickMethod(ParsePageGeometry) +#define ParsePixelChannelOption PrependMagickMethod(ParsePixelChannelOption) +#define ParseRegionGeometry PrependMagickMethod(ParseRegionGeometry) +#define PasskeyDecipherImage PrependMagickMethod(PasskeyDecipherImage) +#define PasskeyEncipherImage PrependMagickMethod(PasskeyEncipherImage) +#define PerceptibleImage PrependMagickMethod(PerceptibleImage) +#define PersistPixelCache PrependMagickMethod(PersistPixelCache) +#define PingBlob PrependMagickMethod(PingBlob) +#define PingImage PrependMagickMethod(PingImage) +#define PingImages PrependMagickMethod(PingImages) +#define PlasmaImage PrependMagickMethod(PlasmaImage) +#define PolaroidImage PrependMagickMethod(PolaroidImage) +#define PolicyComponentGenesis PrependMagickMethod(PolicyComponentGenesis) +#define PolicyComponentTerminus PrependMagickMethod(PolicyComponentTerminus) +#define PolynomialImage PrependMagickMethod(PolynomialImage) +#define PosterizeImage PrependMagickMethod(PosterizeImage) +#define PrependImageToList PrependMagickMethod(PrependImageToList) +#define PreviewImage PrependMagickMethod(PreviewImage) +#define PrintStringInfo PrependMagickMethod(PrintStringInfo) +#define process_message PrependMagickMethod(process_message) +#define ProfileImage PrependMagickMethod(ProfileImage) +#define PruneTagFromXMLTree PrependMagickMethod(PruneTagFromXMLTree) +#define QuantizeImage PrependMagickMethod(QuantizeImage) +#define QuantizeImages PrependMagickMethod(QuantizeImages) +#define QueryColorCompliance PrependMagickMethod(QueryColorCompliance) +#define QueryColorname PrependMagickMethod(QueryColorname) +#define QueueAuthenticPixelCacheNexus PrependMagickMethod(QueueAuthenticPixelCacheNexus) +#define QueueAuthenticPixels PrependMagickMethod(QueueAuthenticPixels) +#define QueueCacheViewAuthenticPixels PrependMagickMethod(QueueCacheViewAuthenticPixels) +#define RaiseImage PrependMagickMethod(RaiseImage) +#define RandomComponentGenesis PrependMagickMethod(RandomComponentGenesis) +#define RandomComponentTerminus PrependMagickMethod(RandomComponentTerminus) +#define RandomThresholdImage PrependMagickMethod(RandomThresholdImage) +#define ReadBlobByte PrependMagickMethod(ReadBlobByte) +#define ReadBlobDouble PrependMagickMethod(ReadBlobDouble) +#define ReadBlobFloat PrependMagickMethod(ReadBlobFloat) +#define ReadBlobLongLong PrependMagickMethod(ReadBlobLongLong) +#define ReadBlobLong PrependMagickMethod(ReadBlobLong) +#define ReadBlobLSBLong PrependMagickMethod(ReadBlobLSBLong) +#define ReadBlobLSBShort PrependMagickMethod(ReadBlobLSBShort) +#define ReadBlobLSBSignedLong PrependMagickMethod(ReadBlobLSBSignedLong) +#define ReadBlobLSBSignedShort PrependMagickMethod(ReadBlobLSBSignedShort) +#define ReadBlobMSBLongLong PrependMagickMethod(ReadBlobMSBLongLong) +#define ReadBlobMSBLong PrependMagickMethod(ReadBlobMSBLong) +#define ReadBlobMSBShort PrependMagickMethod(ReadBlobMSBShort) +#define ReadBlobMSBSignedLong PrependMagickMethod(ReadBlobMSBSignedLong) +#define ReadBlobMSBSignedShort PrependMagickMethod(ReadBlobMSBSignedShort) +#define ReadBlob PrependMagickMethod(ReadBlob) +#define ReadBlobShort PrependMagickMethod(ReadBlobShort) +#define ReadBlobSignedLong PrependMagickMethod(ReadBlobSignedLong) +#define ReadBlobSignedShort PrependMagickMethod(ReadBlobSignedShort) +#define ReadBlobStream PrependMagickMethod(ReadBlobStream) +#define ReadBlobString PrependMagickMethod(ReadBlobString) +#define ReadDistributePixelCacheMetacontent PrependMagickMethod(ReadDistributePixelCacheMetacontent) +#define ReadDistributePixelCachePixels PrependMagickMethod(ReadDistributePixelCachePixels) +#define ReadImage PrependMagickMethod(ReadImage) +#define ReadImages PrependMagickMethod(ReadImages) +#define ReadInlineImage PrependMagickMethod(ReadInlineImage) +#define ReadPSDLayers PrependMagickMethod(ReadPSDLayers) +#define ReadStream PrependMagickMethod(ReadStream) +#define ReferenceBlob PrependMagickMethod(ReferenceBlob) +#define ReferenceImage PrependMagickMethod(ReferenceImage) +#define ReferencePixelCache PrependMagickMethod(ReferencePixelCache) +#define RegisterAAIImage PrependMagickMethod(RegisterAAIImage) +#define RegisterARTImage PrependMagickMethod(RegisterARTImage) +#define RegisterAVSImage PrependMagickMethod(RegisterAVSImage) +#define RegisterBGRImage PrependMagickMethod(RegisterBGRImage) +#define RegisterBMPImage PrependMagickMethod(RegisterBMPImage) +#define RegisterBRAILLEImage PrependMagickMethod(RegisterBRAILLEImage) +#define RegisterCALSImage PrependMagickMethod(RegisterCALSImage) +#define RegisterCAPTIONImage PrependMagickMethod(RegisterCAPTIONImage) +#define RegisterCINImage PrependMagickMethod(RegisterCINImage) +#define RegisterCIPImage PrependMagickMethod(RegisterCIPImage) +#define RegisterCLIPImage PrependMagickMethod(RegisterCLIPImage) +#define RegisterCMYKImage PrependMagickMethod(RegisterCMYKImage) +#define RegisterCUTImage PrependMagickMethod(RegisterCUTImage) +#define RegisterDCMImage PrependMagickMethod(RegisterDCMImage) +#define RegisterDDSImage PrependMagickMethod(RegisterDDSImage) +#define RegisterDEBUGImage PrependMagickMethod(RegisterDEBUGImage) +#define RegisterDIBImage PrependMagickMethod(RegisterDIBImage) +#define RegisterDJVUImage PrependMagickMethod(RegisterDJVUImage) +#define RegisterDNGImage PrependMagickMethod(RegisterDNGImage) +#define RegisterDOTImage PrependMagickMethod(RegisterDOTImage) +#define RegisterDPXImage PrependMagickMethod(RegisterDPXImage) +#define RegisterEPTImage PrependMagickMethod(RegisterEPTImage) +#define RegisterEXRImage PrependMagickMethod(RegisterEXRImage) +#define RegisterFAXImage PrependMagickMethod(RegisterFAXImage) +#define RegisterFDImage PrependMagickMethod(RegisterFDImage) +#define RegisterFITSImage PrependMagickMethod(RegisterFITSImage) +#define RegisterGIFImage PrependMagickMethod(RegisterGIFImage) +#define RegisterGRADIENTImage PrependMagickMethod(RegisterGRADIENTImage) +#define RegisterGRAYImage PrependMagickMethod(RegisterGRAYImage) +#define RegisterHALDImage PrependMagickMethod(RegisterHALDImage) +#define RegisterHDRImage PrependMagickMethod(RegisterHDRImage) +#define RegisterHEICImage PrependMagickMethod(RegisterHEICImage) +#define RegisterHISTOGRAMImage PrependMagickMethod(RegisterHISTOGRAMImage) +#define RegisterHRZImage PrependMagickMethod(RegisterHRZImage) +#define RegisterHTMLImage PrependMagickMethod(RegisterHTMLImage) +#define RegisterICONImage PrependMagickMethod(RegisterICONImage) +#define RegisterINFOImage PrependMagickMethod(RegisterINFOImage) +#define RegisterINLINEImage PrependMagickMethod(RegisterINLINEImage) +#define RegisterIPLImage PrependMagickMethod(RegisterIPLImage) +#define RegisterJBIGImage PrependMagickMethod(RegisterJBIGImage) +#define RegisterJNXImage PrependMagickMethod(RegisterJNXImage) +#define RegisterJP2Image PrependMagickMethod(RegisterJP2Image) +#define RegisterJPEGImage PrependMagickMethod(RegisterJPEGImage) +#define RegisterJSONImage PrependMagickMethod(RegisterJSONImage) +#define RegisterLABELImage PrependMagickMethod(RegisterLABELImage) +#define RegisterMACImage PrependMagickMethod(RegisterMACImage) +#define RegisterMAPImage PrependMagickMethod(RegisterMAPImage) +#define RegisterMASKImage PrependMagickMethod(RegisterMASKImage) +#define RegisterMATImage PrependMagickMethod(RegisterMATImage) +#define RegisterMATTEImage PrependMagickMethod(RegisterMATTEImage) +#define RegisterMETAImage PrependMagickMethod(RegisterMETAImage) +#define RegisterMIFFImage PrependMagickMethod(RegisterMIFFImage) +#define RegisterMONOImage PrependMagickMethod(RegisterMONOImage) +#define RegisterMPCImage PrependMagickMethod(RegisterMPCImage) +#define RegisterMPEGImage PrependMagickMethod(RegisterMPEGImage) +#define RegisterMPRImage PrependMagickMethod(RegisterMPRImage) +#define RegisterMSLImage PrependMagickMethod(RegisterMSLImage) +#define RegisterMTVImage PrependMagickMethod(RegisterMTVImage) +#define RegisterMVGImage PrependMagickMethod(RegisterMVGImage) +#define RegisterNULLImage PrependMagickMethod(RegisterNULLImage) +#define RegisterOTBImage PrependMagickMethod(RegisterOTBImage) +#define RegisterPALMImage PrependMagickMethod(RegisterPALMImage) +#define RegisterPANGOImage PrependMagickMethod(RegisterPANGOImage) +#define RegisterPATTERNImage PrependMagickMethod(RegisterPATTERNImage) +#define RegisterPCDImage PrependMagickMethod(RegisterPCDImage) +#define RegisterPCLImage PrependMagickMethod(RegisterPCLImage) +#define RegisterPCXImage PrependMagickMethod(RegisterPCXImage) +#define RegisterPDBImage PrependMagickMethod(RegisterPDBImage) +#define RegisterPDFImage PrependMagickMethod(RegisterPDFImage) +#define RegisterPESImage PrependMagickMethod(RegisterPESImage) +#define RegisterPGXImage PrependMagickMethod(RegisterPGXImage) +#define RegisterPICTImage PrependMagickMethod(RegisterPICTImage) +#define RegisterPIXImage PrependMagickMethod(RegisterPIXImage) +#define RegisterPLASMAImage PrependMagickMethod(RegisterPLASMAImage) +#define RegisterPNGImage PrependMagickMethod(RegisterPNGImage) +#define RegisterPNMImage PrependMagickMethod(RegisterPNMImage) +#define RegisterPS2Image PrependMagickMethod(RegisterPS2Image) +#define RegisterPS3Image PrependMagickMethod(RegisterPS3Image) +#define RegisterPSDImage PrependMagickMethod(RegisterPSDImage) +#define RegisterPSImage PrependMagickMethod(RegisterPSImage) +#define RegisterPWPImage PrependMagickMethod(RegisterPWPImage) +#define RegisterRAWImage PrependMagickMethod(RegisterRAWImage) +#define RegisterRGBImage PrependMagickMethod(RegisterRGBImage) +#define RegisterRGFImage PrependMagickMethod(RegisterRGFImage) +#define RegisterRLAImage PrependMagickMethod(RegisterRLAImage) +#define RegisterRLEImage PrependMagickMethod(RegisterRLEImage) +#define RegisterSCREENSHOTImage PrependMagickMethod(RegisterSCREENSHOTImage) +#define RegisterSCRImage PrependMagickMethod(RegisterSCRImage) +#define RegisterSCTImage PrependMagickMethod(RegisterSCTImage) +#define RegisterSFWImage PrependMagickMethod(RegisterSFWImage) +#define RegisterSGIImage PrependMagickMethod(RegisterSGIImage) +#define RegisterSIXELImage PrependMagickMethod(RegisterSIXELImage) +#define RegisterStaticModules PrependMagickMethod(RegisterStaticModules) +#define RegisterSTEGANOImage PrependMagickMethod(RegisterSTEGANOImage) +#define RegisterSUNImage PrependMagickMethod(RegisterSUNImage) +#define RegisterSVGImage PrependMagickMethod(RegisterSVGImage) +#define RegisterTGAImage PrependMagickMethod(RegisterTGAImage) +#define RegisterTHUMBNAILImage PrependMagickMethod(RegisterTHUMBNAILImage) +#define RegisterTIFFImage PrependMagickMethod(RegisterTIFFImage) +#define RegisterTILEImage PrependMagickMethod(RegisterTILEImage) +#define RegisterTIMImage PrependMagickMethod(RegisterTIMImage) +#define RegisterTTFImage PrependMagickMethod(RegisterTTFImage) +#define RegisterTXTImage PrependMagickMethod(RegisterTXTImage) +#define RegisterUILImage PrependMagickMethod(RegisterUILImage) +#define RegisterURLImage PrependMagickMethod(RegisterURLImage) +#define RegisterUYVYImage PrependMagickMethod(RegisterUYVYImage) +#define RegisterVICARImage PrependMagickMethod(RegisterVICARImage) +#define RegisterVIDImage PrependMagickMethod(RegisterVIDImage) +#define RegisterVIFFImage PrependMagickMethod(RegisterVIFFImage) +#define RegisterVIPSImage PrependMagickMethod(RegisterVIPSImage) +#define RegisterWBMPImage PrependMagickMethod(RegisterWBMPImage) +#define RegisterWEBPImage PrependMagickMethod(RegisterWEBPImage) +#define RegisterWMFImage PrependMagickMethod(RegisterWMFImage) +#define RegisterWPGImage PrependMagickMethod(RegisterWPGImage) +#define RegisterXBMImage PrependMagickMethod(RegisterXBMImage) +#define RegisterXCFImage PrependMagickMethod(RegisterXCFImage) +#define RegisterXCImage PrependMagickMethod(RegisterXCImage) +#define RegisterXImage PrependMagickMethod(RegisterXImage) +#define RegisterXPMImage PrependMagickMethod(RegisterXPMImage) +#define RegisterXPSImage PrependMagickMethod(RegisterXPSImage) +#define RegisterXTRNImage PrependMagickMethod(RegisterXTRNImage) +#define RegisterXWDImage PrependMagickMethod(RegisterXWDImage) +#define RegisterYCBCRImage PrependMagickMethod(RegisterYCBCRImage) +#define RegisterYUVImage PrependMagickMethod(RegisterYUVImage) +#define RegistryComponentGenesis PrependMagickMethod(RegistryComponentGenesis) +#define RegistryComponentTerminus PrependMagickMethod(RegistryComponentTerminus) +#define RelinquishAlignedMemory PrependMagickMethod(RelinquishAlignedMemory) +#define RelinquishDistributePixelCache PrependMagickMethod(RelinquishDistributePixelCache) +#define RelinquishSemaphoreInfo PrependMagickMethod(RelinquishSemaphoreInfo) +#define RelinquishUniqueFileResource PrependMagickMethod(RelinquishUniqueFileResource) +#define RelinquishVirtualMemory PrependMagickMethod(RelinquishVirtualMemory) +#define RemapImage PrependMagickMethod(RemapImage) +#define RemapImages PrependMagickMethod(RemapImages) +#define RemoteDisplayCommand PrependMagickMethod(RemoteDisplayCommand) +#define RemoveDuplicateLayers PrependMagickMethod(RemoveDuplicateLayers) +#define RemoveElementByValueFromLinkedList PrependMagickMethod(RemoveElementByValueFromLinkedList) +#define RemoveElementFromLinkedList PrependMagickMethod(RemoveElementFromLinkedList) +#define RemoveFirstImageFromList PrependMagickMethod(RemoveFirstImageFromList) +#define RemoveImageArtifact PrependMagickMethod(RemoveImageArtifact) +#define RemoveImageFromList PrependMagickMethod(RemoveImageFromList) +#define RemoveImageOption PrependMagickMethod(RemoveImageOption) +#define RemoveImageProfile PrependMagickMethod(RemoveImageProfile) +#define RemoveImageProperty PrependMagickMethod(RemoveImageProperty) +#define RemoveImageRegistry PrependMagickMethod(RemoveImageRegistry) +#define RemoveLastElementFromLinkedList PrependMagickMethod(RemoveLastElementFromLinkedList) +#define RemoveLastImageFromList PrependMagickMethod(RemoveLastImageFromList) +#define RemoveNodeByValueFromSplayTree PrependMagickMethod(RemoveNodeByValueFromSplayTree) +#define RemoveNodeFromSplayTree PrependMagickMethod(RemoveNodeFromSplayTree) +#define RemoveZeroDelayLayers PrependMagickMethod(RemoveZeroDelayLayers) +#define ReplaceImageInList PrependMagickMethod(ReplaceImageInList) +#define ReplaceImageInListReturnLast PrependMagickMethod(ReplaceImageInListReturnLast) +#define ResampleImage PrependMagickMethod(ResampleImage) +#define ResamplePixelColor PrependMagickMethod(ResamplePixelColor) +#define ResetCacheAnonymousMemory PrependMagickMethod(ResetCacheAnonymousMemory) +#define ResetImageArtifactIterator PrependMagickMethod(ResetImageArtifactIterator) +#define ResetImageOptionIterator PrependMagickMethod(ResetImageOptionIterator) +#define ResetImageOptions PrependMagickMethod(ResetImageOptions) +#define ResetImagePage PrependMagickMethod(ResetImagePage) +#define ResetImageProfileIterator PrependMagickMethod(ResetImageProfileIterator) +#define ResetImagePropertyIterator PrependMagickMethod(ResetImagePropertyIterator) +#define ResetImageRegistryIterator PrependMagickMethod(ResetImageRegistryIterator) +#define ResetLinkedListIterator PrependMagickMethod(ResetLinkedListIterator) +#define ResetMaxMemoryRequest PrependMagickMethod(ResetMaxMemoryRequest) +#define ResetPixelCacheChannels PrependMagickMethod(ResetPixelCacheChannels) +#define ResetPixelCacheEpoch PrependMagickMethod(ResetPixelCacheEpoch) +#define ResetQuantumState PrependMagickMethod(ResetQuantumState) +#define ResetSplayTreeIterator PrependMagickMethod(ResetSplayTreeIterator) +#define ResetSplayTree PrependMagickMethod(ResetSplayTree) +#define ResetStreamAnonymousMemory PrependMagickMethod(ResetStreamAnonymousMemory) +#define ResetStringInfo PrependMagickMethod(ResetStringInfo) +#define ResetTimer PrependMagickMethod(ResetTimer) +#define ResetVirtualAnonymousMemory PrependMagickMethod(ResetVirtualAnonymousMemory) +#define ResizeImage PrependMagickMethod(ResizeImage) +#define ResizeQuantumMemory PrependMagickMethod(ResizeQuantumMemory) +#define ResourceComponentGenesis PrependMagickMethod(ResourceComponentGenesis) +#define ResourceComponentTerminus PrependMagickMethod(ResourceComponentTerminus) +#define ReverseImageList PrependMagickMethod(ReverseImageList) +#define RollImage PrependMagickMethod(RollImage) +#define RotateImage PrependMagickMethod(RotateImage) +#define RotationalBlurImage PrependMagickMethod(RotationalBlurImage) +#define SampleImage PrependMagickMethod(SampleImage) +#define SanitizeString PrependMagickMethod(SanitizeString) +#define ScaleGeometryKernelInfo PrependMagickMethod(ScaleGeometryKernelInfo) +#define ScaleImage PrependMagickMethod(ScaleImage) +#define ScaleKernelInfo PrependMagickMethod(ScaleKernelInfo) +#define ScaleResampleFilter PrependMagickMethod(ScaleResampleFilter) +#define SeekBlob PrependMagickMethod(SeekBlob) +#define SegmentImage PrependMagickMethod(SegmentImage) +#define SelectiveBlurImage PrependMagickMethod(SelectiveBlurImage) +#define SemaphoreComponentGenesis PrependMagickMethod(SemaphoreComponentGenesis) +#define SemaphoreComponentTerminus PrependMagickMethod(SemaphoreComponentTerminus) +#define SeparateImage PrependMagickMethod(SeparateImage) +#define SeparateImages PrependMagickMethod(SeparateImages) +#define SepiaToneImage PrependMagickMethod(SepiaToneImage) +#define SetBlobExempt PrependMagickMethod(SetBlobExempt) +#define SetBlobExtent PrependMagickMethod(SetBlobExtent) +#define SetCacheViewStorageClass PrependMagickMethod(SetCacheViewStorageClass) +#define SetCacheViewVirtualPixelMethod PrependMagickMethod(SetCacheViewVirtualPixelMethod) +#define SetClientName PrependMagickMethod(SetClientName) +#define SetClientPath PrependMagickMethod(SetClientPath) +#define SetCustomStreamData PrependMagickMethod(SetCustomStreamData) +#define SetCustomStreamReader PrependMagickMethod(SetCustomStreamReader) +#define SetCustomStreamSeeker PrependMagickMethod(SetCustomStreamSeeker) +#define SetCustomStreamTeller PrependMagickMethod(SetCustomStreamTeller) +#define SetCustomStreamWriter PrependMagickMethod(SetCustomStreamWriter) +#define SetErrorHandler PrependMagickMethod(SetErrorHandler) +#define SetFatalErrorHandler PrependMagickMethod(SetFatalErrorHandler) +#define SetGeometryInfo PrependMagickMethod(SetGeometryInfo) +#define SetGeometry PrependMagickMethod(SetGeometry) +#define SetImageAlphaChannel PrependMagickMethod(SetImageAlphaChannel) +#define SetImageAlpha PrependMagickMethod(SetImageAlpha) +#define SetImageArtifact PrependMagickMethod(SetImageArtifact) +#define SetImageBackgroundColor PrependMagickMethod(SetImageBackgroundColor) +#define SetImageChannelMask PrependMagickMethod(SetImageChannelMask) +#define SetImageColorMetric PrependMagickMethod(SetImageColorMetric) +#define SetImageColor PrependMagickMethod(SetImageColor) +#define SetImageColorspace PrependMagickMethod(SetImageColorspace) +#define SetImageDepth PrependMagickMethod(SetImageDepth) +#define SetImageExtent PrependMagickMethod(SetImageExtent) +#define SetImageGray PrependMagickMethod(SetImageGray) +#define SetImageInfoBlob PrependMagickMethod(SetImageInfoBlob) +#define SetImageInfoCustomStream PrependMagickMethod(SetImageInfoCustomStream) +#define SetImageInfoFile PrependMagickMethod(SetImageInfoFile) +#define SetImageInfo PrependMagickMethod(SetImageInfo) +#define SetImageInfoProgressMonitor PrependMagickMethod(SetImageInfoProgressMonitor) +#define SetImageMask PrependMagickMethod(SetImageMask) +#define SetImageMonochrome PrependMagickMethod(SetImageMonochrome) +#define SetImageOption PrependMagickMethod(SetImageOption) +#define SetImageProfile PrependMagickMethod(SetImageProfile) +#define SetImageProgressMonitor PrependMagickMethod(SetImageProgressMonitor) +#define SetImageProperty PrependMagickMethod(SetImageProperty) +#define SetImageRegionMask PrependMagickMethod(SetImageRegionMask) +#define SetImageRegistry PrependMagickMethod(SetImageRegistry) +#define SetImageStorageClass PrependMagickMethod(SetImageStorageClass) +#define SetImageType PrependMagickMethod(SetImageType) +#define SetImageViewDescription PrependMagickMethod(SetImageViewDescription) +#define SetImageViewIterator PrependMagickMethod(SetImageViewIterator) +#define SetImageVirtualPixelMethod PrependMagickMethod(SetImageVirtualPixelMethod) +#define SetLogEventMask PrependMagickMethod(SetLogEventMask) +#define SetLogFormat PrependMagickMethod(SetLogFormat) +#define SetLogMethod PrependMagickMethod(SetLogMethod) +#define SetLogName PrependMagickMethod(SetLogName) +#define SetMatrixElement PrependMagickMethod(SetMatrixElement) +#define SetOpenCLDeviceEnabled PrependMagickMethod(SetOpenCLDeviceEnabled) +#define SetOpenCLEnabled PrependMagickMethod(SetOpenCLEnabled) +#define SetOpenCLKernelProfileEnabled PrependMagickMethod(SetOpenCLKernelProfileEnabled) +#define SetPixelCacheMethods PrependMagickMethod(SetPixelCacheMethods) +#define SetPixelCacheVirtualMethod PrependMagickMethod(SetPixelCacheVirtualMethod) +#define SetPixelChannelMask PrependMagickMethod(SetPixelChannelMask) +#define SetPixelMetaChannels PrependMagickMethod(SetPixelMetaChannels) +#define SetQuantumAlphaType PrependMagickMethod(SetQuantumAlphaType) +#define SetQuantumDepth PrependMagickMethod(SetQuantumDepth) +#define SetQuantumEndian PrependMagickMethod(SetQuantumEndian) +#define SetQuantumFormat PrependMagickMethod(SetQuantumFormat) +#define SetQuantumImageType PrependMagickMethod(SetQuantumImageType) +#define SetQuantumMinIsWhite PrependMagickMethod(SetQuantumMinIsWhite) +#define SetQuantumPack PrependMagickMethod(SetQuantumPack) +#define SetQuantumPad PrependMagickMethod(SetQuantumPad) +#define SetQuantumQuantum PrependMagickMethod(SetQuantumQuantum) +#define SetQuantumScale PrependMagickMethod(SetQuantumScale) +#define SetRandomKey PrependMagickMethod(SetRandomKey) +#define SetRandomSecretKey PrependMagickMethod(SetRandomSecretKey) +#define SetRandomTrueRandom PrependMagickMethod(SetRandomTrueRandom) +#define SetResampleFilterInterpolateMethod PrependMagickMethod(SetResampleFilterInterpolateMethod) +#define SetResampleFilter PrependMagickMethod(SetResampleFilter) +#define SetResampleFilterVirtualPixelMethod PrependMagickMethod(SetResampleFilterVirtualPixelMethod) +#define SetSignatureDigest PrependMagickMethod(SetSignatureDigest) +#define SetStreamInfoClientData PrependMagickMethod(SetStreamInfoClientData) +#define SetStreamInfoMap PrependMagickMethod(SetStreamInfoMap) +#define SetStreamInfoStorageType PrependMagickMethod(SetStreamInfoStorageType) +#define SetStringInfoDatum PrependMagickMethod(SetStringInfoDatum) +#define SetStringInfoLength PrependMagickMethod(SetStringInfoLength) +#define SetStringInfoPath PrependMagickMethod(SetStringInfoPath) +#define SetStringInfo PrependMagickMethod(SetStringInfo) +#define SetWarningHandler PrependMagickMethod(SetWarningHandler) +#define SetXMLTreeAttribute PrependMagickMethod(SetXMLTreeAttribute) +#define SetXMLTreeContent PrependMagickMethod(SetXMLTreeContent) +#define ShadeImage PrependMagickMethod(ShadeImage) +#define ShadowImage PrependMagickMethod(ShadowImage) +#define SharpenImage PrependMagickMethod(SharpenImage) +#define ShaveImage PrependMagickMethod(ShaveImage) +#define ShearImage PrependMagickMethod(ShearImage) +#define ShearRotateImage PrependMagickMethod(ShearRotateImage) +#define ShowKernelInfo PrependMagickMethod(ShowKernelInfo) +#define ShredFile PrependMagickMethod(ShredFile) +#define SigmoidalContrastImage PrependMagickMethod(SigmoidalContrastImage) +#define SignatureImage PrependMagickMethod(SignatureImage) +#define SimilarityImage PrependMagickMethod(SimilarityImage) +#define sixel_decode PrependMagickMethod(sixel_decode) +#define sixel_output_create PrependMagickMethod(sixel_output_create) +#define SketchImage PrependMagickMethod(SketchImage) +#define SmushImages PrependMagickMethod(SmushImages) +#define SolarizeImage PrependMagickMethod(SolarizeImage) +#define SortColormapByIntensity PrependMagickMethod(SortColormapByIntensity) +#define SparseColorImage PrependMagickMethod(SparseColorImage) +#define SpliceImageIntoList PrependMagickMethod(SpliceImageIntoList) +#define SpliceImage PrependMagickMethod(SpliceImage) +#define SplitImageList PrependMagickMethod(SplitImageList) +#define SplitStringInfo PrependMagickMethod(SplitStringInfo) +#define SpreadImage PrependMagickMethod(SpreadImage) +#define StartTimer PrependMagickMethod(StartTimer) +#define StatisticImage PrependMagickMethod(StatisticImage) +#define SteganoImage PrependMagickMethod(SteganoImage) +#define StereoAnaglyphImage PrependMagickMethod(StereoAnaglyphImage) +#define StereoImage PrependMagickMethod(StereoImage) +#define StreamImage PrependMagickMethod(StreamImage) +#define StringInfoToHexString PrependMagickMethod(StringInfoToHexString) +#define StringInfoToString PrependMagickMethod(StringInfoToString) +#define StringToArgv PrependMagickMethod(StringToArgv) +#define StringToArrayOfDoubles PrependMagickMethod(StringToArrayOfDoubles) +#define StringToken PrependMagickMethod(StringToken) +#define StringToList PrependMagickMethod(StringToList) +#define StringToStringInfo PrependMagickMethod(StringToStringInfo) +#define StripImage PrependMagickMethod(StripImage) +#define StripString PrependMagickMethod(StripString) +#define SubstituteString PrependMagickMethod(SubstituteString) +#define SwirlImage PrependMagickMethod(SwirlImage) +#define SyncAuthenticPixelCacheNexus PrependMagickMethod(SyncAuthenticPixelCacheNexus) +#define SyncAuthenticPixels PrependMagickMethod(SyncAuthenticPixels) +#define SyncCacheViewAuthenticPixels PrependMagickMethod(SyncCacheViewAuthenticPixels) +#define SyncExifProfile PrependMagickMethod(SyncExifProfile) +#define SyncImageList PrependMagickMethod(SyncImageList) +#define SyncImagePixelCache PrependMagickMethod(SyncImagePixelCache) +#define SyncImage PrependMagickMethod(SyncImage) +#define SyncImageProfiles PrependMagickMethod(SyncImageProfiles) +#define SyncImageSettings PrependMagickMethod(SyncImageSettings) +#define SyncImagesSettings PrependMagickMethod(SyncImagesSettings) +#define SyncNextImageInList PrependMagickMethod(SyncNextImageInList) +#define TellBlob PrependMagickMethod(TellBlob) +#define TextureImage PrependMagickMethod(TextureImage) +#define ThumbnailImage PrependMagickMethod(ThumbnailImage) +#define TintImage PrependMagickMethod(TintImage) +#define Tokenizer PrependMagickMethod(Tokenizer) +#define TransferImageViewIterator PrependMagickMethod(TransferImageViewIterator) +#define TransformImageColorspace PrependMagickMethod(TransformImageColorspace) +#define TransformImage PrependMagickMethod(TransformImage) +#define TransparentPaintImageChroma PrependMagickMethod(TransparentPaintImageChroma) +#define TransparentPaintImage PrependMagickMethod(TransparentPaintImage) +#define TransposeImage PrependMagickMethod(TransposeImage) +#define TransverseImage PrependMagickMethod(TransverseImage) +#define TrimImage PrependMagickMethod(TrimImage) +#define TypeComponentGenesis PrependMagickMethod(TypeComponentGenesis) +#define TypeComponentTerminus PrependMagickMethod(TypeComponentTerminus) +#define UniqueImageColors PrependMagickMethod(UniqueImageColors) +#define UnityAddKernelInfo PrependMagickMethod(UnityAddKernelInfo) +#define UnlockSemaphoreInfo PrependMagickMethod(UnlockSemaphoreInfo) +#define UnmapBlob PrependMagickMethod(UnmapBlob) +#define UnregisterAAIImage PrependMagickMethod(UnregisterAAIImage) +#define UnregisterARTImage PrependMagickMethod(UnregisterARTImage) +#define UnregisterAVSImage PrependMagickMethod(UnregisterAVSImage) +#define UnregisterBGRImage PrependMagickMethod(UnregisterBGRImage) +#define UnregisterBMPImage PrependMagickMethod(UnregisterBMPImage) +#define UnregisterBRAILLEImage PrependMagickMethod(UnregisterBRAILLEImage) +#define UnregisterCALSImage PrependMagickMethod(UnregisterCALSImage) +#define UnregisterCAPTIONImage PrependMagickMethod(UnregisterCAPTIONImage) +#define UnregisterCINImage PrependMagickMethod(UnregisterCINImage) +#define UnregisterCIPImage PrependMagickMethod(UnregisterCIPImage) +#define UnregisterCLIPImage PrependMagickMethod(UnregisterCLIPImage) +#define UnregisterCMYKImage PrependMagickMethod(UnregisterCMYKImage) +#define UnregisterCUTImage PrependMagickMethod(UnregisterCUTImage) +#define UnregisterDCMImage PrependMagickMethod(UnregisterDCMImage) +#define UnregisterDDSImage PrependMagickMethod(UnregisterDDSImage) +#define UnregisterDEBUGImage PrependMagickMethod(UnregisterDEBUGImage) +#define UnregisterDIBImage PrependMagickMethod(UnregisterDIBImage) +#define UnregisterDJVUImage PrependMagickMethod(UnregisterDJVUImage) +#define UnregisterDNGImage PrependMagickMethod(UnregisterDNGImage) +#define UnregisterDOTImage PrependMagickMethod(UnregisterDOTImage) +#define UnregisterDPXImage PrependMagickMethod(UnregisterDPXImage) +#define UnregisterEPTImage PrependMagickMethod(UnregisterEPTImage) +#define UnregisterEXRImage PrependMagickMethod(UnregisterEXRImage) +#define UnregisterFAXImage PrependMagickMethod(UnregisterFAXImage) +#define UnregisterFDImage PrependMagickMethod(UnregisterFDImage) +#define UnregisterFITSImage PrependMagickMethod(UnregisterFITSImage) +#define UnregisterGIFImage PrependMagickMethod(UnregisterGIFImage) +#define UnregisterGRADIENTImage PrependMagickMethod(UnregisterGRADIENTImage) +#define UnregisterGRAYImage PrependMagickMethod(UnregisterGRAYImage) +#define UnregisterHALDImage PrependMagickMethod(UnregisterHALDImage) +#define UnregisterHDRImage PrependMagickMethod(UnregisterHDRImage) +#define UnregisterHEICImage PrependMagickMethod(UnregisterHEICImage) +#define UnregisterHISTOGRAMImage PrependMagickMethod(UnregisterHISTOGRAMImage) +#define UnregisterHRZImage PrependMagickMethod(UnregisterHRZImage) +#define UnregisterHTMLImage PrependMagickMethod(UnregisterHTMLImage) +#define UnregisterICONImage PrependMagickMethod(UnregisterICONImage) +#define UnregisterINFOImage PrependMagickMethod(UnregisterINFOImage) +#define UnregisterINLINEImage PrependMagickMethod(UnregisterINLINEImage) +#define UnregisterIPLImage PrependMagickMethod(UnregisterIPLImage) +#define UnregisterJBIGImage PrependMagickMethod(UnregisterJBIGImage) +#define UnregisterJNXImage PrependMagickMethod(UnregisterJNXImage) +#define UnregisterJP2Image PrependMagickMethod(UnregisterJP2Image) +#define UnregisterJPEGImage PrependMagickMethod(UnregisterJPEGImage) +#define UnregisterJSONImage PrependMagickMethod(UnregisterJSONImage) +#define UnregisterLABELImage PrependMagickMethod(UnregisterLABELImage) +#define UnregisterMACImage PrependMagickMethod(UnregisterMACImage) +#define UnregisterMAPImage PrependMagickMethod(UnregisterMAPImage) +#define UnregisterMASKImage PrependMagickMethod(UnregisterMASKImage) +#define UnregisterMATImage PrependMagickMethod(UnregisterMATImage) +#define UnregisterMATTEImage PrependMagickMethod(UnregisterMATTEImage) +#define UnregisterMETAImage PrependMagickMethod(UnregisterMETAImage) +#define UnregisterMIFFImage PrependMagickMethod(UnregisterMIFFImage) +#define UnregisterMONOImage PrependMagickMethod(UnregisterMONOImage) +#define UnregisterMPCImage PrependMagickMethod(UnregisterMPCImage) +#define UnregisterMPEGImage PrependMagickMethod(UnregisterMPEGImage) +#define UnregisterMPRImage PrependMagickMethod(UnregisterMPRImage) +#define UnregisterMSLImage PrependMagickMethod(UnregisterMSLImage) +#define UnregisterMTVImage PrependMagickMethod(UnregisterMTVImage) +#define UnregisterMVGImage PrependMagickMethod(UnregisterMVGImage) +#define UnregisterNULLImage PrependMagickMethod(UnregisterNULLImage) +#define UnregisterOTBImage PrependMagickMethod(UnregisterOTBImage) +#define UnregisterPALMImage PrependMagickMethod(UnregisterPALMImage) +#define UnregisterPANGOImage PrependMagickMethod(UnregisterPANGOImage) +#define UnregisterPATTERNImage PrependMagickMethod(UnregisterPATTERNImage) +#define UnregisterPCDImage PrependMagickMethod(UnregisterPCDImage) +#define UnregisterPCLImage PrependMagickMethod(UnregisterPCLImage) +#define UnregisterPCXImage PrependMagickMethod(UnregisterPCXImage) +#define UnregisterPDBImage PrependMagickMethod(UnregisterPDBImage) +#define UnregisterPDFImage PrependMagickMethod(UnregisterPDFImage) +#define UnregisterPESImage PrependMagickMethod(UnregisterPESImage) +#define UnregisterPGXImage PrependMagickMethod(UnregisterPGXImage) +#define UnregisterPICTImage PrependMagickMethod(UnregisterPICTImage) +#define UnregisterPIXImage PrependMagickMethod(UnregisterPIXImage) +#define UnregisterPLASMAImage PrependMagickMethod(UnregisterPLASMAImage) +#define UnregisterPNGImage PrependMagickMethod(UnregisterPNGImage) +#define UnregisterPNMImage PrependMagickMethod(UnregisterPNMImage) +#define UnregisterPS2Image PrependMagickMethod(UnregisterPS2Image) +#define UnregisterPS3Image PrependMagickMethod(UnregisterPS3Image) +#define UnregisterPSDImage PrependMagickMethod(UnregisterPSDImage) +#define UnregisterPSImage PrependMagickMethod(UnregisterPSImage) +#define UnregisterPWPImage PrependMagickMethod(UnregisterPWPImage) +#define UnregisterRAWImage PrependMagickMethod(UnregisterRAWImage) +#define UnregisterRGBImage PrependMagickMethod(UnregisterRGBImage) +#define UnregisterRGFImage PrependMagickMethod(UnregisterRGFImage) +#define UnregisterRLAImage PrependMagickMethod(UnregisterRLAImage) +#define UnregisterRLEImage PrependMagickMethod(UnregisterRLEImage) +#define UnregisterSCREENSHOTImage PrependMagickMethod(UnregisterSCREENSHOTImage) +#define UnregisterSCRImage PrependMagickMethod(UnregisterSCRImage) +#define UnregisterSCTImage PrependMagickMethod(UnregisterSCTImage) +#define UnregisterSFWImage PrependMagickMethod(UnregisterSFWImage) +#define UnregisterSGIImage PrependMagickMethod(UnregisterSGIImage) +#define UnregisterSIXELImage PrependMagickMethod(UnregisterSIXELImage) +#define UnregisterStaticModules PrependMagickMethod(UnregisterStaticModules) +#define UnregisterSTEGANOImage PrependMagickMethod(UnregisterSTEGANOImage) +#define UnregisterSUNImage PrependMagickMethod(UnregisterSUNImage) +#define UnregisterSVGImage PrependMagickMethod(UnregisterSVGImage) +#define UnregisterTGAImage PrependMagickMethod(UnregisterTGAImage) +#define UnregisterTHUMBNAILImage PrependMagickMethod(UnregisterTHUMBNAILImage) +#define UnregisterTIFFImage PrependMagickMethod(UnregisterTIFFImage) +#define UnregisterTILEImage PrependMagickMethod(UnregisterTILEImage) +#define UnregisterTIMImage PrependMagickMethod(UnregisterTIMImage) +#define UnregisterTTFImage PrependMagickMethod(UnregisterTTFImage) +#define UnregisterTXTImage PrependMagickMethod(UnregisterTXTImage) +#define UnregisterUILImage PrependMagickMethod(UnregisterUILImage) +#define UnregisterURLImage PrependMagickMethod(UnregisterURLImage) +#define UnregisterUYVYImage PrependMagickMethod(UnregisterUYVYImage) +#define UnregisterVICARImage PrependMagickMethod(UnregisterVICARImage) +#define UnregisterVIDImage PrependMagickMethod(UnregisterVIDImage) +#define UnregisterVIFFImage PrependMagickMethod(UnregisterVIFFImage) +#define UnregisterVIPSImage PrependMagickMethod(UnregisterVIPSImage) +#define UnregisterWBMPImage PrependMagickMethod(UnregisterWBMPImage) +#define UnregisterWEBPImage PrependMagickMethod(UnregisterWEBPImage) +#define UnregisterWMFImage PrependMagickMethod(UnregisterWMFImage) +#define UnregisterWPGImage PrependMagickMethod(UnregisterWPGImage) +#define UnregisterXBMImage PrependMagickMethod(UnregisterXBMImage) +#define UnregisterXCFImage PrependMagickMethod(UnregisterXCFImage) +#define UnregisterXCImage PrependMagickMethod(UnregisterXCImage) +#define UnregisterXImage PrependMagickMethod(UnregisterXImage) +#define UnregisterXPMImage PrependMagickMethod(UnregisterXPMImage) +#define UnregisterXPSImage PrependMagickMethod(UnregisterXPSImage) +#define UnregisterXTRNImage PrependMagickMethod(UnregisterXTRNImage) +#define UnregisterXWDImage PrependMagickMethod(UnregisterXWDImage) +#define UnregisterYCBCRImage PrependMagickMethod(UnregisterYCBCRImage) +#define UnregisterYUVImage PrependMagickMethod(UnregisterYUVImage) +#define UnsharpMaskImage PrependMagickMethod(UnsharpMaskImage) +#define UpdateImageViewIterator PrependMagickMethod(UpdateImageViewIterator) +#define UpdateSignature PrependMagickMethod(UpdateSignature) +#define VignetteImage PrependMagickMethod(VignetteImage) +#define WaveImage PrependMagickMethod(WaveImage) +#define WaveletDenoiseImage PrependMagickMethod(WaveletDenoiseImage) +#define WhiteThresholdImage PrependMagickMethod(WhiteThresholdImage) +#define WriteBlobByte PrependMagickMethod(WriteBlobByte) +#define WriteBlobFloat PrependMagickMethod(WriteBlobFloat) +#define WriteBlobLongLong PrependMagickMethod(WriteBlobLongLong) +#define WriteBlobLong PrependMagickMethod(WriteBlobLong) +#define WriteBlobLSBLong PrependMagickMethod(WriteBlobLSBLong) +#define WriteBlobLSBShort PrependMagickMethod(WriteBlobLSBShort) +#define WriteBlobLSBSignedLong PrependMagickMethod(WriteBlobLSBSignedLong) +#define WriteBlobLSBSignedShort PrependMagickMethod(WriteBlobLSBSignedShort) +#define WriteBlobMSBLong PrependMagickMethod(WriteBlobMSBLong) +#define WriteBlobMSBShort PrependMagickMethod(WriteBlobMSBShort) +#define WriteBlobMSBSignedShort PrependMagickMethod(WriteBlobMSBSignedShort) +#define WriteBlob PrependMagickMethod(WriteBlob) +#define WriteBlobShort PrependMagickMethod(WriteBlobShort) +#define WriteBlobSignedLong PrependMagickMethod(WriteBlobSignedLong) +#define WriteBlobString PrependMagickMethod(WriteBlobString) +#define WriteDistributePixelCacheMetacontent PrependMagickMethod(WriteDistributePixelCacheMetacontent) +#define WriteDistributePixelCachePixels PrependMagickMethod(WriteDistributePixelCachePixels) +#define WriteImage PrependMagickMethod(WriteImage) +#define WriteImages PrependMagickMethod(WriteImages) +#define WritePSDLayers PrependMagickMethod(WritePSDLayers) +#define WriteStream PrependMagickMethod(WriteStream) +#define XAnimateBackgroundImage PrependMagickMethod(XAnimateBackgroundImage) +#define XAnimateImages PrependMagickMethod(XAnimateImages) +#define XAnnotateImage PrependMagickMethod(XAnnotateImage) +#define XBestFont PrependMagickMethod(XBestFont) +#define XBestIconSize PrependMagickMethod(XBestIconSize) +#define XBestPixel PrependMagickMethod(XBestPixel) +#define XBestVisualInfo PrependMagickMethod(XBestVisualInfo) +#define XCheckDefineCursor PrependMagickMethod(XCheckDefineCursor) +#define XCheckRefreshWindows PrependMagickMethod(XCheckRefreshWindows) +#define XClientMessage PrependMagickMethod(XClientMessage) +#define XColorBrowserWidget PrependMagickMethod(XColorBrowserWidget) +#define XCommandWidget PrependMagickMethod(XCommandWidget) +#define XComponentGenesis PrependMagickMethod(XComponentGenesis) +#define XComponentTerminus PrependMagickMethod(XComponentTerminus) +#define XConfigureImageColormap PrependMagickMethod(XConfigureImageColormap) +#define XConfirmWidget PrependMagickMethod(XConfirmWidget) +#define XConstrainWindowPosition PrependMagickMethod(XConstrainWindowPosition) +#define XDelay PrependMagickMethod(XDelay) +#define XDestroyResourceInfo PrependMagickMethod(XDestroyResourceInfo) +#define XDestroyWindowColors PrependMagickMethod(XDestroyWindowColors) +#define XDialogWidget PrependMagickMethod(XDialogWidget) +#define XDisplayBackgroundImage PrependMagickMethod(XDisplayBackgroundImage) +#define XDisplayImageInfo PrependMagickMethod(XDisplayImageInfo) +#define XDisplayImage PrependMagickMethod(XDisplayImage) +#define XDrawImage PrependMagickMethod(XDrawImage) +#define XError PrependMagickMethod(XError) +#define XFileBrowserWidget PrependMagickMethod(XFileBrowserWidget) +#define XFontBrowserWidget PrependMagickMethod(XFontBrowserWidget) +#define XFreeResources PrependMagickMethod(XFreeResources) +#define XFreeStandardColormap PrependMagickMethod(XFreeStandardColormap) +#define XGetAnnotateInfo PrependMagickMethod(XGetAnnotateInfo) +#define XGetImportInfo PrependMagickMethod(XGetImportInfo) +#define XGetMapInfo PrependMagickMethod(XGetMapInfo) +#define XGetPixelInfo PrependMagickMethod(XGetPixelInfo) +#define XGetResourceClass PrependMagickMethod(XGetResourceClass) +#define XGetResourceDatabase PrependMagickMethod(XGetResourceDatabase) +#define XGetResourceInfo PrependMagickMethod(XGetResourceInfo) +#define XGetResourceInstance PrependMagickMethod(XGetResourceInstance) +#define XGetScreenDensity PrependMagickMethod(XGetScreenDensity) +#define XGetWindowColor PrependMagickMethod(XGetWindowColor) +#define XGetWindowInfo PrependMagickMethod(XGetWindowInfo) +#define XHighlightEllipse PrependMagickMethod(XHighlightEllipse) +#define XHighlightLine PrependMagickMethod(XHighlightLine) +#define XHighlightRectangle PrependMagickMethod(XHighlightRectangle) +#define XImportImage PrependMagickMethod(XImportImage) +#define XInfoWidget PrependMagickMethod(XInfoWidget) +#define XInitializeWindows PrependMagickMethod(XInitializeWindows) +#define XListBrowserWidget PrependMagickMethod(XListBrowserWidget) +#define XMakeCursor PrependMagickMethod(XMakeCursor) +#define XMakeImage PrependMagickMethod(XMakeImage) +#define XMakeMagnifyImage PrependMagickMethod(XMakeMagnifyImage) +#define XMakeStandardColormap PrependMagickMethod(XMakeStandardColormap) +#define XMakeWindow PrependMagickMethod(XMakeWindow) +#define XMenuWidget PrependMagickMethod(XMenuWidget) +#define XMLTreeInfoToXML PrependMagickMethod(XMLTreeInfoToXML) +#define XNoticeWidget PrependMagickMethod(XNoticeWidget) +#define XPreferencesWidget PrependMagickMethod(XPreferencesWidget) +#define XProgressMonitorWidget PrependMagickMethod(XProgressMonitorWidget) +#define XQueryColorCompliance PrependMagickMethod(XQueryColorCompliance) +#define XQueryPosition PrependMagickMethod(XQueryPosition) +#define XRefreshWindow PrependMagickMethod(XRefreshWindow) +#define XRemoteCommand PrependMagickMethod(XRemoteCommand) +#define XRenderImage PrependMagickMethod(XRenderImage) +#define XRetainWindowColors PrependMagickMethod(XRetainWindowColors) +#define XSetCursorState PrependMagickMethod(XSetCursorState) +#define XSetWindows PrependMagickMethod(XSetWindows) +#define XTextViewWidget PrependMagickMethod(XTextViewWidget) +#define XUserPreferences PrependMagickMethod(XUserPreferences) +#define XWarning PrependMagickMethod(XWarning) +#define XWindowByID PrependMagickMethod(XWindowByID) +#define XWindowByName PrependMagickMethod(XWindowByName) +#define XWindowByProperty PrependMagickMethod(XWindowByProperty) +#define ZeroKernelNans PrependMagickMethod(ZeroKernelNans) +#define ZLIBEncodeImage PrependMagickMethod(ZLIBEncodeImage) +#endif + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/mime.h b/include/ImageMagick-7/MagickCore/mime.h new file mode 100644 index 0000000..4181b75 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/mime.h @@ -0,0 +1,48 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + The ImageMagick mime methods. +*/ +#ifndef MAGICKCORE_MIME_H +#define MAGICKCORE_MIME_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _MimeInfo + MimeInfo; + +extern MagickExport char + **GetMimeList(const char *,size_t *,ExceptionInfo *), + *MagickToMime(const char *); + +extern MagickExport const char + *GetMimeDescription(const MimeInfo *), + *GetMimeType(const MimeInfo *); + +extern MagickExport MagickBooleanType + ListMimeInfo(FILE *,ExceptionInfo *), + LoadMimeLists(const char *,ExceptionInfo *); + +extern MagickExport const MimeInfo + *GetMimeInfo(const char *,const unsigned char *,const size_t,ExceptionInfo *), + **GetMimeInfoList(const char *,size_t *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/module.h b/include/ImageMagick-7/MagickCore/module.h new file mode 100644 index 0000000..b7546cd --- /dev/null +++ b/include/ImageMagick-7/MagickCore/module.h @@ -0,0 +1,85 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore module methods. +*/ +#ifndef MAGICKCORE_MODULE_H +#define MAGICKCORE_MODULE_H + +#include "MagickCore/version.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define MagickImageCoderSignature ((size_t) \ + (((MagickLibInterface) << 8) | MAGICKCORE_QUANTUM_DEPTH)) +#define MagickImageFilterSignature ((size_t) \ + (((MagickLibInterface) << 8) | MAGICKCORE_QUANTUM_DEPTH)) + +typedef enum +{ + MagickImageCoderModule, + MagickImageFilterModule +} MagickModuleType; + +typedef struct _ModuleInfo +{ + char + *path, + *tag; + + void + *handle, + (*unregister_module)(void); + + size_t + (*register_module)(void); + + time_t + timestamp; + + MagickBooleanType + stealth; + + size_t + signature; +} ModuleInfo; + +typedef size_t + ImageFilterHandler(Image **,const int,const char **,ExceptionInfo *); + +extern MagickExport char + **GetModuleList(const char *,const MagickModuleType,size_t *,ExceptionInfo *); + +extern MagickExport const ModuleInfo + **GetModuleInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + InvokeDynamicImageFilter(const char *,Image **,const int,const char **, + ExceptionInfo *), + ListModuleInfo(FILE *,ExceptionInfo *); + +extern MagickExport ModuleInfo + *GetModuleInfo(const char *,ExceptionInfo *); + +extern MagickExport void + DestroyModuleList(void); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/monitor.h b/include/ImageMagick-7/MagickCore/monitor.h new file mode 100644 index 0000000..916e242 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/monitor.h @@ -0,0 +1,49 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore progress monitor methods. +*/ +#ifndef MAGICKCORE_MONITOR_H +#define MAGICKCORE_MONITOR_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef MagickBooleanType + (*MagickProgressMonitor)(const char *,const MagickOffsetType, + const MagickSizeType,void *); + +MagickExport MagickProgressMonitor + SetImageProgressMonitor(Image *,const MagickProgressMonitor,void *), + SetImageInfoProgressMonitor(ImageInfo *,const MagickProgressMonitor,void *); + +static inline MagickBooleanType QuantumTick(const MagickOffsetType offset, + const MagickSizeType span) +{ + if (span <= 100) + return(MagickTrue); + if (offset == (MagickOffsetType) (span-1)) + return(MagickTrue); + if ((offset % (span/100)) == 0) + return(MagickTrue); + return(MagickFalse); +} + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/montage.h b/include/ImageMagick-7/MagickCore/montage.h new file mode 100644 index 0000000..ca9420e --- /dev/null +++ b/include/ImageMagick-7/MagickCore/montage.h @@ -0,0 +1,91 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore montage methods. +*/ +#ifndef MAGICKCORE_MONTAGE_H +#define MAGICKCORE_MONTAGE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedMode, + FrameMode, + UnframeMode, + ConcatenateMode +} MontageMode; + +typedef struct _MontageInfo +{ + char + *geometry, + *tile, + *title, + *frame, + *texture, + *font; + + double + pointsize; + + size_t + border_width; + + MagickBooleanType + shadow; + + PixelInfo + alpha_color, /* deprecated */ + background_color, + border_color, + fill, + stroke; + + GravityType + gravity; + + char + filename[MagickPathExtent]; + + MagickBooleanType + debug; + + size_t + signature; + + PixelInfo + matte_color; +} MontageInfo; + +extern MagickExport Image + *MontageImages(const Image *,const MontageInfo *,ExceptionInfo *), + *MontageImageList(const ImageInfo *,const MontageInfo *,const Image *, + ExceptionInfo *); + +extern MagickExport MontageInfo + *CloneMontageInfo(const ImageInfo *,const MontageInfo *), + *DestroyMontageInfo(MontageInfo *); + +extern MagickExport void + GetMontageInfo(const ImageInfo *,MontageInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/morphology.h b/include/ImageMagick-7/MagickCore/morphology.h new file mode 100644 index 0000000..c992081 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/morphology.h @@ -0,0 +1,152 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore morphology methods. +*/ +#ifndef MAGICKCORE_MORPHOLOGY_H +#define MAGICKCORE_MORPHOLOGY_H + +#include "MagickCore/geometry.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedKernel, /* equivalent to UnityKernel */ + UnityKernel, /* The no-op or 'original image' kernel */ + GaussianKernel, /* Convolution Kernels, Gaussian Based */ + DoGKernel, + LoGKernel, + BlurKernel, + CometKernel, + BinomialKernel, + LaplacianKernel, /* Convolution Kernels, by Name */ + SobelKernel, + FreiChenKernel, + RobertsKernel, + PrewittKernel, + CompassKernel, + KirschKernel, + DiamondKernel, /* Shape Kernels */ + SquareKernel, + RectangleKernel, + OctagonKernel, + DiskKernel, + PlusKernel, + CrossKernel, + RingKernel, + PeaksKernel, /* Hit And Miss Kernels */ + EdgesKernel, + CornersKernel, + DiagonalsKernel, + LineEndsKernel, + LineJunctionsKernel, + RidgesKernel, + ConvexHullKernel, + ThinSEKernel, + SkeletonKernel, + ChebyshevKernel, /* Distance Measuring Kernels */ + ManhattanKernel, + OctagonalKernel, + EuclideanKernel, + UserDefinedKernel /* User Specified Kernel Array */ +} KernelInfoType; + +typedef enum +{ + UndefinedMorphology, +/* Convolve / Correlate weighted sums */ + ConvolveMorphology, /* Weighted Sum with reflected kernel */ + CorrelateMorphology, /* Weighted Sum using a sliding window */ +/* Low-level Morphology methods */ + ErodeMorphology, /* Minimum Value in Neighbourhood */ + DilateMorphology, /* Maximum Value in Neighbourhood */ + ErodeIntensityMorphology, /* Pixel Pick using GreyScale Erode */ + DilateIntensityMorphology, /* Pixel Pick using GreyScale Dialate */ + IterativeDistanceMorphology, /* Add Kernel Value, take Minimum */ +/* Second-level Morphology methods */ + OpenMorphology, /* Dilate then Erode */ + CloseMorphology, /* Erode then Dilate */ + OpenIntensityMorphology, /* Pixel Pick using GreyScale Open */ + CloseIntensityMorphology, /* Pixel Pick using GreyScale Close */ + SmoothMorphology, /* Open then Close */ +/* Difference Morphology methods */ + EdgeInMorphology, /* Dilate difference from Original */ + EdgeOutMorphology, /* Erode difference from Original */ + EdgeMorphology, /* Dilate difference with Erode */ + TopHatMorphology, /* Close difference from Original */ + BottomHatMorphology, /* Open difference from Original */ +/* Recursive Morphology methods */ + HitAndMissMorphology, /* Foreground/Background pattern matching */ + ThinningMorphology, /* Remove matching pixels from image */ + ThickenMorphology, /* Add matching pixels from image */ +/* Directly Applied Morphology methods */ + DistanceMorphology, /* Add Kernel Value, take Minimum */ + VoronoiMorphology /* Distance matte channel copy nearest color */ +} MorphologyMethod; + +typedef struct _KernelInfo +{ + KernelInfoType + type; + + size_t + width, + height; + + ssize_t + x, + y; + + MagickRealType + *values; + + double + minimum, + maximum, + negative_range, + positive_range, + angle; + + struct _KernelInfo + *next; + + size_t + signature; +} KernelInfo; + +extern MagickExport KernelInfo + *AcquireKernelInfo(const char *,ExceptionInfo *), + *AcquireKernelBuiltIn(const KernelInfoType,const GeometryInfo *, + ExceptionInfo *), + *CloneKernelInfo(const KernelInfo *), + *DestroyKernelInfo(KernelInfo *); + +extern MagickExport Image + *MorphologyImage(const Image *,const MorphologyMethod,const ssize_t, + const KernelInfo *,ExceptionInfo *); + +extern MagickExport void + ScaleGeometryKernelInfo(KernelInfo *,const char *), + ScaleKernelInfo(KernelInfo *,const double,const GeometryFlags), + UnityAddKernelInfo(KernelInfo *,const double); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/nt-base.h b/include/ImageMagick-7/MagickCore/nt-base.h new file mode 100644 index 0000000..62fca3c --- /dev/null +++ b/include/ImageMagick-7/MagickCore/nt-base.h @@ -0,0 +1,328 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore Windows NT utility methods. +*/ +#ifndef MAGICKCORE_NT_BASE_H +#define MAGICKCORE_NT_BASE_H + +#include "MagickCore/exception.h" +#include "MagickCore/geometry.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if defined(MAGICKCORE_WINDOWS_SUPPORT) + +#define WIN32_LEAN_AND_MEAN +#define VC_EXTRALEAN +#define _CRT_SECURE_NO_DEPRECATE 1 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if defined(_DEBUG) && !defined(__MINGW32__) +#include +#endif + +#define PROT_READ 0x01 +#define PROT_WRITE 0x02 +#define MAP_SHARED 0x01 +#define MAP_PRIVATE 0x02 +#define MAP_ANONYMOUS 0x20 +#define F_OK 0 +#define R_OK 4 +#define W_OK 2 +#define RW_OK 6 +#define _SC_PAGESIZE 1 +#define _SC_PHYS_PAGES 2 +#define _SC_OPEN_MAX 3 +#if !defined(SSIZE_MAX) +#define SSIZE_MAX 0x7fffffffL +#endif + +/* + _MSC_VER values: + 1100 MSVC 5.0 + 1200 MSVC 6.0 + 1300 MSVC 7.0 Visual C++ .NET 2002 + 1310 Visual c++ .NET 2003 + 1400 Visual C++ 2005 + 1500 Visual C++ 2008 + 1600 Visual C++ 2010 + 1700 Visual C++ 2012 + 1800 Visual C++ 2013 + 1900 Visual C++ 2015 +*/ + +#if !defined(chsize) +# if defined(__BORLANDC__) +# define chsize(file,length) chsize(file,length) +# else +# define chsize(file,length) _chsize(file,length) +# endif +#endif + +#if !defined(access) +#if defined(_VISUALC_) && (_MSC_VER >= 1400) +# define access(path,mode) _access_s(path,mode) +#endif +#endif +#if !defined(chdir) +# define chdir _chdir +#endif +#if !defined(close) +# define close _close +#endif +#if !defined(closedir) +# define closedir(directory) NTCloseDirectory(directory) +#endif +#define MAGICKCORE_HAVE_ERF +#if defined(_VISUALC_) && (_MSC_VER < 1700) +# define erf(x) NTErf(x) +#endif +#if !defined(fdopen) +# define fdopen _fdopen +#endif +#if !defined(fileno) +# define fileno _fileno +#endif +#if !defined(fseek) && !defined(__MINGW32__) +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \ + !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ + !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) +# define fseek _fseeki64 +#endif +#endif +#if !defined(fstat) && !defined(__BORLANDC__) +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \ + !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ + !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) +# define fstat _fstati64 +#else +# define fstat _fstat +#endif +#endif +#if !defined(fsync) +# define fsync _commit +#endif +#if !defined(ftell) && !defined(__MINGW32__) +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \ + !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ + !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) +# define ftell _ftelli64 +#endif +#endif +#if !defined(ftruncate) +# define ftruncate(file,length) NTTruncateFile(file,length) +#endif +#if !defined(getcwd) +# define getcwd _getcwd +#endif +#if !defined(getpid) +# define getpid _getpid +#endif +#if !defined(hypot) +# define hypot _hypot +#endif +#if !defined(isatty) +# define isatty _isatty +#endif +#if !defined(locale_t) +#define locale_t _locale_t +#endif +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \ + !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ + !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) +#if !defined(lseek) +# define lseek _lseeki64 +#endif +#else +#if !defined(lseek) +# define lseek _lseek +#endif +#endif +#if !defined(MAGICKCORE_LTDL_DELEGATE) +#if !defined(lt_dlclose) +# define lt_dlclose(handle) NTCloseLibrary(handle) +#endif +#if !defined(lt_dlerror) +# define lt_dlerror() NTGetLibraryError() +#endif +#if !defined(lt_dlexit) +# define lt_dlexit() NTExitLibrary() +#endif +#if !defined(lt_dlinit) +# define lt_dlinit() NTInitializeLibrary() +#endif +#if !defined(lt_dlopen) +# define lt_dlopen(filename) NTOpenLibrary(filename) +#endif +#if !defined(lt_dlsetsearchpath) +# define lt_dlsetsearchpath(path) NTSetSearchPath(path) +#endif +#if !defined(lt_dlsym) +# define lt_dlsym(handle,name) NTGetLibrarySymbol(handle,name) +#endif +#endif +#if !defined(mkdir) +# define mkdir _mkdir +#endif +#if !defined(mmap) +# define mmap(address,length,protection,access,file,offset) \ + NTMapMemory(address,length,protection,access,file,offset) +#endif +#if !defined(msync) +# define msync(address,length,flags) NTSyncMemory(address,length,flags) +#endif +#if !defined(munmap) +# define munmap(address,length) NTUnmapMemory(address,length) +#endif +#if !defined(opendir) +# define opendir(directory) NTOpenDirectory(directory) +#endif +#if !defined(open) +# define open _open +#endif +#if !defined(pclose) +# define pclose _pclose +#endif +#if !defined(popen) +# define popen _popen +#endif +#if !defined(fprintf_l) +#define fprintf_l _fprintf_s_l +#endif +#if !defined(read) +# define read(fd,buffer,count) _read(fd,buffer,(unsigned int) count) +#endif +#if !defined(readdir) +# define readdir(directory) NTReadDirectory(directory) +#endif +#if !defined(seekdir) +# define seekdir(directory,offset) NTSeekDirectory(directory,offset) +#endif +#if !defined(setmode) +# define setmode _setmode +#endif +#if !defined(spawnvp) +# define spawnvp _spawnvp +#endif +#if !defined(strtod_l) +#define strtod_l _strtod_l +#endif +#if !defined(stat) && !defined(__BORLANDC__) +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \ + !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ + !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) +# define stat _stati64 +#else +# define stat _stat +#endif +#endif +#if !defined(strcasecmp) +# define strcasecmp _stricmp +#endif +#if !defined(strncasecmp) +# define strncasecmp _strnicmp +#endif +#if !defined(sysconf) +# define sysconf(name) NTSystemConfiguration(name) +#endif +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \ + !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ + !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) +# define tell _telli64 +#else +# define tell _tell +#endif +#if !defined(telldir) +# define telldir(directory) NTTellDirectory(directory) +#endif +#if !defined(tempnam) +# define tempnam _tempnam_s +#endif +#if !defined(umask) +# define umask _umask +#endif +#if !defined(unlink) +# define unlink _unlink +#endif +#if !defined(utime) +# define utime(filename,time) _utime(filename,(struct _utimbuf*) time) +#endif +#if !defined(vfprintf_l) +#define vfprintf_l _vfprintf_l +#endif +#if !defined(vsnprintf) +#if !defined(_MSC_VER) || (defined(_MSC_VER) && _MSC_VER < 1500) +#define vsnprintf _vsnprintf +#endif +#endif +#if !defined(vsnprintf_l) +#define vsnprintf_l _vsnprintf_l +#endif +#if !defined(write) +# define write(fd,buffer,count) _write(fd,buffer,(unsigned int) count) +#endif +#if !defined(wstat) && !defined(__BORLANDC__) +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(Windows95) && \ + !(defined(_MSC_VER) && (_MSC_VER < 1400)) && \ + !(defined(__MSVCRT_VERSION__) && (__MSVCRT_VERSION__ < 0x800)) +# define wstat _wstati64 +#else +# define wstat _wstat +#endif +#endif + +#if defined(__BORLANDC__) +#undef _O_RANDOM +#define _O_RANDOM 0 +#undef _O_SEQUENTIAL +#define _O_SEQUENTIAL 0 +#undef _O_SHORT_LIVED +#define _O_SHORT_LIVED 0 +#undef _O_TEMPORARY +#define _O_TEMPORARY 0 +#endif + +#undef gettimeofday + +typedef struct _GhostInfo + GhostInfo_; + +extern MagickExport char + **NTArgvToUTF8(const int argc,wchar_t **); + +extern MagickExport const GhostInfo_ + *NTGhostscriptDLLVectors(void); + +extern MagickExport void + NTErrorHandler(const ExceptionType,const char *,const char *), + NTGhostscriptUnLoadDLL(void), + NTWarningHandler(const ExceptionType,const char *,const char *); +#endif + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/opencl.h b/include/ImageMagick-7/MagickCore/opencl.h new file mode 100644 index 0000000..0fd6798 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/opencl.h @@ -0,0 +1,78 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore OpenCL public methods. +*/ +#ifndef MAGICKCORE_OPENCL_H +#define MAGICKCORE_OPENCL_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedCLDeviceType, + CpuCLDeviceType, + GpuCLDeviceType +} MagickCLDeviceType; + +typedef struct _KernelProfileRecord +{ + char + *kernel_name; + + unsigned long + count, + max, + min, + total; +}* KernelProfileRecord; + +typedef struct _MagickCLDevice* MagickCLDevice; + +extern MagickExport const char + *GetOpenCLDeviceName(const MagickCLDevice), + *GetOpenCLDeviceVendorName(const MagickCLDevice), + *GetOpenCLDeviceVersion(const MagickCLDevice); + +extern MagickExport const KernelProfileRecord + *GetOpenCLKernelProfileRecords(const MagickCLDevice,size_t *); + +extern MagickExport double + GetOpenCLDeviceBenchmarkScore(const MagickCLDevice); + +extern MagickExport MagickCLDevice + *GetOpenCLDevices(size_t *,ExceptionInfo *); + +extern MagickExport MagickCLDeviceType + GetOpenCLDeviceType(const MagickCLDevice); + +extern MagickExport MagickBooleanType + GetOpenCLDeviceEnabled(const MagickCLDevice), + GetOpenCLEnabled(void), + SetOpenCLEnabled(const MagickBooleanType); + +extern MagickExport void + SetOpenCLDeviceEnabled(MagickCLDevice, + const MagickBooleanType), + SetOpenCLKernelProfileEnabled(MagickCLDevice, + const MagickBooleanType); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/option.h b/include/ImageMagick-7/MagickCore/option.h new file mode 100644 index 0000000..ab5ea86 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/option.h @@ -0,0 +1,214 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore option methods. +*/ +#ifndef MAGICKCORE_OPTION_H +#define MAGICKCORE_OPTION_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + MagickUndefinedOptions = -1, + MagickAlignOptions = 0, + MagickAlphaChannelOptions, + MagickBooleanOptions, + MagickCacheOptions, + MagickChannelOptions, + MagickClassOptions, + MagickClipPathOptions, + MagickCoderOptions, + MagickColorOptions, + MagickColorspaceOptions, + MagickCommandOptions, + MagickComplexOptions, + MagickComplianceOptions, + MagickComposeOptions, + MagickCompressOptions, + MagickConfigureOptions, + MagickDataTypeOptions, + MagickDebugOptions, + MagickDecorateOptions, + MagickDelegateOptions, + MagickDirectionOptions, + MagickDisposeOptions, + MagickDistortOptions, + MagickDitherOptions, + MagickEndianOptions, + MagickEvaluateOptions, + MagickFillRuleOptions, + MagickFilterOptions, + MagickFontOptions, + MagickFontsOptions, + MagickFormatOptions, + MagickFunctionOptions, + MagickGradientOptions, + MagickGravityOptions, + MagickIntensityOptions, + MagickIntentOptions, + MagickInterlaceOptions, + MagickInterpolateOptions, + MagickKernelOptions, + MagickLayerOptions, + MagickLineCapOptions, + MagickLineJoinOptions, + MagickListOptions, + MagickLocaleOptions, + MagickLogEventOptions, + MagickLogOptions, + MagickMagicOptions, + MagickMethodOptions, + MagickMetricOptions, + MagickMimeOptions, + MagickModeOptions, + MagickModuleOptions, + MagickMorphologyOptions, + MagickNoiseOptions, + MagickOrientationOptions, + MagickPixelChannelOptions, + MagickPixelIntensityOptions, + MagickPixelMaskOptions, + MagickPixelTraitOptions, + MagickPolicyOptions, + MagickPolicyDomainOptions, + MagickPolicyRightsOptions, + MagickPreviewOptions, + MagickPrimitiveOptions, + MagickQuantumFormatOptions, + MagickResolutionOptions, + MagickResourceOptions, + MagickSparseColorOptions, + MagickStatisticOptions, + MagickStorageOptions, + MagickStretchOptions, + MagickStyleOptions, + MagickThresholdOptions, + MagickTypeOptions, + MagickValidateOptions, + MagickVirtualPixelOptions, + MagickWeightOptions, + MagickAutoThresholdOptions, + MagickToolOptions, + MagickCLIOptions +} CommandOption; + +typedef enum +{ + UndefinedValidate, + NoValidate = 0x00000, + ColorspaceValidate = 0x00001, + CompareValidate = 0x00002, + CompositeValidate = 0x00004, + ConvertValidate = 0x00008, + FormatsDiskValidate = 0x00010, + FormatsMapValidate = 0x00020, + FormatsMemoryValidate = 0x00040, + IdentifyValidate = 0x00080, + ImportExportValidate = 0x00100, + MontageValidate = 0x00200, + StreamValidate = 0x00400, + AllValidate = 0x7fffffff +} ValidateType; + +/* + Flags to describe classes of image processing options. + These are used to determine how a option should be processed, and + avoid attempting to process all options in every way posible. +*/ +typedef enum +{ + UndefinedOptionFlag = 0x0000, /* option flag is not in use */ + + ImageInfoOptionFlag = 0x0001, /* Setting stored in ImageInfo */ + DrawInfoOptionFlag = 0x0002, /* Setting stored in DrawInfo */ + QuantizeInfoOptionFlag = 0x0004, /* Setting stored in QuantizeInfo */ + GlobalOptionFlag = 0x0008, /* Global Setting or Control */ + SettingOptionFlags = 0x000F, /* mask any setting option */ + + NoImageOperatorFlag = 0x0010, /* Images not required operator */ + SimpleOperatorFlag = 0x0020, /* Simple Image processing operator */ + ListOperatorFlag = 0x0040, /* Multi-Image processing operator */ + GenesisOptionFlag = 0x0080, /* MagickCommandGenesis() Only Option */ + + SpecialOptionFlag = 0x0100, /* Operator with Special Requirements */ + /* EG: for specific CLI commands */ + + AlwaysInterpretArgsFlag = 0x0400, /* Always Interpret escapes in Args */ + /* CF: "convert" compatibility mode */ + NeverInterpretArgsFlag = 0x0800, /* Never Interpret escapes in Args */ + /* EG: filename, or delayed escapes */ + + NonMagickOptionFlag = 0x1000, /* Option not used by Magick Command */ + FireOptionFlag = 0x2000, /* Convert operation seq firing point */ + DeprecateOptionFlag = 0x4000, /* Deprecate option (no code) */ + ReplacedOptionFlag = 0x8800 /* Replaced Option (but still works) */ + +} CommandOptionFlags; + +typedef struct _OptionInfo +{ + const char + *mnemonic; + + ssize_t + type, + flags; + + MagickBooleanType + stealth; +} OptionInfo; + + +extern MagickExport char + **GetCommandOptions(const CommandOption), + *GetNextImageOption(const ImageInfo *), + *RemoveImageOption(ImageInfo *,const char *); + +extern MagickExport const char + *CommandOptionToMnemonic(const CommandOption,const ssize_t), + *GetImageOption(const ImageInfo *,const char *); + +extern MagickExport MagickBooleanType + CloneImageOptions(ImageInfo *,const ImageInfo *), + DefineImageOption(ImageInfo *,const char *), + DeleteImageOption(ImageInfo *,const char *), + IsCommandOption(const char *), + IsOptionMember(const char *,const char *), + ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *), + SetImageOption(ImageInfo *,const char *,const char *); + +extern MagickExport ssize_t + GetCommandOptionFlags(const CommandOption,const MagickBooleanType, + const char *), + ParseChannelOption(const char *), + ParsePixelChannelOption(const char *), + ParseCommandOption(const CommandOption,const MagickBooleanType,const char *); + +extern MagickExport void + DestroyImageOptions(ImageInfo *), + ResetImageOptions(const ImageInfo *), + ResetImageOptionIterator(const ImageInfo *); + +extern MagickExport const OptionInfo + *GetCommandOptionInfo(const char *value); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/paint.h b/include/ImageMagick-7/MagickCore/paint.h new file mode 100644 index 0000000..b6d01a6 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/paint.h @@ -0,0 +1,47 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image paint methods. +*/ +#ifndef MAGICKCORE_PAINT_H +#define MAGICKCORE_PAINT_H + +#include "MagickCore/color.h" +#include "MagickCore/draw.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport Image + *OilPaintImage(const Image *,const double,const double,ExceptionInfo *); + +extern MagickExport MagickBooleanType + FloodfillPaintImage(Image *,const DrawInfo *,const PixelInfo *,const ssize_t, + const ssize_t,const MagickBooleanType,ExceptionInfo *), + GradientImage(Image *,const GradientType,const SpreadMethod,const StopInfo *, + const size_t,ExceptionInfo *), + OpaquePaintImage(Image *,const PixelInfo *,const PixelInfo *, + const MagickBooleanType,ExceptionInfo *), + TransparentPaintImage(Image *,const PixelInfo *, + const Quantum,const MagickBooleanType,ExceptionInfo *), + TransparentPaintImageChroma(Image *,const PixelInfo *, + const PixelInfo *,const Quantum,const MagickBooleanType,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/pixel-accessor.h b/include/ImageMagick-7/MagickCore/pixel-accessor.h new file mode 100644 index 0000000..75c501c --- /dev/null +++ b/include/ImageMagick-7/MagickCore/pixel-accessor.h @@ -0,0 +1,888 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore pixel accessor methods. +*/ +#ifndef MAGICKCORE_PIXEL_ACCESSOR_H +#define MAGICKCORE_PIXEL_ACCESSOR_H + +#include +#include "MagickCore/cache.h" +#include "MagickCore/cache-view.h" +#include "MagickCore/color.h" +#include "MagickCore/colorspace.h" +#include "MagickCore/gem.h" +#include "MagickCore/image.h" +#include "MagickCore/memory_.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#undef index + +static inline Quantum ClampPixel(const MagickRealType pixel) +{ + if (pixel < 0.0f) + return((Quantum) 0); + if (pixel >= (MagickRealType) QuantumRange) + return((Quantum) QuantumRange); +#if !defined(MAGICKCORE_HDRI_SUPPORT) + return((Quantum) (pixel+0.5f)); +#else + return((Quantum) pixel); +#endif +} + +static inline Quantum GetPixela(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[aPixelChannel].offset]); +} + +static inline Quantum GetPixelAlpha(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + if (image->channel_map[AlphaPixelChannel].traits == UndefinedPixelTrait) + return(OpaqueAlpha); + return(pixel[image->channel_map[AlphaPixelChannel].offset]); +} + +static inline PixelTrait GetPixelAlphaTraits( + const Image *magick_restrict image) +{ + return(image->channel_map[AlphaPixelChannel].traits); +} + +static inline Quantum GetPixelb(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[bPixelChannel].offset]); +} + +static inline Quantum GetPixelBlack(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + if (image->channel_map[BlackPixelChannel].traits == UndefinedPixelTrait) + return((Quantum) 0); + return(pixel[image->channel_map[BlackPixelChannel].offset]); +} + +static inline PixelTrait GetPixelBlackTraits( + const Image *magick_restrict image) +{ + return(image->channel_map[BlackPixelChannel].traits); +} + +static inline Quantum GetPixelBlue(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[BluePixelChannel].offset]); +} + +static inline PixelTrait GetPixelBlueTraits(const Image *magick_restrict image) +{ + return(image->channel_map[BluePixelChannel].traits); +} + +static inline Quantum GetPixelCb(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[CbPixelChannel].offset]); +} + +static inline PixelTrait GetPixelCbTraits(const Image *magick_restrict image) +{ + return(image->channel_map[CbPixelChannel].traits); +} + +static inline Quantum GetPixelChannel(const Image *magick_restrict image, + const PixelChannel channel,const Quantum *magick_restrict pixel) +{ + if (image->channel_map[channel].traits == UndefinedPixelTrait) + return((Quantum) 0); + return(pixel[image->channel_map[channel].offset]); +} + +static inline PixelChannel GetPixelChannelChannel( + const Image *magick_restrict image,const ssize_t offset) +{ + return(image->channel_map[offset].channel); +} + +static inline ssize_t GetPixelChannelOffset(const Image *magick_restrict image, + const PixelChannel channel) +{ + return(image->channel_map[channel].offset); +} + +static inline PixelTrait GetPixelChannelTraits( + const Image *magick_restrict image,const PixelChannel channel) +{ + return(image->channel_map[channel].traits); +} + +static inline size_t GetPixelChannels(const Image *magick_restrict image) +{ + return(image->number_channels); +} + +static inline Quantum GetPixelCompositeMask(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + if (image->channel_map[CompositeMaskPixelChannel].traits == UndefinedPixelTrait) + return((Quantum) QuantumRange); + return(pixel[image->channel_map[CompositeMaskPixelChannel].offset]); +} + +static inline Quantum GetPixelCr(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[CrPixelChannel].offset]); +} + +static inline PixelTrait GetPixelCrTraits(const Image *magick_restrict image) +{ + return(image->channel_map[CrPixelChannel].traits); +} + +static inline Quantum GetPixelCyan(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[CyanPixelChannel].offset]); +} + +static inline PixelTrait GetPixelCyanTraits(const Image *magick_restrict image) +{ + return(image->channel_map[CyanPixelChannel].traits); +} + +static inline Quantum GetPixelGray(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[GrayPixelChannel].offset]); +} + +static inline PixelTrait GetPixelGrayTraits(const Image *magick_restrict image) +{ + return(image->channel_map[GrayPixelChannel].traits); +} + +static inline Quantum GetPixelGreen(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[GreenPixelChannel].offset]); +} + +static inline PixelTrait GetPixelGreenTraits( + const Image *magick_restrict image) +{ + return(image->channel_map[GreenPixelChannel].traits); +} + +static inline Quantum GetPixelIndex(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + if (image->channel_map[IndexPixelChannel].traits == UndefinedPixelTrait) + return((Quantum) 0); + return(pixel[image->channel_map[IndexPixelChannel].offset]); +} + +static inline PixelTrait GetPixelIndexTraits( + const Image *magick_restrict image) +{ + return(image->channel_map[IndexPixelChannel].traits); +} + +static inline MagickRealType GetPixelInfoChannel( + const PixelInfo *magick_restrict pixel_info,const PixelChannel channel) +{ + switch (channel) + { + case RedPixelChannel: return(pixel_info->red); + case GreenPixelChannel: return(pixel_info->green); + case BluePixelChannel: return(pixel_info->blue); + case BlackPixelChannel: return(pixel_info->black); + case AlphaPixelChannel: return(pixel_info->alpha); + case IndexPixelChannel: return(pixel_info->index); + default: return((MagickRealType) 0.0); + } +} + +static inline double PerceptibleReciprocal(const double x) +{ + double + sign; + + /* + Return 1/x where x is perceptible (not unlimited or infinitesimal). + */ + sign=x < 0.0 ? -1.0 : 1.0; + if ((sign*x) >= MagickEpsilon) + return(1.0/x); + return(sign/MagickEpsilon); +} + +static inline MagickRealType GetPixelInfoLuma( + const PixelInfo *magick_restrict pixel) +{ + MagickRealType + intensity; + + if (pixel->colorspace == sRGBColorspace) + { + intensity=(MagickRealType) (0.212656f*pixel->red+0.715158f*pixel->green+ + 0.072186f*pixel->blue); + return(intensity); + } + intensity=(MagickRealType) (0.212656f*EncodePixelGamma(pixel->red)+ + 0.715158f*EncodePixelGamma(pixel->green)+ + 0.072186f*EncodePixelGamma(pixel->blue)); + return(intensity); +} + +static inline MagickRealType GetPixelInfoLuminance( + const PixelInfo *magick_restrict pixel) +{ + MagickRealType + intensity; + + if (pixel->colorspace != sRGBColorspace) + { + intensity=(MagickRealType) (0.212656f*pixel->red+0.715158f*pixel->green+ + 0.072186f*pixel->blue); + return(intensity); + } + intensity=(MagickRealType) (0.212656f*DecodePixelGamma(pixel->red)+ + 0.715158f*DecodePixelGamma(pixel->green)+ + 0.072186f*DecodePixelGamma(pixel->blue)); + return(intensity); +} + +static inline Quantum GetPixelL(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[LPixelChannel].offset]); +} + +static inline ssize_t GetPixelLabel(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return((ssize_t) pixel[image->channel_map[LabelPixelChannel].offset]); +} + +static inline MagickRealType GetPixelLuma(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + MagickRealType + intensity; + + intensity=(MagickRealType) ( + 0.212656f*pixel[image->channel_map[RedPixelChannel].offset]+ + 0.715158f*pixel[image->channel_map[GreenPixelChannel].offset]+ + 0.072186f*pixel[image->channel_map[BluePixelChannel].offset]); + return(intensity); +} + +static inline MagickRealType GetPixelLuminance( + const Image *magick_restrict image,const Quantum *magick_restrict pixel) +{ + MagickRealType + intensity; + + if (image->colorspace != sRGBColorspace) + { + intensity=(MagickRealType) ( + 0.212656f*pixel[image->channel_map[RedPixelChannel].offset]+ + 0.715158f*pixel[image->channel_map[GreenPixelChannel].offset]+ + 0.072186f*pixel[image->channel_map[BluePixelChannel].offset]); + return(intensity); + } + intensity=(MagickRealType) (0.212656f*DecodePixelGamma((MagickRealType) + pixel[image->channel_map[RedPixelChannel].offset])+0.715158f* + DecodePixelGamma((MagickRealType) + pixel[image->channel_map[GreenPixelChannel].offset])+0.072186f* + DecodePixelGamma((MagickRealType) + pixel[image->channel_map[BluePixelChannel].offset])); + return(intensity); +} + +static inline Quantum GetPixelMagenta(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[MagentaPixelChannel].offset]); +} + +static inline PixelTrait GetPixelMagentaTraits( + const Image *magick_restrict image) +{ + return(image->channel_map[MagentaPixelChannel].traits); +} + +static inline Quantum GetPixelReadMask(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + if (image->channel_map[ReadMaskPixelChannel].traits == UndefinedPixelTrait) + return((Quantum) QuantumRange); + return(pixel[image->channel_map[ReadMaskPixelChannel].offset]); +} + +static inline Quantum GetPixelWriteMask(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + if (image->channel_map[WriteMaskPixelChannel].traits == UndefinedPixelTrait) + return((Quantum) QuantumRange); + return(pixel[image->channel_map[WriteMaskPixelChannel].offset]); +} + +static inline PixelTrait GetPixelReadMaskTraits( + const Image *magick_restrict image) +{ + return(image->channel_map[ReadMaskPixelChannel].traits); +} + +static inline size_t GetPixelMetaChannels(const Image *magick_restrict image) +{ + return(image->number_meta_channels); +} + +static inline size_t GetPixelMetacontentExtent( + const Image *magick_restrict image) +{ + return(image->metacontent_extent); +} + +static inline Quantum GetPixelOpacity(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + if (image->channel_map[AlphaPixelChannel].traits != BlendPixelTrait) + return(QuantumRange-OpaqueAlpha); + return(QuantumRange-pixel[image->channel_map[AlphaPixelChannel].offset]); +} + +static inline Quantum GetPixelRed(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[RedPixelChannel].offset]); +} + +static inline PixelTrait GetPixelRedTraits(const Image *magick_restrict image) +{ + return(image->channel_map[RedPixelChannel].traits); +} + +static inline void GetPixelInfoPixel(const Image *magick_restrict image, + const Quantum *magick_restrict pixel,PixelInfo *magick_restrict pixel_info) +{ + (void) ResetMagickMemory(pixel_info,0,sizeof(*pixel_info)); + pixel_info->storage_class=DirectClass; + pixel_info->colorspace=sRGBColorspace; + pixel_info->depth=MAGICKCORE_QUANTUM_DEPTH; + pixel_info->alpha_trait=UndefinedPixelTrait; + pixel_info->alpha=(MagickRealType) OpaqueAlpha; + if (image != (Image *) NULL) + { + pixel_info->storage_class=image->storage_class; + pixel_info->colorspace=image->colorspace; + pixel_info->fuzz=image->fuzz; + pixel_info->depth=image->depth; + pixel_info->alpha_trait=image->alpha_trait; + } + if (pixel != (Quantum *) NULL) + { + pixel_info->red=(MagickRealType) + pixel[image->channel_map[RedPixelChannel].offset]; + pixel_info->green=(MagickRealType) + pixel[image->channel_map[GreenPixelChannel].offset]; + pixel_info->blue=(MagickRealType) + pixel[image->channel_map[BluePixelChannel].offset]; + if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait) + pixel_info->black=(MagickRealType) + pixel[image->channel_map[BlackPixelChannel].offset]; + if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait) + { + pixel_info->alpha=(MagickRealType) + pixel[image->channel_map[AlphaPixelChannel].offset]; + pixel_info->alpha_trait=BlendPixelTrait; + } + if (image->channel_map[IndexPixelChannel].traits != UndefinedPixelTrait) + pixel_info->index=(MagickRealType) + pixel[image->channel_map[IndexPixelChannel].offset]; + } +} + +static inline PixelTrait GetPixelTraits(const Image *magick_restrict image, + const PixelChannel channel) +{ + return(image->channel_map[channel].traits); +} + +static inline Quantum GetPixelY(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[YPixelChannel].offset]); +} + +static inline PixelTrait GetPixelYTraits(const Image *magick_restrict image) +{ + return(image->channel_map[YPixelChannel].traits); +} + +static inline Quantum GetPixelYellow(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + return(pixel[image->channel_map[YellowPixelChannel].offset]); +} + +static inline PixelTrait GetPixelYellowTraits( + const Image *magick_restrict image) +{ + return(image->channel_map[YellowPixelChannel].traits); +} + +static inline MagickRealType AbsolutePixelValue(const MagickRealType x) +{ + return(x < 0.0f ? -x : x); +} + +static inline MagickBooleanType IsPixelAtDepth(const Quantum pixel, + const QuantumAny range) +{ + Quantum + quantum; + +#if !defined(MAGICKCORE_HDRI_SUPPORT) + quantum=(Quantum) (((MagickRealType) QuantumRange*((QuantumAny) + (((MagickRealType) range*pixel)/QuantumRange+0.5)))/range+0.5); +#else + quantum=(Quantum) (((MagickRealType) QuantumRange*((QuantumAny) + (((MagickRealType) range*pixel)/QuantumRange+0.5)))/range); +#endif + return(pixel == quantum ? MagickTrue : MagickFalse); +} + +static inline MagickBooleanType IsPixelEquivalent( + const Image *magick_restrict image,const Quantum *magick_restrict p, + const PixelInfo *magick_restrict q) +{ + MagickRealType + alpha, + beta, + color; + + color=(MagickRealType) p[image->channel_map[AlphaPixelChannel].offset]; + alpha=image->alpha_trait == UndefinedPixelTrait ? (MagickRealType) + OpaqueAlpha : color; + beta=q->alpha_trait == UndefinedPixelTrait ? (MagickRealType) OpaqueAlpha : + q->alpha; + if (AbsolutePixelValue(alpha-beta) >= MagickEpsilon) + return(MagickFalse); + if ((AbsolutePixelValue(alpha-TransparentAlpha) < MagickEpsilon) || + (AbsolutePixelValue(beta-TransparentAlpha) < MagickEpsilon)) + return(MagickTrue); /* no color component if pixel is transparent */ + color=(MagickRealType) p[image->channel_map[RedPixelChannel].offset]; + if (AbsolutePixelValue(color-q->red) >= MagickEpsilon) + return(MagickFalse); + color=(MagickRealType) p[image->channel_map[GreenPixelChannel].offset]; + if (AbsolutePixelValue(color-q->green) >= MagickEpsilon) + return(MagickFalse); + color=(MagickRealType) p[image->channel_map[BluePixelChannel].offset]; + if (AbsolutePixelValue(color-q->blue) >= MagickEpsilon) + return(MagickFalse); + if (image->colorspace == CMYKColorspace) + { + color=(MagickRealType) p[image->channel_map[BlackPixelChannel].offset]; + if (AbsolutePixelValue(color-q->black) >= MagickEpsilon) + return(MagickFalse); + } + return(MagickTrue); +} + +static inline MagickBooleanType IsPixelGray(const Image *magick_restrict image, + const Quantum *magick_restrict pixel) +{ + MagickRealType + green_blue, + red_green; + + red_green=(MagickRealType) pixel[image->channel_map[RedPixelChannel].offset]- + pixel[image->channel_map[GreenPixelChannel].offset]; + green_blue=(MagickRealType) + pixel[image->channel_map[GreenPixelChannel].offset]- + pixel[image->channel_map[BluePixelChannel].offset]; + if ((AbsolutePixelValue(red_green) < MagickEpsilon) && + (AbsolutePixelValue(green_blue) < MagickEpsilon)) + return(MagickTrue); + return(MagickFalse); +} + +static inline MagickBooleanType IsPixelInfoEquivalent( + const PixelInfo *magick_restrict p,const PixelInfo *magick_restrict q) +{ + MagickRealType + alpha, + beta; + + alpha=p->alpha_trait == UndefinedPixelTrait ? (MagickRealType) OpaqueAlpha : + p->alpha; + beta=q->alpha_trait == UndefinedPixelTrait ? (MagickRealType) OpaqueAlpha : + q->alpha; + if (AbsolutePixelValue(alpha-beta) >= MagickEpsilon) + return(MagickFalse); + if ((AbsolutePixelValue(alpha-TransparentAlpha) < MagickEpsilon) || + (AbsolutePixelValue(beta-TransparentAlpha) < MagickEpsilon)) + return(MagickTrue); /* no color component if pixel is transparent */ + if (AbsolutePixelValue(p->red-q->red) >= MagickEpsilon) + return(MagickFalse); + if (AbsolutePixelValue(p->green-q->green) >= MagickEpsilon) + return(MagickFalse); + if (AbsolutePixelValue(p->blue-q->blue) >= MagickEpsilon) + return(MagickFalse); + if (p->colorspace == CMYKColorspace) + { + if (AbsolutePixelValue(p->black-q->black) >= MagickEpsilon) + return(MagickFalse); + } + return(MagickTrue); +} + +static inline MagickBooleanType IsPixelMonochrome( + const Image *magick_restrict image,const Quantum *magick_restrict pixel) +{ + MagickRealType + green_blue, + red, + red_green; + + red=(MagickRealType) pixel[image->channel_map[RedPixelChannel].offset]; + if ((AbsolutePixelValue(red) >= MagickEpsilon) && + (AbsolutePixelValue(red-QuantumRange) >= MagickEpsilon)) + return(MagickFalse); + red_green=(MagickRealType) pixel[image->channel_map[RedPixelChannel].offset]- + pixel[image->channel_map[GreenPixelChannel].offset]; + green_blue=(MagickRealType) + pixel[image->channel_map[GreenPixelChannel].offset]- + pixel[image->channel_map[BluePixelChannel].offset]; + if ((AbsolutePixelValue(red_green) < MagickEpsilon) && + (AbsolutePixelValue(green_blue) < MagickEpsilon)) + return(MagickTrue); + return(MagickFalse); +} + +static inline MagickBooleanType IsPixelInfoGray( + const PixelInfo *magick_restrict pixel) +{ + if ((AbsolutePixelValue(pixel->red-pixel->green) < MagickEpsilon) && + (AbsolutePixelValue(pixel->green-pixel->blue) < MagickEpsilon)) + return(MagickTrue); + return(MagickFalse); +} + +static inline MagickBooleanType IsPixelInfoMonochrome( + const PixelInfo *magick_restrict pixel_info) +{ + MagickRealType + green_blue, + red_green; + + if ((AbsolutePixelValue(pixel_info->red) >= MagickEpsilon) || + (AbsolutePixelValue(pixel_info->red-QuantumRange) >= MagickEpsilon)) + return(MagickFalse); + red_green=pixel_info->red-pixel_info->green; + green_blue=pixel_info->green-pixel_info->blue; + if ((AbsolutePixelValue(red_green) < MagickEpsilon) && + (AbsolutePixelValue(green_blue) < MagickEpsilon)) + return(MagickTrue); + return(MagickFalse); +} + +static inline void SetPixela(const Image *magick_restrict image, + const Quantum a,Quantum *magick_restrict pixel) +{ + if (image->channel_map[aPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[aPixelChannel].offset]=a; +} + +static inline void SetPixelAlpha(const Image *magick_restrict image, + const Quantum alpha,Quantum *magick_restrict pixel) +{ + if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[AlphaPixelChannel].offset]=alpha; +} + +static inline void SetPixelAlphaTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[AlphaPixelChannel].traits=traits; +} + +static inline void SetPixelb(const Image *magick_restrict image, + const Quantum b,Quantum *magick_restrict pixel) +{ + if (image->channel_map[bPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[bPixelChannel].offset]=b; +} + +static inline void SetPixelBackgoundColor(const Image *magick_restrict image, + Quantum *magick_restrict pixel) +{ + register ssize_t + i; + + for (i=0; i < (ssize_t) GetPixelChannels(image); i++) + pixel[i]=(Quantum) 0; + pixel[image->channel_map[RedPixelChannel].offset]= + ClampToQuantum(image->background_color.red); + pixel[image->channel_map[GreenPixelChannel].offset]= + ClampToQuantum(image->background_color.green); + pixel[image->channel_map[BluePixelChannel].offset]= + ClampToQuantum(image->background_color.blue); + if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[BlackPixelChannel].offset]= + ClampToQuantum(image->background_color.black); + if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[AlphaPixelChannel].offset]= + image->background_color.alpha_trait == UndefinedPixelTrait ? OpaqueAlpha : + ClampToQuantum(image->background_color.alpha); +} + +static inline void SetPixelBlack(const Image *magick_restrict image, + const Quantum black,Quantum *magick_restrict pixel) +{ + if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[BlackPixelChannel].offset]=black; +} + +static inline void SetPixelBlackTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[BlackPixelChannel].traits=traits; +} + +static inline void SetPixelBlue(const Image *magick_restrict image, + const Quantum blue,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[BluePixelChannel].offset]=blue; +} + +static inline void SetPixelBlueTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[BluePixelChannel].traits=traits; +} + +static inline void SetPixelCb(const Image *magick_restrict image, + const Quantum cb,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[CbPixelChannel].offset]=cb; +} + +static inline void SetPixelCbTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[CbPixelChannel].traits=traits; +} + +static inline void SetPixelChannel(const Image *magick_restrict image, + const PixelChannel channel,const Quantum quantum, + Quantum *magick_restrict pixel) +{ + if (image->channel_map[channel].traits != UndefinedPixelTrait) + pixel[image->channel_map[channel].offset]=quantum; +} + +static inline void SetPixelChannelAttributes( + const Image *magick_restrict image,const PixelChannel channel, + const PixelTrait traits,const ssize_t offset) +{ + assert((ssize_t) channel < MaxPixelChannels); + assert(offset < MaxPixelChannels); + image->channel_map[offset].channel=channel; + image->channel_map[channel].offset=offset; + image->channel_map[channel].traits=traits; +} + +static inline void SetPixelChannelChannel(const Image *magick_restrict image, + const PixelChannel channel,const ssize_t offset) +{ + image->channel_map[offset].channel=channel; + image->channel_map[channel].offset=offset; +} + +static inline void SetPixelChannels(Image *image,const size_t number_channels) +{ + image->number_channels=number_channels; +} + +static inline void SetPixelChannelTraits(Image *image, + const PixelChannel channel,const PixelTrait traits) +{ + image->channel_map[channel].traits=traits; +} + +static inline void SetPixelCompositeMask(const Image *magick_restrict image, + const Quantum mask,Quantum *magick_restrict pixel) +{ + if (image->channel_map[CompositeMaskPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[CompositeMaskPixelChannel].offset]=mask; +} + +static inline void SetPixelCr(const Image *magick_restrict image, + const Quantum cr,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[CrPixelChannel].offset]=cr; +} + +static inline void SetPixelCrTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[CrPixelChannel].traits=traits; +} + +static inline void SetPixelCyan(const Image *magick_restrict image, + const Quantum cyan,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[CyanPixelChannel].offset]=cyan; +} + +static inline void SetPixelGray(const Image *magick_restrict image, + const Quantum gray,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[GrayPixelChannel].offset]=gray; +} + +static inline void SetPixelGrayTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[GrayPixelChannel].traits=traits; +} + +static inline void SetPixelGreen(const Image *magick_restrict image, + const Quantum green,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[GreenPixelChannel].offset]=green; +} + +static inline void SetPixelGreenTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[GreenPixelChannel].traits=traits; +} + +static inline void SetPixelIndex(const Image *magick_restrict image, + const Quantum index,Quantum *magick_restrict pixel) +{ + if (image->channel_map[IndexPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[IndexPixelChannel].offset]=index; +} + +static inline void SetPixelIndexTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[IndexPixelChannel].traits=traits; +} + +static inline void SetPixelViaPixelInfo(const Image *magick_restrict image, + const PixelInfo *magick_restrict pixel_info,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[RedPixelChannel].offset]= + ClampToQuantum(pixel_info->red); + pixel[image->channel_map[GreenPixelChannel].offset]= + ClampToQuantum(pixel_info->green); + pixel[image->channel_map[BluePixelChannel].offset]= + ClampToQuantum(pixel_info->blue); + if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[BlackPixelChannel].offset]= + ClampToQuantum(pixel_info->black); + if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[AlphaPixelChannel].offset]= + pixel_info->alpha_trait == UndefinedPixelTrait ? OpaqueAlpha : + ClampToQuantum(pixel_info->alpha); +} + +static inline void SetPixelL(const Image *magick_restrict image,const Quantum L, + Quantum *magick_restrict pixel) +{ + if (image->channel_map[LPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[LPixelChannel].offset]=L; +} + +static inline void SetPixelMagenta(const Image *magick_restrict image, + const Quantum magenta,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[MagentaPixelChannel].offset]=magenta; +} + +static inline void SetPixelMagentaTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[MagentaPixelChannel].traits=traits; +} + +static inline void SetPixelReadMask(const Image *magick_restrict image, + const Quantum mask,Quantum *magick_restrict pixel) +{ + if (image->channel_map[ReadMaskPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[ReadMaskPixelChannel].offset]=mask; +} + +static inline void SetPixelWriteMask(const Image *magick_restrict image, + const Quantum mask,Quantum *magick_restrict pixel) +{ + if (image->channel_map[WriteMaskPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[WriteMaskPixelChannel].offset]=mask; +} + +static inline void SetPixelMetacontentExtent(Image *image,const size_t extent) +{ + image->metacontent_extent=extent; +} + +static inline void SetPixelOpacity(const Image *magick_restrict image, + const Quantum alpha,Quantum *magick_restrict pixel) +{ + if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait) + pixel[image->channel_map[AlphaPixelChannel].offset]=QuantumRange-alpha; +} + +static inline void SetPixelRed(const Image *magick_restrict image, + const Quantum red,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[RedPixelChannel].offset]=red; +} + +static inline void SetPixelRedTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[RedPixelChannel].traits=traits; +} + +static inline void SetPixelYellow(const Image *magick_restrict image, + const Quantum yellow,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[YellowPixelChannel].offset]=yellow; +} + +static inline void SetPixelYellowTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[YellowPixelChannel].traits=traits; +} + +static inline void SetPixelY(const Image *magick_restrict image, + const Quantum y,Quantum *magick_restrict pixel) +{ + pixel[image->channel_map[YPixelChannel].offset]=y; +} + +static inline void SetPixelYTraits(Image *image,const PixelTrait traits) +{ + image->channel_map[YPixelChannel].traits=traits; +} + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/pixel.h b/include/ImageMagick-7/MagickCore/pixel.h new file mode 100644 index 0000000..f19b80e --- /dev/null +++ b/include/ImageMagick-7/MagickCore/pixel.h @@ -0,0 +1,264 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image pixel methods. +*/ +#ifndef MAGICKCORE_PIXEL_H +#define MAGICKCORE_PIXEL_H + +#include "MagickCore/colorspace.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define MaxPixelChannels 32 +#undef index + +/* + Pixel enum declarations. +*/ +typedef enum +{ + UndefinedChannel = 0x0000, + RedChannel = 0x0001, + GrayChannel = 0x0001, + CyanChannel = 0x0001, + GreenChannel = 0x0002, + MagentaChannel = 0x0002, + BlueChannel = 0x0004, + YellowChannel = 0x0004, + BlackChannel = 0x0008, + AlphaChannel = 0x0010, + OpacityChannel = 0x0010, + IndexChannel = 0x0020, /* Color Index Table? */ + ReadMaskChannel = 0x0040, /* Pixel is Not Readable? */ + WriteMaskChannel = 0x0080, /* Pixel is Write Protected? */ + MetaChannel = 0x0100, /* not used */ + CompositeMaskChannel = 0x0200, /* SVG mask */ + CompositeChannels = 0x001F, + AllChannels = 0x7ffffff, + /* + Special purpose channel types. + FUTURE: are these needed any more - they are more like hacks + SyncChannels for example is NOT a real channel but a 'flag' + It really says -- "User has not defined channels" + Though it does have extra meaning in the "-auto-level" operator + */ + TrueAlphaChannel = 0x0100, /* extract actual alpha channel from opacity */ + RGBChannels = 0x0200, /* set alpha from grayscale mask in RGB */ + GrayChannels = 0x0400, + SyncChannels = 0x20000, /* channels modified as a single unit */ + DefaultChannels = AllChannels +} ChannelType; /* must correspond to PixelChannel */ + +typedef enum +{ + UndefinedPixelChannel = 0, + RedPixelChannel = 0, + CyanPixelChannel = 0, + GrayPixelChannel = 0, + LPixelChannel = 0, + LabelPixelChannel = 0, + YPixelChannel = 0, + aPixelChannel = 1, + GreenPixelChannel = 1, + MagentaPixelChannel = 1, + CbPixelChannel = 1, + bPixelChannel = 2, + BluePixelChannel = 2, + YellowPixelChannel = 2, + CrPixelChannel = 2, + BlackPixelChannel = 3, + AlphaPixelChannel = 4, + IndexPixelChannel = 5, + ReadMaskPixelChannel = 6, + WriteMaskPixelChannel = 7, + MetaPixelChannel = 8, + CompositeMaskPixelChannel = 9, + IntensityPixelChannel = MaxPixelChannels, /* ???? */ + CompositePixelChannel = MaxPixelChannels, /* ???? */ + SyncPixelChannel = MaxPixelChannels+1 /* not a real channel */ +} PixelChannel; /* must correspond to ChannelType */ + +typedef enum +{ + UndefinedPixelIntensityMethod = 0, + AveragePixelIntensityMethod, + BrightnessPixelIntensityMethod, + LightnessPixelIntensityMethod, + MSPixelIntensityMethod, + Rec601LumaPixelIntensityMethod, + Rec601LuminancePixelIntensityMethod, + Rec709LumaPixelIntensityMethod, + Rec709LuminancePixelIntensityMethod, + RMSPixelIntensityMethod +} PixelIntensityMethod; + +typedef enum +{ + UndefinedInterpolatePixel, + AverageInterpolatePixel, /* Average 4 nearest neighbours */ + Average9InterpolatePixel, /* Average 9 nearest neighbours */ + Average16InterpolatePixel, /* Average 16 nearest neighbours */ + BackgroundInterpolatePixel, /* Just return background color */ + BilinearInterpolatePixel, /* Triangular filter interpolation */ + BlendInterpolatePixel, /* blend of nearest 1, 2 or 4 pixels */ + CatromInterpolatePixel, /* Catmull-Rom interpolation */ + IntegerInterpolatePixel, /* Integer (floor) interpolation */ + MeshInterpolatePixel, /* Triangular Mesh interpolation */ + NearestInterpolatePixel, /* Nearest Neighbour Only */ + SplineInterpolatePixel /* Cubic Spline (blurred) interpolation */ + /* FilterInterpolatePixel, ** Use resize filter - (very slow) */ +} PixelInterpolateMethod; + +typedef enum +{ + UndefinedPixelMask = 0x000000, + ReadPixelMask = 0x000001, + WritePixelMask = 0x000002, + CompositePixelMask = 0x000004 +} PixelMask; + +typedef enum +{ + UndefinedPixelTrait = 0x000000, + CopyPixelTrait = 0x000001, + UpdatePixelTrait = 0x000002, + BlendPixelTrait = 0x000004 +} PixelTrait; + +typedef enum +{ + UndefinedPixel, + CharPixel, + DoublePixel, + FloatPixel, + LongPixel, + LongLongPixel, + QuantumPixel, + ShortPixel +} StorageType; + +/* + Pixel typedef declarations. +*/ +typedef struct _PixelChannelMap +{ + PixelChannel + channel; + + PixelTrait + traits; + + ssize_t + offset; +} PixelChannelMap; + +typedef struct _PixelInfo +{ + ClassType + storage_class; + + ColorspaceType + colorspace; + + PixelTrait + alpha_trait; + + double + fuzz; + + size_t + depth; + + MagickSizeType + count; + + MagickRealType + red, + green, + blue, + black, + alpha, + index; +} PixelInfo; + +typedef struct _PixelPacket +{ + unsigned int + red, + green, + blue, + alpha, + black; +} PixelPacket; + +typedef struct _CacheView + CacheView_; + +/* + Pixel method declarations. +*/ +extern MagickExport ChannelType + SetPixelChannelMask(Image *,const ChannelType); + +extern MagickExport MagickBooleanType + ExportImagePixels(const Image *,const ssize_t,const ssize_t,const size_t, + const size_t,const char *,const StorageType,void *,ExceptionInfo *), + ImportImagePixels(Image *,const ssize_t,const ssize_t,const size_t, + const size_t,const char *,const StorageType,const void *,ExceptionInfo *), + InterpolatePixelChannel(const Image *,const CacheView_ *, + const PixelChannel,const PixelInterpolateMethod,const double,const double, + double *,ExceptionInfo *), + InterpolatePixelChannels(const Image *,const CacheView_ *,const Image *, + const PixelInterpolateMethod,const double,const double,Quantum *, + ExceptionInfo *), + InterpolatePixelInfo(const Image *,const CacheView_ *, + const PixelInterpolateMethod,const double,const double,PixelInfo *, + ExceptionInfo *), + IsFuzzyEquivalencePixel(const Image *,const Quantum *,const Image *, + const Quantum *), + IsFuzzyEquivalencePixelInfo(const PixelInfo *,const PixelInfo *), + SetPixelMetaChannels(Image *,const size_t,ExceptionInfo *); + +extern MagickExport MagickRealType + GetPixelInfoIntensity(const Image *magick_restrict, + const PixelInfo *magick_restrict) magick_hot_spot, + GetPixelIntensity(const Image *magick_restrict, + const Quantum *magick_restrict) magick_hot_spot; + +extern MagickExport PixelChannelMap + *AcquirePixelChannelMap(void), + *ClonePixelChannelMap(PixelChannelMap *), + *DestroyPixelChannelMap(PixelChannelMap *); + +extern MagickExport PixelInfo + *ClonePixelInfo(const PixelInfo *); + +extern MagickExport MagickRealType + DecodePixelGamma(const MagickRealType) magick_hot_spot, + EncodePixelGamma(const MagickRealType) magick_hot_spot; + +extern MagickExport void + ConformPixelInfo(Image *,const PixelInfo *,PixelInfo *,ExceptionInfo *), + GetPixelInfo(const Image *,PixelInfo *), + InitializePixelChannelMap(Image *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/policy.h b/include/ImageMagick-7/MagickCore/policy.h new file mode 100644 index 0000000..c29af37 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/policy.h @@ -0,0 +1,71 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore security policy methods. +*/ +#ifndef MAGICKCORE_POLICY_H +#define MAGICKCORE_POLICY_H + +#include "MagickCore/pixel.h" +#include "MagickCore/exception.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedPolicyDomain, + CoderPolicyDomain, + DelegatePolicyDomain, + FilterPolicyDomain, + PathPolicyDomain, + ResourcePolicyDomain, + SystemPolicyDomain, + CachePolicyDomain +} PolicyDomain; + +typedef enum +{ + UndefinedPolicyRights = 0x00, + NoPolicyRights = 0x00, + ReadPolicyRights = 0x01, + WritePolicyRights = 0x02, + ExecutePolicyRights = 0x04, + AllPolicyRights = 0xff +} PolicyRights; + +typedef struct _PolicyInfo + PolicyInfo; + +extern MagickExport char + *GetPolicyValue(const char *), + **GetPolicyList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport const PolicyInfo + **GetPolicyInfoList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + IsRightsAuthorized(const PolicyDomain,const PolicyRights,const char *), + ListPolicyInfo(FILE *,ExceptionInfo *), + SetMagickSecurityPolicy(const char *,ExceptionInfo *), + SetMagickSecurityPolicyValue(const PolicyDomain,const char *,const char *, + ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/prepress.h b/include/ImageMagick-7/MagickCore/prepress.h new file mode 100644 index 0000000..5ad8ee3 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/prepress.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore prepress methods. +*/ +#ifndef MAGICKCORE_PREPRESS_H +#define MAGICKCORE_PREPRESS_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport double + GetImageTotalInkDensity(Image *image,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/profile.h b/include/ImageMagick-7/MagickCore/profile.h new file mode 100644 index 0000000..9833e74 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/profile.h @@ -0,0 +1,61 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image profile methods. +*/ +#ifndef MAGICKCORE_PROFILE_H +#define MAGICKCORE_PROFILE_H + +#include "MagickCore/string_.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _ProfileInfo + ProfileInfo; + +typedef enum +{ + UndefinedIntent, + SaturationIntent, + PerceptualIntent, + AbsoluteIntent, + RelativeIntent +} RenderingIntent; + +extern MagickExport char + *GetNextImageProfile(const Image *); + +extern MagickExport const StringInfo + *GetImageProfile(const Image *,const char *); + +extern MagickExport MagickBooleanType + CloneImageProfiles(Image *,const Image *), + DeleteImageProfile(Image *,const char *), + ProfileImage(Image *,const char *,const void *,const size_t,ExceptionInfo *), + SetImageProfile(Image *,const char *,const StringInfo *,ExceptionInfo *); + +extern MagickExport StringInfo + *RemoveImageProfile(Image *,const char *); + +extern MagickExport void + DestroyImageProfiles(Image *), + ResetImageProfileIterator(const Image *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif +#endif diff --git a/include/ImageMagick-7/MagickCore/property.h b/include/ImageMagick-7/MagickCore/property.h new file mode 100644 index 0000000..c54ca36 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/property.h @@ -0,0 +1,51 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore property methods. +*/ +#ifndef MAGICKCORE_PROPERTY_H +#define MAGICKCORE_PROPERTY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport char + *InterpretImageProperties(ImageInfo *,Image *,const char *, + ExceptionInfo *), + *RemoveImageProperty(Image *,const char *); + +extern MagickExport const char + *GetNextImageProperty(const Image *), + *GetImageProperty(const Image *,const char *,ExceptionInfo *), + *GetMagickProperty(ImageInfo *,Image *,const char *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + CloneImageProperties(Image *,const Image *), + DefineImageProperty(Image *,const char *,ExceptionInfo *), + DeleteImageProperty(Image *,const char *), + FormatImageProperty(Image *,const char *,const char *,...) + magick_attribute((__format__ (__printf__,3,4))), + SetImageProperty(Image *,const char *,const char *,ExceptionInfo *); + +extern MagickExport void + DestroyImageProperties(Image *), + ResetImagePropertyIterator(const Image *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/quantize.h b/include/ImageMagick-7/MagickCore/quantize.h new file mode 100644 index 0000000..97548f4 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/quantize.h @@ -0,0 +1,77 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image quantization methods. +*/ +#ifndef MAGICKCORE_QUANTIZE_H +#define MAGICKCORE_QUANTIZE_H + +#include "MagickCore/colorspace.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedDitherMethod, + NoDitherMethod, + RiemersmaDitherMethod, + FloydSteinbergDitherMethod +} DitherMethod; + +typedef struct _QuantizeInfo +{ + size_t + number_colors; /* desired maximum number of colors */ + + size_t + tree_depth; + + ColorspaceType + colorspace; + + DitherMethod + dither_method; + + MagickBooleanType + measure_error; + + size_t + signature; +} QuantizeInfo; + +extern MagickExport MagickBooleanType + CompressImageColormap(Image *,ExceptionInfo *), + GetImageQuantizeError(Image *,ExceptionInfo *), + PosterizeImage(Image *,const size_t,const DitherMethod,ExceptionInfo *), + QuantizeImage(const QuantizeInfo *,Image *,ExceptionInfo *), + QuantizeImages(const QuantizeInfo *,Image *,ExceptionInfo *), + RemapImage(const QuantizeInfo *,Image *,const Image *,ExceptionInfo *), + RemapImages(const QuantizeInfo *,Image *,const Image *,ExceptionInfo *); + +extern MagickExport QuantizeInfo + *AcquireQuantizeInfo(const ImageInfo *), + *CloneQuantizeInfo(const QuantizeInfo *), + *DestroyQuantizeInfo(QuantizeInfo *); + +extern MagickExport void + GetQuantizeInfo(QuantizeInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/quantum.h b/include/ImageMagick-7/MagickCore/quantum.h new file mode 100644 index 0000000..7574c70 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/quantum.h @@ -0,0 +1,194 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore quantum inline methods. +*/ +#ifndef MAGICKCORE_QUANTUM_H +#define MAGICKCORE_QUANTUM_H + +#include "MagickCore/image.h" +#include "MagickCore/semaphore.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedEndian, + LSBEndian, + MSBEndian +} EndianType; + +typedef enum +{ + UndefinedQuantumAlpha, + AssociatedQuantumAlpha, + DisassociatedQuantumAlpha +} QuantumAlphaType; + +typedef enum +{ + UndefinedQuantumFormat, + FloatingPointQuantumFormat, + SignedQuantumFormat, + UnsignedQuantumFormat +} QuantumFormatType; + +typedef enum +{ + UndefinedQuantum, + AlphaQuantum, + BGRAQuantum, + BGROQuantum, + BGRQuantum, + BlackQuantum, + BlueQuantum, + CbYCrAQuantum, + CbYCrQuantum, + CbYCrYQuantum, + CMYKAQuantum, + CMYKOQuantum, + CMYKQuantum, + CyanQuantum, + GrayAlphaQuantum, + GrayQuantum, + GreenQuantum, + IndexAlphaQuantum, + IndexQuantum, + MagentaQuantum, + OpacityQuantum, + RedQuantum, + RGBAQuantum, + RGBOQuantum, + RGBPadQuantum, + RGBQuantum, + YellowQuantum +} QuantumType; + +typedef struct _QuantumInfo + QuantumInfo; + +static inline Quantum ClampToQuantum(const MagickRealType value) +{ +#if defined(MAGICKCORE_HDRI_SUPPORT) + return((Quantum) value); +#else + if (value <= 0.0f) + return((Quantum) 0); + if (value >= (MagickRealType) QuantumRange) + return(QuantumRange); + return((Quantum) (value+0.5f)); +#endif +} + +#if (MAGICKCORE_QUANTUM_DEPTH == 8) +static inline unsigned char ScaleQuantumToChar(const Quantum quantum) +{ +#if !defined(MAGICKCORE_HDRI_SUPPORT) + return((unsigned char) quantum); +#else + if (quantum <= 0.0) + return(0); + if (quantum >= 255.0) + return(255); + return((unsigned char) (quantum+0.5)); +#endif +} +#elif (MAGICKCORE_QUANTUM_DEPTH == 16) +static inline unsigned char ScaleQuantumToChar(const Quantum quantum) +{ +#if !defined(MAGICKCORE_HDRI_SUPPORT) + return((unsigned char) (((quantum+128UL)-((quantum+128UL) >> 8)) >> 8)); +#else + if (quantum <= 0.0) + return(0); + if ((quantum/257.0) >= 255.0) + return(255); + return((unsigned char) (quantum/257.0+0.5)); +#endif +} +#elif (MAGICKCORE_QUANTUM_DEPTH == 32) +static inline unsigned char ScaleQuantumToChar(const Quantum quantum) +{ +#if !defined(MAGICKCORE_HDRI_SUPPORT) + return((unsigned char) ((quantum+MagickULLConstant(8421504))/ + MagickULLConstant(16843009))); +#else + if (quantum <= 0.0) + return(0); + if ((quantum/16843009.0) >= 255.0) + return(255); + return((unsigned char) (quantum/16843009.0+0.5)); +#endif +} +#elif (MAGICKCORE_QUANTUM_DEPTH == 64) +static inline unsigned char ScaleQuantumToChar(const Quantum quantum) +{ +#if !defined(MAGICKCORE_HDRI_SUPPORT) + return((unsigned char) (quantum/72340172838076673.0+0.5)); +#else + if (quantum <= 0.0) + return(0); + if ((quantum/72340172838076673.0) >= 255.0) + return(255); + return((unsigned char) (quantum/72340172838076673.0+0.5)); +#endif +} +#endif + +extern MagickExport EndianType + GetQuantumEndian(const QuantumInfo *); + +extern MagickExport MagickBooleanType + SetQuantumDepth(const Image *,QuantumInfo *,const size_t), + SetQuantumEndian(const Image *,QuantumInfo *,const EndianType), + SetQuantumFormat(const Image *,QuantumInfo *,const QuantumFormatType), + SetQuantumPad(const Image *,QuantumInfo *,const size_t); + +extern MagickExport QuantumFormatType + GetQuantumFormat(const QuantumInfo *); + +extern MagickExport QuantumInfo + *AcquireQuantumInfo(const ImageInfo *,Image *), + *DestroyQuantumInfo(QuantumInfo *); + +extern MagickExport QuantumType + GetQuantumType(Image *,ExceptionInfo *); + +extern MagickExport size_t + ExportQuantumPixels(const Image *,CacheView *,QuantumInfo *,const QuantumType, + unsigned char *magick_restrict,ExceptionInfo *), + GetQuantumExtent(const Image *,const QuantumInfo *,const QuantumType), + ImportQuantumPixels(const Image *,CacheView *,QuantumInfo *,const QuantumType, + const unsigned char *magick_restrict,ExceptionInfo *); + +extern MagickExport unsigned char + *GetQuantumPixels(const QuantumInfo *); + +extern MagickExport void + GetQuantumInfo(const ImageInfo *,QuantumInfo *), + SetQuantumAlphaType(QuantumInfo *,const QuantumAlphaType), + SetQuantumImageType(Image *,const QuantumType), + SetQuantumMinIsWhite(QuantumInfo *,const MagickBooleanType), + SetQuantumPack(QuantumInfo *,const MagickBooleanType), + SetQuantumQuantum(QuantumInfo *,const size_t), + SetQuantumScale(QuantumInfo *,const double); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/random_.h b/include/ImageMagick-7/MagickCore/random_.h new file mode 100644 index 0000000..5c63cf0 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/random_.h @@ -0,0 +1,59 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore random methods. +*/ +#ifndef MAGICKCORE_RANDOM__H +#define MAGICKCORE_RANDOM__H + +#include "MagickCore/string_.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* + Typedef declarations. +*/ +typedef struct _RandomInfo + RandomInfo; + +/* + Method declarations. +*/ +extern MagickExport double + GetRandomValue(RandomInfo *), + GetPseudoRandomValue(RandomInfo *); + +extern MagickExport RandomInfo + *AcquireRandomInfo(void), + *DestroyRandomInfo(RandomInfo *); + +extern MagickExport StringInfo + *GetRandomKey(RandomInfo *,const size_t); + +extern MagickExport unsigned long + GetRandomSecretKey(const RandomInfo *); + +extern MagickExport void + SetRandomKey(RandomInfo *,const size_t,unsigned char *), + SetRandomSecretKey(const unsigned long), + SetRandomTrueRandom(const MagickBooleanType); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/registry.h b/include/ImageMagick-7/MagickCore/registry.h new file mode 100644 index 0000000..9413399 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/registry.h @@ -0,0 +1,51 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore registry methods. +*/ +#ifndef MAGICKCORE_REGISTRY_H +#define MAGICKCORE_REGISTRY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedRegistryType, + ImageRegistryType, + ImageInfoRegistryType, + StringRegistryType +} RegistryType; + +extern MagickExport char + *GetNextImageRegistry(void); + +extern MagickExport MagickBooleanType + DefineImageRegistry(const RegistryType,const char *,ExceptionInfo *), + DeleteImageRegistry(const char *), + SetImageRegistry(const RegistryType,const char *,const void *, + ExceptionInfo *); + +extern MagickExport void + *GetImageRegistry(const RegistryType,const char *,ExceptionInfo *), + *RemoveImageRegistry(const char *), + ResetImageRegistryIterator(void); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/resample.h b/include/ImageMagick-7/MagickCore/resample.h new file mode 100644 index 0000000..777f2d2 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/resample.h @@ -0,0 +1,104 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore graphic resample methods. +*/ +#ifndef MAGICKCORE_RESAMPLE_H +#define MAGICKCORE_RESAMPLE_H + +#include "MagickCore/cache-view.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* + WARNING: The order of this table must also match the order of a table + located in AcquireResizeFilter() in "resize.c" otherwise the users filter + will not match the actual filter that is setup. +*/ +typedef enum +{ + UndefinedFilter, + PointFilter, + BoxFilter, + TriangleFilter, + HermiteFilter, + HannFilter, + HammingFilter, + BlackmanFilter, + GaussianFilter, + QuadraticFilter, + CubicFilter, + CatromFilter, + MitchellFilter, + JincFilter, + SincFilter, + SincFastFilter, + KaiserFilter, + WelchFilter, + ParzenFilter, + BohmanFilter, + BartlettFilter, + LagrangeFilter, + LanczosFilter, + LanczosSharpFilter, + Lanczos2Filter, + Lanczos2SharpFilter, + RobidouxFilter, + RobidouxSharpFilter, + CosineFilter, + SplineFilter, + LanczosRadiusFilter, + CubicSplineFilter, + SentinelFilter /* a count of all the filters, not a real filter */ +} FilterType; + +/* + Backward compatibility for the more correctly named Jinc Filter. Original + source of this filter is from "zoom" but it refers to a reference by Pratt, + who does not actualy name the filter. + + also miss-spellings of common filters +*/ +#define BesselFilter JincFilter +#define WelshFilter WelchFilter +#define HanningFilter HannFilter + +typedef struct _ResampleFilter + ResampleFilter; + +extern MagickExport MagickBooleanType + ResamplePixelColor(ResampleFilter *,const double,const double, + PixelInfo *,ExceptionInfo *), + SetResampleFilterInterpolateMethod(ResampleFilter *, + const PixelInterpolateMethod), + SetResampleFilterVirtualPixelMethod(ResampleFilter *, + const VirtualPixelMethod); + +extern MagickExport ResampleFilter + *AcquireResampleFilter(const Image *,ExceptionInfo *), + *DestroyResampleFilter(ResampleFilter *); + +extern MagickExport void + ScaleResampleFilter(ResampleFilter *,const double,const double,const double, + const double), + SetResampleFilter(ResampleFilter *,const FilterType); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/resize.h b/include/ImageMagick-7/MagickCore/resize.h new file mode 100644 index 0000000..08bc04b --- /dev/null +++ b/include/ImageMagick-7/MagickCore/resize.h @@ -0,0 +1,48 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image resize methods. +*/ +#ifndef MAGICKCORE_RESIZE_H +#define MAGICKCORE_RESIZE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _ResizeFilter + ResizeFilter; + +extern MagickExport Image + *AdaptiveResizeImage(const Image *,const size_t,const size_t,ExceptionInfo *), + *InterpolativeResizeImage(const Image *,const size_t,const size_t, + const PixelInterpolateMethod,ExceptionInfo *), + *LiquidRescaleImage(const Image *,const size_t,const size_t,const double, + const double,ExceptionInfo *), + *MagnifyImage(const Image *,ExceptionInfo *), + *MinifyImage(const Image *,ExceptionInfo *), + *ResampleImage(const Image *,const double,const double,const FilterType, + ExceptionInfo *), + *ResizeImage(const Image *,const size_t,const size_t,const FilterType, + ExceptionInfo *), + *SampleImage(const Image *,const size_t,const size_t,ExceptionInfo *), + *ScaleImage(const Image *,const size_t,const size_t,ExceptionInfo *), + *ThumbnailImage(const Image *,const size_t,const size_t,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/resource_.h b/include/ImageMagick-7/MagickCore/resource_.h new file mode 100644 index 0000000..08334de --- /dev/null +++ b/include/ImageMagick-7/MagickCore/resource_.h @@ -0,0 +1,64 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore resource methods. +*/ +#ifndef MAGICKCORE_RESOURCE_H +#define MAGICKCORE_RESOURCE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedResource, + AreaResource, + DiskResource, + FileResource, + HeightResource, + MapResource, + MemoryResource, + ThreadResource, + ThrottleResource, + TimeResource, + WidthResource, + ListLengthResource +} ResourceType; + +#define MagickResourceInfinity MagickULLConstant(~0) + +extern MagickExport int + AcquireUniqueFileResource(char *); + +extern MagickExport MagickBooleanType + AcquireMagickResource(const ResourceType,const MagickSizeType), + GetPathTemplate(char *), + ListMagickResourceInfo(FILE *,ExceptionInfo *), + RelinquishUniqueFileResource(const char *), + SetMagickResourceLimit(const ResourceType,const MagickSizeType); + +extern MagickExport MagickSizeType + GetMagickResource(const ResourceType), + GetMagickResourceLimit(const ResourceType); + +extern MagickExport void + RelinquishMagickResource(const ResourceType,const MagickSizeType); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/segment.h b/include/ImageMagick-7/MagickCore/segment.h new file mode 100644 index 0000000..7997067 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/segment.h @@ -0,0 +1,35 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image segment methods. +*/ +#ifndef MAGICKCORE_SEGMENT_H +#define MAGICKCORE_SEGMENT_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + GetImageDynamicThreshold(const Image *,const double,const double, + PixelInfo *,ExceptionInfo *), + SegmentImage(Image *,const ColorspaceType,const MagickBooleanType, + const double,const double,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/semaphore.h b/include/ImageMagick-7/MagickCore/semaphore.h new file mode 100644 index 0000000..2d8bb9a --- /dev/null +++ b/include/ImageMagick-7/MagickCore/semaphore.h @@ -0,0 +1,41 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore methods to lock and unlock semaphores. +*/ +#ifndef MAGICKCORE_SEMAPHORE_H +#define MAGICKCORE_SEMAPHORE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct SemaphoreInfo + SemaphoreInfo; + +extern MagickExport SemaphoreInfo + *AcquireSemaphoreInfo(void); + +extern MagickExport void + ActivateSemaphoreInfo(SemaphoreInfo **), + LockSemaphoreInfo(SemaphoreInfo *), + RelinquishSemaphoreInfo(SemaphoreInfo **), + UnlockSemaphoreInfo(SemaphoreInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/shear.h b/include/ImageMagick-7/MagickCore/shear.h new file mode 100644 index 0000000..9f4dbdf --- /dev/null +++ b/include/ImageMagick-7/MagickCore/shear.h @@ -0,0 +1,35 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image stream methods. +*/ +#ifndef MAGICKCORE_SHEAR_H +#define MAGICKCORE_SHEAR_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport Image + *DeskewImage(const Image *,const double,ExceptionInfo *), + *IntegralRotateImage(const Image *,size_t,ExceptionInfo *), + *ShearImage(const Image *,const double,const double,ExceptionInfo *), + *ShearRotateImage(const Image *,const double,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/signature.h b/include/ImageMagick-7/MagickCore/signature.h new file mode 100644 index 0000000..cb65baf --- /dev/null +++ b/include/ImageMagick-7/MagickCore/signature.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore digital signature methods. +*/ +#ifndef MAGICKCORE_SIGNATURE_H +#define MAGICKCORE_SIGNATURE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + SignatureImage(Image *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/splay-tree.h b/include/ImageMagick-7/MagickCore/splay-tree.h new file mode 100644 index 0000000..6606716 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/splay-tree.h @@ -0,0 +1,62 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore splay-tree methods. +*/ +#ifndef MAGICKCORE_SPLAY_H +#define MAGICKCORE_SPLAY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _SplayTreeInfo + SplayTreeInfo; + +extern MagickExport MagickBooleanType + AddValueToSplayTree(SplayTreeInfo *,const void *,const void *), + DeleteNodeByValueFromSplayTree(SplayTreeInfo *,const void *), + DeleteNodeFromSplayTree(SplayTreeInfo *,const void *); + +extern MagickExport const void + *GetNextKeyInSplayTree(SplayTreeInfo *), + *GetNextValueInSplayTree(SplayTreeInfo *), + *GetRootValueFromSplayTree(SplayTreeInfo *), + *GetValueFromSplayTree(SplayTreeInfo *,const void *); + +extern MagickExport int + CompareSplayTreeString(const void *,const void *), + CompareSplayTreeStringInfo(const void *,const void *); + +extern MagickExport SplayTreeInfo + *CloneSplayTree(SplayTreeInfo *,void *(*)(void *),void *(*)(void *)), + *DestroySplayTree(SplayTreeInfo *), + *NewSplayTree(int (*)(const void *,const void *),void *(*)(void *), + void *(*)(void *)); + +extern MagickExport size_t + GetNumberOfNodesInSplayTree(const SplayTreeInfo *); + +extern MagickExport void + *RemoveNodeByValueFromSplayTree(SplayTreeInfo *,const void *), + *RemoveNodeFromSplayTree(SplayTreeInfo *,const void *), + ResetSplayTree(SplayTreeInfo *), + ResetSplayTreeIterator(SplayTreeInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/static.h b/include/ImageMagick-7/MagickCore/static.h new file mode 100644 index 0000000..b5ec037 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/static.h @@ -0,0 +1,366 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore static coder registration methods. +*/ +#ifndef MAGICKCORE_STATIC_H +#define MAGICKCORE_STATIC_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport MagickBooleanType + InvokeStaticImageFilter(const char *,Image **,const int,const char **, + ExceptionInfo *), + RegisterStaticModule(const char *,ExceptionInfo *exception), + UnregisterStaticModule(const char *); + +extern ModuleExport size_t + RegisterAAIImage(void), + RegisterARTImage(void), + RegisterAVIImage(void), + RegisterAVSImage(void), + RegisterBIEImage(void), + RegisterBGRImage(void), + RegisterBMPImage(void), + RegisterBRAILLEImage(void), + RegisterCALSImage(void), + RegisterCAPTIONImage(void), + RegisterCINImage(void), + RegisterCIPImage(void), + RegisterCLIPImage(void), + RegisterCLIPBOARDImage(void), + RegisterCMYKImage(void), + RegisterCUTImage(void), + RegisterDCMImage(void), + RegisterDCXImage(void), + RegisterDDSImage(void), + RegisterDEBUGImage(void), + RegisterDIBImage(void), + RegisterDJVUImage(void), + RegisterDNGImage(void), + RegisterDPSImage(void), + RegisterDPXImage(void), + RegisterEMFImage(void), + RegisterEPDFImage(void), + RegisterEPIImage(void), + RegisterEPSImage(void), + RegisterEPS2Image(void), + RegisterEPSFImage(void), + RegisterEPSIImage(void), + RegisterEPTImage(void), + RegisterEXRImage(void), + RegisterFAXImage(void), + RegisterFITSImage(void), + RegisterFLIFImage(void), + RegisterFPXImage(void), + RegisterG3Image(void), + RegisterGIFImage(void), + RegisterGIF87Image(void), + RegisterGRADIENTImage(void), + RegisterGRANITEImage(void), + RegisterGRAYImage(void), + RegisterHALDImage(void), + RegisterHDRImage(void), + RegisterHEICImage(void), + RegisterHImage(void), + RegisterHISTOGRAMImage(void), + RegisterHRZImage(void), + RegisterHTMLImage(void), + RegisterICBImage(void), + RegisterICONImage(void), + RegisterINFOImage(void), + RegisterINLINEImage(void), + RegisterIPLImage(void), + RegisterJBGImage(void), + RegisterJBIGImage(void), + RegisterJNXImage(void), + RegisterJPEGImage(void), + RegisterJSONImage(void), + RegisterJP2Image(void), + RegisterLABELImage(void), + RegisterMACImage(void), + RegisterMAGICKImage(void), + RegisterMAPImage(void), + RegisterMASKImage(void), + RegisterMATImage(void), + RegisterMATTEImage(void), + RegisterMETAImage(void), + RegisterMIFFImage(void), + RegisterMNGImage(void), + RegisterMONOImage(void), + RegisterMPCImage(void), + RegisterMPEGImage(void), + RegisterMPRImage(void), + RegisterMSLImage(void), + RegisterMTVImage(void), + RegisterMVGImage(void), + RegisterNETSCAPEImage(void), + RegisterNULLImage(void), + RegisterP7Image(void), + RegisterPBMImage(void), + RegisterOTBImage(void), + RegisterPALMImage(void), + RegisterPANGOImage(void), + RegisterPATTERNImage(void), + RegisterPCDImage(void), + RegisterPCDSImage(void), + RegisterPCLImage(void), + RegisterPCTImage(void), + RegisterPCXImage(void), + RegisterPDBImage(void), + RegisterPDFImage(void), + RegisterPESImage(void), + RegisterPGXImage(void), + RegisterPICImage(void), + RegisterPICTImage(void), + RegisterPIXImage(void), + RegisterPGMImage(void), + RegisterPLASMAImage(void), + RegisterPMImage(void), + RegisterPNGImage(void), + RegisterPNMImage(void), + RegisterPPMImage(void), + RegisterPSImage(void), + RegisterPS2Image(void), + RegisterPS3Image(void), + RegisterPSDImage(void), + RegisterPTIFImage(void), + RegisterPWPImage(void), + RegisterRASImage(void), + RegisterRAWImage(void), + RegisterRGBImage(void), + RegisterRGBAImage(void), + RegisterRGFImage(void), + RegisterRLAImage(void), + RegisterRLEImage(void), + RegisterSCRImage(void), + RegisterSCREENSHOTImage(void), + RegisterSCTImage(void), + RegisterSFWImage(void), + RegisterSGIImage(void), + RegisterSHTMLImage(void), + RegisterSIXELImage(void), + RegisterSTEGANOImage(void), + RegisterSUNImage(void), + RegisterSVGImage(void), + RegisterTEXTImage(void), + RegisterTGAImage(void), + RegisterTHUMBNAILImage(void), + RegisterTIFImage(void), + RegisterTIFFImage(void), + RegisterTILEImage(void), + RegisterTIMImage(void), + RegisterTTFImage(void), + RegisterTXTImage(void), + RegisterUILImage(void), + RegisterURLImage(void), + RegisterUYVYImage(void), + RegisterVDAImage(void), + RegisterVICARImage(void), + RegisterVIDImage(void), + RegisterVIFFImage(void), + RegisterVIPSImage(void), + RegisterVSTImage(void), + RegisterWBMPImage(void), + RegisterWEBPImage(void), + RegisterWMFImage(void), + RegisterWPGImage(void), + RegisterXImage(void), + RegisterXBMImage(void), + RegisterXCImage(void), + RegisterXCFImage(void), + RegisterXPMImage(void), + RegisterXPSImage(void), + RegisterXTRNImage(void), + RegisterXVImage(void), + RegisterXWDImage(void), + RegisterYCBCRImage(void), + RegisterYUVImage(void); + +extern ModuleExport void + UnregisterAAIImage(void), + UnregisterARTImage(void), + UnregisterAVIImage(void), + UnregisterAVSImage(void), + UnregisterBIEImage(void), + UnregisterBGRImage(void), + UnregisterBMPImage(void), + UnregisterBRAILLEImage(void), + UnregisterCALSImage(void), + UnregisterCAPTIONImage(void), + UnregisterCINImage(void), + UnregisterCIPImage(void), + UnregisterCLIPImage(void), + UnregisterCLIPBOARDImage(void), + UnregisterCMYKImage(void), + UnregisterCUTImage(void), + UnregisterDCMImage(void), + UnregisterDCXImage(void), + UnregisterDDSImage(void), + UnregisterDEBUGImage(void), + UnregisterDIBImage(void), + UnregisterDJVUImage(void), + UnregisterDNGImage(void), + UnregisterDPSImage(void), + UnregisterDPXImage(void), + UnregisterEMFImage(void), + UnregisterEPDFImage(void), + UnregisterEPIImage(void), + UnregisterEPSImage(void), + UnregisterEPS2Image(void), + UnregisterEPSFImage(void), + UnregisterEPSIImage(void), + UnregisterEPTImage(void), + UnregisterEXRImage(void), + UnregisterFAXImage(void), + UnregisterFITSImage(void), + UnregisterFLIFImage(void), + UnregisterFPXImage(void), + UnregisterG3Image(void), + UnregisterGIFImage(void), + UnregisterGIF87Image(void), + UnregisterGRADIENTImage(void), + UnregisterGRANITEImage(void), + UnregisterGRAYImage(void), + UnregisterHALDImage(void), + UnregisterHDRImage(void), + UnregisterHEICImage(void), + UnregisterHImage(void), + UnregisterHISTOGRAMImage(void), + UnregisterHRZImage(void), + UnregisterHTMLImage(void), + UnregisterICBImage(void), + UnregisterICONImage(void), + UnregisterINFOImage(void), + UnregisterINLINEImage(void), + UnregisterIPLImage(void), + UnregisterJBGImage(void), + UnregisterJBIGImage(void), + UnregisterJNXImage(void), + UnregisterJPEGImage(void), + UnregisterJP2Image(void), + UnregisterJSONImage(void), + UnregisterLABELImage(void), + UnregisterLOCALEImage(void), + UnregisterMACImage(void), + UnregisterMAGICKImage(void), + UnregisterMAPImage(void), + UnregisterMASKImage(void), + UnregisterMATImage(void), + UnregisterMATTEImage(void), + UnregisterMETAImage(void), + UnregisterMIFFImage(void), + UnregisterMNGImage(void), + UnregisterMONOImage(void), + UnregisterMPCImage(void), + UnregisterMPEGImage(void), + UnregisterMPRImage(void), + UnregisterMSLImage(void), + UnregisterMTVImage(void), + UnregisterMVGImage(void), + UnregisterNETSCAPEImage(void), + UnregisterNULLImage(void), + UnregisterP7Image(void), + UnregisterPBMImage(void), + UnregisterOTBImage(void), + UnregisterPALMImage(void), + UnregisterPANGOImage(void), + UnregisterPATTERNImage(void), + UnregisterPCDImage(void), + UnregisterPCDSImage(void), + UnregisterPCLImage(void), + UnregisterPCTImage(void), + UnregisterPCXImage(void), + UnregisterPDBImage(void), + UnregisterPDFImage(void), + UnregisterPESImage(void), + UnregisterPGXImage(void), + UnregisterPICImage(void), + UnregisterPICTImage(void), + UnregisterPIXImage(void), + UnregisterPLASMAImage(void), + UnregisterPGMImage(void), + UnregisterPMImage(void), + UnregisterPNGImage(void), + UnregisterPNMImage(void), + UnregisterPPMImage(void), + UnregisterPSImage(void), + UnregisterPS2Image(void), + UnregisterPS3Image(void), + UnregisterPSDImage(void), + UnregisterPTIFImage(void), + UnregisterPWPImage(void), + UnregisterRASImage(void), + UnregisterRAWImage(void), + UnregisterRGBImage(void), + UnregisterRGBAImage(void), + UnregisterRGFImage(void), + UnregisterRLAImage(void), + UnregisterRLEImage(void), + UnregisterSCRImage(void), + UnregisterSCREENSHOTImage(void), + UnregisterSCTImage(void), + UnregisterSFWImage(void), + UnregisterSGIImage(void), + UnregisterSHTMLImage(void), + UnregisterSIXELImage(void), + UnregisterSTEGANOImage(void), + UnregisterSUNImage(void), + UnregisterSVGImage(void), + UnregisterTEXTImage(void), + UnregisterTGAImage(void), + UnregisterTHUMBNAILImage(void), + UnregisterTIFImage(void), + UnregisterTIFFImage(void), + UnregisterTILEImage(void), + UnregisterTIMImage(void), + UnregisterTTFImage(void), + UnregisterTXTImage(void), + UnregisterUILImage(void), + UnregisterURLImage(void), + UnregisterUYVYImage(void), + UnregisterVDAImage(void), + UnregisterVICARImage(void), + UnregisterVIDImage(void), + UnregisterVIFFImage(void), + UnregisterVIPSImage(void), + UnregisterVSTImage(void), + UnregisterWBMPImage(void), + UnregisterWEBPImage(void), + UnregisterWMFImage(void), + UnregisterWPGImage(void), + UnregisterXImage(void), + UnregisterXBMImage(void), + UnregisterXCImage(void), + UnregisterXCFImage(void), + UnregisterXPMImage(void), + UnregisterXPSImage(void), + UnregisterXTRNImage(void), + UnregisterXVImage(void), + UnregisterXWDImage(void), + UnregisterYCBCRImage(void), + UnregisterYUVImage(void); + +extern MagickExport void + RegisterStaticModules(void), + UnregisterStaticModules(void); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/statistic.h b/include/ImageMagick-7/MagickCore/statistic.h new file mode 100644 index 0000000..a2c2af5 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/statistic.h @@ -0,0 +1,174 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore statistical methods. +*/ +#ifndef MAGICKCORE_STATISTIC_H +#define MAGICKCORE_STATISTIC_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define MaximumNumberOfImageMoments 8 +#define MaximumNumberOfPerceptualColorspaces 6 +#define MaximumNumberOfPerceptualHashes 7 + +typedef struct _ChannelStatistics +{ + size_t + depth; + + double + area, + minima, + maxima, + sum, + sum_squared, + sum_cubed, + sum_fourth_power, + mean, + variance, + standard_deviation, + kurtosis, + skewness, + entropy; +} ChannelStatistics; + +typedef struct _ChannelMoments +{ + double + invariant[MaximumNumberOfImageMoments+1]; + + PointInfo + centroid, + ellipse_axis; + + double + ellipse_angle, + ellipse_eccentricity, + ellipse_intensity; +} ChannelMoments; + +typedef struct _ChannelPerceptualHash +{ + double + srgb_hu_phash[MaximumNumberOfImageMoments+1], + hclp_hu_phash[MaximumNumberOfImageMoments+1]; + + size_t + number_colorspaces; + + ColorspaceType + colorspace[MaximumNumberOfPerceptualColorspaces+1]; + + double + phash[MaximumNumberOfPerceptualColorspaces+1][MaximumNumberOfImageMoments+1]; + + size_t + number_channels; +} ChannelPerceptualHash; + +typedef enum +{ + UndefinedEvaluateOperator, + AbsEvaluateOperator, + AddEvaluateOperator, + AddModulusEvaluateOperator, + AndEvaluateOperator, + CosineEvaluateOperator, + DivideEvaluateOperator, + ExponentialEvaluateOperator, + GaussianNoiseEvaluateOperator, + ImpulseNoiseEvaluateOperator, + LaplacianNoiseEvaluateOperator, + LeftShiftEvaluateOperator, + LogEvaluateOperator, + MaxEvaluateOperator, + MeanEvaluateOperator, + MedianEvaluateOperator, + MinEvaluateOperator, + MultiplicativeNoiseEvaluateOperator, + MultiplyEvaluateOperator, + OrEvaluateOperator, + PoissonNoiseEvaluateOperator, + PowEvaluateOperator, + RightShiftEvaluateOperator, + RootMeanSquareEvaluateOperator, + SetEvaluateOperator, + SineEvaluateOperator, + SubtractEvaluateOperator, + SumEvaluateOperator, + ThresholdBlackEvaluateOperator, + ThresholdEvaluateOperator, + ThresholdWhiteEvaluateOperator, + UniformNoiseEvaluateOperator, + XorEvaluateOperator +} MagickEvaluateOperator; + +typedef enum +{ + UndefinedFunction, + ArcsinFunction, + ArctanFunction, + PolynomialFunction, + SinusoidFunction +} MagickFunction; + +typedef enum +{ + UndefinedStatistic, + GradientStatistic, + MaximumStatistic, + MeanStatistic, + MedianStatistic, + MinimumStatistic, + ModeStatistic, + NonpeakStatistic, + RootMeanSquareStatistic, + StandardDeviationStatistic +} StatisticType; + +extern MagickExport ChannelStatistics + *GetImageStatistics(const Image *,ExceptionInfo *); + +extern MagickExport ChannelMoments + *GetImageMoments(const Image *,ExceptionInfo *); + +extern MagickExport ChannelPerceptualHash + *GetImagePerceptualHash(const Image *,ExceptionInfo *); + +extern MagickExport Image + *EvaluateImages(const Image *,const MagickEvaluateOperator,ExceptionInfo *), + *PolynomialImage(const Image *,const size_t,const double *,ExceptionInfo *), + *StatisticImage(const Image *,const StatisticType,const size_t,const size_t, + ExceptionInfo *); + +extern MagickExport MagickBooleanType + EvaluateImage(Image *,const MagickEvaluateOperator,const double, + ExceptionInfo *), + FunctionImage(Image *,const MagickFunction,const size_t,const double *, + ExceptionInfo *), + GetImageEntropy(const Image *,double *,ExceptionInfo *), + GetImageExtrema(const Image *,size_t *,size_t *,ExceptionInfo *), + GetImageMean(const Image *,double *,double *,ExceptionInfo *), + GetImageKurtosis(const Image *,double *,double *,ExceptionInfo *), + GetImageRange(const Image *,double *,double *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/stream.h b/include/ImageMagick-7/MagickCore/stream.h new file mode 100644 index 0000000..1c945f8 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/stream.h @@ -0,0 +1,53 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image stream methods. +*/ +#ifndef MAGICKCORE_STREAM_H +#define MAGICKCORE_STREAM_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#include "MagickCore/pixel.h" + +typedef struct _StreamInfo + StreamInfo; + +typedef size_t + (*StreamHandler)(const Image *,const void *,const size_t); + +extern MagickExport Image + *ReadStream(const ImageInfo *,StreamHandler,ExceptionInfo *), + *StreamImage(const ImageInfo *,StreamInfo *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + OpenStream(const ImageInfo *,StreamInfo *,const char *,ExceptionInfo *), + WriteStream(const ImageInfo *,Image *,StreamHandler,ExceptionInfo *); + +extern MagickExport StreamInfo + *AcquireStreamInfo(const ImageInfo *,ExceptionInfo *), + *DestroyStreamInfo(StreamInfo *); + +extern MagickExport void + SetStreamInfoMap(StreamInfo *,const char *), + SetStreamInfoStorageType(StreamInfo *,const StorageType); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/string_.h b/include/ImageMagick-7/MagickCore/string_.h new file mode 100644 index 0000000..ebdcd25 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/string_.h @@ -0,0 +1,118 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore string methods. +*/ +#ifndef MAGICKCORE_STRING_H_ +#define MAGICKCORE_STRING_H_ + +#include "MagickCore/exception.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _StringInfo +{ + char + *path; + + unsigned char + *datum; + + size_t + length, + signature; + + char + *name; +} StringInfo; + +extern MagickExport char + *AcquireString(const char *), + *CloneString(char **,const char *), + *ConstantString(const char *), + *DestroyString(char *), + **DestroyStringList(char **), + *EscapeString(const char *,const char), + *FileToString(const char *,const size_t,ExceptionInfo *), + *GetEnvironmentValue(const char *), + *SanitizeString(const char *), + *StringInfoToHexString(const StringInfo *), + *StringInfoToString(const StringInfo *), + **StringToArgv(const char *,int *), + *StringToken(const char *,char **), + **StringToList(const char *), + **StringToStrings(const char *,size_t *); + +extern MagickExport const char + *GetStringInfoName(const StringInfo *), + *GetStringInfoPath(const StringInfo *); + +extern MagickExport double + InterpretSiPrefixValue(const char *magick_restrict,char **magick_restrict), + *StringToArrayOfDoubles(const char *,ssize_t *,ExceptionInfo *); + +extern MagickExport int + CompareStringInfo(const StringInfo *,const StringInfo *); + +extern MagickExport MagickBooleanType + ConcatenateString(char **,const char *), + IsStringTrue(const char *), + IsStringFalse(const char *), + SubstituteString(char **,const char *,const char *); + +extern MagickExport size_t + ConcatenateMagickString(char *,const char *,const size_t) + magick_attribute((__nonnull__)), + CopyMagickString(char *,const char *,const size_t) + magick_attribute((__nonnull__)), + GetStringInfoLength(const StringInfo *); + +extern MagickExport ssize_t + FormatMagickSize(const MagickSizeType,const MagickBooleanType,const char *, + const size_t,char *), + FormatMagickTime(const time_t,const size_t,char *); + +extern MagickExport StringInfo + *AcquireStringInfo(const size_t), + *BlobToStringInfo(const void *,const size_t), + *CloneStringInfo(const StringInfo *), + *ConfigureFileToStringInfo(const char *), + *DestroyStringInfo(StringInfo *), + *FileToStringInfo(const char *,const size_t,ExceptionInfo *), + *SplitStringInfo(StringInfo *,const size_t), + *StringToStringInfo(const char *); + +extern MagickExport unsigned char + *GetStringInfoDatum(const StringInfo *); + +extern MagickExport void + ConcatenateStringInfo(StringInfo *,const StringInfo *) + magick_attribute((__nonnull__)), + PrintStringInfo(FILE *file,const char *,const StringInfo *), + ResetStringInfo(StringInfo *), + SetStringInfo(StringInfo *,const StringInfo *), + SetStringInfoDatum(StringInfo *,const unsigned char *), + SetStringInfoLength(StringInfo *,const size_t), + SetStringInfoName(StringInfo *,const char *), + SetStringInfoPath(StringInfo *,const char *), + StripString(char *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/studio.h b/include/ImageMagick-7/MagickCore/studio.h new file mode 100644 index 0000000..fd7b21b --- /dev/null +++ b/include/ImageMagick-7/MagickCore/studio.h @@ -0,0 +1,356 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore private application programming interface declarations. +*/ +#ifndef MAGICKCORE_STUDIO_H +#define MAGICKCORE_STUDIO_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if defined(WIN32) || defined(WIN64) +# define MAGICKCORE_WINDOWS_SUPPORT +#else +# define MAGICKCORE_POSIX_SUPPORT +#endif + +#define MAGICKCORE_IMPLEMENTATION 1 + +#if !defined(MAGICKCORE_CONFIG_H) +# define MAGICKCORE_CONFIG_H +#include "MagickCore/magick-config.h" +# if defined(MAGICKCORE__FILE_OFFSET_BITS) && !defined(_FILE_OFFSET_BITS) +# define _FILE_OFFSET_BITS MAGICKCORE__FILE_OFFSET_BITS +#endif +#if defined(_magickcore_const) && !defined(const) +# define const _magickcore_const +#endif +#if defined(_magickcore_inline) && !defined(inline) +# define inline _magickcore_inline +#endif +# if defined(__cplusplus) || defined(c_plusplus) +# undef inline +# endif +#endif + +#if defined(MAGICKCORE_NAMESPACE_PREFIX) +# include "MagickCore/methods.h" +#endif + +#if !defined(const) +# define STDC +#endif + +#include +#include +#if defined(MAGICKCORE_HAVE_SYS_STAT_H) +# include +#endif +#if defined(MAGICKCORE_STDC_HEADERS) +# include +# include +#else +# if defined(MAGICKCORE_HAVE_STDLIB_H) +# include +# endif +#endif +#if !defined(magick_restrict) +# if !defined(_magickcore_restrict) +# define magick_restrict restrict +# else +# define magick_restrict _magickcore_restrict +# endif +#endif +#if defined(MAGICKCORE_HAVE_STRING_H) +# if !defined(STDC_HEADERS) && defined(MAGICKCORE_HAVE_MEMORY_H) +# include +# endif +# include +#endif +#if defined(MAGICKCORE_HAVE_STRINGS_H) +# include +#endif +#if defined(MAGICKCORE_HAVE_INTTYPES_H) +# include +#endif +#if defined(MAGICKCORE_HAVE_STDINT_H) +# include +#endif +#if defined(MAGICKCORE_HAVE_UNISTD_H) +# include +#endif +#if defined(MAGICKCORE_WINDOWS_SUPPORT) && defined(_DEBUG) +#define _CRTDBG_MAP_ALLOC +#endif +#if defined(MAGICKCORE_WINDOWS_SUPPORT) +# include +#if !defined(__CYGWIN__) +# include +#endif +# if !defined(MAGICKCORE_HAVE_STRERROR) +# define HAVE_STRERROR +# endif +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(MAGICKCORE_HAVE_XLOCALE_H) +# include +#endif +#if defined(MAGICKCORE_THREAD_SUPPORT) +# include +#elif defined(MAGICKCORE_WINDOWS_SUPPORT) +#include +#include +#include +#pragma comment (lib, "ws2_32.lib") +#endif +#if defined(MAGICKCORE_HAVE_SYS_SYSLIMITS_H) +# include +#endif +#if defined(MAGICKCORE_HAVE_ARM_LIMITS_H) +# include +#endif + +#if defined(MAGICKCORE__OPENCL) +#if defined(MAGICKCORE_HAVE_CL_CL_H) +# include +#endif +#if defined(MAGICKCORE_HAVE_OPENCL_CL_H) +# include +#endif +# define MAGICKCORE_OPENCL_SUPPORT 1 +#endif + +#if defined(_OPENMP) && ((_OPENMP >= 200203) || defined(__OPENCC__)) +# include +# define MAGICKCORE_OPENMP_SUPPORT 1 +#endif + +#if defined(MAGICKCORE_HAVE_PREAD) && defined(MAGICKCORE_HAVE_DECL_PREAD) && !MAGICKCORE_HAVE_DECL_PREAD +ssize_t pread(int,void *,size_t,off_t); +#endif + +#if defined(MAGICKCORE_HAVE_PWRITE) && defined(MAGICKCORE_HAVE_DECL_PWRITE) && !MAGICKCORE_HAVE_DECL_PWRITE +ssize_t pwrite(int,const void *,size_t,off_t); +#endif + +#if defined(MAGICKCORE_HAVE_STRLCPY) && defined(MAGICKCORE_HAVE_DECL_STRLCPY) && !MAGICKCORE_HAVE_DECL_STRLCPY +extern size_t strlcpy(char *,const char *,size_t); +#endif + +#if defined(MAGICKCORE_HAVE_VSNPRINTF) && defined(MAGICKCORE_HAVE_DECL_VSNPRINTF) && !MAGICKCORE_HAVE_DECL_VSNPRINTF +extern int vsnprintf(char *,size_t,const char *,va_list); +#endif + +#include "MagickCore/method-attribute.h" + +#if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(MAGICKCORE_POSIX_SUPPORT) +# include +# include +# if defined(MAGICKCORE_HAVE_SYS_TIMEB_H) +# include +# endif +# if defined(MAGICKCORE_POSIX_SUPPORT) +# if defined(MAGICKCORE_HAVE_SYS_NDIR_H) || defined(MAGICKCORE_HAVE_SYS_DIR_H) || defined(MAGICKCORE_HAVE_NDIR_H) +# define dirent direct +# define NAMLEN(dirent) (dirent)->d_namlen +# if defined(MAGICKCORE_HAVE_SYS_NDIR_H) +# include +# endif +# if defined(MAGICKCORE_HAVE_SYS_DIR_H) +# include +# endif +# if defined(MAGICKCORE_HAVE_NDIR_H) +# include +# endif +# else +# include +# define NAMLEN(dirent) strlen((dirent)->d_name) +# endif +# include +# include +# endif +# if !defined(S_ISDIR) +# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +# endif +# if !defined(S_ISREG) +# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) +# endif +# include "MagickCore/magick-type.h" +# if !defined(MAGICKCORE_WINDOWS_SUPPORT) +# include +# if defined(MAGICKCORE_HAVE_SYS_TIMES_H) +# include +# endif +# if defined(MAGICKCORE_HAVE_SYS_RESOURCE_H) +# include +# endif +# if defined(MAGICKCORE_HAVE_SYS_MMAN_H) +# include +# endif +# if defined(MAGICKCORE_HAVE_SYS_SENDFILE_H) +# include +# endif +#endif +#else +# include +# include +# if defined(macintosh) +# if !defined(DISABLE_SIOUX) +# include +# include +# endif +# include +# endif +# include "MagickCore/magick-type.h" +#endif + +#if defined(S_IRUSR) && defined(S_IWUSR) +# define S_MODE (S_IRUSR | S_IWUSR) +#elif defined (MAGICKCORE_WINDOWS_SUPPORT) +# define S_MODE (_S_IREAD | _S_IWRITE) +#else +# define S_MODE 0600 +#endif + +#if defined(MAGICKCORE_WINDOWS_SUPPORT) +# include "MagickCore/nt-base.h" +#endif +#ifdef __VMS +# include "MagickCore/vms.h" +#endif + +#undef HAVE_CONFIG_H +#undef gamma +#undef index +#undef pipe +#undef y1 + +/* + Review these platform specific definitions. +*/ +#if defined(MAGICKCORE_POSIX_SUPPORT) && !( defined(__OS2__) || defined( vms ) ) +# define DirectorySeparator "/" +# define DirectoryListSeparator ':' +# define EditorOptions " -title \"Edit Image Comment\" -e vi" +# define Exit exit +# define IsBasenameSeparator(c) ((c) == '/' ? MagickTrue : MagickFalse) +# define X11_PREFERENCES_PATH "~/." +# define ProcessPendingEvents(text) +# define ReadCommandlLine(argc,argv) +# define SetNotifyHandlers +#else +# ifdef __VMS +# define X11_APPLICATION_PATH "decw$system_defaults:" +# define DirectorySeparator "" +# define DirectoryListSeparator ';' +# define EditorOptions "" +# define Exit exit +# define IsBasenameSeparator(c) \ + (((c) == ']') || ((c) == ':') || ((c) == '/') ? MagickTrue : MagickFalse) +# define MAGICKCORE_LIBRARY_PATH "sys$login:" +# define MAGICKCORE_SHARE_PATH "sys$login:" +# define X11_PREFERENCES_PATH "decw$user_defaults:" +# define ProcessPendingEvents(text) +# define ReadCommandlLine(argc,argv) +# define SetNotifyHandlers +# endif +# if defined(__OS2__) +# define DirectorySeparator "\\" +# define DirectoryListSeparator ';' +# define EditorOptions " -title \"Edit Image Comment\" -e vi" +# define Exit exit +# define IsBasenameSeparator(c) \ + (((c) == '/') || ((c) == '\\') ? MagickTrue : MagickFalse) +# define PreferencesDefaults "~\." +# define ProcessPendingEvents(text) +# define ReadCommandlLine(argc,argv) +# define SetNotifyHandlers +#endif +# if defined(MAGICKCORE_WINDOWS_SUPPORT) +# define DirectorySeparator "\\" +# define DirectoryListSeparator ';' +# define EditorOptions "" +# define IsBasenameSeparator(c) \ + (((c) == '/') || ((c) == '\\') ? MagickTrue : MagickFalse) +# define ProcessPendingEvents(text) +# if !defined(X11_PREFERENCES_PATH) +# define X11_PREFERENCES_PATH "~\\." +# endif +# define ReadCommandlLine(argc,argv) +# define SetNotifyHandlers \ + SetErrorHandler(NTErrorHandler); \ + SetWarningHandler(NTWarningHandler) +# if !defined(MAGICKCORE_HAVE_TIFFCONF_H) +# define HAVE_TIFFCONF_H +# endif +# endif + +#endif + +/* + Define system symbols if not already defined. +*/ +#if !defined(STDIN_FILENO) +#define STDIN_FILENO 0x00 +#endif + +#if !defined(O_BINARY) +#define O_BINARY 0x00 +#endif + +#if !defined(PATH_MAX) +#define PATH_MAX 4096 +#endif + +#if defined(MAGICKCORE_LTDL_DELEGATE) || (defined(MAGICKCORE_WINDOWS_SUPPORT) && defined(_DLL) && !defined(_LIB)) +# define MAGICKCORE_MODULES_SUPPORT +#endif + +#if defined(_MAGICKMOD_) +# undef MAGICKCORE_BUILD_MODULES +# define MAGICKCORE_BUILD_MODULES +#endif + +/* + Magick defines. +*/ +#define MagickMaxRecursionDepth 600 +#define Swap(x,y) ((x)^=(y), (y)^=(x), (x)^=(y)) +#if defined(_MSC_VER) +# define DisableMSCWarning(nr) __pragma(warning(push)) \ + __pragma(warning(disable:nr)) +# define RestoreMSCWarning __pragma(warning(pop)) +#else +# define DisableMSCWarning(nr) +# define RestoreMSCWarning +#endif + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/threshold.h b/include/ImageMagick-7/MagickCore/threshold.h new file mode 100644 index 0000000..3b04912 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/threshold.h @@ -0,0 +1,59 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image threshold methods. +*/ +#ifndef MAGICKCORE_THRESHOLD_H +#define MAGICKCORE_THRESHOLD_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedThresholdMethod, + KapurThresholdMethod, + OTSUThresholdMethod, + TriangleThresholdMethod +} AutoThresholdMethod; + +typedef struct _ThresholdMap + ThresholdMap; + +extern MagickExport Image + *AdaptiveThresholdImage(const Image *,const size_t,const size_t,const double, + ExceptionInfo *); + +extern MagickExport ThresholdMap + *DestroyThresholdMap(ThresholdMap *), + *GetThresholdMap(const char *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + AutoThresholdImage(Image *,const AutoThresholdMethod,ExceptionInfo *), + BilevelImage(Image *,const double,ExceptionInfo *), + BlackThresholdImage(Image *,const char *,ExceptionInfo *), + ClampImage(Image *,ExceptionInfo *), + ListThresholdMaps(FILE *,ExceptionInfo *), + OrderedDitherImage(Image *,const char *,ExceptionInfo *), + PerceptibleImage(Image *,const double,ExceptionInfo *), + RandomThresholdImage(Image *,const double,const double,ExceptionInfo *), + WhiteThresholdImage(Image *,const char *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/timer.h b/include/ImageMagick-7/MagickCore/timer.h new file mode 100644 index 0000000..019330c --- /dev/null +++ b/include/ImageMagick-7/MagickCore/timer.h @@ -0,0 +1,73 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore timer methods. +*/ +#ifndef MAGICKCORE_TIMER_H +#define MAGICKCORE_TIMER_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedTimerState, + StoppedTimerState, + RunningTimerState +} TimerState; + +typedef struct _Timer +{ + double + start, + stop, + total; +} Timer; + +typedef struct _TimerInfo +{ + Timer + user, + elapsed; + + TimerState + state; + + size_t + signature; +} TimerInfo; + +extern MagickExport double + GetElapsedTime(TimerInfo *), + GetUserTime(TimerInfo *); + +extern MagickExport MagickBooleanType + ContinueTimer(TimerInfo *); + +extern MagickExport TimerInfo + *AcquireTimerInfo(void), + *DestroyTimerInfo(TimerInfo *); + +extern MagickExport void + GetTimerInfo(TimerInfo *), + ResetTimer(TimerInfo *), + StartTimer(TimerInfo *,const MagickBooleanType); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/token.h b/include/ImageMagick-7/MagickCore/token.h new file mode 100644 index 0000000..3793823 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/token.h @@ -0,0 +1,49 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore token methods. +*/ +#ifndef MAGICKCORE_TOKEN_H +#define MAGICKCORE_TOKEN_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* + Typedef declarations. +*/ +typedef struct _TokenInfo + TokenInfo; + +extern MagickExport int + Tokenizer(TokenInfo *,const unsigned int,char *,const size_t,const char *, + const char *,const char *,const char *,const char,char *,int *,char *); + +extern MagickExport MagickBooleanType + GlobExpression(const char *,const char *,const MagickBooleanType); + +extern MagickExport TokenInfo + *AcquireTokenInfo(void), + *DestroyTokenInfo(TokenInfo *); + +extern MagickExport void + GetNextToken(const char *,const char **,const size_t,char *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/transform.h b/include/ImageMagick-7/MagickCore/transform.h new file mode 100644 index 0000000..36b3d60 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/transform.h @@ -0,0 +1,46 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image transform methods. +*/ +#ifndef MAGICKCORE_TRANSFORM_H +#define MAGICKCORE_TRANSFORM_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport Image + *AutoOrientImage(const Image *,const OrientationType,ExceptionInfo *), + *ChopImage(const Image *,const RectangleInfo *,ExceptionInfo *), + *ConsolidateCMYKImages(const Image *,ExceptionInfo *), + *CropImage(const Image *,const RectangleInfo *,ExceptionInfo *), + *CropImageToTiles(const Image *,const char *, ExceptionInfo *), + *ExcerptImage(const Image *,const RectangleInfo *,ExceptionInfo *), + *ExtentImage(const Image *,const RectangleInfo *,ExceptionInfo *), + *FlipImage(const Image *,ExceptionInfo *), + *FlopImage(const Image *,ExceptionInfo *), + *RollImage(const Image *,const ssize_t,const ssize_t,ExceptionInfo *), + *ShaveImage(const Image *,const RectangleInfo *,ExceptionInfo *), + *SpliceImage(const Image *,const RectangleInfo *,ExceptionInfo *), + *TransposeImage(const Image *,ExceptionInfo *), + *TransverseImage(const Image *,ExceptionInfo *), + *TrimImage(const Image *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/type.h b/include/ImageMagick-7/MagickCore/type.h new file mode 100644 index 0000000..6e7bd9a --- /dev/null +++ b/include/ImageMagick-7/MagickCore/type.h @@ -0,0 +1,99 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore image type methods. +*/ +#ifndef MAGICKCORE_TYPE_H +#define MAGICKCORE_TYPE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedStretch, + NormalStretch, + UltraCondensedStretch, + ExtraCondensedStretch, + CondensedStretch, + SemiCondensedStretch, + SemiExpandedStretch, + ExpandedStretch, + ExtraExpandedStretch, + UltraExpandedStretch, + AnyStretch +} StretchType; + +typedef enum +{ + UndefinedStyle, + NormalStyle, + ItalicStyle, + ObliqueStyle, + AnyStyle +} StyleType; + +typedef struct _TypeInfo +{ + size_t + face; + + char + *path, + *name, + *description, + *family; + + StyleType + style; + + StretchType + stretch; + + size_t + weight; + + char + *encoding, + *foundry, + *format, + *metrics, + *glyphs; + + MagickBooleanType + stealth; + + size_t + signature; +} TypeInfo; + +extern MagickExport char + **GetTypeList(const char *,size_t *,ExceptionInfo *); + +extern MagickExport MagickBooleanType + ListTypeInfo(FILE *,ExceptionInfo *); + +extern MagickExport const TypeInfo + *GetTypeInfo(const char *,ExceptionInfo *), + *GetTypeInfoByFamily(const char *,const StyleType,const StretchType, + const size_t,ExceptionInfo *), + **GetTypeInfoList(const char *,size_t *,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/utility.h b/include/ImageMagick-7/MagickCore/utility.h new file mode 100644 index 0000000..df0f7c7 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/utility.h @@ -0,0 +1,63 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore utility methods. +*/ +#ifndef MAGICKCORE_UTILITY_H +#define MAGICKCORE_UTILITY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef enum +{ + UndefinedPath, + MagickPath, + RootPath, + HeadPath, + TailPath, + BasePath, + ExtensionPath, + SubimagePath, + CanonicalPath +} PathType; + +extern MagickExport char + *Base64Encode(const unsigned char *,const size_t,size_t *); + +extern MagickExport MagickBooleanType + AcquireUniqueFilename(char *), + AcquireUniqueSymbolicLink(const char *,char *), + ExpandFilenames(int *,char ***), + GetPathAttributes(const char *,void *), + IsPathAccessible(const char *); + +extern MagickExport size_t + MultilineCensus(const char *); + +extern MagickExport unsigned char + *Base64Decode(const char *, size_t *); + +extern MagickExport void + AppendImageFormat(const char *,char *), + GetPathComponent(const char *,PathType,char *), + MagickDelay(const MagickSizeType); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/version.h b/include/ImageMagick-7/MagickCore/version.h new file mode 100644 index 0000000..8fce9ca --- /dev/null +++ b/include/ImageMagick-7/MagickCore/version.h @@ -0,0 +1,97 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + http://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore version methods. +*/ +#ifndef _MAGICKCORE_VERSION_H +#define _MAGICKCORE_VERSION_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* + Define declarations. +*/ +#define MagickPackageName "ImageMagick" +#define MagickCopyright "© 1999-2018 ImageMagick Studio LLC" +#define MagickLibVersion 0x707 +#define MagickLibVersionText "7.0.7" +#define MagickLibVersionNumber 6,0,0 +#define MagickLibAddendum "-35" +#define MagickLibInterface 6 +#define MagickLibMinInterface 6 +#if defined(_WINDOWS) +# if defined(_WIN64) +# define MagickPlatform "x64" +# else +# define MagickPlatform "x86" +# endif +#else +#define MagickPlatform "armv6l" +#endif +#define MagickppLibVersionText "7.0.7" +#define MagickppLibVersionNumber 4:0:0 +#define MagickppLibAddendum "-35" +#define MagickppLibInterface 4 +#define MagickppLibMinInterface 4 +#define MagickReleaseDate "2018-05-27" +#define MagickAuthoritativeLicense \ + "https://www.imagemagick.org/script/license.php" +#define MagickAuthoritativeURL "https://www.imagemagick.org" +#define MagickHomeURL "file:///root/package/share/doc/ImageMagick-7/index.html" +#if (MAGICKCORE_QUANTUM_DEPTH == 8) +#define MagickQuantumDepth "Q8" +#define MagickQuantumRange "255" +#elif (MAGICKCORE_QUANTUM_DEPTH == 16) +#define MagickQuantumDepth "Q16" +#define MagickQuantumRange "65535" +#elif (MAGICKCORE_QUANTUM_DEPTH == 32) +#define MagickQuantumDepth "Q32" +#define MagickQuantumRange "4294967295" +#elif (MAGICKCORE_QUANTUM_DEPTH == 64) +#define MagickQuantumDepth "Q64" +#define MagickQuantumRange "65535" +#else +#define MagickQuantumDepth "Q?" +#define MagickQuantumRange "?" +#endif +#define MagickVersion \ + MagickPackageName " " MagickLibVersionText MagickLibAddendum " " \ + MagickQuantumDepth " " MagickPlatform " " MagickReleaseDate " " \ + MagickAuthoritativeURL + +extern MagickExport char + *GetMagickHomeURL(void); + +extern MagickExport const char + *GetMagickCopyright(void), + *GetMagickDelegates(void), + *GetMagickFeatures(void), + *GetMagickLicense(void), + *GetMagickPackageName(void), + *GetMagickQuantumDepth(size_t *), + *GetMagickQuantumRange(size_t *), + *GetMagickReleaseDate(void), + *GetMagickVersion(size_t *); + +extern MagickExport void + ListMagickVersion(FILE *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/vision.h b/include/ImageMagick-7/MagickCore/vision.h new file mode 100644 index 0000000..f828ea4 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/vision.h @@ -0,0 +1,52 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore computer vision methods. +*/ +#ifndef MAGICKCORE_VISION_H +#define MAGICKCORE_VISION_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _CCObjectInfo +{ + ssize_t + id; + + RectangleInfo + bounding_box; + + PixelInfo + color; + + PointInfo + centroid; + + double + area, + census; +} CCObjectInfo; + +extern MagickExport Image + *ConnectedComponentsImage(const Image *,const size_t,CCObjectInfo **, + ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/widget.h b/include/ImageMagick-7/MagickCore/widget.h new file mode 100644 index 0000000..91541c7 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/widget.h @@ -0,0 +1,29 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore X11 widget methods. +*/ +#ifndef MAGICKCORE_WIDGET_H +#define MAGICKCORE_WIDGET_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/xml-tree.h b/include/ImageMagick-7/MagickCore/xml-tree.h new file mode 100644 index 0000000..7602683 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/xml-tree.h @@ -0,0 +1,50 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + http://www.imagemagick.org/MagicksToolkit/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Magick's toolkit xml-tree methods. +*/ +#ifndef MAGICKCORE_XML_TREE_H +#define MAGICKCORE_XML_TREE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _XMLTreeInfo + XMLTreeInfo; + +extern MagickExport char + *XMLTreeInfoToXML(XMLTreeInfo *); + +extern MagickExport const char + *GetXMLTreeAttribute(XMLTreeInfo *,const char *), + *GetXMLTreeContent(XMLTreeInfo *), + *GetXMLTreeTag(XMLTreeInfo *); + +extern MagickExport XMLTreeInfo + *AddChildToXMLTree(XMLTreeInfo *,const char *,const size_t), + *DestroyXMLTree(XMLTreeInfo *), + *GetNextXMLTreeTag(XMLTreeInfo *), + *GetXMLTreeChild(XMLTreeInfo *,const char *), + *GetXMLTreeSibling(XMLTreeInfo *), + *NewXMLTree(const char *,ExceptionInfo *), + *NewXMLTreeTag(const char *), + *SetXMLTreeContent(XMLTreeInfo *,const char *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickCore/xwindow.h b/include/ImageMagick-7/MagickCore/xwindow.h new file mode 100644 index 0000000..d787069 --- /dev/null +++ b/include/ImageMagick-7/MagickCore/xwindow.h @@ -0,0 +1,45 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore X11 window methods. +*/ +#ifndef MAGICKCORE_XWINDOW_H +#define MAGICKCORE_XWINDOW_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _XImportInfo +{ + MagickBooleanType + frame, + borders, + screen, + descend, + silent; +} XImportInfo; + +extern MagickExport Image + *XImportImage(const ImageInfo *,XImportInfo *,ExceptionInfo *); + +extern MagickExport void + XGetImportInfo(XImportInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/MagickWand.h b/include/ImageMagick-7/MagickWand/MagickWand.h new file mode 100644 index 0000000..bb24db0 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/MagickWand.h @@ -0,0 +1,136 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand Application Programming Interface declarations. +*/ + +#ifndef MAGICKWAND_MAGICKWAND_H +#define MAGICKWAND_MAGICKWAND_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if !defined(MAGICKWAND_CONFIG_H) +# define MAGICKWAND_CONFIG_H +# if !defined(vms) && !defined(macintosh) +# include "MagickCore/magick-config.h" +# else +# include "magick-config.h" +# endif +#if defined(_magickcore_const) && !defined(const) +# define const _magickcore_const +#endif +#if defined(_magickcore_inline) && !defined(inline) +# define inline _magickcore_inline +#endif +#if !defined(magick_restrict) +# if !defined(_magickcore_restrict) +# define magick_restrict restrict +# else +# define magick_restrict _magickcore_restrict +# endif +#endif +# if defined(__cplusplus) || defined(c_plusplus) +# undef inline +# endif +#endif +#if __cplusplus > 199711L +#define register +#endif + +#define MAGICKWAND_CHECK_VERSION(major,minor,micro) \ + ((MAGICKWAND_MAJOR_VERSION > (major)) || \ + ((MAGICKWAND_MAJOR_VERSION == (major)) && \ + (MAGICKWAND_MINOR_VERSION > (minor))) || \ + ((MAGICKWAND_MAJOR_VERSION == (major)) && \ + (MAGICKWAND_MINOR_VERSION == (minor)) && \ + (MAGICKWAND_MICRO_VERSION >= (micro)))) + +#include +#include +#include +#include +#include +#include + +#if defined(WIN32) || defined(WIN64) +# define MAGICKWAND_WINDOWS_SUPPORT +#else +# define MAGICKWAND_POSIX_SUPPORT +#endif + +typedef struct _MagickWand + MagickWand; + +#include "MagickWand/method-attribute.h" +#include "MagickCore/MagickCore.h" +#include "MagickWand/animate.h" +#include "MagickWand/compare.h" +#include "MagickWand/composite.h" +#include "MagickWand/conjure.h" +#include "MagickWand/convert.h" +#include "MagickWand/deprecate.h" +#include "MagickWand/display.h" +#include "MagickWand/drawing-wand.h" +#include "MagickWand/identify.h" +#include "MagickWand/import.h" +#include "MagickWand/wandcli.h" +#include "MagickWand/operation.h" +#include "MagickWand/magick-cli.h" +#include "MagickWand/magick-property.h" +#include "MagickWand/magick-image.h" +#include "MagickWand/mogrify.h" +#include "MagickWand/montage.h" +#include "MagickWand/pixel-iterator.h" +#include "MagickWand/pixel-wand.h" +#include "MagickWand/stream.h" +#include "MagickWand/wand-view.h" + +extern WandExport char + *MagickGetException(const MagickWand *,ExceptionType *); + +extern WandExport ExceptionType + MagickGetExceptionType(const MagickWand *); + +extern WandExport MagickBooleanType + IsMagickWand(const MagickWand *), + IsMagickWandInstantiated(void), + MagickClearException(MagickWand *), + MagickSetIteratorIndex(MagickWand *,const ssize_t); + +extern WandExport MagickWand + *CloneMagickWand(const MagickWand *), + *DestroyMagickWand(MagickWand *), + *NewMagickWand(void), + *NewMagickWandFromImage(const Image *); + +extern WandExport ssize_t + MagickGetIteratorIndex(MagickWand *); + +extern WandExport void + ClearMagickWand(MagickWand *), + MagickWandGenesis(void), + MagickWandTerminus(void), + *MagickRelinquishMemory(void *), + MagickResetIterator(MagickWand *), + MagickSetFirstIterator(MagickWand *), + MagickSetLastIterator(MagickWand *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/animate.h b/include/ImageMagick-7/MagickWand/animate.h new file mode 100644 index 0000000..c93506f --- /dev/null +++ b/include/ImageMagick-7/MagickWand/animate.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand animate command-line methods. +*/ +#ifndef MAGICKWAND_ANIMATE_H +#define MAGICKWAND_ANIMATE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + AnimateImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/compare.h b/include/ImageMagick-7/MagickWand/compare.h new file mode 100644 index 0000000..0081439 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/compare.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand compare command-line method. +*/ +#ifndef MAGICKWAND_COMPARE_H +#define MAGICKWAND_COMPARE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + CompareImagesCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/composite.h b/include/ImageMagick-7/MagickWand/composite.h new file mode 100644 index 0000000..a664307 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/composite.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand composite command-line method. +*/ +#ifndef MAGICKWAND_COMPOSITE_H +#define MAGICKWAND_COMPOSITE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + CompositeImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/conjure.h b/include/ImageMagick-7/MagickWand/conjure.h new file mode 100644 index 0000000..8cfae15 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/conjure.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand conjure command-line method. +*/ +#ifndef MAGICKWAND_CONJURE_H +#define MAGICKWAND_CONJURE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + ConjureImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/convert.h b/include/ImageMagick-7/MagickWand/convert.h new file mode 100644 index 0000000..089e0c3 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/convert.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand convert command-line method. +*/ +#ifndef MAGICKWAND_CONVERT_H +#define MAGICKWAND_CONVERT_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + ConvertImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/deprecate.h b/include/ImageMagick-7/MagickWand/deprecate.h new file mode 100644 index 0000000..5a2d751 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/deprecate.h @@ -0,0 +1,39 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore deprecated methods. +*/ +#ifndef MAGICKWAND_DEPRECATE_H +#define MAGICKWAND_DEPRECATE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#include "MagickWand/pixel-wand.h" + +#if !defined(MAGICKCORE_EXCLUDE_DEPRECATED) + +extern WandExport MagickBooleanType + MagickGetImageAlphaColor(MagickWand *,PixelWand *), + MagickSetImageAlphaColor(MagickWand *,const PixelWand *); + +#endif + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/display.h b/include/ImageMagick-7/MagickWand/display.h new file mode 100644 index 0000000..6f53412 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/display.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand display command-line method. +*/ +#ifndef MAGICKWAND_DISPLAY_H +#define MAGICKWAND_DISPLAY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + DisplayImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/drawing-wand.h b/include/ImageMagick-7/MagickWand/drawing-wand.h new file mode 100644 index 0000000..87ccac9 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/drawing-wand.h @@ -0,0 +1,228 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand drawing wand methods. +*/ +#ifndef MAGICKWAND_DRAWING_WAND_H +#define MAGICKWAND_DRAWING_WAND_H + +#include "MagickWand/pixel-wand.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _DrawingWand + DrawingWand; + +extern WandExport AlignType + DrawGetTextAlignment(const DrawingWand *); + +extern WandExport char + *DrawGetClipPath(const DrawingWand *), + *DrawGetDensity(const DrawingWand *), + *DrawGetException(const DrawingWand *,ExceptionType *), + *DrawGetFont(const DrawingWand *), + *DrawGetFontFamily(const DrawingWand *), + *DrawGetTextEncoding(const DrawingWand *), + *DrawGetVectorGraphics(DrawingWand *); + +extern WandExport ClipPathUnits + DrawGetClipUnits(const DrawingWand *); + +extern WandExport DecorationType + DrawGetTextDecoration(const DrawingWand *); + +extern WandExport DirectionType + DrawGetTextDirection(const DrawingWand *); + +extern WandExport double + DrawGetFillOpacity(const DrawingWand *), + DrawGetFontSize(const DrawingWand *), + DrawGetOpacity(const DrawingWand *), + *DrawGetStrokeDashArray(const DrawingWand *,size_t *), + DrawGetStrokeDashOffset(const DrawingWand *), + DrawGetStrokeOpacity(const DrawingWand *), + DrawGetStrokeWidth(const DrawingWand *), + DrawGetTextKerning(DrawingWand *), + DrawGetTextInterlineSpacing(DrawingWand *), + DrawGetTextInterwordSpacing(DrawingWand *); + +extern WandExport DrawInfo + *PeekDrawingWand(const DrawingWand *); + +extern WandExport DrawingWand + *AcquireDrawingWand(const DrawInfo *,Image *), + *CloneDrawingWand(const DrawingWand *), + *DestroyDrawingWand(DrawingWand *), + *NewDrawingWand(void); + +extern WandExport ExceptionInfo + *DrawCloneExceptionInfo(const DrawingWand *wand); + +extern WandExport ExceptionType + DrawGetExceptionType(const DrawingWand *); + +extern WandExport FillRule + DrawGetClipRule(const DrawingWand *), + DrawGetFillRule(const DrawingWand *); + +extern WandExport GravityType + DrawGetGravity(const DrawingWand *); + +extern WandExport LineCap + DrawGetStrokeLineCap(const DrawingWand *); + +extern WandExport LineJoin + DrawGetStrokeLineJoin(const DrawingWand *); + +extern WandExport MagickBooleanType + DrawClearException(DrawingWand *), + DrawComposite(DrawingWand *,const CompositeOperator,const double,const double, + const double,const double,MagickWand *), + DrawGetFontResolution(const DrawingWand *,double *,double *), + DrawGetStrokeAntialias(const DrawingWand *), + DrawGetTextAntialias(const DrawingWand *), + DrawPopPattern(DrawingWand *), + DrawPushPattern(DrawingWand *,const char *,const double,const double, + const double,const double), + DrawRender(DrawingWand *), + DrawSetClipPath(DrawingWand *,const char *), + DrawSetDensity(DrawingWand *,const char *), + DrawSetFillPatternURL(DrawingWand *,const char *), + DrawSetFont(DrawingWand *,const char *), + DrawSetFontFamily(DrawingWand *,const char *), + DrawSetFontResolution(DrawingWand *,const double,const double), + DrawSetStrokeDashArray(DrawingWand *,const size_t,const double *), + DrawSetStrokePatternURL(DrawingWand *,const char *), + DrawSetVectorGraphics(DrawingWand *,const char *), + IsDrawingWand(const DrawingWand *), + PopDrawingWand(DrawingWand *), + PushDrawingWand(DrawingWand *); + +extern WandExport StretchType + DrawGetFontStretch(const DrawingWand *); + +extern WandExport StyleType + DrawGetFontStyle(const DrawingWand *); + +extern WandExport size_t + DrawGetFontWeight(const DrawingWand *), + DrawGetStrokeMiterLimit(const DrawingWand *); + +extern WandExport void + ClearDrawingWand(DrawingWand *), + DrawAffine(DrawingWand *,const AffineMatrix *), + DrawAlpha(DrawingWand *,const double,const double,const PaintMethod), + DrawAnnotation(DrawingWand *,const double,const double,const unsigned char *), + DrawArc(DrawingWand *,const double,const double,const double,const double, + const double,const double), + DrawBezier(DrawingWand *,const size_t,const PointInfo *), + DrawGetBorderColor(const DrawingWand *,PixelWand *), + DrawCircle(DrawingWand *,const double,const double,const double,const double), + DrawColor(DrawingWand *,const double,const double,const PaintMethod), + DrawComment(DrawingWand *,const char *), + DrawEllipse(DrawingWand *,const double,const double,const double,const double, + const double,const double), + DrawGetFillColor(const DrawingWand *,PixelWand *), + DrawGetStrokeColor(const DrawingWand *,PixelWand *), + DrawSetTextKerning(DrawingWand *,const double), + DrawSetTextInterlineSpacing(DrawingWand *,const double), + DrawSetTextInterwordSpacing(DrawingWand *,const double), + DrawGetTextUnderColor(const DrawingWand *,PixelWand *), + DrawLine(DrawingWand *,const double, const double,const double,const double), + DrawPathClose(DrawingWand *), + DrawPathCurveToAbsolute(DrawingWand *,const double,const double,const double, + const double,const double,const double), + DrawPathCurveToRelative(DrawingWand *,const double,const double,const double, + const double,const double, const double), + DrawPathCurveToQuadraticBezierAbsolute(DrawingWand *,const double, + const double,const double,const double), + DrawPathCurveToQuadraticBezierRelative(DrawingWand *,const double, + const double,const double,const double), + DrawPathCurveToQuadraticBezierSmoothAbsolute(DrawingWand *,const double, + const double), + DrawPathCurveToQuadraticBezierSmoothRelative(DrawingWand *,const double, + const double), + DrawPathCurveToSmoothAbsolute(DrawingWand *,const double,const double, + const double,const double), + DrawPathCurveToSmoothRelative(DrawingWand *,const double,const double, + const double,const double), + DrawPathEllipticArcAbsolute(DrawingWand *,const double,const double, + const double,const MagickBooleanType,const MagickBooleanType,const double, + const double), + DrawPathEllipticArcRelative(DrawingWand *,const double,const double, + const double,const MagickBooleanType,const MagickBooleanType,const double, + const double), + DrawPathFinish(DrawingWand *), + DrawPathLineToAbsolute(DrawingWand *,const double,const double), + DrawPathLineToRelative(DrawingWand *,const double,const double), + DrawPathLineToHorizontalAbsolute(DrawingWand *,const double), + DrawPathLineToHorizontalRelative(DrawingWand *,const double), + DrawPathLineToVerticalAbsolute(DrawingWand *,const double), + DrawPathLineToVerticalRelative(DrawingWand *,const double), + DrawPathMoveToAbsolute(DrawingWand *,const double,const double), + DrawPathMoveToRelative(DrawingWand *,const double,const double), + DrawPathStart(DrawingWand *), + DrawPoint(DrawingWand *,const double,const double), + DrawPolygon(DrawingWand *,const size_t,const PointInfo *), + DrawPolyline(DrawingWand *,const size_t,const PointInfo *), + DrawPopClipPath(DrawingWand *), + DrawPopDefs(DrawingWand *), + DrawPushClipPath(DrawingWand *,const char *), + DrawPushDefs(DrawingWand *), + DrawRectangle(DrawingWand *,const double,const double,const double, + const double), + DrawResetVectorGraphics(DrawingWand *), + DrawRotate(DrawingWand *,const double), + DrawRoundRectangle(DrawingWand *,double,double,double,double,double,double), + DrawScale(DrawingWand *,const double,const double), + DrawSetBorderColor(DrawingWand *,const PixelWand *), + DrawSetClipRule(DrawingWand *,const FillRule), + DrawSetClipUnits(DrawingWand *,const ClipPathUnits), + DrawSetFillColor(DrawingWand *,const PixelWand *), + DrawSetFillOpacity(DrawingWand *,const double), + DrawSetFillRule(DrawingWand *,const FillRule), + DrawSetFontSize(DrawingWand *,const double), + DrawSetFontStretch(DrawingWand *,const StretchType), + DrawSetFontStyle(DrawingWand *,const StyleType), + DrawSetFontWeight(DrawingWand *,const size_t), + DrawSetGravity(DrawingWand *,const GravityType), + DrawSetOpacity(DrawingWand *,const double), + DrawSetStrokeAntialias(DrawingWand *,const MagickBooleanType), + DrawSetStrokeColor(DrawingWand *,const PixelWand *), + DrawSetStrokeDashOffset(DrawingWand *,const double dashoffset), + DrawSetStrokeLineCap(DrawingWand *,const LineCap), + DrawSetStrokeLineJoin(DrawingWand *,const LineJoin), + DrawSetStrokeMiterLimit(DrawingWand *,const size_t), + DrawSetStrokeOpacity(DrawingWand *, const double), + DrawSetStrokeWidth(DrawingWand *,const double), + DrawSetTextAlignment(DrawingWand *,const AlignType), + DrawSetTextAntialias(DrawingWand *,const MagickBooleanType), + DrawSetTextDecoration(DrawingWand *,const DecorationType), + DrawSetTextDirection(DrawingWand *,const DirectionType), + DrawSetTextEncoding(DrawingWand *,const char *), + DrawSetTextUnderColor(DrawingWand *,const PixelWand *), + DrawSetViewbox(DrawingWand *,const double,const double,const double, + const double), + DrawSkewX(DrawingWand *,const double), + DrawSkewY(DrawingWand *,const double), + DrawTranslate(DrawingWand *,const double,const double); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/identify.h b/include/ImageMagick-7/MagickWand/identify.h new file mode 100644 index 0000000..0e5282b --- /dev/null +++ b/include/ImageMagick-7/MagickWand/identify.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand identify command-line method. +*/ +#ifndef MAGICKWAND_IDENTIFY_H +#define MAGICKWAND_IDENTIFY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + IdentifyImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/import.h b/include/ImageMagick-7/MagickWand/import.h new file mode 100644 index 0000000..1d33a9d --- /dev/null +++ b/include/ImageMagick-7/MagickWand/import.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand import command-line method. +*/ +#ifndef MAGICKWAND_IMPORT_H +#define MAGICKWAND_IMPORT_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + ImportImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/magick-cli.h b/include/ImageMagick-7/MagickWand/magick-cli.h new file mode 100644 index 0000000..4a79e3f --- /dev/null +++ b/include/ImageMagick-7/MagickWand/magick-cli.h @@ -0,0 +1,38 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand convert command-line method. +*/ +#ifndef MAGICKWAND_MAGICK_CLI_H +#define MAGICKWAND_MAGICK_CLI_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport void + ProcessScriptOptions(MagickCLI *,const char *,int,char **,int); + +extern WandExport int + ProcessCommandOptions(MagickCLI *,int,char **,int); + +extern WandExport MagickBooleanType + MagickImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/magick-image.h b/include/ImageMagick-7/MagickWand/magick-image.h new file mode 100644 index 0000000..0758051 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/magick-image.h @@ -0,0 +1,398 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand image Methods. +*/ + +#ifndef MAGICKWAND_MAGICK_IMAGE_H +#define MAGICKWAND_MAGICK_IMAGE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport ChannelFeatures + *MagickGetImageFeatures(MagickWand *,const size_t); + +extern WandExport ChannelType + MagickSetImageChannelMask(MagickWand *,const ChannelType); + +extern WandExport ChannelStatistics + *MagickGetImageStatistics(MagickWand *); + +extern WandExport char + *MagickGetImageFilename(MagickWand *), + *MagickGetImageFormat(MagickWand *), + *MagickGetImageSignature(MagickWand *), + *MagickIdentifyImage(MagickWand *); + +extern WandExport ColorspaceType + MagickGetImageColorspace(MagickWand *); + +extern WandExport CompositeOperator + MagickGetImageCompose(MagickWand *); + +extern WandExport CompressionType + MagickGetImageCompression(MagickWand *); + +extern WandExport DisposeType + MagickGetImageDispose(MagickWand *); + +extern WandExport double + *MagickGetImageDistortions(MagickWand *,const MagickWand *, + const MetricType), + MagickGetImageFuzz(MagickWand *), + MagickGetImageGamma(MagickWand *), + MagickGetImageTotalInkDensity(MagickWand *); + +extern WandExport EndianType + MagickGetImageEndian(MagickWand *); + +extern WandExport GravityType + MagickGetImageGravity(MagickWand *); + +extern WandExport Image + *MagickDestroyImage(Image *), + *GetImageFromMagickWand(const MagickWand *); + +extern WandExport ImageType + MagickGetImageType(MagickWand *), + MagickIdentifyImageType(MagickWand *); + +extern WandExport InterlaceType + MagickGetImageInterlaceScheme(MagickWand *); + +extern WandExport PixelInterpolateMethod + MagickGetImageInterpolateMethod(MagickWand *); + +extern WandExport MagickBooleanType + MagickAdaptiveBlurImage(MagickWand *,const double,const double), + MagickAdaptiveResizeImage(MagickWand *,const size_t,const size_t), + MagickAdaptiveSharpenImage(MagickWand *,const double,const double), + MagickAdaptiveThresholdImage(MagickWand *,const size_t,const size_t, + const double), + MagickAddImage(MagickWand *,const MagickWand *), + MagickAddNoiseImage(MagickWand *,const NoiseType,const double), + MagickAffineTransformImage(MagickWand *,const DrawingWand *), + MagickAnnotateImage(MagickWand *,const DrawingWand *,const double, + const double,const double,const char *), + MagickAnimateImages(MagickWand *,const char *), + MagickAutoGammaImage(MagickWand *), + MagickAutoLevelImage(MagickWand *), + MagickAutoOrientImage(MagickWand *), + MagickBlackThresholdImage(MagickWand *,const PixelWand *), + MagickBlueShiftImage(MagickWand *,const double), + MagickBlurImage(MagickWand *,const double,const double), + MagickBorderImage(MagickWand *,const PixelWand *,const size_t,const size_t, + const CompositeOperator compose), + MagickBrightnessContrastImage(MagickWand *,const double,const double), + MagickCharcoalImage(MagickWand *,const double,const double), + MagickChopImage(MagickWand *,const size_t,const size_t,const ssize_t, + const ssize_t), + MagickClampImage(MagickWand *), + MagickClipImage(MagickWand *), + MagickClipImagePath(MagickWand *,const char *,const MagickBooleanType), + MagickClutImage(MagickWand *,const MagickWand *,const PixelInterpolateMethod), + MagickColorDecisionListImage(MagickWand *,const char *), + MagickColorizeImage(MagickWand *,const PixelWand *,const PixelWand *), + MagickColorMatrixImage(MagickWand *,const KernelInfo *), + MagickCommentImage(MagickWand *,const char *), + MagickCompositeImage(MagickWand *,const MagickWand *,const CompositeOperator, + const MagickBooleanType,const ssize_t,const ssize_t), + MagickCompositeImageGravity(MagickWand *,const MagickWand *, + const CompositeOperator,const GravityType), + MagickCompositeLayers(MagickWand *,const MagickWand *,const CompositeOperator, + const ssize_t,const ssize_t), + MagickConstituteImage(MagickWand *,const size_t,const size_t,const char *, + const StorageType,const void *), + MagickContrastImage(MagickWand *,const MagickBooleanType), + MagickContrastStretchImage(MagickWand *,const double,const double), + MagickConvolveImage(MagickWand *,const KernelInfo *), + MagickCropImage(MagickWand *,const size_t,const size_t,const ssize_t, + const ssize_t), + MagickCycleColormapImage(MagickWand *,const ssize_t), + MagickDecipherImage(MagickWand *,const char *), + MagickDeskewImage(MagickWand *,const double), + MagickDespeckleImage(MagickWand *), + MagickDisplayImage(MagickWand *,const char *), + MagickDisplayImages(MagickWand *,const char *), + MagickDistortImage(MagickWand *,const DistortMethod,const size_t, + const double *,const MagickBooleanType), + MagickDrawImage(MagickWand *,const DrawingWand *), + MagickEdgeImage(MagickWand *,const double), + MagickEmbossImage(MagickWand *,const double,const double), + MagickEncipherImage(MagickWand *,const char *), + MagickEnhanceImage(MagickWand *), + MagickEqualizeImage(MagickWand *), + MagickEvaluateImage(MagickWand *,const MagickEvaluateOperator,const double), + MagickExportImagePixels(MagickWand *,const ssize_t,const ssize_t, + const size_t,const size_t,const char *,const StorageType,void *), + MagickExtentImage(MagickWand *,const size_t,const size_t,const ssize_t, + const ssize_t), + MagickFlipImage(MagickWand *), + MagickFloodfillPaintImage(MagickWand *,const PixelWand *,const double, + const PixelWand *,const ssize_t,const ssize_t,const MagickBooleanType), + MagickFlopImage(MagickWand *), + MagickForwardFourierTransformImage(MagickWand *,const MagickBooleanType), + MagickFrameImage(MagickWand *,const PixelWand *,const size_t,const size_t, + const ssize_t,const ssize_t,const CompositeOperator), + MagickFunctionImage(MagickWand *,const MagickFunction,const size_t, + const double *), + MagickGammaImage(MagickWand *,const double), + MagickGaussianBlurImage(MagickWand *,const double,const double), + MagickGetImageAlphaChannel(MagickWand *), + MagickGetImageBackgroundColor(MagickWand *,PixelWand *), + MagickGetImageBluePrimary(MagickWand *,double *,double *,double *), + MagickGetImageBorderColor(MagickWand *,PixelWand *), + MagickGetImageKurtosis(MagickWand *,double *,double *), + MagickGetImageMean(MagickWand *,double *,double *), + MagickGetImageRange(MagickWand *,double *,double *), + MagickGetImageColormapColor(MagickWand *,const size_t,PixelWand *), + MagickGetImageDistortion(MagickWand *,const MagickWand *,const MetricType, + double *), + MagickGetImageGreenPrimary(MagickWand *,double *,double *,double *), + MagickGetImageLength(MagickWand *,MagickSizeType *), + MagickGetImageMatteColor(MagickWand *,PixelWand *), + MagickGetImagePage(MagickWand *,size_t *,size_t *,ssize_t *, + ssize_t *), + MagickGetImagePixelColor(MagickWand *,const ssize_t,const ssize_t, + PixelWand *), + MagickGetImageRange(MagickWand *,double *,double *), + MagickGetImageRedPrimary(MagickWand *,double *,double *,double *), + MagickGetImageResolution(MagickWand *,double *,double *), + MagickGetImageWhitePoint(MagickWand *,double *,double *,double *), + MagickHaldClutImage(MagickWand *,const MagickWand *), + MagickHasNextImage(MagickWand *), + MagickHasPreviousImage(MagickWand *), + MagickImplodeImage(MagickWand *,const double,const PixelInterpolateMethod), + MagickImportImagePixels(MagickWand *,const ssize_t,const ssize_t,const size_t, + const size_t,const char *,const StorageType,const void *), + MagickInterpolativeResizeImage(MagickWand *,const size_t,const size_t, + const PixelInterpolateMethod), + MagickInverseFourierTransformImage(MagickWand *,MagickWand *, + const MagickBooleanType), + MagickLabelImage(MagickWand *,const char *), + MagickLevelImage(MagickWand *,const double,const double,const double), + MagickLinearStretchImage(MagickWand *,const double,const double), + MagickLiquidRescaleImage(MagickWand *,const size_t,const size_t,const double, + const double), + MagickLocalContrastImage(MagickWand *,const double,const double), + MagickMagnifyImage(MagickWand *), + MagickMedianConvolveImage(MagickWand *,const double), + MagickMinifyImage(MagickWand *), + MagickModeImage(MagickWand *,const double), + MagickModulateImage(MagickWand *,const double,const double,const double), + MagickMorphologyImage(MagickWand *,MorphologyMethod,const ssize_t, + KernelInfo *), + MagickMotionBlurImage(MagickWand *,const double,const double,const double), + MagickNegateImage(MagickWand *,const MagickBooleanType), + MagickNewImage(MagickWand *,const size_t,const size_t,const PixelWand *), + MagickNextImage(MagickWand *), + MagickNormalizeImage(MagickWand *), + MagickOilPaintImage(MagickWand *,const double,const double), + MagickOpaquePaintImage(MagickWand *,const PixelWand *,const PixelWand *, + const double,const MagickBooleanType), + MagickOptimizeImageTransparency(MagickWand *), + MagickOrderedDitherImage(MagickWand *,const char *), + MagickTransparentPaintImage(MagickWand *,const PixelWand *, + const double,const double,const MagickBooleanType invert), + MagickPingImage(MagickWand *,const char *), + MagickPingImageBlob(MagickWand *,const void *,const size_t), + MagickPingImageFile(MagickWand *,FILE *), + MagickPolaroidImage(MagickWand *,const DrawingWand *,const char *, + const double,const PixelInterpolateMethod), + MagickPosterizeImage(MagickWand *,const size_t,const DitherMethod), + MagickPreviousImage(MagickWand *), + MagickQuantizeImage(MagickWand *,const size_t,const ColorspaceType, + const size_t,const DitherMethod,const MagickBooleanType), + MagickQuantizeImages(MagickWand *,const size_t,const ColorspaceType, + const size_t,const DitherMethod,const MagickBooleanType), + MagickRotationalBlurImage(MagickWand *,const double), + MagickRaiseImage(MagickWand *,const size_t,const size_t,const ssize_t, + const ssize_t,const MagickBooleanType), + MagickRandomThresholdImage(MagickWand *,const double,const double), + MagickReadImage(MagickWand *,const char *), + MagickReadImageBlob(MagickWand *,const void *,const size_t), + MagickReadImageFile(MagickWand *,FILE *), + MagickReduceNoiseImage(MagickWand *,const double), + MagickRemapImage(MagickWand *,const MagickWand *,const DitherMethod), + MagickRemoveImage(MagickWand *), + MagickResampleImage(MagickWand *,const double,const double,const FilterType), + MagickResetImagePage(MagickWand *,const char *), + MagickResizeImage(MagickWand *,const size_t,const size_t,const FilterType), + MagickRollImage(MagickWand *,const ssize_t,const ssize_t), + MagickRotateImage(MagickWand *,const PixelWand *,const double), + MagickSampleImage(MagickWand *,const size_t,const size_t), + MagickScaleImage(MagickWand *,const size_t,const size_t), + MagickSegmentImage(MagickWand *,const ColorspaceType,const MagickBooleanType, + const double,const double), + MagickSelectiveBlurImage(MagickWand *,const double,const double, + const double), + MagickSeparateImage(MagickWand *,const ChannelType), + MagickSepiaToneImage(MagickWand *,const double), + MagickSetImage(MagickWand *,const MagickWand *), + MagickSetImageAlpha(MagickWand *,const double), + MagickSetImageAlphaChannel(MagickWand *,const AlphaChannelOption), + MagickSetImageBackgroundColor(MagickWand *,const PixelWand *), + MagickSetImageBluePrimary(MagickWand *,const double,const double, + const double), + MagickSetImageBorderColor(MagickWand *,const PixelWand *), + MagickSetImageColor(MagickWand *,const PixelWand *), + MagickSetImageColormapColor(MagickWand *,const size_t, + const PixelWand *), + MagickSetImageColorspace(MagickWand *,const ColorspaceType), + MagickSetImageCompose(MagickWand *,const CompositeOperator), + MagickSetImageCompression(MagickWand *,const CompressionType), + MagickSetImageDelay(MagickWand *,const size_t), + MagickSetImageDepth(MagickWand *,const size_t), + MagickSetImageDispose(MagickWand *,const DisposeType), + MagickSetImageCompressionQuality(MagickWand *,const size_t), + MagickSetImageEndian(MagickWand *,const EndianType), + MagickSetImageExtent(MagickWand *,const size_t,const size_t), + MagickSetImageFilename(MagickWand *,const char *), + MagickSetImageFormat(MagickWand *,const char *), + MagickSetImageFuzz(MagickWand *,const double), + MagickSetImageGamma(MagickWand *,const double), + MagickSetImageGravity(MagickWand *,const GravityType), + MagickSetImageGreenPrimary(MagickWand *,const double,const double, + const double), + MagickSetImageInterlaceScheme(MagickWand *,const InterlaceType), + MagickSetImageInterpolateMethod(MagickWand *,const PixelInterpolateMethod), + MagickSetImageIterations(MagickWand *,const size_t), + MagickSetImageMatte(MagickWand *,const MagickBooleanType), + MagickSetImageMatteColor(MagickWand *,const PixelWand *), + MagickSetImageOrientation(MagickWand *,const OrientationType), + MagickSetImagePage(MagickWand *,const size_t,const size_t,const ssize_t, + const ssize_t), + MagickSetImageRedPrimary(MagickWand *,const double,const double, + const double), + MagickSetImageRenderingIntent(MagickWand *,const RenderingIntent), + MagickSetImageResolution(MagickWand *,const double,const double), + MagickSetImageScene(MagickWand *,const size_t), + MagickSetImageTicksPerSecond(MagickWand *,const ssize_t), + MagickSetImageType(MagickWand *,const ImageType), + MagickSetImageUnits(MagickWand *,const ResolutionType), + MagickSetImageWhitePoint(MagickWand *,const double,const double, + const double), + MagickShadeImage(MagickWand *,const MagickBooleanType,const double, + const double), + MagickShadowImage(MagickWand *,const double,const double,const ssize_t, + const ssize_t), + MagickSharpenImage(MagickWand *,const double,const double), + MagickShaveImage(MagickWand *,const size_t,const size_t), + MagickShearImage(MagickWand *,const PixelWand *,const double,const double), + MagickSigmoidalContrastImage(MagickWand *,const MagickBooleanType, + const double,const double), + MagickSketchImage(MagickWand *,const double,const double,const double), + MagickSolarizeImage(MagickWand *,const double), + MagickSparseColorImage(MagickWand *,const SparseColorMethod,const size_t, + const double *), + MagickSpliceImage(MagickWand *,const size_t,const size_t,const ssize_t, + const ssize_t), + MagickSpreadImage(MagickWand *,const PixelInterpolateMethod,const double), + MagickStatisticImage(MagickWand *,const StatisticType,const size_t, + const size_t), + MagickStripImage(MagickWand *), + MagickSwirlImage(MagickWand *,const double,const PixelInterpolateMethod), + MagickTintImage(MagickWand *,const PixelWand *,const PixelWand *), + MagickTransformImageColorspace(MagickWand *,const ColorspaceType), + MagickTransposeImage(MagickWand *), + MagickTransverseImage(MagickWand *), + MagickThresholdImage(MagickWand *,const double), + MagickThresholdImageChannel(MagickWand *,const ChannelType,const double), + MagickThumbnailImage(MagickWand *,const size_t,const size_t), + MagickTrimImage(MagickWand *,const double), + MagickUniqueImageColors(MagickWand *), + MagickUnsharpMaskImage(MagickWand *,const double,const double,const double, + const double), + MagickVignetteImage(MagickWand *,const double,const double,const ssize_t, + const ssize_t), + MagickWaveImage(MagickWand *,const double,const double, + const PixelInterpolateMethod), + MagickWhiteThresholdImage(MagickWand *,const PixelWand *), + MagickWriteImage(MagickWand *,const char *), + MagickWriteImageFile(MagickWand *,FILE *), + MagickWriteImages(MagickWand *,const char *,const MagickBooleanType), + MagickWriteImagesFile(MagickWand *,FILE *); + +extern WandExport MagickProgressMonitor + MagickSetImageProgressMonitor(MagickWand *,const MagickProgressMonitor, + void *); + +extern WandExport MagickWand + *MagickAppendImages(MagickWand *,const MagickBooleanType), + *MagickChannelFxImage(MagickWand *,const char *), + *MagickCoalesceImages(MagickWand *), + *MagickCombineImages(MagickWand *,const ColorspaceType), + *MagickCompareImages(MagickWand *,const MagickWand *,const MetricType, + double *), + *MagickCompareImagesLayers(MagickWand *,const LayerMethod), + *MagickDeconstructImages(MagickWand *), + *MagickEvaluateImages(MagickWand *,const MagickEvaluateOperator), + *MagickFxImage(MagickWand *,const char *), + *MagickGetImage(MagickWand *), + *MagickGetImageMask(MagickWand *,const PixelMask), + *MagickGetImageRegion(MagickWand *,const size_t,const size_t,const ssize_t, + const ssize_t), + *MagickMergeImageLayers(MagickWand *,const LayerMethod), + *MagickMorphImages(MagickWand *,const size_t), + *MagickMontageImage(MagickWand *,const DrawingWand *,const char *, + const char *,const MontageMode,const char *), + *MagickOptimizeImageLayers(MagickWand *), + *MagickPreviewImages(MagickWand *wand,const PreviewType), + *MagickSimilarityImage(MagickWand *,const MagickWand *,const MetricType, + const double,RectangleInfo *,double *), + *MagickSmushImages(MagickWand *,const MagickBooleanType,const ssize_t), + *MagickSteganoImage(MagickWand *,const MagickWand *,const ssize_t), + *MagickStereoImage(MagickWand *,const MagickWand *), + *MagickTextureImage(MagickWand *,const MagickWand *); + +extern WandExport OrientationType + MagickGetImageOrientation(MagickWand *); + +extern WandExport PixelWand + **MagickGetImageHistogram(MagickWand *,size_t *); + +extern WandExport RenderingIntent + MagickGetImageRenderingIntent(MagickWand *); + +extern WandExport ResolutionType + MagickGetImageUnits(MagickWand *); + +extern WandExport size_t + MagickGetImageColors(MagickWand *), + MagickGetImageCompressionQuality(MagickWand *), + MagickGetImageDelay(MagickWand *), + MagickGetImageDepth(MagickWand *), + MagickGetImageHeight(MagickWand *), + MagickGetImageIterations(MagickWand *), + MagickGetImageScene(MagickWand *), + MagickGetImageTicksPerSecond(MagickWand *), + MagickGetImageWidth(MagickWand *), + MagickGetNumberImages(MagickWand *); + +extern WandExport unsigned char + *MagickGetImageBlob(MagickWand *,size_t *), + *MagickGetImagesBlob(MagickWand *,size_t *); + +extern WandExport VirtualPixelMethod + MagickGetImageVirtualPixelMethod(MagickWand *), + MagickSetImageVirtualPixelMethod(MagickWand *,const VirtualPixelMethod); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/magick-property.h b/include/ImageMagick-7/MagickWand/magick-property.h new file mode 100644 index 0000000..150a2c5 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/magick-property.h @@ -0,0 +1,143 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand property, options, and profile methods. +*/ + +#ifndef MAGICKWAND_MAGICK_PROPERTY_H +#define MAGICKWAND_MAGICK_PROPERTY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport char + *MagickGetFilename(const MagickWand *), + *MagickGetFormat(MagickWand *), + *MagickGetFont(MagickWand *), + *MagickGetHomeURL(void), + *MagickGetImageArtifact(MagickWand *,const char *), + **MagickGetImageArtifacts(MagickWand *,const char *,size_t *), + **MagickGetImageProfiles(MagickWand *,const char *,size_t *), + *MagickGetImageProperty(MagickWand *,const char *), + **MagickGetImageProperties(MagickWand *,const char *,size_t *), + *MagickGetOption(MagickWand *,const char *), + **MagickGetOptions(MagickWand *,const char *,size_t *), + *MagickQueryConfigureOption(const char *), + **MagickQueryConfigureOptions(const char *,size_t *), + **MagickQueryFonts(const char *,size_t *), + **MagickQueryFormats(const char *,size_t *); + +extern WandExport ColorspaceType + MagickGetColorspace(MagickWand *); + +extern WandExport CompressionType + MagickGetCompression(MagickWand *); + +extern WandExport const char + *MagickGetCopyright(void), + *MagickGetPackageName(void), + *MagickGetQuantumDepth(size_t *), + *MagickGetQuantumRange(size_t *), + *MagickGetReleaseDate(void), + *MagickGetVersion(size_t *); + +extern WandExport double + MagickGetPointsize(MagickWand *), + *MagickGetSamplingFactors(MagickWand *,size_t *), + *MagickQueryFontMetrics(MagickWand *,const DrawingWand *,const char *), + *MagickQueryMultilineFontMetrics(MagickWand *,const DrawingWand *, + const char *); + +extern WandExport GravityType + MagickGetGravity(MagickWand *); + +extern WandExport ImageType + MagickGetType(MagickWand *); + +extern WandExport InterlaceType + MagickGetInterlaceScheme(MagickWand *); + +extern WandExport PixelInterpolateMethod + MagickGetInterpolateMethod(MagickWand *); + +extern WandExport OrientationType + MagickGetOrientation(MagickWand *); + +extern WandExport MagickBooleanType + MagickDeleteImageArtifact(MagickWand *,const char *), + MagickDeleteImageProperty(MagickWand *,const char *), + MagickDeleteOption(MagickWand *,const char *), + MagickGetAntialias(const MagickWand *), + MagickGetPage(const MagickWand *,size_t *,size_t *,ssize_t *,ssize_t *), + MagickGetResolution(const MagickWand *,double *,double *), + MagickGetSize(const MagickWand *,size_t *,size_t *), + MagickGetSizeOffset(const MagickWand *,ssize_t *), + MagickProfileImage(MagickWand *,const char *,const void *,const size_t), + MagickSetAntialias(MagickWand *,const MagickBooleanType), + MagickSetBackgroundColor(MagickWand *,const PixelWand *), + MagickSetColorspace(MagickWand *,const ColorspaceType), + MagickSetCompression(MagickWand *,const CompressionType), + MagickSetCompressionQuality(MagickWand *,const size_t), + MagickSetDepth(MagickWand *,const size_t), + MagickSetExtract(MagickWand *,const char *), + MagickSetFilename(MagickWand *,const char *), + MagickSetFormat(MagickWand *,const char *), + MagickSetFont(MagickWand *,const char *), + MagickSetGravity(MagickWand *,const GravityType), + MagickSetImageArtifact(MagickWand *,const char *,const char *), + MagickSetImageProfile(MagickWand *,const char *,const void *,const size_t), + MagickSetImageProperty(MagickWand *,const char *,const char *), + MagickSetInterlaceScheme(MagickWand *,const InterlaceType), + MagickSetInterpolateMethod(MagickWand *,const PixelInterpolateMethod), + MagickSetOption(MagickWand *,const char *,const char *), + MagickSetOrientation(MagickWand *,const OrientationType), + MagickSetPage(MagickWand *,const size_t,const size_t,const ssize_t, + const ssize_t), + MagickSetPassphrase(MagickWand *,const char *), + MagickSetPointsize(MagickWand *,const double), + MagickSetResolution(MagickWand *,const double,const double), + MagickSetResourceLimit(const ResourceType type,const MagickSizeType limit), + MagickSetSamplingFactors(MagickWand *,const size_t,const double *), + MagickSetSecurityPolicy(MagickWand *,const char *), + MagickSetSize(MagickWand *,const size_t,const size_t), + MagickSetSizeOffset(MagickWand *,const size_t,const size_t,const ssize_t), + MagickSetType(MagickWand *,const ImageType); + +extern WandExport MagickProgressMonitor + MagickSetProgressMonitor(MagickWand *,const MagickProgressMonitor,void *); + +extern WandExport MagickSizeType + MagickGetResource(const ResourceType), + MagickGetResourceLimit(const ResourceType); + +extern WandExport PixelWand + *MagickGetBackgroundColor(MagickWand *); + +extern WandExport OrientationType + MagickGetOrientationType(MagickWand *); + +extern WandExport size_t + MagickGetCompressionQuality(MagickWand *); + +extern WandExport unsigned char + *MagickGetImageProfile(MagickWand *,const char *,size_t *), + *MagickRemoveImageProfile(MagickWand *,const char *,size_t *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/method-attribute.h b/include/ImageMagick-7/MagickWand/method-attribute.h new file mode 100644 index 0000000..5e0d5ca --- /dev/null +++ b/include/ImageMagick-7/MagickWand/method-attribute.h @@ -0,0 +1,139 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand method attributes. +*/ +#ifndef MAGICKWAND_METHOD_ATTRIBUTE_H +#define MAGICKWAND_METHOD_ATTRIBUTE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if defined(__BORLANDC__) && defined(_DLL) +# pragma message("BCBMagick lib DLL export interface") +# define _MAGICKDLL_ +# define _MAGICKLIB_ +# define MAGICKCORE_MODULES_SUPPORT +# undef MAGICKCORE_BUILD_MODULES +#endif + +#if defined(MAGICKWAND_WINDOWS_SUPPORT) && !defined(__CYGWIN__) +# define WandPrivate +# if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB) +# define _MAGICKDLL_ +# endif +# if defined(_MAGICKDLL_) +# if defined(_VISUALC_) +# pragma warning( disable: 4273 ) /* Disable the dll linkage warnings */ +# endif +# if !defined(_MAGICKLIB_) +# if defined(__clang__) || defined(__GNUC__) +# define WandExport __attribute__ ((dllimport)) +# else +# define WandExport __declspec(dllimport) +# endif +# if defined(_VISUALC_) +# pragma message( "MagickCore lib DLL import interface" ) +# endif +# else +# if defined(__clang__) || defined(__GNUC__) +# define WandExport __attribute__ ((dllexport)) +# else +# define WandExport __declspec(dllexport) +# endif +# if defined(_VISUALC_) +# pragma message( "MagickCore lib DLL export interface" ) +# endif +# endif +# else +# define WandExport +# if defined(_VISUALC_) +# pragma message( "MagickCore lib static interface" ) +# endif +# endif + +# if defined(_DLL) && !defined(_LIB) +# if defined(_VISUALC_) +# pragma message( "MagickCore module DLL export interface" ) +# endif +# else +# if defined(_VISUALC_) +# pragma message( "MagickCore module static interface" ) +# endif + +# endif +# if defined(_VISUALC_) +# pragma warning(disable : 4018) +# pragma warning(disable : 4068) +# pragma warning(disable : 4244) +# pragma warning(disable : 4142) +# pragma warning(disable : 4800) +# pragma warning(disable : 4786) +# pragma warning(disable : 4996) +# endif +#else +# if defined(__clang__) || (__GNUC__ >= 4) +# define WandExport __attribute__ ((visibility ("default"))) +# define WandPrivate __attribute__ ((visibility ("hidden"))) +# else +# define WandExport +# define WandPrivate +# endif +#endif + +#define MagickWandSignature 0xabacadabUL +#if !defined(MagickPathExtent) +# define MagickPathExtent 4096 +#endif + +#if defined(MAGICKCORE_HAVE___ATTRIBUTE__) +# define wand_aligned(x) __attribute__((aligned(x))) +# define wand_attribute __attribute__ +# define wand_unused(x) wand_unused_ ## x __attribute__((unused)) +# define wand_unreferenced(x) /* nothing */ +#elif defined(MAGICKWAND_WINDOWS_SUPPORT) && !defined(__CYGWIN__) +# define wand_aligned(x) __declspec(align(x)) +# define wand_attribute(x) /* nothing */ +# define wand_unused(x) x +# define wand_unreferenced(x) (x) +#else +# define wand_aligned(x) /* nothing */ +# define wand_attribute(x) /* nothing */ +# define wand_unused(x) x +# define wand_unreferenced(x) /* nothing */ +#endif + +#if !defined(__clang__) && (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))) +# define wand_alloc_size(x) __attribute__((__alloc_size__(x))) +# define wand_alloc_sizes(x,y) __attribute__((__alloc_size__(x,y))) +#else +# define wand_alloc_size(x) /* nothing */ +# define wand_alloc_sizes(x,y) /* nothing */ +#endif + +#if defined(__clang__) || (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))) +# define wand_cold_spot __attribute__((__cold__)) +# define wand_hot_spot __attribute__((__hot__)) +#else +# define wand_cold_spot +# define wand_hot_spot +#endif + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/mogrify.h b/include/ImageMagick-7/MagickWand/mogrify.h new file mode 100644 index 0000000..fc8888b --- /dev/null +++ b/include/ImageMagick-7/MagickWand/mogrify.h @@ -0,0 +1,43 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand mogrify command-line method. +*/ +#ifndef MAGICKWAND_MOGRIFY_H +#define MAGICKWAND_MOGRIFY_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef MagickBooleanType + (*MagickCommand)(ImageInfo *,int,char **,char **,ExceptionInfo *); + +extern WandExport MagickBooleanType + MagickCommandGenesis(ImageInfo *,MagickCommand,int,char **,char **, + ExceptionInfo *), + MogrifyImage(ImageInfo *,const int,const char **,Image **,ExceptionInfo *), + MogrifyImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *), + MogrifyImageInfo(ImageInfo *,const int,const char **,ExceptionInfo *), + MogrifyImageList(ImageInfo *,const int,const char **,Image **, + ExceptionInfo *), + MogrifyImages(ImageInfo *,const MagickBooleanType,const int,const char **, + Image **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/montage.h b/include/ImageMagick-7/MagickWand/montage.h new file mode 100644 index 0000000..4f4791b --- /dev/null +++ b/include/ImageMagick-7/MagickWand/montage.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand montage command-line method. +*/ +#ifndef MAGICKWAND_MONTAGE_H +#define MAGICKWAND_MONTAGE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + MontageImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/operation.h b/include/ImageMagick-7/MagickWand/operation.h new file mode 100644 index 0000000..11bb444 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/operation.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand command-line option process. +*/ +#ifndef MAGICKWAND_OPERATION_H +#define MAGICKWAND_OPERATION_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport void + CLIOption(MagickCLI *,const char *,...); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/pixel-iterator.h b/include/ImageMagick-7/MagickWand/pixel-iterator.h new file mode 100644 index 0000000..25d237a --- /dev/null +++ b/include/ImageMagick-7/MagickWand/pixel-iterator.h @@ -0,0 +1,68 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Pixel Iterator Methods. +*/ +#ifndef MAGICKWAND_PIXEL_ITERATOR_H +#define MAGICKWAND_PIXEL_ITERATOR_H + +#include "MagickWand/MagickWand.h" +#include "MagickWand/pixel-wand.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _PixelIterator + PixelIterator; + +extern WandExport char + *PixelGetIteratorException(const PixelIterator *,ExceptionType *); + +extern WandExport ExceptionType + PixelGetIteratorExceptionType(const PixelIterator *); + +extern WandExport MagickBooleanType + IsPixelIterator(const PixelIterator *), + PixelClearIteratorException(PixelIterator *), + PixelSetIteratorRow(PixelIterator *,const ssize_t), + PixelSyncIterator(PixelIterator *); + +extern WandExport PixelIterator + *ClonePixelIterator(const PixelIterator *), + *DestroyPixelIterator(PixelIterator *), + *NewPixelIterator(MagickWand *), + *NewPixelRegionIterator(MagickWand *,const ssize_t,const ssize_t,const size_t, + const size_t); + +extern WandExport PixelWand + **PixelGetCurrentIteratorRow(PixelIterator *,size_t *), + **PixelGetNextIteratorRow(PixelIterator *,size_t *), + **PixelGetPreviousIteratorRow(PixelIterator *,size_t *); + +extern WandExport ssize_t + PixelGetIteratorRow(PixelIterator *); + +extern WandExport void + ClearPixelIterator(PixelIterator *), + PixelResetIterator(PixelIterator *), + PixelSetFirstIteratorRow(PixelIterator *), + PixelSetLastIteratorRow(PixelIterator *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/pixel-wand.h b/include/ImageMagick-7/MagickWand/pixel-wand.h new file mode 100644 index 0000000..9863a8e --- /dev/null +++ b/include/ImageMagick-7/MagickWand/pixel-wand.h @@ -0,0 +1,117 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand pixel wand methods. +*/ +#ifndef MAGICKWAND_PIXEL_WAND_H +#define MAGICKWAND_PIXEL_WAND_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _PixelWand + PixelWand; + +extern WandExport char + *PixelGetColorAsNormalizedString(const PixelWand *), + *PixelGetColorAsString(const PixelWand *), + *PixelGetException(const PixelWand *,ExceptionType *); + +extern WandExport double + PixelGetAlpha(const PixelWand *), + PixelGetBlack(const PixelWand *), + PixelGetBlue(const PixelWand *), + PixelGetCyan(const PixelWand *), + PixelGetFuzz(const PixelWand *), + PixelGetGreen(const PixelWand *), + PixelGetMagenta(const PixelWand *), + PixelGetAlpha(const PixelWand *), + PixelGetRed(const PixelWand *), + PixelGetYellow(const PixelWand *); + +extern WandExport ExceptionType + PixelGetExceptionType(const PixelWand *); + +extern WandExport MagickBooleanType + IsPixelWand(const PixelWand *), + IsPixelWandSimilar(PixelWand *,PixelWand *,const double), + PixelClearException(PixelWand *), + PixelSetColor(PixelWand *,const char *); + +extern WandExport PixelInfo + PixelGetPixel(const PixelWand *); + +extern WandExport PixelWand + *ClonePixelWand(const PixelWand *), + **ClonePixelWands(const PixelWand **,const size_t), + *DestroyPixelWand(PixelWand *), + **DestroyPixelWands(PixelWand **,const size_t), + *NewPixelWand(void), + **NewPixelWands(const size_t); + +extern WandExport Quantum + PixelGetAlphaQuantum(const PixelWand *), + PixelGetBlackQuantum(const PixelWand *), + PixelGetBlueQuantum(const PixelWand *), + PixelGetCyanQuantum(const PixelWand *), + PixelGetGreenQuantum(const PixelWand *), + PixelGetIndex(const PixelWand *), + PixelGetMagentaQuantum(const PixelWand *), + PixelGetAlphaQuantum(const PixelWand *), + PixelGetRedQuantum(const PixelWand *), + PixelGetYellowQuantum(const PixelWand *); + +extern WandExport size_t + PixelGetColorCount(const PixelWand *); + +extern WandExport void + ClearPixelWand(PixelWand *), + PixelGetHSL(const PixelWand *,double *,double *,double *), + PixelGetMagickColor(const PixelWand *,PixelInfo *), + PixelGetQuantumPacket(const PixelWand *,PixelInfo *), + PixelGetQuantumPixel(const Image *,const PixelWand *,Quantum *), + PixelSetAlpha(PixelWand *,const double), + PixelSetAlphaQuantum(PixelWand *,const Quantum), + PixelSetBlack(PixelWand *,const double), + PixelSetBlackQuantum(PixelWand *,const Quantum), + PixelSetBlue(PixelWand *,const double), + PixelSetBlueQuantum(PixelWand *,const Quantum), + PixelSetColorFromWand(PixelWand *,const PixelWand *), + PixelSetColorCount(PixelWand *,const size_t), + PixelSetCyan(PixelWand *,const double), + PixelSetCyanQuantum(PixelWand *,const Quantum), + PixelSetFuzz(PixelWand *,const double), + PixelSetGreen(PixelWand *,const double), + PixelSetGreenQuantum(PixelWand *,const Quantum), + PixelSetHSL(PixelWand *,const double,const double,const double), + PixelSetIndex(PixelWand *,const Quantum), + PixelSetMagenta(PixelWand *,const double), + PixelSetMagentaQuantum(PixelWand *,const Quantum), + PixelSetPixelColor(PixelWand *,const PixelInfo *), + PixelSetAlpha(PixelWand *,const double), + PixelSetAlphaQuantum(PixelWand *,const Quantum), + PixelSetPixelColor(PixelWand *,const PixelInfo *), + PixelSetQuantumPixel(const Image *,const Quantum *,PixelWand *), + PixelSetRed(PixelWand *,const double), + PixelSetRedQuantum(PixelWand *,const Quantum), + PixelSetYellow(PixelWand *,const double), + PixelSetYellowQuantum(PixelWand *,const Quantum); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/stream.h b/include/ImageMagick-7/MagickWand/stream.h new file mode 100644 index 0000000..48f2604 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/stream.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand montage command-line method. +*/ +#ifndef MAGICKWAND_STREAM_H +#define MAGICKWAND_STREAM_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern WandExport MagickBooleanType + StreamImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/wand-view.h b/include/ImageMagick-7/MagickWand/wand-view.h new file mode 100644 index 0000000..b715766 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/wand-view.h @@ -0,0 +1,73 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITTransferNS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand wand view methods. +*/ +#ifndef MAGICKWAND_WAND_VIEW_H +#define MAGICKWAND_WAND_VIEW_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _WandView + WandView; + +typedef MagickBooleanType + (*DuplexTransferWandViewMethod)(const WandView *,const WandView *,WandView *, + const ssize_t,const int,void *), + (*GetWandViewMethod)(const WandView *,const ssize_t,const int,void *), + (*SetWandViewMethod)(WandView *,const ssize_t,const int,void *), + (*TransferWandViewMethod)(const WandView *,WandView *,const ssize_t, + const int,void *), + (*UpdateWandViewMethod)(WandView *,const ssize_t,const int,void *); + +extern WandExport char + *GetWandViewException(const WandView *,ExceptionType *); + +extern WandExport MagickBooleanType + DuplexTransferWandViewIterator(WandView *,WandView *,WandView *, + DuplexTransferWandViewMethod,void *), + GetWandViewIterator(WandView *,GetWandViewMethod,void *), + IsWandView(const WandView *), + SetWandViewIterator(WandView *,SetWandViewMethod,void *), + TransferWandViewIterator(WandView *,WandView *,TransferWandViewMethod,void *), + UpdateWandViewIterator(WandView *,UpdateWandViewMethod,void *); + +extern WandExport MagickWand + *GetWandViewWand(const WandView *); + +extern WandExport PixelWand + **GetWandViewPixels(const WandView *); + +extern WandExport RectangleInfo + GetWandViewExtent(const WandView *); + +extern WandExport void + SetWandViewDescription(WandView *,const char *), + SetWandViewThreads(WandView *,const size_t); + +extern WandExport WandView + *CloneWandView(const WandView *), + *DestroyWandView(WandView *), + *NewWandView(MagickWand *), + *NewWandViewExtent(MagickWand *,const ssize_t,const ssize_t,const size_t, + const size_t); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/include/ImageMagick-7/MagickWand/wandcli.h b/include/ImageMagick-7/MagickWand/wandcli.h new file mode 100644 index 0000000..ffe0995 --- /dev/null +++ b/include/ImageMagick-7/MagickWand/wandcli.h @@ -0,0 +1,46 @@ +/* + Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickWand command-line option process. +*/ +#ifndef MAGICKWAND_WAND_CLI_H +#define MAGICKWAND_WAND_CLI_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct _MagickCLI + MagickCLI; + +extern WandExport MagickCLI + *AcquireMagickCLI(ImageInfo *,ExceptionInfo *), + *DestroyMagickCLI(MagickCLI *); + +extern WandExport MagickBooleanType + CLICatchException(MagickCLI *,const MagickBooleanType), + CLILogEvent(MagickCLI *,const LogEventType,const char *,const char *, + const size_t, const char *,...) + magick_attribute((__format__ (__printf__,6,7))), + CLIThrowException(MagickCLI *,const char *,const char *,const size_t, + const ExceptionType,const char *,const char *,...) + magick_attribute((__format__ (__printf__,7,8))); + + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/lib/ImageMagick-7.0.7/config-Q16HDRI/configure.xml b/lib/ImageMagick-7.0.7/config-Q16HDRI/configure.xml new file mode 100644 index 0000000..956f18e --- /dev/null +++ b/lib/ImageMagick-7.0.7/config-Q16HDRI/configure.xml @@ -0,0 +1,50 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/libMagick++-7.Q16HDRI.a b/lib/libMagick++-7.Q16HDRI.a new file mode 100644 index 0000000..3b75b23 Binary files /dev/null and b/lib/libMagick++-7.Q16HDRI.a differ diff --git a/lib/libMagick++-7.Q16HDRI.la b/lib/libMagick++-7.Q16HDRI.la new file mode 100755 index 0000000..45164bb --- /dev/null +++ b/lib/libMagick++-7.Q16HDRI.la @@ -0,0 +1,41 @@ +# libMagick++-7.Q16HDRI.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libMagick++-7.Q16HDRI.so.4' + +# Names of this library. +library_names='libMagick++-7.Q16HDRI.so.4.0.0 libMagick++-7.Q16HDRI.so.4 libMagick++-7.Q16HDRI.so' + +# The name of the static archive. +old_library='libMagick++-7.Q16HDRI.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' -pthread -fopenmp' + +# Libraries that this one depends upon. +dependency_libs=' /root/package/lib/libMagickWand-7.Q16HDRI.la /root/package/lib/libMagickCore-7.Q16HDRI.la -llcms2 -ltiff -lraqm -ljpeg -llqr-1 -lglib-2.0 -lpng16 -lfontconfig -lfreetype -lXext -llzma -lbz2 -lxml2 -lz -lX11 -lgomp' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libMagick++-7.Q16HDRI. +current=4 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/root/package/lib' diff --git a/lib/libMagick++-7.Q16HDRI.so b/lib/libMagick++-7.Q16HDRI.so new file mode 120000 index 0000000..5338d6d --- /dev/null +++ b/lib/libMagick++-7.Q16HDRI.so @@ -0,0 +1 @@ +libMagick++-7.Q16HDRI.so.4.0.0 \ No newline at end of file diff --git a/lib/libMagick++-7.Q16HDRI.so.4 b/lib/libMagick++-7.Q16HDRI.so.4 new file mode 120000 index 0000000..5338d6d --- /dev/null +++ b/lib/libMagick++-7.Q16HDRI.so.4 @@ -0,0 +1 @@ +libMagick++-7.Q16HDRI.so.4.0.0 \ No newline at end of file diff --git a/lib/libMagick++-7.Q16HDRI.so.4.0.0 b/lib/libMagick++-7.Q16HDRI.so.4.0.0 new file mode 100755 index 0000000..b3b986c Binary files /dev/null and b/lib/libMagick++-7.Q16HDRI.so.4.0.0 differ diff --git a/lib/libMagickCore-7.Q16HDRI.a b/lib/libMagickCore-7.Q16HDRI.a new file mode 100644 index 0000000..90d65e4 Binary files /dev/null and b/lib/libMagickCore-7.Q16HDRI.a differ diff --git a/lib/libMagickCore-7.Q16HDRI.la b/lib/libMagickCore-7.Q16HDRI.la new file mode 100755 index 0000000..83576db --- /dev/null +++ b/lib/libMagickCore-7.Q16HDRI.la @@ -0,0 +1,41 @@ +# libMagickCore-7.Q16HDRI.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libMagickCore-7.Q16HDRI.so.6' + +# Names of this library. +library_names='libMagickCore-7.Q16HDRI.so.6.0.0 libMagickCore-7.Q16HDRI.so.6 libMagickCore-7.Q16HDRI.so' + +# The name of the static archive. +old_library='libMagickCore-7.Q16HDRI.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' -fopenmp -pthread' + +# Libraries that this one depends upon. +dependency_libs=' -llcms2 -ltiff -lraqm -ljpeg -llqr-1 -lglib-2.0 -lpng16 -lfontconfig -lfreetype -lXext -lX11 -llzma -lbz2 -lxml2 -lz -lm -lgomp' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libMagickCore-7.Q16HDRI. +current=6 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/root/package/lib' diff --git a/lib/libMagickCore-7.Q16HDRI.so b/lib/libMagickCore-7.Q16HDRI.so new file mode 120000 index 0000000..3b464c1 --- /dev/null +++ b/lib/libMagickCore-7.Q16HDRI.so @@ -0,0 +1 @@ +libMagickCore-7.Q16HDRI.so.6.0.0 \ No newline at end of file diff --git a/lib/libMagickCore-7.Q16HDRI.so.6 b/lib/libMagickCore-7.Q16HDRI.so.6 new file mode 120000 index 0000000..3b464c1 --- /dev/null +++ b/lib/libMagickCore-7.Q16HDRI.so.6 @@ -0,0 +1 @@ +libMagickCore-7.Q16HDRI.so.6.0.0 \ No newline at end of file diff --git a/lib/libMagickCore-7.Q16HDRI.so.6.0.0 b/lib/libMagickCore-7.Q16HDRI.so.6.0.0 new file mode 100755 index 0000000..7ebb53c Binary files /dev/null and b/lib/libMagickCore-7.Q16HDRI.so.6.0.0 differ diff --git a/lib/libMagickWand-7.Q16HDRI.a b/lib/libMagickWand-7.Q16HDRI.a new file mode 100644 index 0000000..674018b Binary files /dev/null and b/lib/libMagickWand-7.Q16HDRI.a differ diff --git a/lib/libMagickWand-7.Q16HDRI.la b/lib/libMagickWand-7.Q16HDRI.la new file mode 100755 index 0000000..e792d0c --- /dev/null +++ b/lib/libMagickWand-7.Q16HDRI.la @@ -0,0 +1,41 @@ +# libMagickWand-7.Q16HDRI.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libMagickWand-7.Q16HDRI.so.6' + +# Names of this library. +library_names='libMagickWand-7.Q16HDRI.so.6.0.0 libMagickWand-7.Q16HDRI.so.6 libMagickWand-7.Q16HDRI.so' + +# The name of the static archive. +old_library='libMagickWand-7.Q16HDRI.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' -fopenmp -pthread' + +# Libraries that this one depends upon. +dependency_libs=' /root/package/lib/libMagickCore-7.Q16HDRI.la -llcms2 -ltiff -lraqm -ljpeg -llqr-1 -lglib-2.0 -lpng16 -lfontconfig -lfreetype -lXext -llzma -lbz2 -lxml2 -lz -lX11 -lgomp -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libMagickWand-7.Q16HDRI. +current=6 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/root/package/lib' diff --git a/lib/libMagickWand-7.Q16HDRI.so b/lib/libMagickWand-7.Q16HDRI.so new file mode 120000 index 0000000..f8e0266 --- /dev/null +++ b/lib/libMagickWand-7.Q16HDRI.so @@ -0,0 +1 @@ +libMagickWand-7.Q16HDRI.so.6.0.0 \ No newline at end of file diff --git a/lib/libMagickWand-7.Q16HDRI.so.6 b/lib/libMagickWand-7.Q16HDRI.so.6 new file mode 120000 index 0000000..f8e0266 --- /dev/null +++ b/lib/libMagickWand-7.Q16HDRI.so.6 @@ -0,0 +1 @@ +libMagickWand-7.Q16HDRI.so.6.0.0 \ No newline at end of file diff --git a/lib/libMagickWand-7.Q16HDRI.so.6.0.0 b/lib/libMagickWand-7.Q16HDRI.so.6.0.0 new file mode 100755 index 0000000..d881cfd Binary files /dev/null and b/lib/libMagickWand-7.Q16HDRI.so.6.0.0 differ diff --git a/lib/pkgconfig/ImageMagick-7.Q16HDRI.pc b/lib/pkgconfig/ImageMagick-7.Q16HDRI.pc new file mode 100644 index 0000000..9fb94bc --- /dev/null +++ b/lib/pkgconfig/ImageMagick-7.Q16HDRI.pc @@ -0,0 +1,14 @@ +prefix=/root/package +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include/ImageMagick-7 +includearchdir=/root/package/include/ImageMagick-7 +libname=MagickCore-7.Q16HDRI + +Name: ImageMagick +Description: ImageMagick - convert, edit, and compose images (ABI Q16HDRI) +URL: https://github.com/ImageMagick +Version: 7.0.7 +Cflags: -I${includearchdir} -I${includedir} -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 +Libs: -L${libdir} -l${libname} +Libs.private: -L${libdir} -l${libname} -llcms2 -ltiff -lfreetype -lraqm -lfreetype -ljpeg -llqr-1 -lglib-2.0 -lpng16 -lz -lfontconfig -lfreetype -lXext -lX11 -llzma -lbz2 -lxml2 -lz -lm -lgomp -lm diff --git a/lib/pkgconfig/ImageMagick.pc b/lib/pkgconfig/ImageMagick.pc new file mode 100644 index 0000000..9fb94bc --- /dev/null +++ b/lib/pkgconfig/ImageMagick.pc @@ -0,0 +1,14 @@ +prefix=/root/package +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include/ImageMagick-7 +includearchdir=/root/package/include/ImageMagick-7 +libname=MagickCore-7.Q16HDRI + +Name: ImageMagick +Description: ImageMagick - convert, edit, and compose images (ABI Q16HDRI) +URL: https://github.com/ImageMagick +Version: 7.0.7 +Cflags: -I${includearchdir} -I${includedir} -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 +Libs: -L${libdir} -l${libname} +Libs.private: -L${libdir} -l${libname} -llcms2 -ltiff -lfreetype -lraqm -lfreetype -ljpeg -llqr-1 -lglib-2.0 -lpng16 -lz -lfontconfig -lfreetype -lXext -lX11 -llzma -lbz2 -lxml2 -lz -lm -lgomp -lm diff --git a/lib/pkgconfig/Magick++-7.Q16HDRI.pc b/lib/pkgconfig/Magick++-7.Q16HDRI.pc new file mode 100644 index 0000000..2da300b --- /dev/null +++ b/lib/pkgconfig/Magick++-7.Q16HDRI.pc @@ -0,0 +1,14 @@ +prefix=/root/package +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include/ImageMagick-7 +includearchdir=/root/package/include/ImageMagick-7 +libname=Magick++-7.Q16HDRI + +Name: Magick++ +Description: Magick++ - C++ API for ImageMagick (ABI Q16HDRI) +Version: 7.0.7 +Requires: MagickWand +Libs: -L${libdir} -l${libname} +Libs.private: -L${libdir} -l${libname} -lm +Cflags: -I${includearchdir} -I${includedir} -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 diff --git a/lib/pkgconfig/Magick++.pc b/lib/pkgconfig/Magick++.pc new file mode 100644 index 0000000..2da300b --- /dev/null +++ b/lib/pkgconfig/Magick++.pc @@ -0,0 +1,14 @@ +prefix=/root/package +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include/ImageMagick-7 +includearchdir=/root/package/include/ImageMagick-7 +libname=Magick++-7.Q16HDRI + +Name: Magick++ +Description: Magick++ - C++ API for ImageMagick (ABI Q16HDRI) +Version: 7.0.7 +Requires: MagickWand +Libs: -L${libdir} -l${libname} +Libs.private: -L${libdir} -l${libname} -lm +Cflags: -I${includearchdir} -I${includedir} -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 diff --git a/lib/pkgconfig/MagickCore-7.Q16HDRI.pc b/lib/pkgconfig/MagickCore-7.Q16HDRI.pc new file mode 100644 index 0000000..d10c1d4 --- /dev/null +++ b/lib/pkgconfig/MagickCore-7.Q16HDRI.pc @@ -0,0 +1,15 @@ +prefix=/root/package +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include/ImageMagick-7 +includearchdir=/root/package/include/ImageMagick-7 +libname=MagickCore-7.Q16HDRI +moduledir=${exec_prefix}/lib/ImageMagick-7.0.7/modules-Q16HDRI + +Name: MagickCore +Description: MagickCore - C API for ImageMagick (ABI Q16HDRI) +URL: https://github.com/ImageMagick +Version: 7.0.7 +Cflags: -I${includearchdir} -I${includedir} -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 +Libs: -L${libdir} -l${libname} +Libs.private: -L${libdir} -l${libname} -llcms2 -ltiff -lfreetype -lraqm -lfreetype -ljpeg -llqr-1 -lglib-2.0 -lpng16 -lz -lfontconfig -lfreetype -lXext -lX11 -llzma -lbz2 -lxml2 -lz -lm -lgomp -lm diff --git a/lib/pkgconfig/MagickCore.pc b/lib/pkgconfig/MagickCore.pc new file mode 100644 index 0000000..d10c1d4 --- /dev/null +++ b/lib/pkgconfig/MagickCore.pc @@ -0,0 +1,15 @@ +prefix=/root/package +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include/ImageMagick-7 +includearchdir=/root/package/include/ImageMagick-7 +libname=MagickCore-7.Q16HDRI +moduledir=${exec_prefix}/lib/ImageMagick-7.0.7/modules-Q16HDRI + +Name: MagickCore +Description: MagickCore - C API for ImageMagick (ABI Q16HDRI) +URL: https://github.com/ImageMagick +Version: 7.0.7 +Cflags: -I${includearchdir} -I${includedir} -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 +Libs: -L${libdir} -l${libname} +Libs.private: -L${libdir} -l${libname} -llcms2 -ltiff -lfreetype -lraqm -lfreetype -ljpeg -llqr-1 -lglib-2.0 -lpng16 -lz -lfontconfig -lfreetype -lXext -lX11 -llzma -lbz2 -lxml2 -lz -lm -lgomp -lm diff --git a/lib/pkgconfig/MagickWand-7.Q16HDRI.pc b/lib/pkgconfig/MagickWand-7.Q16HDRI.pc new file mode 100644 index 0000000..c67db92 --- /dev/null +++ b/lib/pkgconfig/MagickWand-7.Q16HDRI.pc @@ -0,0 +1,15 @@ +prefix=/root/package +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include/ImageMagick-7 +includearchdir=/root/package/include/ImageMagick-7 +libname=MagickWand-7.Q16HDRI + +Name: MagickWand +Description: MagickWand - C API for ImageMagick (ABI Q16HDRI) +URL: https://github.com/ImageMagick +Version: 7.0.7 +Requires: MagickCore +Cflags: -I${includearchdir} -I${includedir} -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 +Libs: -L${libdir} -l${libname} +Libs.private: -L${libdir} -l${libname} -llcms2 -ltiff -lfreetype -lraqm -lfreetype -ljpeg -llqr-1 -lglib-2.0 -lpng16 -lz -lfontconfig -lfreetype -lXext -lX11 -llzma -lbz2 -lxml2 -lz -lm -lgomp -lm diff --git a/lib/pkgconfig/MagickWand.pc b/lib/pkgconfig/MagickWand.pc new file mode 100644 index 0000000..c67db92 --- /dev/null +++ b/lib/pkgconfig/MagickWand.pc @@ -0,0 +1,15 @@ +prefix=/root/package +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include/ImageMagick-7 +includearchdir=/root/package/include/ImageMagick-7 +libname=MagickWand-7.Q16HDRI + +Name: MagickWand +Description: MagickWand - C API for ImageMagick (ABI Q16HDRI) +URL: https://github.com/ImageMagick +Version: 7.0.7 +Requires: MagickCore +Cflags: -I${includearchdir} -I${includedir} -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 +Libs: -L${libdir} -l${libname} +Libs.private: -L${libdir} -l${libname} -llcms2 -ltiff -lfreetype -lraqm -lfreetype -ljpeg -llqr-1 -lglib-2.0 -lpng16 -lz -lfontconfig -lfreetype -lXext -lX11 -llzma -lbz2 -lxml2 -lz -lm -lgomp -lm diff --git a/share/ImageMagick-7/english.xml b/share/ImageMagick-7/english.xml new file mode 100644 index 0000000..69e6ddb --- /dev/null +++ b/share/ImageMagick-7/english.xml @@ -0,0 +1,1691 @@ + + + + + + + + + +]> + + + + + + unable to open image + + + unable to open file + + + unable to read blob + + + unable to write blob + + + unrecognized image format + + + zero-length blob not permitted + + + + + + + cache resources exhausted + + + incompatible API + + + no pixels defined in cache + + + pixel cache is not open + + + pixels are not authentic + + + unable to clone cache + + + unable to extend cache + + + unable to get cache nexus + + + unable to open pixel cache + + + unable to persist pixel cache + + + unable to read pixel cache + + + unable to write pixel cache + + + + + unable to acquire cache view + + + unable to extend pixel cache + + + + + + + colormap type not supported + + + colorspace model is not supported + + + compression not supported + + + data encoding scheme is not supported + + + data storage type is not supported + + + delta-PNG is not supported + + + encrypted WPG image file not supported + + + fractal compression not supported + + + image column or row size is not supported + + + image does not have a clip mask + + + image does not have an alpha channel + + + image does not have a EXIF thumbnail + + + image is not tiled + + + irregular channel geometry not supported + + + JNG compression not supported + + + JPEG compression not supported + + + JPEG embedding failed + + + location type is not supported + + + map storage type is not supported + + + multi-dimensional matrices are not supported + + + multiple record list not supported + + + no bitmap on clipboard + + + no APP1 data is available + + + no 8BIM data is available + + + no color profile is available + + + no data returned + + + no image vector graphics; unable to generate SVG + + + no IPTC profile available + + + number of images is not supported + + + only continuous tone picture supported + + + only level zero files Supported + + + PNG compression not supported + + + RLE compression not supported + + + unable to copy profile + + + unable to create bitmap + + + unable to create a DC + + + unable to decompress image + + + unable to write MPEG parameters + + + unable to zip-compress image + + + ZIP compression not supported + + + + + exif profile size exceeds limit and will be truncated + + + lossless to lossy JPEG conversion + + + + + + + include element nested too deeply + + + + + unable to access configure file + + + unable to open module file + + + + + + + + an error has occurred reading from file + + + an error has occurred writing to file + + + cipher support not enabled + + + colormap exceeded 256 colors + + + corrupt image + + + file format version mismatch + + + image depth not supported + + + image file does not contain any image data + + + image type not supported + + + improper image header + + + insufficient image data in file + + + invalid colormap index + + + invalid pixel + + + length and filesize do not match + + + maximum channels exceeded + + + missing image channel + + + negative or zero image size + + + non OS2 BMP header size less than 40 + + + not enough pixel data + + + not enough tiles found in level + + + too much image data in file + + + static planes value not equal to 1 + + + unable to read extension block + + + unable to read image header + + + unable to read image data + + + unable to runlength decode image + + + unable to uncompress image + + + unexpected end-of-file + + + unexpected sampling factor + + + unknown pattern type + + + unrecognized alpha channel option + + + unrecognized bits per pixel + + + unrecognized compression + + + unrecognized number of colors + + + + + unable to persist key + + + + + insufficient image data in file + + + length and filesize do not match + + + corrupt PCD image, skipping to sync byte + + + + + + + + delegate failed + + + failed to compute output size + + + failed to render file + + + failed to scan file + + + no tag found + + + PCL delegate failed + + + Postscript delegate failed + + + unable to create image + + + unable to decode image file + + + unable to encode image file + + + unable to initialize FPX library + + + unable to initialize WMF library + + + unable to manage JP2 stream + + + unable to read aspect ratio + + + unable to read summary info + + + unable to set affine matrix + + + unable to set aspect ratio + + + unable to set color twist + + + unable to set contrast + + + unable to set filtering value + + + unable to set image title + + + unable to set JPEG level + + + unable to set region of interest + + + unable to set summary info + + + unable to write SVG format + + + XPS delegate failed + + + + + + + already pushing pattern definition + + + non-conforming drawing primitive definition + + + not a relative URL + + + not currently pushing pattern definition + + + segment stack overflow + + + too many bezier coordinates + + + unable to print + + + unbalanced graphic context push-pop + + + URL not found + + + + + + + + an error has occurred reading from file + + + unable to create temporary file + + + unable to open file + + + unable to write file + + + + + + + + angle is discontinuous + + + colormapped image required + + + color separated image required + + + color profile operates on another colorspace + + + image depth not supported + + + image morphology differs + + + image list is required + + + image size differs + + + images too dissimilar + + + left and right image sizes differ + + + negative or zero image size + + + no images were found + + + no images were loaded + + + too many cluster + + + unable to create color transform + + + width or height exceeds limit + + + + + associate profile with image, a source and destination color profile required for transform + + + + + + + filter failed + + + + + + + + delegate library support not built-in + + + no decode delegate for this image format + + + no encode delegate for this image format + + + + + delegate library support not built-in + + + FreeType library is not available + + + LCMS color profile library is not available + + + no encode delegate for this image format + + + + + + + + image coder signature mismatch + + + image filter signature mismatch + + + unable to load module + + + unable to register image format + + + + + unable to initialize module loader + + + + + unable to close module + + + + + + + + not authorized + + + + + + + unable to get registry ID + + + unable to set registry + + + + + + + + list length exceeds limit + + + memory allocation failed + + + pixel cache allocation failed + + + too many exceptions + + + too many objects + + + unable to acquire string + + + unable to allocate colormap + + + unable to convert font + + + unable to create colormap + + + unable to dither image + + + unable to clone package info + + + unable to get package info + + + + + time limit exceeded + + + unable to allocate dash pattern + + + unable to allocate derivates + + + unable to allocate gamma map + + + unable to allocate image + + + unable to allocate image pixels + + + unable to destroy semaphore + + + unable to instantiate semaphore + + + unable to allocate string + + + Memory allocation failed + + + unable to concatenate string + + + unable to convert text + + + unable to create colormap + + + unable to clone image + + + unable to display image + + + unable to escape string + + + unable to interpret MSL image + + + unable to lock semaphore + + + unable to unlock semaphore + + + + + memory allocation failed + + + + + + + + font substitution required + + + unable to get type metrics + + + unable to initialize freetype library + + + unable to read font + + + unrecognized font encoding + + + + + unable to read font + + + + + + + image does not contain the stream geometry + + + no stream handler is defined + + + pixel cache is not open + + + + + + + invalid colormap index + + + zero region size + + + unable to open file + + + wand quantum depth does not match that of the core API + + + wand contains no images + + + wand contains no iterators + + + + + + + color is not known to server + + + no window with specified ID exists + + + standard Colormap is not initialized + + + unable to connect to remote display + + + unable to create bitmap + + + unable to create colormap + + + unable to create pixmap + + + unable to create property + + + unable to create standard colormap + + + unable to display image info + + + unable to get property + + + unable to get Standard Colormap + + + unable to get visual + + + unable to grab mouse + + + unable to load font + + + unable to match visual to Standard Colormap + + + unable to open X server + + + unable to read X window attributes + + + unable to read X window image + + + unrecognized colormap type + + + unrecognized gravity type + + + unrecognized visual specifier + + + + + unable to create X cursor + + + unable to create graphic context + + + unable to create standard colormap + + + unable to create text property + + + unable to create X window + + + unable to create X image + + + unable to create X pixmap + + + unable to display image + + + unable to get visual + + + unable to get pixel info + + + unable to load font + + + unable to make X window + + + unable to open X server + + + unable to view fonts + + + + + using default visual + + + unable to get visual + + + + + + + + add noise to image + + + + + append image sequence + + + + + assign image colors + + + + + average image sequence + + + + + chop image + + + + + classify image colors + + + + + replace color in image + + + + + colorize image + + + + + combine image + + + + + contrast-stretch image + + + + + convolve image + + + + + crop image + + + + + decode image + + + + + despeckle image + + + + + distort image + + + + + dither image colors + + + + + dull image contrast + + + + + encode image + + + + + equalize image + + + + + flip image + + + + + flop image + + + + + add frame to image + + + + + fx image + + + + + gamma correct image + + + + + compute image histogram + + + + + implode image + + + + + level image + + + + + load image + + + load images + + + + + magnfiy image + + + + + filter image with neighborhood ranking + + + + + minify image + + + + + modulate image + + + + + mogrify image + + + + + montage image + + + + + morph image sequence + + + + + mosaic image + + + + + negate image + + + + + oil paint image + + + + + set opaque color in image + + + + + plasma image + + + + + preview image + + + + + raise image + + + + + recolor color image + + + + + reduce image colors + + + + + reduce the image noise + + + + + render image + + + + + resize image + + + + + RGB transform image + + + + + roll image + + + + + rotate image + + + + + sample image + + + + + save image + + + save images + + + + + scale image + + + + + segment image + + + + + extract a channel from image + + + + + sepia-tone image + + + + + shade image + + + + + sharpen image + + + + + sharpen image contrast + + + + + sigmoidal contrast image + + + + + solarize image + + + + + splice image + + + + + spread image + + + + + stegano image + + + + + stereo image + + + + + swirl image + + + + + texture image + + + + + threshold image + + + + + tile image + + + + + tint image + + + + + transform RGB image + + + + + set transparent color in image + + + + + wave image + + + + + write image + + + + + x shear image + + + + + y shear image + + + + diff --git a/share/ImageMagick-7/francais.xml b/share/ImageMagick-7/francais.xml new file mode 100644 index 0000000..dbe5b47 --- /dev/null +++ b/share/ImageMagick-7/francais.xml @@ -0,0 +1,1673 @@ + + + + + + + + + +]> + + + + + + impossible d'ouvrir l'image + + + impossible d'ouvrir le fichier + + + impossible de lire un blob + + + impossible d'écrire un blob + + + format d'image non reconnu + + + blob de taille nulle non autorisé + + + + + + + Ressources du cache épuisées + + + incompatible API + + + pas de pixels définis dans le cache + + + cache pixels non ouvert + + + pixels are not authentic + + + impossible de clôner le cache + + + impossible d'étendre le cache + + + impossible de récupérer le nexus du cache + + + impossible d'ouvrir le cache pixels + + + impossible de rendre persistant le cache pixels + + + impossible de lire le cache pixels + + + impossible d'écrire le cache pixels + + + + + échec allocation cache view + + + impossible extend le cache pixels + + + + + + + table de couleurs non supportée + + + espace colorimétrique non supporté + + + schéma d'encodage de données non supporté + + + type de stockage de données non supporté + + + delta-PNG non supporté + + + image WPG encryptée non supportée + + + compression Fractal non supportée + + + nombre de lignes ou de colonnes dans l'image non supporté + + + image sans masque de coupe + + + image sans vignette EXIF + + + l'image n'a pas de canal de transparence + + + l'image n'a pas tiled + + + irregular channel geometry not supported + + + compression JNG non supportée + + + compression JPEG non supportée + + + Échec incorporation JPEG + + + Type d'emplacement non supporté + + + Map storage type is not supported + + + Matrices multi-dimensionnelles non supportées + + + Liste à enregistrements multiples non supportée + + + pas de bitmap dans le presse-papier + + + pas de données APP1 disponibles + + + pas de données 8BIM disponibles + + + pas de profil colorimétrique disponible + + + aucune donnée fournie + + + aucune image définie + + + pas d'image en graphique vectoriel; unable to generate SVG + + + pas de profil IPTC disponible + + + nombre d'images non supporté + + + seules les images à tons continus sont supportées + + + seuls les fichiers de niveau zéro sont supportés + + + compression PNG non supportée + + + compression RLE non supportée + + + impossible de copier le profil + + + impossible de créer la bitmap + + + impossible de créer un DC + + + impossible de décompresser l'image + + + impossible d'écrire les paramètres MPEG + + + impossible de compresser l'image en zip + + + Fichier image RLE non supporté + + + compression ZIP non supportée + + + + + Conversion JPEG sans perte vers JPEG avec perte + + + + + + + trop de niveau d'inclusion d'éléments + + + + + impossible d'accéder au fichier de configuration + + + impossible d'ouvrir le fichier de module + + + + + + + + Une erreur est survenue lors de la lecture du fichier + + + Une erreur est survenue lors de l'écriture dans un fichier + + + cipher support not enabled + + + Table de couleurs a plus que 256 couleurs + + + Image corrompue + + + erreur sur la version du format de fichier + + + profondeur d'image non supportée + + + le fichier image ne contient pas de données d'image + + + type d'image non supporté + + + En-tête d'image incorrect + + + Pas assez de données d'image dans le fichier + + + Index dans la table de couleurs invalide + + + Pixel invalide + + + Longueur et taille du fichier ne correspondent pas + + + maximum de canals dépassent les + + + absence l'image canel + + + Taille d'image négative ou nulle + + + Taille en-tête BMP non-OS2 plus petite que 40 + + + Pas assez de données pixel + + + Pas assez de tuiles trouvées à ce niveau + + + Trop de données d'image dans le fichier + + + Valeur statique des plans différente de 1 + + + impossible de lire le bloc d'extension + + + impossible de lire l'en-tête de l'image + + + impossible de lire les données de l'image + + + impossible de décoder l'image avec « runlength » + + + impossible de décompresser l'image + + + fin de fichier inattendue + + + facteur d'échantillonnage inattendu + + + type de motif inconnu + + + alpha de canal l'option non reconnus + + + bits par pixel non reconnus + + + compression non reconnue + + + nombre de couleurs non reconnu + + + + + impossible de rendre la clé persistante + + + + + pas assez de données d'image dans le fichier + + + Longueur et taille du fichier ne correspondent pas + + + Image PCD corrompue, saut à l'octet de synchronisation + + + + + + + + Échec de la délégation + + + Impossible de calculer la taille en sortie + + + Impossible de générer le fichier + + + Impossible de lire le fichier + + + pas de balise trouvée + + + Échec délégation PCL + + + Échec délégation Postscript + + + impossible de créer l'image + + + impossible de décoder le fichier d'image + + + impossible d'encoder le fichier d'image + + + impossible d'initialiser la librairie FPX + + + impossible d'initialiser la librairie WMF + + + impossible de gérer un flux JP2 + + + impossible de lire le ratio d'aspect + + + impossible de lire le résumé des informations + + + impossible de fixer la matrice affine + + + impossible de fixer le ratio d'aspect + + + impossible de fixer la torsion de couleur + + + impossible de fixer le contraste + + + impossible de fixer la valeur du filtre + + + impossible de fixer le titre de l'image + + + impossible de fixer le niveau JPEG + + + impossible de fixer la zone d'intérêt + + + impossible de fixer le résumé des informations + + + impossible d'écrire au format SVG + + + Échec délégation XPS + + + + + + + Définition de motif déjà fixée + + + Définition de primitive de dessin non conforme + + + URL non relative + + + Actuellement pas de définition de motif + + + Débordement pile de segments + + + Trop de coordonnées bézier + + + impossible d'imprimer + + + erreur d'imbrication des contextes graphiques + + + URL inaccessible + + + + + + + + an error has occurred reading from file + + + impossible de créer un fichier temporaire + + + impossible d'ouvrir le fichier + + + impossible d'enregistrer le fichier + + + + + + + + filter failed + + + + + + + angle discontinu + + + Image avec table de couleurs requise + + + Image avec couleurs séparées requise + + + Le profil colorimétrique ne peut fonctionner que dans un autre espace colorimétrique + + + différences dans les espaces colorimétriques de l'image + + + profondeur d'image non supportée + + + différences dans la morphology de l'image + + + une liste d'images est requise + + + différences dans la taille de l'image + + + images too dissimilar + + + différences dans les tailles des images gauche et droite + + + Taille d'image négative ou nulle + + + aucune image trouvée + + + aucune image chargée + + + trop de grappes + + + impossible de créer la transformation de couleurs + + + Largeur ou hauteur dépassent les limites + + + + + associate profile with image, a source and destination color profile required for transform + + + + + + + + delegate library support not built-in + + + pas de délégué pour décoder ce format d'image + + + pas de délégué pour encoder ce format d'image + + + + + delegate library support not built-in + + + pas de délégué pour encoder ce format d'image + + + + + + + + image coder signature mismatch + + + image filter signature mismatch + + + impossible de charger le module + + + impossible d'enregister le format d'image + + + + + impossible d'initialiser le chargeur de module + + + + + impossible de fermer le module + + + + + + + + not authorized + + + + + + + impossible de trouver l'identifiant de registre + + + impossible de fixer le registre + + + + + + + + list length exceeds limit + + + Échec allocation mémoire + + + Échec allocation du cache pixel + + + too many exceptions + + + too many objects + + + échec acquisition de la chaine + + + échec allocation table de couleurs + + + échec conversion police de caractères + + + échec création table de couleurs + + + échec tramage de l'image + + + impossible de cloner les informations du paquet + + + impossible de récupérer les informations du paquet + + + + + time limit exceeded + + + impossible d'allouer le motif de traits + + + échec d'allocation des dérivées + + + échec allocation table gamma + + + échec allocation image + + + échec allocation pixels de l'image + + + échec allocation informations sémaphore + + + échec allocation chaine + + + Échec allocation mémoire + + + impossible de concatener la chaine + + + impossible de convertir le texte + + + impossible de créer la table de couleurs + + + impossible de cloner l'image + + + impossible d'afficher l'image + + + impossible de rendre la chaine compatible + + + impossible d'interpréter l'image MSL + + + + + échec allocation mémoire + + + + + + + + substitution de police de caractères nécessaire + + + impossible de déterminer le type de métriques + + + impossible d'initialiser la librairie freetype + + + impossible de lire la police de caractères + + + encodage de la police de caractères non reconnu + + + + + impossible de lire la police de caractères + + + + + + + l'image de contient pas la géométrie du flux + + + pas de gestionnaire de flux défini + + + Cache pixel non ouvert + + + + + + + index invalide dans la table de couleurs + + + région de taille nulle + + + impossible d'ouvrir le fichier + + + la profondeur du quantum pour Wand ne correspond pas à celle de l'API principale + + + Pas d'images pour Wand + + + Pas d'itérateur pour Wand + + + + + + + couleur inconnue du serveur + + + aucune fenêtre avec l'ID spécifié + + + la table de couleurs standard n'est pas initialisée + + + impossible de se connecter au display distant + + + impossible de créer la bitmap + + + impossible de créer la table de couleurs + + + impossible de créer la pixmap + + + impossible de créer la propriété + + + impossible de créer la table de couleurs standard + + + impossible d'afficher les informations de l'image + + + impossible de récupérer la propriété + + + impossible de récupérer la table de couleurs standard + + + impossible de récupérer le visuel + + + unable to grab mouse + + + impossible de charger la police de caractères + + + impossible d'établir la correspondance entre le visuel et la table de couleurs standard + + + impossible de se connecter au serveur X + + + impossible de lire les attributs de la fenêtre X + + + impossible de lire l'image de la fenêtre X + + + type de table de couleurs non reconnnu + + + type de gravité non reconnu + + + spécification de visuel non reconnue + + + + + impossible de créer le curseur X + + + impossible de créer le contexte graphique + + + impossible de créer la table de couleurs standard + + + impossible de créer le propriété texte + + + impossible de créer la fenêtre X + + + impossible de créer l'image X + + + impossible de créer la pixmap X + + + impossible d'afficher l'image + + + impossible de récupérer le visuel + + + impossible de récupérer les informations de pixel + + + impossible de charger la police de caractères + + + impossible de créer la fenêtre X + + + impossible de se connecter au serveur X + + + impossible d'afficher les polices de caractères + + + + + utilisation du visuel par défaut + + + impossible de récupérer le visuel + + + + + + + + Ajouter du bruit à l'image + + + + + Ajouter à la séquence d'images + + + + + Affecter les couleurs de l'image + + + + + Moyenner la séquence d'images + + + + + Cisailler l'image + + + + + Classifier les couleurs de l'image + + + + + Remplacer une couleur dans l'image + + + + + Coloriser l'image + + + + + Combiner l'image + + + + + Contrast-stretch l'image + + + + + Convolution de l'image + + + + + Couper une zone rectangulaire de l'image + + + + + Décoder l'image + + + + + Flou intérieur de l'image + + + + + Distortion de l'image + + + + + Tramer les couleurs de l'image + + + + + Réduire le brillant du contraste de l'image + + + + + encode l'image + + + + + Egaliser l'image + + + + + Réflection verticale de l'image + + + + + Réflection horizontale de l'image + + + + + Ajouter un cadre à l'image + + + + + Appliquer une expression mathématique à l'image + + + + + Correction gamma de l'image + + + + + Calculer l'histogramme de l'image + + + + + Condenser les pixels de l'image autour du centre + + + + + Ajuster le niveau de contraste de l'image + + + + + Charger l'image + + + Charger les images + + + + + Magnfiy image + + + + + Filter image with neighborhood ranking + + + + + Minify image + + + + + Modulate image + + + + + Mogrify image + + + + + Montage image + + + + + Morphing de la séquence d'images + + + + + Mosaic image + + + + + Negate image + + + + + Effet peinture à l'huile pour l'image + + + + + Fixer la couleur opage dans l'image + + + + + Plasma image + + + + + Aperçu de l'image + + + + + Raise image + + + + + Re-coloriser une image couleur + + + + + Réduire le nombre de couleurs de l'image + + + + + Réduire le bruit de l'image + + + + + Render image + + + + + Redimensionner l'image + + + + + Transformation RVB de l'image + + + + + Roll image + + + + + Rotation de l'image + + + + + Sample image + + + + + Enregistrer l'image + + + Enregistrer les images + + + + + Échelle de l'image + + + + + Segmenter l'image + + + + + Extraire un canal de l'image + + + + + Effet ton sépia pour l'image + + + + + Ombrer l'image + + + + + Augmenter la netteté de l'image + + + + + Augmenter la netteté du contraste de l'image + + + + + Sigmoidal contrast image + + + + + Effet solariation pour l'image + + + + + Splice image + + + + + Spread image + + + + + Effet stégano pour l'image + + + + + Effet stéréo pour l'image + + + + + Swirl image + + + + + Texturer l'image + + + + + Appliquer un seuil à l'image + + + + + Effet tuiles pour l'image + + + + + Tint image + + + + + Transformation RVB de l'image + + + + + Choisir la couleur transparente dans l'image + + + + + Effet vagues pour l'image + + + + + write image + + + + + X Shear image + + + + + Y Shear image + + + + diff --git a/share/ImageMagick-7/locale.xml b/share/ImageMagick-7/locale.xml new file mode 100644 index 0000000..d593fba --- /dev/null +++ b/share/ImageMagick-7/locale.xml @@ -0,0 +1,48 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/ChangeLog b/share/doc/ImageMagick-7/ChangeLog new file mode 100644 index 0000000..cd237e4 --- /dev/null +++ b/share/doc/ImageMagick-7/ChangeLog @@ -0,0 +1,1043 @@ +2018-05-21 7.0.7-35 Cristy + * Release ImageMagick version 7.0.7-35, GIT revision 14356:13507412c:20180521. + +2018-05-21 7.0.7-35 + * Fixed memory corruption for MVG paths. + +2018-05-20 7.0.7-34 Cristy + * Release ImageMagick version 7.0.7-34, GIT revision 14348:ac9ff6ba1:20180520. + +2018-05-20 7.0.7-34 Dirk Lemstra + * Added support for reading eXIf chunks to the PNG coder. + +2018-05-19 7.0.7-34 + * Fixed numerous use of uninitialized values, integer overflow, memory + exceeded, and timeouts (credit to OSS Fuzz). + * Improved clip / composite mask handling. + +2018-05-16 7.0.7-33 Cristy + * Release ImageMagick version 7.0.7-33, GIT revision 14326:58c2e4972:20180516. + +2018-05-03 7.0.7-33 + * Restore SetImageAlpha() behavior. + * Fix -clip and -mask options. + +2018-05-13 7.0.7-32 Cristy + * Release ImageMagick version 7.0.7-32, GIT revision 14307:f61f674e3:20180513. + +2018-05-03 7.0.7-31 + * Fixed numerous use of uninitialized values, integer overflow, memory + exceeded, and timeouts (credit to OSS Fuzz). + +2018-05-01 7.0.7-30 Cristy + * Release ImageMagick version 7.0.7-30, GIT revision 14242:730f1d1d3:20180501. + +2018-05-01 7.0.7-30 + * Missing break when checking "compliance" element. + +2018-04-30 7.0.7-29 Cristy + * Release ImageMagick version 7.0.7-29, GIT revision 14225:41edbdcea:20180430. + +2018-03-26 7.0.7-29 + * Fixed numerous use of uninitialized values, integer overflow, memory + exceeded, and timeouts (credit to OSS Fuzz). + +2018-03-24 7.0.7-28 Cristy + * Release ImageMagick version 7.0.7-28, GIT revision 23615:edd71782e:20180325. + +2018-03-21 7.0.7-28 + * Fixed numerous use of uninitialized values, integer overflow, memory + exceeded, and timeouts (credit to OSS Fuzz). + +2018-03-18 7.0.7-27 Cristy + * Release ImageMagick version 7.0.7-27, GIT revision 23466:734b146df:20180318. + +2018-03-17 7.0.7-27 + * Fixed numerous use of uninitialized values, integer overflow, memory + exceeded, and timeouts (credit to OSS Fuzz). + +2018-03-11 7.0.7-26 Cristy + * Release ImageMagick version 7.0.7-26, GIT revision 23344:7a03766ef:20180311. + +2018-03-10 7.0.7-26 + * Fixed numerous use of uninitialized values, integer overflow, memory + exceeded, and timeouts (credit to OSS Fuzz). + +2018-03-04 7.0.7-25 Cristy + * Release ImageMagick version 7.0.7-25, GIT revision 23177:17a986472:20180304. + +2018-03-04 7.0.7-25 Cristy + * Fixed numerous use of uninitialized values, integer overflow, memory + exceeded, and timeouts (credit to OSS Fuzz). + +2018-02-25 7.0.7-24 Cristy + * Release ImageMagick version 7.0.7-24, GIT revision 23079:7ccb76178:20180225. + +2018-02-19 7.0.7-24 Cristy + * Do not refer to page in OptimizeLayerFrames (reference + https://github.com/ImageMagick/ImageMagick/pull/987). + * PerlMagick unit tests pass again. + * Fixed numerous use of uninitialized values, integer overflow, + memory exceeded, and timeouts (credit to OSS Fuzz). + +2018-02-18 7.0.7-23 Cristy + * Release ImageMagick version 7.0.0-23, GIT revision 22969:c6b3a22b0:20180218. + +2018-02-09 7.0.7-23 Dirk Lemstra + * Add support for reading the HEIC image format to the Windows build. + +2018-01-23 7.0.7-23 Cristy + * Fixed numerous use of uninitialized values, integer overflow, + memory exceeded, and timeouts (credit to OSS Fuzz). + * Add list-length policy to limit the maximum image sequence length. + +2018-01-22 7.0.7-22 Cristy + * Release ImageMagick version 7.0.0-22, GIT revision 22391:e8be814f1:20180122. + +2018-01-06 7.0.7-22 Cristy + * 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 + * Release ImageMagick version 7.0.0-21, GIT revision 22168:a91afc45b:20180106. + +2018-01-06 7.0.7-21 Dirk Lemstra + * Fix some enum values in the OpenCL code. + +2018-01-06 7.0.7-20 Cristy + * Release ImageMagick version 7.0.7-20, GIT revision 22161:33a04d3e5:20180105. + +2018-01-05 7.0.7-20 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + +2018-01-01 7.0.7-19 Cristy + * Release ImageMagick version 7.0.7-19, GIT revision 22133:977fe08bf:20180101. + +2017-12-29 7.0.7-19 Cristy + * Check for webpmux library version 0.4.4 (reference + https://github.com/ImageMagick/ImageMagick/issues/896). + +2017-12-26 7.0.7-18 Cristy + * Release ImageMagick version 7.0.7-18, GIT revision 22096:ad4bdeb40:20171228. + +2017-12-28 7.0.7-18 Cristy + * Fix error reading from pipe under Windows (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=33288). + +2017-12-26 7.0.7-17 Cristy + * Release ImageMagick version 7.0.7-17, GIT revision 22093:9caea323b:20171227. + +2017-12-26 7.0.7-17 Cristy + * Fix heap use after free error (reference + https://github.com/ImageMagick/ImageMagick/issues/918). + +2017-12-24 7.0.7-16 Cristy + * Release ImageMagick version 7.0.7-16, GIT revision 22038:e55dc7626:20171225. + +2017-12-18 7.0.7-16 Cristy + * Fix error reading multi-layer XCF image file. + * Fix possible stack overflow in WEBP reader (reference + https://github.com/ImageMagick/ImageMagick/issues/907) + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + +2017-12-16 7.0.7-15 Cristy + * Release ImageMagick version 7.0.7-15, GIT revision 21924:30cb31746:20171216. + +2017-12-08 7.0.7-15 Cristy + * Overall standard deviation is the average of each pixel channel (reference + https://www.imagemagick.org/discourse-server/viewforum.php?f=3). + * Update to the latest ImageMagick documentation. + +2017-12-05 7.0.7-14 Cristy + * Release ImageMagick version 7.0.7-14, GIT revision 21855:dc73b2aba:20171205. + +2017-11-30 7.0.7-14 Cristy + * Support Stereo composite operator. + * Fix build failure with --without-modules (reference + https://github.com/ImageMagick/ImageMagick/issues/890). + +2017-11-30 7.0.7-13 Cristy + * Release ImageMagick version 7.0.7-13, GIT revision 21823:72cb0fd0c:20171130. + +2017-11-30 7.0.7-13 Cristy + * Fix build failure with libraw 0.14.8 (reference + https://github.com/ImageMagick/ImageMagick/issues/888). + +2017-11-29 7.0.7-12 Cristy + * Release ImageMagick version 7.0.7-12, GIT revision 21814:5ef2c5a67:20171129. + +2017-11-12 7.0.7-12 Cristy + * The -tint option no longer munges the alpha channel (reference + http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=33070). + * Don't delete in-memory blob when reading an image (reference + https://github.com/ImageMagick/ImageMagick/issues/886). + * Support HDRI color profile management. + +2017-11-11 7.0.7-11 Cristy + * Release ImageMagick version 7.0.7-11, GIT revision 21635:0447c6b46:20171111. + +2017-11-05 7.0.7-10 Cristy + * Release ImageMagick version 7.0.7-10, GIT revision 21612:36e2aabfd:20171105. + +2017-11-03 7.0.7-10 Dirk Lemstra + * Fixed a problem with resource bookkeeping in AcquireMatrixInfo(). + +2017-10-30 7.0.7-9 Cristy + * Release ImageMagick version 7.0.7-9, GIT revision 21580:2682a311e:20171031. + +2017-10-20 7.0.7-9 Cristy + * Encode JSON control characters (reference + https://github.com/ImageMagick/ImageMagick/issues/848). + +2017-10-27 7.0.7-9 Dirk Lemstra + * Added support for reading mipmaps in dds images (reference + https://github.com/ImageMagick/ImageMagick/issues/845). + +2017-10-15 7.0.7-8 Cristy + * Release ImageMagick version 7.0.7-8, GIT revision 21507:63ffc9878:20171015. + +2017-10-08 7.0.7-8 Cristy + * Return expected results for a percent 0 -chop option argument (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32806). + * Tweaks to OpenMP support within ImageMagick. + +2017-10-07 7.0.7-7 Cristy + * Release ImageMagick version 7.0.7-7, GIT revision 21432:29003eeed:20171007. + +2017-10-06 7.0.7-7 Cristy + * Correct handling of GIF transparency (reference + https://github.com/ImageMagick/ImageMagick/issues/831). + +2017-10-04 7.0.7-6 Cristy + * Release ImageMagick version 7.0.7-6, GIT revision 21426:0a1cb507b:20171004. + +2017-10-03 7.0.7-6 Cristy + * Reset the magick_list_initialized boolean when needed (reference + https://github.com/ImageMagick/ImageMagick/pull/826). + +2017-10-01 7.0.7-5 Cristy + * Release ImageMagick version 7.0.7-5, GIT revision 21382:3846f9d97:20171001. + +2017-09-28 7.0.7-5 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + * Support URW-base35 fonts. + +2017-09-26 7.0.7-5 Glenn Randers-Pehrson + * Removed "ping_preserve_iCCP=MagickTrue;" statement that was inadvertently + added to coders/png.c (reference + http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32771). + +2017-09-23 7.0.7-4 Cristy + * Release ImageMagick version 7.0.7-4, GIT revision 21265:bdbc14590:20170923. + +2017-09-23 7.0.7-4 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/pull/763). + +2017-09-17 7.0.7-3 Cristy + * Release ImageMagick version 7.0.7-3, GIT revision 21202:6e6907ac7:20170917. + +2017-09-17 7.0.7-3 ADLab of Venustech + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/pull/763). + +2017-09-15 7.0.7-3 Glenn Randers-Pehrson + * Stop potential leaks in the JNG decoder (reference: + https://github.com/ImageMagick/ImageMagick/issues/760). + * Maximum valid hour is 23, not 24, in the PNG tIME chunk, and maximum + valid minute is 59, not 60. + +2017-09-12 7.0.7-2 Cristy + * Release ImageMagick version 7.0.7-2, GIT revision 21089:4e46ad9dd:20170912. + +2017-09-11 7.0.7-2 Glenn Randers-Pehrson + * Use signed integer arithmetic to calculate timezone corrections (reference + https://github.com/ImageMagick/ImageMagick/issues/685). + +2017-09-09 7.0.7-1 Cristy + * Release ImageMagick version 7.0.7-1, GIT revision 21065:ab2194121:20170909. + +2017-09-09 7.0.7-1 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + +2017-09-05 7.0.7-1 Dirk Lemstra + * Added -define tiff:write-layers=true to add support for writing layered + tiff files. + +2017-09-03 7.0.7-0 Cristy + * Release ImageMagick version 7.0.7-0, GIT revision 20996:2f8ac2203:20170903. + +2017-08-28 7.0.7-0 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + * Don't overwrite symbolic links when the shred policy is enabled. + +2017-08-27 7.0.6-10 Cristy + * Release ImageMagick version 7.0.6-10, GIT revision 20920:9940c367a:20170827. + +2017-08-27 7.0.6-10 Cristy + * Support -metric ssim, structual similarity index. + +2017-08-26 7.0.6-10 Dirk Lemstra + * Fixed thread safety issue inside the pango and librsvg decoder + (reference: https://github.com/dlemstra/Magick.NET/issues/91). + +2017-08-20 7.0.6-9 Cristy + * Release ImageMagick version 7.0.6-9, GIT revision 20860:3f307d8ad:20170820. + +2017-08-18 7.0.6-9 Glenn Randers-Pehrson + * Fixed bug with writing tIME chunk when timezone has a negative offset + (reference: https://github.com/ImageMagick/ImageMagick/issues/685) + +2017-08-18 7.0.6-8 Cristy + * Release ImageMagick version 7.0.6-8, GIT revision 20838:e2eb79427:20170818. + +2017-08-14 7.0.6-7 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + * Support CubicSpline resize filter. Define the lobes with the + -define filter:lobes={2,3,4} (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=32506). + * Prevent assertion failure when creating PDF thumbnail (reference + https://github.com/ImageMagick/ImageMagick/issues/674). + +2017-08-12 7.0.6-7 Cristy + * Release ImageMagick version 7.0.6-7, GIT revision 20799:0db4d8a16:20170812. + +2017-08-12 7.0.6-7 Cristy + * Improve EPS aliasing (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32497). + +2017-08-11 7.0.6-7 Dirk Lemstra + * Added a new option called 'dds:fast-mipmaps' (reference + https://github.com/ImageMagick/ImageMagick/issues/558) + * The mipmaps of a dds image can now be created from a list of images with + -define dds:mipmaps=fromlist (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=30236). + +2017-08-10 7.0.6-6 Cristy + * Release ImageMagick version 7.0.6-6, GIT revision 20775:061d0fa25:20170810. + +2017-08-10 7.0.6-6 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + +2017-08-10 7.0.6-6 Glenn Randers-Pehrson + * tests/validate.c: Show the reason for failures in the test logs, + if available. + +2017-08-03 7.0.6-6 Glenn Randers-Pehrson + * Put UTC time in the PNG tIME chunk instead of local time (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32447). + +2017-08-02 7.0.6-5 Cristy + * Release ImageMagick version 7.0.6-5, GIT revision 20715:26b28d50a:20170802. + +2017-08-01 7.0.6-5 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + +2017-07-29 7.0.6-5 Glenn Randers-Pehrson + * Properly set image->colorspace in the PNG decoder (previously + it was setting image->gamma, but only setting image->colorspace + for grayscale and gray-alpha images. Reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32418). + * Fix improper use of NULL in the JNG decoder (CVE-2017-11750, Reference + https://github.com/ImageMagick/ImageMagick/issues/632). + * Added "-define png:ignore-crc" option to PNG decoder. 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". + +2017-07-29 7.0.6-5 Cristy + * Off by one error for gradient coder (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32416), + https://github.com/ImageMagick/ImageMagick/issues/612). + +2017-07-28 7.0.6-4 Cristy + * Release ImageMagick version 7.0.6-4, GIT revision 20657:4e81160d6:20170728. + +2017-07-24 7.0.6-4 Cristy + * YUV coder no longer renders streaks (reference + https://github.com/ImageMagick/ImageMagick/issues/612). + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues) including + https://github.com/ImageMagick/ImageMagick/issues/618 (CVE-2017-12676). + * coders/png.c: Initialized quantum_scanline and quantum_info + to prevent a bad free (reference + https://github.com/ImageMagick/ImageMagick/issues/621). + +2017-07-25 7.0.6-4 Glenn Randers-Pehrson + * Removed write_chunk_from_profile() from coders/png.c because it has + not worked at least since version 6.7.6. + * Removed many redundant checks before RelinquishMagickMemory(), which + is safe to call with a NULL argument. + * Added experimental PNG orNT chunk, to store image->orientation. + * Removed vpAg chunk write support (we are now writing caNv instead). + +2017-07-24 7.0.6-3 Cristy + * Release ImageMagick version 7.0.6-3, GIT revision 20598:cc9c43b44:20170724. + +2017-07-23 7.0.6-3 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + +2017-07-23 7.0.6-3 Glenn Randers-Pehrson + * Fix memory leaks when reading a malformed JNG image: + https://github.com/ImageMagick/ImageMagick/issues/600 (CVE-2017-13141), + https://github.com/ImageMagick/ImageMagick/issues/602 (CVE-2017-12565). + +2017-07-21 7.0.6-2 Cristy + * Release ImageMagick version 7.0.6-2, GIT revision 20549:62fcf3d96:20170721. + +2017-07-19 7.0.6-2 Cristy + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + * The -monochrome option no longer returns a blank canvas (reference + https://github.com/ImageMagick/ImageMagick/issues/594). + * coders/png.c: fixed memory leak of quantum_info (CVE-2017-11539, reference + https://github.com/ImageMagick/ImageMagick/issues/582 + * coders/png.c: fixed NULL dereference when trying to write an empty MNG + (CVE-2017-11522, reference + https://github.com/ImageMagick/ImageMagick/issues/586). + +2017-07-15 7.0.6-2 Glenn Randers-Pehrson + * Added caNv, eXIf, and pHYs to the list of PNG chunks to be removed + by the "-strip" option. + +2017-07-15 7.0.6-1 Cristy + * Release ImageMagick version 7.0.6-1, GIT revision 20447:c2a315e10:20170715. + +2017-07-13 7.0.6-1 Glenn Randers-Pehrson + * Implemented PNG eXIf chunk support. + +2017-07-08 7.0.6-1 Cristy + * Support new -auto-threshold option. OTSU and Triangle methods are + currently supported. Look for the Kapur method in the next release. + * Fixed numerous memory leaks (reference + https://github.com/ImageMagick/ImageMagick/issues). + * Don't use variable float_t / double_t, bump SO (reference + https://github.com/ImageMagick/ImageMagick/issues/510). + * Support DNG images with libraw delegate library. + +2017-07-02 7.0.6-1 Glenn Randers-Pehrson + * Reject PNG file that is too small (under 60 bytes) to contain + a valid image. + * Reject JPEG file that is too small (under 107 bytes) to contain + a valid image. + * Reject JNG file that is too small (under 147 bytes) to contain + a valid image. + +2017-06-22 7.0.6-1 Glenn Randers-Pehrson + * Stop a memory leak in read_user_chunk_callback() (reference + https://github.com/ImageMagick/ImageMagick/issues/517, + CVE 2017-11310). + +2017-06-10 7.0.6-0 Cristy + * Release ImageMagick version 7.0.6-0, GIT revision 20194:b0c0d00:20170611. + +2017-06-10 7.0.6-0 Glenn Randers-Pehrson + * coders/png.c: Accept exIf chunks whose data segment + erroneously begins with "Exif\0\0". + +2017-06-10 7.0.6-0 Cristy + * Introduce SetMagickSecurityPolicy() (MagickCore) and + MagickSetSecurityPolicy() (MagickWand) to set the ImageMagick security + policy (reference https://github.com/ImageMagick/ImageMagick/issues/407). + +2017-06-02 7.0.5-10 Cristy + * Release ImageMagick version 7.0.5-10, GIT revision 20155:38ebc02:20170602. + +2017-06-01 7.0.5-10 Glenn Randers-Pehrson + * Removed experimental PNG zxIF chunk support; the proposal is dead. + +2017-06-01 7.0.5-10 Cristy + * Fix choppy bitmap font rendering (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32071). + * The +opaque option is not longer a noop (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32081). + * Add support for 'hex:' property. + +2017-05-28 7.0.5-9 Cristy + * Release ImageMagick version 7.0.5-9, GIT revision 20113:8b67333:20170528. + +2017-05-28 7.0.5-9 Cristy + * Transient error validating the JPEG-2000 image format (reference + https://github.com/ImageMagick/ImageMagick/issues/501). + * Properly allocate DCM image colormap (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32063). + +2017-05-26 7.0.5-8 Cristy + * Release ImageMagick version 7.0.5-8, GIT revision 20099:870a016:20170526. + +2017-05-23 7.0.5-8 Cristy + * Improper allocation of memory for IM instances without threads (reference + https://github.com/ImageMagick/ImageMagick/issues/497). + * Delete corrupt image from list (reference + https://github.com/ImageMagick/ImageMagick/issues/500). + +2017-05-19 7.0.5-7 Cristy + * Release ImageMagick version 7.0.5-6, GIT revision 20078:7ce2d38:20170519. + +2017-05-15 7.0.5-7 Cristy + * Support various image operators for the compare utility (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=31938). + + 2017-05-12 7.0.5-6 Cristy + * Release ImageMagick version 7.0.5-6, GIT revision 20039:9371904:20170512. + +2017-05-10 7.0.5-6 John Cupitt + * Revise DICOM window and rescale handling (reference + https://github.com/ImageMagick/ImageMagick/pull/484) + +2017-05-06 7.0.5-6 Cristy + * Restore the -alpha Shape option (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31879). + * Fix transient PDF bug (reference + https://github.com/ImageMagick/ImageMagick/issues/463). + * The +opaque option now works on all channels (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31862). + * Ensure backwards compatibility for the -combine option (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31855). + * Check for EOF conditions for RLE image format. + * Reset histogram page geometry (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31920). + +2017-04-24 7.0.5-5 Cristy + * Release ImageMagick version 7.0.5-5, GIT revision 19915:12eec43:20170424. + +2017-03-26 7.0.5-5 Cristy + * Minimize buffer copies to improve OpenCL performance. + * Morphology thinning is no longer a no-op (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31650). + * Patch two PCD writer problems, corrupt output and dark pixels (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=3164). + * Support ICC based PDF's (reference + https://github.com/ImageMagick/ImageMagick/issues/417). + * Fix improper EPS clip path rendering (reference + http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31722). + +2017-03-24 7.0.5-4 Cristy + * Release ImageMagick version 7.0.5-4, GIT revision 19754:350fff3:20170324. + +2017-03-21 7.0.5-4 Cristy + * Respect -loop option for animate -window (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31619). + +2017-03-17 7.0.5-3 Cristy + * Release ImageMagick version 7.0.5-3, GIT revision 19741:070c3fb:20170317. + +2017-03-14 7.0.5-3 Cristy + * Support namespaces for the security policy. + * Support the -authenticate option for PDF (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31530). + +2017-03-11 7.0.5-2 Cristy + * Release ImageMagick version 7.0.5-2, GIT revision 19696:da91a7c:20170311. + +2017-03-06 7.0.5-2 Cristy + * Respect throttle policy (reference + https://github.com/ImageMagick/ImageMagick/issues/393). + * Return proper minima / maxima (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31377). + +2017-03-03 7.0.5-1 Cristy + * Release ImageMagick version 7.0.5-1, GIT revision 19662:b7f455a:20170303. + +2017-02-21 7.0.5-1 Cristy + * Fix Spurious memory allocation message (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31438). + * Identical images should return inf for PSNR (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31487). + +2017-02-20 7.0.5-0 Cristy + * Release ImageMagick version 7.0.5-0, GIT revision 19616:505fea9:20170220. + +2017-02-20 7.0.5-0 Cristy + * Fix transient bug with -separate option (reference + https://github.com/ImageMagick/ImageMagick/issues/385). + +2017-02-18 7.0.4-10 Cristy + * Release ImageMagick version 7.0.4-10, GIT revision 19608:fe757a2:20170218. + +2017-02-18 7.0.4-10 Dirk Lemstra + * Fixed fd leak for webp coder (reference + https://github.com/ImageMagick/ImageMagick/pull/382) + +2017-02-15 7.0.4-10 Cristy + * Prevent random pixel data for corrupt JPEG image (bug report from + Hirokazu Moriguchi, Sony). + * Restore -mattecolor option. + * Support pixel-cache and shred security policies. + * Bump Magick++ SO. Previously a global replace changed matteColor to + alphaColor. + +2017-02-14 7.0.4-9 Cristy + * Release ImageMagick version 7.0.4-9, GIT revision 19580:d474b37:20170214. + +2017-02-14 7.0.4-9 Cristy + * Revert patch that did not set update trait on alpha channel. + +2017-02-13 7.0.4-8 Cristy + * Release ImageMagick version 7.0.4-8, GIT revision 19574:7642384:20170213. + +2017-02-09 7.0.4-8 Dirk Lemstra + * Fixed memory leak when creating nested exceptions in Magick++ (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=23&p=142634) + +2017-02-09 7.0.4-8 Cristy + * Unbreak build without JPEG support (reference + https://github.com/ImageMagick/ImageMagick/pull/373). + * Document behavior change in the security policy (thanks to yoya @ + https://blog.awm.jp/2017/02/09/imagemagick-en/). + * Return unbiased standard deviation for image statistics (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31377). + * Don't set update trait on alpha channel (private e-mail concerning + -levels-colors option). + +2017-02-04 7.0.4-7 Cristy + * Release ImageMagick version 7.0.4-7, GIT revision 19513:5783e57:20170204. + +2017-01-28 7.0.4-7 Cristy + * Sanitize comments that include braces for the MIFF image format (reference + https://github.com/ImageMagick/ImageMagick/issues/368). + +2017-01-27 7.0.4-7 Glenn Randers-Pehrson + * coders/png.c: Added support for a proposed new PNG chunk + (zxIf, read-only) that is currently being discussed on the + png-mng-misc at lists.sourceforge.net mailing list. Enable + exIf and zxIf with CPPFLAGS="-DexIf_SUPPORTED -DxzIf_SUPPORTED". + If exIf is enabled, only the uncompressed exIF chunk will be + written and the hex-encoded zTXt chunk containing the raw Exif + profile won't be written. + +2017-01-27 7.0.4-6 Cristy + * Release ImageMagick version 7.0.4-6, GIT revision 19442:4747de9:20170127. + +2017-01-27 7.0.4-6 Cristy + * Uninitialized data in MAT image format (reference + https://github.com/ImageMagick/ImageMagick/issues/362). + * Properly auto-fit caption (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30887). + * Correction to composite Over operator (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31282). + * Respect gravity option (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31284). + +2017-01-22 7.0.4-6 Glenn Randers-Pehrson + * Renamed read_vpag_chunk_callback() function to png_user_chunk_callback() + in coders/png.c + * Implemented a private PNG caNv (canvas) chunk for remembering the + original dimensions and offsets when an image is cropped. Previously + we used the oFFs and vpAg chunks for this purpose, but this had potential + conflicts with other applications that also use the oFFs chunk. + * coders/png.c: Added support for a proposed new PNG chunk (exIf + read-write, eXIf read-only) that is currently being discussed on the + png-mng-misc at lists.sourceforge.net mailing list. + +2017-01-22 7.0.4-6 Dirk Lemstra + * Replaced CoderSeekableStreamFlag with CoderDecoderSeekableStreamFlag and + CoderEncoderSeekableStreamFlag. + +2017-01-21 7.0.4-5 Cristy + * Release ImageMagick version 7.0.4-5, GIT revision 19381:7ae396f:20170121. + +2017-01-18 7.0.4-5 Cristy + * Don't set background for transparent tiled images (reference + http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31210). + +2017-01-14 7.0.4-4 Cristy + * Release ImageMagick version 7.0.4-4, GIT revision 19361:a12953c:20170114. + +2017-01-14 7.0.4-4 Dirk Lemstra + * Added support for RGB555, RGB565, ARGB4444 and ARGB1555 to the + BMP encoder (reference + https://github.com/ImageMagick/ImageMagick/issues/344). + +2017-01-10 7.0.4-4 Cristy + * Recognize XML policy closing tags (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31182). + * Fix memory leak in the MPC format. + +2017-01-07 7.0.4-3 Cristy + * Release ImageMagick version 7.0.4-3, GIT revision 19329:930ca78:20170107. + +2017-01-04 7.0.4-3 Cristy + * Increase memory allocation for TIFF pixels (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31161). + +2017-01-03 7.0.4-2 Cristy + * Release ImageMagick version 7.0.4-2, GIT revision 19318:8766311:20170103. + +2017-01-02 7.0.4-2 Cristy + * Validation unit test for MNG works again. + +2016-12-31 7.0.4-1 Cristy + * Release ImageMagick version 7.0.4-1, GIT revision 19292:c5ccfa8:20161231. + +2016-12-26 7.0.4-1 Cristy + * Initialize draw_info alpha member to OpaqueAlpha. + * Monochrome images no longer have inverted colors (reference + https://github.com/ImageMagick/ImageMagick/issues/332). + +2016-12-18 7.0.4-0 Cristy + * Release ImageMagick version 7.0.4-0, GIT revision 19221:d5e8abc:20161218. + +2016-12-14 7.0.4-0 Cristy + * Do not close path for linejoins of round (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31039). + +2016-12-10 7.0.3-10 Cristy + * Release ImageMagick version 7.0.3-10, GIT revision 19191:338f088:20161210. + +2016-12-07 7.0.3-10 Cristy + * Set colorspace to sRGB if -append has non-homogenous colorspaces (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=29105). + * Respect connected-components:area-threshold define (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31006). + * Enable alpha channel if background color is non-opaque (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31016). + * Return correct offset for negative index for -fx option (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31019). + * Fixed improper scaling of certain FITS images (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31028). + * Properly center text label (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31027). + +2016-12-05 7.0.3-9 Cristy + * Release ImageMagick version 7.0.3-9, GIT revision 19139:6fed3f1:20161205. + +2016-11-26 7.0.3-9 Cristy + * Support the compare -read-mask option. + * Support read-masks for the -modulate option. + * Prevent buffer overflow when streaming an image (reference + https://github.com/ImageMagick/ImageMagick/issues/312). + * Fix possible buffer overflow when writing compressed TIFFS (vulnerability + report from Cisco Talos, CVE-2016-8707). + +2016-11-15 7.0.3-8 Cristy + * Release ImageMagick version 7.0.3-8, GIT revision 19067:5aceded:20161125. + +2016-11-18 7.0.3-8 Cristy + * Support the phash:colorspaces and phash:normalize options. + * If a convenient line break is not found, force it for caption: (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30887). + * Set alpha member of draw structure to OpaqueAlpha (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30894). + * Off by 1 error when computing the standard deviation (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=30866). + * Apply Debian patches, (reference + https://github.com/ImageMagick/ImageMagick/issues/304). + * Permit EPT images with just a TIFF or EPS image, not both (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30921). + * The -clone option no longer leaks memory. + * Render to clip mask rather than image for clip-path MVG graphics primitive. + +2016-11-15 7.0.3-7 Cristy + * Release ImageMagick version 7.0.3-7, GIT revision 19024:87aca83:20161115. + +2016-11-10 7.0.3-7 Cristy + * Web pages were broken when we moved to HTTPS protocol. + +2016-11-08 7.0.3-6 Cristy + * Release ImageMagick version 7.0.3-6, GIT revision 19001:4cff747:20161108. + +2016-11-01 7.0.3-6 Cristy + * Off by one memory allocation (reference + https://github.com/ImageMagick/ImageMagick/issues/296). + * The -extent option now matches the results of IMv6 (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=30779). + * Prevent fault in MSL interpreter (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30797). + * Mask composite produces proper results for the convert utility (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=29675). + + +2016-10-10 7.0.3-5 Cristy + * Release ImageMagick version 7.0.3-5, GIT revision 18975:a8174a2:20161030. + +2016-10-16 7.0.3-5 Dirk Lemstra + * Added layer RLE compression to the PSD encoder. + +2016-10-10 7.0.3-4 Cristy + * Release ImageMagick version 7.0.3-4, GIT revision 18937:83da034:20161010. + +2016-10-10 7.0.3-4 Dirk Lemstra + * Fixed incorrect parsing with ordered dither. (reference + https://github.com/ImageMagick/ImageMagick/issues/254) + +2016-10-10 7.0.3-4 Cristy + * Unit test pass again after small SUN image patch. + +2016-10-08 7.0.3-3 Cristy + * Release ImageMagick version 7.0.3-3, GIT revision 18924:d6614e7:20161008. + +2016-10-07 7.0.3-3 Dirk Lemstra + * Fixed incorrect RLE decoding when reading a DCM image that contains + multiple segments. + +2016-10-02 7.0.3-2 Cristy + * Release ImageMagick version 7.0.3-2, GIT revision 18887:6b27c5b:20161002. + +2016-09-27 7.0.3-2 Dirk Lemstra + * Fixed incorrect RLE decoding when reading an SGI image (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30514) + +2016-09-20 7.0.3-1 Cristy + * Release ImageMagick version 7.0.3-1, GIT revision 18851:ad91ea8:20160920. + +2016-09-16 7.0.3-1 Dirk Lemstra + * Added layer RLE compression to the PSD encoder. + * Added define 'psd:preserve-opacity-mask' to preserve the opacity mask + in a PSD file. + * Fixed issue where the display window was used instead of the data window + when reading EXR files (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&p=137849). + +2016-09-05 7.0.3-0 Cristy + * Release ImageMagick version 7.0.3-0, GIT revision 18786:10aa64c:20160905. + +2016-08-29 7.0.3-0 Dirk Lemstra + * Fixed reading DXT1 images with an alpha channel. + * Fixed incorrect padding calculation in PSD encoder. + +2016-08-27 7.0.2-10 Cristy + * Release ImageMagick version 7.0.2-10, GIT revision 18750:e3335b3:20160827. + +2016-08-27 7.0.2-10 Dirk Lemstra + * Added define 'psd:additional-info' to preserve the additional information + in a PSD file. + +2016-08-15 7.0.2-10 Cristy + * Prevent buffer overflow in BMP & SGI coders (bug report from + pwchen&rayzhong of tencent). + * Prevent buffer overflow and other problems in SIXEL, PDB, MAP, TIFF and + CALS coders (bug report from Donghai Zhu). + * The -stream option now increments the pixel pointer properly (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30327). + +2016-08-14 7.0.2-9 Cristy + * Release ImageMagick version 7.0.2-9, GIT revision 18707:2c02f09:20160814. + +2016-08-14 7.0.2-9 Cristy + * Fix compile error in opencl.c (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30289). + * Eliminate compiler warning. + +2016-08-14 7.0.2-8 Cristy + * Release ImageMagick version 7.0.2-8, GIT revision 18698:74b1d5d:20160814. + +2016-08-07 7.0.2-8 Cristy + * Prevent spurious removal of MPC cache files (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30256). + * Note alpha channel when combining 4 or more images (reference + https://github.com/ImageMagick/ImageMagick/issues/250). + +2016-08-06 7.0.2-7 Cristy + * Release ImageMagick version 7.0.2-7, GIT revision 10980:ecc03a2:20160806. + +2016-08-01 7.0.2-7 Cristy + * Evaluate lazy pixel cache morphology to prevent buffer overflow (bug report + from Ibrahim M. El-Sayed). + * Prevent buffer overflow (bug report from Max Thrane). + * Prevent memory use after free (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30245). + +2016-07-30 7.0.2-6 Cristy + * Release ImageMagick version 7.0.2-6, GIT revision 18651:df24175:20160729. + +2016-07-29 7.0.2-6 Cristy + * Support -region option (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=29692). + +2016-07-21 7.0.2-5 Cristy + * Release ImageMagick version 7.0.2-5, GIT revision 18627:2b5ddbd:20160721. + +2016-07-13 7.0.2-5 Cristy + * Fix MVG stroke-opacity (reference + https://github.com/ImageMagick/ImageMagick/issues/229). + * Prevent possible buffer overflow when reading TIFF images (bug report from + Shi Pu of MS509 Team). + * Initialize index channel to get expected results from the stegano coder. + +2016-07-11 7.0.2-4 Cristy + * Release ImageMagick version 7.0.2-4, GIT revision 18591:50debe5:20160710. + +2016-07-10 7.0.2-4 Cristy + * To comply with the SVG standard, use stroke-opacity for transparent strokes. + * Define CompositeChannels mask to Red, Green, Blue, Alpha, and Black. + +2016-07-09 7.0.2-3 Cristy + * Release ImageMagick version 7.0.2-3, GIT revision 18572:28560fc:20160709. + +2016-07-01 7.0.2-3 Cristy + * Patch so -kuwahara option can preserve colormapped edges. + * The histogram coder now returns the correct extent. + * Use CopyMagickString() rather than CopyMagickMemory() for strings. + +2016-06-26 7.0.2-2 Cristy + * Release ImageMagick version 7.0.2-2, GIT revision 18514:a7b5b46:20160626. + +2016-06-23 7.0.2-2 Cristy + * Correct for numerical instability (reference + https://github.com/ImageMagick/ImageMagick/issues/218). + +2016-06-21 7.0.2-1 Cristy + * Release ImageMagick version 7.0.2-1, GIT revision 18479:931319b:20160622. + +2016-06-17 7.0.2-1 Dirk Lemstra + * Added support for GROUP4 compression to the FAX coder. + +2016-06-12 7.0.2-1 Cristy + * Distort no longer converts grayscale image to sRGB (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=29895). + * Don't return a zero bounding box for QueryMultilineFontMetrics() (reference + https://github.com/ImageMagick/ImageMagick/issues/222). + +2016-06-12 7.0.2-0 Cristy + * Release ImageMagick version 7.0.2-0, GIT revision 10884:f0e15e8:20160612. + +2016-06-09 7.0.2-0 Cristy + * Backoff finite precision epsilon (reference + https://github.com/ImageMagick/ImageMagick/issues/215). + * Fix drawing glitch for stroke widths greater than 2 (reference + https://github.com/ImageMagick/ImageMagick/issues/218). + +2016-06-05 7.0.1-10 Cristy + * Release ImageMagick version 7.0.1-10, GIT revision 18406:ba4ad2d:20160607. + +2016-06-04 7.0.1-10 Cristy + * Deny indirect reads by policy, remove policy to permit, e.g., + convert caption:@mytext.txt ... + * RLE check for pixel offset less than 0 (heap overflow report from Craig + Young). + * Properly initialze PES blocks (reference + https://github.com/ImageMagick/ImageMagick/issues/213). + +2016-06-03 7.0.1-9 Cristy + * Release ImageMagick version 7.0.1-9, GIT revision 10847:339f803:20160602. + +2016-06-02 7.0.1-9 Cristy + * Fix small memory leak (patch provided by Ðндрей Черный). + * Coder path traversal is not authorized (bug report provided by + Masaaki Chida). + * Turn off alpha channel for the compare difference image (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=29828). + +2016-05-31 7.0.1-8 Cristy + * Release ImageMagick version 7.0.1-8, GIT revision 18334:97775b5:20160531. + +2016-05-31 7.0.1-8 Cristy + * Support configure script --enable-pipes option to enable pipes (|) in + filenames. + * Support configure script --enable-indirect-reads option to enable + indirect reads (@) in filenames. + +2016-05-30 7.0.1-7 Cristy + * Release ImageMagick version 7.0.1-7, GIT revision 18321:5511ef5:20160530. + +2016-05-25 7.0.1-7 Cristy + * Security improvements to TEXT coder broke it (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=29754). + * Fix stroke offset problem for -annotate (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=29626). + * Don't interpret -fx option arguments (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=29774); + * Add additional checks to DCM reader to prevent data-driven faults (bug + report from Hanno Böck). + +2016-05-21 7.0.1-6 Cristy + * Release ImageMagick version 7.0.1-6, GIT revision 18241:d4f277c:20160521. + +2016-05-20 7.0.1-6 Cristy + * Fixed proper placement of text annotation for east / west gravity. + +2016-05-18 7.0.1-5 Cristy + * Release ImageMagick version 7.0.1-5, GIT revision 10789:f7c2e89:20160518, + +2016-05-18 7.0.1-5 Cristy + * Process channels independently for -channel -equalize (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=29708). + * Fix pixel cache on disk regression (reference + https://github.com/ImageMagick/ImageMagick/issues/202). + +2016-05-15 7.0.1-4 Cristy + * Release ImageMagick version 7.0.1-4, GIT revision 10778:52dae14:20160516. + +2016-05-10 7.0.1-4 Cristy + * Prevent possible shell command injection vulnerability through the + authenticate parameter of the PDF, PCL and XPS coders (report from + Erez Turjeman). + * Quote passwords when passed to a delegate program. + * Iterate channels over source image rather than destination (bug report + from Hanno Böck). + * Can read geo-related EXIF metdata once-again (reference + https://github.com/ImageMagick/ImageMagick/issues/198). + * Sanitize all delegate emedded formatting characters. + * Don't sync pixel cache in AcquireAuthenticCacheView() (bug report from + Hanno Böck). + +2016-05-09 7.0.1-3 Cristy + * Release ImageMagick version 7.0.1-3, GIT revision 10755:d540dda:20160509. + +2016-05-07 7.0.1-3 Cristy + * Remove https delegate. + +2016-05-06 7.0.1-2 Cristy + * Release ImageMagick version 7.0.1-2, GIT revision 10741:5746147:20160507. + +2016-05-04 7.0.1-2 Cristy + * Check for buffer overflow in magick/draw.c/DrawStrokePolygon(). + * Replace show delegate title with image filename rather than label. + * Fix GetNextToken() off by one error. + * Remove support for internal ephemeral coder. + +2016-05-03 7.0.1-1 Cristy + * New version 7.0.1-1, GIT revision 10723:9fc8a0c:20160503. + +2016-05-03 7.0.1-1 Cristy + * Sanitize input filename for http / https delegates (improved patch). + * Fix for possible security vulnerabilities (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=4&t=29588). + +2016-04-30 7.0.1-0 Cristy + * New version 7.0.1-0, GIT revision 10716:b527bce:20160430. + +2016-01-30 7.0.0-0 Fahad-Alsaidi & ShamsaHamed + * Add support for languages that require complex text layout (reference + https://github.com/ImageMagick/ImageMagick/pull/88). + +2012-04-27 7.0.0-0 Anthony thyssen + * Allow the use of set and escapes when no images in memory + (unless you attempt to access per-image meta-data) + Currently does not include %[fx:...] and %[pixel:...] + +2012-10-05 7.0.0-0 Anthony thyssen + * Rather than replicate 'options' into 'artifacts' make a link + from image to image_info and lookup a global option if no artifact + is defined. + +2012-09-11 7.0.0-0 Nicolas Robidoux + * sigmoidal-contrast: + * Remove unnecessary initial ClampToQuantum. + +2012-09-10 7.0.0-0 Nicolas Robidoux + * sigmoidal-contrast: + * Direct computation, without LUT; + * Fix re-declaration of i (at the top, and inside a conditional). + +2012-09-04 7.0.0-0 Nicolas Robidoux + * Add tanh/atanh clone of legacy sigmoidal map (faster & more accurate). + +2012-08-08 7.0.0-0 Nicolas Robidoux + * Add final ClampToQuantum in sigmoidal colormap loop. + * Remove OpenMP calls from colormap update loops. + +2011-08-01 7.0.0-0 Cristy + * New version 7.0.0-0. + diff --git a/share/doc/ImageMagick-7/LICENSE b/share/doc/ImageMagick-7/LICENSE new file mode 100644 index 0000000..1e03a74 --- /dev/null +++ b/share/doc/ImageMagick-7/LICENSE @@ -0,0 +1,103 @@ +Before we get to the text of the license, lets just review what the license says in simple terms: + +It allows you to: + + * freely download and use ImageMagick software, in whole or in part, for personal, company internal, or commercial purposes; + * use ImageMagick software in packages or distributions that you create; + * link against a library under a different license; + * link code under a different license against a library under this license; + * merge code into a work under a different license; + * extend patent grants to any code using code under this license; + * and extend patent protection. + +It forbids you to: + + * redistribute any piece of ImageMagick-originated software without proper attribution; + * use any marks owned by ImageMagick Studio LLC in any way that might state or imply that ImageMagick Studio LLC endorses your distribution; + * use any marks owned by ImageMagick Studio LLC in any way that might state or imply that you created the ImageMagick software in question. + +It requires you to: + + * include a copy of the license in any redistribution you may make that includes ImageMagick software; + * provide clear attribution to ImageMagick Studio LLC for any distributions that include ImageMagick software. + +It does not require you to: + + * include the source of the ImageMagick software itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it; + * submit changes that you make to the software back to the ImageMagick Studio LLC (though such feedback is encouraged). + +A few other clarifications include: + + * ImageMagick is freely available without charge; + * you may include ImageMagick on a DVD as long as you comply with the terms of the license; + * you can give modified code away for free or sell it under the terms of the ImageMagick license or distribute the result under a different license, but you need to acknowledge the use of the ImageMagick software; + * the license is compatible with the GPL V3. + * when exporting the ImageMagick software, review its export classification. + +Terms and Conditions for Use, Reproduction, and Distribution + +The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow: + +Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available. + +1. Definitions. + +License shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +Licensor shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +Legal Entity shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, control means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +You (or Your) shall mean an individual or Legal Entity exercising permissions granted by this License. + +Source form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +Object form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +Work shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +Derivative Works shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +Contribution shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as Not a Contribution. + +Contributor shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + * You must give any other recipients of the Work or Derivative Works a copy of this License; and + * You must cause any modified files to carry prominent notices stating that You changed the files; and + * You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + * If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +How to Apply the License to your Work + +To apply the ImageMagick License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information (don't include the brackets). The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the ImageMagick License (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy + of the License at + + https://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. diff --git a/share/doc/ImageMagick-7/NEWS.txt b/share/doc/ImageMagick-7/NEWS.txt new file mode 100644 index 0000000..6c2f9bb --- /dev/null +++ b/share/doc/ImageMagick-7/NEWS.txt @@ -0,0 +1 @@ +No news is good news. diff --git a/share/doc/ImageMagick-7/images/ImageMagick.ico b/share/doc/ImageMagick-7/images/ImageMagick.ico new file mode 100644 index 0000000..cb33b6c Binary files /dev/null and b/share/doc/ImageMagick-7/images/ImageMagick.ico differ diff --git a/share/doc/ImageMagick-7/images/affine.png b/share/doc/ImageMagick-7/images/affine.png new file mode 100644 index 0000000..2c9601b Binary files /dev/null and b/share/doc/ImageMagick-7/images/affine.png differ diff --git a/share/doc/ImageMagick-7/images/annotate.png b/share/doc/ImageMagick-7/images/annotate.png new file mode 100644 index 0000000..1f504a3 Binary files /dev/null and b/share/doc/ImageMagick-7/images/annotate.png differ diff --git a/share/doc/ImageMagick-7/images/arc.png b/share/doc/ImageMagick-7/images/arc.png new file mode 100644 index 0000000..c299426 Binary files /dev/null and b/share/doc/ImageMagick-7/images/arc.png differ diff --git a/share/doc/ImageMagick-7/images/atop.gif b/share/doc/ImageMagick-7/images/atop.gif new file mode 100644 index 0000000..0427390 Binary files /dev/null and b/share/doc/ImageMagick-7/images/atop.gif differ diff --git a/share/doc/ImageMagick-7/images/background.jpg b/share/doc/ImageMagick-7/images/background.jpg new file mode 100644 index 0000000..eda854a Binary files /dev/null and b/share/doc/ImageMagick-7/images/background.jpg differ diff --git a/share/doc/ImageMagick-7/images/black.png b/share/doc/ImageMagick-7/images/black.png new file mode 100644 index 0000000..9b11af3 Binary files /dev/null and b/share/doc/ImageMagick-7/images/black.png differ diff --git a/share/doc/ImageMagick-7/images/bluebells_clipped.jpg b/share/doc/ImageMagick-7/images/bluebells_clipped.jpg new file mode 100644 index 0000000..c1fe9ea Binary files /dev/null and b/share/doc/ImageMagick-7/images/bluebells_clipped.jpg differ diff --git a/share/doc/ImageMagick-7/images/bluebells_darker.jpg b/share/doc/ImageMagick-7/images/bluebells_darker.jpg new file mode 100644 index 0000000..f2fdee5 Binary files /dev/null and b/share/doc/ImageMagick-7/images/bluebells_darker.jpg differ diff --git a/share/doc/ImageMagick-7/images/bluebells_lin.jpg b/share/doc/ImageMagick-7/images/bluebells_lin.jpg new file mode 100644 index 0000000..b84515d Binary files /dev/null and b/share/doc/ImageMagick-7/images/bluebells_lin.jpg differ diff --git a/share/doc/ImageMagick-7/images/bluebells_log.jpg b/share/doc/ImageMagick-7/images/bluebells_log.jpg new file mode 100644 index 0000000..275a1e1 Binary files /dev/null and b/share/doc/ImageMagick-7/images/bluebells_log.jpg differ diff --git a/share/doc/ImageMagick-7/images/button.gif b/share/doc/ImageMagick-7/images/button.gif new file mode 100644 index 0000000..1a1521c Binary files /dev/null and b/share/doc/ImageMagick-7/images/button.gif differ diff --git a/share/doc/ImageMagick-7/images/configure.jpg b/share/doc/ImageMagick-7/images/configure.jpg new file mode 100644 index 0000000..95fa7db Binary files /dev/null and b/share/doc/ImageMagick-7/images/configure.jpg differ diff --git a/share/doc/ImageMagick-7/images/cylinder_shaded.png b/share/doc/ImageMagick-7/images/cylinder_shaded.png new file mode 100644 index 0000000..4787501 Binary files /dev/null and b/share/doc/ImageMagick-7/images/cylinder_shaded.png differ diff --git a/share/doc/ImageMagick-7/images/difference.png b/share/doc/ImageMagick-7/images/difference.png new file mode 100644 index 0000000..025de18 Binary files /dev/null and b/share/doc/ImageMagick-7/images/difference.png differ diff --git a/share/doc/ImageMagick-7/images/examples.jpg b/share/doc/ImageMagick-7/images/examples.jpg new file mode 100644 index 0000000..68aeacb Binary files /dev/null and b/share/doc/ImageMagick-7/images/examples.jpg differ diff --git a/share/doc/ImageMagick-7/images/frame.jpg b/share/doc/ImageMagick-7/images/frame.jpg new file mode 100644 index 0000000..428bb5e Binary files /dev/null and b/share/doc/ImageMagick-7/images/frame.jpg differ diff --git a/share/doc/ImageMagick-7/images/fuzzy-magick.png b/share/doc/ImageMagick-7/images/fuzzy-magick.png new file mode 100644 index 0000000..bf28b98 Binary files /dev/null and b/share/doc/ImageMagick-7/images/fuzzy-magick.png differ diff --git a/share/doc/ImageMagick-7/images/gaussian-blur.png b/share/doc/ImageMagick-7/images/gaussian-blur.png new file mode 100644 index 0000000..558d125 Binary files /dev/null and b/share/doc/ImageMagick-7/images/gaussian-blur.png differ diff --git a/share/doc/ImageMagick-7/images/granite.png b/share/doc/ImageMagick-7/images/granite.png new file mode 100644 index 0000000..6c2134f Binary files /dev/null and b/share/doc/ImageMagick-7/images/granite.png differ diff --git a/share/doc/ImageMagick-7/images/imade_art2.jpg b/share/doc/ImageMagick-7/images/imade_art2.jpg new file mode 100644 index 0000000..931336c Binary files /dev/null and b/share/doc/ImageMagick-7/images/imade_art2.jpg differ diff --git a/share/doc/ImageMagick-7/images/label.gif b/share/doc/ImageMagick-7/images/label.gif new file mode 100644 index 0000000..dfae2f7 Binary files /dev/null and b/share/doc/ImageMagick-7/images/label.gif differ diff --git a/share/doc/ImageMagick-7/images/litecoin.png b/share/doc/ImageMagick-7/images/litecoin.png new file mode 100644 index 0000000..a60322d Binary files /dev/null and b/share/doc/ImageMagick-7/images/litecoin.png differ diff --git a/share/doc/ImageMagick-7/images/logo-sm-flop.png b/share/doc/ImageMagick-7/images/logo-sm-flop.png new file mode 100644 index 0000000..f80b94b Binary files /dev/null and b/share/doc/ImageMagick-7/images/logo-sm-flop.png differ diff --git a/share/doc/ImageMagick-7/images/logo-sm-fx.png b/share/doc/ImageMagick-7/images/logo-sm-fx.png new file mode 100644 index 0000000..385f874 Binary files /dev/null and b/share/doc/ImageMagick-7/images/logo-sm-fx.png differ diff --git a/share/doc/ImageMagick-7/images/logo-sm.png b/share/doc/ImageMagick-7/images/logo-sm.png new file mode 100644 index 0000000..cbdbc4a Binary files /dev/null and b/share/doc/ImageMagick-7/images/logo-sm.png differ diff --git a/share/doc/ImageMagick-7/images/logo.jpg b/share/doc/ImageMagick-7/images/logo.jpg new file mode 100644 index 0000000..7bd6d0d Binary files /dev/null and b/share/doc/ImageMagick-7/images/logo.jpg differ diff --git a/share/doc/ImageMagick-7/images/logo.png b/share/doc/ImageMagick-7/images/logo.png new file mode 100644 index 0000000..37eeb1d Binary files /dev/null and b/share/doc/ImageMagick-7/images/logo.png differ diff --git a/share/doc/ImageMagick-7/images/montage.jpg b/share/doc/ImageMagick-7/images/montage.jpg new file mode 100644 index 0000000..a572d84 Binary files /dev/null and b/share/doc/ImageMagick-7/images/montage.jpg differ diff --git a/share/doc/ImageMagick-7/images/navy.png b/share/doc/ImageMagick-7/images/navy.png new file mode 100644 index 0000000..14a43ce Binary files /dev/null and b/share/doc/ImageMagick-7/images/navy.png differ diff --git a/share/doc/ImageMagick-7/images/objects.gif b/share/doc/ImageMagick-7/images/objects.gif new file mode 100644 index 0000000..45835b6 Binary files /dev/null and b/share/doc/ImageMagick-7/images/objects.gif differ diff --git a/share/doc/ImageMagick-7/images/objects.jpg b/share/doc/ImageMagick-7/images/objects.jpg new file mode 100644 index 0000000..d3a276d Binary files /dev/null and b/share/doc/ImageMagick-7/images/objects.jpg differ diff --git a/share/doc/ImageMagick-7/images/objects.png b/share/doc/ImageMagick-7/images/objects.png new file mode 100644 index 0000000..f4e92ea Binary files /dev/null and b/share/doc/ImageMagick-7/images/objects.png differ diff --git a/share/doc/ImageMagick-7/images/over.gif b/share/doc/ImageMagick-7/images/over.gif new file mode 100644 index 0000000..cfa0c8c Binary files /dev/null and b/share/doc/ImageMagick-7/images/over.gif differ diff --git a/share/doc/ImageMagick-7/images/patterns/bricks.png b/share/doc/ImageMagick-7/images/patterns/bricks.png new file mode 100644 index 0000000..6358cf8 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/bricks.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/checkerboard.png b/share/doc/ImageMagick-7/images/patterns/checkerboard.png new file mode 100644 index 0000000..526b52f Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/checkerboard.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/circles.png b/share/doc/ImageMagick-7/images/patterns/circles.png new file mode 100644 index 0000000..a2de169 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/circles.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/crosshatch.png b/share/doc/ImageMagick-7/images/patterns/crosshatch.png new file mode 100644 index 0000000..b728f48 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/crosshatch.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/crosshatch30.png b/share/doc/ImageMagick-7/images/patterns/crosshatch30.png new file mode 100644 index 0000000..8bbd0e1 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/crosshatch30.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/crosshatch45.png b/share/doc/ImageMagick-7/images/patterns/crosshatch45.png new file mode 100644 index 0000000..534687f Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/crosshatch45.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/fishscales.png b/share/doc/ImageMagick-7/images/patterns/fishscales.png new file mode 100644 index 0000000..7c310a6 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/fishscales.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray0.png b/share/doc/ImageMagick-7/images/patterns/gray0.png new file mode 100644 index 0000000..df63edb Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray0.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray10.png b/share/doc/ImageMagick-7/images/patterns/gray10.png new file mode 100644 index 0000000..24633c7 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray10.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray100.png b/share/doc/ImageMagick-7/images/patterns/gray100.png new file mode 100644 index 0000000..66bfbc2 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray100.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray15.png b/share/doc/ImageMagick-7/images/patterns/gray15.png new file mode 100644 index 0000000..9e24d51 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray15.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray20.png b/share/doc/ImageMagick-7/images/patterns/gray20.png new file mode 100644 index 0000000..c8981c2 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray20.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray25.png b/share/doc/ImageMagick-7/images/patterns/gray25.png new file mode 100644 index 0000000..867391b Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray25.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray30.png b/share/doc/ImageMagick-7/images/patterns/gray30.png new file mode 100644 index 0000000..b37a759 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray30.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray35.png b/share/doc/ImageMagick-7/images/patterns/gray35.png new file mode 100644 index 0000000..6d58343 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray35.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray40.png b/share/doc/ImageMagick-7/images/patterns/gray40.png new file mode 100644 index 0000000..f079c9a Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray40.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray45.png b/share/doc/ImageMagick-7/images/patterns/gray45.png new file mode 100644 index 0000000..3267ae3 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray45.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray5.png b/share/doc/ImageMagick-7/images/patterns/gray5.png new file mode 100644 index 0000000..baa3bea Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray5.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray50.png b/share/doc/ImageMagick-7/images/patterns/gray50.png new file mode 100644 index 0000000..ec34108 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray50.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray55.png b/share/doc/ImageMagick-7/images/patterns/gray55.png new file mode 100644 index 0000000..90a597a Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray55.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray60.png b/share/doc/ImageMagick-7/images/patterns/gray60.png new file mode 100644 index 0000000..7dd8e48 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray60.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray65.png b/share/doc/ImageMagick-7/images/patterns/gray65.png new file mode 100644 index 0000000..70369b1 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray65.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray70.png b/share/doc/ImageMagick-7/images/patterns/gray70.png new file mode 100644 index 0000000..26a497b Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray70.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray75.png b/share/doc/ImageMagick-7/images/patterns/gray75.png new file mode 100644 index 0000000..059083b Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray75.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray80.png b/share/doc/ImageMagick-7/images/patterns/gray80.png new file mode 100644 index 0000000..50a1e98 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray80.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray85.png b/share/doc/ImageMagick-7/images/patterns/gray85.png new file mode 100644 index 0000000..4637990 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray85.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray90.png b/share/doc/ImageMagick-7/images/patterns/gray90.png new file mode 100644 index 0000000..603bf4f Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray90.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/gray95.png b/share/doc/ImageMagick-7/images/patterns/gray95.png new file mode 100644 index 0000000..44e4234 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/gray95.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/hexagons.png b/share/doc/ImageMagick-7/images/patterns/hexagons.png new file mode 100644 index 0000000..e8decf7 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/hexagons.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/horizontal.png b/share/doc/ImageMagick-7/images/patterns/horizontal.png new file mode 100644 index 0000000..05ffcf5 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/horizontal.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/horizontal2.png b/share/doc/ImageMagick-7/images/patterns/horizontal2.png new file mode 100644 index 0000000..69e9fc5 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/horizontal2.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/horizontal3.png b/share/doc/ImageMagick-7/images/patterns/horizontal3.png new file mode 100644 index 0000000..1bf0c74 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/horizontal3.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/horizontalsaw.png b/share/doc/ImageMagick-7/images/patterns/horizontalsaw.png new file mode 100644 index 0000000..e843e95 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/horizontalsaw.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/hs_bdiagonal.png b/share/doc/ImageMagick-7/images/patterns/hs_bdiagonal.png new file mode 100644 index 0000000..f91cf3e Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/hs_bdiagonal.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/hs_cross.png b/share/doc/ImageMagick-7/images/patterns/hs_cross.png new file mode 100644 index 0000000..4e8c8c7 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/hs_cross.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/hs_diagcross.png b/share/doc/ImageMagick-7/images/patterns/hs_diagcross.png new file mode 100644 index 0000000..187f0b8 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/hs_diagcross.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/hs_fdiagonal.png b/share/doc/ImageMagick-7/images/patterns/hs_fdiagonal.png new file mode 100644 index 0000000..7b2f08e Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/hs_fdiagonal.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/hs_horizontal.png b/share/doc/ImageMagick-7/images/patterns/hs_horizontal.png new file mode 100644 index 0000000..56ab041 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/hs_horizontal.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/hs_vertical.png b/share/doc/ImageMagick-7/images/patterns/hs_vertical.png new file mode 100644 index 0000000..37bafbb Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/hs_vertical.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/left30.png b/share/doc/ImageMagick-7/images/patterns/left30.png new file mode 100644 index 0000000..573677e Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/left30.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/left45.png b/share/doc/ImageMagick-7/images/patterns/left45.png new file mode 100644 index 0000000..7b2f08e Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/left45.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/leftshingle.png b/share/doc/ImageMagick-7/images/patterns/leftshingle.png new file mode 100644 index 0000000..b9fe822 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/leftshingle.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/octagons.png b/share/doc/ImageMagick-7/images/patterns/octagons.png new file mode 100644 index 0000000..3e93a45 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/octagons.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/right30.png b/share/doc/ImageMagick-7/images/patterns/right30.png new file mode 100644 index 0000000..b550d85 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/right30.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/right45.png b/share/doc/ImageMagick-7/images/patterns/right45.png new file mode 100644 index 0000000..f91cf3e Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/right45.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/rightshingle.png b/share/doc/ImageMagick-7/images/patterns/rightshingle.png new file mode 100644 index 0000000..2d679f0 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/rightshingle.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/smallfishscales.png b/share/doc/ImageMagick-7/images/patterns/smallfishscales.png new file mode 100644 index 0000000..faf7405 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/smallfishscales.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/vertical.png b/share/doc/ImageMagick-7/images/patterns/vertical.png new file mode 100644 index 0000000..3f83769 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/vertical.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/vertical2.png b/share/doc/ImageMagick-7/images/patterns/vertical2.png new file mode 100644 index 0000000..a757c61 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/vertical2.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/vertical3.png b/share/doc/ImageMagick-7/images/patterns/vertical3.png new file mode 100644 index 0000000..1ba460d Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/vertical3.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/verticalbricks.png b/share/doc/ImageMagick-7/images/patterns/verticalbricks.png new file mode 100644 index 0000000..d4d8c22 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/verticalbricks.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/verticalleftshingle.png b/share/doc/ImageMagick-7/images/patterns/verticalleftshingle.png new file mode 100644 index 0000000..4c931b1 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/verticalleftshingle.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/verticalrightshingle.png b/share/doc/ImageMagick-7/images/patterns/verticalrightshingle.png new file mode 100644 index 0000000..118c242 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/verticalrightshingle.png differ diff --git a/share/doc/ImageMagick-7/images/patterns/verticalsaw.png b/share/doc/ImageMagick-7/images/patterns/verticalsaw.png new file mode 100644 index 0000000..b6579f6 Binary files /dev/null and b/share/doc/ImageMagick-7/images/patterns/verticalsaw.png differ diff --git a/share/doc/ImageMagick-7/images/piechart.png b/share/doc/ImageMagick-7/images/piechart.png new file mode 100644 index 0000000..c9e7f55 Binary files /dev/null and b/share/doc/ImageMagick-7/images/piechart.png differ diff --git a/share/doc/ImageMagick-7/images/radial-gradient.png b/share/doc/ImageMagick-7/images/radial-gradient.png new file mode 100644 index 0000000..a27743b Binary files /dev/null and b/share/doc/ImageMagick-7/images/radial-gradient.png differ diff --git a/share/doc/ImageMagick-7/images/reconstruct.jpg b/share/doc/ImageMagick-7/images/reconstruct.jpg new file mode 100644 index 0000000..ac12c41 Binary files /dev/null and b/share/doc/ImageMagick-7/images/reconstruct.jpg differ diff --git a/share/doc/ImageMagick-7/images/red-ball.png b/share/doc/ImageMagick-7/images/red-ball.png new file mode 100644 index 0000000..b1394d1 Binary files /dev/null and b/share/doc/ImageMagick-7/images/red-ball.png differ diff --git a/share/doc/ImageMagick-7/images/red-circle.png b/share/doc/ImageMagick-7/images/red-circle.png new file mode 100644 index 0000000..be8ca38 Binary files /dev/null and b/share/doc/ImageMagick-7/images/red-circle.png differ diff --git a/share/doc/ImageMagick-7/images/right.gif b/share/doc/ImageMagick-7/images/right.gif new file mode 100644 index 0000000..09934d9 Binary files /dev/null and b/share/doc/ImageMagick-7/images/right.gif differ diff --git a/share/doc/ImageMagick-7/images/rose-over.png b/share/doc/ImageMagick-7/images/rose-over.png new file mode 100644 index 0000000..e624d06 Binary files /dev/null and b/share/doc/ImageMagick-7/images/rose-over.png differ diff --git a/share/doc/ImageMagick-7/images/rose-sigmoidal.png b/share/doc/ImageMagick-7/images/rose-sigmoidal.png new file mode 100644 index 0000000..21a988f Binary files /dev/null and b/share/doc/ImageMagick-7/images/rose-sigmoidal.png differ diff --git a/share/doc/ImageMagick-7/images/rose.jpg b/share/doc/ImageMagick-7/images/rose.jpg new file mode 100644 index 0000000..262046d Binary files /dev/null and b/share/doc/ImageMagick-7/images/rose.jpg differ diff --git a/share/doc/ImageMagick-7/images/rose.png b/share/doc/ImageMagick-7/images/rose.png new file mode 100644 index 0000000..1b44690 Binary files /dev/null and b/share/doc/ImageMagick-7/images/rose.png differ diff --git a/share/doc/ImageMagick-7/images/rose.pnm b/share/doc/ImageMagick-7/images/rose.pnm new file mode 100644 index 0000000..920fe6c --- /dev/null +++ b/share/doc/ImageMagick-7/images/rose.pnm @@ -0,0 +1,4 @@ +P6 +70 46 +255 +0/-20.62/83.:3-92-80-91.80-80-7/,5-*4,)5-*5-*1-'1.'41*74-96/?:/F?3JB4LA2NB2UA2tD4šC3´A5ÅE=àDGíCFö=Bñ<@Ö@;¸?/²?-­@-£A+˜@+’?.‘=,’=+“=*•?.™?3±B3»D6•F9R:/:5372172/61.30,//-0/-3,-6+-P78‚IGbnŒ|¦lp¥PHnRLauw|•šz|lYVS/.,0/-50-71-81,80,6/,81-81-81.7.,4-*4,*6/+6.+3/*30*41+63-750>8-E=2H?1I>.K@/MD3iE4Œ@.¦<-ºG<ÜDGëBEü.=,‘=*;*‘>-˜>3º@4ÈD8“H;D7,95593162/62.11--1.00.5/.2*,E21xA5”Y\†}«cl¬J>kK@\]^g€†~lp_YWS,,,,-+0/,1.+2,(2-*0,+2,+2++2,+2,+1,+1,)3-,3-,3/,31,40,52-750:3,>6-@6-C8-H;/EE5UD4m=+„9(ŸE4ÀH=ÜE@ö<>ì>=¹A0¥@*©?-¥>-›?,‘>)Ž>,Œ=-‹<-‰;.‰?/›B1Ã@8ÃGD‰WNFFISIYZO,-/+-/.--/-)/*'-+(,**,**.++.++.++/++/--0,,0-./-*2.,2.+2-,30.82/<4/>4/A5-F91H>7Q<5_70y7-“;/£A3¼E9ÞE@ÚHA§B/›@,ž>-œ=/”=-Œ=+ˆ<+‡<,…<.‚<2†C7G:ºE@´g_ŠyWeWCB875+/1*.1+-0,-0//0.02./2./-24*,gcbšÎ~‡ÐipžY\o`pr‚–Œ|_eQ,/2+/2..0-.--+),*++)+('(**+,*+,*+*))*()-+,.-./,+0,+.*)/++0--811<32;21>0.A2/A73B:6K62h7/‰=0•>5˜A3¯D7ºG<ž?3’?,”=+•;-Ž<-‡;,‡9)‚9*:.?7†G@—E>®UR£‘{Œ«ŒrpSZG<@301(-)'2,+2,+0,*0-+0/+2*10)(eqR•¡œ¥£¦Ê³¤Ç°¶—™º˜…¡„YdJ.0.//-/1.21.30-3/,2-*-*+,+,*)-+(,-',+(),*)--+/-,.+*/+)4,)6/*;3.=40;1-;/.>/.>3,59/93,O,'i:-ƒA1Ž@1’;-˜B2”>2“-ˆ:+…;*v>)v8,s9-{@4‰G>ˆNE†dVz’q{¯ˆƒ±Œvž|e’gd‡ePfP4=0*&#.$&+**)+,'+/''-)$"W\H~‘j{œj~£o¥o}¥t~¡{o‰lLVD782782994<:5@=8B:8A95=73<75:549009//61.62.63.641973?72B90H=1J>4H=4B80@61?62<94C54A50<6*E5'c6-‡=;BA„C;„>6A5~:/y;/u>.z4)¹PL¬[VpJ9kS@s`IzX¶f`¿zr¢¡… ~‹—v€žxo“oXiM?;)3)"%+!+/&:&*C))TN:hqRhƒWk‘\nšck˜hsœtt•th†dNXC8939:4>>8A?:D?:FABžCEvC9y:4¿3(G@-e^:wƒ\n‡\m‰Ysd~˜{Œ¢Ž€–d}_S_G671681==8B@;FA?HC>HC>JD9,E1K;1D:/>=17=0€B@íK]Ë35›;#Á?5¬;0³>3·D7¥:(¹>2Ñ>8ï8?á<<ÔD?ë7;Ú.'ÄB:’dOˆcJÞc^÷;EàBCõFOþ.Eÿ,Hÿ0Tÿ4\ÿ:hÿ:oÿArÿGoÿZxÆ[fa=3HC/vdšŸ•‘ž˜˜ š¶µ­ÑËÆÔÌÓ°±±g{eWgL330551883=<6DC9GG>JI;MI6IE7MHJH@9E;+C9-?80>83=71>94@=9IA6P@-H?-K81C745=0@?/¦I@¯4+¤4!¦A&©:$ 6'©=2¬A1°@2¿@4Ì8)è1+ù++ó0)á6%Ø5!Ç9,ÅUIàUQþAKß?A®;.ÄE;ìADü>HýAQÿ=Vþ>hû>qüEwùJnýWxÿYÍ]n‡ndÓÈÁààêæÖðõáùýóùýôóõçðÓÎÒ…ƒun10-/.,43/892>?5GD;OK8MK4XWW€ƒ¥|x [ToF?O94462&52):9.B=-K@/P@/C;*:4)040B1-Š6<®;/¤<'¡;%µ>,Ç=1¸;1­9*³:+Ã?2Ä3*Ö4,Ü8.ñ1+ð/(Ô5 Ú4!Ô9,Ð?6ÛCAÞA>Ç>3®9(¯=-ÕE@óFK÷DKþDXþBbÿJtÿK}þMzþTtóCcä{ˆ‰_TñÓÉÿÿÿÿõÿÿøÿÿÿþÿþûÿùýòéìÀ¿¸µº°:8163-30+74,<;2IA6VJ9TH:darž¥ä¬²ÿ¡ìÅnmŽLIX@?M<99A=(BC.8A9:EQEUaFSRaG<”F7¨=+®A-°;(¿6*Ô80Ò:4Î82Ó:3×;2ß?7ë1'ô-(ù-(ë2(Ò7!Ï7"Ñ5(ÙC<ÝVMº>2³:#¹:)Æ@7ÒHFØGHíFJûO\øF`ýJnüRz÷XzýUqùSgÿ`pÕKU᪤ÿÿþüÿÿýýþþúõÿúùþðôêÜÛïæÛëíäD@5A=3;6-52(:5/F=7TG6WF7]Uj™Þ«¸ÿµ¾ÿ¹¾ÿ§§ï€|Âf\žRLs7:C:97RJN†s›ª®º]{ÈKP³<'©9#³:*Á;-Ô<3á;3Û61å>9æ<7Ü8/ãD9ô?4û))ú++ã2,Ï2%É<(Ð:*Ô7-äLHÑC@»9$¿9(Ç>2ÓQIÄE>àNIçQSðTaýVnûNoýUxÿWoÿZiüWeÊOT¡tnúáàüÿÿúÿÿþù÷ÿúõúïðÜÎÉùòàùûîOI;MG:F@5?90=60A=8ME5SD.WLS„ŽÁ¦®û°²ÿ²´ÿ©¬ùœ í‹Øoz¶ae‡…N_ËOWïL]ÜHRÒ;>æ>>Î>5¼>/Æ?2Ô>4Ù9/Û3+Ú7/Þ8/Ù3)Ñ3$Ê9"Û>0þ8;÷05Û20ß54ï53â7+Ù>/ãPJÜEIÐ=3Â8+¼<-ÀC2¼=-ÇH=ÎNJæ\aþfvýPmúZuñrxóbpî{€’ueVPAàÃÄÿýÿýþÿÿüþýÿøÿÿúíçÜúøÞûüéWN?VM?PI:KB4F<1E@7LG5SG.VNQƒ‹½£¤ö¤¤ÿ¤­ÿ¤­ð®­ö ¯þ¡«àºvÞANïCá?FÃ>;ÖGFè>A×?;Ä=1À?0¹;+Í:.ä93à3/ä4.Ñ8*º;+Æ;6é<9É9%Â9!Ï3&Ô5/Ï7+È8&É=)Û>5è@BíUSÝG=Ç9)·:*¯<-¬<.¯:*ÑVGðmjéagñbmúnqÿdløWpuˆiXnEñåÔÿÿÿÿÿÿâùæÅëÈâïÕýøæôæÖòèÝ[N>ZN>[N=XMîCNÜBG¶@5ÆC;Ñ41ÆB5½;)¾9%Á:%Ô8(å4+÷13ÿ,3û-1ó.8û(>ö(0Ó0'Í8(ä;2è=4ÐD6À6&Ê5)ã75å./Ö4*Î5*ÔJ>¸>1©6*¨:+¦7&¼H>îqr÷s~úr{ýs{þVeùDa˜ }}šgËÌ®ÔâÆ¯Êª•¸Ž¼†¨ÇšÎÕºîÞÔÝËÅ[L<[L<\L^M<^P<[NAYLI^Sdme›‡Ä›~´«q£µ@GÉ>+è@9ü<@éBJ¿<7¦9(ÇB8Ý;8ÏD:º7$Ä;(É8'Ú4'î9.ã4'î,$õ)'ø%2ÿ6ó'6íUYa7e€N‹d~m«pˆ«o‡±p‚¹o…ªqµ¶™Ã¿¾\K7\K6\K6]L7]L9]L;^M=]P=]P=aM:cG>g]q†µ³‡¦öuqÿKUó?Qç=GÛ<=Ç>4©;*´>/Ñ83Þ3+Û9'éMAÒA3Ó:.ì79÷2>ü"/ÿ -ö!+î%7÷;VÿcpñNSË:5¡6$‡-­:0Â86ØIEÉ;0Ç8+´8+Á8/ÞJ@â3.ü.1ú-0ð2,É4%ÅMEÿÿ{ˆÿYtÿ?aÒ@SIY1p•[…¦oƒªq|¥f~£f¨k~°e†²nœ¶‰–¤—^M:^M:^M:^M:^M:_L7^N9VNAaXYo`mmdppx¨ƒŒê™ƒÍ¹v|èd\ýMUò9AÞ77ÃB2©:+½G>ÅB9Ê6+Þ6'ã4.àD7Ü<.ð03ÿDNõCGæ/-á,(Þ23ß>CÙ?CÜ78Ê3.ÒOJÔOQÊIGéUUÚEAÔB:Þ<7ó2=õ7?è>:Ü1*ó20ø.2ó0.Í4%ºH<ÿ“•ýqÿFhÿ_O=_O=`P7\L9_[a}| }²qv¸|†Æš›Çº¯·È¶–²pRÆLAðHJè79Õ:2»7.ºI?ÍfXÁ@3Ú2+ä1,á=1ä7)ð-)ð55ñRXêJQëQVìV[Õ@Bê9?ë-7òJVÿozÿfvçRN×53ÜA<ÜE<à40ü,:ÿ5?ç63Ý4*ð2/û.2õ/-Ó5)²<3þˆøbwÿ>côAd\;/L_>u‘^{žco—WršXxž^y£[w¦V€«a€Ÿhe|V[M=_P@_RB`RC`R@\OBcYawwšw|¹cj´zzÖ¯¬Ûäá¶øò¤ë諸µ‘ ydÖlgöWZê6:Ú63½:1»OAÓXIÐ1'è><â@7à0%é-'Û3*Ï95îSWõVbÿdoûagö/7ö(6÷FSú^f÷T[ß73æ64Ý82Ö80ä:5ç;;è65Ø5+â6*ó0-ú/4ö0/Ú9.¹82üw‚ÿRpÿ`S>e_Xzt‘sp§]_¡ii»‹ˆßÞ¢¡Ö ›Öž–Ε‰Ápg}^VR|SH¸YQìysÿ€|ï^ZÉ6-¾5#Ê;*Õ:0Ï7,Ü9/Ü8/Å<*Â@1Å=4Á73ÙPLÒKBÌ6$ë/0ø(:ü'?ÿ:ÿ#8ó.6ß:5à<5ê75î35ä40Û7)Ü9&å6&ï5-í5)×4'íV\ÿPkÿ8eÍ@X95#AB378!QZ4dyN_„AcŒDlNhGc†Ic‚JfIbD47-::4OD;VL=gellj‘QQŠ[]¥y{Ή‰ÝŒ‹Ñˆ…͈҅ȇ‚­~Zj\[LpWDÏSVçfkï…þzÅ;-»;#Æ;)Ö6+Ì;+Ë6(Ö:-È8(Å:-È:/Ê:0Î?5È:.Ö1'ù/7ÿ+=ú*>þ$:ÿ&9ð5=Ú:6ß;4ë54ñ48â6/Õ7)Ù8&Ú6$×9&Ô;%×=4þWlÿ7cüCjk3=#/%/4^Y2 ³‚s`]ƒ>m“Kp•QkHi‹Me„JfƒHg‰G*0&+0+975EC=Z\i\]‡[Zœy|Ö…ˆë‚‚څʃ‚Ò‹‚Û†Â~x‰sWR`_Hd_C®WPìZcónjÙK@É7&È<'Ö8+Õ1(Å>+¿:(ÛG;Î9+É:)È7(Î7(×0>=4<=2AE*LM:UTAecg„·‘ŒÔz¯ws¥z¤yon_WlYGh\Kj^N_O¥K<Ø5.ã0+â4*×8$Ê=$×9,¹;)µ7&×=5çIB³9'º:)Ç9-Ö<4ã;7ê:8é86ôHIéZXÍC=Ú:7ß92ä84ê68ì8>ë6=ì7;Ö?7¶;+§;'¤;(–6#ÀIDüUhÒMX‚]O39"FO)uœ_’¥iˆ›jIT<VM?VN?VP=\RC`WBbYKmckwj|pdm]W[WUR]VGfZFn_HjdOˆZO­RG®:,Ë4+á7/Þ7.×6*Ó9)Õ:,¸<+§5"Â9-×<4ÓH:ÔB9Ø>9ç<<î68å;8Å=2·9*½;-Ö<5í6:è6:æ86å92æ96è88ç;=Ë@8§;,™;(8$„6'ÌYZ¼TVžYR€cK`x;¶qv˜YO];;=.23+;C1fGo—Jj’Mm“Rj”GqžKxªUqŸWcZKe[Ke[Kd[Le[Mg_Jh_Hg^Mg]Lf\I`ZGQN=LH7SP>[ZF__O–aYÑJLÓ40·=)Í:*Ú9+Õ8*Õ7*Õ:+¼=/—5ª?)Á7*Ñ9/é49è6<í6;ï5<Ö64­8&§9&µ:)×>4î98ò67ë85å<3à>9Ú>>É@;©8+•:(:(7"~:*¦RJ•TI\S–n]Ž¡sScB'258176/9909C0g‚KwœQp™Sp˜Oo™Ix¦Uw¦Y`‹Jh_Pi`Qi`Qi`Qh_PkbTjbSi`PibLibHhbK`ZFLJ6@E4@H8CJ>UM;¶XOïDFÈ:,Ã7%Ò8)Ñ:)Ñ:(Ò9)»;/‘6”9»8*Ú;5î@EÓ>;»61·:5¢9->*ŸA+¥<'·6)Ó<5ì=7ë?6ßD9ÊA9²83˜8*Œ8'„<)};(w3"‰A3”SG‘ZN–YS‰YMAM+'2%7>2Î@:²>3¸C3ÛHAêIEÑEA =/ŽF2„C1yA-…:+‰<,=,–8*£:.¹;0À?1¶<.¡6*7,„<,;*{;,s9*v5(’H;OB™SNœVW‘o_fvIGV4^kQKQ5:;#88/8B/iƒLwPpœNr¢P}©`fŽNbŠJbˆMi`Qi`Qh_PlcTkbSmbWlbUldOldPlbVmbUmcThaQVP@EA18A'„K@À>@ØNO÷imÞNJÑC<ÓE?ØHCÞIFäGKàLKçIHíACåBAÌ@=Ÿ=0ŠA2…<1:3;2~;1z;/z;+{:+†8,8,”8(‰:*€<,8+{3(y6,p4)v=1…Q@‰TGšQMŒ[SWX@Oe=`vFCW-6@*:<279/8@-_yAxQpžQw¨Yj•S\„GgŽJa…Ii`QjaRlbTjaRjaRkbSkbSkbRlcSlcTpbRpaUf_RfaP_YCA@%rM<œEC®BCÁONËLLÒCBÏ@9ËE;ÙDEà@EáCEâDCãA>âB>ÍA<9/€=/€<3ˆ82…;/;.:-|:.|:/{91{8/|9.z:.x9/u8.r6+o4*l2'v@6ˆTL”QM“UMyeOZnJUmDM_:9C(89,;=34;089)Vd>t–Tx¤\r™\Z‚C_‡IeL\€GhaQibRjdSibRibRjbSkbSkbSlcTlcTmaTfZPspi£ ˜´¯¥}{j7>+3<(<=/?;.^B5¥HEÕAEÙ><ÝDAÞDDÞDDÚFDÕF?ÔF=ØD>°=4„=,~>/…9.…:+:+:,~:/~:0{90y8/w9/v90t:.q6-n3+k4)e1%s=2•RN‘YR_R_\HES;2?);E0BJ69A04;.49578,LW3r•S{¥^`ƒIZ~Ca…Ia…KX|GhbRibRkcSibRibRjbSkbSlcTlcTkbRe]S„|ÏÑÑúûýÿÿÿôÝÕ ‘|CJ25?+:72*0+Z?>ÍÎXUÞ9:á@DÝBDÝABÖC?ÐE;ÝB:¿B8;,=,<+:+}9-}9/}:0|:1w:3s8/p6,o8-n7+n6/k4,g3*`.$p8/–UQz\ONO>5@1/5,330.3+4>1;K80>.-2/54+AM/s•Yn˜TTu?Z|E_L_‚IWwHhcShcShcShcShcSjcSlcTmdUmdUlbQlje¼ÃÅÿÿÿÿÿÿÿÿþÿÿïêó̧KO1=6)OHFž™—òðçúàÖÖqqÁ=:Ê@<Ô@@Ö>?ÔB=Ú@<ÂC<’;1=/~<,:.{9/|90{<3z<4p;1k8-i7-h8-h8.k70i6-a0'Y+m=4vTNG@3.9)1<.7:2686280-9*6D29H616,,-"@J1z›m^†MQo4fF9cJ5_M5iQYF*1(07,17-06,/3,-2-.3--2,,0+,3,)4--8-2>-2>*6C.DV;H]=^qRZlS,8.heVheVheVifWifWjeVlc\ngZhiQlupÃÍÕþÿÿÿÿþúûòéíÜçïÒêèÎÝÔÇïàáÿúÿÿÿÿÿÿýþþüþþüþþüÿýúùÿÿúÿÿÿÿÿèÔ¼´kS?.‘6*8,oA3r=7s?9sA;o?8n=6q94l:3d=2^>2P;+UP9]X=]]?nv\2@+27/28.39/28-/5,.3-.3-,1+*/)+0++3+*4,-5,7@59C43>,>J4\hTQ]O+4-gdUheVifWifWifWjeVnc\lhZflShwoºÆÍûþÿÿÿýÿÿòð÷áÝãÃÚ×ÁéÞÞÿõúÿýÿÿÿüþþüþþüþþüþþüúÿýÿýÿÿøÿÿþþÿÿÿÿþëÚì u]yH1e6"e3)j90l?4i>4h>2cA7_D5YG5e]GEF/9C'EI+ppR\`G29'7=57=37>48>38<57;66;5271.3-,1+(.(*.*,1,/2/=D==J81?(BP58>49?59@8;A;:>9:@:9=87;6062,1,+/.)-.)3)6J29L38I1;K8/;.\gO_iRgkWihXlfXlgYkf[hgYelY|ІÈÒÙõúú÷úðîîÜÝÚÆÉÀ®É¾¶éàæþúÿýþþýþþþþþÿþüÿýûÿýùÿüüÿýýþþüüøôöìèþúûþÿýýÿÿÿÿüÿÿîéæÍmgKRK-UO2SO3PN4LO6HO5EN.LS0]e@aeFVV=WT + + + + + Convert, Edit, Or Compose Bitmap Images @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

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.

+ +

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 current release is ImageMagick 7.0.7-18. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.

+ +

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

+ +

We continue to maintain the legacy release of ImageMagick, version 6, at https://legacy.imagemagick.org.

+ +

Features and Capabilities

+

Here are just a few examples of what ImageMagick can do for you:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Animationcreate a GIF animation sequence from a group of images.
Color managementaccurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.
Command-line processingutilize ImageMagick from the command-line.
Complex text layoutbidirectional text support and shaping.
Compositeoverlap one image over another.
Connected component labelinguniquely label connected regions in an image.
Decorateadd a border or frame to an image.
Delineate image featuresCanny edge detection, Hough lines.
Discrete Fourier transformimplements the forward and inverse DFT.
Distributed pixel cacheoffload intermediate pixel storage to one or more remote servers.
Drawadd shapes or text to an image.
Encipher or decipher an imageconvert ordinary images into unintelligible gibberish and back again.
Format conversionconvert an image from one format to another (e.g. PNG to JPEG).
Generalized pixel distortioncorrect for, or induce image distortions including perspective.
Heterogeneous distributed processingcertain algorithms are OpenCL-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.
High dynamic-range imagesaccurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.
Image calculatorapply a mathematical expression to an image or image channels.
Image gradientscreate a gradual blend of two colors whose shape is horizontal, vertical, circular, or elliptical.
Image identificationdescribe the format and attributes of an image.
ImageMagick on the iPhoneconvert, edit, or compose images on your iOS device such as the iPhone or iPad.
Large image supportread, process, or write mega-, giga-, or tera-pixel image sizes.
Montagejuxtapose image thumbnails on an image canvas.
Morphology of shapesextract features, describe shapes, and recognize patterns in images.
Motion picture supportread and write the common image formats used in digital film work.
Noise and color reductionKuwahara Filter, mean-shift.
Perceptual hashmap visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking.
Special effectsblur, sharpen, threshold, or tint an image.
Text & commentsinsert descriptive or artistic text in an image.
Threads of execution supportImageMagick is thread safe and most internal algorithms execute in parallel to take advantage of speed-ups offered by multicore processor chips.
Transformresize, rotate, deskew, crop, flip or trim an image.
Transparencyrender portions of an image invisible.
Virtual pixel supportconvenient access to pixels outside the image boundaries.
+
+ +

Examples of ImageMagick Usage shows how to use ImageMagick from the command-line to accomplish any of these tasks and much more. Also, see Fred's ImageMagick Scripts: a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations. With Magick.NET, use ImageMagick without having to install ImageMagick on your server or desktop.

+ +

News

+ +

Now that ImageMagick version 7 is released, we continue to maintain the legacy release of ImageMagick, version 6, at https://legacy.imagemagick.org. Learn how ImageMagick version 7 differs from previous versions with our porting guide.

+ +

ImageMagick best practices strongly encourages you to configure a security policy that suits your local environment.

+ +

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

+ +

Want more performance from ImageMagick? Try these options:

+ + +

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

+ +

Community

+

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

+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/ImageMagickObject.html b/share/doc/ImageMagick-7/www/ImageMagickObject.html new file mode 100644 index 0000000..4dd2b6d --- /dev/null +++ b/share/doc/ImageMagick-7/www/ImageMagickObject.html @@ -0,0 +1,155 @@ + + + + + + + + + + Install the ImageMagickObject COM+ Component @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

Build ImageMagickObject From Source

+ +

The ImageMagickObject is a COM+ compatible component that can be invoked from any language capable of using COM objects. The intended use is for Windows Scripting Host VBS scripts and Visual Basic, but it is also available from to C++, ASP, and other languages like Delphi, Perl and PHP.

+ +

The ImageMagickObject COM+ component provides access to the compare, convert, composite, mogrify, identify, montage, and stream tools, efficiently executing them as part of your process, rather than as external programs. The way you use it is exactly the same. You pass it a list of strings including filenames and various options and it does the job. In fact, you can take any existing batch scripts that use the command line tools and translate them into the equivalent calls to the COM+ object in a matter of minutes. Beyond that, there is also a way to pass in and retrieve images in memory in the form of standard smart arrays (byte arrays). Samples are provided, to show both the simple and more elaborate forms of access.

+ +

ImageMagick provides a statically-built ImageMagick object as part of its Windows installation package. When this package is installed, ImageMagickObject and its sample programs are installed to this path:

+ +
  c:\Program Files\ImageMagick-7.0.7-Q16\ImageMagickObject
+
+ +

The ImageMagickObject is registered if the checkbox, Register ImageMagickObject, is checked at install time.

+ +

To execute the sample program from the Windows Command Shell, type:

+ +
cscript SimpleTest.vbs
+
+ +

Since the ImageMagick utility command line parsers are incorporated within ImageMagickObject, please refer to the command-line tools discussion to learn how to use it. The sample VBS scripts show how the object should be called and used and have lots of comments.

+ +

C++ programmers should have a look at the MagickCMD.cpp command line utility for an example of how to call the object from C++. The object requires a variable size list of BSTR's to emulate the command line argc, argv style calling conventions of the COM component which is more complex in C++ then in VBS or VB.

+ +

MagickCMD is a C++ sample, but it also serves as a replacement for all the other command line utilities in most applications. Instead of using convert xxxx yyyy you can use MagickCMD convert xxxx yyyy instead. MagickCMD calls the COM object to accomplish the designated task. This small tight combination replaces the entire usual binary distribution in just a few mebibytes.

+ +

Build ImageMagickObject From Source

+ +

The source code for ImageMagickObject is available from the ImageMagick GIT repository, or as part of the Windows source distribution. Once the source code has been retrieved and extracted, the source for ImageMagickObject is the directory ImageMagick\contrib\win32\ATL7ImageMagickObject, however, ImageMagick itself must be built using the static-multithread (VisualStaticMT) build configuration. Building ImageMagickObject requires Microsoft Visual C++ 7.0 as delivered with Microsoft's Visual Studio .NET package. See the Windows compilation instructions to get ImageMagick itself built before building the ImageMagick COM+ component.

+ +

Once the VisualStaticMT project has been built, build the ImageMagickObject with this procedure:

+ +
cd ImageMagick/contrib/win32/ATL7/ImageMagickObject
+BuildImageMagickObject release
+
+ +

Here, we assume that the VisualStaticMT project has been built using the release setting for an optimized build. If the debug setting was used for a debug build, specify the argument debug; instead.

+ +

To register the DLL as a COM+ server, type

+ +
regsvr32 /c /s ImageMagickObject.dll
+
+ +

To unregister the DLL, type

+ +
regsvr32 /u /s ImageMagickObject.dll
+
+ +

Use MagickCMD to exercise ImageMagickObject to verify that it is working properly.

+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/Magick++/Blob.html b/share/doc/ImageMagick-7/www/Magick++/Blob.html new file mode 100644 index 0000000..a309e6c --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Blob.html @@ -0,0 +1,93 @@ + + + + + +Magick++ API: Working with Blobs + + + +
+

Magick::Blob

+

Blob provides the means to contain any opaque data. It is named after the term "Binary Large OBject" commonly used to describe unstructured data (such as encoded images) which is stored in a database. While the function of Blob is very simple (store a pointer and and size associated with allocated data), the Blob class provides some very useful capabilities. In particular, it is fully reference counted just like the Image class.

+

The Blob class supports value assignment while preserving any outstanding earlier versions of the object. Since assignment is via a pointer internally, Blob is efficient enough to be stored directly in an STL container or any other data structure which requires assignment. In particular, by storing a Blob in an associative container (such as STL's 'map') it is possible to create simple indexed in-memory "database" of Blobs.

+

Magick++ currently uses Blob to contain encoded images (e.g. JPEG) as well as ICC and IPTC profiles. Since Blob is a general-purpose class, it may be used for other purposes as well.

+

The methods Blob provides are shown in the following table:

+
+

Blob Methods

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Method

+

Return Type

+

Signature(s)

+

Description

+

Blob

+

void

+

Default constructor

+

const void* data_, size_t length_

+

Construct object with data, making a copy of the supplied data

+

const Blob& blob_

+

Copy constructor (reference counted)

+

operator=

+

Blob

+

const Blob& blob_

+

Assignment operator (reference counted)

+

update

+

void

+

const void* data_, size_t length_

+

Update object contents, making a copy of the supplied data. Any existing data in the object is deallocated.

+

data

+

const void*

+

void

+

Obtain pointer to data

+

length

+

size_t

+

void

+

Obtain data length

+

updateNoCopy

+

void

+

void* data_, size_t length_, Blob::Allocator allocator_ = Blob::NewAllocator

+

Update object contents, using supplied pointer directly (no copy) Any existing data in the object is deallocated. The user must ensure that the pointer supplied is not deleted or otherwise modified after it has been supplied to this method. The optional allocator_ parameter allows the user to specify if the C (MallocAllocator) or C++ (NewAllocator) memory allocation system was used to allocate the memory. The default is to use the C++ memory allocator.

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Cache.fig b/share/doc/ImageMagick-7/www/Magick++/Cache.fig new file mode 100644 index 0000000..5b880a7 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Cache.fig @@ -0,0 +1,35 @@ +#FIG 3.2 +Landscape +Center +Inches +Letter +100.00 +Single +0 +1200 2 +1 3 0 3 4 4 0 0 20 0.000 1 0.0000 2715 3030 31 31 2715 3030 2745 3037 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 1200 3300 1200 2100 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 2925 1875 1500 1875 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 3825 1875 4800 1875 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 1200 3600 1200 4800 +2 2 0 1 0 6 9 0 30 0.000 0 0 -1 0 0 5 + 2325 2700 4125 2700 4125 3825 2325 3825 2325 2700 +2 2 0 1 0 2 10 0 30 0.000 0 0 7 0 0 5 + 1500 2100 4800 2100 4800 4800 1500 4800 1500 2100 +2 2 0 1 7 7 11 0 20 0.000 0 0 -1 0 0 5 + 900 1500 5100 1500 5100 5100 900 5100 900 1500 +4 1 0 0 0 16 12 0.0000 4 180 810 3375 1950 columns()\001 +4 2 0 0 0 16 12 0.0000 4 180 510 1500 3525 rows()\001 +4 0 0 0 0 16 12 0.0000 4 165 255 1575 2325 0,0\001 +4 1 0 0 0 16 12 0.0000 4 180 795 3375 2625 columns_\001 +4 1 0 0 0 16 12 0.0000 4 135 225 2325 2625 x,y\001 +4 2 0 0 0 16 12 0.0000 4 135 495 2250 3300 rows_\001 +4 0 0 0 0 16 12 0.0000 4 135 405 2730 3232 Pixel\001 diff --git a/share/doc/ImageMagick-7/www/Magick++/Cache.png b/share/doc/ImageMagick-7/www/Magick++/Cache.png new file mode 100644 index 0000000..91d0efb Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/Cache.png differ diff --git a/share/doc/ImageMagick-7/www/Magick++/Cache.svg b/share/doc/ImageMagick-7/www/Magick++/Cache.svg new file mode 100644 index 0000000..e08af27 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Cache.svg @@ -0,0 +1,37 @@ + + + +SVG drawing +This was produced by version 4.1 of GNU libplot, a free library for exporting 2-D vector graphics. + + + + + + + + + + + + + + + + + + + + + + +columns() +rows() +0,0 +columns_ +x,y +rows_ +Pixel + + diff --git a/share/doc/ImageMagick-7/www/Magick++/ChangeLog.html b/share/doc/ImageMagick-7/www/Magick++/ChangeLog.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/ChangeLog.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/Magick++/CoderInfo.html b/share/doc/ImageMagick-7/www/Magick++/CoderInfo.html new file mode 100644 index 0000000..dfab62a --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/CoderInfo.html @@ -0,0 +1,104 @@ + + + + + +Magick++ API: Access Raw Image Pixels + + + +
+

Magick::CoderInfo

+

The CoderInfo class provides the means to provide information regarding ImageMagick support for an image format (designated by a magick string). It may be used to provide support for a specific named format (provided as an argument to the constructor), or as an element of a container when format support is queried using the coderInfoList() templated function.

+

The following code fragment illustrates how CoderInfo may be used.

+
+CoderInfo info("GIF"); 
+cout < info->name() << ": (" << info->description() << ") : "; 
+cout << "Readable = "; 
+if ( info->isReadable() ) 
+  cout << "true"; 
+else 
+  cout << "false"; 
+cout << ", "; 
+cout << "Writable = "; 
+if ( info->isWritable() ) 
+  cout << "true"; 
+else 
+  cout << "false"; 
+cout << ", "; 
+cout << "Multiframe = "; 
+if ( info->isMultiframe() ) 
+  cout << "true"; 
+else 
+  cout << "false"; 
+cout << endl;
+
+

The methods available in the CoderInfo class are shown in the following table:

+
+

    CoderInfo Methods

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Method

    +

    Returns

    +

    Signature

    +

    Description

    +

    CoderInfo

    +

    void

    +

    Construct object corresponding to named format (e.g. "GIF"). An exception is thrown if the format is not supported.

    +

    name

    +

    std::string

    +

    void

    +

    Format name (e.g. "GIF").

    +

    description

    +

    std::string

    +

    void

    +

    Format description (e.g. "CompuServe graphics interchange format").

    +

    isReadable

    +

    bool

    +

    void

    +

    Format is readable.

    +

    isWritable

    +

    bool

    +

    void

    +

    Format is writeable.

    +

    isMultiFrame

    +

    bool

    +

    void

    +

    Format supports multiple frames.

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Color.html b/share/doc/ImageMagick-7/www/Magick++/Color.html new file mode 100644 index 0000000..fe7ee4a --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Color.html @@ -0,0 +1,260 @@ + + + + + +Magick++ API: Working with Color + + + +
+

Magick::Color

+

Color is the base color class in Magick++. It is a simple container class for the pixel red, green, blue, and alpha values scaled to fit ImageMagick's Quantum size. Normally users will instantiate a class derived from Color which supports the color model that fits the needs of the application. The Color class may be constructed directly from an SVG-style color string.

+

Quantum

+ +The base type used to represent color samples in ImageMagick is the Quantum type. Pixels are represented by a structure of Quantum values. For example, an RGB pixel contains red, green, and blue quantums, while an RGBA pixel contains red, green, blue, and opacity quantums. The maximum value that a Quantum can attain is specified by a constant value represented by the MaxRGB define, which is itself determined by the number of bits in a Quantum. The QuantumDepth build option determines the number of bits in a Quantum. + +

Quantum

+ +Quantum is the internal representation of a pixel in ImageMagick. ImageMagick may be compiled to support 32, 64, or 128 bit pixels of type Quantum. This is controlled by the value of the QuantumDepth define. The default is 32 bit pixels (QuantumDepth=8), which provides the best performance and the least resource consumption. If additional color precision or range is desired, then ImageMagick may be compiled with QuantumDepth=16 or QuantumDepth=32. The following table shows the relationship between QuantumDepth, the type of Quantum, and the overall Quantum size. +

Effect Of QuantumDepth Values

+
+ ++++ + + + + + + + + + + + + + + + +
+

QuantumDepth

+

Quantum Typedef

+

Quantum Size

+

8

+

unsigned char

+

32 bits

+

16

+

unsigned short

+

64 bits

+

32

+

unsigned int

+

128 bits

+

Color Class

+

The Color base class is not intended to be used directly. Normally a user will construct a derived class or inherit from this class. Color arguments are must be scaled to fit the Quantum size. The Color class contains a pointer to a Quantum, which may be allocated by the Color class, or may refer to an existing pixel in an image.

+

An alternate way to construct the class is via an SVG-compatible color specification string (e.g. Color("red") or Color ("#FF0000")). Since the class may be constructed from a string, convenient strings may be passed in place of an explicit Color object in methods which accept a reference to Color. Color may also be converted to a std::string for convenience in user interfaces, and for saving settings to a text file.

+
+class Color +{ + public: + Color ( Quantum red_, + Quantum green_, + Quantum blue_ ); + Color ( Quantum red_, + Quantum green_, + Quantum blue_, + Quantum alpha_ ); + Color ( const std::string &svgColor_ ); + Color ( const char * svgColor_ ); + Color ( void ); + virtual ~Color ( void ); + Color ( const Color & color_ ); + + // Red color (range 0 to MaxRGB) + void redQuantum ( Quantum red_ ); + Quantum redQuantum ( void ) const; + + // Green color (range 0 to MaxRGB) + void greenQuantum ( Quantum green_ ); + Quantum greenQuantum ( void ) const; + + // Blue color (range 0 to MaxRGB) + void blueQuantum ( Quantum blue_ ); + Quantum blueQuantum ( void ) const; + + // Alpha level (range OpaqueOpacity=0 to TransparentOpacity=MaxRGB) + void alphaQuantum ( Quantum alpha_ ); + Quantum alphaQuantum ( void ) const; + + // Scaled (to 1.0) version of alpha for use in sub-classes + // (range opaque=0 to transparent=1.0) + void alpha ( double alpha_ ); + double alpha ( void ) const; + + // Does object contain valid color? + void isValid ( bool valid_ ); + bool isValid ( void ) const; + + // Set color via SVG color specification string + const Color& operator= ( const std::string & svgColor_ ); + const Color& operator= ( const char * svgColor_ ); + + // Assignment operator + Color& operator= ( const Color& color_ ); + + // Return SVG color specification string + /* virtual */ operator std::string() const; + + // Return ImageMagick Quantum + operator Quantum() const; + + // Construct color via ImageMagick Quantum + Color ( const Quantum &color_ ); + + // Set color via ImageMagick Quantum + const Color& operator= ( Quantum &color_ ); +}; +
+

Color Derived Classes

+ +++ + + + + + + + + + + +
+

ColorRGB

+

Representation of RGB color with red, green, and blue specified as ratios (0 to 1)

+

ColorGray

+

Representation of grayscale sRGB color (equal parts red, green, and blue) specified as a ratio (0 to 1)

+

ColorMono

+

Representation of a black/white color (true/false)

+

ColorYUV

+

Representation of a color in the YUV colorspace

+

ColorRGB

+

Representation of an sRGB color. All color arguments have a valid range of 0.0 - 1.0.

+
+class ColorRGB : public Color 
+{ 
+  public: 
+    ColorRGB ( double red_, double green_, double blue_ ); 
+    ColorRGB ( void ); 
+    ColorRGB ( const Color & color_ ); 
+    /* virtual */  ~ColorRGB ( void ); 
+  
+    void           red ( double red_ ); 
+    double         red ( void ) const; 
+  
+    void           green ( double green_ ); 
+    double         green ( void ) const; 
+  
+    void           blue ( double blue_ ); 
+    double         blue ( void ) const;
+
+    // Assignment operator from base class 
+    ColorRGB& operator= ( const Color& color_ ); 
+}; 
+
+

ColorGray

+

Representation of a grayscale color (in linear colorspace). Grayscale is simply RGB with equal parts of red, green, and blue. All double arguments have a valid range of 0.0 - 1.0.

+
+class ColorGray : public Color 
+{ 
+  public: 
+    ColorGray ( double shade_ ); 
+    ColorGray ( void ); 
+    ColorGray ( const Color & color_ ); 
+    /* virtual */ ~ColorGray ();
+
+    void           shade ( double shade_ ); 
+    double         shade ( void ) const;
+
+    // Assignment operator from base class 
+    ColorGray& operator= ( const Color& color_ ); 
+}; 
+
+

ColorMono

+

Representation of a black/white pixel (in RGB colorspace). Color arguments are constrained to 'false' (black pixel) and 'true' (white pixel).

+
+class ColorMono : public Color 
+{ 
+  public: 
+    ColorMono ( bool mono_ ); 
+    ColorMono ( void ); 
+    ColorMono ( const Color & color_ ); 
+    /* virtual */ ~ColorMono (); 
+  
+    void           mono ( bool mono_ ); 
+    bool           mono ( void ) const;
+
+    // Assignment operator from base class 
+    ColorMono& operator= ( const Color& color_ ); 
+}; 
+
+

ColorHSL

+

Representation of a color in Hue/Saturation/Luminosity (HSL) colorspace.

+
+class ColorHSL : public Color 
+{ 
+  public: 
+    ColorHSL ( double hue_, double saturation_, double luminosity_ ); 
+    ColorHSL ( void ); 
+    ColorHSL ( const Color & color_ ); 
+    /* virtual */  ~ColorHSL ( ); 
+  
+    void           hue ( double hue_ ); 
+    double         hue ( void ) const; 
+  
+    void           saturation ( double saturation_ ); 
+    double         saturation ( void ) const; 
+  
+    void           luminosity ( double luminosity_ ); 
+    double         luminosity ( void ) const;
+
+    // Assignment operator from base class 
+    ColorHSL& operator= ( const Color& color_ ); 
+}; 
+
+

ColorYUV

+

Representation of a color in YUV colorspace (used to encode color for television transmission).

+

Argument ranges:

+
+
Y: 0.0 through 1.0
+
U: -0.5 through 0.5
+
V: -0.5 through 0.5
+
+
+class ColorYUV : public Color 
+{ 
+  public: 
+    ColorYUV ( double y_, double u_, double v_ ); 
+    ColorYUV ( void ); 
+    ColorYUV ( const Color & color_ ); 
+    /* virtual */ ~ColorYUV ( void ); 
+  
+    void           u ( double u_ ); 
+    double         u ( void ) const; 
+  
+    void           v ( double v_ ); 
+    double         v ( void ) const; 
+  
+    void           y ( double y_ ); 
+    double         y ( void ) const;
+
+    // Assignment operator from base class 
+    ColorYUV& operator= ( const Color& color_ ); 
+}; 
+
+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Documentation.html b/share/doc/ImageMagick-7/www/Magick++/Documentation.html new file mode 100644 index 0000000..4076cf0 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Documentation.html @@ -0,0 +1,67 @@ + + + + + +Magick++ API Documentation + + + +

+
+

Magick++ provides a simple C++ API to the ImageMagick image processing library which supports reading and writing a huge number of image formats as well as supporting a broad spectrum of traditional image processing operations. The ImageMagick C API is complex and the data structures are currently not documented. Magick++ provides access to most of the features available from the C API but in a simple object-oriented and well-documented framework.

+

Magick++ is intended to support commercial-grade application development. In order to avoid possible conflicts with the user's application, all symbols contained in Magick++ (included by the header <Magick++.h>) are scoped to the namespace Magick. Symbols from the ImageMagick C library are imported under the MagickCore namespace to avoid possible conflicts and ImageMagick macros are only included within the Magick++ implementation so they won't impact the user's application.

+

The core class in Magick++ is the Image class. The Image class provides methods to manipulate a single image frame (e.g. a JPEG image). Standard Template Library (STL)compatible algorithms and function objects are provided in order to manipulate multiple image frames or to read and write file formats which support multiple image frames (e.g. GIF animations, MPEG animations, and Postscript files).

+

The Image class supports reference-counted memory management which supports the semantics of an intrinsic variable type (e.g. 'int') with an extremely efficient operator = and copy constructor (only a pointer is assigned) while ensuring that the image data is replicated as required so that it the image may be modified without impacting earlier generations. Since the Image class manages heap memory internally, images are best allocated via C++ automatic (stack-based) memory allocation. This support allows most programs using Magick++ to be written without using any pointers, simplifying the implementation and avoiding the risks of using pointers. When a program uses automatic memory allocation to allocate Magick++ images, that aspect of the program becomes naturally exception-safe and thread-safe.

+

The image class uses a number of supportive classes in order to specify arguments. Colors are specified via the Color class. Colors specified in X11-style string form are implicitly converted to the Color class. Geometry arguments (those specifying width, height, and/or x and y offset) are specified via the Geometry class. Similar to the Color class, geometries specified as an X11-style string are implicitly converted to the Geometry class. Two dimensional drawable objects are specified via the Drawable class. Drawable objects may be provided as a single object or as a list of objects to be rendered using the current image options. Montage options (a montage is a rendered grid of thumbnails in one image) are specified via the Montage class.

+

Errors are reported using C++ exceptions derived from the Exception class, which is itself derived from the standard C++ exception class. Exceptions are reported synchronous with the operation and are caught by the first matching try block as the stack is unraveled. This allows a clean coding style in which multiple related Magick++ commands may be executed with errors handled as a unit rather than line-by-line. Since the Image object provides reference-counted memory management, unreferenced images on the stack are automagically cleaned up, avoiding the potential for memory leaks.

+

For ease of access, the documentation for the available user-level classes is available via the following table.

+
+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Magick++ User-Level Classes
BlobBinary Large OBject container.
CoderInfoReport information about supported image formats (use with +coderInfoList())
ColorColor specification.
DrawableDrawable shape (for input to 'draw').
ExceptionC++ exception objects.
GeometryGeometry specification.
ImageImage frame. This is the primary object in Magick++.
MontageMontage options for montageImages().
PixelsLow-level access to image pixels.
STLSTL algorithms and function objects for operating on +containers of image frames.
TypeMetricContainer for font type metrics (use with +Image::fontTypeMetrics).
+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Drawable.html b/share/doc/ImageMagick-7/www/Magick++/Drawable.html new file mode 100644 index 0000000..71d12b2 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Drawable.html @@ -0,0 +1,798 @@ + + + + + +Magick++ API: Drawing on Images + + + +
+

Magick::Drawable

+

Drawable provides a convenient interface for preparing vector, image, or text arguments for the Image::draw() method. Each instance of a Drawable sub-class represents a single drawable object. Drawable objects may be drawn "one-by-one" via multiple invocations of the Image draw() method, or may be drawn "all-at-once" by passing a list of Drawable objects to the Image draw() method. The one-by-one approach is convenient for simple drawings, while the list-based approach is appropriate for drawings which require more sophistication.

+

The following is an example using the Drawable subclasses with a one-by-one approach to draw the following figure:

+

example +

+
+#include <string> +#include <iostream> +#include <Magick++.h> + +using namespace std; +using namespace Magick; + +int main(int /*argc*/,char **argv) +{ + try { + InitializeMagick(*argv); + + // Create base image (white image of 300 by 200 pixels) + Image image( Geometry(300,200), Color("white") ); + + // Set draw options + image.strokeColor("red"); // Outline color + image.fillColor("green"); // Fill color + image.strokeWidth(5); + + // Draw a circle + image.draw( DrawableCircle(100,100, 50,100) ); + + // Draw a rectangle + image.draw( DrawableRectangle(200,200, 270,170) ); + + // Display the result + image.display( ); + } + catch( exception & error_ ) + { + cout << "Caught exception: " << error_.what() << endl; + return 1; + } + + return 0; +} +
+

Since Drawable is an object it may be saved in an array or a list for later (perhaps repeated) use. The following example shows how to draw the same figure using the list-based approach:

+
+#include <string> +#include <iostream> +#include <list> +#include <Magick++.h> + +using namespace std; +using namespace Magick; + +int main(int /*argc*/,char **/*argv*/) +{ + try { + + InitializeMagick(*argv); + + // Create base image (white image of 300 by 200 pixels) + Image image( Geometry(300,200), Color("white") ); + + // Construct drawing list + std::list<Magick::Drawable> drawList; + + // Add some drawing options to drawing list + drawList.push_back(DrawableStrokeColor("red")); // Outline color + drawList.push_back(DrawableStrokeWidth(5)); // Stroke width + drawList.push_back(DrawableFillColor("green")); // Fill color + + // Add a Circle to drawing list + drawList.push_back(DrawableCircle(100,100, 50,100)); + + // Add a Rectangle to drawing list + drawList.push_back(DrawableRectangle(200,100, 270,170)); + + // Draw everything using completed drawing list + image.draw(drawList); + + // Display the result + image.display( ); + } + catch( exception & error_ ) + { + cout << "Caught exception: " << error_.what() << endl; + return 1; + } + + return 0; +} +
+

Drawable depends on the simple Coordinate structure which represents a pair of x,y coodinates. The methods provided by the Coordinate structure are shown in the following table:

+

Coordinate Structure Methods

+ + + + + + + + + + + + + + + + + + + +
+

Method/Member

+

Signature

+

Description

+

Coordinate

+

void

+

Default Constructor

+

double x_, double y_

+

Constructor, setting first & second

+

x

+

double x_

+

x coordinate member

+

y

+

double y_

+

y coordinate member

+

The Drawable classes are shown in the following table. Only constructor signatures are documented here. Each Drawable class also provides methods by which each individual parameter may be adjusted.

+

Drawable Classes

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Sub-Class

+

Constructor Signature

+

Description

+

DrawableAffine

+

double sx_, double sy_, double rx_, double ry_, double tx_, double ty_

+

Specify a transformation matrix to adjust scaling, rotation, and translation (coordinate transformation) for subsequently drawn objects in the same or decendent drawing context. The sx_ & sy_ parameters represent the x & y scale factors, the rx_ & ry_ parameters represent the x & y rotation, and the tx_ & ty_ parameters represent the x & y translation.

+

void

+

Specify a transformation matrix to adjust scaling, rotation, and translation (coordinate transformation) for subsequently drawn objects in the same or decendent drawing context. Initialized to unity (no effect) affine values. Use class methods (not currently documented) to adjust individual parameters from their unity values.

+

DrawableAngle

+

double angle_

+

Set drawing angle

+

DrawableArc

+

double startX_, double startY_, double endX_, double endY_, double startDegrees, double endDegrees_

+

Draw an arc using the stroke color and based on the circle starting at coordinates startX_,startY_, and ending with coordinates endX_,endY_, and bounded by the rotational arc startDegrees_,endDegrees_

+

DrawableBezier

+

const std::list<Magick::Coordinate> &coordinates_

+

Draw a bezier curve using the stroke color and based on the coordinates specified by the coordinates_ list.

+

DrawableClipPath

+

const std::string &id_

+

Select a drawing clip path matching id_.

+

DrawableCircle

+

double originX_, double originY_, double perimX_, double perimY_

+

Draw a circle using the stroke color and thickness using specified origin and perimeter coordinates. If a fill color is specified, then the object is filled.

+

DrawableColor

+

double x_, double y_, PaintMethod paintMethod_

+

Color image according to paintMethod. The point method recolors the target pixel. The replace method recolors any pixel that matches the color of the target pixel. Floodfill recolors any pixel that matches the color of the target pixel and is a neighbor, whereas filltoborder recolors any neighbor pixel that is not the border color. Finally, reset recolors all pixels.

+

DrawableCompositeImage

+

double x_, double y_, const std::string &filename_

+

Composite current image with contents of specified image, at specified coordinates. If the matte attribute is set to true, then the image composition will consider an alpha channel, or transparency, present in the image file so that non-opaque portions allow part (or all) of the composite image to show through.

+

double x_, double y_, const Image &image_

+

double x_, double y_, double width_, double height_, const std::string &filename_

+

Composite current image with contents of specified image, rendered with specified width and height, at specified coordinates. If the matte attribute is set to true, then the image composition will consider an alpha channel, or transparency, present in the image file so that non-opaque portions allow part (or all) of the composite image to show through. If the specified width or height is zero, then the image is composited at its natural size, without enlargement or reduction.

+

double x_, double y_, double width_, double height_, const Image &image_

+

double x_, double y_, double width_, double height_, const std::string &filename_, CompositeOperator composition_

+

Composite current image with contents of specified image, rendered with specified width and height, using specified composition algorithm, at specified coordinates. If the matte attribute is set to true, then the image composition will consider an alpha channel, or transparency, present in the image file so that non-opaque portions allow part (or all) of the composite image to show through. If the specified width or height is zero, then the image is composited at its natural size, without enlargement or reduction.

+

double x_, double y_, double width_, double height_, const Image &image_, CompositeOperator composition_

+

DrawableDashArray

+

const double* dasharray_

+

Specify the pattern of dashes and gaps used to stroke paths. The strokeDashArray represents a zero-terminated array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. A typical strokeDashArray_ array might contain the members 5 3 2 0, where the zero value indicates the end of the pattern array.

+

DrawableDashOffset

+

double offset_

+

Specify the distance into the dash pattern to start the dash. See documentation on SVG's stroke-dashoffset property for usage details.

+

DrawableEllipse

+

double originX_, double originY_, double radiusX_, double radiusY_, double arcStart_, double arcEnd_

+

Draw an ellipse using the stroke color and thickness, specified origin, x & y radius, as well as specified start and end of arc in degrees. If a fill color is specified, then the object is filled.

+

DrawableFillColor

+

const Color &color_

+

Specify drawing object fill color.

+

DrawableFillRule

+

FillRule fillRule_

+

Specify the algorithm which is to be used to determine what parts of the canvas are included inside the shape. See documentation on SVG's fill-rule property for usage details.

+

DrawableFillOpacity

+

double opacity_

+

Specify opacity to use when drawing using fill color.

+

DrawableFont

+

const std::string &font_

+

Specify font name to use when drawing text.

+

const std::string &family_,
+StyleType style_,
+unsigned int weight_,
+StretchType stretch_

+

Specify font family, style, weight (one of the set { 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 } with 400 being the normal size), and stretch to be used to select the font used when drawing text. Wildcard matches may be applied to style via the AnyStyle enumeration, applied to weight if weight is zero, and applied to stretch via the AnyStretch enumeration.

+

DrawableGravity

+

GravityType gravity_

+

Specify text positioning gravity.

+

DrawableLine

+

double startX_, double startY_, double endX_, double endY_

+

Draw a line using stroke color and thickness using starting and ending coordinates

+

DrawableMatte

+

double x_, double y_, PaintMethod paintMethod_

+

Change the pixel matte value to transparent. The point method changes the matte value of the target pixel. The replace method changes the matte value of any pixel that matches the color of the target pixel. Floodfill changes the matte value of any pixel that matches the color of the target pixel and is a neighbor, whereas filltoborder changes the matte value of any neighbor pixel that is not the border color, Finally reset changes the matte value of all pixels.

+

DrawableMiterLimit

+

size_t miterLimit_

+

Specify miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'. The default value of this parameter is 4.

+

DrawablePath

+

const std::list<Magick::VPath> &path_

+

Draw on image using vector path.

+

DrawablePoint

+

double x_, double y_

+

Draw a point using stroke color and thickness at coordinate

+

DrawablePointSize

+

double pointSize_

+

Set font point size.

+

DrawablePolygon

+

const std::list<Magick::Coordinate> &coordinates_

+

Draw an arbitrary polygon using stroke color and thickness consisting of three or more coordinates contained in an STL list. If a fill color is specified, then the object is filled.

+

DrawablePolyline

+

const std::list<Magick::Coordinate> &coordinates_

+

Draw an arbitrary polyline using stroke color and thickness consisting of three or more coordinates contained in an STL list. If a fill color is specified, then the object is filled.

+

DrawablePopClipPath

+

void

+

Pop (terminate) clip path definition started by DrawablePushClipPath.

+

DrawablePopGraphicContext

+

void

+

Pop Graphic Context. Removing the current graphic context from the graphic context stack restores the options to the values they had prior to the preceding DrawablePushGraphicContext operation.

+

DrawablePushClipPath

+

const std::string &id_

+

Push (create) clip path definition with id_. Clip patch definition consists of subsequent drawing commands, terminated by DrawablePopClipPath.

+

DrawablePushGraphicContext

+

void

+

Push Graphic Context. When a graphic context is pushed, options set after the context is pushed (such as coordinate transformations, color settings, etc.) are saved to a new graphic context. This allows related options to be saved on a graphic context "stack" in order to support heirarchical nesting of options. When DrawablePopGraphicContext is used to pop the current graphic context, the options in effect during the last DrawablePushGraphicContext operation are restored.

+

DrawablePushPattern

+

std::string &id_, ssize_t x_, ssize_t y_, size_t width_, size_t height_

+

Start a pattern definition with arbitrary pattern name specified by id_, pattern offset specified by x_ and y_, and pattern size specified by width_ and height_. The pattern is defined within the coordinate system defined by the specified offset and size. Arbitrary drawing objects (including DrawableCompositeImage) may be specified between DrawablePushPattern and DrawablePopPattern in order to draw the pattern. Normally the pair DrawablePushGraphicContext & DrawablePopGraphicContext are used to enclose a pattern definition. Pattern definitions are terminated by a DrawablePopPattern object.

+

DrawablePopPattern

+

void

+

Terminate a pattern definition started via DrawablePushPattern.

+

DrawableRectangle

+

double upperLeftX_, double upperLeftY_, double lowerRightX_, double lowerRightY

+

Draw a rectangle using stroke color and thickness from upper-left coordinates to lower-right coordinates. If a fill color is specified, then the object is filled.

+

DrawableRotation

+

double angle_

+

Set rotation to use when drawing (coordinate transformation).

+

DrawableRoundRectangle

+

double centerX_, double centerY_, double width_, double hight_, double cornerWidth_, double cornerHeight_

+

Draw a rounded rectangle using stroke color and thickness, with specified center coordinate, specified width and height, and specified corner width and height. If a fill color is specified, then the object is filled.

+

DrawableScaling

+

double x_, double y_

+

Apply scaling in x and y direction while drawing objects (coordinate transformation).

+

DrawableSkewX

+

double angle_

+

Apply Skew in X direction (coordinate transformation)

+

DrawableSkewY

+

double angle_

+

Apply Skew in Y direction

+

DrawableStrokeAntialias

+

bool flag_

+

Antialias while drawing lines or object outlines.

+

DrawableStrokeColor

+

const Color &color_

+

Set color to use when drawing lines or object outlines.

+

DrawableStrokeLineCap

+

LineCap linecap_

+

Specify the shape to be used at the end of open subpaths when they are stroked. Values of LineCap are UndefinedCap, ButtCap, RoundCap, and SquareCap.

+

DrawableStrokeLineJoin

+

LineJoin linejoin_

+

Specify the shape to be used at the corners of paths (or other vector shapes) when they are stroked. Values of LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.

+

DrawableStrokeOpacity

+

double opacity_

+

Opacity to use when drawing lines or object outlines.

+

DrawableStrokeWidth

+

double width_

+

Set width to use when drawing lines or object outlines.

+

DrawableText

+

double x_, double y_, std::string text_

+

Annotate image with text using stroke color, font, font pointsize, and box color (text background color), at specified coordinates. If text contains special format characters the image filename, type, width, height, or other image attributes may be incorporated in the text (see label()).

+

const double x_, const double y_, const std::string &text_, const std::string &encoding_

+

Annotate image with text represented with text encoding, using current stroke color, font, font pointsize, and box color (text background color), at specified coordinates. If text contains special format characters the image filename, type, width, height, or other image attributes may be incorporated in the text (see label()).

+

The text encoding specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

+

DrawableTextAntialias

+

bool flag_

+

Antialias while drawing text (default true). The main reason to disable text antialiasing is to avoid adding new colors to the image.

+

DrawableTextDecoration

+

DecorationType decoration_

+

Specify decoration (e.g. UnderlineDecoration) to apply to text.

+

DrawableTextUnderColor

+

const Color &color_

+

Draw a box under rendered text using the specified color.

+

DrawableTranslation

+

double x_, double y_

+

Apply coordinate translation (set new coordinate origin).

+

DrawableViewbox

+

ssize_t x1_, ssize_t y1_, ssize_t x2_, ssize_t y2_

+

Dimensions of the output viewbox. If the image is to be written to a vector format (e.g. MVG or SVG), then a DrawablePushGraphicContext() object should be pushed to the head of the list, followed by a DrawableViewbox() statement to establish the output canvas size. A matching DrawablePopGraphicContext() object should be pushed to the tail of the list.

+

Vector Path Classes

+

The vector paths supported by Magick++ are based on those supported by the SVG XML specification. Vector paths are not directly drawable, they must first be supplied as a constructor argument to the DrawablePath class in order to create a drawable object. The DrawablePath class effectively creates a drawable compound component which may be replayed as desired. If the drawable compound component consists only of vector path objects using relative coordinates then the object may be positioned on the image by preceding it with a DrawablePath which sets the current drawing coordinate. Alternatively coordinate transforms may be used to translate the origin in order to position the object, rotate it, skew it, or scale it.

+

The "moveto" commands

+

The "moveto" commands establish a new current point. The effect is as if the "pen" were lifted and moved to a new location. A path data segment must begin with either one of the "moveto" commands or one of the "arc" commands. Subsequent "moveto" commands (i.e., when the "moveto" is not the first command) represent the start of a new subpath:

+

Moveto Classes

+ ++++ + + + + + + + + + + + + + +
+

Sub-Class

+

Constructor Signature

+

Description

+

PathMovetoAbs

+

const Magick::Coordinate &coordinate_

+

Start a new sub-path at the given coordinate. PathMovetoAbs indicates that absolute coordinates will follow; PathMovetoRel indicates that relative coordinates will follow. If a relative moveto appears as the first element of the path, then it is treated as a pair of absolute coordinates. If a moveto is followed by multiple pairs of coordinates, the subsequent pairs are treated as implicit lineto commands.

+

const std::list<Magick::Coordinate> &coordinates_

+

PathMovetoRel

+

const Magick::Coordinate &coordinate_

+

const std::list<Magick::Coordinate> &coordinates_

+

The "closepath" command

+

The "closepath" command causes an automatic straight line to be drawn from the current point to the initial point of the current subpath:

+

Closepath Classes

+ ++++ + + + + + + +
+

Sub-Class

+

Constructor Signature

+

Description

+

PathClosePath

+

void

+

Close the current subpath by drawing a straight line from the current point to current subpath's most recent starting point (usually, the most recent moveto point).

+

The "lineto" commands

+

The various "lineto" commands draw straight lines from the current point to a new point:

+

Lineto Classes

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Sub-Class

+

Constructor Signature

+

Description

+

PathLinetoAbs

+

const Magick::Coordinate& coordinate_

+

Draw a line from the current point to the given coordinate which becomes the new current point. PathLinetoAbs indicates that absolute coordinates are used; PathLinetoRel indicates that relative coordinates are used. A number of coordinates pairs may be specified in a list to draw a polyline. At the end of the command, the new current point is set to the final set of coordinates provided.

+

const std::list<Magick::Coordinate> &coordinates_

+

PathLinetoRel

+

const Magick::Coordinate& coordinate_

+

const std::list<Magick::Coordinate> &coordinates_

+

PathLinetoHorizontalAbs

+

double x_

+

Draws a horizontal line from the current point (cpx, cpy) to (x, cpy). PathLinetoHorizontalAbs indicates that absolute coordinates are supplied; PathLinetoHorizontalRel indicates that relative coordinates are supplied. At the end of the command, the new current point becomes (x, cpy) for the final value of x.

+

PathLinetoHorizontalRel

+

double x_

+

PathLinetoVerticalAbs

+

double y_

+

Draws a vertical line from the current point (cpx, cpy) to (cpx, y). PathLinetoVerticalAbs indicates that absolute coordinates are supplied; PathLinetoVerticalRel indicates that relative coordinates are supplied. At the end of the command, the new current point becomes (cpx, y) for the final value of y.

+

PathLinetoVerticalRel

+

double y_

+

The curve commands

+

These three groups of commands draw curves:

+ +

The cubic Bézier curve commands

+

The cubic Bézier commands depend on the PathCurvetoArgs argument class, which has the constructor signature

+
+  PathCurvetoArgs( double x1_, double y1_, 
+                   double x2_, double y2_, 
+                   double x_, double y_ );
+
+

The commands are as follows:

+

Cubic Bézier Curve Classes

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Sub-Class

+

Constructor Signature

+

Description

+

PathCurvetoAbs

+

const Magick::PathCurvetoArgs &args_

+

Draws a cubic Bézier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve. PathCurvetoAbs indicates that absolutecoordinates will follow; PathCurvetoRel indicates that relative coordinates will follow. Multiple sets of coordinates may be specified to draw a polybezier. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+

const std::list<Magick::PathCurvetoArgs> &args_

+

PathCurvetoRel

+

const Magick::PathCurvetoArgs &args_

+

const std::list<Magick::PathCurvetoArgs> &args_

+

PathSmoothCurvetoAbs

+

const Magick::Coordinate &coordinates_

+

Draws a cubic Bézier curve from the current point to (x,y). The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an PathCurvetoAbs, PathCurvetoRel, PathSmoothCurvetoAbs or PathSmoothCurvetoRel, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). PathSmoothCurvetoAbs indicates that absolute coordinates will follow; PathSmoothCurvetoRel indicates that relative coordinates will follow. Multiple sets of coordinates may be specified to draw a polybezier. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+

const std::list<Magick::Coordinate> &coordinates_

+

PathSmoothCurvetoRel

+

const Magick::Coordinate &coordinates_

+

const std::list<Magick::Coordinate> &coordinates_

+

The quadratic Bézier curve commands

+

The quadratic Bézier commands depend on the PathQuadraticCurvetoArgs argument class, which has the constructor signature:

+
+  PathQuadraticCurvetoArgs( double x1_, double y1_, 
+                            double x_, double y_ );
+
+

The quadratic Bézier commands are as follows:

+

Quadratic Bézier Curve Classes

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Sub-Class

+

Constructor Signature

+

Description

+

PathQuadraticCurvetoAbs

+

const Magick::PathQuadraticCurvetoArgs &args_

+

Draws a quadratic Bézier curve from the current point to (x,y) using (x1,y1) as the control point. PathQuadraticCurvetoAbs indicates that absolute coordinates will follow; PathQuadraticCurvetoRel indicates that relative coordinates will follow. Multiple sets of coordinates may be specified to draw a polybezier. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+

const std::list<Magick::PathQuadraticCurvetoArgs> &args_

+

PathQuadraticCurvetoRel

+

const Magick::PathQuadraticCurvetoArgs &args_

+

const std::list<Magick::PathQuadraticCurvetoArgs> &args_

+

PathSmoothQuadraticCurvetoAbs

+

const Magick::Coordinate &coordinate_

+

Draws a quadratic Bézier curve from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous
+command relative to the current point. (If there is no previous command or if the previous command was not a PathQuadraticCurvetoAbs, PathQuadraticCurvetoRel, PathSmoothQuadraticCurvetoAbs or PathSmoothQuadraticCurvetoRel, assume the control point is coincident with the current point.) PathSmoothQuadraticCurvetoAbs indicates that absolute coordinates will follow; PathSmoothQuadraticCurvetoRel indicates that relative coordinates will follow. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+

const std::list<Magick::Coordinate> &coordinates_

+

PathSmoothQuadraticCurvetoRel

+

const Magick::Coordinate &coordinate_

+

const std::list<Magick::Coordinate> &coordinates_

+

The elliptical arc curve commands

+

The elliptical arc curve commands depend on the PathArcArgs argument class, which has the constructor signature:

+
+   PathArcArgs( double radiusX_, double radiusY_, 
+                double xAxisRotation_, bool largeArcFlag_, 
+                bool sweepFlag_, double x_, double y_ );
+
+

The elliptical arc commands are as follows:

+

Elliptical Arc Curve Classes

+ ++++ + + + + + + + + + + + + + +
+

Sub-Class

+

Constructor Signature

+

Description

+

PathArcAbs

+

const Magick::PathArcArgs &coordinates_

+

Draws an elliptical arc from the current point to (x, y). The size and orientation of the ellipse are defined by two radii (radiusX, radiusY) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automagically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is true then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

+

const std::list<Magick::PathArcArgs> &coordinates_

+

PathArcRel

+

const Magick::PathArcArgs &coordinates_

+

const std::list<Magick::PathArcArgs> &coordinates_

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Drawable_example_1.png b/share/doc/ImageMagick-7/www/Magick++/Drawable_example_1.png new file mode 100644 index 0000000..50e2045 Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/Drawable_example_1.png differ diff --git a/share/doc/ImageMagick-7/www/Magick++/Enumerations.html b/share/doc/ImageMagick-7/www/Magick++/Enumerations.html new file mode 100644 index 0000000..2182b2c --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Enumerations.html @@ -0,0 +1,2523 @@ + + + + + +Magick++ API: Enumerations + + + +
+

Enumerations

+ + + + +
+

> + Contents

+
+ + + + + +
+

> + ChannelType

+
+

ChannelType is used as an +argument when doing color separations. Use ChannelType when +extracting a layer from an image. MatteChannel is useful for +extracting the opacity values from an image. Note that an image may +be represented in RGB, RGBA, CMYK, or CMYKA, pixel formats and a +channel may only be extracted if it is valid for the current pixel +format.

+

ChannelType

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedChannel

+
+

Unset value.

+
+

RedChannel

+
+

Extract red channel (RGB images only)

+
+

CyanChannel

+
+

Extract cyan channel (CMYK images only)

+
+

GreenChannel

+
+

Extract green channel (RGB images only)

+
+

MagentaChannel

+
+

Extract magenta channel (CMYK images only)

+
+

BlueChannel

+
+

Extract blue channel (RGB images only)

+
+

YellowChannel

+
+

Extract yellow channel (CMYK images only)

+
+

OpacityChannel

+
+

Extract matte (opacity values) channel (CMYKA images only)

+
+

BlackChannel

+
+

Extract black channel (CMYK images only)

+
+

MatteChannel

+
+

Extract matte (opacity values) channel (RGB images only)

+
+


+

+ + + + +
+

+ + > + ClassType

+
+

ClassType specifies the image +storage class. +

+

ClassType

+ + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedClass

+
+

Unset value.

+
+

DirectClass

+
+

Image is composed of pixels which represent literal color + values.

+
+

PseudoClass

+
+

Image is composed of pixels which specify an index in a color + palette.

+
+


+

+ + + + +
+

+ > + ColorspaceType

+
+

The ColorspaceType enumeration is used to specify the colorspace +that quantization (color reduction and mapping) is done under or to +specify the colorspace when encoding an output image. Colorspaces are +ways of describing colors to fit the requirements of a particular +application (e.g. Television, offset printing, color monitors). +Color reduction, by default, takes place in the RGBColorspace. +Empirical evidence suggests that distances in color spaces such as +YUVColorspace or YIQColorspace correspond to perceptual +color differences more closely han do distances in RGB space. These +color spaces may give better results when color reducing an image. +Refer to quantize for more details. +

+

When encoding an output image, the +colorspaces RGBColorspace, CMYKColorspace, and +GRAYColorspace may be specified. The CMYKColorspace +option is only applicable when writing TIFF, JPEG, and Adobe +Photoshop bitmap (PSD) files. +

+

ColorspaceType

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedColorspace

+
+

Unset value.

+
+

CMYKColorspace

+
+

Cyan-Magenta-Yellow-Black colorspace. CYMK is a subtractive + color system used by printers and photographers for the rendering + of colors with ink or emulsion, normally on a white surface.

+
+

GRAYColorspace

+
+

Grayscale colorspace

+
+

HCLColorspace

+
+

+
+

LabColorspace

+
+

+
+

LCHabColorspace

+
+

+
+

LuvColorspace

+
+

+
+

OHTAColorspace

+
+

+
+

RGBColorspace

+
+

Red-Green-Blue colorspace.

+
+

sRGBColorspace

+
+

+
+

scRGBColorspace

+
+

+
+

TransparentColorspace

+
+

The Transparent color space behaves uniquely in that it + preserves the matte channel of the image if it exists.

+
+

XYZColorspace

+
+

+
+

YCbCrColorspace

+
+

+
+

YCCColorspace

+
+

+
+

YIQColorspace

+
+

+
+

YPbPrColorspace

+
+

+
+

YUVColorspace

+
+

Y-signal, U-signal, and V-signal colorspace. YUV is most widely + used to encode color for use in television transmission.

+
+


+

+ + + + +
+

+ > + CompositeOperator

+
+

CompositeOperator is used to +select the image composition algorithm used to compose a composite +image with an image. By default, each of the composite +image pixels are replaced by the corresponding image tile pixel. +Specify CompositeOperator to select a different algorithm. +

+

CompositeOperator

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedCompositeOp

+
+

Unset value.

+
+

OverCompositeOp

+
+

The result is the union of the the two image shapes with the + composite image obscuring image in the region of + overlap.

+
+

InCompositeOp

+
+

The result is a simply composite image cut by the shape + of image. None of the image data of image is included in + the result.

+
+

OutCompositeOp

+
+

The resulting image is composite image with the shape of + image cut out.

+
+

AtopCompositeOp

+
+

The result is the same shape as image image, with + composite image obscuring image there the image + shapes overlap. Note that this differs from OverCompositeOp + because the portion of composite image outside of image's + shape does not appear in the result.

+
+

XorCompositeOp

+
+

The result is the image data from both composite image + and image that is outside the overlap region. The overlap + region will be blank.

+
+

PlusCompositeOp

+
+

The result is just the sum of the image data. Output + values are cropped to 255 (no overflow). This operation is + independent of the matte channels.

+
+

MinusCompositeOp

+
+

The result of composite image - image, with + overflow cropped to zero. The matte chanel is ignored (set to 255, + full coverage).

+
+

AddCompositeOp

+
+

The result of composite image + image, with + overflow wrapping around (mod 256).

+
+

SubtractCompositeOp

+
+

The result of composite image - image, with + underflow wrapping around (mod 256). The add and subtract + operators can be used to perform reverible transformations.

+
+

DifferenceCompositeOp

+
+

The result of abs(composite image - image). This + is useful for comparing two very similar images.

+
+

MultiplyCompositeOp

+
+

+
+

BumpmapCompositeOp

+
+

The result image shaded by composite image.

+
+

CopyCompositeOp

+
+

The resulting image is image replaced with composite + image. Here the matte information is ignored.

+
+

CopyRedCompositeOp

+
+

The resulting image is the red layer in image replaced + with the red layer in composite image. The other layers are + copied untouched.

+
+

CopyGreenCompositeOp

+
+

The resulting image is the green layer in image replaced + with the green layer in composite image. The other layers + are copied untouched.

+
+

CopyBlueCompositeOp

+
+

The resulting image is the blue layer in image replaced + with the blue layer in composite image. The other layers + are copied untouched.

+
+

CopyOpacityCompositeOp

+
+

The resulting image is the matte layer in image replaced + with the matte layer in composite image. The other layers + are copied untouched. +

+

The image compositor requires a matte, or alpha channel in the + image for some operations. This extra channel usually defines a + mask which represents a sort of a cookie-cutter for the image. + This is the case when matte is 255 (full coverage) for pixels + inside the shape, zero outside, and between zero and 255 on the + boundary. For certain operations, if image does not + have a matte channel, it is initialized with 0 for any pixel + matching in color to pixel location (0,0), otherwise 255 (to work + properly borderWidth must be 0).

+
+

ClearCompositeOp

+
+

+
+

DissolveCompositeOp

+
+

+
+

DisplaceCompositeOp

+
+

+
+

ModulateCompositeOp

+
+

+
+

ThresholdCompositeOp

+
+

+
+


+

+ + + + +
+

>CompressionType

+
+

CompressionType is used to +express the desired compression type when encoding an image. Be aware +that most image types only support a sub-set of the available +compression types. If the compression type specified is incompatable +with the image, ImageMagick selects a compression type compatable +with the image type. +

+

CompressionType

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedCompression

+
+

Unset value.

+
+

NoCompression

+
+

No compression

+
+

BZipCompression

+
+

BZip (Burrows-Wheeler block-sorting text compression algorithm + and Huffman coding) as used by bzip2 utilities

+
+

FaxCompression

+
+

CCITT Group 3 FAX compression

+
+

Group4Compression

+
+

CCITT Group 4 FAX compression (used only for TIFF)

+
+

JPEGCompression

+
+

JPEG compression

+
+

LZWCompression

+
+

Lempel-Ziv-Welch (LZW) compression (caution, patented by + Unisys)

+
+

RunlengthEncodedCompression

+
+

Run-Length encoded (RLE) compression

+
+

ZipCompression

+
+

Lempel-Ziv compression (LZ77) as used in PKZIP and GNU gzip.

+
+


+

+ + + + +
+

+ > + DecorationType

+
+

The DecorationType enumerations +are used to specify line decorations of rendered text. +

+

DecorationType

+ + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

NoDecoration

+
+

No decoration

+
+

UnderlineDecoration

+
+

Underlined text

+
+

OverlineDecoration

+
+

Overlined text

+
+

LineThroughDecoration

+
+

Strike-through text

+
+


+

+ + + + +
+

>EndianType

+
+

The EndianType enumerations are +used to specify the endian option for formats which support it (e.g. +TIFF). +

+


+

+

EndianType

+ + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedEndian

+
+

Not defined (default)

+
+

LSBEndian

+
+

Little endian (like Intel X86 and DEC Alpha)

+
+

MSBEndian

+
+

Big endian (like Motorola 68K, Mac PowerPC, & SPARC)

+
+


+

+ + + + +
+

>FillRule

+
+

FillRule specifies the algorithm +which is to be used to determine what parts of the canvas are +included inside the shape. See the documentation on SVG's fill-rule +property for usage details. +

+

FillRule

+ + + + + + + + + + + + + +
+

UndefinedRule

+
+

Fill rule not specified

+
+

EvenOddRule

+
+

See SVG fill-rule evenodd rule.

+
+

NonZeroRule

+
+

See SVG fill-rule nonzero rule.

+
+


+

+ + + + +
+

>FilterTypes

+
+

FilterTypes is used to adjust +the filter algorithm used when resizing images. Different filters +experience varying degrees of success with various images and can +take sipngicantly different amounts of processing time. +ImageMagick uses the LanczosFilter by default since this +filter has been shown to provide the best results for most images in +a reasonable amount of time. Other filter types (e.g. TriangleFilter) +may execute much faster but may show artifacts when the image is +re-sized or around diagonal lines. The only way to be sure is to test +the filter with sample images. +

+

FilterTypes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedFilter

+
+

Unset value.

+
+

PointFilter

+
+

Point Filter

+
+

BoxFilter

+
+

Box Filter

+
+

TriangleFilter

+
+

Triangle Filter

+
+

HermiteFilter

+
+

Hermite Filter

+
+

HanningFilter

+
+

Hanning Filter

+
+

HammingFilter

+
+

Hamming Filter

+
+

BlackmanFilter

+
+

Blackman Filter

+
+

GaussianFilter

+
+

Gaussian Filter

+
+

QuadraticFilter

+
+

Quadratic Filter

+
+

CubicFilter

+
+

Cubic Filter

+
+

CatromFilter

+
+

Catrom Filter

+
+

MitchellFilter

+
+

Mitchell Filter

+
+

LanczosFilter

+
+

Lanczos Filter

+
+

BesselFilter

+
+

Bessel Filter

+
+

SincFilter

+
+

Sinc Filter

+
+


+

+ + + + +
+

>GravityType

+
+

GravityType specifies +positioning of an object (e.g. text, image) within a bounding region +(e.g. an image). Gravity provides a convenient way to locate objects +irrespective of the size of the bounding region, in other words, you +don't need to provide absolute coordinates in order to position an +object. A common default for gravity is NorthWestGravity. +

+

GravityType

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

ForgetGravity

+
+

Don't use gravity.

+
+

NorthWestGravity

+
+

Position object at top-left of region.

+
+

NorthGravity

+
+

Postiion object at top-center of region

+
+

NorthEastGravity

+
+

Position object at top-right of region

+
+

WestGravity

+
+

Position object at left-center of region

+
+

CenterGravity

+
+

Position object at center of region

+
+

EastGravity

+
+

Position object at right-center of region

+
+

SouthWestGravity

+
+

Position object at left-bottom of region

+
+

SouthGravity

+
+

Position object at bottom-center of region

+
+

SouthEastGravity

+
+

Position object at bottom-right of region

+
+


+

+ + + + +
+

>ImageType

+
+

ImageType indicates the type +classification of the image. +

+

ImageType

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedType

+
+

Unset value.

+
+

BilevelType

+
+

Monochrome image

+
+

GrayscaleType

+
+

Grayscale image

+
+

GrayscaleMatteType

+
+

Grayscale image with opacity

+
+

PaletteType

+
+

Indexed color (palette) image

+
+

PaletteMatteType

+
+

Indexed color (palette) image with opacity

+
+

TrueColorType

+
+

Truecolor image

+
+

TrueColorMatteType

+
+

Truecolor image with opacity

+
+

ColorSeparationType

+
+

Cyan/Yellow/Magenta/Black (CYMK) image

+
+


+

+ + + + +
+

>InterlaceType

+
+

InterlaceType specifies the ordering of the red, green, and +blue pixel information in the image. Interlacing is usually used to +make image information available to the user faster by taking +advantage of the space vs time tradeoff. For example, interlacing +allows images on the Web to be recognizable sooner and satellite +images to accumulate/render with image resolution increasing over +time. +

+

Use LineInterlace or +PlaneInterlace to create an interlaced GIF or progressive JPEG +image. +

+

InterlaceType

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedInterlace

+
+

Unset value.

+
+

NoInterlace

+
+

Don't interlace image (RGBRGBRGBRGBRGBRGB...)

+
+

LineInterlace

+
+

Use scanline interlacing (RRR...GGG...BBB...RRR...GGG...BBB...)

+
+

PlaneInterlace

+
+

Use plane interlacing (RRRRRR...GGGGGG...BBBBBB...)

+
+

PartitionInterlace

+
+

Similar to plane interlaing except that the different planes + are saved to individual files (e.g. image.R, image.G, and image.B)

+
+


+

+ + + + +
+

>ChannelType

+
+

ChannelType is used as an +argument when doing color separations. Use ChannelType when +extracting a layer from an image. MatteLayer is useful for +extracting the opacity values from an image. +

+

ChannelType

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedLayer

+
+

Unset value.

+
+

RedLayer

+
+

Select red layer

+
+

GreenLayer

+
+

Select green layer

+
+

BlueLayer

+
+

Select blue layer

+
+

MatteLayer

+
+

Select matte (opacity values) layer

+
+


+

+ + + + +
+

>LineCap

+
+

The LineCap enumerations specify +shape to be used at the end of open subpaths when they are stroked. +See SVG's 'stroke-linecap' +for examples. +

+

LineCap

+ + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedCap

+
+

Unset value.

+
+

ButtCap

+
+

Square ending.

+
+

RoundCap

+
+

Rounded ending (half-circle end with radius of 1/2 stroke + width).

+
+

SquareCap

+
+

Square ending, extended by 1/2 the stroke width at end.

+
+


+

+ + + + +
+

>LineJoin

+
+

The LineJoin enumerations +specify the shape to be used at the corners of paths or basic shapes +when they are stroked. See SVG's 'stroke-linejoin' +for examples. +

+

ChannelType

+ + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedJoin

+
+

Unset value.

+
+

MiterJoin

+
+

Sharp-edged join

+
+

RoundJoin

+
+

Rounded-edged join

+
+

BevelJoin

+
+

Beveled-edged join

+
+


+

+ + + + +
+

>NoiseType

+
+

NoiseType is used as an argument +to select the type of noise to be added to the image. +

+

NoiseType

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UniformNoise

+
+

Uniform noise

+
+

GaussianNoise

+
+

Gaussian noise

+
+

MultiplicativeGaussianNoise

+
+

Multiplicative Gaussian noise

+
+

ImpulseNoise

+
+

Impulse noise

+
+

LaplacianNoise

+
+

Laplacian noise

+
+

PoissonNoise

+
+

Poisson noise

+
+


+

+ + + + + +
+

+ >OrientationType

+
+

OrientationType +specifies the orientation of the image. Useful for when the image is +produced via a different ordinate system, the camera was turned on +its side, or the page was scanned sideways.

+

OrientationType

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Scanline Direction

+
+

Frame Direction

+
+

UndefinedOrientation

+
+

Unknown

+
+

Unknown

+
+

TopLeftOrientation

+
+

Left to right

+
+

Top to bottom

+
+

TopRightOrientation

+
+

Right to left

+
+

Top to bottom

+
+

BottomRightOrientation

+
+

Right to left

+
+

Bottom to top

+
+

BottomLeftOrientation

+
+

Left to right

+
+

Bottom to top

+
+

LeftTopOrientation

+
+

Top to bottom

+
+

Left to right

+
+

RightTopOrientation

+
+

Top to bottom

+
+

Right to left

+
+

RightBottomOrientation

+
+

Bottom to top

+
+

Right to left

+
+

LeftBottomOrientation

+
+

Bottom to top

+
+

Left to right

+
+


+

+ + + + +
+

>PaintMethod

+
+

PaintMethod specifies how pixel +colors are to be replaced in the image. It is used to select the +pixel-filling algorithm employed. +

+

PaintMethod

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

PointMethod

+
+

Replace pixel color at point.

+
+

ReplaceMethod

+
+

Replace color for all image pixels matching color at point.

+
+

FloodfillMethod

+
+

Replace color for pixels surrounding point until encountering + pixel that fails to match color at point.

+
+

FillToBorderMethod

+
+

Replace color for pixels surrounding point until encountering + pixels matching border color.

+
+

ResetMethod

+
+

Replace colors for all pixels in image with pen color.

+
+


+

+ + + + +
+

>QuantumTypes

+
+

QuantumTypes is used to indicate +the source or destination format of entire pixels, or components of +pixels ("Quantums") while they are being read, or written +to, a pixel cache. The validity of these format specifications +depends on whether the Image pixels are in RGB format, RGBA format, +or CMYK format. The pixel Quantum size is determined by the Image +depth (eight or sixteen bits). +

+

RGB(A) Image Quantums

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

IndexQuantum

+
+

PseudoColor colormap indices (valid only for image with + colormap)

+
+

RedQuantum

+
+

Red pixel Quantum

+
+

GreenQuantum

+
+

Green pixel Quantum

+
+

BlueQuantum

+
+

Blue pixel Quantum

+
+

AlphaQuantum

+
+

Alpha Quantum

+
+


+

+

CMY(K)(A) Image Quantum

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

CyanQuantum

+
+

Cyan pixel Quantum

+
+

MagentaQuantum

+
+

Magenta pixel Quantum

+
+

YellowQuantum

+
+

Yellow pixel Quantum

+
+

BlackQuantum

+
+

Black pixel Quantum

+
+

AlphaQuantum

+
+

Alpha Quantum

+
+


+

+

Grayscale Image +Quantums

+ + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

GrayQuantum

+
+

Gray pixel

+
+

GrayOpacityQuantum

+
+

Pixel opacity

+
+

AlphaQuantum

+
+

Alpha Quantum

+
+


+

+

Entire Pixels +(Expressed in Byte Order)

+ + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

RGBQuantum

+
+

RGB pixel (24 or 48 bits)

+
+

RGBAQuantum

+
+

RGBA pixel (32 or 64 bits)

+
+

CMYKQuantum

+
+

CMYK pixel (32 or 64 bits)

+
+

CMYKAQuantum

+
+

CMYKA pixel (40 or 80 bits)

+
+


+

+ + + + +
+

>RenderingIntent

+
+

Rendering intent is a concept defined by ICC +Spec ICC.1:1998-09, "File Format for Color Profiles". +ImageMagick uses RenderingIntent in order to support ICC +Color Profiles. +

+

From the specification: "Rendering +intent specifies the style of reproduction to be used during the +evaluation of this profile in a sequence of profiles. It applies +specifically to that profile in the sequence and not to the entire +sequence. Typically, the user or application will set the rendering +intent dynamically at runtime or embedding time." +

+

RenderingIntent

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedIntent

+
+

Unset value.

+
+

SaturationIntent

+
+

A rendering intent that specifies the saturation of the pixels + in the image is preserved perhaps at the expense of accuracy in + hue and lightness.

+
+

PerceptualIntent

+
+

A rendering intent that specifies the full gamut of the image + is compressed or expanded to fill the gamut of the destination + device. Gray balance is preserved but colorimetric accuracy might + not be preserved.

+
+

AbsoluteIntent

+
+

Absolute colorimetric

+
+

RelativeIntent

+
+

Relative colorimetric

+
+


+

+ + + + +
+

>ResolutionType

+
+

By default, ImageMagick defines +resolutions in pixels per inch. ResolutionType provides a +means to adjust this. +

+

ResolutionType

+ + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedResolution

+
+

Unset value.

+
+

PixelsPerInchResolution

+
+

Density specifications are specified in units of pixels per + inch (english units).

+
+

PixelsPerCentimeterResolution

+
+

Density specifications are specified in units of pixels per + centimeter (metric units).

+
+


+

+ + + + +
+

>StorageType

+
+

The StorageType enumerations are +used to specify the storage format of pixels in the source or +destination pixel array. +

+

StorageType

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

CharPixel

+
+

Character type

+
+

ShortPixel

+
+

Short type

+
+

IntegerPixel

+
+

Integer type

+
+

FloatPixel

+
+

Float type

+
+

DoublePixel

+
+

Double type

+
+


+

+ + + + +
+

>StretchType

+
+

The StretchType enumerations are +used to specify the relative width of a font to the regular width for +the font family. If the width is not important, the AnyStretch +enumeration may be specified for a wildcard match. +

+

StretchType

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

AnyStretch

+
+

Wildcard match for font stretch

+
+

NormalStretch

+
+

Normal width font

+
+

UltraCondensedStretch

+
+

Ultra-condensed (narrowest) font

+
+

ExtraCondensedStretch

+
+

Extra-condensed font

+
+

CondensedStretch

+
+

Condensed font

+
+

SemiCondensedStretch

+
+

Semi-Condensed font

+
+

SemiExpandedStretch

+
+

Semi-Expanded font

+
+

ExpandedStretch

+
+

Expanded font

+
+

ExtraExpandedStretch

+
+

Extra-Expanded font

+
+

UltraExpandedStretch

+
+

Ultra-expanded (widest) font

+
+


+

+ + + + +
+

>StyleType

+
+

The StyleType enumerations are +used to specify the style (e.g. Italic) of a font. If the style is +not important, the AnyStyle enumeration may be specified for a +wildcard match. +

+

StyleType

+ + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

AnyStyle

+
+

Wildcard match for font style

+
+

NormalStyle

+
+

Normal font style

+
+

ItalicStyle

+
+

Italic font style

+
+

ObliqueStyle

+
+

Oblique font style

+
+


+

+ + + + +
+

>VirtualPixelMethod

+
+

The VirtualPixelMethod enumerations are +used to specify the virtual pixel method. +

+


+

+

VirtualPixelMethod

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Enumeration

+
+

Description

+
+

UndefinedVirtualPixelMethod

+
+

Not defined

+
+

BackgroundVirtualPixelMethod

+
+

the area surrounding the image is the background color +

+
+

BlackVirtualPixelMethod

+
+

the area surrounding the image is black

+
+

CheckerTileVirtualPixelMethod

+
+

alternate squares with image and background color +

+
+

DitherVirtualPixelMethod

+
+

non-random 32x32 dithered pattern +

+
+

EdgeVirtualPixelMethod

+
+

extend the edge pixel toward infinity +

+
+

GrayVirtualPixelMethod

+
+

the area surrounding the image is gray +

+
+

HorizontalTileVirtualPixelMethod

+
+

horizontally tile the image, background color above/below

+
+

HorizontalTileEdgeVirtualPixelMethod

+
+

horizontally tile the image and replicate the side edge pixels

+
+

MirrorVirtualPixelMethod

+
+

mirror tile the image +

+
+

RandomVirtualPixelMethod

+
+

choose a random pixel from the image +

+
+

TileVirtualPixelMethod

+
+

tile the image (default) +

+
+

TransparentVirtualPixelMethod

+
+

the area surrounding the image is transparent blackness +

+
+

VerticalTileVirtualPixelMethod

+
+

vertically tile the image, sides are background color +

+
+

VerticalTileEdgeVirtualPixelMethod

+
+

vertically tile the image and replicate the side edge pixels +

+
+

WhiteVirtualPixelMethod

+
+

the area surrounding the image is white +

+
+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Exception.html b/share/doc/ImageMagick-7/www/Magick++/Exception.html new file mode 100644 index 0000000..b582f44 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Exception.html @@ -0,0 +1,465 @@ + + + + + +Magick++ API: Exceptions + + + +
+

Magick::Exception Classes

+

Exception represents the base class of objects thrown when +Magick++reports an error. Magick++ throws C++ exceptions synchronous +with the operation where the error occurred. This allows errors to be +trapped within the enclosing code (perhaps the code to process a +single image) while allowing the code to be written with a simple +coding style.

+

A try/catch block should be placed around any sequence of +operations which can be considered an important body of work. For +example, if your program processes lists of images and some of these +images may be defective, by placing the try/catch block around the +entire sequence of code that processes one image (including +instantiating the image object), you can minimize the overhead of +error checking while ensuring that all objects created to deal with +that object are safely destroyed (C++ exceptions unroll the stack +until the enclosing try block, destroying any created objects). +

+

The pseudo code for the main loop of your program may look like: +

+
+using namespace std; +for infile in list +{ + try { + // Construct an image instance first so that we don't have to worry + // about object construction failure due to a minor warning exception + // being thrown. + Magick::Image image; + try { + // Try reading image file + image.read(infile); + } + catch( Magick::WarningCoder &warning ) + { + // Process coder warning while loading file (e.g. TIFF warning) + // Maybe the user will be interested in these warnings (or not). + // If a warning is produced while loading an image, the image + // can normally still be used (but not if the warning was about + // something important!) + cerr << "Coder Warning: " << warning.what() << endl; + } + catch( Magick::Warning &warning ) + { + // Handle any other Magick++ warning. + cerr << "Warning: " << warning.what() << endl; + } + catch( Magick::ErrorFileOpen &error ) + { + // Process Magick++ file open error + cerr << "Error: " << error.what() << endl; + continue; // Try next image. + } + try { + image.rotate(90); + image.write("outfile"); + } + catch ( MagickExeption & error) + { + // Handle problem while rotating or writing outfile. + cerr << "Caught Magick++ exception: " << error.what() << endl; + } + } + catch( std::exception & error ) + { + // Process any other exceptions derived from standard C++ exception + cerr << "Caught C++ STD exception: " << error.what() << endl; + } + catch( ... ) + { + // Process *any* exception (last-ditch effort). There is not a lot + // you can do here other to retry the operation that failed, or exit + } +} +
+

The desired location and number of try/catch blocks in your program +depends how sophisticated its error handling must be. Very simple +programs may use just one try/catch block.

+

The Exception class is derived from the C++ standard +exception class. This means that it contains a C++ string containing +additional information about the error (e.g to display to the user). +Obtain access to this string via the what() method.  For +example: +

+
+catch( Exception & error_ ) 
+    { 
+      cout << "Caught exception: " << error_.what() << endl; 
+    }
+
+

The classes Warning and Error derive from the +Exception class. Exceptions derived from Warning are +thrown to represent non-fatal errors which may effect the +completeness or quality of the result (e.g. one image provided as an +argument to montage is defective). In most cases, a Warning +exception may be ignored by catching it immediately, processing it +(e.g. printing a diagnostic) and continuing on. Exceptions derived +from Error are thrown to represent fatal errors that can not +produce a valid result (e.g. attempting to read a file which does not +exist). +

+

The specific derived exception classes +are shown in the following tables: +

+

Warning Sub-Classes

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Warning

    +
    +

    Warning Description

    +
    +

    WarningUndefined

    +
    +

    Unspecified warning type.

    +
    +

    WarningBlob

    +
    +

    NOT + CURRENTLY USED

    +
    +

    WarningCache

    +
    +

    NOT + CURRENTLY USED

    +
    +

    WarningCoder

    +
    +

    Warnings issued by some coders.

    +
    +

    WarningConfigure

    +
    +

    NOT + CURRENTLY USED

    +
    +

    WarningCorruptImage

    +
    +

    Warning issued when an image is determined to be + corrupt.

    +
    +

    WarningDelegate

    +
    +

    Warnings reported by the delegate (interface to + external programs) subsystem.

    +
    +

    WarningDraw

    +
    +

    Warnings reported by the rendering subsystem.

    +
    +

    WarningFileOpen

    +
    +

    Warning reported when The image file could not be + opened (permission problem, wrong file type, or does not exist).

    +
    +

    WarningImage

    +
    +

    NOT CURRENTLY USED

    +
    +

    WarningMissingDelegate

    +
    +

    NOT CURRENTLY USED

    +
    +

    WarningModule

    +
    +

    NOT CURRENTLY USED

    +
    +

    WarningMonitor

    +
    +

    NOT CURRENTLY USED

    +
    +

    WarningOption

    +
    +

    Warning reported when an option is malformed or + out of range.

    +
    +

    WarningRegistry

    +
    +

    NOT CURRENTLY USED

    +
    +

    WarningResourceLimit

    +
    +

    Warning reported when a program resource is + exhausted (e.g. not enough memory).

    +
    +

    WarningStream

    +
    +

    NOT CURRENTLY USED

    +
    +

    WarningType

    +
    +

    NOT CURRENTLY USED

    +
    +

    WarningXServer

    +
    +

    Warnings reported by the X11 subsystem.

    +
+


+

+

Error Sub-Classes

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Error

    +
    +

    Error Description

    +
    +

    ErrorUndefined

    +
    +

    Unspecified error type.

    +
    +

    ErrorBlob

    +
    +

    Error reported by BLOB I/O subsystem.

    +
    +

    ErrorCache

    +
    +

    Error reported by the pixel cache subsystem.

    +
    +

    ErrorCoder

    +
    +

    Error reported by coders (image format support).

    +
    +

    ErrorConfigure

    +
    +

    Errors reported while loading configuration files.

    +
    +

    ErrorCorruptImage

    +
    +

    Error reported when the image file is corrupt.

    +
    +

    ErrorDelegate

    +
    +

    Errors reported by the delegate (interface to + external programs) subsystem.

    +
    +

    ErrorDraw

    +
    +

    Error reported while drawing on image.

    +
    +

    ErrorFileOpen

    +
    +

    Error reported when the image file can not be + opened.

    +
    +

    ErrorImage

    +
    +

    Errors reported while drawing.

    +
    +

    ErrorMissingDelegate

    +
    +

    Error reported when an add-on library or program + is necessary in order to support the requested operation.

    +
    +

    ErrorModule

    +
    +

    Errors reported by the module loader subsystem.

    +
    +

    ErrorMonitor

    +
    +

    NOT CURRENTLY USED

    +
    +

    ErrorOption

    +
    +

    Error reported when an option is malformed or out + of range.

    +
    +

    ErrorRegistry

    +
    +

    Errors reported by the image/BLOB registry + subsystem.

    +
    +

    ErrorResourceLimit

    +
    +

    Error reported when a program resource is + exhausted (e.g. not enough memory).

    +
    +

    ErrorStream

    +
    +

    Errors reported by the pixel stream subsystem.

    +
    +

    ErrorType

    +
    +

    Errors reported by the type (font) rendering + subsystem.

    +
    +

    ErrorXServer

    +
    +

    Errors reported by the X11 subsystem.

    +
+



+

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/FormatCharacters.html b/share/doc/ImageMagick-7/www/Magick++/FormatCharacters.html new file mode 100644 index 0000000..b38881f --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/FormatCharacters.html @@ -0,0 +1,96 @@ + + + + + +Magick++ API: Annotating an Image + + + +
+

Special Format Characters

+

The Magick::Image methods annotate, draw, label, and the template function montageImages support special format characters contained in the argument text. These format characters work similar to C's printf. Whenever a format character appears in the text, it is replaced with the equivalent attribute text. The available format characters are shown in the following table.

+
+

Format Characters

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Format Character

+

Description

+

%b

+

file size

+

%d

+

directory

+

%e

+

filename extension

+

%f

+

filename

+

%h

+

height

+

%m

+

magick (e.g GIF)

+

%p

+

page number

+

%s

+

scene number

+

%t

+

top of filename

+

%w

+

width

+

%x

+

x resolution

+

%y

+

y resolution

+

\n

+

newline

+

\r

+

carriage return

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Future.html b/share/doc/ImageMagick-7/www/Magick++/Future.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Future.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/Magick++/Geometry.html b/share/doc/ImageMagick-7/www/Magick++/Geometry.html new file mode 100644 index 0000000..cfb6bcf --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Geometry.html @@ -0,0 +1,820 @@ + + + + + +Magick++ API: Geometry + + + +
+

Magick::Geometry

+

Geometry provides a convenient means to specify a geometry +argument. The object may be initialized from a C string or C++ string +containing a geometry specification. It may also be initialized by +more efficient parameterized constructors. +

+

Geometry +Specifications

+

Geometry specifications are in the form +"<width>x<height>{+-}<xoffset>{+-}<yoffset>" +(where width, height, xoffset, and yoffset +are numbers) for specifying the size and placement location for an +object. +

+

The width and height +parts of the geometry specification are measured in pixels. The +xoffset and yoffset parts are also measured in pixels +and are used to specify the distance of the placement coordinate from +the left and top and edges of the image, respectively. Both types of +offsets are measured from the indicated edge of the object to the +corresponding edge of the image. The X offset may be specified in the +following ways: +

+ + + + + + + + + + + +
+

+xoffset

+
+

The left edge of the object is to be placed xoffset + pixels in from the left edge of the image.

+
+

-xoffset

+
+

The left edge of the object is to be placed outside the image, + xoffset pixels out from the left edge of the image.

+
+

The Y offset has similar meanings: +

+ + + + + + + + + + + +
+

+yoffset

+
+

The top edge of the object is to be yoffset pixels + below the top edge of the image.

+
+

-yoffset

+
+

The top edge of the object is to be yoffset pixels + above the top edge of the image.

+
+

Offsets must be given as pairs; in other words, in order to +specify either xoffset or yoffset both must be present. +

+

ImageMagick +Extensions To Geometry Specifications

+

ImageMagick has added a number of +qualifiers to the standard geometry string for use when resizing +images. The form of an extended geometry string is +"<width>x<height>{+-}<xoffset>{+-}<yoffset>{%}{!}{<}{>}". +Extended geometry strings should only be used when resizing +an image. Using an extended geometry string for other +applications may cause the API call to fail. The available +qualifiers are shown in the following table: +

+

ImageMagick Geometry +Qualifiers

+ + + + + + + + + + + + + + + + + + + + + + + +
+

Qualifier

+
+

Description

+
+

%

+
+

Interpret width and height as a percentage of the + current size.

+
+

!

+
+

Resize to width and height exactly, loosing original + aspect ratio.

+
+

<

+
+

Resize only if the image is smaller than the geometry + specification.

+
+

>

+
+

Resize only if the image is greater than the geometry + specification.

+
+

Postscript Page Size Extension +To Geometry Specifications

+

Any geometry string specification supplied to the Geometry +constructor is considered to be a Postscript page size nickname if +the first character is not numeric. The Geometry constructor converts +these page size specifications into the equivalent numeric geometry +string specification (preserving any offset component) prior to +conversion to the internal object format. Postscript page size +specifications are short-hand for the pixel geometry required to fill +a page of that size. Since the 11x17 inch page size used in the US +starts with a digit, it is not supported as a Postscript page size +nickname. Instead, substitute the geometry specification "792x1224>" +when 11x17 output is desired. +

+

An example of a Postscript page size +specification is "letter+43+43>". +

+

Postscript Page Size +Nicknames

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Postscript Page Size Nickname

+
+

Equivalent Extended Geometry Specification

+
+

Ledger

+
+

1224x792>

+
+

Legal

+
+

612x1008>

+
+

Letter

+
+

612x792>

+
+

LetterSmall

+
+

612x792>

+
+

ArchE

+
+

2592x3456>

+
+

ArchD

+
+

1728x2592>

+
+

ArchC

+
+

1296x1728>

+
+

ArchB

+
+

864x1296>

+
+

ArchA

+
+

648x864>

+
+

A0

+
+

2380x3368>

+
+

A1

+
+

1684x2380>

+
+

A2

+
+

1190x1684>

+
+

A3

+
+

842x1190>

+
+

A4

+
+

595x842>

+
+

A4Small

+
+

595x842>

+
+

A5

+
+

421x595>

+
+

A6

+
+

297x421>

+
+

A7

+
+

210x297>

+
+

A8

+
+

148x210>

+
+

A9

+
+

105x148>

+
+

A10

+
+

74x105>

+
+

B0

+
+

2836x4008>

+
+

B1

+
+

2004x2836>

+
+

B2

+
+

1418x2004>

+
+

B3

+
+

1002x1418>

+
+

B4

+
+

709x1002>

+
+

B5

+
+

501x709>

+
+

C0

+
+

2600x3677>

+
+

C1

+
+

1837x2600>

+
+

C2

+
+

1298x1837>

+
+

C3

+
+

918x1298>

+
+

C4

+
+

649x918>

+
+

C5

+
+

459x649>

+
+

C6

+
+

323x459>

+
+

Flsa

+
+

612x936>

+
+

Flse

+
+

612x936>

+
+

HalfLetter

+
+

396x612>

+
+

Geometry Methods

+

Geometry provides methods to initialize +its value from strings, from a set of parameters, or via attributes. +The methods available for use in Geometry are shown in the following +table: +

+

Geometry Methods

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Method

+
+

Return Type

+
+

Signature(s)

+
+

Description

+
+

Geometry

+
+

 

+
+

size_t width_, size_t height_, ssize_t xOff_ = + 0, ssize_t yOff_ = 0, bool xNegative_ = false, bool + yNegative_ = false

+
+

Construct geometry via explicit parameters.

+
+

const string geometry_

+
+

Construct geometry from C++ string

+
+

const char * geometry_

+
+

Construct geometry from C string

+
+

width

+
+

void

+
+

size_t width_

+
+

Width

+
+

size_t

+
+

void

+
+

height

+
+

void

+
+

size_t height_

+
+

Height

+
+

size_t

+
+

void

+
+

xOff

+
+

void

+
+

ssize_t xOff_

+
+

X offset from origin

+
+

ssize_t

+
+

void

+
+

yOff

+
+

void

+
+

ssize_t yOff_

+
+

Y offset from origin

+
+

size_t

+
+

void

+
+

xNegative

+
+

void

+
+

bool xNegative_

+
+

Sign of X offset negative? (X origin at right)

+
+

bool

+
+

void

+
+

yNegative

+
+

void

+
+

bool yNegative_

+
+

Sign of Y offset negative? (Y origin at bottom)

+
+

bool

+
+

void

+
+

percent

+
+

void

+
+

bool percent_

+
+

Width and height are expressed as percentages

+
+

bool

+
+

void

+
+

aspect

+
+

void

+
+

bool aspect_

+
+

Resize without preserving aspect ratio (!)

+
+

bool

+
+

void

+
+

greater

+
+

void

+
+

bool greater_

+
+

Resize if image is greater than size (>)

+
+

bool

+
+

void

+
+

less

+
+

void

+
+

bool less_

+
+

Resize if image is less than size (<)

+
+

bool

+
+

void

+
+

isValid

+
+

void

+
+

bool isValid_

+
+

Does object contain a valid geometry? May be set to false + in order to invalidate an existing geometry object.

+
+

bool

+
+

void

+
+

operator =

+
+

const Geometry&

+
+

const string geometry_

+
+

Set geometry via C++ string

+
+

operator =

+
+

const Geometry&

+
+

const char * geometry_

+
+

Set geometry via C string

+
+

operator string

+
+

string

+
+

Geometry&

+
+

Obtain C++ string representation of geometry

+
+

In addition, we support these yet to be documented geometry flags: the fill area flag ('^') and the pixel area count limit flag ('@').

+



+

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Image++.html b/share/doc/ImageMagick-7/www/Magick++/Image++.html new file mode 100644 index 0000000..ad3fa05 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Image++.html @@ -0,0 +1,3145 @@ + + + + + +Magick++ API: Working with Images + + + +
+
+

Magick::Image Class

+
+

Quick Contents

+ +

Image is the primary object in Magick++ and represents +a single image frame (see design ). The +STL interface must be used to operate on +image sequences or images (e.g. of format GIF, TIFF, MIFF, Postscript, +& MNG) which are comprized of multiple image frames. Individual +frames of a multi-frame image may be requested by adding array-style +notation to the end of the file name (e.g. "animation.gif[3]" retrieves +the fourth frame of a GIF animation.  Various image manipulation +operations may be applied to the image. Attributes may be set on the +image to influence the operation of the manipulation operations. The Pixels class provides low-level access to +image +pixels. As a convenience, including <Magick++.h> +is sufficient in order to use the complete Magick++ API. The Magick++ +API is enclosed within the Magick namespace so you must either +add the prefix " Magick:: " to each class/enumeration name or +add +the statement " using namespace Magick;" after including the Magick++.h +header.

+

The preferred way to allocate Image objects is via automatic +allocation (on the stack). There is no concern that allocating Image +objects on the stack will excessively enlarge the stack since Magick++ +allocates all large data objects (such as the actual image data) from +the heap. Use of automatic allocation is preferred over explicit +allocation (via new) since it is much less error prone and +allows use of C++ scoping rules to avoid memory leaks. Use of automatic +allocation allows Magick++ objects to be assigned and copied just like +the C++ intrinsic data types (e.g. 'int '), leading to clear and +easy to read code. Use of automatic allocation leads to naturally +exception-safe code since if an exception is thrown, the object is +automagically deallocated once the stack unwinds past the scope of the +allocation (not the case for objects allocated via new ).

+

Image is very easy to use. For example, here is a the source to a +program which reads an image, crops it, and writes it to a new file +(the +exception handling is optional but strongly recommended):

+
+#include <Magick++.h> 
+#include <iostream> 
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+
+  // Construct the image object. Seperating image construction from the 
+  // the read operation ensures that a failure to read the image file 
+  // doesn't render the image object useless. 
+  Image image;
+  try { 
+    // Read a file into image object 
+    image.read( "girl.gif" );
+
+    // Crop the image to specified size (width, height, xOffset, yOffset)
+    image.crop( Geometry(100,100, 100, 100) );
+
+    // Write the image to a file 
+    image.write( "x.gif" ); 
+  } 
+  catch( Exception &error_ ) 
+    { 
+      cout << "Caught exception: " << error_.what() << endl; 
+      return 1; 
+    } 
+  return 0; 
+}
+
+The following is the source to a program which illustrates the use of +Magick++'s efficient reference-counted assignment and copy-constructor +operations which minimize use of memory and eliminate unncessary copy +operations (allowing Image objects to be efficiently assigned, and +copied into containers).  The program accomplishes the +following: +
    +
  1. Read master image.
  2. +
  3. Assign master image to second image.
  4. +
  5. Resize second image to the size 640x480.
  6. +
  7. Assign master image to a third image.
  8. +
  9. Resize third image to the size 800x600.
  10. +
  11. Write the second image to a file.
  12. +
  13. Write the third image to a file.
  14. +
+
+#include <Magick++.h> 
+#include <iostream> 
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+
+  Image master("horse.jpg"); 
+  Image second = master; 
+  second.resize("640x480"); 
+  Image third = master; 
+  third.resize("800x600"); 
+  second.write("horse640x480.jpg"); 
+  third.write("horse800x600.jpg"); 
+  return 0; 
+}
+
+During the entire operation, a maximum of three images exist in memory +and the image data is never copied. +

The following is the source for another simple program which creates +a 100 by 100 pixel white image with a red pixel in the center and +writes it to a file:

+
+#include <Magick++.h> 
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+  Image image( "100x100", "white" ); 
+  image.pixelColor( 49, 49, "red" ); 
+  image.write( "red_pixel.png" ); 
+  return 0; 
+}
+
+If you wanted to change the color image to grayscale, you could add the +lines: +
+image.quantizeColorSpace( GRAYColorspace ); 
+image.quantizeColors( 256 ); 
+image.quantize( );
+
+

or, more simply:

+
+ image.type( GrayscaleType );
+
+

prior to writing the image.

+
+

BLOBs

+
+While encoded images (e.g. JPEG) are most often written-to and +read-from a disk file, encoded images may also reside in memory. +Encoded +images in memory are known as BLOBs (Binary Large OBjects) and may be +represented using the Blob class. The encoded +image may be initially placed in memory by reading it directly from a +file, reading the image from a database, memory-mapped from a disk +file, or could be written to memory by Magick++. Once the encoded image +has been placed within a Blob, it may be read into a Magick++ Image via +a constructor or read() +. Likewise, a Magick++ image may be written to a Blob via write() . +

An example of using Image to write to a Blob follows:

+
+#include >Magick++.h> 
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+
+  // Read GIF file from disk 
+  Image image( "giraffe.gif" );
+  // Write to BLOB in JPEG format 
+  Blob blob; 
+  image.magick( "JPEG" ) // Set JPEG output format 
+  image.write( &blob );
+
+  [ Use BLOB data (in JPEG format) here ]
+
+  return 0; 
+}
+
+


+likewise, to read an image from a Blob, you could use one of the +following examples:

+

[ Entry condition for the following examples +is that data is pointer to encoded image data and length +represents the size of the data ]

+
+Blob blob( data, length ); 
+Image image( blob );
+
+or +
+Blob blob( data, length ); 
+Image image; 
+image.read( blob);
+
+some images do not contain their size or format so the size and format must be specified in advance: +
+Blob blob( data, length ); 
+Image image; 
+image.size( "640x480") 
+image.magick( "RGBA" ); 
+image.read( blob);
+
+
+

Constructors

+
+Image may be constructed in a number of ways. It may be constructed +from a file, a URL, or an encoded image (e.g. JPEG) contained in an +in-memory BLOB . The available Image +constructors are shown in the following table:

+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Image Constructors
+
Signature
+
+
Description
+
const std::string &imageSpec_Construct Image by reading from file or URL +specified by imageSpec_. Use array notation (e.g. filename[9]) +to select a specific scene from a multi-frame image.
const Geometry &size_, const Color &color_Construct a blank image canvas of specified +size and color
const Blob &blob_Construct Image by reading from +encoded image data contained in an in-memory BLOB +. Depending on the constructor arguments, the Blob size +, depth , magick (format) +may +also be specified. Some image formats require that size be specified. +The default ImageMagick uses for depth depends on the compiled-in +Quantum size (8 or 16).  If ImageMagick's Quantum size does not +match that of the image, the depth may need to be specified. +ImageMagick can usually automagically detect the image's format. +When a format can't be automagically detected, the format (magick ) must be specified.
const Blob +&blob_, const Geometry &size_
const Blob +&blob_, const Geometry &size, +size_t depth
const Blob +&blob_, const Geometry &size, +size_t depth_, const string &magick_
const Blob +&blob_, const Geometry &size, +const +string &magick_
const size_t width_, 
+ const size_t height_,
+ std::string map_,
+ const +StorageType type_,
+ const void *pixels_
Construct a new Image based on an array of +image pixels. The pixel data must be in scanline order top-to-bottom. +The data can be character, short int, integer, float, or double. Float +and double require the pixels to be normalized [0..1]. The other types +are [0..MaxRGB].  For example, to create a 640x480 image from +unsigned red-green-blue character data, use +

   Image image( 640, 480, "RGB", +0, pixels );

+

The parameters are as follows:

+ + + + + + + + + + + + + + + + + + + + + + + +
width_Width in pixels of the image.
height_Height in pixels of the image.
map_This character string can be any +combination or order of R = red, G = green, B = blue, A = alpha, C = +cyan, Y = yellow M = magenta, and K = black. The ordering reflects the +order of the pixels in the supplied pixel array.
type_Pixel +storage type (CharPixel, ShortPixel, IntegerPixel, FloatPixel, or +DoublePixel)
pixels_This array of values contain the pixel +components as defined by the map_ and type_ parameters. The length of +the arrays must equal the area specified by the width_ and height_ +values and type_ parameters.
+
+
+

Image Manipulation +Methods

+
+Image supports access to all the single-image (versus +image-list) manipulation operations provided by the ImageMagick +library. If you +must process a multi-image file (such as an animation), the STL interface , which provides a multi-image +abstraction on top of Image, must be used. +

Image manipulation methods are very easy to use.  For example:

+
+Image image; 
+image.read("myImage.tiff"); 
+image.addNoise(GaussianNoise); 
+image.write("myImage.tiff");
+
+adds gaussian noise to the image file "myImage.tiff". +

The operations supported by Image are shown in the following table:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Image Image Manipulation Methods
MethodSignature(s)Description
+
adaptiveThreshold
+
+
size_t width, size_t +height, size_t offset = 0
+
Apply adaptive thresholding to +the image. Adaptive thresholding is useful if the ideal threshold level +is not known in advance, or if the illumination gradient is not +constant +across the image. Adaptive thresholding works by evaulating the mean +(average) of a pixel region (size specified by width and height) +and using the mean as the thresholding value. In order to remove +residual noise from the background, the threshold may be adjusted by +subtracting a constant offset (default zero) from the mean to +compute the threshold.
+
+
addNoise
+
NoiseType +noiseType_Add noise to image with specified noise type.
addNoiseChannel
+
const ChannelType +channel_, const NoiseType noiseType_
+
Add noise to an image +channel with the specified noise type. The channel_ parameter specifies the +channel to add noise to.  The noiseType_ parameter +specifies the type of noise.
+
affineTransform
+
const DrawableAffine +&affine
+
Transform image by +specified affine (or free transform) matrix.
+
+
annotate
+
const std::string &text_, const Geometry &location_Annotate using specified text, and placement +location
string text_, const Geometry +&boundingArea_, GravityType +gravity_Annotate using specified text, bounding area, +and placement gravity. If boundingArea_ is invalid, then +bounding area is entire image.
const std::string &text_, const Geometry &boundingArea_, GravityType gravity_, double +degrees_, Annotate with text using specified text, +bounding area, placement gravity, and rotation. If boundingArea_ +is invalid, then bounding area is entire image.
const std::string &text_, GravityType gravity_Annotate with text (bounding area is entire +image) and placement gravity.
+
blur
+
const double radius_ = 1, const double sigma_ += 0.5Blur image. The radius_ parameter +specifies the radius of the Gaussian, in pixels, not counting the +center +pixel.  The sigma_ parameter specifies the standard +deviation of the Laplacian, in pixels.
blurChannel
+
const ChannelType +channel_, const double radius_ = 0.0, const double sigma_ = 1.0
+
Blur an image +channel. The channel_ +parameter specifies the channel to blur. The radius_ parameter +specifies the radius of the Gaussian, in pixels, not counting the +center +pixel.  The sigma_ parameter specifies the standard +deviation of the Laplacian, in pixels.
+
border
+
const Geometry +&geometry_ = "6x6+0+0"Border image (add border to image).  The +color of the border is specified by the borderColor attribute.
+
cdl
+
const std::string &cdl_color correct with a color decision list. See http://en.wikipedia.org/wiki/ASC_CDL for details.
+
channel
+
ChannelType +layer_Extract channel from image. Use this option +to extract a particular channel from  the image.  MatteChannel +  for  example, is useful for extracting the opacity values +from an image.
+
charcoal
+
const double radius_ = 1, const double sigma_ += 0.5Charcoal effect image (looks like charcoal +sketch). The radius_ parameter specifies the radius of the +Gaussian, in pixels, not counting the center pixel.  The sigma_ +parameter specifies the standard deviation of the Laplacian, in pixels.
+
chop
+
const Geometry +&geometry_Chop image (remove vertical or horizontal +subregion of image)
+
colorize
+
const unsigned int opacityRed_, const +unsigned int opacityGreen_, const unsigned int opacityBlue_, const +Color &penColor_Colorize image with pen color, using +specified percent opacity for red, green, and blue quantums.
+
colorMatrix
+
const size_t order_, const double *color_matrix_apply color correction to the image.
+
comment
+
const std::string &comment_Comment image (add comment string to +image).  By default, each image is commented with its file name. +Use  this  method to  assign a specific comment to the +image.  Optionally you can include the image filename, type, +width, height, or other  image  attributes by embedding special format characters.
compare
+
const Image &reference_
+
Compare current image with +another image. Sets meanErrorPerPixel +, normalizedMaxError , and normalizedMeanError in the current +image. False is returned if the images are identical. An ErrorOption +exception is thrown if the reference image columns, rows, colorspace, +or +matte differ from the current image.
+
+
composite
+
const Image +&compositeImage_, ssize_t xOffset_, ssize_t yOffset_, CompositeOperator +compose_ = InCompositeOpCompose an image onto the current image at +offset specified by xOffset_, yOffset_ using the +composition algorithm specified by compose_
const Image +&compositeImage_, const Geometry +&offset_, CompositeOperator +compose_ = InCompositeOpCompose an image onto the current image at +offset specified by offset_ using the composition algorithm +specified by compose_
const Image +&compositeImage_, GravityType +gravity_, CompositeOperator +compose_ = InCompositeOpCompose an image onto the current image with +placement specified by gravity_ using the composition +algorithm +specified by compose_
+
contrast
+
size_t sharpen_Contrast image (enhance intensity differences +in image)
+
convolve
+
size_t order_, const double *kernel_Convolve image.  Applies a user-specfied +convolution to the image. The order_ parameter represents the +number of columns and rows in the filter kernel, and kernel_ +is a two-dimensional array of doubles representing the convolution +kernel to apply.
+
crop
+
const Geometry +&geometry_Crop image (subregion of original image)
+
cycleColormap
+
int amount_Cycle image colormap
+
despeckle
+
voidDespeckle image (reduce speckle noise)
+
display
+
voidDisplay image on screen.
+ Caution: if +an image format is is not compatible with the display visual (e.g. +JPEG on a colormapped display) then the original image will be +altered. Use a copy of the original if this is a problem.
+
distort
+
const DistortImageMethod method, const size_t number_arguments, const double *arguments, const bool bestfit = false Distort image.  Applies a user-specfied +distortion to the image.
+
draw
+
const Drawable +&drawable_Draw shape or text on image.
const std::list<Drawable +> &drawable_Draw shapes or text on image using a set of +Drawable objects contained in an STL list. Use of this method improves +drawing performance and allows batching draw objects together in a +list for repeated use.
+
edge
+
size_t radius_ = 0.0Edge image (hilight edges in image).  +The radius is the radius of the pixel neighborhood.. Specify a radius +of zero for automatic radius selection.
+
emboss
+
const double radius_ = 1, const double sigma_ += 0.5Emboss image (hilight edges with 3D effect). +The radius_ parameter specifies the radius of the Gaussian, in +pixels, not counting the center pixel.  The sigma_ +parameter specifies the standard deviation of the Laplacian, in pixels.
+
enhance
+
voidEnhance image (minimize noise)
+
equalize
+
voidEqualize image (histogram equalization)
+
erase
+
voidSet all image pixels to the current +background color.
+
extent
const Geometry &geometry_extends the image as defined by the geometry, gravity, and image background color.
const Geometry +&geometry_, const Color &backgroundColor_
const Geometry &geometry_, const GravityType +&gravity_extends the image as defined by the geometry, gravity, and image background color.
const Geometry +&geometry_, const Color &backgroundColor_, +const GravityType &gravity_
+
flip
+
voidFlip image (reflect each scanline in the +vertical direction)
+
floodFill- +
+ Color
+
ssize_t x_, ssize_t y_, const Color &fillColor_Flood-fill color across pixels +that match the color of the target pixel and are neighbors of the +target pixel. Uses current fuzz setting when determining color match.
const Geometry +&point_, const Color &fillColor_
ssize_t x_, ssize_t y_, const Color &fillColor_, const Color +&borderColor_Flood-fill color across pixels +starting at target-pixel and stopping at pixels matching specified +border color. Uses current fuzz setting when determining color match.
const Geometry +&point_, const Color &fillColor_, +const Color &borderColor_
floodFillOpacityconst long x_, const long y_, const unsigned int +opacity_, const PaintMethod method_Floodfill pixels matching color (within fuzz +factor) of target pixel(x,y) with replacement opacity value using +method.
+
floodFill- +
+ Texture
+
ssize_t x_, ssize_t y_,  const +Image &texture_Flood-fill texture across pixels +that match the color of the target pixel and are neighbors of the +target pixel. Uses current fuzz setting when determining color match.
const Geometry +&point_, const Image &texture_
ssize_t x_, ssize_t y_, const Image +&texture_, const Color &borderColor_Flood-fill texture across pixels +starting at target-pixel and stopping at pixels matching specified +border color. Uses current fuzz setting when determining color match.
const Geometry +&point_, const Image &texture_, const +Color +&borderColor_
+
flop
+
void Flop image (reflect each scanline in the +horizontal direction)
+
frame
+
const Geometry +&geometry_ = "25x25+6+6"Add decorative frame around image
size_t width_, size_t height_, +ssize_t x_, ssize_t y_, ssize_t innerBevel_ = 0, ssize_t outerBevel_ = 0
+
fx
+
const std::string expression, const Magick::ChannelType channelFx image.  Applies a mathematical +expression to the image.
+
gamma
+
double gamma_Gamma correct image (uniform red, green, and +blue correction).
double gammaRed_, double gammaGreen_, double +gammaBlue_Gamma correct red, green, and blue channels +of image.
+
gaussianBlur
+
const double width_, const double sigma_Gaussian blur image. The number of neighbor +pixels to be included in the convolution mask is specified by +'width_'.  For example, a width of one gives a (standard) 3x3 +convolution mask. The standard deviation of the gaussian bell curve is +specified by 'sigma_'.
gaussianBlurChannel
+
const ChannelType +channel_, const double radius_ = 0.0, const double sigma_ = 1.0
+
Gaussian blur +an image channel. The channel_ parameter specifies the +channel to blur. The number of neighbor +pixels to be included in the convolution mask is specified by +'width_'.  For example, a width of one gives a (standard) 3x3 +convolution mask. The standard deviation of the gaussian bell curve is +specified by 'sigma_'.
haldClut
+
const Image &reference_
+
apply a Hald color lookup table to the image.
+
+
implode
+
const double factor_Implode image (special effect)
+
inverseFourierTransform
+
const Image &phaseImage_, const bool magnitude_implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.
+
label
+
const string &label_Assign a label to an image. Use this option +to  assign  a  specific label to the image. Optionally +you can include the image filename, type, width, height, or scene +number in the label by embedding  +special format characters. If the first character of string is @, +the +image label is read from a file titled by the remaining characters in +the string. When converting to Postscript, use this  option to +specify a header string to print above the image.
level
+
const double black_point, +const double white_point, const double mid_point=1.0
+
Level image. Adjust the +levels of the image by scaling the colors falling between specified +white and black points to the full available quantum range. The +parameters provided represent the black, mid (gamma), and white +points.  The black point specifies the darkest color in the image. +Colors darker than the black point are set to zero. Mid point (gamma) +specifies a gamma correction to apply to the image. White point +specifies the lightest color in the image.  Colors brighter than +the white point are set to the maximum quantum value. The black and +white point have the valid range 0 to MaxRGB while mid (gamma) has a +useful range of 0 to ten.
+
levelChannel
+
const ChannelType +channel, const double black_point, const double white_point, const +double mid_point=1.0
+
Level image channel. +Adjust the levels of the image channel by scaling the values falling +between specified white and black points to the full available quantum +range. The parameters provided represent the black, mid (gamma), and +white points. The black point specifies the darkest color in the image. +Colors darker than the black point are set to zero. Mid point (gamma) +specifies a gamma correction to apply to the image. White point +specifies the lightest color in the image. Colors brighter than the +white point are set to the maximum quantum value. The black and white +point have the valid range 0 to MaxRGB while mid (gamma) has a useful +range of 0 to ten.
+
+
magnify
+
voidMagnify image by integral size
+
map
+
const Image &mapImage_ , bool dither_ = +falseRemap image colors with closest color from +reference image. Set dither_ to true in to apply +Floyd/Steinberg +error diffusion to the image. By default, color reduction chooses an +optimal  set  of colors that best represent the original +image. Alternatively, you can  choose  a  +particular  set  of colors  from  an image file +with this option.
+
matteFloodfill
+
const Color +&target_, const unsigned int  opacity_, const ssize_t x_, const +ssize_t +y_, PaintMethod method_Floodfill designated area with a replacement +opacity value.
medianFilterconst double radius_ = 0.0Filter image by replacing each pixel +component with the median color in a circular neighborhood
+
mergeLayers
+
LayerMethod +noiseType_handle multiple images forming a set of image layers or animation frames.
+
minify
+
voidReduce image by integral size
modifyImagevoidPrepare to update image. Ensures that there +is only one reference to the underlying image so that the underlying +image may be safely modified without effecting previous generations of +the image. Copies the underlying image to a new image if necessary.
+
modulate
+
double brightness_, double saturation_, +double hue_Modulate percent hue, saturation, and +brightness of an image. Modulation of saturation and brightness is as a +ratio of the current value (100.0 for no change). Modulation of hue is an +absolute rotation of -180 degrees to +180 degrees from the current +position corresponding to an argument range of 0 to 200.0 (100.0 for no +change).
motionBlur
+
const double radius_, +const double sigma_, const double angle_
+
Motion blur image with +specified blur factor. The radius_ parameter specifies the radius of +the Gaussian, in pixels, not counting the center pixel.  The +sigma_ parameter specifies the standard deviation of the Laplacian, in +pixels. The angle_ parameter specifies the angle the object appears to +be comming from (zero degrees is from the right).
+
+
negate
+
bool grayscale_ = falseNegate colors in image.  Replace every +pixel with its complementary color (white becomes black, yellow becomes +blue, etc.).  Set grayscale to only negate grayscale values in +image.
+
normalize
+
voidNormalize image (increase contrast by +normalizing the pixel values to span the full range of color values).
+
oilPaint
+
size_t radius_ = 3Oilpaint image (image looks like oil painting)
+
opacity
+
unsigned int opacity_Set or attenuate the opacity channel in the +image. If the image pixels are opaque then they are set to the +specified +opacity value, otherwise they are blended with the supplied opacity +value.  The value of opacity_ ranges from 0 (completely opaque) to + MaxRGB +. The defines OpaqueOpacity and TransparentOpacity are +available to specify completely opaque or completely transparent, +respectively.
+
opaque
+
const Color +&opaqueColor_, const Color &penColor_Change color of pixels matching opaqueColor_ +to specified penColor_.
+
ping
+
const std::string &imageSpec_Ping is similar to read +except only enough of the image is read to determine the image columns, +rows, and filesize.  The columns , + rows , and fileSize +attributes are valid after invoking ping.  The image data is not +valid after calling ping.
const Blob &blob_
process
+
std::string name_, +const ssize_t argc_, char **argv_
+
Execute the named +process module, passing any arguments via an argument vector, with +argc_ +specifying the number of arguments in the vector, and argv_ passing the +address of an array of null-terminated C strings which constitute the +argument vector. An exception is thrown if the requested process module +does not exist, fails to load, or fails during execution.
+
+
quantize
+
bool measureError_ = falseQuantize image (reduce number of colors). Set +measureError_ to true in order to calculate error attributes.
+
raise
+
const Geometry +&geometry_ = "6x6+0+0",  bool raisedFlag_ =  falseRaise image (lighten or darken the edges of +an image to give a 3-D raised or lowered effect)
+
read
+
const string &imageSpec_Read image into current object
const Geometry +&size_, const std::string &imageSpec_Read image of specified size into current +object. This form is useful for images that do not specifiy their size +or to specify a size hint for decoding an image. For example, when +reading a Photo CD, JBIG, or JPEG image, a size request causes the +library to return an image which is the next resolution greater or +equal to the specified size. This may result in memory and time savings.
const Blob &blob_Read encoded image of specified +size from an in-memory BLOB into current +object. Depending on the method arguments, the Blob size, depth, and +format may also be specified. Some image formats require that size be +specified. The default ImageMagick uses for depth depends on its +Quantum size (8 or 16).  If ImageMagick's Quantum size does not +match that of the image, the depth may need to be specified. +ImageMagick can usually automagically detect the image's format. +When +a format can't be automagically detected, the format must be specified.
const Blob +&blob_, const Geometry &size_
const Blob +&blob_, const Geometry &size_, +size_t depth_
const Blob +&blob_, const Geometry &size_, +size_t depth_, const string &magick_ 
const Blob +&blob_, const Geometry &size_, +const +string &magick_
const size_t width_, const size_t +height_, std::string map_, const StorageType type_, const void *pixels_Read image based on an array of image pixels. +The pixel data must be in scanline order top-to-bottom. The data can be +character, short int, integer, float, or double. Float and double +require the pixels to be normalized [0..1]. The other types are +[0..MaxRGB].  For example, to create a 640x480 image from +unsigned red-green-blue character data, use +

  image.read( 640, 480, "RGB", CharPixel, +pixels );

+

The parameters are as follows:

+ + + + + + + + + + + + + + + + + + + + + + + +
width_Width in pixels of the image.
height_Height in pixels of the image.
map_This character string can be any +combination or order of R = red, G = green, B = blue, A = alpha, C = +cyan, Y = yellow M = magenta, and K = black. The ordering reflects the +order of the pixels in the supplied pixel array.
type_Pixel storage type (CharPixel, +ShortPixel, IntegerPixel, FloatPixel, or DoublePixel)
pixels_This array of values contain the pixel +components as defined by the map_ and type_ parameters. The length of +the arrays must equal the area specified by the width_ and height_ +values and type_ parameters.
+
+
reduceNoise
+
const double order_reduce noise in image using a noise peak elimination filter.
randomThreshold
+
const Geometry +&thresholds_
+
Random threshold the +image. Changes the value of individual pixels based on the intensity of +each pixel compared to a random threshold. The result is a +low-contrast, two color image. The thresholds_ argument is a +geometry containing LOWxHIGH thresholds. If the string contains +2x2, 3x3, or 4x4, then an ordered dither of order 2, 3, or 4 will be +performed instead. This is a very fast alternative to 'quantize' based +dithering.
+
randomThresholdChannel
+
const Geometry +&thresholds_, const ChannelType channel_
+
Random threshold an +image channel. Similar to randomThreshold() +but restricted to the specified channel.
+
+
roll
+
int columns_, ssize_t rows_Roll image (rolls image vertically and +horizontally) by specified number of columnms and rows)
+
rotate
+
double degrees_Rotate image counter-clockwise by specified +number of degrees.
+
sample
+
const Geometry +&geometry_ Resize image by using pixel sampling algorithm
+
scale
+
const Geometry +&geometry_Resize image by using simple ratio algorithm
+
segment
+
double clusterThreshold_ = 1.0,
+ double smoothingThreshold_ = 1.5
Segment (coalesce similar image components) +by analyzing the histograms of the color components and identifying +units that are homogeneous with the fuzzy c-means technique. Also uses quantizeColorSpace +and verbose image attributes. Specify clusterThreshold_ +, +as the number  of  pixels  each cluster  must +exceed +the cluster threshold to be considered valid. SmoothingThreshold_ +eliminates noise in the  second derivative of the histogram. As +the +value is  increased, you can  expect  a  smoother +second derivative.  The default is 1.5.
+
shade
+
double azimuth_ = 30, double elevation_ = 30, +
+ bool colorShading_ = false
Shade image using distant light source. +Specify azimuth_ and elevation_ as the  +position  of  the light source. By default, the shading +results as a grayscale image.. Set colorShading_ to true +to +shade the red, green, and blue components of the image.
+
shadow
+
const double percent_opacity = 80, const double sigma_ += 0.5, const ssize_t x_ = 0, const ssize_t y_ = 0simulate an image shadow
+
sharpen
+
const double radius_ = 1, const double sigma_ += 0.5Sharpen pixels in image.  The radius_ +parameter specifies the radius of the Gaussian, in pixels, not counting +the center pixel.  The sigma_ parameter specifies the +standard deviation of the Laplacian, in pixels.
sharpenChannel
+
const ChannelType +channel_, const double radius_ = 0.0, const double sigma_ = 1.0
+
Sharpen pixel +quantums in an image channel  The channel_ parameter specifies the +channel to sharpen..  The radius_ +parameter specifies the radius of the Gaussian, in pixels, not counting +the center pixel.  The sigma_ parameter specifies the +standard deviation of the Laplacian, in pixels.
+
shave
+
const Geometry &geometry_Shave pixels from image edges.
+
shear
+
double xShearAngle_, double yShearAngle_Shear image (create parallelogram by sliding +image by X or Y axis).  Shearing slides one edge of an image along +the X  or  Y axis,  creating  a +parallelogram.  An X direction shear slides an edge along the X +axis, while  a  Y  direction shear  slides  +an edge along the Y axis.  The amount of the shear is controlled +by a shear angle.  For X direction  shears,  x  +degrees is measured relative to the Y axis, and similarly, for Y +direction shears  y  degrees is measured relative to the X +axis. Empty triangles left over from shearing the  image  are +filled  with  the  color  defined as borderColor
+
solarize
+
double factor_ = 50.0Solarize image (similar to effect seen when +exposing a photographic film to light during the development process)
+
splice
+
const Geometry +&geometry_splice the background color into the image
+
spread
+
size_t amount_ = 3Spread pixels randomly within image by +specified amount
+
stegano
+
const Image &watermark_Add a digital watermark to the image (based +on second image)
+
sparseColor
+
const ChannelType channel, const SparseColorMethod method, const size_t number_arguments, const double *arguments Sparse color image, given a set of coordinates, interpolates the colors found at those coordinates, across the whole image, using various methods.
+
statistics
+
ImageStatistics *statisticsObtain image statistics. Statistics are normalized to the range of 0.0 to 1.0 and are output to the specified ImageStatistics structure. The structure includes members maximum, minimum, mean, standard_deviation, and variance for each of these channels: red, green, blue, and opacity (e.g. statistics->red.maximum).
+
stereo
+
const Image &rightImage_Create an image which appears in stereo when +viewed with red-blue glasses (Red image on left, blue on right)
+
swirl
+
double degrees_Swirl image (image pixels are rotated by +degrees)
+
texture
+
const Image &texture_Layer a texture on pixels matching image +background color.
+
threshold
+
double threshold_Threshold image
+
transform
+
const Geometry +&imageGeometry_Transform image based on image +and crop geometries. Crop geometry is optional.
const Geometry +&imageGeometry_, const Geometry +&cropGeometry_ 
+
transparent
+
const Color +&color_Add matte image to image, setting pixels +matching color to transparent.
+
trim
+
voidTrim edges that are the background color from +the image.
+
unsharpmask
+
double radius_, double sigma_, double +amount_, double threshold_Sharpen the image using the unsharp mask +algorithm. The radius_ +parameter specifies the radius of the Gaussian, in pixels, not +counting the center pixel. The sigma_ parameter specifies the +standard deviation of the Gaussian, in pixels. The amount_ +parameter specifies the percentage of the difference between the +original and the blur image that is added back into the original. The threshold_ +parameter specifies the threshold in pixels needed to apply the +diffence amount.
unsharpmaskChannel
+
const ChannelType +channel_, const double radius_, const double sigma_, const double +amount_, const double threshold_
+
Sharpen an image +channel using the unsharp mask algorithm. The channel_ parameter specifies the +channel to sharpen. The radius_ +parameter specifies the radius of the Gaussian, in pixels, not +counting the center pixel. The sigma_ parameter specifies the +standard deviation of the Gaussian, in pixels. The amount_ +parameter specifies the percentage of the difference between the +original and the blur image that is added back into the original. The threshold_ +parameter specifies the threshold in pixels needed to apply the +diffence amount.
+
wave
+
double amplitude_ = 25.0, double wavelength_ += 150.0Alter an image along a sine wave.
+
write
+
const string &imageSpec_Write image to a file using filename imageSpec_ +.
+ Caution: if +an image format is selected which is capable of supporting fewer +colors than the original image or quantization has been requested, the +original image will be quantized to fewer colors. Use a copy of the +original if this is a problem.
Blob *blob_Write image to a in-memory BLOB stored in blob_. The magick_ +parameter specifies the image format to write (defaults to magick ). The depth_ parameter species the image +depth (defaults to depth ).
+ Caution: if +an image format is selected which is capable of supporting fewer +colors than the original image or quantization has been requested, the +original image will be quantized to fewer colors. Use a copy of the +original if this is a problem.
Blob *blob_, +std::string &magick_
Blob *blob_, +std::string &magick_, size_t depth_
const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_, const std::string &map_, +const StorageType type_, void *pixels_Write pixel data into a buffer you supply. +The data is saved either as char, short int, integer, float or double +format in the order specified by the type_ parameter. For example, we +want to extract scanline 1 of a 640x480 image as character data in +red-green-blue order: +

  image.write(0,0,640,1,"RGB",0,pixels); +

+

The parameters are as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
x_Horizontal ordinate of left-most +coordinate of region to extract.
y_Vertical ordinate of top-most +coordinate of region to extract.
columns_Width in pixels of the region to +extract.
rows_Height in pixels of the region to +extract.
map_This character string can be any +combination or order of R = red, G = green, B = blue, A = alpha, C = +cyan, Y = yellow, M = magenta, and K = black. The ordering reflects +the order of the pixels in the supplied pixel array.
type_Pixel storage type (CharPixel, +ShortPixel, IntegerPixel, FloatPixel, or DoublePixel)
pixels_This array of values contain the pixel +components as defined by the map_ and type_ parameters. The length of +the arrays must equal the area specified by the width_ and height_ +values and type_ parameters.
+
+
resize
+
const Geometry +&geometry_Resize image to specified size.
+
+

Image Attributes

+
+Image attributes are set and obtained via methods in Image. Except for +methods which accept pointer arguments (e.g. chromaBluePrimary) +all methods return attributes by value. +

Image attributes are easily used. For example, to set the resolution +of the TIFF file "file.tiff" to 150 dots-per-inch (DPI) in both the +horizontal and vertical directions, you can use the following example +code:

+
+string filename("file.tiff"); 
+Image image; 
+image.read(filename); 
+image.resolutionUnits(PixelsPerInchResolution); 
+image.density(Geometry(150,150));   // could also use image.density("150x150") 
+image.write(filename)
+
+The supported image attributes and the method arguments required to +obtain them are shown in the following table:
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Image Attributes
+
Function
+
+
Type
+
+
Get Signature
+
+
Set Signature
+
+
Description
+
+
adjoin
+
boolvoidbool flag_Join images into a single multi-image file.
+
antiAlias
+
boolvoidbool flag_Control antialiasing of rendered Postscript +and Postscript or TrueType fonts. Enabled by default.
+
animation- +
+ Delay
+
size_t (0 to 65535)voidsize_t delay_Time in 1/100ths of a second (0 to 65535) +which must expire before displaying the next image in an animated +sequence. This option is useful for regulating the animation of a +sequence  of GIF images within Netscape.
+
animation- +
+ Iterations
+
size_tvoidsize_t iterations_Number of iterations to loop an animation +(e.g. Netscape loop extension) for.
attribute
+
string
+
const +std::string name_
+
const +std::string name_, const std::string value_An arbitrary named +image attribute. Any number of named attributes may be attached to the +image. For example, the image comment is a named image attribute with +the name "comment". EXIF tags are attached to the image as named +attributes. Use the syntax "EXIF:<tag>" to request an EXIF tag +similar to "EXIF:DateTime".
+
+
background- +
+ Color
+
Color voidconst Color +&color_Image background color
+
background- +
+ Texture
+
stringvoidconst string &texture_Image file name to use as the background +texture. Does not modify image pixels.
+
baseColumns
+
size_tvoid Base image width (before transformations)
+
baseFilename
+
stringvoid Base image filename (before transformations)
+
baseRows
+
size_tvoid Base image height (before transformations)
+
borderColor
+
Color void const Color +&color_Image border color
boundingBoxGeometryvoid Return smallest bounding box enclosing +non-border pixels. The current fuzz value is used when discriminating +between pixels. This is the crop bounding box used by +crop(Geometry(0,0)).
+
boxColor
+
Color voidconst Color +&boxColor_Base color that annotation text is rendered +on.
cacheThresholdsize_t const size_tPixel cache threshold in bytes. Once this +threshold is exceeded, all subsequent pixels cache operations are +to/from disk. This is a static method and the attribute it sets is +shared by all Image objects.
channelDepth
+
size_t +
+
const +ChannelType channel_
+
const ChannelType +channel_, const size_t depth_
+
Channel modulus depth. +The channel modulus depth represents the minimum number of bits +required +to support the channel without loss. Setting the channel's modulus +depth +modifies the channel (i.e. discards resolution) if the requested +modulus +depth is less than the current modulus depth, otherwise the channel is +not altered. There is no attribute associated with the modulus depth so +the current modulus depth is obtained by inspecting the pixels. As a +result, the depth returned may be less than the most recently set +channel depth. Subsequent image processing may result in increasing the +channel depth.
+
+
chroma- +
+ BluePrimary
+
double x & ydouble *x_, double *y_double x_, double y_Chromaticity blue primary point (e.g. x=0.15, +y=0.06)
+
chroma- +
+ GreenPrimary
+
double x & ydouble *x_, double *y_double x_, double y_Chromaticity green primary point (e.g. x=0.3, +y=0.6)
+
chroma- +
+ RedPrimary
+
double x & ydouble *x_, double *y_double x_, double y_Chromaticity red primary point (e.g. x=0.64, +y=0.33)
+
chroma- +
+ WhitePoint
+
double x & ydouble*x_, double *y_double x_, double y_Chromaticity white point (e.g. x=0.3127, +y=0.329)
+
classType
+
ClassType + void ClassType +class_Image storage class.  Note that +conversion from a DirectClass image to a PseudoClass image may result +in a loss of color due to the limited size of the palette (256 or +65535 colors).
+
clipMask
+
Imagevoidconst Image &clipMask_Associate a clip mask image with the current +image. The clip mask image must have the same dimensions as the current +image or an exception is thrown. Clipping occurs wherever pixels are +transparent in the clip mask image. Clipping Pass an invalid image to +unset an existing clip mask.
+
colorFuzz
+
doublevoiddouble fuzz_Colors within this distance are considered +equal. A number of algorithms search for a target  color. By +default the color must be exact. Use this option to match colors that +are close to the target color in RGB space.
+
colorMap
+
Color size_t index_size_t index_, const Color &color_Color at colormap index.
+
colorMapSize
+
+
size_t
+
void
+
size_t entries_
+
Number of entries in the +colormap. Setting the colormap size may extend or truncate the +colormap. +The maximum number of supported entries is specified by the MaxColormapSizeconstant, +and is dependent on the value of QuantumDepth when ImageMagick is +compiled. An exception is thrown if more entries are requested than may +be supported. Care should be taken when truncating the colormap to +ensure that the image colormap indexes reference valid colormap entries.
+
+
colorSpace
+
ColorspaceType +colorSpace_voidColorspaceType +colorSpace_The colorspace (e.g. CMYK) used to represent +the image pixel colors. Image pixels are always stored as RGB(A) except +for the case of CMY(K).
+
columns
+
size_tvoid Image width
+
comment
+
stringvoid Image comment
+
compose
+
CompositeOperator + voidCompositeOperator +compose_Composition operator to be used when +composition is implicitly used (such as for image flattening).
+
compress- +
+ Type
+
CompressionType + voidCompressionType +compressType_Image compresion type. The default is the +compression type of the specified image file.
+
debug
+
boolvoidbool flag_Enable printing of internal debug messages +from ImageMagick as it executes.
defineValue
+
string
+
const std::string +&magick_, const std::string &key_
+
const std::string +&magick_, const std::string &key_,  const std::string +&value_
+
Set or obtain a +definition string to applied when encoding or decoding the specified +format. The meanings of the definitions are format specific. The format +is designated by the magick_ +argument, the format-specific key is designated by key_, and the associated value is +specified by value_. See the +defineSet() method if the key must be removed entirely.
+
defineSet
+
bool
+
const std::string +&magick_, const std::string &key_
+
const std::string +&magick_, const std::string &key_, bool flag_
+
Set or obtain a +definition flag to applied when encoding or decoding the specified +format.. Similar to the defineValue() method except that +passing the flag_ value +'true' +creates a value-less define with that format and key. Passing the flag_ +value 'false' removes any existing matching definition. The method +returns 'true' if a matching key exists, and 'false' if no matching key +exists.
+
+
density
+
Geometry   +(default 72x72)voidconst Geometry +&density_Vertical and horizontal resolution in pixels +of the image. This option specifies an image density when decoding a +Postscript or Portable Document page. Often used with psPageSize.
+
depth
+
 size_t (8-32)voidsize_t depth_Image depth. Used to specify the bit depth +when reading or writing  raw images or when the output format +supports multiple depths. Defaults to the quantum depth that +ImageMagick is compiled with.
+
endian
+
EndianType + voidEndianType +endian_Specify (or obtain) endian option for formats +which support it.
+
directory
+
stringvoid Tile names from within an image montage
+
file
+
FILE *FILE *FILE *file_Image file descriptor.
+
fileName
+
stringvoidconst string &fileName_Image file name.
+
fileSize
+
off_tvoid Number of bytes of the image on disk
+
fillColor
+
Colorvoidconst Color &fillColor_Color to use when filling drawn objects
+
fillPattern
+
Imagevoidconst Image &fillPattern_Pattern image to use when filling drawn +objects.
+
fillRule
+
FillRule + voidconst Magick::FillRule &fillRule_Rule to use when filling drawn objects.
+
filterType
+
FilterTypes + voidFilterTypes +filterType_Filter to use when resizing image. The +reduction filter employed has a sigificant effect on the time required +to resize an image and the resulting quality. The default filter is Lanczos +which has been shown to produce high quality results when reducing most +images.
+
font
+
stringvoidconst string &font_Text rendering font. If the font is a fully +qualified X server font name, the font is obtained from an X  +server. To use a TrueType font, precede the TrueType filename with an +@. Otherwise, specify  a  Postscript font name (e.g. +"helvetica").
+
fontPointsize
+
size_tvoidsize_t pointSize_Text rendering font point size
+
fontTypeMetrics
+
TypeMetric const std::string &text_, TypeMetric *metrics Update metrics with font type metrics using +specified text, and current font and fontPointSize settings.
+
format
+
stringvoid Long form image format description.
+
gamma
+
double (typical range 0.8 to 2.3)void Gamma level of the image. The same color +image displayed on two different  workstations  may  +look  different due to differences in the display monitor.  +Use gamma correction  to  adjust  for this  +color  difference.
+
geometry
+
Geometry void Preferred size of the image when encoding.
+
gifDispose- +
+ Method
+
size_t
+ { 0 = Disposal not specified,
+ 1 = Do not dispose of graphic,
+ 3 = Overwrite graphic with background color, +
+ 4 = Overwrite graphic with previous graphic. }
voidsize_t disposeMethod_GIF disposal method. This option is used to +control how successive frames are rendered (how the preceding frame is +disposed of) when creating a GIF animation.
+
iccColorProfile
+
Blob voidconst Blob +&colorProfile_ICC color profile. Supplied via a Blob since Magick++/ and ImageMagick do not +currently support formating this data structure directly.  +Specifications are available from the +International Color Consortium for the format of ICC color profiles.
+
interlace- +
+ Type
+
InterlaceType + voidInterlaceType +interlace_The type of interlacing scheme (default NoInterlace +). This option is used to specify the type of  interlacing +scheme  for  raw  image formats such as RGB or YUV. NoInterlace +means do not  interlace, LineInterlace uses scanline +interlacing, and PlaneInterlace uses plane interlacing. +PartitionInterlace is like PlaneInterlace except the  +different planes  are saved  to individual files (e.g.  +image.R, image.G, and image.B). Use LineInterlace or +PlaneInterlace to create an interlaced GIF or progressive JPEG +image.
+
iptcProfile
+
Blob voidconst Blob & +iptcProfile_IPTC profile. Supplied via a Blob since Magick++ and ImageMagick do not +currently  support formating this data structure directly. +Specifications are available from the +International Press Telecommunications Council for IPTC profiles.
+
label
+
stringvoidconst string &label_Image label
+
magick
+
stringvoid const string &magick_Get image format (e.g. "GIF")
+
matte
+
boolvoidbool matteFlag_True if the image has transparency. If set +True, store matte channel if  the image has one otherwise create +an opaque one.
+
matteColor
+
Color voidconst Color +&matteColor_Image matte (frame) color
+
meanError- +
+ PerPixel
+
doublevoid The mean error per pixel computed when an +image is color reduced. This parameter is only valid if verbose is set +to true and the image has just been quantized.
modulusDepth
+
size_t +
+
void
+
size_t +depth_
+
Image +modulus depth (minimum number of bits required to support +red/green/blue components without loss of accuracy). The pixel modulus +depth may be decreased by supplying a value which is less than the +current value, updating the pixels (reducing accuracy) to the new +depth. +The pixel modulus depth can not be increased over the current value +using this method.
+
+
monochrome
+
boolvoidbool flag_Transform the image to black and white
+
montage- +
+ Geometry
+
Geometry void Tile size and offset within an image montage. +Only valid for montage images.
+
normalized- +
+ MaxError
+
doublevoid The normalized max error per pixel computed +when an image is color reduced. This parameter is only valid if verbose +is set to true and the image has just been quantized.
+
normalized- +
+ MeanError
+
doublevoid The normalized mean error per pixel computed +when an image is color reduced. This parameter is only valid if verbose +is set to true and the image has just been quantized.
orientation
+
OrientationTypevoid
+
OrientationType +orientation_Image orientation. + Supported by some file formats such as DPX and TIFF. Useful for +turning the right way up.
+
+
packets
+
size_tvoid The number of runlength-encoded packets in +
+ the image
+
packetSize
+
size_tvoid The number of bytes in each pixel packet
+
page
+
Geometry + voidconst Geometry &pageSize_Preferred size and location of an image +canvas. +

Use this option to specify the dimensions +and position of the Postscript page in dots per inch or a TEXT page in +pixels. This option is typically used in concert with density .

+

Page may also be used to position a GIF +image (such as for a scene in an animation)

+
+
pixelColor
+
Color ssize_t x_, ssize_t y_ssize_t x_, ssize_t y_, const Color &color_Get/set pixel color at location x & y.
+
profile
+
+
Blob
+
const std::string name_
+
const std::string name_, const Blob +&colorProfile_
+
Get/set/remove a named +profile. Valid names include "*", +"8BIM", "ICM", "IPTC", or a user/format-defined profile name.
+
+
quality
+
size_t (0 to 100)voidsize_t quality_JPEG/MIFF/PNG compression level (default 75).
+
quantize- +
+ Colors
+
size_tvoidsize_t colors_Preferred number of colors in the image. The +actual number of colors in the image may be less than your request, but +never more. Images with less unique colors than specified with this +option will have any duplicate or unused colors removed.
+
quantize- +
+ ColorSpace
+
ColorspaceType + voidColorspaceType +colorSpace_Colorspace to quantize colors in (default +RGB). Empirical evidence suggests that 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.
+
quantize- +
+ Dither
+
boolvoidbool flag_Apply Floyd/Steinberg error diffusion to the +image. The basic strategy of dithering is to  trade  +intensity +resolution  for  spatial  resolution  by  +averaging the intensities  of  several  +neighboring  pixels. Images which  suffer  from  +severe  contouring  when  reducing colors can be +improved with this option. The quantizeColors or monochrome option must +be set for this option to take effect.
+
quantize- +
+ TreeDepth
+
size_t voidsize_t treeDepth_Depth of the quantization color +classification tree. Values of 0 or 1 allow selection of the optimal +tree depth for the color reduction algorithm. Values between 2 and 8 +may be used to manually adjust the tree depth.
+
rendering- +
+ Intent
+
RenderingIntent + voidRenderingIntent +render_The type of rendering intent
+
resolution- +
+ Units
+
ResolutionType + voidResolutionType +units_Units of image resolution
+
rows
+
size_tvoid The number of pixel rows in the image
+
scene
+
size_tvoidsize_t scene_Image scene number
+
signature
+
stringbool force_ = false Image MD5 signature. Set force_ to 'true' to +force re-computation of signature.
+
size
+
Geometry voidconst Geometry +&geometry_Width and height of a raw image (an image +which does not support width and height information).  Size may +also be used to affect the image size read from a multi-resolution +format (e.g. Photo CD, JBIG, or JPEG.
+
strip
+
voidstrips an image of all profiles and comments.
+
strokeAntiAlias
+
boolvoidbool flag_Enable or disable anti-aliasing when drawing +object outlines.
+
strokeColor
+
Colorvoidconst Color &strokeColor_Color to use when drawing object outlines
+
strokeDashOffset
+
size_tvoiddouble strokeDashOffset_While drawing using a dash pattern, specify +distance into the dash pattern to start the dash (default 0).
+
strokeDashArray
+
const double*voidconst double* strokeDashArray_Specify the pattern of dashes and gaps used +to stroke paths. The strokeDashArray represents a zero-terminated +array of numbers that specify the lengths (in pixels) of alternating +dashes and gaps in user units. If an odd number of values is provided, +then the list of values is repeated to yield an even number of +values.  A typical strokeDashArray_ array might contain the +members 5 3 2 0, where the zero value indicates the end of the pattern +array.
+
strokeLineCap
+
LineCapvoidLineCap lineCap_Specify the shape to be used at the corners +of paths (or other vector shapes) when they are stroked. Values of +LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.
+
strokeLineJoin
+
LineJoinvoidLineJoin lineJoin_Specify the shape to be used at the corners +of paths (or other vector shapes) when they are stroked. Values of +LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.
+
strokeMiterLimit
+
size_tvoidsize_t miterLimit_Specify miter limit. When two line segments +meet at a sharp angle and miter joins have been specified for +'lineJoin', it is possible for the miter to extend far beyond the +thickness of the line stroking the path. The miterLimit' imposes a +limit on the ratio of the miter length to the 'lineWidth'. The default +value of this parameter is 4.
+
strokeWidth
+
doublevoiddouble strokeWidth_Stroke width for use when drawing vector +objects (default one)
+
strokePattern
+
Imagevoidconst Image &strokePattern_Pattern image to use while drawing object +stroke (outlines).
+
subImage
+
size_tvoidsize_t subImage_Subimage of an image sequence
+
subRange
+
size_tvoidsize_t subRange_Number of images relative to the base image
+
textEncoding
+
+
string
+
void
+
const std::string &encoding_
+
Specify the code set to use for text +annotations. The only character encoding which may be specified at +this time is "UTF-8" for representing Unicode as a +sequence of bytes. Specify an empty string to use the default ASCII +encoding. Successful text annotation using Unicode may require fonts +designed to support Unicode.
+
+
tileName
+
stringvoidconst string &tileName_Tile name
+
totalColors
+
size_tvoid Number of colors in the image
+
type
+
ImageType + void ImageType Image type.
+
verbose
+
boolvoidbool verboseFlag_Print detailed information about the image
+
view
+
stringvoidconst string &view_FlashPix viewing parameters.
+
virtualPixelMethod
+
VirtualPixelMethod + voidVirtualPixelMethod +virtualPixelMethod_Image virtual pixel method.
+
x11Display
+
string (e.g. "hostname:0.0")voidconst string &display_X11 display to display to, obtain fonts from, +or to capture image from
+
xResolution
+
doublevoid x resolution of the image
+
yResolution
+
doublevoid y resolution of the image
+
+

Low-Level Image Pixel Access

+
+Image pixels (of type Quantum ) +may be accessed directly via the Image Pixel Cache .  The +image pixel cache is a rectangular window into the actual image pixels +(which may be in memory, memory-mapped from a disk file, or entirely on +disk). Two interfaces exist to access the Image Pixel Cache. +The +interface described here (part of the Image class) supports +only +one view at a time. See the Pixels +class for a more abstract interface which supports simultaneous pixel +views (up to the number of rows). As an analogy, the interface +described +here relates to the Pixels class as +stdio's gets() relates to fgets(). The Pixels +class provides the more general form of the interface. +

Obtain existing image pixels via getPixels(). Create a new +pixel region using setPixels().

+

In order to ensure that only the current generation of the image is +modified, the Image's modifyImage() method +should be invoked to reduce the reference count on the underlying image +to one. If this is not done, then it is possible for a previous +generation of the image to be modified due to the use of reference +counting when copying or constructing an Image.
+

+

Depending on the capabilities of the operating system, and the +relationship of the window to the image, the pixel cache may be a copy +of the pixels in the selected window, or it may be the actual image +pixels. In any case calling syncPixels() insures that the base +image is updated with the contents of the modified pixel cache. The +method readPixels() supports copying foreign pixel data +formats +into the pixel cache according to the QuantumTypes. The method writePixels() +supports copying the pixels in the cache to a foreign pixel +representation according to the format specified by QuantumTypes.

+

The pixel region is effectively a small image in which the pixels +may be accessed, addressed, and updated, as shown in the following +example:

+
+cache
+Image image("cow.png"); 
+// Ensure that there are no other references to this image.
+image.modifyImage();
+// Set the image type to TrueColor DirectClass representation.
+image.type(TrueColorType);
+// Request pixel region with size 60x40, and top origin at 20x30 
+ssize_t columns = 60; 
+Quantum *pixel_cache = image.getPixels(20,30,columns,40); 
+// Set pixel at column 5, and row 10 in the pixel cache to red. 
+ssize_t column = 5; 
+ssize_t row = 10; 
+Quantum *pixel = pixel_cache+row*columns+column; 
+*pixel = Color("red"); 
+// Save changes to underlying image .
+image.syncPixels();
+  // Save updated image to file.
+image.write("horse.png");
+
+

The image cache supports the following methods:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Image Cache Methods
+
Method
+
+
Returns
+
+
Signature
+
+
Description
+
+
getConstPixels
+
const Quantum +*const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_Transfers pixels from the image to the pixel +cache as defined by the specified rectangular region. The returned pointer remains valid until the next getPixel, +getConstPixels, or setPixels call and should never be deallocated by +the +user.
+
getConstIndexes
+
const IndexPacket*voidReturns a pointer to the Image pixel indexes +corresponding to a previous getPixel, +getConstPixels, or setPixels call.  The +returned pointer remains valid until the next getPixel, getConstPixels, +or setPixels call and should never be deallocated by the user. Only valid for PseudoClass images or CMYKA images. The +pixel indexes represent an array of type IndexPacket, with each entry +corresponding to an x,y pixel position. For PseudoClass images, the +entry's value is the offset into the colormap (see colorMap +) for that pixel. For CMYKA images, the indexes are used to contain the +alpha channel.
+
getIndexes
+
IndexPacket*voidReturns a pointer to the Image pixel indexes +corresponding to the pixel region requested by the last getConstPixels , getPixels +, or setPixels call. The +returned pointer remains valid until the next getPixel, getConstPixels, +or setPixels call and should never be deallocated by the user. Only valid for PseudoClass images +or +CMYKA images. The pixel indexes represent an array of type +IndexPacket, with each entry corresponding to a pixel x,y position. For +PseudoClass images, the entry's value is the offset into the colormap +(see colorMap ) for that pixel. For +CMYKA +images, the indexes are used to contain the alpha channel.
+
getPixels
+
Quantum *const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_Transfers pixels from the image to the pixel +cache as defined by the specified rectangular region. Modified pixels +may be subsequently transferred back to the image via syncPixels. The returned pointer remains valid until the next getPixel, +getConstPixels, or setPixels call and should never be deallocated by +the +user.
+
setPixels
+
Quantum *const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_Allocates a pixel cache region to store image +pixels as defined by the region rectangle.  This area is +subsequently transferred from the pixel cache to the image via +syncPixels. The returned pointer remains +valid until the next getPixel, getConstPixels, or setPixels call and +should never be deallocated by the user.
+
syncPixels
+
voidvoidTransfers the image cache pixels to the image.
+
readPixels
+
voidQuantumTypes +quantum_, unsigned char *source_,Transfers one or more pixel components from a +buffer or file into the image pixel cache of an image. ReadPixels is +typically used to support image decoders. The region transferred +corresponds to the region set by a preceding setPixels call.
+
writePixels
+
voidQuantumTypes +quantum_, unsigned char *destination_Transfers one or more pixel components from +the image pixel cache to a buffer or file. WritePixels is typically +used to support image encoders. The region transferred corresponds to +the region set by a preceding getPixels or getConstPixels call.
+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Image.fig b/share/doc/ImageMagick-7/www/Magick++/Image.fig new file mode 100644 index 0000000..96ffd9b --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Image.fig @@ -0,0 +1,98 @@ +#FIG 3.2 +Landscape +Center +Inches +Letter +100.00 +Single +0 +1200 2 +6 5250 4125 7425 5175 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 5325 4350 7425 4350 7425 5175 5325 5175 5325 4350 +4 1 0 0 0 0 10 0.0000 4 135 810 6450 4275 class Options\001 +4 2 0 0 0 0 8 0.0000 4 135 1785 7350 4575 MagickCore::ImageInfo* _imageInfo\001 +4 2 0 0 0 0 8 0.0000 4 135 2040 7350 4800 MagickCore::QuantizeInfo* _quantizeInfo\001 +4 2 0 0 0 0 8 0.0000 4 135 1875 7350 5025 MagickCore::QuantizeInfo* _drawInfo\001 +-6 +6 600 4800 2400 5625 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 600 5025 2400 5025 2400 5625 600 5625 600 5025 +4 1 0 0 0 0 10 0.0000 4 135 690 1500 4950 class Image\001 +4 2 0 0 0 0 8 0.0000 4 135 1395 2325 5400 class ImageRef* _imageRef\001 +-6 +6 1425 3600 1575 4650 +1 3 0 1 0 0 0 0 20 0.000 1 0.0000 1500 3675 75 75 1500 3675 1500 3750 +1 3 0 1 0 0 0 0 20 0.000 1 0.0000 1500 4125 75 75 1500 4125 1500 4200 +1 3 0 1 0 0 0 0 20 0.000 1 0.0000 1500 4575 75 75 1500 4575 1500 4650 +-6 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4800 2400 5325 2400 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4800 2775 5550 4350 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 2400 5325 3075 3600 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 2400 3000 3075 3000 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 2400 1800 3075 2325 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7425 4500 8100 3900 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7425 2250 8100 2250 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 60.00 120.00 + 7425 2550 7800 2550 7800 2850 8100 2850 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 600 2700 2400 2700 2400 3300 600 3300 600 2700 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 600 1500 2400 1500 2400 2100 600 2100 600 1500 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 8100 2100 9300 2100 9300 2400 8100 2400 8100 2100 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 8100 2700 9300 2700 9300 3000 8100 3000 8100 2700 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 8100 3600 9300 3600 9300 4200 8100 4200 8100 3600 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 8100 4500 9300 4500 9300 5100 8100 5100 8100 4500 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 8100 5400 9300 5400 9300 6000 8100 6000 8100 5400 +2 2 0 1 11 11 100 0 25 0.000 0 0 7 0 0 5 + 75 300 9825 300 9825 6150 75 6150 75 300 +2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7425 4800 8100 4800 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7425 5025 8100 5700 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 3075 2100 4800 2100 4800 3900 3075 3900 3075 2100 +2 2 0 1 0 6 5 0 32 0.000 0 0 7 0 0 5 + 5325 2100 7425 2100 7425 2700 5325 2700 5325 2100 +4 1 0 0 0 18 14 0.0000 4 210 3300 5250 900 Magick++ Image Data Structures\001 +4 1 0 0 0 0 10 0.0000 4 135 690 1575 1425 class Image\001 +4 1 0 0 0 0 10 0.0000 4 135 690 1500 2625 class Image\001 +4 1 0 0 0 0 10 0.0000 4 135 1725 8700 3525 struct MagickCore::ImageInfo\001 +4 1 0 0 0 0 10 0.0000 4 135 1890 8700 4425 struct MagickCore::QuantizeInfo\001 +4 2 0 0 0 0 8 0.0000 4 135 1395 2325 1875 class ImageRef* _imageRef\001 +4 2 0 0 0 0 8 0.0000 4 135 1395 2325 3075 class ImageRef* _imageRef\001 +4 2 0 0 0 0 8 0.0000 4 135 1665 4725 2475 struct MagickCore::Image* _image\001 +4 1 0 0 0 0 10 0.0000 4 135 1680 8700 5325 struct MagickCore::DrawInfo\001 +4 2 0 0 0 0 8 0.0000 4 135 1485 4725 3750 class MutexLock _mutexLock\001 +4 2 0 0 0 0 8 0.0000 4 135 1140 4725 2850 class Options* _options\001 +4 2 0 0 0 0 8 0.0000 4 135 390 4725 3150 long _id\001 +4 2 0 0 0 0 8 0.0000 4 135 645 4725 3450 ssize_t _refCount\001 +4 1 0 0 0 0 10 0.0000 4 135 675 8708 2295 Image Data\001 +4 1 0 0 0 0 10 0.0000 4 135 1005 8700 2902 Image Attributes\001 +4 1 0 0 0 0 10 0.0000 4 135 1485 6450 2025 struct MagickCore::Image\001 +4 1 0 0 0 0 10 0.0000 4 135 900 3975 1950 class ImageRef\001 +4 1 0 0 0 0 10 0.0000 4 105 150 2625 2925 ref\001 +4 1 0 0 0 0 10 0.0000 4 105 150 2625 1875 ref\001 +4 1 0 0 0 0 10 0.0000 4 105 150 2625 4425 ref\001 diff --git a/share/doc/ImageMagick-7/www/Magick++/Image.html b/share/doc/ImageMagick-7/www/Magick++/Image.html new file mode 100644 index 0000000..5c9a12f --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Image.html @@ -0,0 +1,3145 @@ + + + + + +Magick++ API: Working with Images + + + +
+
+

Magick::Image Class

+
+

Quick Contents

+ +

Image is the primary object in Magick++ and represents +a single image frame (see design ). The +STL interface must be used to operate on +image sequences or images (e.g. of format GIF, TIFF, MIFF, Postscript, +& MNG) which are comprized of multiple image frames. Individual +frames of a multi-frame image may be requested by adding array-style +notation to the end of the file name (e.g. "animation.gif[3]" retrieves +the fourth frame of a GIF animation.  Various image manipulation +operations may be applied to the image. Attributes may be set on the +image to influence the operation of the manipulation operations. The Pixels class provides low-level access to +image +pixels. As a convenience, including <Magick++.h> +is sufficient in order to use the complete Magick++ API. The Magick++ +API is enclosed within the Magick namespace so you must either +add the prefix " Magick:: " to each class/enumeration name or +add +the statement " using namespace Magick;" after including the Magick++.h +header.

+

The preferred way to allocate Image objects is via automatic +allocation (on the stack). There is no concern that allocating Image +objects on the stack will excessively enlarge the stack since Magick++ +allocates all large data objects (such as the actual image data) from +the heap. Use of automatic allocation is preferred over explicit +allocation (via new) since it is much less error prone and +allows use of C++ scoping rules to avoid memory leaks. Use of automatic +allocation allows Magick++ objects to be assigned and copied just like +the C++ intrinsic data types (e.g. 'int '), leading to clear and +easy to read code. Use of automatic allocation leads to naturally +exception-safe code since if an exception is thrown, the object is +automagically deallocated once the stack unwinds past the scope of the +allocation (not the case for objects allocated via new ).

+

Image is very easy to use. For example, here is a the source to a +program which reads an image, crops it, and writes it to a new file +(the +exception handling is optional but strongly recommended):

+
+#include <Magick++.h> 
+#include <iostream> 
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+
+  // Construct the image object. Seperating image construction from the 
+  // the read operation ensures that a failure to read the image file 
+  // doesn't render the image object useless. 
+  Image image;
+  try { 
+    // Read a file into image object 
+    image.read( "girl.gif" );
+
+    // Crop the image to specified size (width, height, xOffset, yOffset)
+    image.crop( Geometry(100,100, 100, 100) );
+
+    // Write the image to a file 
+    image.write( "x.gif" ); 
+  } 
+  catch( Exception &error_ ) 
+    { 
+      cout << "Caught exception: " << error_.what() << endl; 
+      return 1; 
+    } 
+  return 0; 
+}
+
+The following is the source to a program which illustrates the use of +Magick++'s efficient reference-counted assignment and copy-constructor +operations which minimize use of memory and eliminate unncessary copy +operations (allowing Image objects to be efficiently assigned, and +copied into containers).  The program accomplishes the +following: +
    +
  1. Read master image.
  2. +
  3. Assign master image to second image.
  4. +
  5. Resize second image to the size 640x480.
  6. +
  7. Assign master image to a third image.
  8. +
  9. Resize third image to the size 800x600.
  10. +
  11. Write the second image to a file.
  12. +
  13. Write the third image to a file.
  14. +
+
+#include <Magick++.h> 
+#include <iostream> 
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+
+  Image master("horse.jpg"); 
+  Image second = master; 
+  second.resize("640x480"); 
+  Image third = master; 
+  third.resize("800x600"); 
+  second.write("horse640x480.jpg"); 
+  third.write("horse800x600.jpg"); 
+  return 0; 
+}
+
+During the entire operation, a maximum of three images exist in memory +and the image data is never copied. +

The following is the source for another simple program which creates +a 100 by 100 pixel white image with a red pixel in the center and +writes it to a file:

+
+#include <Magick++.h> 
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+  Image image( "100x100", "white" ); 
+  image.pixelColor( 49, 49, "red" ); 
+  image.write( "red_pixel.png" ); 
+  return 0; 
+}
+
+If you wanted to change the color image to grayscale, you could add the +lines: +
+image.quantizeColorSpace( GRAYColorspace ); 
+image.quantizeColors( 256 ); 
+image.quantize( );
+
+

or, more simply:

+
+ image.type( GrayscaleType );
+
+

prior to writing the image.

+
+

BLOBs

+
+While encoded images (e.g. JPEG) are most often written-to and +read-from a disk file, encoded images may also reside in memory. +Encoded +images in memory are known as BLOBs (Binary Large OBjects) and may be +represented using the Blob class. The encoded +image may be initially placed in memory by reading it directly from a +file, reading the image from a database, memory-mapped from a disk +file, or could be written to memory by Magick++. Once the encoded image +has been placed within a Blob, it may be read into a Magick++ Image via +a constructor or read() +. Likewise, a Magick++ image may be written to a Blob via write() . +

An example of using Image to write to a Blob follows:

+
+#include >Magick++.h> 
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+
+  // Read GIF file from disk 
+  Image image( "giraffe.gif" );
+  // Write to BLOB in JPEG format 
+  Blob blob; 
+  image.magick( "JPEG" ) // Set JPEG output format 
+  image.write( &blob );
+
+  [ Use BLOB data (in JPEG format) here ]
+
+  return 0; 
+}
+
+


+likewise, to read an image from a Blob, you could use one of the +following examples:

+

[ Entry condition for the following examples +is that data is pointer to encoded image data and length +represents the size of the data ]

+
+Blob blob( data, length ); 
+Image image( blob );
+
+or +
+Blob blob( data, length ); 
+Image image; 
+image.read( blob);
+
+some images do not contain their size or format so the size and format must be specified in advance: +
+Blob blob( data, length ); 
+Image image; 
+image.size( "640x480") 
+image.magick( "RGBA" ); 
+image.read( blob);
+
+
+

Constructors

+
+Image may be constructed in a number of ways. It may be constructed +from a file, a URL, or an encoded image (e.g. JPEG) contained in an +in-memory BLOB . The available Image +constructors are shown in the following table:

+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Image Constructors
+
Signature
+
+
Description
+
const std::string &imageSpec_Construct Image by reading from file or URL +specified by imageSpec_. Use array notation (e.g. filename[9]) +to select a specific scene from a multi-frame image.
const Geometry &size_, const Color &color_Construct a blank image canvas of specified +size and color
const Blob &blob_Construct Image by reading from +encoded image data contained in an in-memory BLOB +. Depending on the constructor arguments, the Blob size +, depth , magick (format) +may +also be specified. Some image formats require that size be specified. +The default ImageMagick uses for depth depends on the compiled-in +Quantum size (8 or 16).  If ImageMagick's Quantum size does not +match that of the image, the depth may need to be specified. +ImageMagick can usually automagically detect the image's format. +When a format can't be automagically detected, the format (magick ) must be specified.
const Blob +&blob_, const Geometry &size_
const Blob +&blob_, const Geometry &size, +size_t depth
const Blob +&blob_, const Geometry &size, +size_t depth_, const string &magick_
const Blob +&blob_, const Geometry &size, +const +string &magick_
const size_t width_, 
+ const size_t height_,
+ std::string map_,
+ const +StorageType type_,
+ const void *pixels_
Construct a new Image based on an array of +image pixels. The pixel data must be in scanline order top-to-bottom. +The data can be character, short int, integer, float, or double. Float +and double require the pixels to be normalized [0..1]. The other types +are [0..MaxRGB].  For example, to create a 640x480 image from +unsigned red-green-blue character data, use +

   Image image( 640, 480, "RGB", +0, pixels );

+

The parameters are as follows:

+ + + + + + + + + + + + + + + + + + + + + + + +
width_Width in pixels of the image.
height_Height in pixels of the image.
map_This character string can be any +combination or order of R = red, G = green, B = blue, A = alpha, C = +cyan, Y = yellow M = magenta, and K = black. The ordering reflects the +order of the pixels in the supplied pixel array.
type_Pixel +storage type (CharPixel, ShortPixel, IntegerPixel, FloatPixel, or +DoublePixel)
pixels_This array of values contain the pixel +components as defined by the map_ and type_ parameters. The length of +the arrays must equal the area specified by the width_ and height_ +values and type_ parameters.
+
+
+

Image Manipulation +Methods

+
+Image supports access to all the single-image (versus +image-list) manipulation operations provided by the ImageMagick +library. If you +must process a multi-image file (such as an animation), the STL interface , which provides a multi-image +abstraction on top of Image, must be used. +

Image manipulation methods are very easy to use.  For example:

+
+Image image; 
+image.read("myImage.tiff"); 
+image.addNoise(GaussianNoise); 
+image.write("myImage.tiff");
+
+adds gaussian noise to the image file "myImage.tiff". +

The operations supported by Image are shown in the following table:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Image Image Manipulation Methods
MethodSignature(s)Description
+
adaptiveThreshold
+
+
size_t width, size_t +height, size_t offset = 0
+
Apply adaptive thresholding to +the image. Adaptive thresholding is useful if the ideal threshold level +is not known in advance, or if the illumination gradient is not +constant +across the image. Adaptive thresholding works by evaulating the mean +(average) of a pixel region (size specified by width and height) +and using the mean as the thresholding value. In order to remove +residual noise from the background, the threshold may be adjusted by +subtracting a constant offset (default zero) from the mean to +compute the threshold.
+
+
addNoise
+
NoiseType +noiseType_Add noise to image with specified noise type.
addNoiseChannel
+
const ChannelType +channel_, const NoiseType noiseType_
+
Add noise to an image +channel with the specified noise type. The channel_ parameter specifies the +channel to add noise to.  The noiseType_ parameter +specifies the type of noise.
+
affineTransform
+
const DrawableAffine +&affine
+
Transform image by +specified affine (or free transform) matrix.
+
+
annotate
+
const std::string &text_, const Geometry &location_Annotate using specified text, and placement +location
string text_, const Geometry +&boundingArea_, GravityType +gravity_Annotate using specified text, bounding area, +and placement gravity. If boundingArea_ is invalid, then +bounding area is entire image.
const std::string &text_, const Geometry &boundingArea_, GravityType gravity_, double +degrees_, Annotate with text using specified text, +bounding area, placement gravity, and rotation. If boundingArea_ +is invalid, then bounding area is entire image.
const std::string &text_, GravityType gravity_Annotate with text (bounding area is entire +image) and placement gravity.
+
blur
+
const double radius_ = 1, const double sigma_ += 0.5Blur image. The radius_ parameter +specifies the radius of the Gaussian, in pixels, not counting the +center +pixel.  The sigma_ parameter specifies the standard +deviation of the Laplacian, in pixels.
blurChannel
+
const ChannelType +channel_, const double radius_ = 0.0, const double sigma_ = 1.0
+
Blur an image +channel. The channel_ +parameter specifies the channel to blur. The radius_ parameter +specifies the radius of the Gaussian, in pixels, not counting the +center +pixel.  The sigma_ parameter specifies the standard +deviation of the Laplacian, in pixels.
+
border
+
const Geometry +&geometry_ = "6x6+0+0"Border image (add border to image).  The +color of the border is specified by the borderColor attribute.
+
cdl
+
const std::string &cdl_color correct with a color decision list. See http://en.wikipedia.org/wiki/ASC_CDL for details.
+
channel
+
ChannelType +layer_Extract channel from image. Use this option +to extract a particular channel from  the image.  MatteChannel +  for  example, is useful for extracting the opacity values +from an image.
+
charcoal
+
const double radius_ = 1, const double sigma_ += 0.5Charcoal effect image (looks like charcoal +sketch). The radius_ parameter specifies the radius of the +Gaussian, in pixels, not counting the center pixel.  The sigma_ +parameter specifies the standard deviation of the Laplacian, in pixels.
+
chop
+
const Geometry +&geometry_Chop image (remove vertical or horizontal +subregion of image)
+
colorize
+
const unsigned int opacityRed_, const +unsigned int opacityGreen_, const unsigned int opacityBlue_, const +Color &penColor_Colorize image with pen color, using +specified percent opacity for red, green, and blue quantums.
+
colorMatrix
+
const size_t order_, const double *color_matrix_apply color correction to the image.
+
comment
+
const std::string &comment_Comment image (add comment string to +image).  By default, each image is commented with its file name. +Use  this  method to  assign a specific comment to the +image.  Optionally you can include the image filename, type, +width, height, or other  image  attributes by embedding special format characters.
compare
+
const Image &reference_
+
Compare current image with +another image. Sets meanErrorPerPixel +, normalizedMaxError , and normalizedMeanError in the current +image. False is returned if the images are identical. An ErrorOption +exception is thrown if the reference image columns, rows, colorspace, +or +matte differ from the current image.
+
+
composite
+
const Image +&compositeImage_, ssize_t xOffset_, ssize_t yOffset_, CompositeOperator +compose_ = InCompositeOpCompose an image onto the current image at +offset specified by xOffset_, yOffset_ using the +composition algorithm specified by compose_
const Image +&compositeImage_, const Geometry +&offset_, CompositeOperator +compose_ = InCompositeOpCompose an image onto the current image at +offset specified by offset_ using the composition algorithm +specified by compose_
const Image +&compositeImage_, GravityType +gravity_, CompositeOperator +compose_ = InCompositeOpCompose an image onto the current image with +placement specified by gravity_ using the composition +algorithm +specified by compose_
+
contrast
+
size_t sharpen_Contrast image (enhance intensity differences +in image)
+
convolve
+
size_t order_, const double *kernel_Convolve image.  Applies a user-specfied +convolution to the image. The order_ parameter represents the +number of columns and rows in the filter kernel, and kernel_ +is a two-dimensional array of doubles representing the convolution +kernel to apply.
+
crop
+
const Geometry +&geometry_Crop image (subregion of original image)
+
cycleColormap
+
int amount_Cycle image colormap
+
despeckle
+
voidDespeckle image (reduce speckle noise)
+
display
+
voidDisplay image on screen.
+ Caution: if +an image format is is not compatible with the display visual (e.g. +JPEG on a colormapped display) then the original image will be +altered. Use a copy of the original if this is a problem.
+
distort
+
const DistortImageMethod method, const size_t number_arguments, const double *arguments, const bool bestfit = false Distort image.  Applies a user-specfied +distortion to the image.
+
draw
+
const Drawable +&drawable_Draw shape or text on image.
const std::list<Drawable +> &drawable_Draw shapes or text on image using a set of +Drawable objects contained in an STL list. Use of this method improves +drawing performance and allows batching draw objects together in a +list for repeated use.
+
edge
+
size_t radius_ = 0.0Edge image (hilight edges in image).  +The radius is the radius of the pixel neighborhood.. Specify a radius +of zero for automatic radius selection.
+
emboss
+
const double radius_ = 1, const double sigma_ += 0.5Emboss image (hilight edges with 3D effect). +The radius_ parameter specifies the radius of the Gaussian, in +pixels, not counting the center pixel.  The sigma_ +parameter specifies the standard deviation of the Laplacian, in pixels.
+
enhance
+
voidEnhance image (minimize noise)
+
equalize
+
voidEqualize image (histogram equalization)
+
erase
+
voidSet all image pixels to the current +background color.
+
extent
const Geometry &geometry_extends the image as defined by the geometry, gravity, and image background color.
const Geometry +&geometry_, const Color &backgroundColor_
const Geometry &geometry_, const GravityType +&gravity_extends the image as defined by the geometry, gravity, and image background color.
const Geometry +&geometry_, const Color &backgroundColor_, +const GravityType &gravity_
+
flip
+
voidFlip image (reflect each scanline in the +vertical direction)
+
floodFill- +
+ Color
+
ssize_t x_, ssize_t y_, const Color &fillColor_Flood-fill color across pixels +that match the color of the target pixel and are neighbors of the +target pixel. Uses current fuzz setting when determining color match.
const Geometry +&point_, const Color &fillColor_
ssize_t x_, ssize_t y_, const Color &fillColor_, const Color +&borderColor_Flood-fill color across pixels +starting at target-pixel and stopping at pixels matching specified +border color. Uses current fuzz setting when determining color match.
const Geometry +&point_, const Color &fillColor_, +const Color &borderColor_
floodFillOpacityconst long x_, const long y_, const unsigned int +opacity_, const PaintMethod method_Floodfill pixels matching color (within fuzz +factor) of target pixel(x,y) with replacement opacity value using +method.
+
floodFill- +
+ Texture
+
ssize_t x_, ssize_t y_,  const +Image &texture_Flood-fill texture across pixels +that match the color of the target pixel and are neighbors of the +target pixel. Uses current fuzz setting when determining color match.
const Geometry +&point_, const Image &texture_
ssize_t x_, ssize_t y_, const Image +&texture_, const Color &borderColor_Flood-fill texture across pixels +starting at target-pixel and stopping at pixels matching specified +border color. Uses current fuzz setting when determining color match.
const Geometry +&point_, const Image &texture_, const +Color +&borderColor_
+
flop
+
void Flop image (reflect each scanline in the +horizontal direction)
+
frame
+
const Geometry +&geometry_ = "25x25+6+6"Add decorative frame around image
size_t width_, size_t height_, +ssize_t x_, ssize_t y_, ssize_t innerBevel_ = 0, ssize_t outerBevel_ = 0
+
fx
+
const std::string expression, const Magick::ChannelType channelFx image.  Applies a mathematical +expression to the image.
+
gamma
+
double gamma_Gamma correct image (uniform red, green, and +blue correction).
double gammaRed_, double gammaGreen_, double +gammaBlue_Gamma correct red, green, and blue channels +of image.
+
gaussianBlur
+
const double width_, const double sigma_Gaussian blur image. The number of neighbor +pixels to be included in the convolution mask is specified by +'width_'.  For example, a width of one gives a (standard) 3x3 +convolution mask. The standard deviation of the gaussian bell curve is +specified by 'sigma_'.
gaussianBlurChannel
+
const ChannelType +channel_, const double radius_ = 0.0, const double sigma_ = 1.0
+
Gaussian blur +an image channel. The channel_ parameter specifies the +channel to blur. The number of neighbor +pixels to be included in the convolution mask is specified by +'width_'.  For example, a width of one gives a (standard) 3x3 +convolution mask. The standard deviation of the gaussian bell curve is +specified by 'sigma_'.
haldClut
+
const Image &reference_
+
apply a Hald color lookup table to the image.
+
+
implode
+
const double factor_Implode image (special effect)
+
inverseFourierTransform
+
const Image &phaseImage_, const bool magnitude_implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.
+
label
+
const string &label_Assign a label to an image. Use this option +to  assign  a  specific label to the image. Optionally +you can include the image filename, type, width, height, or scene +number in the label by embedding  +special format characters. If the first character of string is @, +the +image label is read from a file titled by the remaining characters in +the string. When converting to Postscript, use this  option to +specify a header string to print above the image.
level
+
const double black_point, +const double white_point, const double mid_point=1.0
+
Level image. Adjust the +levels of the image by scaling the colors falling between specified +white and black points to the full available quantum range. The +parameters provided represent the black, mid (gamma), and white +points.  The black point specifies the darkest color in the image. +Colors darker than the black point are set to zero. Mid point (gamma) +specifies a gamma correction to apply to the image. White point +specifies the lightest color in the image.  Colors brighter than +the white point are set to the maximum quantum value. The black and +white point have the valid range 0 to MaxRGB while mid (gamma) has a +useful range of 0 to ten.
+
levelChannel
+
const ChannelType +channel, const double black_point, const double white_point, const +double mid_point=1.0
+
Level image channel. +Adjust the levels of the image channel by scaling the values falling +between specified white and black points to the full available quantum +range. The parameters provided represent the black, mid (gamma), and +white points. The black point specifies the darkest color in the image. +Colors darker than the black point are set to zero. Mid point (gamma) +specifies a gamma correction to apply to the image. White point +specifies the lightest color in the image. Colors brighter than the +white point are set to the maximum quantum value. The black and white +point have the valid range 0 to MaxRGB while mid (gamma) has a useful +range of 0 to ten.
+
+
magnify
+
voidMagnify image by integral size
+
map
+
const Image &mapImage_ , bool dither_ = +falseRemap image colors with closest color from +reference image. Set dither_ to true in to apply +Floyd/Steinberg +error diffusion to the image. By default, color reduction chooses an +optimal  set  of colors that best represent the original +image. Alternatively, you can  choose  a  +particular  set  of colors  from  an image file +with this option.
+
matteFloodfill
+
const Color +&target_, const unsigned int  opacity_, const ssize_t x_, const +ssize_t +y_, PaintMethod method_Floodfill designated area with a replacement +opacity value.
medianFilterconst double radius_ = 0.0Filter image by replacing each pixel +component with the median color in a circular neighborhood
+
mergeLayers
+
LayerMethod +noiseType_handle multiple images forming a set of image layers or animation frames.
+
minify
+
voidReduce image by integral size
modifyImagevoidPrepare to update image. Ensures that there +is only one reference to the underlying image so that the underlying +image may be safely modified without effecting previous generations of +the image. Copies the underlying image to a new image if necessary.
+
modulate
+
double brightness_, double saturation_, +double hue_Modulate percent hue, saturation, and +brightness of an image. Modulation of saturation and brightness is as a +ratio of the current value (1.0 for no change). Modulation of hue is an +absolute rotation of -180 degrees to +180 degrees from the current +position corresponding to an argument range of 0 to 2.0 (1.0 for no +change).
motionBlur
+
const double radius_, +const double sigma_, const double angle_
+
Motion blur image with +specified blur factor. The radius_ parameter specifies the radius of +the Gaussian, in pixels, not counting the center pixel.  The +sigma_ parameter specifies the standard deviation of the Laplacian, in +pixels. The angle_ parameter specifies the angle the object appears to +be comming from (zero degrees is from the right).
+
+
negate
+
bool grayscale_ = falseNegate colors in image.  Replace every +pixel with its complementary color (white becomes black, yellow becomes +blue, etc.).  Set grayscale to only negate grayscale values in +image.
+
normalize
+
voidNormalize image (increase contrast by +normalizing the pixel values to span the full range of color values).
+
oilPaint
+
size_t radius_ = 3Oilpaint image (image looks like oil painting)
+
opacity
+
unsigned int opacity_Set or attenuate the opacity channel in the +image. If the image pixels are opaque then they are set to the +specified +opacity value, otherwise they are blended with the supplied opacity +value.  The value of opacity_ ranges from 0 (completely opaque) to + MaxRGB +. The defines OpaqueOpacity and TransparentOpacity are +available to specify completely opaque or completely transparent, +respectively.
+
opaque
+
const Color +&opaqueColor_, const Color &penColor_Change color of pixels matching opaqueColor_ +to specified penColor_.
+
ping
+
const std::string &imageSpec_Ping is similar to read +except only enough of the image is read to determine the image columns, +rows, and filesize.  The columns , + rows , and fileSize +attributes are valid after invoking ping.  The image data is not +valid after calling ping.
const Blob &blob_
process
+
std::string name_, +const ssize_t argc_, char **argv_
+
Execute the named +process module, passing any arguments via an argument vector, with +argc_ +specifying the number of arguments in the vector, and argv_ passing the +address of an array of null-terminated C strings which constitute the +argument vector. An exception is thrown if the requested process module +does not exist, fails to load, or fails during execution.
+
+
quantize
+
bool measureError_ = falseQuantize image (reduce number of colors). Set +measureError_ to true in order to calculate error attributes.
+
raise
+
const Geometry +&geometry_ = "6x6+0+0",  bool raisedFlag_ =  falseRaise image (lighten or darken the edges of +an image to give a 3-D raised or lowered effect)
+
read
+
const string &imageSpec_Read image into current object
const Geometry +&size_, const std::string &imageSpec_Read image of specified size into current +object. This form is useful for images that do not specifiy their size +or to specify a size hint for decoding an image. For example, when +reading a Photo CD, JBIG, or JPEG image, a size request causes the +library to return an image which is the next resolution greater or +equal to the specified size. This may result in memory and time savings.
const Blob &blob_Read encoded image of specified +size from an in-memory BLOB into current +object. Depending on the method arguments, the Blob size, depth, and +format may also be specified. Some image formats require that size be +specified. The default ImageMagick uses for depth depends on its +Quantum size (8 or 16).  If ImageMagick's Quantum size does not +match that of the image, the depth may need to be specified. +ImageMagick can usually automagically detect the image's format. +When +a format can't be automagically detected, the format must be specified.
const Blob +&blob_, const Geometry &size_
const Blob +&blob_, const Geometry &size_, +size_t depth_
const Blob +&blob_, const Geometry &size_, +size_t depth_, const string &magick_ 
const Blob +&blob_, const Geometry &size_, +const +string &magick_
const size_t width_, const size_t +height_, std::string map_, const StorageType type_, const void *pixels_Read image based on an array of image pixels. +The pixel data must be in scanline order top-to-bottom. The data can be +character, short int, integer, float, or double. Float and double +require the pixels to be normalized [0..1]. The other types are +[0..MaxRGB].  For example, to create a 640x480 image from +unsigned red-green-blue character data, use +

  image.read( 640, 480, "RGB", CharPixel, +pixels );

+

The parameters are as follows:

+ + + + + + + + + + + + + + + + + + + + + + + +
width_Width in pixels of the image.
height_Height in pixels of the image.
map_This character string can be any +combination or order of R = red, G = green, B = blue, A = alpha, C = +cyan, Y = yellow M = magenta, and K = black. The ordering reflects the +order of the pixels in the supplied pixel array.
type_Pixel storage type (CharPixel, +ShortPixel, IntegerPixel, FloatPixel, or DoublePixel)
pixels_This array of values contain the pixel +components as defined by the map_ and type_ parameters. The length of +the arrays must equal the area specified by the width_ and height_ +values and type_ parameters.
+
+
reduceNoise
+
const double order_reduce noise in image using a noise peak elimination filter.
randomThreshold
+
const Geometry +&thresholds_
+
Random threshold the +image. Changes the value of individual pixels based on the intensity of +each pixel compared to a random threshold. The result is a +low-contrast, two color image. The thresholds_ argument is a +geometry containing LOWxHIGH thresholds. If the string contains +2x2, 3x3, or 4x4, then an ordered dither of order 2, 3, or 4 will be +performed instead. This is a very fast alternative to 'quantize' based +dithering.
+
randomThresholdChannel
+
const Geometry +&thresholds_, const ChannelType channel_
+
Random threshold an +image channel. Similar to randomThreshold() +but restricted to the specified channel.
+
+
roll
+
int columns_, ssize_t rows_Roll image (rolls image vertically and +horizontally) by specified number of columnms and rows)
+
rotate
+
double degrees_Rotate image counter-clockwise by specified +number of degrees.
+
sample
+
const Geometry +&geometry_ Resize image by using pixel sampling algorithm
+
scale
+
const Geometry +&geometry_Resize image by using simple ratio algorithm
+
segment
+
double clusterThreshold_ = 1.0,
+ double smoothingThreshold_ = 1.5
Segment (coalesce similar image components) +by analyzing the histograms of the color components and identifying +units that are homogeneous with the fuzzy c-means technique. Also uses quantizeColorSpace +and verbose image attributes. Specify clusterThreshold_ +, +as the number  of  pixels  each cluster  must +exceed +the cluster threshold to be considered valid. SmoothingThreshold_ +eliminates noise in the  second derivative of the histogram. As +the +value is  increased, you can  expect  a  smoother +second derivative.  The default is 1.5.
+
shade
+
double azimuth_ = 30, double elevation_ = 30, +
+ bool colorShading_ = false
Shade image using distant light source. +Specify azimuth_ and elevation_ as the  +position  of  the light source. By default, the shading +results as a grayscale image.. Set colorShading_ to true +to +shade the red, green, and blue components of the image.
+
shadow
+
const double percent_opacity = 80, const double sigma_ += 0.5, const ssize_t x_ = 0, const ssize_t y_ = 0simulate an image shadow
+
sharpen
+
const double radius_ = 1, const double sigma_ += 0.5Sharpen pixels in image.  The radius_ +parameter specifies the radius of the Gaussian, in pixels, not counting +the center pixel.  The sigma_ parameter specifies the +standard deviation of the Laplacian, in pixels.
sharpenChannel
+
const ChannelType +channel_, const double radius_ = 0.0, const double sigma_ = 1.0
+
Sharpen pixel +quantums in an image channel  The channel_ parameter specifies the +channel to sharpen..  The radius_ +parameter specifies the radius of the Gaussian, in pixels, not counting +the center pixel.  The sigma_ parameter specifies the +standard deviation of the Laplacian, in pixels.
+
shave
+
const Geometry &geometry_Shave pixels from image edges.
+
shear
+
double xShearAngle_, double yShearAngle_Shear image (create parallelogram by sliding +image by X or Y axis).  Shearing slides one edge of an image along +the X  or  Y axis,  creating  a +parallelogram.  An X direction shear slides an edge along the X +axis, while  a  Y  direction shear  slides  +an edge along the Y axis.  The amount of the shear is controlled +by a shear angle.  For X direction  shears,  x  +degrees is measured relative to the Y axis, and similarly, for Y +direction shears  y  degrees is measured relative to the X +axis. Empty triangles left over from shearing the  image  are +filled  with  the  color  defined as borderColor
+
solarize
+
double factor_ = 50.0Solarize image (similar to effect seen when +exposing a photographic film to light during the development process)
+
splice
+
const Geometry +&geometry_splice the background color into the image
+
spread
+
size_t amount_ = 3Spread pixels randomly within image by +specified amount
+
stegano
+
const Image &watermark_Add a digital watermark to the image (based +on second image)
+
sparseColor
+
const ChannelType channel, const SparseColorMethod method, const size_t number_arguments, const double *arguments Sparse color image, given a set of coordinates, interpolates the colors found at those coordinates, across the whole image, using various methods.
+
statistics
+
ImageStatistics *statisticsObtain image statistics. Statistics are normalized to the range of 0.0 to 1.0 and are output to the specified ImageStatistics structure. The structure includes members maximum, minimum, mean, standard_deviation, and variance for each of these channels: red, green, blue, and opacity (e.g. statistics->red.maximum).
+
stereo
+
const Image &rightImage_Create an image which appears in stereo when +viewed with red-blue glasses (Red image on left, blue on right)
+
swirl
+
double degrees_Swirl image (image pixels are rotated by +degrees)
+
texture
+
const Image &texture_Layer a texture on pixels matching image +background color.
+
threshold
+
double threshold_Threshold image
+
transform
+
const Geometry +&imageGeometry_Transform image based on image +and crop geometries. Crop geometry is optional.
const Geometry +&imageGeometry_, const Geometry +&cropGeometry_ 
+
transparent
+
const Color +&color_Add matte image to image, setting pixels +matching color to transparent.
+
trim
+
voidTrim edges that are the background color from +the image.
+
unsharpmask
+
double radius_, double sigma_, double +amount_, double threshold_Sharpen the image using the unsharp mask +algorithm. The radius_ +parameter specifies the radius of the Gaussian, in pixels, not +counting the center pixel. The sigma_ parameter specifies the +standard deviation of the Gaussian, in pixels. The amount_ +parameter specifies the percentage of the difference between the +original and the blur image that is added back into the original. The threshold_ +parameter specifies the threshold in pixels needed to apply the +diffence amount.
unsharpmaskChannel
+
const ChannelType +channel_, const double radius_, const double sigma_, const double +amount_, const double threshold_
+
Sharpen an image +channel using the unsharp mask algorithm. The channel_ parameter specifies the +channel to sharpen. The radius_ +parameter specifies the radius of the Gaussian, in pixels, not +counting the center pixel. The sigma_ parameter specifies the +standard deviation of the Gaussian, in pixels. The amount_ +parameter specifies the percentage of the difference between the +original and the blur image that is added back into the original. The threshold_ +parameter specifies the threshold in pixels needed to apply the +diffence amount.
+
wave
+
double amplitude_ = 25.0, double wavelength_ += 150.0Alter an image along a sine wave.
+
write
+
const string &imageSpec_Write image to a file using filename imageSpec_ +.
+ Caution: if +an image format is selected which is capable of supporting fewer +colors than the original image or quantization has been requested, the +original image will be quantized to fewer colors. Use a copy of the +original if this is a problem.
Blob *blob_Write image to a in-memory BLOB stored in blob_. The magick_ +parameter specifies the image format to write (defaults to magick ). The depth_ parameter species the image +depth (defaults to depth ).
+ Caution: if +an image format is selected which is capable of supporting fewer +colors than the original image or quantization has been requested, the +original image will be quantized to fewer colors. Use a copy of the +original if this is a problem.
Blob *blob_, +std::string &magick_
Blob *blob_, +std::string &magick_, size_t depth_
const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_, const std::string &map_, +const StorageType type_, void *pixels_Write pixel data into a buffer you supply. +The data is saved either as char, short int, integer, float or double +format in the order specified by the type_ parameter. For example, we +want to extract scanline 1 of a 640x480 image as character data in +red-green-blue order: +

  image.write(0,0,640,1,"RGB",0,pixels); +

+

The parameters are as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
x_Horizontal ordinate of left-most +coordinate of region to extract.
y_Vertical ordinate of top-most +coordinate of region to extract.
columns_Width in pixels of the region to +extract.
rows_Height in pixels of the region to +extract.
map_This character string can be any +combination or order of R = red, G = green, B = blue, A = alpha, C = +cyan, Y = yellow, M = magenta, and K = black. The ordering reflects +the order of the pixels in the supplied pixel array.
type_Pixel storage type (CharPixel, +ShortPixel, IntegerPixel, FloatPixel, or DoublePixel)
pixels_This array of values contain the pixel +components as defined by the map_ and type_ parameters. The length of +the arrays must equal the area specified by the width_ and height_ +values and type_ parameters.
+
+
resize
+
const Geometry +&geometry_Resize image to specified size.
+
+

Image Attributes

+
+Image attributes are set and obtained via methods in Image. Except for +methods which accept pointer arguments (e.g. chromaBluePrimary) +all methods return attributes by value. +

Image attributes are easily used. For example, to set the resolution +of the TIFF file "file.tiff" to 150 dots-per-inch (DPI) in both the +horizontal and vertical directions, you can use the following example +code:

+
+string filename("file.tiff"); 
+Image image; 
+image.read(filename); 
+image.resolutionUnits(PixelsPerInchResolution); 
+image.density(Geometry(150,150));   // could also use image.density("150x150") 
+image.write(filename)
+
+The supported image attributes and the method arguments required to +obtain them are shown in the following table:
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Image Attributes
+
Function
+
+
Type
+
+
Get Signature
+
+
Set Signature
+
+
Description
+
+
adjoin
+
boolvoidbool flag_Join images into a single multi-image file.
+
antiAlias
+
boolvoidbool flag_Control antialiasing of rendered Postscript +and Postscript or TrueType fonts. Enabled by default.
+
animation- +
+ Delay
+
size_t (0 to 65535)voidsize_t delay_Time in 1/100ths of a second (0 to 65535) +which must expire before displaying the next image in an animated +sequence. This option is useful for regulating the animation of a +sequence  of GIF images within Netscape.
+
animation- +
+ Iterations
+
size_tvoidsize_t iterations_Number of iterations to loop an animation +(e.g. Netscape loop extension) for.
attribute
+
string
+
const +std::string name_
+
const +std::string name_, const std::string value_An arbitrary named +image attribute. Any number of named attributes may be attached to the +image. For example, the image comment is a named image attribute with +the name "comment". EXIF tags are attached to the image as named +attributes. Use the syntax "EXIF:<tag>" to request an EXIF tag +similar to "EXIF:DateTime".
+
+
background- +
+ Color
+
Color voidconst Color +&color_Image background color
+
background- +
+ Texture
+
stringvoidconst string &texture_Image file name to use as the background +texture. Does not modify image pixels.
+
baseColumns
+
size_tvoid Base image width (before transformations)
+
baseFilename
+
stringvoid Base image filename (before transformations)
+
baseRows
+
size_tvoid Base image height (before transformations)
+
borderColor
+
Color void const Color +&color_Image border color
boundingBoxGeometryvoid Return smallest bounding box enclosing +non-border pixels. The current fuzz value is used when discriminating +between pixels. This is the crop bounding box used by +crop(Geometry(0,0)).
+
boxColor
+
Color voidconst Color +&boxColor_Base color that annotation text is rendered +on.
cacheThresholdsize_t const size_tPixel cache threshold in bytes. Once this +threshold is exceeded, all subsequent pixels cache operations are +to/from disk. This is a static method and the attribute it sets is +shared by all Image objects.
channelDepth
+
size_t +
+
const +ChannelType channel_
+
const ChannelType +channel_, const size_t depth_
+
Channel modulus depth. +The channel modulus depth represents the minimum number of bits +required +to support the channel without loss. Setting the channel's modulus +depth +modifies the channel (i.e. discards resolution) if the requested +modulus +depth is less than the current modulus depth, otherwise the channel is +not altered. There is no attribute associated with the modulus depth so +the current modulus depth is obtained by inspecting the pixels. As a +result, the depth returned may be less than the most recently set +channel depth. Subsequent image processing may result in increasing the +channel depth.
+
+
chroma- +
+ BluePrimary
+
double x & ydouble *x_, double *y_double x_, double y_Chromaticity blue primary point (e.g. x=0.15, +y=0.06)
+
chroma- +
+ GreenPrimary
+
double x & ydouble *x_, double *y_double x_, double y_Chromaticity green primary point (e.g. x=0.3, +y=0.6)
+
chroma- +
+ RedPrimary
+
double x & ydouble *x_, double *y_double x_, double y_Chromaticity red primary point (e.g. x=0.64, +y=0.33)
+
chroma- +
+ WhitePoint
+
double x & ydouble*x_, double *y_double x_, double y_Chromaticity white point (e.g. x=0.3127, +y=0.329)
+
classType
+
ClassType + void ClassType +class_Image storage class.  Note that +conversion from a DirectClass image to a PseudoClass image may result +in a loss of color due to the limited size of the palette (256 or +65535 colors).
+
clipMask
+
Imagevoidconst Image &clipMask_Associate a clip mask image with the current +image. The clip mask image must have the same dimensions as the current +image or an exception is thrown. Clipping occurs wherever pixels are +transparent in the clip mask image. Clipping Pass an invalid image to +unset an existing clip mask.
+
colorFuzz
+
doublevoiddouble fuzz_Colors within this distance are considered +equal. A number of algorithms search for a target  color. By +default the color must be exact. Use this option to match colors that +are close to the target color in RGB space.
+
colorMap
+
Color size_t index_size_t index_, const Color &color_Color at colormap index.
+
colorMapSize
+
+
size_t
+
void
+
size_t entries_
+
Number of entries in the +colormap. Setting the colormap size may extend or truncate the +colormap. +The maximum number of supported entries is specified by the MaxColormapSizeconstant, +and is dependent on the value of QuantumDepth when ImageMagick is +compiled. An exception is thrown if more entries are requested than may +be supported. Care should be taken when truncating the colormap to +ensure that the image colormap indexes reference valid colormap entries.
+
+
colorSpace
+
ColorspaceType +colorSpace_voidColorspaceType +colorSpace_The colorspace (e.g. CMYK) used to represent +the image pixel colors. Image pixels are always stored as RGB(A) except +for the case of CMY(K).
+
columns
+
size_tvoid Image width
+
comment
+
stringvoid Image comment
+
compose
+
CompositeOperator + voidCompositeOperator +compose_Composition operator to be used when +composition is implicitly used (such as for image flattening).
+
compress- +
+ Type
+
CompressionType + voidCompressionType +compressType_Image compresion type. The default is the +compression type of the specified image file.
+
debug
+
boolvoidbool flag_Enable printing of internal debug messages +from ImageMagick as it executes.
defineValue
+
string
+
const std::string +&magick_, const std::string &key_
+
const std::string +&magick_, const std::string &key_,  const std::string +&value_
+
Set or obtain a +definition string to applied when encoding or decoding the specified +format. The meanings of the definitions are format specific. The format +is designated by the magick_ +argument, the format-specific key is designated by key_, and the associated value is +specified by value_. See the +defineSet() method if the key must be removed entirely.
+
defineSet
+
bool
+
const std::string +&magick_, const std::string &key_
+
const std::string +&magick_, const std::string &key_, bool flag_
+
Set or obtain a +definition flag to applied when encoding or decoding the specified +format.. Similar to the defineValue() method except that +passing the flag_ value +'true' +creates a value-less define with that format and key. Passing the flag_ +value 'false' removes any existing matching definition. The method +returns 'true' if a matching key exists, and 'false' if no matching key +exists.
+
+
density
+
Geometry   +(default 72x72)voidconst Geometry +&density_Vertical and horizontal resolution in pixels +of the image. This option specifies an image density when decoding a +Postscript or Portable Document page. Often used with psPageSize.
+
depth
+
 size_t (8-32)voidsize_t depth_Image depth. Used to specify the bit depth +when reading or writing  raw images or when the output format +supports multiple depths. Defaults to the quantum depth that +ImageMagick is compiled with.
+
endian
+
EndianType + voidEndianType +endian_Specify (or obtain) endian option for formats +which support it.
+
directory
+
stringvoid Tile names from within an image montage
+
file
+
FILE *FILE *FILE *file_Image file descriptor.
+
fileName
+
stringvoidconst string &fileName_Image file name.
+
fileSize
+
off_tvoid Number of bytes of the image on disk
+
fillColor
+
Colorvoidconst Color &fillColor_Color to use when filling drawn objects
+
fillPattern
+
Imagevoidconst Image &fillPattern_Pattern image to use when filling drawn +objects.
+
fillRule
+
FillRule + voidconst Magick::FillRule &fillRule_Rule to use when filling drawn objects.
+
filterType
+
FilterTypes + voidFilterTypes +filterType_Filter to use when resizing image. The +reduction filter employed has a sigificant effect on the time required +to resize an image and the resulting quality. The default filter is Lanczos +which has been shown to produce high quality results when reducing most +images.
+
font
+
stringvoidconst string &font_Text rendering font. If the font is a fully +qualified X server font name, the font is obtained from an X  +server. To use a TrueType font, precede the TrueType filename with an +@. Otherwise, specify  a  Postscript font name (e.g. +"helvetica").
+
fontPointsize
+
size_tvoidsize_t pointSize_Text rendering font point size
+
fontTypeMetrics
+
TypeMetric const std::string &text_, TypeMetric *metrics Update metrics with font type metrics using +specified text, and current font and fontPointSize settings.
+
format
+
stringvoid Long form image format description.
+
gamma
+
double (typical range 0.8 to 2.3)void Gamma level of the image. The same color +image displayed on two different  workstations  may  +look  different due to differences in the display monitor.  +Use gamma correction  to  adjust  for this  +color  difference.
+
geometry
+
Geometry void Preferred size of the image when encoding.
+
gifDispose- +
+ Method
+
size_t
+ { 0 = Disposal not specified,
+ 1 = Do not dispose of graphic,
+ 3 = Overwrite graphic with background color, +
+ 4 = Overwrite graphic with previous graphic. }
voidsize_t disposeMethod_GIF disposal method. This option is used to +control how successive frames are rendered (how the preceding frame is +disposed of) when creating a GIF animation.
+
iccColorProfile
+
Blob voidconst Blob +&colorProfile_ICC color profile. Supplied via a Blob since Magick++/ and ImageMagick do not +currently support formating this data structure directly.  +Specifications are available from the +International Color Consortium for the format of ICC color profiles.
+
interlace- +
+ Type
+
InterlaceType + voidInterlaceType +interlace_The type of interlacing scheme (default NoInterlace +). This option is used to specify the type of  interlacing +scheme  for  raw  image formats such as RGB or YUV. NoInterlace +means do not  interlace, LineInterlace uses scanline +interlacing, and PlaneInterlace uses plane interlacing. +PartitionInterlace is like PlaneInterlace except the  +different planes  are saved  to individual files (e.g.  +image.R, image.G, and image.B). Use LineInterlace or +PlaneInterlace to create an interlaced GIF or progressive JPEG +image.
+
iptcProfile
+
Blob voidconst Blob & +iptcProfile_IPTC profile. Supplied via a Blob since Magick++ and ImageMagick do not +currently  support formating this data structure directly. +Specifications are available from the +International Press Telecommunications Council for IPTC profiles.
+
label
+
stringvoidconst string &label_Image label
+
magick
+
stringvoid const string &magick_Get image format (e.g. "GIF")
+
matte
+
boolvoidbool matteFlag_True if the image has transparency. If set +True, store matte channel if  the image has one otherwise create +an opaque one.
+
matteColor
+
Color voidconst Color +&matteColor_Image matte (frame) color
+
meanError- +
+ PerPixel
+
doublevoid The mean error per pixel computed when an +image is color reduced. This parameter is only valid if verbose is set +to true and the image has just been quantized.
modulusDepth
+
size_t +
+
void
+
size_t +depth_
+
Image +modulus depth (minimum number of bits required to support +red/green/blue components without loss of accuracy). The pixel modulus +depth may be decreased by supplying a value which is less than the +current value, updating the pixels (reducing accuracy) to the new +depth. +The pixel modulus depth can not be increased over the current value +using this method.
+
+
monochrome
+
boolvoidbool flag_Transform the image to black and white
+
montage- +
+ Geometry
+
Geometry void Tile size and offset within an image montage. +Only valid for montage images.
+
normalized- +
+ MaxError
+
doublevoid The normalized max error per pixel computed +when an image is color reduced. This parameter is only valid if verbose +is set to true and the image has just been quantized.
+
normalized- +
+ MeanError
+
doublevoid The normalized mean error per pixel computed +when an image is color reduced. This parameter is only valid if verbose +is set to true and the image has just been quantized.
orientation
+
OrientationTypevoid
+
OrientationType +orientation_Image orientation. + Supported by some file formats such as DPX and TIFF. Useful for +turning the right way up.
+
+
packets
+
size_tvoid The number of runlength-encoded packets in +
+ the image
+
packetSize
+
size_tvoid The number of bytes in each pixel packet
+
page
+
Geometry + voidconst Geometry &pageSize_Preferred size and location of an image +canvas. +

Use this option to specify the dimensions +and position of the Postscript page in dots per inch or a TEXT page in +pixels. This option is typically used in concert with density .

+

Page may also be used to position a GIF +image (such as for a scene in an animation)

+
+
pixelColor
+
Color ssize_t x_, ssize_t y_ssize_t x_, ssize_t y_, const Color &color_Get/set pixel color at location x & y.
+
profile
+
+
Blob
+
const std::string name_
+
const std::string name_, const Blob +&colorProfile_
+
Get/set/remove a named +profile. Valid names include "*", +"8BIM", "ICM", "IPTC", or a user/format-defined profile name.
+
+
quality
+
size_t (0 to 100)voidsize_t quality_JPEG/MIFF/PNG compression level (default 75).
+
quantize- +
+ Colors
+
size_tvoidsize_t colors_Preferred number of colors in the image. The +actual number of colors in the image may be less than your request, but +never more. Images with less unique colors than specified with this +option will have any duplicate or unused colors removed.
+
quantize- +
+ ColorSpace
+
ColorspaceType + voidColorspaceType +colorSpace_Colorspace to quantize colors in (default +RGB). Empirical evidence suggests that 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.
+
quantize- +
+ Dither
+
boolvoidbool flag_Apply Floyd/Steinberg error diffusion to the +image. The basic strategy of dithering is to  trade  +intensity +resolution  for  spatial  resolution  by  +averaging the intensities  of  several  +neighboring  pixels. Images which  suffer  from  +severe  contouring  when  reducing colors can be +improved with this option. The quantizeColors or monochrome option must +be set for this option to take effect.
+
quantize- +
+ TreeDepth
+
size_t voidsize_t treeDepth_Depth of the quantization color +classification tree. Values of 0 or 1 allow selection of the optimal +tree depth for the color reduction algorithm. Values between 2 and 8 +may be used to manually adjust the tree depth.
+
rendering- +
+ Intent
+
RenderingIntent + voidRenderingIntent +render_The type of rendering intent
+
resolution- +
+ Units
+
ResolutionType + voidResolutionType +units_Units of image resolution
+
rows
+
size_tvoid The number of pixel rows in the image
+
scene
+
size_tvoidsize_t scene_Image scene number
+
signature
+
stringbool force_ = false Image MD5 signature. Set force_ to 'true' to +force re-computation of signature.
+
size
+
Geometry voidconst Geometry +&geometry_Width and height of a raw image (an image +which does not support width and height information).  Size may +also be used to affect the image size read from a multi-resolution +format (e.g. Photo CD, JBIG, or JPEG.
+
strip
+
voidstrips an image of all profiles and comments.
+
strokeAntiAlias
+
boolvoidbool flag_Enable or disable anti-aliasing when drawing +object outlines.
+
strokeColor
+
Colorvoidconst Color &strokeColor_Color to use when drawing object outlines
+
strokeDashOffset
+
size_tvoiddouble strokeDashOffset_While drawing using a dash pattern, specify +distance into the dash pattern to start the dash (default 0).
+
strokeDashArray
+
const double*voidconst double* strokeDashArray_Specify the pattern of dashes and gaps used +to stroke paths. The strokeDashArray represents a zero-terminated +array of numbers that specify the lengths (in pixels) of alternating +dashes and gaps in user units. If an odd number of values is provided, +then the list of values is repeated to yield an even number of +values.  A typical strokeDashArray_ array might contain the +members 5 3 2 0, where the zero value indicates the end of the pattern +array.
+
strokeLineCap
+
LineCapvoidLineCap lineCap_Specify the shape to be used at the corners +of paths (or other vector shapes) when they are stroked. Values of +LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.
+
strokeLineJoin
+
LineJoinvoidLineJoin lineJoin_Specify the shape to be used at the corners +of paths (or other vector shapes) when they are stroked. Values of +LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.
+
strokeMiterLimit
+
size_tvoidsize_t miterLimit_Specify miter limit. When two line segments +meet at a sharp angle and miter joins have been specified for +'lineJoin', it is possible for the miter to extend far beyond the +thickness of the line stroking the path. The miterLimit' imposes a +limit on the ratio of the miter length to the 'lineWidth'. The default +value of this parameter is 4.
+
strokeWidth
+
doublevoiddouble strokeWidth_Stroke width for use when drawing vector +objects (default one)
+
strokePattern
+
Imagevoidconst Image &strokePattern_Pattern image to use while drawing object +stroke (outlines).
+
subImage
+
size_tvoidsize_t subImage_Subimage of an image sequence
+
subRange
+
size_tvoidsize_t subRange_Number of images relative to the base image
+
textEncoding
+
+
string
+
void
+
const std::string &encoding_
+
Specify the code set to use for text +annotations. The only character encoding which may be specified at +this time is "UTF-8" for representing Unicode as a +sequence of bytes. Specify an empty string to use the default ASCII +encoding. Successful text annotation using Unicode may require fonts +designed to support Unicode.
+
+
tileName
+
stringvoidconst string &tileName_Tile name
+
totalColors
+
size_tvoid Number of colors in the image
+
type
+
ImageType + void ImageType Image type.
+
verbose
+
boolvoidbool verboseFlag_Print detailed information about the image
+
view
+
stringvoidconst string &view_FlashPix viewing parameters.
+
virtualPixelMethod
+
VirtualPixelMethod + voidVirtualPixelMethod +virtualPixelMethod_Image virtual pixel method.
+
x11Display
+
string (e.g. "hostname:0.0")voidconst string &display_X11 display to display to, obtain fonts from, +or to capture image from
+
xResolution
+
doublevoid x resolution of the image
+
yResolution
+
doublevoid y resolution of the image
+
+

Low-Level Image Pixel Access

+
+Image pixels (of type PixelPacket ) +may be accessed directly via the Image Pixel Cache .  The +image pixel cache is a rectangular window into the actual image pixels +(which may be in memory, memory-mapped from a disk file, or entirely on +disk). Two interfaces exist to access the Image Pixel Cache. +The +interface described here (part of the Image class) supports +only +one view at a time. See the Pixels +class for a more abstract interface which supports simultaneous pixel +views (up to the number of rows). As an analogy, the interface +described +here relates to the Pixels class as +stdio's gets() relates to fgets(). The Pixels +class provides the more general form of the interface. +

Obtain existing image pixels via getPixels(). Create a new +pixel region using setPixels().

+

In order to ensure that only the current generation of the image is +modified, the Image's modifyImage() method +should be invoked to reduce the reference count on the underlying image +to one. If this is not done, then it is possible for a previous +generation of the image to be modified due to the use of reference +counting when copying or constructing an Image.
+

+

Depending on the capabilities of the operating system, and the +relationship of the window to the image, the pixel cache may be a copy +of the pixels in the selected window, or it may be the actual image +pixels. In any case calling syncPixels() insures that the base +image is updated with the contents of the modified pixel cache. The +method readPixels() supports copying foreign pixel data +formats +into the pixel cache according to the QuantumTypes. The method writePixels() +supports copying the pixels in the cache to a foreign pixel +representation according to the format specified by QuantumTypes.

+

The pixel region is effectively a small image in which the pixels +may be accessed, addressed, and updated, as shown in the following +example:

+
+cache
+Image image("cow.png"); 
+// Ensure that there are no other references to this image.
+image.modifyImage();
+// Set the image type to TrueColor DirectClass representation.
+image.type(TrueColorType);
+// Request pixel region with size 60x40, and top origin at 20x30 
+ssize_t columns = 60; 
+PixelPacket *pixel_cache = image.getPixels(20,30,columns,40); 
+// Set pixel at column 5, and row 10 in the pixel cache to red. 
+ssize_t column = 5; 
+ssize_t row = 10; 
+PixelPacket *pixel = pixel_cache+row*columns+column; 
+*pixel = Color("red"); 
+// Save changes to underlying image .
+image.syncPixels();
+  // Save updated image to file.
+image.write("horse.png");
+
+

The image cache supports the following methods:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Image Cache Methods
+
Method
+
+
Returns
+
+
Signature
+
+
Description
+
+
getConstPixels
+
const PixelPacket +*const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_Transfers pixels from the image to the pixel +cache as defined by the specified rectangular region. The returned pointer remains valid until the next getPixel, +getConstPixels, or setPixels call and should never be deallocated by +the +user.
+
getConstIndexes
+
const IndexPacket*voidReturns a pointer to the Image pixel indexes +corresponding to a previous getPixel, +getConstPixels, or setPixels call.  The +returned pointer remains valid until the next getPixel, getConstPixels, +or setPixels call and should never be deallocated by the user. Only valid for PseudoClass images or CMYKA images. The +pixel indexes represent an array of type IndexPacket, with each entry +corresponding to an x,y pixel position. For PseudoClass images, the +entry's value is the offset into the colormap (see colorMap +) for that pixel. For CMYKA images, the indexes are used to contain the +alpha channel.
+
getIndexes
+
IndexPacket*voidReturns a pointer to the Image pixel indexes +corresponding to the pixel region requested by the last getConstPixels , getPixels +, or setPixels call. The +returned pointer remains valid until the next getPixel, getConstPixels, +or setPixels call and should never be deallocated by the user. Only valid for PseudoClass images +or +CMYKA images. The pixel indexes represent an array of type +IndexPacket, with each entry corresponding to a pixel x,y position. For +PseudoClass images, the entry's value is the offset into the colormap +(see colorMap ) for that pixel. For +CMYKA +images, the indexes are used to contain the alpha channel.
+
getPixels
+
PixelPacket *const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_Transfers pixels from the image to the pixel +cache as defined by the specified rectangular region. Modified pixels +may be subsequently transferred back to the image via syncPixels. The returned pointer remains valid until the next getPixel, +getConstPixels, or setPixels call and should never be deallocated by +the +user.
+
setPixels
+
PixelPacket *const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_Allocates a pixel cache region to store image +pixels as defined by the region rectangle.  This area is +subsequently transferred from the pixel cache to the image via +syncPixels. The returned pointer remains +valid until the next getPixel, getConstPixels, or setPixels call and +should never be deallocated by the user.
+
syncPixels
+
voidvoidTransfers the image cache pixels to the image.
+
readPixels
+
voidQuantumTypes +quantum_, unsigned char *source_,Transfers one or more pixel components from a +buffer or file into the image pixel cache of an image. ReadPixels is +typically used to support image decoders. The region transferred +corresponds to the region set by a preceding setPixels call.
+
writePixels
+
voidQuantumTypes +quantum_, unsigned char *destination_Transfers one or more pixel components from +the image pixel cache to a buffer or file. WritePixels is typically +used to support image encoders. The region transferred corresponds to +the region set by a preceding getPixels or getConstPixels call.
+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Image.png b/share/doc/ImageMagick-7/www/Magick++/Image.png new file mode 100644 index 0000000..35a85ee Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/Image.png differ diff --git a/share/doc/ImageMagick-7/www/Magick++/ImageDesign.html b/share/doc/ImageMagick-7/www/Magick++/ImageDesign.html new file mode 100644 index 0000000..8473c92 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/ImageDesign.html @@ -0,0 +1,17 @@ + + + + + +Magick++ API: Design Principles + + + +
+
+

Magick::Image Data Structures

+The class Magick::Image is a simple handle which points to a reference-counted image representation. This allows multiple Magick::Image instances to share the same image and attributes. At the point in time that the image data, or image attributes are modified and the current reference count is greater than one, the image data and attributes are copied to create a new image with a reference count of one and the reference count on the old image is decremented. If the reference count on the old image becomes zero, then the associated reference and data are deleted. This strategy represents a simple (but effective) form of garbage collection +

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/ImageMagick.png b/share/doc/ImageMagick-7/www/Magick++/ImageMagick.png new file mode 100644 index 0000000..dc53f7a Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/ImageMagick.png differ diff --git a/share/doc/ImageMagick-7/www/Magick++/Install.html b/share/doc/ImageMagick-7/www/Magick++/Install.html new file mode 100644 index 0000000..cbb023c --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Install.html @@ -0,0 +1,268 @@ + + + + + +Magick++ API: Install Magick++ + + + +
+

Installing Magick++

+

General

+

In order to compile Magick++ you must have access to a standard C++ implementation. The author uses gcc 3.4 (GNU C++) which is available under UNIX and under the Cygwin UNIX-emulation environment for Windows. Standards compliant commercial C++ compilers should also work fine. Most modern C++ compilers for Microsoft Windows or the Mac should work (project files are provided for Microsoft Visual C++ 8.0).

+

It was decided that Magick++ will be around for the long-haul, so its API definition depends on valuable C++ features which should be common in all current and future C++ compilers. The compiler must support the following C++ standard features:

+
    +
  • +

    templates

  • +
  • +

    static constructors

  • +
  • +

    C++-style casts (e.g. static_cast)

  • +
  • +

    bool type

  • +
  • +

    string class (<string>)

  • +
  • +

    exceptions (<exception>)

  • +
  • +

    namespaces

  • +
  • +

    Standard Template Library (STL) (e.g. <list>, <vector>)

+

The author has personally verified that Magick++ compiles and runs using the following compiler/platform combinations:

+
+

Tested Configurations

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Operating System

+

Architecture

+

Compiler

+

SunOS 5.6, 5.7, 5.8 ("Solaris 2.6, 7, & 8)

+

SPARC

+

GCC 3.0.4

+

SunOS 5.7 ("Solaris 7")

+

SPARC

+

Sun Workshop 5.0 C++

+

SunOS 5.8 ("Solaris 8")

+

SPARC

+

Sun WorkShop 6 update 2 C++ 5.3

+

FreeBSD 4.0

+

Intel Pentium II

+

GCC 2.95

+

Windows NT 4.0 SP6a

+

Intel Pentium II

+

Visual C++ 8.0 Standard Edition

+

Windows XP

+

Intel Pentium IV

+

Visual C++ 8.0 Standard Edition Service Pack 5

+

Windows '98 + Cygwin 1.3.10

+

Intel Pentium III

+

GCC 2.95.3-5

+

Windows NT 4.0 SP6a

+

Intel Pentium II

+

GCC 2.95.3-5

+

Windows XP + Cygwin 1.3.10

+

Intel Pentium IV

+

GCC 2.95.3-5

+

Users of Magick++ have reported that the following configurations work with Magick++:

+
+

Other Known Working Configurations

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Operating System

+

Architecture

+

Compiler

+

Reported By

+

Red Hat Linux 8.0

+

i386 & alpha

+

EGCS 1.1.2

+

Dr. Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de>

+

Red Hat Linux 7.0

+

i386

+

GCC 2.95.2

+

Dr. Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de>

+

Red Hat Linux 7.0

+

i386

+

GCC "2.96" snapshot

+

???

+

Red Hat Linux 7.X

+

i386 & alpha

+

GCC 3.0

+

Dr. Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de>

+

SGI IRIX 6.2, 6.5

+

MIPS

+

IRIX C++ 7.3.1.2m

+

Albert Chin-A-Young <china@thewrittenword.com>

+

SunOS 5.5.1

+

SPARC

+

Sun WorkShop CC 5.0

+

Albert Chin-A-Young <china@thewrittenword.com>

+

SunOS 5.6, 5.7, 5.8

+

SPARC

+

Sun Forte CC 5.3

+

Albert Chin-A-Young <china@thewrittenword.com>

+

HP-UX 11.00

+

PA-RISC

+

HP-UX aCC A.03.30

+

Albert Chin-A-Young <china@thewrittenword.com>

+

Mac OS 9

+

PowerPC

+

CodeWarrior Professional Release 6

+

Leonard Rosenthol <leonardr@digapp.com>

+

Mac OS X 10.1 "Darwin"

+

PowerPC

+

GCC 2.95.2 (apple gcc -926)

+

Cristy

+

Please let me know if you have successfully built and executed Magick++ using a different configuration so that I can add to the table of verified configurations.

+
+

Unix/Linux

+

Building From Source

+

Magick++ is now built using the ImageMagick configure script and Makefiles. Please follow the installation instructions provided by its README.txt file. The following instructions pertain to the Magick++ specific configuration and build options.

+

To install ImageMagick plus Magick++ under Unix, installation should be similar to

+

./configure [ --prefix=/prefix ]
+make
+make install

+

The library is currently named similar to 'libMagick++.a' (and/or libMagick++.so.5.0.39) and is installed under prefix/lib while the headers are installed with Magick++.h being installed in prefix/include and the remaining headers in prefix/include/Magick++.

+

To influence the options the configure script chooses, you may specify 'make' option variables when running the configure script. For example, the command

+
./configure CXX=CC CXXFLAGS=-O2 LIBS=-lposix
+


+specifies additional options to the configure script. The following table shows the available options.

+
+

Environment Variables That Effect Configure

+ +++ + + + + + + + + + + + + + + + + +
+

Make Option Variable

+

Description

+

CXX

+

Name of C++ compiler (e.g. 'CC -Xa') to use compiler 'CC -Xa'

+

CXXFLAGS

+

Compiler flags (e.g. '-g -O2') to compile with

+

CPPFLAGS

+

Include paths (-I/somedir) to look for header files

+

LDFLAGS

+

Library paths (-L/somedir) to look for libraries. Systems that support the notion of a library run-path may additionally require -R/somedir or '-rpath /somedir' in order to find shared libraries at run time.

+

LIBS

+

Extra libraries (-lsomelib) required to link

+

Installing Linux RPMs

+

Linux RPMs of ImageMagick and Magick++ can be downloaded from ftp://ftp.imagemagick.org/pub/ImageMagick/linux/.

+
+

Windows '9X, NT, 2003, 2008, XP, & Windows 7

+

Visual C++

+

Windows NT through Windows Vista are supported by the ImageMagick source package for NT available in the 'win2k' subdirectory of the ImageMagick ftp site (and mirrors). The ImageMagick source package for NT provides sources to ImageMagick, Magick++, add-on libraries (e.g. JPEG), and a ready-made Visual C++ 8.0 build environment. Please read the configuration and build instructions in README.txt (under the heading "Windows Win2K/XP VISUAL C++ 8.0 COMPILATION") in order to build Magick++.

+

Cygwin & GCC

+

It is possible to build both ImageMagick and Magick++ under the Cygwin Unix-emulation environment for Windows NT. Obtain and install Cgywin from http://www.cygwin.com/ . An X11R6 environment for Cygwin is available from http://www.cygwin.com/xfree/ .To build using Cygwin and GCC, follow the instructions for building under Unix.

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Magick++.png b/share/doc/ImageMagick-7/www/Magick++/Magick++.png new file mode 100644 index 0000000..849ece7 Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/Magick++.png differ diff --git a/share/doc/ImageMagick-7/www/Magick++/Montage.html b/share/doc/ImageMagick-7/www/Magick++/Montage.html new file mode 100644 index 0000000..bbcf97a --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Montage.html @@ -0,0 +1,332 @@ + + + + + +Magick++ API: Montage + + + +
+

Magick::Montage Class

+

A montage is a single image which is composed of thumbnail images composed in a uniform grid. The size of the montage image is determined by the size of the individual thumbnails and the number of rows and columns in the grid.

+

The following illustration shows a montage consisting of three columns and two rows of thumbnails rendered on a gray background:

+

+

Montages may be either "plain" (undecorated thumbnails) or "framed" (decorated thumbnails). In order to more easily understand the options supplied to MontageImages(), montage options are supplied by two different classes: Magick::Montage and Magick::MontageFramed.

+

Plain Montages

+

Magick::Montage is the base class to provide montage options and provides methods to set all options required to render simple (unframed) montages. See Magick::MontageFramedif you would like to create a framed montage.

+

Unframed thumbnails consist of four components: the thumbnail image, the thumbnail border, an optional thumbnail shadow, and an optional thumbnail label area.

+

+

+

Montage Methods

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Method

    +

    Return Type

    +

    Signature(s)

    +

    Description

    +

    Montage

    +

    void

    +

    Default constructor

    +

    backgroundColor

    +

    void

    +

    const Color &backgroundColor_

    +

    Specifies the background color that thumbnails are imaged upon.

    +

    Color

    +

    void

    +

    compose

    +

    void

    +

    CompositeOperator compose_

    +

    Specifies the image composition algorithm for thumbnails. This controls the algorithm by which the thumbnail image is placed on the background. Use of OverCompositeOp is recommended for use with images that have transparency. This option may have negative side-effects for images without transparency.

    +

    CompositeOperator

    +

    void

    +

    fileName

    +

    void

    +

    std::string fileName_

    +

    Specifies the image filename to be used for the generated montage images. To handle the case were multiple montage images are generated, a printf-style format may be embedded within the filename. For example, a filename specification of image%02d.miff names the montage images as image00.miff, image01.miff, etc.

    +

    std::string

    +

    void

    +

    fill

    +

    void

    +

    const Color &pen_

    +

    Specifies the fill color to use for the label text.

    +

    Color

    +

    void

    +

    font

    +

    void

    +

    std::string font_

    +

    Specifies the thumbnail label font.

    +

    std::string

    +

    void

    +

    geometry

    +

    void

    +

    const Geometry &geometry_

    +

    Specifies the size of the generated thumbnail.

    +

    Geometry

    +

    void

    +

    gravity

    +

    void

    +

    GravityType gravity_

    +

    Specifies the thumbnail positioning within the specified geometry area. If the thumbnail is smaller in any dimension than the geometry, then it is placed according to this specification.

    +

    GravityType

    +

    void

    +

    label

    +

    void

    +

    std::string label_

    +

    Specifies the format used for the image label. Special format characters may be embedded in the format string to include information about the image.

    +

    std::string

    +

    void

    +

    penColor

    +

    void

    +

    const Color &pen_

    +

    Specifies the pen color to use for the label text (same as fill).

    +

    Color

    +

    void

    +

    pointSize

    +

    void

    +

    size_t pointSize_

    +

    Specifies the thumbnail label font size.

    +

    size_t

    +

    void

    +

    shadow

    +

    void

    +

    bool shadow_

    +

    Enable/disable drop-shadow on thumbnails.

    +

    bool

    +

    void

    +

    stroke

    +

    void

    +

    const Color &pen_

    +

    Specifies the stroke color to use for the label text .

    +

    Color

    +

    void

    +

    texture

    +

    void

    +

    std::string texture_

    +

    Specifies a texture image to use as montage background. The built-in textures "granite:" and "plasma:" are available. A texture is the same as a background image.

    +

    std::string

    +

    void

    +

    tile

    +

    void

    +

    const Geometry &tile_

    +

    Specifies the maximum number of montage columns and rows in the montage. The montage is built by filling out all cells in a row before advancing to the next row. Once the montage has reached the maximum number of columns and rows, a new montage image is started.

    +

    Geometry

    +

    void

    +

    transparentColor

    +

    void

    +

    const Color &transparentColor_

    +

    Specifies a montage color to set transparent. This option can be set the same as the background color in order for the thumbnails to appear without a background when rendered on an HTML page. For best effect, ensure that the transparent color selected does not occur in the rendered thumbnail colors.

    +

    Color

    +

    void

+

Framed Montages

+

Magick::MontageFramed provides the means to specify montage options when it is desired to have decorative frames around the image thumbnails. MontageFramed inherits from Montage and therefore provides all the methods of Montage as well as those shown in the table "MontageFramed Methods".

+

Framed thumbnails consist of four components: the thumbnail image, the thumbnail frame, the thumbnail border, an optional thumbnail shadow, and an optional thumbnail label area.

+

+

+

MontageFramed Methods

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Method

    +

    Return Type

    +

    Signature(s)

    +

    Description

    +

    MontageFramed

    +

    void

    +

    Default constructor (enable frame via frameGeometry).

    +

    borderColor

    +

    void

    +

    const Color &borderColor_

    +

    Specifies the background color within the thumbnail frame.

    +

    Color

    +

    void

    +

    borderWidth

    +

    void

    +

    size_t borderWidth_

    +

    Specifies the border (in pixels) to place between a thumbnail and its surrounding frame. This option only takes effect if thumbnail frames are enabled (via frameGeometry) and the thumbnail geometry specification doesn't also specify the thumbnail border width.

    +

    size_t

    +

    void

    +

    frameGeometry

    +

    void

    +

    const Geometry &frame_

    +

    Specifies the geometry specification for frame to place around thumbnail. If this parameter is not specified, then the montage is unframed.

    +

    Geometry

    +

    void

    +

    matteColor

    +

    void

    +

    const Color &matteColor_

    +

    Specifies the thumbnail frame color.

    +

    Color

    +

    void

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/NEWS.html b/share/doc/ImageMagick-7/www/Magick++/NEWS.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/NEWS.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/Magick++/PixelPacket.html b/share/doc/ImageMagick-7/www/Magick++/PixelPacket.html new file mode 100644 index 0000000..78deee5 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/PixelPacket.html @@ -0,0 +1,111 @@ + + + + + +Magick++ API: PixelPacket + + + +
+

PixelPacket Structure

+

The PixelPacket structure is used to represent pixels in ImageMagick. ImageMagick may be compiled to support 32 or 64 bit pixels. The size of PixelPacket is controlled by the value of the QuantumDepth define. The default is 64 bit pixels, which provide the best accuracy. If memory consumption must be minimized, or processing time must be minimized, then ImageMagick may be compiled with QuantumDepth=8. The following table shows the relationship between QuantumDepth, the type of Quantum, and the overall PixelPacket size.

+
+

Effect Of QuantumDepth Values

+
+ ++++ + + + + + + + + + + +
+

QuantumDepth

+

Quantum Type

+

PixelPacket Size

+

8

+

unsigned char

+

32 bits

+

16

+

unsigned short

+

64 bits

+

The members of the PixelPacket structure, and their interpretation, are shown in the following table:

+
+

PixelPacket Structure Members

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Member

+

Type

+

Interpretation

+

RGBColorspace

+

RGBColorspace + matte

+

CMYKColorspace

+

red

+

Quantum

+

Red

+

Red

+

Cyan

+

green

+

Quantum

+

Green

+

Green

+

Magenta

+

blue

+

Quantum

+

Blue

+

Blue

+

Yellow

+

opacity

+

Quantum

+

Ignored

+

Opacity

+

Ignored

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Pixels.html b/share/doc/ImageMagick-7/www/Magick++/Pixels.html new file mode 100644 index 0000000..4182282 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Pixels.html @@ -0,0 +1,282 @@ + + + + + +Magick++ API: Working with Pixels + + + +
+

Magick::Pixels

+

The Pixels class provides efficient access to raw image +pixels. Image pixels (of type Quantum) +may be accessed directly via the Image Pixel Cache. The image +pixel cache is a rectangular window (a view) into the actual image +pixels (which may be in memory, memory-mapped from a disk file, or +entirely on disk). Obtain existing image pixels via get(). +Create a new pixel region using set().

+

Depending on the capabilities of the operating system, and the +relationship of the window to the image, the pixel cache may be a copy +of the pixels in the selected window, or it may be the actual image +pixels. In any case calling sync() insures that the base image +is updated with the contents of the modified pixel cache. The method decode()supports +copying foreign pixel data formats into the pixel cache according to +the QuantumTypes. The method encode() supports copying +the pixels in the cache to a foreign pixel representation according to +the format specified by QuantumTypes.

+

Setting a view using the Pixels class does not cause the number of +references to the underlying image to be reduced to one. Therefore, in +order to ensure that only the current generation of the image is +modified, the Image's modifyImage() +method should be invoked to reduce the reference count on the underlying +image to one. If this is not done, then it is possible for a previous +generation of the image to be modified due to the use of reference +counting when copying or constructing an Image.

+

The Quantum* returned by the set and get +methods, and the void* returned by the indexes +method point to pixel data managed by the Pixels class. The Pixels +class is responsible for releasing resources associated with the pixel +view. This means that the pointer should never be passed to delete() or +free().

+

The pixel view is a small image in which +the pixels may be accessed, addressed, and updated, as shown in the +following example, which produces an image similar to the one on the +right (minus lines and text):

+

+
+#include <Magick++.h> +#include <iostream> + +using namespace std; +using namespace Magick; +int main(int argc,char **argv) +{ + InitializeMagick(*argv); + + // Create base image + Image image(Geometry(254,218), "white"); + + + // Set the image type to TrueColor DirectClass representation. + image.type(TrueColorType); + // Ensure that there is only one reference to underlying image + // If this is not done, then image pixels will not be modified. + image.modifyImage(); + + // Allocate pixel view + Pixels view(image); + + // Set all pixels in region anchored at 38x36, with size 160x230 to green. + size_t columns = 196; size_t rows = 162; + Color green("green"); + Quantum *pixels = view.get(38,36,columns,rows); + for ( ssize_t row = 0; row < rows ; ++row ) + for ( ssize_t column = 0; column < columns ; ++column ) + { + *pixels++=QuantumRange*green.quantumRed(); + *pixels++=QuantumRange*green.quantumGreen(); + *pixels++=QuantumRange*green.quantumBlue(); + } + + // Save changes to image. + view.sync(); + + // Set all pixels in region anchored at 86x72, with size 108x67 to yellow. + columns = 108; rows = 67; + Color yellow("yellow"); + pixels = view.get(86,72,columns,rows); + for ( ssize_t row = 0; row < rows ; ++row ) + for ( ssize_t column = 0; column < columns ; ++column ) + { + *pixels++=QuantumRange*yellow.quantumRed(); + *pixels++=QuantumRange*yellow.quantumGreen(); + *pixels++=QuantumRange*yellow.quantumBlue(); + } + view.sync(); + + // Set pixel at position 108,94 to red + Color red("red"); + pixels = view.get(108,94,1,1); + *pixels++=QuantumRange*red.quantumRed(); + *pixels++=QuantumRange*red.quantumGreen(); + *pixels++=QuantumRange*red.quantumBlue(); + + // Save changes to image. + view.sync(); + image.write( "logo.png" ); +} +
+

Pixels supports the following +methods:

+

Pixel Cache Methods

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Method

+
+

Returns

+
+

Signature

+
+

Description

+
+

get

+
+

Quantum*

+
+

const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_

+
+

Transfers read-write pixels from the image to +the pixel cache as defined by the specified rectangular region. + Modified pixels may be subsequently transferred back to the image + via sync. The value returned is intended for pixel access + only. It should never be deallocated.

+
+

getConst

+
+

const Quantum*

+
+

const ssize_t x_, const ssize_t y_, const size_t + columns_, const size_t rows_

+
+

Transfers read-only pixels from the image to +the pixel cache as defined by the specified rectangular region.

+
+

set

+
+

Quantum*

+
+

const ssize_t x_, const ssize_t y_, const size_t + columns_, const size_t rows_

+
+

Allocates a pixel cache region to store image + pixels as defined by the region rectangle.  This area is + subsequently transferred from the pixel cache to the image via sync. +The value returned is intended for pixel access only. It should +never be deallocated.

+
+

sync

+
+

void

+
+

void

+
+

Transfers the image cache pixels to the image.

+
+

indexes

+
+

void*

+
+

void

+
+

Returns the PsuedoColor pixel indexes + corresponding to the pixel region defined by the last get + , getConst, or set + call. Only valid for PseudoColor and CMYKA images. The pixel + indexes (an array of type void, which is typedef Quantum, +which is itself typedef unsigned char, or unsigned short, +depending on the value of the QuantumDepth define) provide +the colormap index (see colorMap) for each pixel in the +image. For CMYKA images, the indexes represent the black +channel. The value returned is intended for pixel access only. It +should never be deallocated.

+
+

x

+
+

int

+
+

void

+
+

Left ordinate of view

+
+

y

+
+

int

+
+

void

+
+

Top ordinate of view

+
+

columns

+
+

size_t

+
+

void

+
+

Width of view

+
+

rows

+
+

size_t

+
+

void

+
+

Height of view

+
+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/Quantum.html b/share/doc/ImageMagick-7/www/Magick++/Quantum.html new file mode 100644 index 0000000..b913268 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/Quantum.html @@ -0,0 +1,111 @@ + + + + + +Magick++ API: Quantum + + + +
+

Quantum Structure

+

The Quantum structure is used to represent pixels in ImageMagick. ImageMagick may be compiled to support 32 or 64 bit pixels. The size of Quantum is controlled by the value of the QuantumDepth define. The default is 64 bit pixels, which provide the best accuracy. If memory consumption must be minimized, or processing time must be minimized, then ImageMagick may be compiled with QuantumDepth=8. The following table shows the relationship between QuantumDepth, the type of Quantum, and the overall Quantum size.

+
+

Effect Of QuantumDepth Values

+
+ ++++ + + + + + + + + + + +
+

QuantumDepth

+

Quantum Type

+

Quantum Size

+

8

+

unsigned char

+

32 bits

+

16

+

unsigned short

+

64 bits

+

The members of the Quantum structure, and their interpretation, are shown in the following table:

+
+

Quantum Pixel Layout

+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Member

+

Type

+

Interpretation

+

RGBColorspace

+

RGBColorspace + matte

+

CMYKColorspace

+

red

+

Quantum

+

Red

+

Red

+

Cyan

+

green

+

Quantum

+

Green

+

Green

+

Magenta

+

blue

+

Quantum

+

Blue

+

Blue

+

Yellow

+

opacity

+

Quantum

+

Ignored

+

Opacity

+

Ignored

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/README.txt b/share/doc/ImageMagick-7/www/Magick++/README.txt new file mode 100644 index 0000000..c4cb380 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/README.txt @@ -0,0 +1,5 @@ +This directory contains the Magick++ documentation. + +The file NEWS.html is generated from Magick++ source directory via + txt2html -t 'Magick++ News' < NEWS > ../www/Magick++/NEWS.html +using Seth Golub's fantastic txt2html translator. diff --git a/share/doc/ImageMagick-7/www/Magick++/STL.html b/share/doc/ImageMagick-7/www/Magick++/STL.html new file mode 100644 index 0000000..630b43f --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/STL.html @@ -0,0 +1,1908 @@ + + + + + +Magick++ API: STL Templates + + + +
+

Magick++ STL Support

+Magick++ provides a set of Standard +Template Libary (STL ) +algorithms for operating across ranges of image frames in a container. +It also provides a set of STL unary function objects to apply an +operation on image frames in a container via an algorithm which uses +unary function objects. A good example of a standard algorithm which is +useful for processing containers of image frames is the STL for_each +algorithm which invokes a unary function object on a range of container +elements. +

Magick++ uses a limited set of template argument types. The current +template argument types are:

+Container +
A container having the properties of a Back +Insertion Sequence . Sequences support forward iterators and Back +Insertion Sequences support the additional abilty to append an element +via push_back(). Common compatable container types are the STL < vector > and <list > template +containers. This template argument is usually used to represent an +output container in which one or more image frames may be appended. +Containers like STL <vector +> which have a given default capacity may need to have their +capacity adjusted via reserve() to a larger capacity +in order to support the expected final size . Since Magick++ +images are very small, it is likely that the default capacity of STL < vector > is +sufficient for most situations.
+ InputIterator +
An input iterator used to express a position in a +container. These template arguments are typically used to represent a +range of elements with first_ representing the first element to +be processed and last_ representing the element to stop at. When +processing the entire contents of a container, it is handy to know that +STL containers usually provide the begin() and end() methods to return +input interators which correspond with the first and last elements, +respectively.
+

The following is an example of how frames from a GIF animation "test_image_anim.gif" may be appended horizontally +with the resulting image written to the file appended_image.miff:

+
+#include <list> 
+#include <Magick++.h> 
+using namespace std; 
+using namespace Magick;
+
+int main(int /*argc*/,char **/*argv*/) 
+{ 
+   list<Image> imageList; 
+   readImages( &imageList, "test_image_anim.gif" );
+
+   Image appended; 
+   appendImages( &appended, imageList.begin(), imageList.end() ); 
+   appended.write( "appended_image.miff" ); 
+   return 0; 
+}
+
+

The available Magick++ specific STL algorithms for operating on +sequences of image frames are shown in the following table:
+  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Magick++ STL Algorithms For Image Sequences
    +
    Algorithm
    +
    +
    Signature
    +
    +
    Description
    +
    +
    animateImages
    +
    InputIterator +first_, InputIterator +last_Animate a sequence of image frames. Image +frames are displayed in succession, creating an animated effect. The +animation options are taken from the first image frame. This feature is +only supported under X11 at the moment.
    +
    appendImages
    +
    Image +*appendedImage_, InputIterator +first_, InputIterator +last_, bool stack_ = falseAppend a sequence of image frames, writing +the result to appendedImage_. All the input image frames must +have the same width or height. Image frames of the same width are +stacked top-to-bottom. Image frames of the same height are stacked +left-to-right. If the stack_ parameter is false, rectangular +image frames are stacked left-to-right otherwise top-to-bottom.
    +
    averageImages
    +
    Image +*averagedImage_, InputIterator +first_, InputIterator +last_Average a sequence of image frames, writing +the result to averagedImage_. All the input image frames must +be the same size in pixels.
    +
    coalesceImages
    +
    Container +*coalescedImages_, InputIterator +first_, InputIterator +last_
    +
    Create a coalesced image sequence obtained by +"playing" the image sequence (observing page offsets and disposal +methods) to create a new image sequence in which all frames are full +size and completely rendered. Note that if the original image sequence +relied on page offsets and disposal methods that the resulting sequence +will be larger (perhaps much larger) then the original. This is useful +for GIF animation sequences that have page offsets and disposal methods. +The resuting image sequence is returned via coalescedImages_.
    +
    deconstructImages
    +
    Container +*deconstructedImages_, InputIterator +first_, InputIterator +last_Break down an image sequence into constituent +parts.  This is useful for creating GIF or MNG animation sequences. +The input sequence is specified by first_ and last_, and +the deconstructed images are returned via deconstructedImages_.
    +
    displayImages
    +
    InputIterator +first_, InputIterator +last_Display a sequence of image frames. Through +use of a pop-up menu, image frames may be selected in succession. This +feature is fully supported under X11 but may have only limited support +in other environments.
    + Caution: if +an image format is is not compatable with the display visual (e.g. JPEG +on a colormapped display) then the original image will be altered. Use a +copy of the original if this is a problem.
    +
    flattenImages
    +
    Image +*flattendImage_, InputIterator +first_, InputIterator +last_Merge a sequence of image frames which +represent image layers into a single composited representation. The flattendImage_ +parameter points to an existing Image to update with the flattened +image. This function is useful for combining Photoshop layers into a +single image.
    +
    forwardFourierTransformImage
    +
    Container +*fourierImages_, const Image &image_ Implements the discrete Fourier transform (DFT) of the image as a magnitude / phase image pair via fourierImages_.
    +
    forwardFourierTransformImage
    +
    Container +*fourierImages_, const Image &image_, const bool magnitude_ Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair via fourierImages_.
    +
    mapImages
    +
    InputIterator +first_, InputIterator +last_, const Image & mapImage_, bool +dither_,  bool measureError_ = falseReplace the colors of a sequence of images +with the closest color from a reference image. Set dither_ to true +to enable dithering.  Set measureError_ to true in +order to evaluate quantization error.
    +
    montageImages
    +
    Container +*montageImages_, InputIterator +first_, InputIterator +last_, const Montage &montageOpts_Create a composite image by combining several +separate image frames. Multiple frames may be generated in the output +container montageImages_ depending on the tile setting and the +number of image frames montaged. Montage options are provided via the +parameter montageOpts_ . Options set in the first image frame ( backgroundColor, borderColor , matteColor , penColor, font, +and fontPointsize ) are also used +as options by montageImages().
    +
    morphImages
    +
    Container +*morphedImages_, InputIterator +first_, InputIterator +last_, size_t frames_Morph a seqence of image frames. This +algorithm  expands the number of image frames (output to the +container morphedImages_) by adding the number of intervening +frames specified by frames_ such that the original frames morph +(blend) into each other when played as an animation.
    +
    mosaicImages
    +
    Image *mosaicImage_, InputIterator +first_, InputIterator +last_Inlay a number of images to form a single +coherent picture. The mosicImage_ argument is updated with a +mosaic constructed from the image sequence represented by first_ +through last_ .
    quantizeImages
    InputIterator +first_, InputIterator +last_, bool measureError_ = falseQuantize colors in images using current +quantization settings. Set measureError_ to true in order +to measure quantization error.
    +
    readImages
    +
    Container +*sequence_, const std::string &imageSpec_Read a sequence of image frames into existing +container (appending to container sequence_) with image names +specified in the UTF-8 string imageSpec_.
    Container +*sequence_, const Blob &blob_Read a sequence of image frames into existing +container (appending to container sequence_) from Blob +blob_.
    +
    writeImages
    +
    InputIterator +first_, InputIterator +last_, const std::string &imageSpec_, bool adjoin_ = trueWrite images in container to file specified +by string imageSpec_. Set adjoin_ to false to write a +set of image frames via a wildcard imageSpec_ (e.g. +image%02d.miff).
    +The wildcard must be one of %0Nd, %0No, or %0Nx.
    + Caution: if +an image format is selected which is capable of supporting fewer colors +than the original image or quantization has been requested, the original +image will be quantized to fewer colors. Use a copy of the original if +this is a problem.
    InputIterator +first_, InputIterator +last_, Blob *blob_, bool adjoin_ = trueWrite images in container to in-memory BLOB +specified by Blob blob_. Set adjoin_ to false to +write a set of image frames via a wildcard imageSpec_ (e.g. +image%02d.miff).
    + Caution: if an +image format is selected which is capable of supporting fewer colors +than the original image or quantization has been requested, the original +image will be quantized to fewer colors. Use a copy of the original if +this is a problem.
+

In addition, we support these yet to be documented methods: combineImages(), evaluateImages(), mergeImageLayers(), optimizeImageLayers(), optimizePlusImageLayers(), and separateImages().

+

+
+

Magick++ Unary Function Objects

+
+Magick++ unary function objects inherit from the STL unary_function +template class . The STL unary_function template class is of the form +
unary_function<Arg, Result>
+and expects that derived classes implement a method of the form: +
Result operator()( Arg argument_);
+which is invoked by algorithms using the function object. In the case +of unary function objects defined by Magick++, the invoked function +looks like: +
void operator()( Image &image_);
+with a typical implementation looking similar to: +
void operator()( Image &image_ ) 
+   {
+     image_.contrast( +_sharpen );
+   }
+where contrast is an Image method and _sharpen is an +argument stored within the function object by its contructor. Since +constructors may be polymorphic, a given function object may have +several constructors and selects the appropriate Image method based on +the arguments supplied. +

In essence, unary function objects (as provided by Magick++) simply +provide the means to construct an object which caches arguments for +later use by an algorithm designed for use with unary function objects. +There is a unary function object corresponding each algorithm provided +by the Image class and there is a contructor +available compatable with each synonymous method in the Image class.

+

The unary function objects that Magick++ provides to support +manipulating images are shown in the following table:
+  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Magick++ Unary Function Objects For Image Manipulation
    Function ObjectConstructor Signatures(s)Description
    +
    adaptiveThresholdImage
    +
    +
    size_t width, size_t +height, unsigned offset = 0
    +
    Apply adaptive thresholding to +the image. Adaptive thresholding is useful if the ideal threshold level +is not known in advance, or if the illumination gradient is not constant +across the image. Adaptive thresholding works by evaulating the mean +(average) of a pixel region (size specified by width and height) +and using the mean as the thresholding value. In order to remove +residual noise from the background, the threshold may be adjusted by +subtracting a constant offset (default zero) from the mean to +compute the threshold.
    +
    +
    addNoiseImage
    +
    NoiseType +noiseType_Add noise to image with specified noise type.
    affineTransformImage
    +
    const DrawableAffine +&affine_
    +
    Transform image by +specified affine (or free transform) matrix.
    +
    +
    annotateImage
    +
    const std::string &text_, const Geometry &location_Annotate with text using specified text, +bounding area, placement gravity, and rotation. If boundingArea_ +is invalid, then bounding area is entire image.
    std::string text_, const Geometry &boundingArea_, GravityType gravity_Annotate using specified text, bounding area, +and placement gravity. If boundingArea_ is invalid, then +bounding area is entire image.
    const std::string &text_, const Geometry &boundingArea_, GravityType gravity_, double +degrees_, Annotate with text using specified text, +bounding area, placement gravity, and rotation. If boundingArea_ +is invalid, then bounding area is entire image.
    const std::string &text_, GravityType gravity_Annotate with text (bounding area is entire +image) and placement gravity.
    +
    blurImage
    +
    const double radius_ = 1, const double sigma_ += 0.5Blur image. The radius_ parameter specifies +the radius of the Gaussian, in pixels, not counting the center +pixel.  The sigma_ parameter specifies the standard deviation of +the Laplacian, in pixels.
    +
    borderImage
    +
    const Geometry +&geometry_ = "6x6+0+0"Border image (add border to image).  The +color of the border is specified by the borderColor attribute.
    +
    charcoalImage
    +
    const double radius_ = 1, const double sigma_ += 0.5Charcoal effect image (looks like charcoal +sketch). The radius_ parameter specifies the radius of the Gaussian, in +pixels, not counting the center pixel.  The sigma_ parameter +specifies the standard deviation of the Laplacian, in pixels.
    +
    chopImage
    +
    const Geometry +&geometry_Chop image (remove vertical or horizontal +subregion of image)
    +
    colorizeImage
    +
    const size_t opacityRed_, const +size_t opacityGreen_, const size_t opacityBlue_, const Color +&penColor_Colorize image with pen color, using +specified percent opacity for red, green, and blue quantums.
    const size_t opacity_, const Color &penColor_Colorize image with pen color, using +specified percent opacity.
    +
    commentImage
    +
    const std::string &comment_Comment image (add comment string to +image).  By default, each image is commented with its file name. +Use  this  method to  assign a specific comment to the +image.  Optionally you can include the image filename, type, width, +height, or other  image  attributes by embedding special format characters.
    +
    compositeImage
    +
    const Image +&compositeImage_, ssize_t xOffset_, ssize_t yOffset_, CompositeOperator +compose_ = InCompositeOpCompose an image onto another at +specified offset and using specified algorithm
    const Image +&compositeImage_, const Geometry &offset_, CompositeOperator +compose_ = InCompositeOp
    +
    condenseImage
    +
    voidCondense image (Re-run-length encode image in +memory).
    +
    contrastImage
    +
    size_t sharpen_Contrast image (enhance intensity differences +in image)
    +
    cropImage
    +
    const Geometry +&geometry_Crop image (subregion of original image)
    +
    cycleColormap-
    + Image
    +
    int amount_Cycle image colormap
    +
    despeckleImage
    +
    voidDespeckle image (reduce speckle noise)
    +
    drawImage
    +
    const Drawable +&drawable_Draw shape or text on image.
    const std::list<Drawable +> &drawable_Draw shapes or text on image using a set of +Drawable objects contained in an STL list. Use of this method improves +drawing performance and allows batching draw objects together in a list +for repeated use.
    +
    edgeImage
    +
    size_t radius_ = 0.0Edge image (hilight edges in image).  +The radius is the radius of the pixel neighborhood.. Specify a radius +of zero for automatic radius selection.
    +
    embossImage
    +
    const double radius_ = 1, const double sigma_ += 0.5Emboss image (hilight edges with 3D effect). +The radius_ parameter specifies the radius of the Gaussian, in pixels, +not counting the center pixel.  The sigma_ parameter specifies the +standard deviation of the Laplacian, in pixels.
    +
    enhanceImage
    +
    voidEnhance image (minimize noise)
    +
    equalizeImage
    +
    voidEqualize image (histogram equalization)
    +
    flipImage
    +
    voidFlip image (reflect each scanline in the +vertical direction)
    +
    floodFill-
    + ColorImage
    +
    ssize_t x_, ssize_t y_, const Color &fillColor_Flood-fill color across pixels +that match the color of the target pixel and are neighbors of the +target pixel. Uses current fuzz setting when determining color match.
    const Geometry +&point_, const Color &fillColor_
    ssize_t x_, ssize_t y_, const Color &fillColor_, const Color +&borderColor_Flood-fill color across pixels +starting at target-pixel and stopping at pixels matching specified +border color. Uses current fuzz setting when determining color match.
    const Geometry +&point_, const Color &fillColor_, const Color &borderColor_
    +
    floodFill-
    + TextureImage
    +
    ssize_t x_, ssize_t y_,  const Image &texture_Flood-fill texture across pixels +that match the color of the target pixel and are neighbors of the +target pixel. Uses current fuzz setting when determining color match.
    const Geometry +&point_, const Image &texture_
    ssize_t x_, ssize_t y_, const Image +&texture_, const Color &borderColor_Flood-fill texture across pixels +starting at target-pixel and stopping at pixels matching specified +border color. Uses current fuzz setting when determining color match.
    const Geometry +&point_, const Image &texture_, const Color +&borderColor_
    +
    flopImage
    +
    void Flop image (reflect each scanline in the +horizontal direction)
    +
    frameImage
    +
    const Geometry +&geometry_ = "25x25+6+6"Add decorative frame around image
    size_t width_, size_t height_, +ssize_t x_, ssize_t y_, ssize_t innerBevel_ = 0, ssize_t outerBevel_ = 0
    +
    gammaImage
    +
    double gamma_Gamma correct image (uniform red, green, and +blue correction).
    double gammaRed_, double gammaGreen_, double +gammaBlue_Gamma correct red, green, and blue channels +of image.
    +
    gaussianBlurImage
    +
    double width_, double sigma_Gaussian blur image. The number of neighbor +pixels to be included in the convolution mask is specified by +'width_'.  For example, a width of one gives a (standard) 3x3 +convolution mask. The standard deviation of the gaussian bell curve is +specified by 'sigma_'.
    +
    implodeImage
    +
    double factor_Implode image (special effect)
    +
    inverseFourierTransformImage
    +
    const Image +&phaseImage_, const bool magnitude_implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.
    +
    labelImage
    +
    const string &label_Assign a label to an image. Use this option +to  assign  a  specific label to the image. Optionally +you can include the image filename, type, width, height, or scene +number in the label by embedding  special +format characters. If the first character of string is @, the image +label is read from a file titled by the remaining characters in the +string. When converting to Postscript, use this  option to specify +a header string to print above the image.
    levelImage
    +
    const double black_point, +const double white_point, const double mid_point=1.0
    +
    Level image. Adjust the +levels of the image by scaling the colors falling between specified +white and black points to the full available quantum range. The +parameters provided represent the black, mid (gamma), and white +points.  The black point specifies the darkest color in the image. +Colors darker than the black point are set to zero. Mid point (gamma) +specifies a gamma correction to apply to the image. White point +specifies the lightest color in the image.  Colors brighter than +the white point are set to the maximum quantum value. The black and +white point have the valid range 0 to QuantumRange while mid (gamma) has a +useful range of 0 to ten.
    levelChannelImage
    +
    const Magick::ChannelType +channel, const double black_point, const double white_point, const +double mid_point=1.0
    +
    Level image channel. +Adjust the levels of the image channel by scaling the values falling +between specified white and black points to the full available quantum +range. The parameters provided represent the black, mid (gamma), and +white points. The black point specifies the darkest color in the image. +Colors darker than the black point are set to zero. Mid point (gamma) +specifies a gamma correction to apply to the image. White point +specifies the lightest color in the image. Colors brighter than the +white point are set to the maximum quantum value. The black and white +point have the valid range 0 to QuantumRange while mid (gamma) has a useful +range of 0 to ten.
    +
    layerImage
    +
    ChannelType +layer_Extract layer from image. Use this option to +extract a particular layer from  the image.  MatteLayer,  +for  example, is useful for extracting the opacity values from an +image.
    +
    magnifyImage
    +
    voidMagnify image by integral size
    +
    mapImage
    +
    const Image +&mapImage_ , bool dither_ = falseRemap image colors with closest color from +reference image. Set dither_ to true in to apply Floyd/Steinberg +error diffusion to the image. By default, color reduction chooses an +optimal  set  of colors that best represent the original +image. Alternatively, you can  choose  a  +particular  set  of colors  from  an image file +with this option.
    +
    matteFloodfill-
    + Image
    +
    const Color +&target_, unsigned int matte_, ssize_t x_, ssize_t y_, PaintMethod method_Floodfill designated area with a matte value
    medianFilterImageconst double radius_ = 0.0Filter image by replacing each pixel +component with the median color in a circular neighborhood
    +
    minifyImage
    +
    voidReduce image by integral size
    +
    modulateImage
    +
    double brightness_, double saturation_, +double hue_Modulate percent hue, saturation, and +brightness of an image. Modulation of +saturation and brightness is as a ratio of the current value (100.0 for no +change). Modulation of hue is an absolute rotation of -180 degrees to ++180 degrees from the current position corresponding to an argument +range of 0 to 200.0 (100.0 for no change).
    +
    negateImage
    +
    bool grayscale_ = falseNegate colors in image.  Replace every +pixel with its complementary color (white becomes black, yellow becomes +blue, etc.).  Set grayscale to only negate grayscale values in +image.
    +
    normalizeImage
    +
    voidNormalize image (increase contrast by +normalizing the pixel values to span the full range of color values).
    +
    oilPaintImage
    +
    size_t radius_ = 3Oilpaint image (image looks like oil painting)
    +
    opacityImage
    +
    size_t opacity_Set or attenuate the opacity channel in the +image. If the image pixels are opaque then they are set to the specified +opacity value, otherwise they are blended with the supplied opacity +value.  The value of opacity_ ranges from 0 (completely opaque) to QuantumRange. +The defines OpaqueOpacity and TransparentOpacity are +available to specify completely opaque or completely transparent, +respectively.
    +
    opaqueImage
    +
    const Color +&opaqueColor_, const Color &penColor_Change color of pixels matching opaqueColor_ +to specified penColor_.
    +
    quantizeImage
    +
    bool measureError_ = falseQuantize image (reduce number of colors). Set +measureError_ to true in order to calculate error attributes.
    +
    raiseImage
    +
    const Geometry +&geometry_ = "6x6+0+0",  bool raisedFlag_ =  falseRaise image (lighten or darken the edges of +an image to give a 3-D raised or lowered effect)
    +
    reduceNoise-
    + Image
    +
    voidReduce noise in image using a +noise peak elimination filter.
    size_t order_
    +
    rollImage
    +
    int columns_, ssize_t rows_Roll image (rolls image vertically and +horizontally) by specified number of columnms and rows)
    +
    rotateImage
    +
    double degrees_Rotate image counter-clockwise by specified +number of degrees
    +
    sampleImage
    +
    const Geometry +&geometry_ Resize image by using pixel sampling algorithm
    +
    scaleImage
    +
    const Geometry +&geometry_Resize image by using simple ratio algorithm
    +
    segmentImage
    +
    double clusterThreshold_ = 1.0,
    + double smoothingThreshold_ = 1.5
    Segment (coalesce similar image components) +by analyzing the histograms of the color components and identifying +units that are homogeneous with the fuzzy c-means technique. Also uses quantizeColorSpace +and verbose image attributes. Specify clusterThreshold_ , +as the number  of  pixels  each cluster  must exceed +the cluster threshold to be considered valid. SmoothingThreshold_ +eliminates noise in the  second derivative of the histogram. As the +value is  increased, you can  expect  a  smoother +second derivative.  The default is 1.5.
    +
    shadeImage
    +
    double azimuth_ = 30, double elevation_ = 30,
    + bool colorShading_ = false
    Shade image using distant light source. +Specify azimuth_ and elevation_ as the  +position  of  the light source. By default, the shading +results as a grayscale image.. Set colorShading_ to true to +shade the red, green, and blue components of the image.
    +
    sharpenImage
    +
    const double radius_ = 1, const double sigma_ += 0.5Sharpen pixels in image. The radius_ +parameter specifies the radius of the Gaussian, in pixels, not counting +the center pixel.  The sigma_ parameter specifies the standard +deviation of the Laplacian, in pixels.
    +
    shaveImage
    +
    const Geometry +&geometry_Shave pixels from image edges.
    +
    shearImage
    +
    double xShearAngle_, double yShearAngle_Shear image (create parallelogram by sliding +image by X or Y axis).  Shearing slides one edge of an image along +the X  or  Y axis,  creating  a +parallelogram.  An X direction shear slides an edge along the X +axis, while  a  Y  direction shear  slides  an +edge along the Y axis.  The amount of the shear is controlled by a +shear angle.  For X direction  shears,  x  degrees +is measured relative to the Y axis, and similarly, for Y direction +shears  y  degrees is measured relative to the X axis. Empty +triangles left over from shearing the  image  are filled  +with  the  color  defined as borderColor
    +
    solarizeImage
    +
    double factor_Solarize image (similar to effect seen when +exposing a photographic film to light during the development process)
    +
    spreadImage
    +
    size_t amount_ = 3Spread pixels randomly within image by +specified amount
    +
    steganoImage
    +
    const Image +&watermark_Add a digital watermark to the image (based +on second image)
    +
    stereoImage
    +
    const Image +&rightImage_Create an image which appears in stereo when +viewed with red-blue glasses (Red image on left, blue on right)
    +
    swirlImage
    +
    double degrees_Swirl image (image pixels are rotated by +degrees)
    +
    textureImage
    +
    const Image +&texture_Layer a texture on image background
    +
    thresholdImage
    +
    double threshold_Threshold image
    +
    transformImage
    +
    const Geometry +&imageGeometry_Transform image based on image +and crop geometries. Crop geometry is optional.
    const Geometry +&imageGeometry_, const Geometry +&cropGeometry_ 
    +
    transparentImage
    +
    const Color +&color_Add matte image to image, setting pixels +matching color to transparent.
    +
    trimImage
    +
    voidTrim edges that are the background color from +the image.
    +
    waveImage
    +
    double amplitude_ = 25.0, double wavelength_ += 150.0Alter an image along a sine wave.
    +
    zoomImage
    +
    const Geometry +&geometry_Zoom image to specified size.
+

+

Function objects are available to set attributes on image frames +which are equivalent to methods in the Image object. These function +objects allow setting an option across a range of image frames using f +or_each().

+

The following code is an example of how the color 'red' may be set +to transparent in a GIF animation:

+
+list<image> images; 
+readImages( &images, "animation.gif" ); 
+for_each ( images.begin(), images.end(), transparentImage( "red" )  ); 
+writeImages( images.begin(), images.end(), "animation.gif" );
+
+

The available function objects for setting image attributes are
+  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Image Attributes
    +
    Attribute
    +
    +
    Type
    +
    +
    Constructor Signature(s)
    +
    +
    Description
    +
    +
    adjoinImage
    +
    boolbool flag_Join images into a single multi-image file.
    +
    antiAliasImage
    +
    boolbool flag_Control antialiasing of rendered Postscript +and Postscript or TrueType fonts. Enabled by default.
    +
    animation-
    + DelayImage
    +
    size_t (0 to 65535)size_t delay_Time in 1/100ths of a second (0 to 65535) +which must expire before displaying the next image in an animated +sequence. This option is useful for regulating the animation of a +sequence  of GIF images within Netscape.
    +
    animation-
    + IterationsImage
    +
    size_tsize_t iterations_Number of iterations to loop an animation +(e.g. Netscape loop extension) for.
    +
    background-
    + ColorImage
    +
    Color const Color +&color_Image background color
    +
    background-
    + TextureImage
    +
    std::stringconst string &texture_Image to use as background texture.
    +
    borderColor-
    + Image
    +
    Color  const Color +&color_Image border color
    +
    boxColorImage
    +
    Color const Color +&boxColor_Base color that annotation text is rendered +on.
    +
    chroma-
    + BluePrimaryImage
    +
    double x & ydouble x_, double y_Chromaticity blue primary point (e.g. x=0.15, +y=0.06)
    +
    chroma-
    + GreenPrimaryImage
    +
    double x & ydouble x_, double y_Chromaticity green primary point (e.g. x=0.3, +y=0.6)
    +
    chroma-
    + RedPrimaryImage
    +
    double x & ydouble x_, double y_Chromaticity red primary point (e.g. x=0.64, +y=0.33)
    +
    chroma-
    + WhitePointImage
    +
    double x & ydouble x_, double y_Chromaticity white point (e.g. x=0.3127, +y=0.329)
    +
    colorFuzzImage
    +
    doubledouble fuzz_Colors within this distance are considered +equal. A number of algorithms search for a target  color. By +default the color must be exact. Use this option to match colors that +are close to the target color in RGB space.
    +
    colorMapImage
    +
    Color size_t index_, const Color &color_Color at color-pallet index.
    colorSpaceImageColorspaceType ColorspaceType +colorSpace_The colorspace (e.g. CMYK) used to represent +the image pixel colors. Image pixels are always stored as RGB(A) except +for the case of CMY(K).
    +
    composeImage
    +
    CompositeOperator CompositeOperator +compose_Composition operator to be used when +composition is implicitly used (such as for image flattening).
    +
    compressType-
    + Image
    +
    CompressionType CompressionType +compressType_Image compresion type. The default is the +compression type of the specified image file.
    +
    densityImage
    +
    Geometry   +(default 72x72)const Geometry +&density_Vertical and horizontal resolution in pixels +of the image. This option specifies an image density when decoding a +Postscript or Portable Document page. Often used with psPageSize.
    +
    depthImage
    +
    size_t (8 or 16)size_t depth_Image depth. Used to specify the bit depth +when reading or writing  raw images or thwn the output format +supports multiple depths. Defaults to the quantum depth that +ImageMagick is compiled with.
    +
    endianImage
    +
    EndianType EndianType +endian_Specify (or obtain) endian option for formats +which support it.
    +
    fileNameImage
    +
    std::stringconst std::string &fileName_Image file name.
    +
    fillColorImage
    +
    Colorconst Color &fillColor_Color to use when filling drawn objects
    +
    filterTypeImage
    +
    FilterTypes FilterTypes +filterType_Filter to use when resizing image. The +reduction filter employed has a sigificant effect on the time required +to resize an image and the resulting quality. The default filter is Lanczos +which has been shown to produce good results when reducing images.
    +
    fontImage
    +
    std::stringconst std::string &font_Text rendering font. If the font is a fully +qualified X server font name, the font is obtained from an X  +server. To use a TrueType font, precede the TrueType filename with an @. +Otherwise, specify  a  Postscript font name (e.g. +"helvetica").
    +
    fontPointsize-
    + Image
    +
    size_tsize_t pointSize_Text rendering font point size
    +
    gifDispose-
    + MethodImage
    +
    size_t
    + { 0 = Disposal not specified,
    + 1 = Do not dispose of graphic,
    + 3 = Overwrite graphic with background color,
    + 4 = Overwrite graphic with previous graphic. }
    size_t disposeMethod_layer disposal method. This option is used to +control how successive frames are rendered (how the preceding frame is +disposed of) when creating a GIF animation.
    +
    interlace-
    + TypeImage
    +
    InterlaceType InterlaceType +interlace_The type of interlacing scheme (default NoInterlace +). This option is used to specify the type of  interlacing +scheme  for  raw  image formats such as RGB or YUV. NoInterlace +means do not  interlace, LineInterlace uses scanline +interlacing, and PlaneInterlace uses plane interlacing. +PartitionInterlace is like PlaneInterlace except the  +different planes  are saved  to individual files (e.g.  +image.R, image.G, and image.B). Use LineInterlace or PlaneInterlace +to create an interlaced GIF or progressive JPEG image.
    +
    isValidImage
    +
    boolbool isValid_Set image validity. Valid images become empty +(inValid) if argument is false.
    +
    labelImage
    +
    std::stringconst std::string &label_Image label
    +
    lineWidthImage
    +
    doubledouble lineWidth_Line width for drawing lines, circles, +ellipses, etc. See Drawable .
    +
    magickImage
    +
    std::string const std::string &magick_Get image format (e.g. "GIF")
    +
    matteImage
    +
    boolbool matteFlag_True if the image has transparency. If set +True, store matte channel if  the image has one otherwise create +an opaque one.
    +
    matteColorImage
    +
    Color const Color +&matteColor_Image matte (frame) color
    +
    monochrome-
    + Image
    +
    boolbool flag_Transform the image to black and white
    +
    pageImage
    +
    Geometry const Geometry &pageSize_Preferred size and location of an image +canvas. +

    Use this option to specify the dimensions and +position of the Postscript page in dots per inch or a TEXT page in +pixels. This option is typically used in concert with density .

    +

    Page may also be used to position a GIF image +(such as for a scene in an animation)

    +
    +
    penColorImage
    +
    Color const Color +&penColor_Pen color to use when annotating on or +drawing on image.
    +
    penTextureImage
    +
    Image const Image & penTexture_Texture image to paint with (similar to +penColor).
    +
    pixelColorImage
    +
    Color size_t x_, size_t y_, const Color &color_Get/set pixel color at location x & y.
    +
    psPageSizeImage
    +
    Geometry const Geometry &pageSize_Postscript page size. Use this  option +to specify the dimensions  of the Postscript page in dots per inch +or a TEXT page in pixels. This option is typically used in concert with density.
    +
    qualityImage
    +
    size_t (0 to 100)size_t quality_JPEG/MIFF/PNG compression level (default 75).
    +
    quantize-
    + ColorsImage
    +
    size_tsize_t colors_Preferred number of colors in the image. The +actual number of colors in the image may be less than your request, but +never more. Images with less unique colors than specified with this +option will have any duplicate or unused colors removed.
    +
    quantize-
    + ColorSpaceImage
    +
    ColorspaceType ColorspaceType +colorSpace_Colorspace to quantize colors in (default +RGB). Empirical evidence suggests that 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.
    +
    quantize-
    + DitherImage
    +
    boolbool flag_Apply Floyd/Steinberg error diffusion to the +image. The basic strategy of dithering is to  trade  intensity +resolution  for  spatial  resolution  by  +averaging the intensities  of  several  +neighboring  pixels. Images which  suffer  from  +severe  contouring  when  reducing colors can be improved +with this option. The quantizeColors or monochrome option must be set +for this option to take effect.
    +
    quantize-
    + TreeDepthImage
    +
    size_t (0 to 8)size_t treeDepth_Depth of the quantization color +classification tree. Values of 0 or 1 allow selection of the optimal +tree depth for the color reduction algorithm. Values between 2 and 8 may +be used to manually adjust the tree depth.
    +
    rendering-
    + IntentImage
    +
    RenderingIntent RenderingIntent +render_The type of rendering intent
    +
    resolution-
    + UnitsImage
    +
    ResolutionType ResolutionType +units_Units of image resolution
    +
    sceneImage
    +
    size_tsize_t scene_Image scene number
    +
    sizeImage
    +
    Geometry const Geometry +&geometry_Width and height of a raw image (an image +which does not support width and height information).  Size may +also be used to affect the image size read from a multi-resolution +format (e.g. Photo CD, JBIG, or JPEG.
    +
    stripImage
    +
    voidstrips an image of all profiles and comments.
    +
    strokeColorImage
    +
    Color const Color +&strokeColor_Color to use when drawing object outlines
    +
    subImageImage
    +
    size_tsize_t subImage_Subimage of an image sequence
    +
    subRangeImage
    +
    size_tsize_t subRange_Number of images relative to the base image
    +
    tileNameImage
    +
    std::stringconst std::string &tileName_Tile name
    +
    typeImage
    +
    ImageType ImageType +type_Image storage type.
    +
    verboseImage
    +
    boolbool verboseFlag_Print detailed information about the image
    +
    viewImage
    +
    std::stringconst std::string &view_FlashPix viewing parameters.
    +
    x11DisplayImage
    +
    std::string (e.g. "hostname:0.0")const std::string &display_X11 display to display to, obtain fonts from, +or to capture image from
+

+
+

Query Image Format Support

+
+

Magick++ provides the  coderInfoList() +function to support obtaining information about the image formats +supported by ImageMagick. Support for image formats in ImageMagick +is provided by modules known as "coders". A user-provided container is +updated based on a boolean truth-table match. The truth-table supports +matching based on whether ImageMagick can read the format, write the +format, or supports multiple frames for the format. A wildcard specifier +is supported for any "don't care" field. The data obtained via +coderInfoList() may be useful for preparing GUI dialog boxes or for +deciding which output format to write based on support within the +ImageMagick build.

+

The definition of coderInfoList is:

+
+class CoderInfo 
+  { 
+  public:
+
+    enum MatchType { 
+      AnyMatch,  // match any coder 
+      TrueMatch, // match coder if true 
+      FalseMatch // match coder if false 
+    };
+
+    [ remaining CoderInfo methods ]
+
+   }
+
+  template <class Container > 
+  void coderInfoList( Container *container_, 
+                      CoderInfo::MatchType isReadable_   = CoderInfo::AnyMatch, 
+                      CoderInfo::MatchType isWritable_   = CoderInfo::AnyMatch, 
+                      CoderInfo::MatchType isMultiFrame_ = CoderInfo::AnyMatch 
+                      );
+
+

The following example shows how to retrieve a list of all of the +coders which support reading images and print the coder attributes (all +listed formats will be readable):

+
+  list<CoderInfo> coderList; 
+  coderInfoList( &coderList,           // Reference to output list 
+                 CoderInfo::TrueMatch, // Match readable formats 
+                 CoderInfo::AnyMatch,  // Don't care about writable formats 
+                 CoderInfo::AnyMatch); // Don't care about multi-frame support 
+  list<CoderInfo>::iterator entry = coderList.begin(); 
+  while( entry != coderList.end() ) 
+  { 
+    cout << entry->name() << ": (" << entry->description() << ") : "; 
+    cout << "Readable = "; 
+    if ( entry->isReadable() ) 
+      cout << "true"; 
+    else 
+      cout << "false"; 
+    cout << ", "; 
+    cout << "Writable = "; 
+    if ( entry->isWritable() ) 
+      cout << "true"; 
+    else 
+      cout << "false"; 
+    cout << ", "; 
+    cout << "Multiframe = "; 
+    if ( entry->isMultiframe() ) 
+      cout << "true"; 
+    else 
+      cout << "false"; 
+    cout << endl;
+    entry ++;
+   } 
+
+   }  +

Obtaining A Color Histogram 

+

Magick++ provides the colorHistogram template function to +retrieve a color histogram from an image. A color histogram provides a +count of how many times each color occurs in the image. The histogram is +written into a user-provided container, which (for example) could be a <vector> or a <map>.  When a +<map> is used, the Color +is used as the key so that quick lookups of usage counts for colors may +be performed. Writing into a <map> +may be slower than writing into a <vector> +since the <map> sorts the +entries (by color intensity) and checks for uniqueness. Each histogram +entry is contained in type std::pair<Magick::Color,unsigned +long> with the first +member of the pair being a Color, +and the second member of the pair being an 'unsigned long'. Use the <pair> "first" member to access the Color +and the "second" member to +access the number of times the color occurs in the image.

+

The template function declaration is as follows:
+

+
+template <class Container >
+void colorHistogram( Container *histogram_, const Image image)
+
+

The following examples illustrate using both a <map> and a +<vector> to retrieve the color histogram, and print out a +formatted summary.
+
+Using <map>:
+   
+

+  Image image("image.miff");
+  map<Color,unsigned long> histogram;
+  colorHistogram( &histogram, image );
+  std::map<Color,unsigned long>::const_iterator p=histogram.begin();
+  while (p != histogram.end())
+    {
+      cout << setw(10) << (int)p->second << ": ("
+           << setw(quantum_width) << (int)p->first.redQuantum() << ","
+           << setw(quantum_width) << (int)p->first.greenQuantum() << ","
+           << setw(quantum_width) << (int)p->first.blueQuantum() << ")"
+           << endl;
+       p++;
+    }
+
+
+Using <vector>:
+   
+
+  Image image("image.miff");
+  std::vector<std::pair<Color,unsigned long> > histogram;
+  colorHistogram( &histogram, image );
+  std::vector<std::pair<Color,unsigned long> >::const_iterator p=histogram.begin();
+  while (p != histogram.end())
+    {
+      cout << setw(10) << (int)p->second << ": ("
+           << setw(quantum_width) << (int)p->first.redQuantum() << ","
+           << setw(quantum_width) << (int)p->first.greenQuantum() << ","
+           << setw(quantum_width) << (int)p->first.blueQuantum() << ")"
+           << endl;
+      p++;
+    }
+
+

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/TypeMetric.html b/share/doc/ImageMagick-7/www/Magick++/TypeMetric.html new file mode 100644 index 0000000..7a3e3c8 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/TypeMetric.html @@ -0,0 +1,91 @@ + + + + + +Magick++ API: Type Metrics + + + +
+

Magick::TypeMetric

+

The TypeMetric class provides the means to pass data from the Image class's TypeMetric method to the user. It provides information regarding font metrics such as ascent, descent, text width, text height, and maximum horizontal advance. The units of these font metrics are in pixels, and that the metrics are dependent on the current Image font (default Ghostscript's "Helvetica"), pointsize (default 12 points), and x/y resolution (default 72 DPI) settings.

+

The pixel units may be converted to points (the standard resolution-independent measure used by the typesetting industry) via the following equation:

+
+size_points = (size_pixels * 72)/resolution
+
+

where resolution is in dots-per-inch (DPI). This means that at the default image resolution, there is one pixel per point.

+

Note that a font's pointsize is only a first-order approximation of the font height (ascender + descender) in points. The relationship between the specified pointsize and the rendered font height is determined by the font designer.

+

See FreeType Glyph Conventions for a detailed description of font metrics related issues.

+

The methods available in the TypeMetric class are shown in the following table:

+

TypeMetric Methods

+
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Method

    +

    Returns

    +

    Units

    +

    Signature

    +

    Description

    +

    ascent

    +

    double

    +

    Pixels

    +

    void

    +

    Returns the distance in pixels from the text baseline to the highest/upper grid coordinate used to place an outline point. Always a positive value.

    +

    descent

    +

    double

    +

    Pixels

    +

    void

    +

    Returns the the distance in pixels from the baseline to the lowest grid coordinate used to place an outline point. Always a negative value.

    +

    textWidth

    +

    double

    +

    Pixels

    +

    void

    +

    Returns text width in pixels.

    +

    textHeight

    +

    double

    +

    Pixels

    +

    void

    +

    Returns text height in pixels.

    +

    maxHorizontalAdvance

    +

    double

    +

    Pixels

    +

    void

    +

    Returns the maximum horizontal advance (advance from the beginning of a character to the beginning of the next character) in pixels.

+
+ + diff --git a/share/doc/ImageMagick-7/www/Magick++/index.html b/share/doc/ImageMagick-7/www/Magick++/index.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/index.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/Magick++/magick.css b/share/doc/ImageMagick-7/www/Magick++/magick.css new file mode 100644 index 0000000..f125d7a --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/magick.css @@ -0,0 +1,798 @@ +body { + background: white; + color: black; + font-family: Candara, Sans-Serif; + margin: 0px; + padding: 0px; + font-size: 12pt; +} + +a { + background: transparent; + color: #17457c; + text-decoration: none; + font-weight: bold; +} + +a[href]:hover { + background: transparent; + color: #991e1e; + text-decoration: underline; + font-weight: bold; +} + +div.cmd { + color: black; + background: #d2ddf6; + font-family: monospace; + margin: 1.33em 40px; + padding: 1.33em 1.33em 1.33em 2.66em; + text-indent:-1.33em; +} + +div.crt { + border-style: ridge; + border-width: 7px; + border-color: blue; + color: white; + background: #000044; + font-family: monospace; + margin: 1.33em 0em; + padding: .66em 1.33em .66em 1.33em; +} + +div.cmdout { + color: black; + background: #d0d0dd; + font-family: Times, serif; + margin: 1.33em 40px; + padding: .66em 1.33em .66em 1.33em; +} + +div.doc-section > p { + margin: 1.33em 0px; +} + +div.doc-section { + margin: 1.33em 40px; +} + +div.eastbar { + right: 0.2em; + position: absolute; +} + +div.eqn { + text-align: center; + } + +div.footer { + margin-left: 160px; + background: white; +} + +div.group { + border: 2px solid #666; + padding: 0; + margin: 0.8em 8px; +} + +div.image { + text-align: center; +} + +div.info { + clear: both; +} + +div.main { + background: white; + color: black; + border-left-style: solid; + border-left-color: #d0d0d0; + border-left-width: 1px; + padding-left: .75em; + padding-bottom: .75em; + padding-top: 0px; + padding-right: .75em; + margin-left: 160px; + margin-right: 10px; +} + +div.menu { + background: #f5f5f5; + color: black; + padding-left: .66em; + padding-right: .66em; + padding-top: .75em; + font-weight: bold; + vertical-align: top; + left: 0px; +} + +div.sep { + background: #f5f5f5; + color: black; + padding-left: 1.33em; + padding-top: .75em; + font-weight: bold; + vertical-align: top; + left: 0px; + font-size: 66%; +} + +div.sponsor { + padding-left: .5em; + padding-top: .25em; + font-size: 83.333%; +} + +div.sponsbox { + background: #ffffff; + border-style: solid; + border-color: #d0d0d0; + border-width: 1px; + padding-left: .66em; + font-weight: bold; + vertical-align: top; + left: 0px; +} + +div.sub { + background: #f5f5f5; + color: black; + padding-left: 1.66em; + padding-top: .15em; + font-weight: bold; + vertical-align: top; + left: 0px; + font-size: 90%; +} + +div.text { + color: black; + background: #d2ddf6; + font-family: monospace; + margin: 1.33em 40px; + padding: 1.33em; +} + +div.titlebar { + background-image: url("../images/background.jpg"); + background-repeat: repeat-x; + height: 118px; + width: 100%; + background-color: white; /* #f5f5f5; */ + border:0px; + padding-bottom:0px; +} + +div.westbar { + width: 160px; + left: 0em; + position: absolute; + /* height: 100%; */ + font-size: 9pt; + border-right-style: solid; + border-right-color: #d0d0d0; + border-right-width: 1px; +} + +acronym, .help { + border-bottom: 1px dashed #9999cc; + cursor: help; +} + +div.info img { + float: left; + padding: 0em 1em 0em 0em; +} + +dl.doc { + padding: .833em 1.33em 1.33em 1.33em; + border-spacing: 0px; + width: 85%; + text-align: left; + margin: 1.33em 40px; + border-style: solid; + border-color: #d0d0d0; + border-width: 1px; +} + +dt { + font-weight: bold; + margin-left: 3em; + margin-top: 2em; + margin-bottom: .5em; +} + +dd { + margin: .5em .5em .5em 5em; +} + +em.arg { + color: #8b0000; /* darkred; */ + font-weight: normal; +} + +em.caution { + color: #981e49; + font-weight: bold; +} + +em.emergency { + color: #c74646; + font-weight: bold; +} + +em.option { + color: #8b0000; + font-weight: normal; +} + +em.QR { + color: #00008b; + font-weight: normal; +} + +em.warn { + color: #d5a82f; + font-weight: bold; +} + +fieldset { + padding: .5em; + background: white; + border: 1px dotted #aaaa77; + margin-left: 20px; + margin-right: 20px; + margin-top: .5em; +} + +fieldset legend { + color: #fff; + background-color: #aaaa77; + font-size: smaller; + padding: .1ex .5ex; + border-right: 1px solid gray; + border-bottom: 1px solid gray; + font-weight: bold; +} + +form { + margin: 1.33em 0px; + margin-left: 40px; + margin-right: 40px; +} + +h1 { + color: black; + padding: 5px; + background: #f5f5f5; + border-style: solid; + border-color: #d0d0d0; + border-width: 1px; + margin-bottom: 30px; + margin-top: 5px; + font-weight: bold; + font-size: 110%; + text-align: center; + text-transform: capitalize; + clear: left; +} + +h2 { + font-weight: bold; + clear: both; + font-size: 110%; +} + +h3 { + font-weight: bold; + clear: both; + font-size: 100%; +} + +h4 { + font-weight: bolder; + clear: both; + font-size: 95%; +} + +h5 { + margin: 1.33em 0px; + margin-left: 40px; + margin-right: 40px; + font-weight: bold; + clear: both; + font-size: 100%; +} + +iframe { + margin: 1%; +} + +img { + border: none; +} + +img.icon { + float: left; + margin: 5px; +} + +img.map { + margin: 0px; + padding: 0px; +} + +kbd { + font-weight: bold; +} + +li { + margin-left: 40px; + margin-right: 40px; +} + +li table { + margin: 1em 0px; + width: 100%; +} + +.list li { + padding-bottom: 1.2em; +} + +.list p { + margin: 0 0 0 0; +} + +p { + margin: 0.75em 0px; + text-align: left; +} + +p+h3, pre+h3, ul+h3, ol+h3, dl+h3 { + margin-top: 2em; +} + +p.code { + color: black; + background: #f5f5f5; + border: 1pt dashed #2f6fab; + font-family: monospace; + font-size: 8pt; + white-space: pre; + margin: 1.33em 40px; + padding: .66em 1.33em; +} + +p.crt { + white-space: nowrap; + border-style: ridge; + border-width: 7px; + border-color: blue; + color: white; + background: #000044; + font-family: monospace; + font-size: 9pt; + margin: 1.33em 40px; + padding: .66em 1.33em; +} + +p.crtsnip { + text-align: center; + margin-left: auto; + margin-right: auto; + margin-top: 1.33em; + margin-bottom: 1.33em; + width: 50%; + white-space: nowrap; + border-top-style: ridge; + border-bottom-style: ridge; + border-top-width: 7px; + border-bottom-width: 7px; + border-color: blue; + color: white; + font-weight: bolder; + background: #000044; + font-family: monospace; + padding: .66em 1.33em; +} + +p.crtsnip em.arg { + color: #ffbbbb; /* brighter red; */ +} + +p.info { + margin: 0.75em 0px; + text-align: left; +} + +p.image img { + border: none; +} + +p.image { + text-align: center; +} + +p.image, p.image-slices { + text-align: center; +} + +p.image-slices img { + display: block; + margin: 0px; + padding: 0px; + border: none; + margin-left: auto; + margin-right: auto; +} + +p.navigation-index { + padding: 10px; + margin-top: 1px; + margin-bottom: 0px; + margin-left: 0; + margin-right: 0; + background: white; + text-align: center; + font-size: 80%; + white-space: normal; +} + +p.options { + padding: 0 3em; +} + +p.pre { + white-space: pre; + color: black; + background: #d2ddf6; + font-family: monospace; + padding: 0em; + margin: 0em; +} + +p.text { + color: black; + background: #d2ddf6; + font-family: monospace; + margin: 1.33em 40px; + padding: 1.33em; +} + +p.warn { + padding: .66em 3em; + background: #ffeedd; +} + +pre { + padding-top: 0pt; + padding-bottom: 0pt; + margin: 0pt; + font-size: 90%; +} + +pre.code { + color: black; + background: #f5f5f5; + border: solid 2px black; + font-family: monospace; + white-space: pre; + margin: 1.33em 0px; + margin-left: 40px; + margin-right: 40px; + padding: 1.33em; + font-size: 90%; +} + +pre.crt { + padding: 0; + margin: 0; + } + +pre.debug { + color: black; + background: #d2ddf6; + border: solid 2px black; + font-family: monospace; + white-space: pre; + margin: 1.33em 0px; + margin-left: 40px; + margin-right: 40px; + padding: 1.33em; +} + +pre.text { + color: black; + background: #ddddff; + font-family: monospace; + white-space: pre; + margin: 1.33em 0px; + margin-left: 40px; + margin-right: 40px; + padding: 1.33em; +} + +span.bull { + color: #d0d0d0; +} + +span.crtin { + color: white; + font-weight: bolder; + padding: .67em 1.33em .67em 0; +} + +span.crtout, .crtprompt { + color: #ffff77; + padding-top: .67em; + padding-bottom: .67em; +} + +span.crtout { + padding-left: 1.33em; + padding-right: 1.33em; + display: block; +} + +span.crtprompt { + padding-right: 0; + text-indent:-1.33em; +} + +span.different { + font-weight: bold; + background-color: transparent; + color: blue; +} + +span.filter { + font-weight: bold; +} + +span.info-east { + float: right; +} + +span.info-west { + float: left; +} + +span.option { + white-space: normal; +} + +span.path { + font-weight: bold; +} + +span.size-mod-title { } + +table.doc { + padding: 1.33em; + border-spacing: 0px; + width: 91%; + text-align: left; + margin: 1.33em 40px; + border-style: solid; + border-color: #d0d0d0; + border-width: 1px; +} + +table.doc td,th { + padding: .3em .5em; +} + +td { + text-align: left; + padding: .5em; +} + +td.map { + margin: 0px; + padding: 0px; +} + +th { + background-color: #d2ddf6; + color: black + text-align: left; + padding: .5em; +} + +th.size-alt, tr.size-alt, td.size-alt { + background-color: #f0f0f0; +} + +th.size-norm, tr.size-norm, td.size-norm { + background-color: #f7f7f7; +} + +#footer { + margin-left:0px; +} + +#footer-west { + float: left; + padding: 20px; +} + +#footer-east { + float: right; + padding: 20px; +} + +#header { + background-color: #ADD8E6; /* lightblue; */ + position: fixed; + top: 0px; + left: 0px; + width: 100%; + height: 4em; + border-bottom: solid 1px; + z-index: 10; +} + +#linkbar, #navigation-bar { + clear: both; + background: #f5f5f5; + color: black; + border: solid #d0d0d0; + border-width: 1px 0px 1px 0px; + padding: 5px 5px 5px 10px; + font-weight: bold; + text-align: center; + margin-left:0px; +} + +#linkbar-east { + float: right; +} + +#linkbar-center { + padding: 0px 80px; +} + +#linkbar-west { + float: left; +} + +#margin { + padding: 10px; + vertical-align: top; + white-space: nowrap; + left: 0px; +} + +#menu { + background: #f5f5f5; + color: black; + border-style: solid; + border-color: #d0d0d0; + border-width: 0px 1px 0px 0px; + padding: 10px; + font-weight: bold; + vertical-align: top; + white-space: nowrap; + top: 100px; + left: 0px; + height: 100%; +} + +#main { + margin-left: 0px; + padding-right: 0px; + padding-left: 10px; +} + +#menu a { + display: block; +} + +#menu a.sponsor { + display: block; + padding-left: 10px; + font-size: 76.6666%; +} + +#menu a.sub { + display: block; + padding-left: 10px; + font-size: 90%; +} + +#menu p { + display: none; +} + +#menu span { + display: none; +} + +#menu-button { + background-color: transparent; + padding: 0; + position: absolute; + top: 100px; + left: 0px; + cursor: w-resize; +} + +#notice { + color:#b90006; +} + +#titlebar { + background-image: url("../images/background.jpg"); + background-repeat: repeat-x; + height: 118px; +} + +#table { + text-align: left; + margin: 1.33em 0px; + margin-left: 40px; + margin-right: 40px; + border-style: solid; + border-color: #d0d0d0; + border-width: 1px; +} + +#titlebar-east { + float: right; +} + +#titlebar-west { + float: left; +} +*/ + +#www-imagemagick-org { + background: #f5f5f5; +} + +@media print { + #titlebar, #navigation-bar, #linkbar, #menu, #margin { display: none } + + #main { + margin-left: 0px; + padding-right: 0px; + padding-left: 0px; + } +} + +.size-alt { background-color: #f5f5f5; } + +.size-accent { background-color: #f5f5f5; } + +.size-mod-body { font-size: 93.666%; } + +.size-mod-foot { } + +.size-mod-head { + text-align: left; + font-weight: bold; +} + +.size-mod-title { + font-size: 1.3em; + font-weight: bold; +} + +.viewport +{ + color: black; + background: #f5f5f5; + border: solid 2px black; + font-family: monospace; + font-size: 83.333%; + white-space: pre; + margin: 1.33em 40px; + padding: 1.33em; + height: 480px; + overflow: auto; +} diff --git a/share/doc/ImageMagick-7/www/Magick++/montage-sample-framed.jpg b/share/doc/ImageMagick-7/www/Magick++/montage-sample-framed.jpg new file mode 100644 index 0000000..56197cc Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/montage-sample-framed.jpg differ diff --git a/share/doc/ImageMagick-7/www/Magick++/right_triangle.png b/share/doc/ImageMagick-7/www/Magick++/right_triangle.png new file mode 100644 index 0000000..8deb402 Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/right_triangle.png differ diff --git a/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-framed.fig b/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-framed.fig new file mode 100644 index 0000000..f447acb --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-framed.fig @@ -0,0 +1,40 @@ +#FIG 3.2 +Portrait +Center +Inches +Letter +100.00 +Single +0 +1200 2 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4800 1200 4350 2250 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 5775 1200 5325 2025 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 6525 4275 5250 4575 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 3825 1200 3600 1875 +2 5 0 1 -1 -1 2 0 -1 0.000 0 0 -1 0 0 5 + 0 thumbnail-sample-framed.jpg + 2700 1800 6300 1800 6300 5385 2700 5385 2700 1800 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 6525 3075 6150 3150 +2 2 0 1 0 7 10 0 -1 0.000 0 0 -1 0 0 5 + 1650 600 7425 600 7425 6300 1650 6300 1650 600 +4 1 -1 0 0 16 10 0.0000 4 120 480 5775 975 Thumb\001 +4 1 -1 0 0 16 10 0.0000 4 105 435 5775 1155 Frame\001 +4 1 -1 0 0 16 14 0.0000 4 165 2160 4500 5700 FRAMED THUMBNAIL\001 +4 1 -1 0 0 16 10 0.0000 4 120 480 3825 975 Thumb\001 +4 1 -1 0 0 16 10 0.0000 4 120 465 3825 1155 Border\001 +4 1 -1 0 0 16 10 0.0000 4 135 435 4800 1140 Image\001 +4 1 -1 0 0 16 10 0.0000 4 120 480 4800 975 Thumb\001 +4 1 -1 0 0 16 10 0.0000 4 120 480 6900 3000 Thumb\001 +4 1 -1 0 0 16 10 0.0000 4 120 570 6900 3180 Shadow\001 +4 1 -1 0 0 16 10 0.0000 4 120 480 6900 4200 Thumb\001 +4 1 -1 0 0 16 10 0.0000 4 120 390 6900 4380 Label\001 diff --git a/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-framed.jpg b/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-framed.jpg new file mode 100644 index 0000000..a27e719 Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-framed.jpg differ diff --git a/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-plain.fig b/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-plain.fig new file mode 100644 index 0000000..95bff11 --- /dev/null +++ b/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-plain.fig @@ -0,0 +1,35 @@ +#FIG 3.2 +Portrait +Center +Inches +Letter +100.00 +Single +-3 +1200 2 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 3825 1200 3600 1875 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4950 1200 4575 2100 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 6000 3900 4950 4350 +2 5 0 1 -1 -1 2 0 -1 0.000 0 0 -1 0 0 5 + 0 thumbnail-sample-plain.jpg + 2700 1800 5850 1800 5850 4935 2700 4935 2700 1800 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 6000 3075 5250 3375 +2 2 0 1 0 7 10 0 -1 0.000 0 0 -1 0 0 5 + 1800 600 6900 600 6900 6000 1800 6000 1800 600 +4 1 -1 0 0 16 14 0.0000 4 165 1875 4275 5250 PLAIN THUMBNAIL\001 +4 1 -1 0 0 16 10 0.0000 4 120 480 3825 975 Thumb\001 +4 1 -1 0 0 16 10 0.0000 4 120 465 3825 1155 Border\001 +4 1 -1 0 0 16 10 0.0000 4 135 435 4950 1140 Image\001 +4 1 -1 0 0 16 10 0.0000 4 120 480 4950 975 Thumb\001 +4 1 -1 0 0 16 10 0.0000 4 120 570 6300 3180 Shadow\001 +4 1 -1 0 0 16 10 0.0000 4 120 480 6300 3000 Thumb\001 +4 1 -1 0 0 16 10 0.0000 4 120 390 6300 4005 Label\001 +4 1 -1 0 0 16 10 0.0000 4 120 480 6300 3825 Thumb\001 diff --git a/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-plain.jpg b/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-plain.jpg new file mode 100644 index 0000000..011949a Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/thumbnail-anatomy-plain.jpg differ diff --git a/share/doc/ImageMagick-7/www/Magick++/thumbnail-sample-framed.jpg b/share/doc/ImageMagick-7/www/Magick++/thumbnail-sample-framed.jpg new file mode 100644 index 0000000..dcab0a7 Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/thumbnail-sample-framed.jpg differ diff --git a/share/doc/ImageMagick-7/www/Magick++/thumbnail-sample-plain.jpg b/share/doc/ImageMagick-7/www/Magick++/thumbnail-sample-plain.jpg new file mode 100644 index 0000000..3ce49c8 Binary files /dev/null and b/share/doc/ImageMagick-7/www/Magick++/thumbnail-sample-plain.jpg differ diff --git a/share/doc/ImageMagick-7/www/advanced-unix-installation.html b/share/doc/ImageMagick-7/www/advanced-unix-installation.html new file mode 100644 index 0000000..12a8385 --- /dev/null +++ b/share/doc/ImageMagick-7/www/advanced-unix-installation.html @@ -0,0 +1,642 @@ + + + + + + + + + + Advanced Unix Source Installation @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

Download & Unpack • Configure • Build • Install • Linux-specific Build Instructions • Mac OS X-specific Build Instructions • MinGW-specific Build Instructions • Dealing with Unexpected Problems

+ +

It's possible you don't want to concern yourself with advanced installation under Unix or Linux systems. If so, you also have the option of installing a pre-compiled binary release or if you still want to install from source without all the fuss see the simple Install From Source instructions. However, if you want to customize the configuration and installation of ImageMagick under Unix or Linux systems, lets begin.

+ +

Download & Unpack

+ +

ImageMagick builds on a variety of Unix and Unix-like operating systems including Linux, Solaris, FreeBSD, Mac OS X, and others. A compiler is required and fortunately almost all modern Unix systems have one. Download ImageMagick.tar.gz from ftp.imagemagick.org or its mirrors and verify the distribution against its message digest.

+ +

Unpack the distribution it with this command:

+ +
tar xvzf ImageMagick.tar.gz
+
+ +

Now that you have the ImageMagick Unix/Linux source distribution unpacked, let's configure it.

+ + +

Configure

+ +

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

+ +
ImageMagick is configured as follows. Please verify that this configuration
+matches your expectations.
+
+Host system type: x86_64-unknown-linux-gnu
+Build system type: x86_64-unknown-linux-gnu
+
+                  Option                     Value
+-------------------------------------------------------------------------------
+Shared libraries  --enable-shared=yes		yes
+Static libraries  --enable-static=yes		yes
+Module support    --with-modules=yes		yes
+GNU ld            --with-gnu-ld=yes		yes
+Quantum depth     --with-quantum-depth=16	16
+High Dynamic Range Imagery
+                  --enable-hdri=no		no
+
+Delegate Configuration:
+BZLIB             --with-bzlib=yes		yes
+Autotrace         --with-autotrace=yes	yes
+DJVU              --with-djvu=yes		no
+DPS               --with-dps=yes		no
+FlashPIX          --with-fpx=yes		no
+FontConfig        --with-fontconfig=yes	yes
+FreeType          --with-freetype=yes		yes
+GhostPCL          None			pcl6 (unknown)
+GhostXPS          None			gxps (unknown)
+Ghostscript       None			gs (8.63)
+result_ghostscript_font_dir='none'
+Ghostscript fonts --with-gs-font-dir=default
+Ghostscript lib   --with-gslib=yes		no (failed tests)
+Graphviz          --with-gvc=yes		yes
+JBIG              --with-jbig=		no
+JPEG v1           --with-jpeg=yes		yes
+JPEG-2000         --with-jp2=yes		yes
+LCMS              --with-lcms=yes		yes
+LQR               --with-lqr=yes		no
+Magick++          --with-magick-plus-plus=yes	yes
+OpenEXR           --with-openexr=yes		yes
+PERL              --with-perl=yes		/usr/bin/perl
+PNG               --with-png=yes		yes
+RSVG              --with-rsvg=yes		yes
+TIFF              --with-tiff=yes		yes
+result_windows_font_dir='none'
+Windows fonts     --with-windows-font-dir=
+WMF               --with-wmf=yes		yes
+X11               --with-x=			yes
+XML               --with-xml=yes		yes
+ZLIB              --with-zlib=yes		yes
+
+X11 Configuration:
+      X_CFLAGS        =
+      X_PRE_LIBS      = -lSM -lICE
+      X_LIBS          =
+      X_EXTRA_LIBS    =
+
+Options used to compile and link:
+  PREFIX          = /usr/local
+  EXEC-PREFIX     = /usr/local
+  VERSION         = 6.4.8
+  CC              = gcc -std=gnu99
+  CFLAGS          = -fopenmp -g -O2 -Wall -W -pthread
+  MAGICK_CFLAGS   = -fopenmp -g -O2 -Wall -W -pthread
+  CPPFLAGS        = -I/usr/local/include/ImageMagick
+  PCFLAGS         = -fopenmp
+  DEFS            = -DHAVE_CONFIG_H
+  LDFLAGS         = -lfreetype
+  MAGICK_LDFLAGS  = -L/usr/local/lib -lfreetype
+  LIBS            = -lMagickCore-Q16 -llcms -ltiff -lfreetype -ljpeg -lfontconfig -lXext
+                    -lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lgomp -lpthread -lltdl
+  CXX             = g++
+  CXXFLAGS        = -g -O2 -Wall -W -pthread
+
+ +

You can influence choice of compiler, compilation flags, or libraries of the configure script by setting initial values for variables in the configure command line. These include, among others:

+ +
+
CC
+
Name of C compiler (e.g. cc -Xa) to use.
+
CXX
+
Name of C++ compiler to use (e.g. CC).
+
CFLAGS
+
Compiler flags (e.g. -g -O2) to compile C code.
+
CXXFLAGS
+
Compiler flags (e.g. -g -O2) to compile C++ code.
+
CPPFLAGS
+
Include paths (.e.g. -I/usr/local) to look for header files.
+
LDFLAGS
+
Library paths (.e.g. -L/usr/local) to look for libraries systems that support the notion of a library run-path may require an additional argument in order to find shared libraries at run time. For example, the Solaris linker requires an argument of the form -R/path. Some Linux systems will work with -rpath /usr/local/lib, while some other Linux systems who's gcc does not pass -rpath to the linker, require an argument of the form -Wl,-rpath,/usr/local/lib.
+
LIBS
+
Extra libraries (.e.g. -l/usr/local/lib) required to link.
+
+ +

Here is an example of setting configure variables from the command line:

+ +
configure CC=c99 CFLAGS=-O2 LDFLAGS='-L/usr/local/lib -R/usr/local/lib' LIBS=-lposix
+
+ +

Any variable (e.g. CPPFLAGS or LDFLAGS) which requires a directory path must specify an absolute path rather than a relative path.

+ +

Configure can usually find the X include and library files automagically, but if it doesn't, you can use the --x-includes=path and --x-libraries=path options to specify their locations.

+ +

The configure script provides a number of ImageMagick specific options. When disabling an option --disable-something is equivalent to specifying --enable-something=no and --without-something is equivalent to --with-something=no. The configure options are as follows (execute configure --help to see all options).

+ +

ImageMagick options represent either features to be enabled, disabled, or packages to be included in the build. When a feature is enabled (via --enable-something), it enables code already present in ImageMagick. When a package is enabled (via --with-something), the configure script will search for it, and if is properly installed and ready to use (headers and built libraries are found by compiler) it will be included in the build. The configure script is delivered with all features disabled and all packages enabled. In general, the only reason to disable a package is if a package exists but it is unsuitable for the build (perhaps an old version or not compiled with the right compilation flags).

+ +

Here are the optional features you can configure:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
--enable-sharedbuild the shared libraries and support for loading coder and process modules. Shared libraries are preferred because they allow programs to share common code, making the individual programs much smaller. In addition shared libraries are required in order for PerlMagick to be dynamically loaded by an installed PERL (otherwise an additional PERL (PerlMagick) must be installed. +

+ ImageMagick built with delegates (see MAGICK PLUG-INS below) can pose additional challenges. If ImageMagick is built using static libraries (the default without --enable-shared) then delegate libraries may be built as either static libraries or shared libraries. However, if ImageMagick is built using shared libraries, then all delegate libraries must also be built as shared libraries. Static libraries usually have the extension .a, while shared libraries typically have extensions like .so, .sa, or .dll. Code in shared libraries normally must compiled using a special compiler option to produce Position Independent Code (PIC). The only time this not necessary is if the platform compiles code as PIC by default. +

+ PIC compilation flags differ from vendor to vendor (gcc's is -fPIC). However, you must compile all shared library source with the same flag (for gcc use -fPIC rather than -fpic). While static libraries are normally created using an archive tool like ar, shared libraries are built using special linker or compiler options (e.g. -shared for gcc). +

+ If --enable-shared is not specified, a new PERL interpreter (PerlMagick) is built which is statically linked against the PerlMagick extension. This new interpreter is installed into the same directory as the ImageMagick utilities. If --enable-shared is specified, the PerlMagick extension is built as a dynamically loadable object which is loaded into your current PERL interpreter at run-time. Use of dynamically-loaded extensions is preferable over statically linked extensions so use --enable-shared if possible (note that all libraries used with ImageMagick must be shared libraries!).
--disable-staticstatic archive libraries (with extension .a) are not built. If you are building shared libraries, there is little value to building static libraries. Reasons to build static libraries include: 1) they can be easier to debug; 2) clients do not have external dependencies (i.e. libMagick.so); 3) building PIC versions of the delegate libraries may take additional expertise and effort; 4) you are unable to build shared libraries.
--disable-installeddisable building an installed ImageMagick (default enabled). +

+ By default the ImageMagick build is configured to formally install into a directory tree. This the most secure and reliable way to install ImageMagick. Use this option to configure ImageMagick so that it doesn't use hard-coded paths and locates support files by computing an offset path from the executable (or from the location specified by the MAGICK_HOME environment variable. The uninstalled configuration is ideal for binary distributions which are expected to extract and run in any location.
--enable-ccmallocenable 'ccmalloc' memory debug support (default disabled).
--enable-profenable 'prof' profiling support (default disabled).
--enable-gprofenable 'gprof' profiling support (default disabled).
--enable-gcovenable 'gcov' profiling support (default disabled).
--disable-openmpdisable OpenMP (default enabled). +

+ Certain ImageMagick algorithms, for example convolution, can achieve a significant speed-up with the assistance of the OpenMP API when running on modern dual and quad-core processors.
--disable-largefiledisable support for large (64 bit) file offsets. +

+ By default, ImageMagick is compiled with support for large files (> 2GB on a 32-bit CPU) if the operating system supports large files. Some applications which use the ImageMagick library may also require support for large files. By disabling support for large files via --disable-largefile, dependent applications do not require special compilation options for large files in order to use the library.
+ +

Here are the optional packages you can configure:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
--with-quantum-depthnumber of bits in a pixel quantum (default 16). +

+ Use this option to specify the number of bits to use per pixel quantum (the size of the red, green, blue, and alpha pixel components). For example, --with-quantum-depth=8 builds ImageMagick using 8-bit quantums. Most computer display adapters use 8-bit quantums. Currently supported arguments are 8, 16, or 32. We recommend the default of 16 because some image formats support 16 bits-per-pixel. However, this option is important in determining the overall run-time performance of ImageMagick. +

+ The number of bits in a quantum determines how many values it may contain. Each quantum level supports 256 times as many values as the previous level. The following table shows the range available for various quantum sizes. +

+
Quantum Depth     Valid Range (Decimal)   Valid Range (Hex)
+    8             0-255                   00-FF
+   16             0-65535                 0000-FFFF
+   32             0-4294967295            00000000-FFFFFFFF
+
+

+ Larger pixel quantums can cause ImageMagick to run more slowly and to require more memory. For example, using sixteen-bit pixel quantums can cause ImageMagick to run 15% to 50% slower (and take twice as much memory) than when it is built to support eight-bit pixel quantums. +

+ The amount of virtual memory consumed by an image can be computed by the equation (5 * Quantum Depth * Rows * Columns) / 8. This an important consideration when resources are limited, particularly since processing an image may require several images to be in memory at one time. The following table shows memory consumption values for a 1024x768 image: +

+
Quantum Depth   Virtual Memory
+     8               3MB
+    16               8MB
+    32              15MB
+
--enable-hdriaccurately represent the wide range of intensity levels.
--enable-osx-universal-binarybuild a universal binary on OS X.
--without-modulesdisable support for dynamically loadable modules. +

+ Image coders and process modules are built as loadable modules which are installed under the directory [prefix]/lib/ImageMagick-X.X.X/modules-QN (where 'N' equals 8, 16, or 32 depending on the quantum depth) in the subdirectories coders and filters respectively. The modules build option is only available in conjunction with --enable-shared. If --enable-shared is not also specified, support for building modules is disabled. Note that if --enable-shared and --disable-modules are specified, the module loader is active (allowing extending an installed ImageMagick by simply copying a module into place) but ImageMagick itself is not built using modules.
--with-cacheset pixel cache threshold (defaults to available memory). +

+ Specify a different image pixel cache threshold with this option. This sets the maximum amount of heap memory that ImageMagick is allowed to consume before switching to using memory-mapped temporary files to store raw pixel data.
--without-threadsdisable threads support. +

+ By default, the ImageMagick library is compiled with multi-thread support. If this undesirable, specify --without-threads.
--with-frozenpathsenable frozen delegate paths. +

+ Normally, external program names are substituted into the delegates.xml configuration file without full paths. Specify this option to enable saving full paths to programs using locations determined by configure. This useful for environments where programs are stored under multiple paths, and users may use different PATH settings than the person who builds ImageMagick.
--without-magick-plus-plusdisable build/install of Magick++. +

+ Disable building Magick++, the C++ application programming interface to ImageMagick. A suitable C++ compiler is required in order to build Magick++. Specify the CXX configure variable to select the C++ compiler to use (default g++), and CXXFLAGS to select the desired compiler optimization and debug flags (default -g -O2). Antique C++ compilers will normally be rejected by configure tests so specifying this option should only be necessary if Magick++ fails to compile.
--without-perldisable build/install of PerlMagick, or +

+ By default, PerlMagick is conveniently compiled and installed as part of ImageMagick's normal configure, make, sudo make install process. When --without-perl is specified, you must first install ImageMagick, change to the PerlMagick subdirectory, build, and finally install PerlMagick. Note, PerlMagick is configured even if --without-perl is specified. If the argument --with-perl=/path/to/perl is supplied, /../path/to/perl is be taken as the PERL interpreter to use. This important in case the perl executable in your PATH is not PERL5, or is not the PERL you want to use.
--with-perl=PERLuse specified Perl binary to configure PerlMagick.
--with-perl-options=OPTIONSoptions to pass on command-line when generating PerlMagick's Makefile from Makefile.PL. +

+ The PerlMagick module is normally installed using the Perl interpreter's installation PREFIX, rather than ImageMagick's. If ImageMagick's installation prefix is not the same as PERL's PREFIX, then you may find that PerlMagick's sudo make install step tries to install into a directory tree that you don't have write permissions to. This common when PERL is delivered with the operating system or on Internet Service Provider (ISP) web servers. If you want PerlMagick to install elsewhere, then provide a PREFIX option to PERL's configuration step via "--with-perl-options=PREFIX=/some/place". Other options accepted by MakeMaker are 'LIB', 'LIBPERL_A', 'LINKTYPE', and 'OPTIMIZE'. See the ExtUtils::MakeMaker(3) manual page for more information on configuring PERL extensions.
--without-bzlibdisable BZLIB support.
--without-dpsdisable Display Postscript support.
--with-fpxenable FlashPIX support.
--without-freetypedisable TrueType support.
--with-gslibenable Ghostscript library support.
--without-jbigdisable JBIG support.
--without-jpegdisable JPEG support.
--without-jp2disable JPEG v2 support.
--without-lcmsdisable LCMS support.
--without-lzmadisable LZMA support.
--without-pngdisable PNG support.
--without-tiffdisable TIFF support.
--without-wmfdisable WMF support.
--with-fontpathprepend to default font search path.
--with-gs-font-dirdirectory containing Ghostscript fonts. +

+ Specify the directory containing the Ghostscript Postscript Type 1 font files (e.g. n022003l.pfb) so that they can be rendered using the FreeType library. If the font files are installed using the default Ghostscript installation paths (${prefix}/share/ghostwww/fonts), they should be discovered automagically by configure and specifying this option is not necessary. Specify this option if the Ghostscript fonts fail to be located automagically, or the location needs to be overridden.
--with-windows-font-dirdirectory containing MS-Windows fonts. +

+ Specify the directory containing MS-Windows-compatible fonts. This not necessary when ImageMagick is running under MS-Windows.
--without-xmldisable XML support.
--without-zlibdisable ZLIB support.
--without-xdon't use the X Window System. +

+ By default, ImageMagick uses the X11 delegate libraries if they are available. When --without-x is specified, use of X11 is disabled. The display, animate, and import sub-commands are not included. The remaining sub-commands have reduced functionality such as no access to X11 fonts (consider using Postscript or TrueType fonts instead).
--with-share-path=DIRAlternate path to share directory (default share/ImageMagick).
--with-libstdc=DIRuse libstdc++ in DIR (for GNU C++).
+ +

While configure is designed to ease installation of ImageMagick, it often discovers problems that would otherwise be encountered later when compiling ImageMagick. The configure script tests for headers and libraries by executing the compiler (CC) with the specified compilation flags (CFLAGS), pre-processor flags (CPPFLAGS), and linker flags (LDFLAGS). Any errors are logged to the file config.log. If configure fails to discover a header or library please review this log file to determine why, however, please be aware that *errors in the config.log are normal* because configure works by trying something and seeing if it fails. An error in config.log is only a problem if the test should have passed on your system.

+ +

Common causes of configure failures are: 1) a delegate header is not in the header include path (CPPFLAGS -I option); 2) a delegate library is not in the linker search/run path (LDFLAGS -L/-R option); 3) a delegate library is missing a function (old version?); or 4) compilation environment is faulty.

+

If all reasonable corrective actions have been tried and the problem appears be due to a flaw in the configure script, please send a bug report to the ImageMagick Defect Support Forum. All bug reports should contain the operating system type (as reported by uname -a) and the compiler/compiler-version. A copy of the configure script output and/or the relevant portion of config.log file may be valuable in order to find the problem. If you post portions of config.log, please also send a script of the configure output and a description of what you expected to see (and why) so the failure you are observing can be identified and resolved.

+ +

ImageMagick is now configured and ready to build

+ +

Build

+ +

Once ImageMagick is configured, these standard build targets are available from the generated make files:

+ +
+
make
+
Build ImageMagick.
+
sudo make install
+
Install ImageMagick.
+
make check
+
Run tests using the installed ImageMagick (sudo make install must be done first). Ghostscript and Ghostscript fonts are a prerequisite, otherwise certain unit tests that render text and the EPS, PS, and PDF formats will likely fail.
+
make clean
+
Remove everything in the build directory created by make.
+
make distclean
+
remove everything in the build directory created by configure and make. This useful if you want to start over from scratch.
+
make uninstall
+
Remove all files from the system which are (or would be) installed by sudo make install using the current configuration. Note that this target is imperfect for PerlMagick since Perl no longer supports an uninstall target.
+
+ +

In most cases you will simply wand to compile ImageMagick with this command:

+ +
make
+
+ +

Once built, you can optionally install ImageMagick on your system as discussed below.

+ +

Install

+ +

Now that ImageMagick is configured and built, type:

+ +
make install
+
+ +

to install it.

+ +

By default, ImageMagick is installs binaries in /../usr/local/bin, libraries in /../usr/local/lib, header files in /../usr/local/include and documentation in /../usr/local/share. You can specify an alternative installation prefix other than /../usr/local by giving configure the option --prefix=PATH. This valuable in case you don't have privileges to install under the default paths or if you want to install in the system directories instead.

+ +

To confirm your installation of the ImageMagick distribution was successful, ensure that the installation directory is in your executable search path and type:

+ +
convert logo: logo.gif
+identify logo.gif
+
+ +

The ImageMagick logo is displayed on your X11 display.

+ +

To verify the ImageMagick build configuration, type:

+ +
identify -list configure
+
+ +

To list which image formats are supported , type:

+ +
identify -list format
+
+ +

For a more comprehensive test, you run the ImageMagick test suite by typing:

+ +
make check
+
+ +

Ghostscript is a prerequisite, otherwise the EPS, PS, and PDF tests will fail. Note that due to differences between the developer's environment and your own it is possible that a few tests may fail even though the results are ok. Differences between the developer's environment environment and your own may include the compiler, the CPU type, and the library versions used. The ImageMagick developers use the current release of all dependent libraries.

+ +

Linux-specific Build instructions

+ +

Download ImageMagick.src.rpm from ftp.imagemagick.org or its mirrors and verify the distribution against its message digest.

+ +

Build ImageMagick with this command:

+ +
rpmbuild --rebuild ImageMagick.src.rpm
+
+ +

After the build you, locate the RPMS folder and install the ImageMagick binary RPM distribution:

+ +
$ rpm -ivh ImageMagick-7.0.7-?.*.rpm
+

Mac OS X-specific Build instructions

+ +

Perform these steps as an administrator or with the sudo command:

+ +

Install MacPorts. Download and install MacPorts and type the following commands:

+ +
sudo port -v install freetype +bytecode
+sudo port -v install librsvg
+sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
+
+ +

This installs many of the delegate libraries ImageMagick will utilize such as JPEG and FreeType.

+ + +

Install the latest Xcode from Apple.

+

Use the port command to install any delegate libraries you require, for example:

+ +
sudo port install jpeg
+
+ +

Now lets build ImageMagick:

+ +

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-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/ \
+  --without-perl"
+
+

Build ImageMagick:

+
make
+
+

Install ImageMagick:

+
sudo make install
+
+

To verify your install, type

+ +
/opt/local/bin/identify -list font
+
+ +

to list all the fonts ImageMagick knows about.

+

To test the ImageMagick GUI, in a new shell, type:

+ +
display -display :0
+
+ +

MinGW-specific Build instructions

+ +

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

+ +

Build Problems

+

If the build complains about missing dependencies (e.g. .deps/source.PLO), add --disable-dependency-tracking to your configure command line.

+ +

Some systems may fail to link at build time due to unresolved symbols. Try adding the LDFLAGS to the configure command line:

+ +
configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
+
+ +

Dynamic Linker Run-time Bindings

+

On some systems, ImageMagick may not find its shared library, libMagick.so. Try running the ldconfig with the library path:

+ +
/sbin/ldconfig /usr/local/lib
+
+ +

Solaris and Linux systems have the ldd command which is useful to track which libraries ImageMagick depends on:

+ +
ldd `which convert`
+
+ +

Delegate Libraries

+

On occasion you may receive these warnings:

+
no decode delegate for this image format
+no encode delegate for this image format
+
+

This exception indicates that an external delegate library or its headers were not available when ImageMagick was built. To add support for the image format, download and install the requisite delegate library and its header files and reconfigure, rebuild, and reinstall ImageMagick. As an example, lets add support for the JPEG image format. First we install the JPEG RPMS:

+ +
yum install libjpeg libjpeg-devel
+
+ +

Now reconfigure, rebuild, and reinstall ImageMagick. To verify JPEG is now properly supported within ImageMagick, use this command:

+ +
identify -list format
+
+ +

You should see a mode of rw- associated with the JPEG tag. This mode means the image can be read or written and can only support one image per image file.

+ +

PerlMagick

+

If PerlMagick fails to link with a message similar to libperl.a is not found, rerun configure with the --enable-shared or --enable-shared --with-modules options.

+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/advanced-windows-installation.html b/share/doc/ImageMagick-7/www/advanced-windows-installation.html new file mode 100644 index 0000000..45b4140 --- /dev/null +++ b/share/doc/ImageMagick-7/www/advanced-windows-installation.html @@ -0,0 +1,415 @@ + + + + + + + + + + Advanced Windows Source Installation @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

Download & Unpack • Configure • Build • Install • Create a Self-installing Binary Distribution • Dealing with Unexpected Problems • Building Your Custom Project

+ +

It's possible you don't want to concern yourself with advanced installation under Windows. If so, you also have the option of installing a self-installing binary release or if you still want to install from source without all the fuss see the simple Install From Source instructions. However, if you want to customize the configuration and installation of ImageMagick under Windows, lets begin.

+ +

Download & Unpack

+ +

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 ftp.imagemagick.org or its mirrors and verify the distribution against its message digest.

+ +

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

+ +
unzip ImageMagick-windows.zip
+
+ +

Now that you have the ImageMagick Windows source distribution unpacked, let's configure it.

+ + +

Configure

+ +

These instructions are specific to building ImageMagick with the Visual Studio under Windows XP, Win2K, or Windows 98. ImageMagick does not include any workspace (DSW) or project files (DSP) except for those included with third party libraries. Instead, there is a configure program that must be built and run which creates the Visual Studio workspaces for ImageMagick. The Visual Studio system provides four different types of runtime environments that must match across all application, library, and dynamic-library (DLL) code that is built. The configure program creates a set of build files that are consistent for a specific runtime selection listed here:

+ +
    +
  1. Dynamic Multi-threaded DLL runtimes (VisualDynamicMT).
  2. +
  3. Static Single-threaded runtimes (VisualStaticST).
  4. +
  5. Static Multi-threaded runtimes (VisualStaticMT).
  6. +
  7. Static Multi-threaded DLL runtimes (VisualStaticMTDLL).
  8. +
+ +

In addition to these runtimes, the VisualMagick build environment allows you to select whether to include the X11 libraries in the build or not. X11 DLLs and headers are provided with the VisualMagick build environment. Most Windows users are probably not interested in using X11, so you might prefer to build without X11 support. Since the animate, display, and import program depends on the X11 delegate libraries, these programs will no work if you choose not to include X11 support.

+ +

This leads to five different possible build options. The default binary distribution is built using the Dynamic Multi-threaded DLL (VisualDynamicMT) option with the X11 libraries included. This results in an X11 compatible build using all DLL's for everything and multi-threaded support (the only option for DLL's).

+ +

To create a workspace for your requirements, simply go to the VisualMagick\configure folder and open the configure.dsw workspace (for Visual Studio 6) or configure.sln (for Visual Studio 7 or 8). Set the build configuration to Release.

+ +

Build and execute the configure program and follow the on-screen instructions. You should not change any of the defaults unless you have a specific reason to do so.

+ +

The configure program has a button entitled:

+ +

+ Edit "magick_config.h" +

+ +

Click on this button to bring up magick-config.h in Windows Notepad. Review and optionally change any preprocessor defines in ImageMagick's magick_config.h file to suit your needs. This file is copied to magick\magick_config.h. You may safely open magick\magick_config.h, modify it, and recompile without re-running the configure program. In fact, using Notepad to edit the copied file may be preferable since it preserves the original magick_config.h file.

+ +

Key user defines in magick_config.h include:

+ +
+ + + + + + + + + + + + + +
MAGICKCORE_QUANTUM_DEPTH (default 16)Specify the depth of the pixel component depth (8, 16, or 32). A value of 8 uses half the memory than 16 and may run 30% faster, but provides 256 times less color resolution than a value of 16. We recommend a quantum depth of 16 because 16-bit images are becoming more prevalent on the Internet.
MAGICKCORE_INSTALLED_SUPPORT (default undefined)Define to build a ImageMagick which uses registry settings or embedded paths to locate installed components (coder modules and configuration files). The default is to look for all files in the same directory as the executable. You will wand to define this value if you intend on installing ImageMagick on your system.
ProvideDllMain (default defined)Define to include a DllMain() function ensures that the ImageMagick DLL is properly initialized without participation from dependent applications. This avoids the requirement to invoke InitializeMagick() from dependent applications is only useful for DLL builds.
+ +

ImageMagick is now configured and ready to build.

+ +

The default build is WIN32. For 64-bit, open a newly created solution and enter Configuration Manager. Add a x64 configuration, copying the configuration from Win32. Be sure that it adds the configuration to all the projects. Now compile. For the 64-bit build, you will also need to disable X11 support. Edit magick-config.h and undefine the MAGICKCORE_X11_DELEGATE define.

+ +

Build

+ +

After creating your build environment, proceed to open the DSW (or SLN) workspace in the VisualMagick folder. In the DSW file choose the All project to make it the active project. Set the build configuration to the desired one (Debug, or Release) and clean and build:

+ +
    +
  1. Right click on the All project and select Set As Active Project
  2. +
  3. Select "Build=>Clean Solution"
  4. +
  5. Select "Build=>Build Solution"
  6. +
+ +

The clean step is necessary in order to make sure that all of the target support libraries are updated with any patches needed to get them to compile properly under Visual Studio.

+ +

After a successful build, all of the required files that are needed to run any of the command line tools are located in the VisualMagick\bin folder. This includes EXE, DLL libraries, and ImageMagick configuration files. You should be able to test the build directly from this directory without having to move anything to any of the global SYSTEM or SYSTEM32 areas in the operating system installation.

+ +

The Visual Studio distribution of ImageMagick comes with the Magick++ C++ wrapper by default. This add-on layer has a large number of demo and test files that can be found in ImageMagick\Magick++\demo, and ImageMagick\Magick++\tests. There are also a variety of tests that use the straight C API as well in ImageMagick\tests.

+ +

All of these programs are not configured to be built in the default workspace created by the configure program. You can cause all of these demos and test programs to be built by checking the box in configure that says:

+ +

+ Include all demo and test programs +

+ +

In addition, there is another related checkbox (checked by default) that causes all generated project files to be created standalone so that they can be copied to other areas of you system.

+ +

This the checkbox:

+ +

+ Generate all utility projects with full paths rather then relative paths. +

+ +

Visual Studio uses a concept of dependencies that tell it what other components need to be build when a particular project is being build. This mechanism is also used to ensure that components link properly. In my normal development environment, I want to be able to make changes and debug the system as a whole, so I like and NEED to use dependencies. However, most end users don't want to work this way.

+ +

Instead they really just want to build the package and then get down to business working on their application. The solution is to make all the utility projects (UTIL_xxxx_yy_exe.dsp) use full absolute paths to all the things they need. This way the projects stand on their own and can actually be copied and used as templates to get a particular custom application compiling with little effort.

+ +

With this feature enabled, you should be able to nab a copy of

+ +
VisualMagick\utilities\UTIL_convert_xxx_exe.dsp  (for C) or
+VisualMagick\Magick++\demo\UTIL_demo_xxx_exe.dsp (for C++)
+
+ +

and pop it into Notepad, modify it (carefully) to your needs and be on your way to happy compiling and linking.

+ +

You can feel free to pick any of the standard utilities, tests, or demo programs as the basis for a new program by copying the project and the source and hacking away.

+ +

The choice of what to use as a starting point is very easy.

+ +

For straight C API command line applications use something from:

+ +
ImageMagick\tests or
+ImageMagick\utilities (source code) or
+ImageMagick\VisualMagick\tests or
+ImageMagick\Visualmagick\utilities (project - DSP)
+
+ +

For C++ and Magick++ command line applications use something from:

+ +
ImageMagick\Magick++\tests or ImageMagick\Magick++\demo (source code) or
+ImageMagick\VisualMagick\Magick++\tests or  
+ImageMagick\VisualMagick\Magick++\demo (project - DSP) +
+ +

For C++ and Magick++ and MFC windows applications use:

+ +
ImageMagick\contrib\win32\MFC\NtMagick (source code) or
+ImageMagick\VisualMagick\contrib\win32\MFC\NtMagick (project - DSP)
+
+ +

The ImageMagick distribution is very modular. The default configuration is there to get you rolling, but you need to make some serious choices when you wish to change things around.

+ +

The default options are all targeted at having all the components in one place (e.g. the bin directory of the VisualMagick build tree). These components may be copied to another folder (such as to another computer).

+ +

The folder containing the executables and DLLs should contain the following files:

+ +
    +
  1. magic.xml
  2. +
  3. delegates.xml
  4. +
  5. modules.xml
  6. +
  7. colors.xml
  8. +
+ +

among others.

+ +

The bin folder should contains all EXE's and DLL's as well as the very important modules.xml file.

+ +

With this default setup, you can use any of the command line tools and run scripts as normal. You can actually get by quite nicely this way by doing something like pushd e:\xxx\yyy\bin in any scripts you write to execute out of this directory.

+ +

By default the core of ImageMagick on Win32 always looks in the place were the exe program is run from in order to find all of the files as well as the DLL's it needs.

+ +

ENVIRONMENT VARIABLES

+ +

You can use the System control panel to allow you to add and delete what is in any of the environment variables. You can even have user specific environment variables if you wish.

+ +

PATH

+

This environmental variable sets the default list of places were Windows looks for EXE's and DLL's. Windows CMD shell seems to look in the current directory first no matter what, which may make it unnecessary to update the PATH. If you wish to run any of utilities from another location then you must add the path to your bin directory in. For instance, to do this for the default build environment like I do, you might add:

+ + +
C:\ImageMagick\VisualMagick\bin
+
+ +

MAGICK_HOME

+

If all you do is modify the PATH variable, the first problem you will run into is that ImageMagick may not be able to find any of its modules. Modules are all the IM_MOD*.DLL files you see in the distribution. There is one of these for each and every file format that ImageMagick supports. This environment variable tells the system were to look for these DLL's. The compiled in default is execution path - which says - look in the same place that the application is running in. If you are running from somewhere other then bin - this will no longer work and you must use this variable. If you elect to leave the modules in the same place as the EXE's (a good idea) then you can simply set this to the same place as you did the PATH variable. In my case:

+ +
C:\ImageMagick\coders
+
+ +

This also the place were ImageMagick expects to find the colors.xml, delegates.xml, magic.xml, modules.xml, and type.xml files.

+ +

One cool thing about the modules build of ImageMagick is that you can now leave out file formats and lighten you load. If all you ever need is GIF and JPEG, then simply drop all the other DLL's into the local trash can and get on with your life.

+ +

Always keep the XC format, since ImageMagick uses it internally.

+ +

You can elect to changes these things the good old hard-coded way. This define is applicable in magick-config.h:

+ +
#define MagickConfigurePath  "C:\\ImageMagick\\"
+
+ +

To view any image in a Microsoft window, type

+ +
magick image.ext win:
+
+ +

Make sure Ghostscript is installed, otherwise, you will be unable to convert or view a Postscript document, and Postscript standard fonts will not be available.

+ +

You may use any standard web browser (e.g. Internet Explorer) to browse the ImageMagick documentation.

+ +

The Win2K executables will work under Windows 98.

+ +

ImageMagick is now configured and built. You can optionally install it on your system as discussed below.

+ +

If you are looking to install the ImageMagick COM+ object, see Installing the ImageMagickObject COM+ Component.

+ +

Install

+ +

You can run ImageMagick command line utilities directly from the VisualMagick\bin folder, however, in most cases you may want the convenience of an installer script. ImageMagick provides Inno Setup scripts for this purpose. Note, you must define MAGICKCORE_INSTALLED_SUPPORT at configure time to utilize the installer scripts.

+ +

To get started building a self-installing ImageMagick executable, go to VisualMagick\installer folder and click on a script that matches your build environment. Press F9 to build and install ImageMagick. The default location is C:Program Files\ImageMagick-7.?.?\Q?. The exact folder name depends on the ImageMagick version and quantum depth. Once installed, ImageMagick command line utilities and libraries are available to the MS Command Prompt, web scripts, or to meet your development needs.

+ + +

Create a Self-Installing Binary Distribution

+ +

Prerequisites

+ +
    +
  1. Download and install Inno Setup 5.
  2. +
  3. Download and install Strawberry Perl.
  4. +
+ +

Run the Configure Wizard

+ +
    +
  1. Double-click on VisualMagick/configure/configure.sln to build the configure wizard.
  2. +
  3. Select Rebuild All and launch the configure wizard.
  4. +
  5. Uncheck Use X11 Stubs and check Build demo and test programs.
  6. +
  7. Click on Edit magick_config.h and define MAGICKCORE_INSTALLED_SUPPORT.
  8. +
  9. Complete the configure wizard screens to create the ImageMagick Visual C++ workspace.
  10. +
+ +

Build ImageMagick

+ +
    +
  1. Double-click on VisualMagick/VisualDynamicMT.sln to launch the ImageMagick Visual workspace.
  2. +
  3. Set the active configuration to Win32 Release.
  4. +
  5. Select Rebuild All to build the ImageMagick binary distribution.
  6. +
+ +

Build ImageMagickObject

+ +
    +
  1. Launch the Command Prompt application and move to the contrib\win32\ATL7\ImageMagickObject folder.
  2. +
  3. Build ImageMagickObject with these commands: +
    BuildImageMagickObject clean
    +BuildImageMagickObject release
    +
  4. +
+ +

Build PerlMagick

+ +
    +
  1. Launch the Command Prompt application and move to the PerlMagick folder.
  2. +
  3. Build PerlMagick with these commands: +
    perl Makefile.PL
    +dmake release
    +
  4. +
+ +

Create the Self-installing ImageMagick Binary Distribution

+ +
    +
  1. Double-click on VisualMagick/installer/im-dll-16.iss to launch the Inno Setup 5 wizard.
  2. +
  3. Select File->Compile.
  4. +
+ +

Install the Binary Distribution

+ +
    +
  1. Double-click on + VisualMagick/bin/ImageMagick-7.0.7-22-Q16-windows-dll.exe + to launch the ImageMagick binary distribution.
  2. +
  3. Complete the installer screens to install ImageMagick on your system.
  4. +
+ +

Test the Binary Distribution

+ +
    +
  1. Launch the Command Prompt application and move to the PerlMagick folder and type +
    nmake test
    +
  2. + +
  3. Move to the VisualMagick/tests folder and type +
    validate
    +
  4. +
  5. Move to the VisualMagick/Magick++/tests folder and type +
    run_tests.bat
    +
  6. +
  7. Move to the VisualMagick/Magick++/demo folder and type +
    run_demos.bat
    +
  8. +
+ +

If all the tests pass without complaint, the ImageMagick self-install binary distribution is ready for use.

+ +

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.

+ +

If the compiler generates an error or if it quits unexpectedly, go to the Visual Studio web site and look for Visual Studio service packs. Chances are, after you download and install all the Visual Studio service packs, ImageMagick will compile and build as expected.

+ + +

Building Your Custom Project

+ +

The Windows binary distribution includes a number of demo projects that you can use as a template for your own custom project. For example, start with the Button project, generally located in the c:/Program Files/ImageMagick-7.5.5-0/Magick++_demos folder. If not, be sure to select Configuration Properties->C/C++->Preprocessor and set these definitions:

+ +
NDEBUG
+WIN32
+_CONSOLE
+_VISUALC_
+NeedFunctionPrototypes
+_DLL
+_MAGICKMOD_
+
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/animate.html b/share/doc/ImageMagick-7/www/animate.html new file mode 100644 index 0000000..ab01e5c --- /dev/null +++ b/share/doc/ImageMagick-7/www/animate.html @@ -0,0 +1,560 @@ + + + + + + + + + + Command-line Tools: Animate @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

Example Usage • Option Summary

+ +

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
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api.html b/share/doc/ImageMagick-7/www/api.html new file mode 100644 index 0000000..9903c0b --- /dev/null +++ b/share/doc/ImageMagick-7/www/api.html @@ -0,0 +1,176 @@ + + + + + + + + + ImageMagick: Application Program Interfaces + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+ +

ImageMagick includes a number of ready-made interfaces. This makes it possible to modify or create images automagically and dynamically utilizing your favorite development platform.

+ +
+
Ada
+ +
G2F implements an Ada 95 binding to a subset of the low-level MagickCore library.
+ +
C
+ +
Use MagickWand to convert, compose, and edit images from the C language. There is also the low-level MagickCore library for wizard-level developers.
+ +
Ch
+ +
ChMagick is a Ch binding to the MagickCore and MagickWand API. Ch is an embeddable C/C++ interpreter for cross-platform scripting.
+ +
COM+
+ +
Use ImageMagickObject to convert, compose, and edit images from a Windows COM+ compatible component.
+ +
C++
+ +
magick++ provides an object-oriented C++ interface to ImageMagick. See A Gentle Introduction to Magick++ for an introductory tutorial to Magick++. We include the source if you want to correct, enhance, or expand the tutorial.
+ +
GO
+
GoImagick is a set of Go bindings to ImageMagick's MagickWand and MagickCore C APIs.
+ +
Java
+ +
JMagick provides an object-oriented Java interface to ImageMagick. Im4java is a pure-java interface to the ImageMagick command-line.
+ +
LabVIEW
+ +
LVOOP ImageMagick is an object-oriented LabVIEW interface to ImageMagick.
+ +
Lisp
+ +
CL-Magick provides a Common Lisp interface to the ImageMagick library.
+ +
Lua
+ +
Lua bindings to ImageMagick for LuaJIT using FFI.
+ +
Neko
+ +
NMagick is a port of the ImageMagick library to the haXe and Neko platforms. It provides image manipulation capabilities to both web and desktop applications using Neko.
+ +
.NET
+ +
Use Magick.NET to convert, compose, and edit images from Windows .NET.
+ +
ImageMagickApp is a .NET application written in C# that utilizes the ImageMagick command line to allow conversion of multiple image formats to different formats.
+ +
Pascal
+ +
PascalMagick a Pascal binding for the MagickWand API and also the low-level MagickCore library. It works with Free Pascal / Lazarus and Delphi.
+ +
Perl
+ +
Use PerlMagick to convert, compose, and edit images from the Perl language.
+ +
PHP
+ +
MagickWand for PHP a native PHP-extension to the ImageMagick MagickWand API.
+ +
IMagick is a native PHP extension to create and modify images using the ImageMagick API. Documentation for the extension is available here.
+ +
phMagick is a wrapper class for ImageMagick, wrapping the most common web image manipulation actions in easy to use functions, but allowing full access to ImageMagick's power by issuing system calls to it's command-line programs.
+ + +
Python
+ + +
Wand is a ctypes-based ImagedMagick binding library for Python.
+
PythonMagick is an object-oriented Python interface to ImageMagick.
+
PythonMagickWand is an object-oriented Python interface to MagickWand based on ctypes.
+ +
REALbasic
+ +
The MBS Realbasic ImageMagick is a plugin that utilizes the power of ImageMagick from within the RealBasic environment.
+ +
Ruby
+ +
RMagick is an interface between the Ruby programming language and the MagickCore image processing libraries. Get started with RMagick by perusing the documentation.
+ +
MagickWand for Ruby is an interface between the Ruby programming language and the MagickWand image processing libraries. Get started with MagickWand for PHP by perusing the documentation.
+ +
MiniMagick is a Ruby wrapper for ImageMagick command line. MiniMagick gives you convenient access to all the command line options ImageMagick supports.
+ +
QuickMagick is a gem for easily accessing ImageMagick command line tools from Ruby programs.
+ +
Rust
+ +
RustWand is a MagickWand bindings for the Rust language.
+ +
Tcl/Tk
+ +
TclMagick a native Tcl-extension to the ImageMagick MagickWand API.
+ +
XML RPC
+ +
RemoteMagick is an XML-RPC web service that creates image thumbnails.
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/Image++.html b/share/doc/ImageMagick-7/www/api/Image++.html new file mode 100644 index 0000000..d844d3a --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/Image++.html @@ -0,0 +1,3235 @@ + + + + + + + + + + Magick++, C++ API for ImageMagick: Image Class @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

Magick::Image Class

+ +
+

Image is the primary object in Magick++ and represents +a single image frame (see design ). The +STL interface must be used to operate on +image sequences or images (e.g. of format GIF, TIFF, MIFF, Postscript, +& MNG) which are comprised of multiple image frames. Individual +frames of a multi-frame image may be requested by adding array-style +notation to the end of the file name (e.g. "animation.gif[3]" retrieves +the fourth frame of a GIF animation. Various image manipulation +operations may be applied to the image. Attributes may be set on the +image to influence the operation of the manipulation operations. The Pixels class provides low-level access to +image +pixels. As a convenience, including <Magick++.h> +is sufficient in order to use the complete Magick++ API. The Magick++ +API is enclosed within the Magick namespace so you must either +add the prefix " Magick:: " to each class/enumeration name or +add +the statement " using namespace Magick;" after including the Magick++.h +header.

+

The preferred way to allocate Image objects is via automatic +allocation (on the stack). There is no concern that allocating Image +objects on the stack will excessively enlarge the stack since Magick++ +allocates all large data objects (such as the actual image data) from +the heap. Use of automatic allocation is preferred over explicit +allocation (via new) since it is much less error prone and +allows use of C++ scoping rules to avoid memory leaks. Use of automatic +allocation allows Magick++ objects to be assigned and copied just like +the C++ intrinsic data types (e.g. 'int '), leading to clear and +easy to read code. Use of automatic allocation leads to naturally +exception-safe code since if an exception is thrown, the object is +automagically deallocated once the stack unwinds past the scope of the +allocation (not the case for objects allocated via new ).

+

Image is very easy to use. For example, here is a the source to a +program which reads an image, crops it, and writes it to a new file +(the +exception handling is optional but strongly recommended):

+
+#include <Magick++.h> 
+#include <iostream> 
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+
+  // Construct the image object. Separating image construction from the 
+  // the read operation ensures that a failure to read the image file 
+  // doesn't render the image object useless. 
+  Image image;
+  try { 
+    // Read a file into image object 
+    image.read( "girl.gif" );
+
+    // Crop the image to specified size (width, height, xOffset, yOffset)
+    image.crop( Geometry(100,100, 100, 100) );
+
+    // Write the image to a file 
+    image.write( "x.gif" ); 
+  } 
+  catch( Exception &error_ ) 
+    { 
+      cout << "Caught exception: " << error_.what() << endl; 
+      return 1; 
+    } 
+  return 0; 
+}
+
+The following is the source to a program which illustrates the use of +Magick++'s efficient reference-counted assignment and copy-constructor +operations which minimize use of memory and eliminate unnecessary copy +operations (allowing Image objects to be efficiently assigned, and +copied into containers). The program accomplishes the +following: +
    +
  1. Read master image.
  2. +
  3. Assign master image to second image.
  4. +
  5. Resize second image to the size 640x480.
  6. +
  7. Assign master image to a third image.
  8. +
  9. Resize third image to the size 800x600.
  10. +
  11. Write the second image to a file.
  12. +
  13. Write the third image to a file.
  14. +
+
+#include  
+#include  
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+
+  Image master("horse.jpg"); 
+  Image second = master; 
+  second.resize("640x480"); 
+  Image third = master; 
+  third.resize("800x600"); 
+  second.write("horse640x480.jpg"); 
+  third.write("horse800x600.jpg"); 
+  return 0; 
+}
+
+During the entire operation, a maximum of three images exist in memory +and the image data is never copied. +

The following is the source for another simple program which creates +a 100 by 100 pixel white image with a red pixel in the center and +writes it to a file:

+
+#include  
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+  Image image( "100x100", "white" ); 
+  image.pixelColor( 49, 49, "red" ); 
+  image.write( "red_pixel.png" ); 
+  return 0; 
+}
+
+If you wanted to change the color image to grayscale, you could add the +lines: +
+image.quantizeColorSpace( GRAYColorspace ); 
+image.quantizeColors( 256 ); 
+image.quantize( );
+
+

+

or, more simply:

+
+ image.type( GrayscaleType );
+
+

prior to writing the image.

+
+

BLOBs

+
+While encoded images (e.g. JPEG) are most often written-to and +read-from a disk file, encoded images may also reside in memory. +Encoded +images in memory are known as BLOBs (Binary Large OBjects) and may be +represented using the Blob class. The encoded +image may be initially placed in memory by reading it directly from a +file, reading the image from a database, memory-mapped from a disk +file, or could be written to memory by Magick++. Once the encoded image +has been placed within a Blob, it may be read into a Magick++ Image via +a constructor or read() +. Likewise, a Magick++ image may be written to a Blob via write() . +

An example of using Image to write to a Blob follows:
+

+
+#include  
+using namespace std; 
+using namespace Magick; 
+int main(int argc,char **argv) 
+{ 
+  InitializeMagick(*argv);
+
+  // Read GIF file from disk 
+  Image image( "giraffe.gif" );
+  // Write to BLOB in JPEG format 
+  Blob blob; 
+  image.magick( "JPEG" ) // Set JPEG output format 
+  image.write( &blob );
+
+  [ Use BLOB data (in JPEG format) here ]
+
+  return 0; 
+}
+
+


+likewise, to read an image from a Blob, you could use one of the +following examples:

+

[ Entry condition for the following examples +is that data is pointer to encoded image data and length +represents the size of the data ]

+
+Blob blob( data, length ); 
+Image image( blob );
+
+or +
+Blob blob( data, length ); 
+Image image; 
+image.read( blob);
+
+some images do not contain their size or format so the size and format must be specified in advance: +
+Blob blob( data, length ); 
+Image image; 
+image.size( "640x480") 
+image.magick( "RGBA" ); 
+image.read( blob);
+
+
+

Constructors

+
+Image may be constructed in a number of ways. It may be constructed +from a file, a URL, or an encoded image (e.g. JPEG) contained in an +in-memory BLOB . The available Image +constructors are shown in the following table:
+
+ +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Image Constructors
    +
    Signature
    +
    +
    Description
    +
    const std::string &imageSpec_Construct Image by reading from file or URL +specified by imageSpec_. Use array notation (e.g. filename[9]) +to select a specific scene from a multi-frame image.
    const Geometry &size_, const Color &color_Construct a blank image canvas of specified +size and color
    const Blob &blob_Construct Image by reading from +encoded image data contained in an in-memory BLOB +. Depending on the constructor arguments, the Blob size +, depth , magick (format) +may +also be specified. Some image formats require that size be specified. +The default ImageMagick uses for depth depends on the compiled-in +Quantum size (8 or 16). If ImageMagick's Quantum size does not +match that of the image, the depth may need to be specified. +ImageMagick can usually automagically detect the image's format. +When a format can't be automagically detected, the format (magick ) must be specified.
    const Blob +&blob_, const Geometry &size_
    const Blob +&blob_, const Geometry &size, +size_t depth
    const Blob +&blob_, const Geometry &size, +size_t depth_, const string &magick_
    const Blob +&blob_, const Geometry &size, +const +string &magick_
    const size_t width_,
    + const size_t height_,
    + std::string map_,
    + const +StorageType type_,
    + const void *pixels_
    Construct a new Image based on an array of +image pixels. The pixel data must be in scanline order top-to-bottom. +The data can be character, short int, integer, float, or double. Float +and double require the pixels to be normalized [0..1]. The other types +are [0..MaxRGB]. For example, to create a 640x480 image from +unsigned red-green-blue character data, use +

    Image image( 640, 480, "RGB", +0, pixels );

    +

    The parameters are as follows:
    + + + + + + + + + + + + + + + + + + + + + + + + +
    width_Width in pixels of the image.
    height_Height in pixels of the image.
    map_This character string can be any +combination or order of R = red, G = green, B = blue, A = alpha, C = +cyan, Y = yellow M = magenta, and K = black. The ordering reflects the +order of the pixels in the supplied pixel array.
    type_Pixel +storage type (CharPixel, ShortPixel, IntegerPixel, FloatPixel, or +DoublePixel)
    pixels_This array of values contain the pixel +components as defined by the map_ and type_ parameters. The length of +the arrays must equal the area specified by the width_ and height_ +values and type_ parameters.
    +

    +
+
+

Image Manipulation Methods

+
+Image supports access to all the single-image (versus +image-list) manipulation operations provided by the ImageMagick +library. If you +must process a multi-image file (such as an animation), the STL interface , which provides a multi-image +abstraction on top of Image, must be used. +

Image manipulation methods are very easy to use. For example:

+
+Image image; 
+image.read("myImage.tiff"); 
+image.addNoise(GaussianNoise); 
+image.write("myImage.tiff");
+
+adds gaussian noise to the image file "myImage.tiff". +

The operations supported by Image are shown in the following table:
+ +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Image Image Manipulation Methods
    MethodSignature(s)Description
    +
    adaptiveThreshold
    +
    +
    size_t width, size_t +height, size_t offset = 0
    +
    Apply adaptive thresholding to +the image. Adaptive thresholding is useful if the ideal threshold level +is not known in advance, or if the illumination gradient is not +constant +across the image. Adaptive thresholding works by evaluating the mean +(average) of a pixel region (size specified by width and height) +and using the mean as the thresholding value. In order to remove +residual noise from the background, the threshold may be adjusted by +subtracting a constant offset (default zero) from the mean to +compute the threshold.
    +
    +
    addNoise
    +
    NoiseType +noiseType_Add noise to image with specified noise type.
    addNoiseChannel
    +
    const ChannelType +channel_, const NoiseType noiseType_
    +
    Add noise to an image +channel with the specified noise type. The channel_ parameter specifies the +channel to add noise to. The noiseType_ parameter +specifies the type of noise.
    +
    affineTransform
    +
    const DrawableAffine +&affine
    +
    Transform image by +specified affine (or free transform) matrix.
    +
    +
    annotate
    +
    const std::string &text_, const Geometry &location_Annotate using specified text, and placement +location
    string text_, const Geometry +&boundingArea_, GravityType +gravity_Annotate using specified text, bounding area, +and placement gravity. If boundingArea_ is invalid, then +bounding area is entire image.
    const std::string &text_, const Geometry &boundingArea_, GravityType gravity_, double +degrees_, Annotate with text using specified text, +bounding area, placement gravity, and rotation. If boundingArea_ +is invalid, then bounding area is entire image.
    const std::string &text_, GravityType gravity_Annotate with text (bounding area is entire +image) and placement gravity.
    +
    blur
    +
    const double radius_ = 1, const double sigma_ += 0.5Blur image. The radius_ parameter +specifies the radius of the Gaussian, in pixels, not counting the +center +pixel. The sigma_ parameter specifies the standard +deviation of the Laplacian, in pixels.
    blurChannel
    +
    const ChannelType +channel_, const double radius_ = 0.0, const double sigma_ = 1.0
    +
    Blur an image +channel. The channel_ +parameter specifies the channel to blur. The radius_ parameter +specifies the radius of the Gaussian, in pixels, not counting the +center +pixel. The sigma_ parameter specifies the standard +deviation of the Laplacian, in pixels.
    +
    border
    +
    const Geometry +&geometry_ = "6x6+0+0"Border image (add border to image). The +color of the border is specified by the borderColor attribute.
    +
    cdl
    +
    const std::string &cdl_color correct with a color decision list. See http://en.wikipedia.org/wiki/ASC_CDL for details.
    +
    channel
    +
    ChannelType +layer_Extract channel from image. Use this option +to extract a particular channel from the image. MatteChannel + for example, is useful for extracting the opacity values +from an image.
    +
    charcoal
    +
    const double radius_ = 1, const double sigma_ += 0.5Charcoal effect image (looks like charcoal +sketch). The radius_ parameter specifies the radius of the +Gaussian, in pixels, not counting the center pixel. The sigma_ +parameter specifies the standard deviation of the Laplacian, in pixels.
    +
    chop
    +
    const Geometry +&geometry_Chop image (remove vertical or horizontal +subregion of image)
    +
    colorize
    +
    const unsigned int opacityRed_, const +unsigned int opacityGreen_, const unsigned int opacityBlue_, const +Color &penColor_Colorize image with pen color, using +specified percent opacity for red, green, and blue quantums.
    +
    colorMatrix
    +
    const size_t order_, const double *color_matrix_apply color correction to the image.
    +
    comment
    +
    const std::string &comment_Comment image (add comment string to +image). By default, each image is commented with its file name. +Use this method to assign a specific comment to the +image. Optionally you can include the image filename, type, +width, height, or other image attributes by embedding special format characters.
    compare
    +
    const Image &reference_
    +
    Compare current image with +another image. Sets meanErrorPerPixel +, normalizedMaxError , and normalizedMeanError in the current +image. False is returned if the images are identical. An ErrorOption +exception is thrown if the reference image columns, rows, colorspace, +or +matte differ from the current image.
    +
    +
    composite
    +
    const Image +&compositeImage_, ssize_t xOffset_, ssize_t yOffset_, CompositeOperator +compose_ = InCompositeOpCompose an image onto the current image at +offset specified by xOffset_, yOffset_ using the +composition algorithm specified by compose_.
    const Image +&compositeImage_, const Geometry +&offset_, CompositeOperator +compose_ = InCompositeOpCompose an image onto the current image at +offset specified by offset_ using the composition algorithm +specified by compose_ .
    const Image +&compositeImage_, GravityType +gravity_, CompositeOperator +compose_ = InCompositeOpCompose an image onto the current image with +placement specified by gravity_ using the composition +algorithm +specified by compose_.
    +
    contrast
    +
    size_t sharpen_Contrast image (enhance intensity differences +in image)
    +
    convolve
    +
    size_t order_, const double *kernel_Convolve image. Applies a user-specified +convolution to the image. The order_ parameter represents the +number of columns and rows in the filter kernel, and kernel_ +is a two-dimensional array of doubles representing the convolution +kernel to apply.
    +
    crop
    +
    const Geometry +&geometry_Crop image (subregion of original image)
    +
    cycleColormap
    +
    int amount_Cycle image colormap
    +
    despeckle
    +
    voidDespeckle image (reduce speckle noise)
    +
    display
    +
    voidDisplay image on screen.
    + Caution: if +an image format is is not compatible with the display visual (e.g. +JPEG on a colormapped display) then the original image will be +altered. Use a copy of the original if this is a problem.
    +
    distort
    +
    const DistortImageMethod method, const size_t number_arguments, const double *arguments, const bool bestfit = false Distort image. Applies a user-specified +distortion to the image.
    +
    draw
    +
    const Drawable +&drawable_Draw shape or text on image.
    const std::list<Drawable +> &drawable_Draw shapes or text on image using a set of +Drawable objects contained in an STL list. Use of this method improves +drawing performance and allows batching draw objects together in a +list for repeated use.
    +
    edge
    +
    size_t radius_ = 0.0Edge image (hilight edges in image). +The radius is the radius of the pixel neighborhood.. Specify a radius +of zero for automatic radius selection.
    +
    emboss
    +
    const double radius_ = 1, const double sigma_ += 0.5Emboss image (hilight edges with 3D effect). +The radius_ parameter specifies the radius of the Gaussian, in +pixels, not counting the center pixel. The sigma_ +parameter specifies the standard deviation of the Laplacian, in pixels.
    +
    enhance
    +
    voidEnhance image (minimize noise)
    +
    equalize
    +
    voidEqualize image (histogram equalization)
    +
    erase
    +
    voidSet all image pixels to the current +background color.
    +
    extent
    const Geometry &geometry_extends the image as defined by the geometry, gravity, and image background color.
    const Geometry +&geometry_, const Color &backgroundColor_
    const Geometry &geometry_, const GravityType +&gravity_extends the image as defined by the geometry, gravity, and image background color.
    const Geometry +&geometry_, const Color &backgroundColor_, +const GravityType &gravity_
    +
    flip
    +
    voidFlip image (reflect each scanline in the +vertical direction)
    +
    floodFill- +
    + Color
    +
    ssize_t x_, ssize_t y_, const Color &fillColor_Flood-fill color across pixels +that match the color of the target pixel and are neighbors of the +target pixel. Uses current fuzz setting when determining color match.
    const Geometry +&point_, const Color &fillColor_
    ssize_t x_, ssize_t y_, const Color &fillColor_, const Color +&borderColor_Flood-fill color across pixels +starting at target-pixel and stopping at pixels matching specified +border color. Uses current fuzz setting when determining color match.
    const Geometry +&point_, const Color &fillColor_, +const Color &borderColor_
    floodFillOpacityconst long x_, const long y_, const unsigned int +opacity_, const PaintMethod method_Floodfill pixels matching color (within fuzz +factor) of target pixel(x,y) with replacement opacity value using +method.
    +
    floodFill- +
    + Texture
    +
    ssize_t x_, ssize_t y_, const +Image &texture_Flood-fill texture across pixels +that match the color of the target pixel and are neighbors of the +target pixel. Uses current fuzz setting when determining color match.
    const Geometry +&point_, const Image &texture_
    ssize_t x_, ssize_t y_, const Image +&texture_, const Color &borderColor_Flood-fill texture across pixels +starting at target-pixel and stopping at pixels matching specified +border color. Uses current fuzz setting when determining color match.
    const Geometry +&point_, const Image &texture_, const +Color +&borderColor_
    +
    flop
    +
    void Flop image (reflect each scanline in the +horizontal direction)
    +
    frame
    +
    const Geometry +&geometry_ = "25x25+6+6"Add decorative frame around image
    size_t width_, size_t height_, +ssize_t x_, ssize_t y_, ssize_t innerBevel_ = 0, ssize_t outerBevel_ = 0
    +
    fx
    +
    const std::string expression, const Magick::ChannelType channelFx image. Applies a mathematical +expression to the image.
    +
    gamma
    +
    double gamma_Gamma correct image (uniform red, green, and +blue correction).
    double gammaRed_, double gammaGreen_, double +gammaBlue_Gamma correct red, green, and blue channels +of image.
    +
    gaussianBlur
    +
    const double width_, const double sigma_Gaussian blur image. The number of neighbor +pixels to be included in the convolution mask is specified by +'width_'. For example, a width of one gives a (standard) 3x3 +convolution mask. The standard deviation of the gaussian bell curve is +specified by 'sigma_'.
    gaussianBlurChannel
    +
    const ChannelType +channel_, const double radius_ = 0.0, const double sigma_ = 1.0
    +
    Gaussian blur +an image channel. The channel_ parameter specifies the +channel to blur. The number of neighbor +pixels to be included in the convolution mask is specified by +'width_'. For example, a width of one gives a (standard) 3x3 +convolution mask. The standard deviation of the gaussian bell curve is +specified by 'sigma_'.
    haldClut
    +
    const Image &reference_
    +
    apply a Hald color lookup table to the image.
    +
    +
    implode
    +
    const double factor_Implode image (special effect)
    +
    inverseFourierTransform
    +
    const Image &phaseImage_, const bool magnitude_implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.
    +
    label
    +
    const string &label_Assign a label to an image. Use this option +to assign a specific label to the image. Optionally +you can include the image filename, type, width, height, or scene +number in the label by embedding +special format characters. If the first character of string is @, +the +image label is read from a file titled by the remaining characters in +the string. When converting to Postscript, use this option to +specify a header string to print above the image.
    level
    +
    const double black_point, +const double white_point, const double mid_point=1.0
    +
    Level image. Adjust the +levels of the image by scaling the colors falling between specified +white and black points to the full available quantum range. The +parameters provided represent the black, mid (gamma), and white +points. The black point specifies the darkest color in the image. +Colors darker than the black point are set to zero. Mid point (gamma) +specifies a gamma correction to apply to the image. White point +specifies the lightest color in the image. Colors brighter than +the white point are set to the maximum quantum value. The black and +white point have the valid range 0 to MaxRGB while mid (gamma) has a +useful range of 0 to ten.
    +
    levelChannel
    +
    const ChannelType +channel, const double black_point, const double white_point, const +double mid_point=1.0
    +
    Level image channel. +Adjust the levels of the image channel by scaling the values falling +between specified white and black points to the full available quantum +range. The parameters provided represent the black, mid (gamma), and +white points. The black point specifies the darkest color in the image. +Colors darker than the black point are set to zero. Mid point (gamma) +specifies a gamma correction to apply to the image. White point +specifies the lightest color in the image. Colors brighter than the +white point are set to the maximum quantum value. The black and white +point have the valid range 0 to MaxRGB while mid (gamma) has a useful +range of 0 to ten.
    +
    +
    magnify
    +
    voidMagnify image by integral size
    +
    map
    +
    const Image &mapImage_ , bool dither_ = +falseRemap image colors with closest color from +reference image. Set dither_ to true in to apply +Floyd/Steinberg +error diffusion to the image. By default, color reduction chooses an +optimal set of colors that best represent the original +image. Alternatively, you can choose a +particular set of colors from an image file +with this option.
    +
    matteFloodfill
    +
    const Color +&target_, const unsigned int opacity_, const ssize_t x_, const +ssize_t +y_, PaintMethod method_Floodfill designated area with a replacement +opacity value.
    medianFilterconst double radius_ = 0.0Filter image by replacing each pixel +component with the median color in a circular neighborhood
    +
    mergeLayers
    +
    LayerMethod +noiseType_handle multiple images forming a set of image layers or animation frames.
    +
    minify
    +
    voidReduce image by integral size
    modifyImagevoidPrepare to update image. Ensures that there +is only one reference to the underlying image so that the underlying +image may be safely modified without effecting previous generations of +the image. Copies the underlying image to a new image if necessary.
    +
    modulate
    +
    double brightness_, double saturation_, +double hue_Modulate percent hue, saturation, and +brightness of an image. Modulation of saturation and brightness is as a +ratio of the current value (1.0 for no change). Modulation of hue is an +absolute rotation of -180 degrees to +180 degrees from the current +position corresponding to an argument range of 0 to 2.0 (1.0 for no +change).
    motionBlur
    +
    const double radius_, +const double sigma_, const double angle_
    +
    Motion blur image with +specified blur factor. The radius_ parameter specifies the radius of +the Gaussian, in pixels, not counting the center pixel. The +sigma_ parameter specifies the standard deviation of the Laplacian, in +pixels. The angle_ parameter specifies the angle the object appears to +be coming from (zero degrees is from the right).
    +
    +
    negate
    +
    bool grayscale_ = falseNegate colors in image. Replace every +pixel with its complementary color (white becomes black, yellow becomes +blue, etc.). Set grayscale to only negate grayscale values in +image.
    +
    normalize
    +
    voidNormalize image (increase contrast by +normalizing the pixel values to span the full range of color values).
    +
    oilPaint
    +
    size_t radius_ = 3Oilpaint image (image looks like oil painting)
    +
    opacity
    +
    unsigned int opacity_Set or attenuate the opacity channel in the +image. If the image pixels are opaque then they are set to the +specified +opacity value, otherwise they are blended with the supplied opacity +value. The value of opacity_ ranges from 0 (completely opaque) to + MaxRGB +. The defines OpaqueOpacity and TransparentOpacity are +available to specify completely opaque or completely transparent, +respectively.
    +
    opaque
    +
    const Color +&opaqueColor_, const Color &penColor_Change color of pixels matching opaqueColor_ +to specified penColor_.
    +
    ping
    +
    const std::string &imageSpec_Ping is similar to read +except only enough of the image is read to determine the image columns, +rows, and filesize. The columns , + rows , and fileSize +attributes are valid after invoking ping. The image data is not +valid after calling ping.
    const Blob &blob_
    process
    +
    std::string name_, +const ssize_t argc_, char **argv_
    +
    Execute the named +process module, passing any arguments via an argument vector, with +argc_ +specifying the number of arguments in the vector, and argv_ passing the +address of an array of null-terminated C strings which constitute the +argument vector. An exception is thrown if the requested process module +does not exist, fails to load, or fails during execution.
    +
    +
    quantize
    +
    bool measureError_ = falseQuantize image (reduce number of colors). Set +measureError_ to true in order to calculate error attributes.
    +
    raise
    +
    const Geometry +&geometry_ = "6x6+0+0", bool raisedFlag_ = falseRaise image (lighten or darken the edges of +an image to give a 3-D raised or lowered effect)
    +
    read
    +
    const string &imageSpec_Read image into current object
    const Geometry +&size_, const std::string &imageSpec_Read image of specified size into current +object. This form is useful for images that do not specify their size +or to specify a size hint for decoding an image. For example, when +reading a Photo CD, JBIG, or JPEG image, a size request causes the +library to return an image which is the next resolution greater or +equal to the specified size. This may result in memory and time savings.
    const Blob &blob_Read encoded image of specified +size from an in-memory BLOB into current +object. Depending on the method arguments, the Blob size, depth, and +format may also be specified. Some image formats require that size be +specified. The default ImageMagick uses for depth depends on its +Quantum size (8 or 16). If ImageMagick's Quantum size does not +match that of the image, the depth may need to be specified. +ImageMagick can usually automagically detect the image's format. +When +a format can't be automagically detected, the format must be specified.
    const Blob +&blob_, const Geometry &size_
    const Blob +&blob_, const Geometry &size_, +size_t depth_
    const Blob +&blob_, const Geometry &size_, +size_t depth_, const string &magick_
    const Blob +&blob_, const Geometry &size_, +const +string &magick_
    const size_t width_, const size_t +height_, std::string map_, const StorageType type_, const void *pixels_Read image based on an array of image pixels. +The pixel data must be in scanline order top-to-bottom. The data can be +character, short int, integer, float, or double. Float and double +require the pixels to be normalized [0..1]. The other types are +[0..MaxRGB]. For example, to create a 640x480 image from +unsigned red-green-blue character data, use +

    image.read( 640, 480, "RGB", CharPixel, +pixels );

    +

    The parameters are as follows:
    + + + + + + + + + + + + + + + + + + + + + + + + +
    width_Width in pixels of the image.
    height_Height in pixels of the image.
    map_This character string can be any +combination or order of R = red, G = green, B = blue, A = alpha, C = +cyan, Y = yellow M = magenta, and K = black. The ordering reflects the +order of the pixels in the supplied pixel array.
    type_Pixel storage type (CharPixel, +ShortPixel, IntegerPixel, FloatPixel, or DoublePixel)
    pixels_This array of values contain the pixel +components as defined by the map_ and type_ parameters. The length of +the arrays must equal the area specified by the width_ and height_ +values and type_ parameters.
    +

    +
    +
    reduceNoise
    +
    const double order_reduce noise in image using a noise peak elimination filter.
    randomThreshold
    +
    const Geometry +&thresholds_
    +
    Random threshold the +image. Changes the value of individual pixels based on the intensity of +each pixel compared to a random threshold. The result is a +low-contrast, two color image. The thresholds_ argument is a +geometry containing LOWxHIGH thresholds. If the string contains +2x2, 3x3, or 4x4, then an ordered dither of order 2, 3, or 4 will be +performed instead. This is a very fast alternative to 'quantize' based +dithering.
    +
    randomThresholdChannel
    +
    const Geometry +&thresholds_, const ChannelType channel_
    +
    Random threshold an +image channel. Similar to randomThreshold() +but restricted to the specified channel.
    +
    +
    roll
    +
    int columns_, ssize_t rows_Roll image (rolls image vertically and +horizontally) by specified number of columns and rows)
    +
    rotate
    +
    double degrees_Rotate image counter-clockwise by specified +number of degrees.
    +
    sample
    +
    const Geometry +&geometry_ Resize image by using pixel sampling algorithm
    +
    scale
    +
    const Geometry +&geometry_Resize image by using simple ratio algorithm
    +
    segment
    +
    double clusterThreshold_ = 1.0,
    + double smoothingThreshold_ = 1.5
    Segment (coalesce similar image components) +by analyzing the histograms of the color components and identifying +units that are homogeneous with the fuzzy c-means technique. Also uses quantizeColorSpace +and verbose image attributes. Specify clusterThreshold_ +, +as the number of pixels each cluster must +exceed +the cluster threshold to be considered valid. SmoothingThreshold_ +eliminates noise in the second derivative of the histogram. As +the +value is increased, you can expect a smoother +second derivative. The default is 1.5.
    +
    shade
    +
    double azimuth_ = 30, double elevation_ = 30, +
    + bool colorShading_ = false
    Shade image using distant light source. +Specify azimuth_ and elevation_ as the +position of the light source. By default, the shading +results as a grayscale image.. Set colorShading_ to true +to +shade the red, green, and blue components of the image.
    +
    shadow
    +
    const double percent_opacity = 80, const double sigma_ += 0.5, const ssize_t x_ = 0, const ssize_t y_ = 0simulate an image shadow
    +
    sharpen
    +
    const double radius_ = 1, const double sigma_ += 0.5Sharpen pixels in image. The radius_ +parameter specifies the radius of the Gaussian, in pixels, not counting +the center pixel. The sigma_ parameter specifies the +standard deviation of the Laplacian, in pixels.
    sharpenChannel
    +
    const ChannelType +channel_, const double radius_ = 0.0, const double sigma_ = 1.0
    +
    Sharpen pixel +quantums in an image channel The channel_ parameter specifies the +channel to sharpen.. The radius_ +parameter specifies the radius of the Gaussian, in pixels, not counting +the center pixel. The sigma_ parameter specifies the +standard deviation of the Laplacian, in pixels.
    +
    shave
    +
    const Geometry &geometry_Shave pixels from image edges.
    +
    shear
    +
    double xShearAngle_, double yShearAngle_Shear image (create parallelogram by sliding +image by X or Y axis). Shearing slides one edge of an image along +the X or Y axis, creating a +parallelogram. An X direction shear slides an edge along the X +axis, while a Y direction shear slides +an edge along the Y axis. The amount of the shear is controlled +by a shear angle. For X direction shears, x +degrees is measured relative to the Y axis, and similarly, for Y +direction shears y degrees is measured relative to the X +axis. Empty triangles left over from shearing the image are +filled with the color defined as borderColor.
    +
    solarize
    +
    double factor_ = 50.0Solarize image (similar to effect seen when +exposing a photographic film to light during the development process)
    +
    splice
    +
    const Geometry +&geometry_splice the background color into the image
    +
    spread
    +
    size_t amount_ = 3Spread pixels randomly within image by +specified amount
    +
    stegano
    +
    const Image &watermark_Add a digital watermark to the image (based +on second image)
    +
    sparseColor
    +
    const ChannelType channel, const SparseColorMethod method, const size_t number_arguments, const double *arguments Sparse color image, given a set of coordinates, interpolates the colors found at those coordinates, across the whole image, using various methods.
    +
    statistics
    +
    ImageStatistics *statisticsObtain image statistics. Statistics are normalized to the range of 0.0 to 1.0 and are output to the specified ImageStatistics structure. The structure includes members maximum, minimum, mean, standard_deviation, and variance for each of these channels: red, green, blue, and opacity (e.g. statistics->red.maximum).
    +
    stereo
    +
    const Image &rightImage_Create an image which appears in stereo when +viewed with red-blue glasses (Red image on left, blue on right)
    +
    swirl
    +
    double degrees_Swirl image (image pixels are rotated by +degrees)
    +
    texture
    +
    const Image &texture_Layer a texture on pixels matching image +background color.
    +
    threshold
    +
    double threshold_Threshold image
    +
    transform
    +
    const Geometry +&imageGeometry_Transform image based on image +and crop geometries. Crop geometry is optional.
    const Geometry +&imageGeometry_, const Geometry +&cropGeometry_
    +
    transparent
    +
    const Color +&color_Add matte image to image, setting pixels +matching color to transparent.
    +
    trim
    +
    voidTrim edges that are the background color from +the image.
    +
    unsharpmask
    +
    double radius_, double sigma_, double +amount_, double threshold_Sharpen the image using the unsharp mask +algorithm. The radius_ +parameter specifies the radius of the Gaussian, in pixels, not +counting the center pixel. The sigma_ parameter specifies the +standard deviation of the Gaussian, in pixels. The amount_ +parameter specifies the percentage of the difference between the +original and the blur image that is added back into the original. The threshold_ +parameter specifies the threshold in pixels needed to apply the +difference amount.
    unsharpmaskChannel
    +
    const ChannelType +channel_, const double radius_, const double sigma_, const double +amount_, const double threshold_
    +
    Sharpen an image +channel using the unsharp mask algorithm. The channel_ parameter specifies the +channel to sharpen. The radius_ +parameter specifies the radius of the Gaussian, in pixels, not +counting the center pixel. The sigma_ parameter specifies the +standard deviation of the Gaussian, in pixels. The amount_ +parameter specifies the percentage of the difference between the +original and the blur image that is added back into the original. The threshold_ +parameter specifies the threshold in pixels needed to apply the +difference amount.
    +
    wave
    +
    double amplitude_ = 25.0, double wavelength_ += 150.0Alter an image along a sine wave.
    +
    write
    +
    const string &imageSpec_Write image to a file using filename imageSpec_ +.
    + Caution: if +an image format is selected which is capable of supporting fewer +colors than the original image or quantization has been requested, the +original image will be quantized to fewer colors. Use a copy of the +original if this is a problem.
    Blob *blob_Write image to a in-memory BLOB stored in blob_. The magick_ +parameter specifies the image format to write (defaults to magick ). The depth_ parameter species the image +depth (defaults to depth ).
    + Caution: if +an image format is selected which is capable of supporting fewer +colors than the original image or quantization has been requested, the +original image will be quantized to fewer colors. Use a copy of the +original if this is a problem.
    Blob *blob_, +std::string &magick_
    Blob *blob_, +std::string &magick_, size_t depth_
    const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_, const std::string &map_, +const StorageType type_, void *pixels_Write pixel data into a buffer you supply. +The data is saved either as char, short int, integer, float or double +format in the order specified by the type_ parameter. For example, we +want to extract scanline 1 of a 640x480 image as character data in +red-green-blue order: +

    image.write(0,0,640,1,"RGB",0,pixels); +

    +

    The parameters are as follows:
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    x_Horizontal ordinate of left-most +coordinate of region to extract.
    y_Vertical ordinate of top-most +coordinate of region to extract.
    columns_Width in pixels of the region to +extract.
    rows_Height in pixels of the region to +extract.
    map_This character string can be any +combination or order of R = red, G = green, B = blue, A = alpha, C = +cyan, Y = yellow, M = magenta, and K = black. The ordering reflects +the order of the pixels in the supplied pixel array.
    type_Pixel storage type (CharPixel, +ShortPixel, IntegerPixel, FloatPixel, or DoublePixel)
    pixels_This array of values contain the pixel +components as defined by the map_ and type_ parameters. The length of +the arrays must equal the area specified by the width_ and height_ +values and type_ parameters.
    +

    +
    +
    resize
    +
    const Geometry +&geometry_Resize image to specified size.
+

+
+

Image Attributes

+
+Image attributes are set and obtained via methods in Image. Except for +methods which accept pointer arguments (e.g. chromaBluePrimary) +all methods return attributes by value. +

Image attributes are easily used. For example, to set the resolution +of the TIFF file "file.tiff" to 150 dots-per-inch (DPI) in both the +horizontal and vertical directions, you can use the following example +code:

+
+string filename("file.tiff"); 
+Image image; 
+image.read(filename); 
+image.resolutionUnits(PixelsPerInchResolution); 
+image.density(Geometry(150,150));   // could also use image.density("150x150") 
+image.write(filename)
+
+The supported image attributes and the method arguments required to +obtain them are shown in the following table:
+ +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Image Attributes
    +
    Function
    +
    +
    Type
    +
    +
    Get Signature
    +
    +
    Set Signature
    +
    +
    Description
    +
    +
    adjoin
    +
    boolvoidbool flag_Join images into a single multi-image file.
    +
    antiAlias
    +
    boolvoidbool flag_Control antialiasing of rendered Postscript +and Postscript or TrueType fonts. Enabled by default.
    +
    animation- +
    + Delay
    +
    size_t (0 to 65535)voidsize_t delay_Time in 1/100ths of a second (0 to 65535) +which must expire before displaying the next image in an animated +sequence. This option is useful for regulating the animation of a +sequence of GIF images within Netscape.
    +
    animation- +
    + Iterations
    +
    size_tvoidsize_t iterations_Number of iterations to loop an animation +(e.g. Netscape loop extension) for.
    attribute
    +
    string
    +
    const +std::string name_
    +
    const +std::string name_, const std::string value_An arbitrary named +image attribute. Any number of named attributes may be attached to the +image. For example, the image comment is a named image attribute with +the name "comment". EXIF tags are attached to the image as named +attributes. Use the syntax "EXIF:<tag>" to request an EXIF tag +similar to "EXIF:DateTime".
    +
    +
    background- +
    + Color
    +
    Color voidconst Color +&color_Image background color
    +
    background- +
    + Texture
    +
    stringvoidconst string &texture_Image file name to use as the background +texture. Does not modify image pixels.
    +
    baseColumns
    +
    size_tvoid Base image width (before transformations)
    +
    baseFilename
    +
    stringvoid Base image filename (before transformations)
    +
    baseRows
    +
    size_tvoid Base image height (before transformations)
    +
    borderColor
    +
    Color void const Color +&color_Image border color
    boundingBoxGeometryvoid Return smallest bounding box enclosing +non-border pixels. The current fuzz value is used when discriminating +between pixels. This is the crop bounding box used by +crop(Geometry(0,0)).
    +
    boxColor
    +
    Color voidconst Color +&boxColor_Base color that annotation text is rendered +on.
    cacheThresholdsize_t const size_tPixel cache threshold in megabytes. Once this +threshold is exceeded, all subsequent pixels cache operations are +to/from disk. This is a static method and the attribute it sets is +shared by all Image objects.
    channelDepth
    +
    size_t +
    +
    const +ChannelType channel_
    +
    const ChannelType +channel_, const size_t depth_
    +
    Channel modulus depth. +The channel modulus depth represents the minimum number of bits +required +to support the channel without loss. Setting the channel's modulus +depth +modifies the channel (i.e. discards resolution) if the requested +modulus +depth is less than the current modulus depth, otherwise the channel is +not altered. There is no attribute associated with the modulus depth so +the current modulus depth is obtained by inspecting the pixels. As a +result, the depth returned may be less than the most recently set +channel depth. Subsequent image processing may result in increasing the +channel depth.
    +
    +
    chroma- +
    + BluePrimary
    +
    double x & ydouble *x_, double *y_double x_, double y_Chromaticity blue primary point (e.g. x=0.15, +y=0.06)
    +
    chroma- +
    + GreenPrimary
    +
    double x & ydouble *x_, double *y_double x_, double y_Chromaticity green primary point (e.g. x=0.3, +y=0.6)
    +
    chroma- +
    + RedPrimary
    +
    double x & ydouble *x_, double *y_double x_, double y_Chromaticity red primary point (e.g. x=0.64, +y=0.33)
    +
    chroma- +
    + WhitePoint
    +
    double x & ydouble*x_, double *y_double x_, double y_Chromaticity white point (e.g. x=0.3127, +y=0.329)
    +
    classType
    +
    ClassType + void ClassType +class_Image storage class. Note that +conversion from a DirectClass image to a PseudoClass image may result +in a loss of color due to the limited size of the palette (256 or +65535 colors).
    +
    clipMask
    +
    Imagevoidconst Image &clipMask_Associate a clip mask image with the current +image. The clip mask image must have the same dimensions as the current +image or an exception is thrown. Clipping occurs wherever pixels are +transparent in the clip mask image. Clipping Pass an invalid image to +unset an existing clip mask.
    +
    colorFuzz
    +
    doublevoiddouble fuzz_Colors within this distance are considered +equal. A number of algorithms search for a target color. By +default the color must be exact. Use this option to match colors that +are close to the target color in RGB space.
    +
    colorMap
    +
    Color size_t index_size_t index_, const Color &color_Color at colormap index.
    +
    colorMapSize
    +
    +
    size_t
    +
    void
    +
    size_t entries_
    +
    Number of entries in the +colormap. Setting the colormap size may extend or truncate the +colormap. +The maximum number of supported entries is specified by the MaxColormapSizeconstant, +and is dependent on the value of QuantumDepth when ImageMagick is +compiled. An exception is thrown if more entries are requested than may +be supported. Care should be taken when truncating the colormap to +ensure that the image colormap indexes reference valid colormap entries.
    +
    +
    colorSpace
    +
    ColorspaceType +colorSpace_voidColorspaceType +colorSpace_The colorspace (e.g. CMYK) used to represent +the image pixel colors. Image pixels are always stored as RGB(A) except +for the case of CMY(K).
    +
    columns
    +
    size_tvoid Image width
    +
    comment
    +
    stringvoid Image comment
    +
    compose
    +
    CompositeOperator + voidCompositeOperator +compose_Composition operator to be used when +composition is implicitly used (such as for image flattening).
    +
    compress- +
    + Type
    +
    CompressionType + voidCompressionType +compressType_Image compresion type. The default is the +compression type of the specified image file.
    +
    debug
    +
    boolvoidbool flag_Enable printing of internal debug messages +from ImageMagick as it executes.
    defineValue
    +
    string
    +
    const std::string +&magick_, const std::string &key_
    +
    const std::string +&magick_, const std::string &key_, const std::string +&value_
    +
    Set or obtain a +definition string to applied when encoding or decoding the specified +format. The meanings of the definitions are format specific. The format +is designated by the magick_ +argument, the format-specific key is designated by key_, and the associated value is +specified by value_. See the +defineSet() method if the key must be removed entirely.
    +
    defineSet
    +
    bool
    +
    const std::string +&magick_, const std::string &key_
    +
    const std::string +&magick_, const std::string &key_, bool flag_
    +
    Set or obtain a +definition flag to applied when encoding or decoding the specified +format.. Similar to the defineValue() method except that +passing the flag_ value +'true' +creates a value-less define with that format and key. Passing the flag_ +value 'false' removes any existing matching definition. The method +returns 'true' if a matching key exists, and 'false' if no matching key +exists.
    +
    +
    density
    +
    Geometry +(default 72x72)voidconst Geometry +&density_Vertical and horizontal resolution in pixels +of the image. This option specifies an image density when decoding a +Postscript or Portable Document page. Often used with psPageSize.
    +
    depth
    +
    size_t (8-32)voidsize_t depth_Image depth. Used to specify the bit depth +when reading or writing raw images or when the output format +supports multiple depths. Defaults to the quantum depth that +ImageMagick is compiled with.
    +
    endian
    +
    EndianType + voidEndianType +endian_Specify (or obtain) endian option for formats +which support it.
    +
    directory
    +
    stringvoid Tile names from within an image montage
    +
    file
    +
    FILE *FILE *FILE *file_Image file descriptor.
    +
    fileName
    +
    stringvoidconst string &fileName_Image file name.
    +
    fileSize
    +
    off_tvoid Number of bytes of the image on disk
    +
    fillColor
    +
    Colorvoidconst Color &fillColor_Color to use when filling drawn objects
    +
    fillPattern
    +
    Imagevoidconst Image &fillPattern_Pattern image to use when filling drawn +objects.
    +
    fillRule
    +
    FillRule + voidconst Magick::FillRule &fillRule_Rule to use when filling drawn objects.
    +
    filterType
    +
    FilterTypes + voidFilterTypes +filterType_Filter to use when resizing image. The +reduction filter employed has a significant effect on the time required +to resize an image and the resulting quality. The default filter is Lanczos +which has been shown to produce high quality results when reducing most +images.
    +
    font
    +
    stringvoidconst string &font_Text rendering font. If the font is a fully +qualified X server font name, the font is obtained from an X +server. To use a TrueType font, precede the TrueType filename with an +@. Otherwise, specify a Postscript font name (e.g. +"helvetica").
    +
    fontPointsize
    +
    size_tvoidsize_t pointSize_Text rendering font point size
    +
    fontTypeMetrics
    +
    TypeMetric const std::string &text_, TypeMetric *metrics Update metrics with font type metrics using +specified text, and current font and fontPointSize settings.
    +
    format
    +
    stringvoid Long form image format description.
    +
    gamma
    +
    double (typical range 0.8 to 2.3)void Gamma level of the image. The same color +image displayed on two different workstations may +look different due to differences in the display monitor. +Use gamma correction to adjust for this +color difference.
    +
    geometry
    +
    Geometry void Preferred size of the image when encoding.
    +
    gifDispose- +
    + Method
    +
    size_t
    + { 0 = Disposal not specified,
    + 1 = Do not dispose of graphic,
    + 3 = Overwrite graphic with background color, +
    + 4 = Overwrite graphic with previous graphic. }
    voidsize_t disposeMethod_GIF disposal method. This option is used to +control how successive frames are rendered (how the preceding frame is +disposed of) when creating a GIF animation.
    +
    iccColorProfile
    +
    Blob voidconst Blob +&colorProfile_ICC color profile. Supplied via a Blob since Magick++/ and ImageMagick do not +currently support formating this data structure directly. +Specifications are available from the +International Color Consortium for the format of ICC color profiles.
    +
    interlace- +
    + Type
    +
    InterlaceType + voidInterlaceType +interlace_The type of interlacing scheme (default NoInterlace +). This option is used to specify the type of interlacing +scheme for raw image formats such as RGB or YUV. NoInterlace +means do not interlace, LineInterlace uses scanline +interlacing, and PlaneInterlace uses plane interlacing. +PartitionInterlace is like PlaneInterlace except the +different planes are saved to individual files (e.g. +image.R, image.G, and image.B). Use LineInterlace or +PlaneInterlace to create an interlaced GIF or progressive JPEG +image.
    +
    iptcProfile
    +
    Blob voidconst Blob & +iptcProfile_IPTC profile. Supplied via a Blob since Magick++ and ImageMagick do not +currently support formating this data structure directly. +Specifications are available from the +International Press Telecommunications Council for IPTC profiles.
    +
    label
    +
    stringvoidconst string &label_Image label
    +
    magick
    +
    stringvoid const string &magick_Get image format (e.g. "GIF")
    +
    matte
    +
    boolvoidbool matteFlag_True if the image has transparency. If set +True, store matte channel if the image has one otherwise create +an opaque one.
    +
    matteColor
    +
    Color voidconst Color +&matteColor_Image matte (frame) color
    +
    meanError- +
    + PerPixel
    +
    doublevoid The mean error per pixel computed when an +image is color reduced. This parameter is only valid if verbose is set +to true and the image has just been quantized.
    modulusDepth
    +
    size_t +
    +
    void
    +
    size_t +depth_
    +
    Image +modulus depth (minimum number of bits required to support +red/green/blue components without loss of accuracy). The pixel modulus +depth may be decreased by supplying a value which is less than the +current value, updating the pixels (reducing accuracy) to the new +depth. +The pixel modulus depth can not be increased over the current value +using this method.
    +
    +
    monochrome
    +
    boolvoidbool flag_Transform the image to black and white
    +
    montage- +
    + Geometry
    +
    Geometry void Tile size and offset within an image montage. +Only valid for montage images.
    +
    normalized- +
    + MaxError
    +
    doublevoid The normalized max error per pixel computed +when an image is color reduced. This parameter is only valid if verbose +is set to true and the image has just been quantized.
    +
    normalized- +
    + MeanError
    +
    doublevoid The normalized mean error per pixel computed +when an image is color reduced. This parameter is only valid if verbose +is set to true and the image has just been quantized.
    orientation
    +
    OrientationTypevoid
    +
    OrientationType +orientation_Image orientation. + Supported by some file formats such as DPX and TIFF. Useful for +turning the right way up.
    +
    +
    packets
    +
    size_tvoid The number of runlength-encoded packets in +
    + the image
    +
    packetSize
    +
    size_tvoid The number of bytes in each pixel packet
    +
    page
    +
    Geometry + voidconst Geometry &pageSize_Preferred size and location of an image +canvas. +

    Use this option to specify the dimensions +and position of the Postscript page in dots per inch or a TEXT page in +pixels. This option is typically used in concert with density .

    +

    Page may also be used to position a GIF +image (such as for a scene in an animation)

    +
    +
    pixelColor
    +
    Color ssize_t x_, ssize_t y_ssize_t x_, ssize_t y_, const Color &color_Get/set pixel color at location x & y.
    +
    profile
    +
    +
    Blob
    +
    const std::string name_
    +
    const std::string name_, const Blob +&colorProfile_
    +
    Get/set/remove a named +profile. Valid names include "*", +"8BIM", "ICM", "IPTC", or a user/format-defined profile name.
    +
    +
    quality
    +
    size_t (0 to 100)voidsize_t quality_JPEG/MIFF/PNG compression level (default 75).
    +
    quantize- +
    + Colors
    +
    size_tvoidsize_t colors_Preferred number of colors in the image. The +actual number of colors in the image may be less than your request, but +never more. Images with less unique colors than specified with this +option will have any duplicate or unused colors removed.
    +
    quantize- +
    + ColorSpace
    +
    ColorspaceType + voidColorspaceType +colorSpace_Colorspace to quantize colors in (default +RGB). Empirical evidence suggests that 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.
    +
    quantize- +
    + Dither
    +
    boolvoidbool flag_Apply Floyd/Steinberg error diffusion to the +image. The basic strategy of dithering is to trade +intensity +resolution for spatial resolution by +averaging the intensities of several +neighboring pixels. Images which suffer from +severe contouring when reducing colors can be +improved with this option. The quantizeColors or monochrome option must +be set for this option to take effect.
    +
    quantize- +
    + TreeDepth
    +
    size_t voidsize_t treeDepth_Depth of the quantization color +classification tree. Values of 0 or 1 allow selection of the optimal +tree depth for the color reduction algorithm. Values between 2 and 8 +may be used to manually adjust the tree depth.
    +
    rendering- +
    + Intent
    +
    RenderingIntent + voidRenderingIntent +render_The type of rendering intent
    +
    resolution- +
    + Units
    +
    ResolutionType + voidResolutionType +units_Units of image resolution
    +
    rows
    +
    size_tvoid The number of pixel rows in the image
    +
    scene
    +
    size_tvoidsize_t scene_Image scene number
    +
    signature
    +
    stringbool force_ = false Image MD5 signature. Set force_ to 'true' to +force re-computation of signature.
    +
    size
    +
    Geometry voidconst Geometry +&geometry_Width and height of a raw image (an image +which does not support width and height information). Size may +also be used to affect the image size read from a multi-resolution +format (e.g. Photo CD, JBIG, or JPEG.
    +
    strip
    +
    voidstrips an image of all profiles and comments.
    +
    strokeAntiAlias
    +
    boolvoidbool flag_Enable or disable anti-aliasing when drawing +object outlines.
    +
    strokeColor
    +
    Colorvoidconst Color &strokeColor_Color to use when drawing object outlines
    +
    strokeDashOffset
    +
    size_tvoiddouble strokeDashOffset_While drawing using a dash pattern, specify +distance into the dash pattern to start the dash (default 0).
    +
    strokeDashArray
    +
    const double*voidconst double* strokeDashArray_Specify the pattern of dashes and gaps used +to stroke paths. The strokeDashArray represents a zero-terminated +array of numbers that specify the lengths (in pixels) of alternating +dashes and gaps in user units. If an odd number of values is provided, +then the list of values is repeated to yield an even number of +values. A typical strokeDashArray_ array might contain the +members 5 3 2 0, where the zero value indicates the end of the pattern +array.
    +
    strokeLineCap
    +
    LineCapvoidLineCap lineCap_Specify the shape to be used at the corners +of paths (or other vector shapes) when they are stroked. Values of +LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.
    +
    strokeLineJoin
    +
    LineJoinvoidLineJoin lineJoin_Specify the shape to be used at the corners +of paths (or other vector shapes) when they are stroked. Values of +LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.
    +
    strokeMiterLimit
    +
    size_tvoidsize_t miterLimit_Specify miter limit. When two line segments +meet at a sharp angle and miter joins have been specified for +'lineJoin', it is possible for the miter to extend far beyond the +thickness of the line stroking the path. The miterLimit' imposes a +limit on the ratio of the miter length to the 'lineWidth'. The default +value of this parameter is 4.
    +
    strokeWidth
    +
    doublevoiddouble strokeWidth_Stroke width for use when drawing vector +objects (default one)
    +
    strokePattern
    +
    Imagevoidconst Image &strokePattern_Pattern image to use while drawing object +stroke (outlines).
    +
    subImage
    +
    size_tvoidsize_t subImage_Subimage of an image sequence
    +
    subRange
    +
    size_tvoidsize_t subRange_Number of images relative to the base image
    +
    textEncoding
    +
    +
    string
    +
    void
    +
    const std::string &encoding_
    +
    Specify the code set to use for text +annotations. The only character encoding which may be specified at +this time is "UTF-8" for representing Unicode as a +sequence of bytes. Specify an empty string to use the default ASCII +encoding. Successful text annotation using Unicode may require fonts +designed to support Unicode.
    +
    +
    tileName
    +
    stringvoidconst string &tileName_Tile name
    +
    totalColors
    +
    size_tvoid Number of colors in the image
    +
    type
    +
    ImageType + void ImageType Image type.
    +
    verbose
    +
    boolvoidbool verboseFlag_Print detailed information about the image
    +
    view
    +
    stringvoidconst string &view_FlashPix viewing parameters.
    +
    virtualPixelMethod
    +
    VirtualPixelMethod + voidVirtualPixelMethod +virtualPixelMethod_Image virtual pixel method.
    +
    x11Display
    +
    string (e.g. "hostname:0.0")voidconst string &display_X11 display to display to, obtain fonts from, +or to capture image from
    +
    xResolution
    +
    doublevoid x resolution of the image
    +
    yResolution
    +
    doublevoid y resolution of the image
+
+

Low-Level Image Pixel Access

+
+Image pixels (of type PixelPacket ) +may be accessed directly via the Image Pixel Cache . The +image pixel cache is a rectangular window into the actual image pixels +(which may be in memory, memory-mapped from a disk file, or entirely on +disk). Two interfaces exist to access the Image Pixel Cache. +The +interface described here (part of the Image class) supports +only +one view at a time. See the Pixels +class for a more abstract interface which supports simultaneous pixel +views (up to the number of rows). As an analogy, the interface +described +here relates to the Pixels class as +stdio's gets() relates to fgets(). The Pixels +class provides the more general form of the interface. +

Obtain existing image pixels via getPixels(). Create a new +pixel region using setPixels().

+

In order to ensure that only the current generation of the image is +modified, the Image's modifyImage() method +should be invoked to reduce the reference count on the underlying image +to one. If this is not done, then it is possible for a previous +generation of the image to be modified due to the use of reference +counting when copying or constructing an Image.
+

+

Depending on the capabilities of the operating system, and the +relationship of the window to the image, the pixel cache may be a copy +of the pixels in the selected window, or it may be the actual image +pixels. In any case calling syncPixels() insures that the base +image is updated with the contents of the modified pixel cache. The +method readPixels() supports copying foreign pixel data +formats +into the pixel cache according to the QuantumTypes. The method writePixels() +supports copying the pixels in the cache to a foreign pixel +representation according to the format specified by QuantumTypes.

+

The pixel region is effectively a small image in which the pixels +may be accessed, addressed, and updated, as shown in the following +example: +

+

+Image image("cow.png"); +// Ensure that there are no other references to this image. +image.modifyImage(); +// Set the image type to TrueColor DirectClass representation. +image.type(TrueColorType); +// Request pixel region with size 60x40, and top origin at 20x30 +ssize_t columns = 60; +PixelPacket *pixel_cache = image.getPixels(20,30,columns,40); +// Set pixel at column 5, and row 10 in the pixel cache to red. +ssize_t column = 5; +ssize_t row = 10; +PixelPacket *pixel = pixel_cache+row*columns+column; +*pixel = Color("red"); +// Save changes to underlying image . +image.syncPixels(); + // Save updated image to file. +image.write("horse.png"); +
+

+

The image cache supports the following methods:
+ +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Image Cache Methods
    +
    Method
    +
    +
    Returns
    +
    +
    Signature
    +
    +
    Description
    +
    +
    getConstPixels
    +
    const PixelPacket +*const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_Transfers pixels from the image to the pixel +cache as defined by the specified rectangular region. The returned pointer remains valid until the next getPixel, +getConstPixels, or setPixels call and should never be deallocated by +the +user.
    +
    getConstIndexes
    +
    const IndexPacket*voidReturns a pointer to the Image pixel indexes +corresponding to a previous getPixel, +getConstPixels, or setPixels call. The +returned pointer remains valid until the next getPixel, getConstPixels, +or setPixels call and should never be deallocated by the user. Only valid for PseudoClass images or CMYKA images. The +pixel indexes represent an array of type IndexPacket, with each entry +corresponding to an x,y pixel position. For PseudoClass images, the +entry's value is the offset into the colormap (see colorMap +) for that pixel. For CMYKA images, the indexes are used to contain the +alpha channel.
    +
    getIndexes
    +
    IndexPacket*voidReturns a pointer to the Image pixel indexes +corresponding to the pixel region requested by the last getConstPixels , getPixels +, or setPixels call. The +returned pointer remains valid until the next getPixel, getConstPixels, +or setPixels call and should never be deallocated by the user. Only valid for PseudoClass images +or +CMYKA images. The pixel indexes represent an array of type +IndexPacket, with each entry corresponding to a pixel x,y position. For +PseudoClass images, the entry's value is the offset into the colormap +(see colorMap ) for that pixel. For +CMYKA +images, the indexes are used to contain the alpha channel.
    +
    getPixels
    +
    PixelPacket *const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_Transfers pixels from the image to the pixel +cache as defined by the specified rectangular region. Modified pixels +may be subsequently transferred back to the image via syncPixels. The returned pointer remains valid until the next getPixel, +getConstPixels, or setPixels call and should never be deallocated by +the +user.
    +
    setPixels
    +
    PixelPacket *const ssize_t x_, const ssize_t y_, const size_t +columns_, const size_t rows_Allocates a pixel cache region to store image +pixels as defined by the region rectangle. This area is +subsequently transferred from the pixel cache to the image via +syncPixels. The returned pointer remains +valid until the next getPixel, getConstPixels, or setPixels call and +should never be deallocated by the user.
    +
    syncPixels
    +
    voidvoidTransfers the image cache pixels to the image.
    +
    readPixels
    +
    voidQuantumTypes +quantum_, unsigned char *source_,Transfers one or more pixel components from a +buffer or file into the image pixel cache of an image. ReadPixels is +typically used to support image decoders. The region transferred +corresponds to the region set by a preceding setPixels call.
    +
    writePixels
    +
    voidQuantumTypes +quantum_, unsigned char *destination_Transfers one or more pixel components from +the image pixel cache to a buffer or file. WritePixels is typically +used to support image encoders. The region transferred corresponds to +the region set by a preceding getPixels or getConstPixels call.
+

+
+
+ +
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ImageMagick_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/ImageMagick_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/ImageMagick_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ImageMagick_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/ImageMagick_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/ImageMagick_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/MagickCore_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/MagickCore_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/MagickCore_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/MagickCore_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/MagickCore_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/MagickCore_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/PreRvIcccm_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/PreRvIcccm_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/PreRvIcccm_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/PreRvIcccm_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/PreRvIcccm_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/PreRvIcccm_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/PreRvIcccm_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/PreRvIcccm_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/PreRvIcccm_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/animate-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/animate-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/animate-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/animate-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/animate-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/animate-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/animate_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/animate_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/animate_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/animate_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/animate_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/animate_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/animate_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/animate_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/animate_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/annotate_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/annotate_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/annotate_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/annotate_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/annotate_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/annotate_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/annotate_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/annotate_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/annotate_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/annotated.html b/share/doc/ImageMagick-7/www/api/MagickCore/annotated.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/annotated.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/api_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/api_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/api_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/api_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/api_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/api_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/artifact_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/artifact_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/artifact_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/artifact_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/artifact_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/artifact_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/artifact_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/artifact_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/artifact_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/blob-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/blob-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/blob-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/blob-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/blob-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/blob-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/blob_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/blob_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/blob_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/blob_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/blob_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/blob_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/blob_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/blob_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/blob_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/cache-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/cache-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/cache-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/cache-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/cache-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/cache-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/cache-view_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/cache-view_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/cache-view_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/cache-view_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/cache-view_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/cache-view_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/cache-view_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/cache-view_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/cache-view_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/cache_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/cache_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/cache_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/cache_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/cache_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/cache_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/cache_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/cache_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/cache_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/classes.html b/share/doc/ImageMagick-7/www/api/MagickCore/classes.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/classes.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/client_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/client_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/client_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/client_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/client_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/client_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/client_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/client_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/client_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/coder_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/coder_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/coder_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/coder_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/coder_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/coder_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/coder_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/coder_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/coder_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/color-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/color-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/color-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/color-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/color-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/color-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/color_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/color_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/color_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/color_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/color_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/color_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/color_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/color_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/color_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/colorspace-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/colorspace-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/colorspace_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/colorspace_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/colorspace_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/colorspace_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/compare_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/compare_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/compare_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/compare_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/compare_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/compare_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/compare_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/compare_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/compare_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/composite-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/composite-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/composite-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/composite-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/composite-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/composite-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/composite_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/composite_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/composite_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/composite_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/composite_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/composite_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/composite_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/composite_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/composite_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/compress_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/compress_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/compress_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/compress_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/compress_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/compress_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/compress_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/compress_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/compress_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/configure_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/configure_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/configure_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/configure_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/configure_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/configure_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/configure_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/configure_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/configure_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/constitute_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/constitute_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/constitute_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/constitute_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/constitute_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/constitute_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/constitute_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/constitute_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/constitute_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/decorate_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/decorate_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/decorate_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/decorate_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/decorate_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/decorate_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/decorate_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/decorate_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/decorate_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/delegate_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/delegate_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/delegate_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/delegate_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/delegate_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/delegate_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/delegate_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/delegate_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/delegate_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/deprecate_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/deprecate_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/deprecate_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/deprecate_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/deprecate_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/deprecate_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/deprecate_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/deprecate_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/deprecate_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/dir_b44b349db36f8365f5234e57d3038770.html b/share/doc/ImageMagick-7/www/api/MagickCore/dir_b44b349db36f8365f5234e57d3038770.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/dir_b44b349db36f8365f5234e57d3038770.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/dirs.html b/share/doc/ImageMagick-7/www/api/MagickCore/dirs.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/dirs.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/display-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/display-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/display-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/display-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/display-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/display-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/display_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/display_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/display_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/display_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/display_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/display_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/display_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/display_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/display_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/distort_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/distort_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/distort_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/distort_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/distort_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/distort_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/distort_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/distort_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/distort_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/doxygen.css b/share/doc/ImageMagick-7/www/api/MagickCore/doxygen.css new file mode 100644 index 0000000..e261cf6 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/doxygen.css @@ -0,0 +1,359 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; + margin-left: 3px; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; + white-space: nowrap; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/doxygen.png b/share/doc/ImageMagick-7/www/api/MagickCore/doxygen.png new file mode 100644 index 0000000..f0a274b Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/doxygen.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/draw-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/draw-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/draw-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/draw-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/draw-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/draw-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/draw_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/draw_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/draw_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/draw_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/draw_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/draw_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/draw_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/draw_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/draw_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/effect_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/effect_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/effect_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/effect_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/effect_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/effect_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/effect_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/effect_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/effect_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/enhance_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/enhance_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/enhance_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/enhance_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/enhance_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/enhance_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/enhance_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/enhance_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/enhance_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/exception-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/exception-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/exception-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/exception-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/exception-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/exception-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/exception_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/exception_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/exception_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/exception_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/exception_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/exception_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/exception_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/exception_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/exception_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/files.html b/share/doc/ImageMagick-7/www/api/MagickCore/files.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/files.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2blank.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2blank.png new file mode 100644 index 0000000..493c3c0 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2blank.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2doc.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2doc.png new file mode 100644 index 0000000..f72999f Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2doc.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2folderclosed.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2folderclosed.png new file mode 100644 index 0000000..d6d0634 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2folderclosed.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2folderopen.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2folderopen.png new file mode 100644 index 0000000..bbe2c91 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2folderopen.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2lastnode.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2lastnode.png new file mode 100644 index 0000000..e7b9ba9 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2lastnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2link.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2link.png new file mode 100644 index 0000000..14f3fed Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2link.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2mlastnode.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2mlastnode.png new file mode 100644 index 0000000..09ceb6a Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2mlastnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2mnode.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2mnode.png new file mode 100644 index 0000000..3254c05 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2mnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2node.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2node.png new file mode 100644 index 0000000..c9f06a5 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2node.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2plastnode.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2plastnode.png new file mode 100644 index 0000000..0b07e00 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2plastnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2pnode.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2pnode.png new file mode 100644 index 0000000..2001b79 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2pnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/ftv2vertline.png b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2vertline.png new file mode 100644 index 0000000..b330f3a Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/ftv2vertline.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x61.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x61.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x61.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x62.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x62.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x62.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x63.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x63.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x63.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x64.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x64.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x64.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x65.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x65.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x65.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x66.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x66.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x66.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x67.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x67.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x67.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x68.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x68.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x68.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x69.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x69.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x69.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6b.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6b.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6b.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6c.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6d.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6d.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6d.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6e.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6e.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6e.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6f.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6f.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x6f.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x70.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x70.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x70.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x71.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x71.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x71.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x72.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x72.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x72.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x73.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x73.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x73.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x74.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x74.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x74.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x75.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x75.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x75.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x76.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x76.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x76.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x77.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x77.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x77.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x78.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x78.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x78.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x79.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x79.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x79.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x7a.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x7a.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_0x7a.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_func.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_func.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_func.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x61.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x61.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x61.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x62.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x62.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x62.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x63.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x63.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x63.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x64.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x64.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x64.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x65.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x65.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x65.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x66.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x66.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x66.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x67.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x67.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x67.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x68.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x68.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x68.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x69.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x69.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x69.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6b.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6b.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6b.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6c.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6d.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6d.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6d.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6e.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6e.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6e.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6f.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6f.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x6f.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x70.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x70.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x70.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x71.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x71.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x71.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x72.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x72.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x72.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x73.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x73.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x73.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x74.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x74.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x74.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x75.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x75.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x75.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x76.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x76.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x76.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x77.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x77.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x77.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x78.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x78.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x78.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x79.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x79.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x79.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x7a.html b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x7a.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/functions_vars_0x7a.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/fx-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/fx-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/fx-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/fx-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/fx-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/fx-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/fx_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/fx_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/fx_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/fx_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/fx_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/fx_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/fx_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/fx_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/fx_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/gem_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/gem_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/gem_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/gem_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/gem_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/gem_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/gem_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/gem_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/gem_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/geometry_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/geometry_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/geometry_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/geometry_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/geometry_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/geometry_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/geometry_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/geometry_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/geometry_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x61.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x61.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x61.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x62.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x62.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x62.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x63.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x63.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x63.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x64.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x64.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x64.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x65.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x65.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x65.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x66.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x66.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x66.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x67.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x67.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x67.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x68.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x68.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x68.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x69.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x69.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x69.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6a.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6a.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6a.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6b.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6b.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6b.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6c.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6d.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6d.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6d.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6e.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6e.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6e.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6f.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6f.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x6f.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x70.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x70.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x70.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x71.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x71.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x71.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x72.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x72.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x72.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x73.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x73.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x73.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x74.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x74.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x74.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x75.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x75.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x75.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x76.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x76.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x76.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x77.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x77.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x77.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x78.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x78.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x78.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x79.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x79.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x79.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x7a.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x7a.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_0x7a.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x61.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x61.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x61.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x62.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x62.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x62.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x63.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x63.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x63.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x64.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x64.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x64.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x65.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x65.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x65.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x66.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x66.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x66.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x67.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x67.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x67.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x68.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x68.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x68.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x69.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x69.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x69.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6b.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6b.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6b.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6c.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6d.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6d.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6d.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6e.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6e.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6e.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6f.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6f.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x6f.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x70.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x70.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x70.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x71.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x71.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x71.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x72.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x72.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x72.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x73.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x73.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x73.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x74.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x74.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x74.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x75.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x75.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x75.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x76.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x76.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x76.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x77.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x77.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x77.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x78.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x78.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x78.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x79.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x79.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_defs_0x79.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_enum.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_enum.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_enum.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x62.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x62.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x62.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x63.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x63.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x63.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x64.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x64.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x64.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x65.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x65.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x65.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x66.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x66.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x66.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x67.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x67.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x67.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x68.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x68.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x68.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x69.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x69.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x69.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6a.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6a.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6a.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6b.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6b.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6b.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6c.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6d.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6d.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6d.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6e.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6e.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6e.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6f.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6f.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x6f.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x70.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x70.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x70.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x71.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x71.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x71.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x72.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x72.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x72.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x73.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x73.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x73.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x74.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x74.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x74.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x75.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x75.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x75.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x76.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x76.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x76.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x77.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x77.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x77.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x78.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x78.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x78.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x79.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x79.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x79.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x7a.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x7a.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_eval_0x7a.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x62.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x62.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x62.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x63.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x63.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x63.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x64.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x64.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x64.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x65.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x65.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x65.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x66.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x66.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x66.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x67.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x67.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x67.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x68.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x68.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x68.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x69.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x69.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x69.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6a.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6a.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6a.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6b.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6b.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6b.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6c.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6d.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6d.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6d.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6e.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6e.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6e.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6f.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6f.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x6f.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x70.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x70.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x70.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x71.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x71.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x71.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x72.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x72.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x72.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x73.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x73.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x73.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x74.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x74.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x74.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x75.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x75.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x75.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x76.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x76.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x76.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x77.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x77.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x77.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x78.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x78.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x78.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x79.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x79.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x79.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x7a.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x7a.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_func_0x7a.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_type.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_type.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_type.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/globals_vars.html b/share/doc/ImageMagick-7/www/api/MagickCore/globals_vars.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/globals_vars.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/hashmap_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/hashmap_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/hashmap_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/hashmap_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/hashmap_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/hashmap_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/hashmap_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/hashmap_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/hashmap_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/identify_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/identify_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/identify_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/identify_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/identify_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/identify_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/identify_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/identify_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/identify_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/image-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/image-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/image-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/image-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/image-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/image-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/image_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/image_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/image_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/image_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/image_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/image_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/image_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/image_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/image_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/index.html b/share/doc/ImageMagick-7/www/api/MagickCore/index.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/index.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/layer_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/layer_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/layer_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/layer_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/layer_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/layer_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/layer_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/layer_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/layer_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/list_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/list_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/list_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/list_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/list_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/list_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/list_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/list_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/list_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/locale_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/locale_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/locale_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/locale___8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/locale___8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/locale___8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/locale___8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/locale___8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/locale___8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/log_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/log_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/log_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/log_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/log_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/log_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/log_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/log_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/log_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/mac_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/mac_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/mac_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/mac_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/mac_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/mac_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/mac_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/mac_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/mac_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magic_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/magic_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magic_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magic_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/magic_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magic_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magic_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/magic_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magic_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magick-config_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/magick-config_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magick-config_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magick-config_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/magick-config_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magick-config_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magick-type_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/magick-type_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magick-type_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magick-type_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/magick-type_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magick-type_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magick_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/magick_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magick_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magick_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/magick_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magick_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/magick_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/magick_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/magick_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/main.html b/share/doc/ImageMagick-7/www/api/MagickCore/main.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/main.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/matrix_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/matrix_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/matrix_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/matrix_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/matrix_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/matrix_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/matrix_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/matrix_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/matrix_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/memory_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/memory_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/memory_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/memory___8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/memory___8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/memory___8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/memory___8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/memory___8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/memory___8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/methods_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/methods_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/methods_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/methods_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/methods_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/methods_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/mime-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/mime-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/mime-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/mime-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/mime-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/mime-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/mime_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/mime_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/mime_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/mime_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/mime_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/mime_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/mime_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/mime_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/mime_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/module_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/module_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/module_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/module_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/module_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/module_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/module_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/module_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/module_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/monitor_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/monitor_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/monitor_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/monitor_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/monitor_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/monitor_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/monitor_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/monitor_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/monitor_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/montage_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/montage_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/montage_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/montage_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/montage_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/montage_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/montage_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/montage_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/montage_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/nt-base_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/nt-base_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/nt-base_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/nt-base_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/nt-base_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/nt-base_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/nt-base_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/nt-base_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/nt-base_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/nt-feature_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/nt-feature_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/nt-feature_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/nt-feature_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/nt-feature_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/nt-feature_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/nt-feature_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/nt-feature_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/nt-feature_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/option_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/option_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/option_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/option_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/option_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/option_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/option_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/option_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/option_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/paint_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/paint_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/paint_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/paint_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/paint_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/paint_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/paint_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/paint_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/paint_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/pixel-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/pixel-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/pixel-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/pixel-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/pixel-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/pixel-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/pixel_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/pixel_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/pixel_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/pixel_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/pixel_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/pixel_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/pixel_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/pixel_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/pixel_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/prepress_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/prepress_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/prepress_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/prepress_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/prepress_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/prepress_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/prepress_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/prepress_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/prepress_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/profile_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/profile_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/profile_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/profile_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/profile_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/profile_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/profile_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/profile_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/profile_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/property_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/property_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/property_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/property_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/property_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/property_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/property_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/property_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/property_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/quantize_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/quantize_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/quantize_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/quantize_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/quantize_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/quantize_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/quantize_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/quantize_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/quantize_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/quantum-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/quantum-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/quantum-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/quantum-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/quantum-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/quantum-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/quantum_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/quantum_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/quantum_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/quantum_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/quantum_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/quantum_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/quantum_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/quantum_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/quantum_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/random_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/random_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/random_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/random___8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/random___8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/random___8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/random___8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/random___8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/random___8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/registry_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/registry_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/registry_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/registry_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/registry_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/registry_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/registry_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/registry_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/registry_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resample_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/resample_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resample_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resample_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/resample_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resample_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resample_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/resample_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resample_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resize-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/resize-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resize-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resize-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/resize-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resize-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resize_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/resize_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resize_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resize_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/resize_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resize_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resize_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/resize_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resize_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resource_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/resource_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resource_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resource___8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/resource___8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resource___8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/resource___8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/resource___8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/resource___8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/segment_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/segment_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/segment_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/segment_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/segment_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/segment_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/segment_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/segment_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/segment_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/semaphore_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/semaphore_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/semaphore_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/semaphore_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/semaphore_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/semaphore_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/semaphore_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/semaphore_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/semaphore_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/shear_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/shear_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/shear_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/shear_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/shear_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/shear_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/shear_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/shear_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/shear_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/signature_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/signature_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/signature_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/signature_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/signature_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/signature_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/signature_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/signature_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/signature_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/splay-tree_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/splay-tree_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/splay-tree_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/splay-tree_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/splay-tree_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/splay-tree_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/splay-tree_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/splay-tree_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/splay-tree_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/static_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/static_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/static_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/static_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/static_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/static_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/static_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/static_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/static_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/statistic_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/statistic_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/statistic_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/statistic_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/statistic_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/statistic_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/statistic_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/statistic_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/statistic_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/stream-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/stream-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/stream-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/stream-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/stream-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/stream-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/stream_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/stream_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/stream_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/stream_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/stream_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/stream_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/stream_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/stream_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/stream_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/string_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/string_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/string_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/string___8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/string___8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/string___8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/string___8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/string___8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/string___8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/structHuffmanTable.html b/share/doc/ImageMagick-7/www/api/MagickCore/structHuffmanTable.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/structHuffmanTable.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/structSemaphoreInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/structSemaphoreInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/structSemaphoreInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__AffineMatrix.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__AffineMatrix.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__AffineMatrix.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__Ascii85Info.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Ascii85Info.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Ascii85Info.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__BlobInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__BlobInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__BlobInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__CacheInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CacheInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CacheInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__CacheMethods.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CacheMethods.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CacheMethods.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__CacheView.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CacheView.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CacheView.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ChannelStatistics.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ChannelStatistics.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ChannelStatistics.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ChromaticityInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ChromaticityInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ChromaticityInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__Cluster.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Cluster.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Cluster.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__CoderInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CoderInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CoderInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ColorInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ColorInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ColorInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ColorPacket.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ColorPacket.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ColorPacket.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ConfigureInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ConfigureInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ConfigureInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ContributionInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ContributionInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ContributionInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__CubeInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CubeInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__CubeInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__DIR.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DIR.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DIR.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__DataSegmentInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DataSegmentInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DataSegmentInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__DelegateInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DelegateInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DelegateInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__DiversityPacket.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DiversityPacket.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DiversityPacket.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__DoublePixelPacket.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DoublePixelPacket.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DoublePixelPacket.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__DrawInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DrawInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__DrawInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__EdgeInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__EdgeInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__EdgeInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ElementInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ElementInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ElementInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ElementReference.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ElementReference.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ElementReference.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__EntryInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__EntryInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__EntryInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ErrorInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ErrorInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ErrorInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__EventInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__EventInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__EventInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ExceptionInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ExceptionInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ExceptionInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ExtentPacket.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ExtentPacket.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ExtentPacket.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__FrameInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__FrameInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__FrameInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__FxInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__FxInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__FxInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__GeometryInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__GeometryInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__GeometryInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__GhostscriptVectors.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__GhostscriptVectors.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__GhostscriptVectors.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__GradientInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__GradientInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__GradientInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__HandlerInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__HandlerInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__HandlerInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__HashmapInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__HashmapInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__HashmapInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__Image.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Image.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Image.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ImageAttribute.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ImageAttribute.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ImageAttribute.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ImageInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ImageInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ImageInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__IntervalTree.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__IntervalTree.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__IntervalTree.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__LinkedListInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__LinkedListInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__LinkedListInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__LocaleInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__LocaleInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__LocaleInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__LogInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__LogInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__LogInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__LongPixelPacket.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__LongPixelPacket.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__LongPixelPacket.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__MagicInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MagicInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MagicInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__MagickInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MagickInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MagickInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__MagickPixelPacket.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MagickPixelPacket.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MagickPixelPacket.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__MedianListNode.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MedianListNode.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MedianListNode.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__MedianPixelList.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MedianPixelList.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MedianPixelList.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__MedianSkipList.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MedianSkipList.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MedianSkipList.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__MemoryInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MemoryInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MemoryInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__MimeInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MimeInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MimeInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ModuleInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ModuleInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ModuleInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__MontageInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MontageInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__MontageInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__NTMEMORYSTATUSEX.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__NTMEMORYSTATUSEX.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__NTMEMORYSTATUSEX.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__NexusInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__NexusInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__NexusInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__NodeInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__NodeInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__NodeInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__Nodes.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Nodes.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Nodes.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__OptionInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__OptionInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__OptionInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__PathInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PathInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PathInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__PixelPacket.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PixelPacket.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PixelPacket.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__PointInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PointInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PointInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__PolygonInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PolygonInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PolygonInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__PrimaryInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PrimaryInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PrimaryInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__PrimitiveInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PrimitiveInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__PrimitiveInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ProfileInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ProfileInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ProfileInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__QuantizeInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__QuantizeInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__QuantizeInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__QuantumInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__QuantumInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__QuantumInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__QuantumState.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__QuantumState.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__QuantumState.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__RandomInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__RandomInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__RandomInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__RealPixelPacket.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__RealPixelPacket.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__RealPixelPacket.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__RectangleInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__RectangleInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__RectangleInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__RegistryInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__RegistryInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__RegistryInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ResampleFilter.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ResampleFilter.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ResampleFilter.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ResizeFilter.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ResizeFilter.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ResizeFilter.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ResourceInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ResourceInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ResourceInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__SegmentInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__SegmentInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__SegmentInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__SignatureInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__SignatureInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__SignatureInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__SplayTreeInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__SplayTreeInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__SplayTreeInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__StopInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__StopInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__StopInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__StreamInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__StreamInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__StreamInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__StringInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__StringInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__StringInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ThresholdMap.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ThresholdMap.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ThresholdMap.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__Timer.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Timer.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__Timer.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__TimerInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__TimerInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__TimerInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__TokenInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__TokenInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__TokenInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__TypeInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__TypeInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__TypeInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__TypeMetric.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__TypeMetric.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__TypeMetric.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ViewInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ViewInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ViewInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__XImportInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__XImportInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__XImportInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__XMLTreeInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__XMLTreeInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__XMLTreeInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__XMLTreeRoot.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__XMLTreeRoot.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__XMLTreeRoot.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__XWidgetInfo.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__XWidgetInfo.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__XWidgetInfo.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ZeroCrossing.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ZeroCrossing.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ZeroCrossing.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__dirdesc.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__dirdesc.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__dirdesc.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/struct__ile3.html b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ile3.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/struct__ile3.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/structdirent.html b/share/doc/ImageMagick-7/www/api/MagickCore/structdirent.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/structdirent.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/studio_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/studio_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/studio_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/studio_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/studio_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/studio_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/tab_b.gif b/share/doc/ImageMagick-7/www/api/MagickCore/tab_b.gif new file mode 100644 index 0000000..0d62348 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/tab_b.gif differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/tab_l.gif b/share/doc/ImageMagick-7/www/api/MagickCore/tab_l.gif new file mode 100644 index 0000000..9b1e633 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/tab_l.gif differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/tab_r.gif b/share/doc/ImageMagick-7/www/api/MagickCore/tab_r.gif new file mode 100644 index 0000000..ce9dd9f Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickCore/tab_r.gif differ diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/tabs.css b/share/doc/ImageMagick-7/www/api/MagickCore/tabs.css new file mode 100644 index 0000000..c37faaf --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI.current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI.current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/threshold_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/threshold_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/threshold_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/threshold_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/threshold_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/threshold_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/threshold_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/threshold_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/threshold_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/timer_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/timer_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/timer_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/timer_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/timer_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/timer_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/timer_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/timer_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/timer_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/token_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/token_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/token_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/token_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/token_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/token_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/token_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/token_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/token_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/transform_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/transform_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/transform_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/transform_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/transform_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/transform_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/transform_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/transform_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/transform_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/tree.html b/share/doc/ImageMagick-7/www/api/MagickCore/tree.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/tree.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/type_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/type_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/type_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/type_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/type_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/type_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/type_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/type_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/type_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/utility_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/utility_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/utility_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/utility_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/utility_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/utility_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/utility_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/utility_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/utility_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/version_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/version_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/version_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/version_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/version_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/version_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/version_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/version_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/version_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/vms_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/vms_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/vms_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/vms_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/vms_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/vms_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/vms_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/vms_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/vms_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/widget_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/widget_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/widget_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/widget_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/widget_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/widget_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/widget_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/widget_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/widget_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/xml-tree_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/xml-tree_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/xml-tree_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/xml-tree_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/xml-tree_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/xml-tree_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/xml-tree_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/xml-tree_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/xml-tree_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/xwindow-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/xwindow-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/xwindow_8c.html b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/xwindow_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickCore/xwindow_8h.html b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickCore/xwindow_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/MagickWand_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/MagickWand_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/MagickWand_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/MagickWand_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/MagickWand_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/MagickWand_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/animate_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/animate_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/animate_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/animate_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/animate_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/animate_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/animate_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/animate_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/animate_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/annotated.html b/share/doc/ImageMagick-7/www/api/MagickWand/annotated.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/annotated.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/classes.html b/share/doc/ImageMagick-7/www/api/MagickWand/classes.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/classes.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/compare_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/compare_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/compare_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/compare_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/compare_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/compare_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/compare_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/compare_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/compare_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/composite_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/composite_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/composite_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/composite_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/composite_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/composite_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/composite_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/composite_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/composite_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/conjure_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/conjure_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/conjure_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/conjure_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/conjure_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/conjure_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/conjure_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/conjure_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/conjure_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/convert_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/convert_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/convert_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/convert_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/convert_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/convert_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/convert_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/convert_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/convert_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/deprecate_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/deprecate_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/deprecate_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/deprecate_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/deprecate_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/deprecate_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/deprecate_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/deprecate_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/deprecate_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/dir_101f7ac0a894e32543a314e85b2e1524.html b/share/doc/ImageMagick-7/www/api/MagickWand/dir_101f7ac0a894e32543a314e85b2e1524.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/dir_101f7ac0a894e32543a314e85b2e1524.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/dirs.html b/share/doc/ImageMagick-7/www/api/MagickWand/dirs.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/dirs.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/display_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/display_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/display_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/display_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/display_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/display_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/display_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/display_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/display_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/doxygen.css b/share/doc/ImageMagick-7/www/api/MagickWand/doxygen.css new file mode 100644 index 0000000..e261cf6 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/doxygen.css @@ -0,0 +1,359 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; + margin-left: 3px; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; + white-space: nowrap; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/doxygen.png b/share/doc/ImageMagick-7/www/api/MagickWand/doxygen.png new file mode 100644 index 0000000..f0a274b Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/doxygen.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/drawing-wand_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/drawing-wand_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/drawing-wand_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/drawing-wand_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/drawing-wand_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/drawing-wand_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/drawing-wand_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/drawing-wand_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/drawing-wand_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/drawtest_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/drawtest_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/drawtest_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/files.html b/share/doc/ImageMagick-7/www/api/MagickWand/files.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/files.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2blank.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2blank.png new file mode 100644 index 0000000..493c3c0 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2blank.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2doc.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2doc.png new file mode 100644 index 0000000..f72999f Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2doc.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2folderclosed.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2folderclosed.png new file mode 100644 index 0000000..d6d0634 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2folderclosed.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2folderopen.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2folderopen.png new file mode 100644 index 0000000..bbe2c91 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2folderopen.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2lastnode.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2lastnode.png new file mode 100644 index 0000000..e7b9ba9 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2lastnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2link.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2link.png new file mode 100644 index 0000000..14f3fed Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2link.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2mlastnode.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2mlastnode.png new file mode 100644 index 0000000..09ceb6a Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2mlastnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2mnode.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2mnode.png new file mode 100644 index 0000000..3254c05 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2mnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2node.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2node.png new file mode 100644 index 0000000..c9f06a5 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2node.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2plastnode.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2plastnode.png new file mode 100644 index 0000000..0b07e00 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2plastnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2pnode.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2pnode.png new file mode 100644 index 0000000..2001b79 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2pnode.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/ftv2vertline.png b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2vertline.png new file mode 100644 index 0000000..b330f3a Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/ftv2vertline.png differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/functions.html b/share/doc/ImageMagick-7/www/api/MagickWand/functions.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/functions.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/functions_vars.html b/share/doc/ImageMagick-7/www/api/MagickWand/functions_vars.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/functions_vars.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x61.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x61.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x61.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x62.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x62.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x62.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x63.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x63.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x63.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x64.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x64.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x64.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x65.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x65.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x65.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x67.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x67.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x67.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x69.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x69.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x69.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x6d.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x6d.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x6d.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x6e.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x6e.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x6e.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x6f.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x6f.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x6f.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x70.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x70.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x70.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x71.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x71.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x71.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x72.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x72.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x72.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x73.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x73.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x73.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x74.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x74.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x74.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x75.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x75.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x75.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x77.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x77.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x77.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x78.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x78.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_0x78.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_defs.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_defs.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_defs.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_enum.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_enum.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_enum.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_eval.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_eval.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_eval.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x63.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x63.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x63.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x64.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x64.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x64.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x67.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x67.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x67.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x69.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x69.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x69.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x6d.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x6d.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x6d.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x6e.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x6e.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x6e.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x70.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x70.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x70.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x72.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x72.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x72.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x73.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x73.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_func_0x73.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_type.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_type.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_type.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/globals_vars.html b/share/doc/ImageMagick-7/www/api/MagickWand/globals_vars.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/globals_vars.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/identify_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/identify_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/identify_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/identify_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/identify_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/identify_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/identify_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/identify_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/identify_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/import_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/import_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/import_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/import_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/import_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/import_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/import_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/import_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/import_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/index.html b/share/doc/ImageMagick-7/www/api/MagickWand/index.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/index.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-image_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-image_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-image_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-image_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-image_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-image_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-image_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-image_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-image_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-property_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-property_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-property_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-property_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-property_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-property_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-property_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-property_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-property_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick-wand_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick__wand_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick__wand_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick__wand_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/magick__wand_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/magick__wand_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/magick__wand_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/main.html b/share/doc/ImageMagick-7/www/api/MagickWand/main.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/main.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/mogrify-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/mogrify-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/mogrify_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/mogrify_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/mogrify_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/mogrify_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/montage_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/montage_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/montage_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/montage_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/montage_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/montage_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/montage_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/montage_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/montage_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/pixel-iterator_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-iterator_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-iterator_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/pixel-iterator_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-iterator_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-iterator_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/pixel-iterator_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-iterator_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-iterator_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand-private_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand-private_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand-private_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand-private_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand-private_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand-private_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/pixel-wand_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/stream_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/stream_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/stream_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/stream_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/stream_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/stream_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/stream_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/stream_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/stream_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/struct__CompositeOptions.html b/share/doc/ImageMagick-7/www/api/MagickWand/struct__CompositeOptions.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/struct__CompositeOptions.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/struct__DrawVTable.html b/share/doc/ImageMagick-7/www/api/MagickWand/struct__DrawVTable.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/struct__DrawVTable.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/struct__DrawingWand.html b/share/doc/ImageMagick-7/www/api/MagickWand/struct__DrawingWand.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/struct__DrawingWand.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/struct__MagickWand.html b/share/doc/ImageMagick-7/www/api/MagickWand/struct__MagickWand.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/struct__MagickWand.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/struct__PixelIterator.html b/share/doc/ImageMagick-7/www/api/MagickWand/struct__PixelIterator.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/struct__PixelIterator.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/struct__PixelWand.html b/share/doc/ImageMagick-7/www/api/MagickWand/struct__PixelWand.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/struct__PixelWand.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/studio_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/studio_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/studio_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/studio_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/studio_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/studio_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/tab_b.gif b/share/doc/ImageMagick-7/www/api/MagickWand/tab_b.gif new file mode 100644 index 0000000..0d62348 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/tab_b.gif differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/tab_l.gif b/share/doc/ImageMagick-7/www/api/MagickWand/tab_l.gif new file mode 100644 index 0000000..9b1e633 Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/tab_l.gif differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/tab_r.gif b/share/doc/ImageMagick-7/www/api/MagickWand/tab_r.gif new file mode 100644 index 0000000..ce9dd9f Binary files /dev/null and b/share/doc/ImageMagick-7/www/api/MagickWand/tab_r.gif differ diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/tabs.css b/share/doc/ImageMagick-7/www/api/MagickWand/tabs.css new file mode 100644 index 0000000..c37faaf --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI.current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI.current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/tree.html b/share/doc/ImageMagick-7/www/api/MagickWand/tree.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/tree.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/wand_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/wand_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/wand_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/wand_8h-source.html b/share/doc/ImageMagick-7/www/api/MagickWand/wand_8h-source.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/wand_8h-source.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/wand_8h.html b/share/doc/ImageMagick-7/www/api/MagickWand/wand_8h.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/wand_8h.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/MagickWand/wandtest_8c.html b/share/doc/ImageMagick-7/www/api/MagickWand/wandtest_8c.html new file mode 100644 index 0000000..924dede --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/MagickWand/wandtest_8c.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/animate.html b/share/doc/ImageMagick-7/www/api/animate.html new file mode 100644 index 0000000..f6d3dcc --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/animate.html @@ -0,0 +1,109 @@ + + + + + + + + + + MagickCore, C API: Interactively Animate an Image Sequence @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/animate.php b/share/doc/ImageMagick-7/www/api/animate.php new file mode 100644 index 0000000..6080942 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/animate.php @@ -0,0 +1,106 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Interactively Animate an Image Sequence + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AnimateImages

+ +

AnimateImages

+ +

AnimateImages() repeatedly displays an image sequence to any X window screen. It returns a value other than 0 if successful. Check the exception member of image to determine the reason for any failure.

+ +

The format of the AnimateImages method is:

+ +
+MagickBooleanType AnimateImages(const ImageInfo *image_info,
+  Image *images,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/annotate.html b/share/doc/ImageMagick-7/www/api/annotate.html new file mode 100644 index 0000000..93ff36a --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/annotate.html @@ -0,0 +1,330 @@ + + + + + + + + + + MagickCore, C API: Annotate an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AnnotateImageFormatMagickCaptionGetMultilineTypeMetricsGetTypeMetrics

+ +

AnnotateImage

+ +

AnnotateImage() annotates an image with text. Optionally you can include any of the following bits of information about the image by embedding the appropriate special characters:

+ +
+    \n   newline
+    \r   carriage return
+    <    less-than character.
+    >    greater-than character.
+    &    ampersand character.
+ a percent sign
+    b   file size of image read in
+    c   comment meta-data property
+    d   directory component of path
+    e   filename extension or suffix
+    f   filename (including suffix)
+    g   layer canvas page geometry   (equivalent to "WxHXY")
+    h   current image height in pixels
+    i   image filename (note: becomes output filename for "info:")
+    k   CALCULATED: number of unique colors
+    l   label meta-data property
+    m   image file format (file magic)
+    n   number of images in current image sequence
+    o   output filename  (used for delegates)
+    p   index of image in current image list
+    q   quantum depth (compile-time constant)
+    r   image class and colorspace
+    s   scene number (from input unless re-assigned)
+    t   filename without directory or extension (suffix)
+    u   unique temporary filename (used for delegates)
+    w   current width in pixels
+    x   x resolution (density)
+    y   y resolution (density)
+    z   image depth (as read in unless modified, image save depth)
+    A   image transparency channel enabled (true/false)
+    C   image compression type
+    D   image GIF dispose method
+    G   original image size (wxh; before any resizes)
+    H   page (canvas) height
+    M   Magick filename (original file exactly as given,  including read mods)
+    O   page (canvas) offset ( = XY )
+    P   page (canvas) size ( = WxH )
+    Q   image compression quality ( 0 = default )
+    S   ?? scenes ??
+    T   image time delay (in centi-seconds)
+    U   image resolution units
+    W   page (canvas) width
+    X   page (canvas) x offset (including sign)
+    Y   page (canvas) y offset (including sign)
+    Z   unique filename (used for delegates)
+    @   CALCULATED: trim bounding box (without actually trimming)
+    #   CALCULATED: 'signature' hash of image values
+
+ +

The format of the AnnotateImage method is:

+ +
+MagickBooleanType AnnotateImage(Image *image,DrawInfo *draw_info,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

FormatMagickCaption

+ +

FormatMagickCaption() formats a caption so that it fits within the image width. It returns the number of lines in the formatted caption.

+ +

The format of the FormatMagickCaption method is:

+ +
+ssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info,
+  const MagickBooleanType split,TypeMetric *metrics,char **caption,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

The image.

+ +
draw_info
+

the draw info.

+ +
split
+

when no convenient line breaks-- insert newline.

+ +
metrics
+

Return the font metrics in this structure.

+ +
caption
+

the caption.

+ +
exception
+

return any errors or warnings in this structure.

+ +

GetMultilineTypeMetrics

+ +

GetMultilineTypeMetrics() returns the following information for the specified font and text:

+ +
+    character width
+    character height
+    ascender
+    descender
+    text width
+    text height
+    maximum horizontal advance
+    bounds: x1
+    bounds: y1
+    bounds: x2
+    bounds: y2
+    origin: x
+    origin: y
+    underline position
+    underline thickness
+
+ +

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

+ +

The format of the GetMultilineTypeMetrics method is:

+ +
+MagickBooleanType GetMultilineTypeMetrics(Image *image,
+  const DrawInfo *draw_info,TypeMetric *metrics,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
metrics
+
Return the font metrics in this structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetTypeMetrics

+ +

GetTypeMetrics() returns the following information for the specified font and text:

+ +
+    character width
+    character height
+    ascender
+    descender
+    text width
+    text height
+    maximum horizontal advance
+    bounds: x1
+    bounds: y1
+    bounds: x2
+    bounds: y2
+    origin: x
+    origin: y
+    underline position
+    underline thickness
+
+ +

The format of the GetTypeMetrics method is:

+ +
+MagickBooleanType GetTypeMetrics(Image *image,const DrawInfo *draw_info,
+  TypeMetric *metrics,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
metrics
+
Return the font metrics in this structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/annotate.php b/share/doc/ImageMagick-7/www/api/annotate.php new file mode 100644 index 0000000..80848d6 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/annotate.php @@ -0,0 +1,296 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Annotate an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AnnotateImageFormatMagickCaptionGetMultilineTypeMetricsGetTypeMetrics

+ +

AnnotateImage

+ +

AnnotateImage() annotates an image with text. Optionally you can include any of the following bits of information about the image by embedding the appropriate special characters:

+ +
+    \n   newline
+    \r   carriage return
+    <    less-than character.
+    >    greater-than character.
+    &    ampersand character.
+ a percent sign
+    b   file size of image read in
+    c   comment meta-data property
+    d   directory component of path
+    e   filename extension or suffix
+    f   filename (including suffix)
+    g   layer canvas page geometry   (equivalent to "WxHXY")
+    h   current image height in pixels
+    i   image filename (note: becomes output filename for "info:")
+    k   CALCULATED: number of unique colors
+    l   label meta-data property
+    m   image file format (file magic)
+    n   number of images in current image sequence
+    o   output filename  (used for delegates)
+    p   index of image in current image list
+    q   quantum depth (compile-time constant)
+    r   image class and colorspace
+    s   scene number (from input unless re-assigned)
+    t   filename without directory or extension (suffix)
+    u   unique temporary filename (used for delegates)
+    w   current width in pixels
+    x   x resolution (density)
+    y   y resolution (density)
+    z   image depth (as read in unless modified, image save depth)
+    A   image transparency channel enabled (true/false)
+    C   image compression type
+    D   image GIF dispose method
+    G   original image size (wxh; before any resizes)
+    H   page (canvas) height
+    M   Magick filename (original file exactly as given,  including read mods)
+    O   page (canvas) offset ( = XY )
+    P   page (canvas) size ( = WxH )
+    Q   image compression quality ( 0 = default )
+    S   ?? scenes ??
+    T   image time delay (in centi-seconds)
+    U   image resolution units
+    W   page (canvas) width
+    X   page (canvas) x offset (including sign)
+    Y   page (canvas) y offset (including sign)
+    Z   unique filename (used for delegates)
+    @   CALCULATED: trim bounding box (without actually trimming)
+    #   CALCULATED: 'signature' hash of image values
+
+ +

The format of the AnnotateImage method is:

+ +
+MagickBooleanType AnnotateImage(Image *image,DrawInfo *draw_info,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

FormatMagickCaption

+ +

FormatMagickCaption() formats a caption so that it fits within the image width. It returns the number of lines in the formatted caption.

+ +

The format of the FormatMagickCaption method is:

+ +
+ssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info,
+  const MagickBooleanType split,TypeMetric *metrics,char **caption,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

The image.

+ +
draw_info
+

the draw info.

+ +
split
+

when no convenient line breaks-- insert newline.

+ +
metrics
+

Return the font metrics in this structure.

+ +
caption
+

the caption.

+ +
exception
+

return any errors or warnings in this structure.

+ +

GetMultilineTypeMetrics

+ +

GetMultilineTypeMetrics() returns the following information for the specified font and text:

+ +
+    character width
+    character height
+    ascender
+    descender
+    text width
+    text height
+    maximum horizontal advance
+    bounds: x1
+    bounds: y1
+    bounds: x2
+    bounds: y2
+    origin: x
+    origin: y
+    underline position
+    underline thickness
+
+ +

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

+ +

The format of the GetMultilineTypeMetrics method is:

+ +
+MagickBooleanType GetMultilineTypeMetrics(Image *image,
+  const DrawInfo *draw_info,TypeMetric *metrics,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
metrics
+
Return the font metrics in this structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetTypeMetrics

+ +

GetTypeMetrics() returns the following information for the specified font and text:

+ +
+    character width
+    character height
+    ascender
+    descender
+    text width
+    text height
+    maximum horizontal advance
+    bounds: x1
+    bounds: y1
+    bounds: x2
+    bounds: y2
+    origin: x
+    origin: y
+    underline position
+    underline thickness
+
+ +

The format of the GetTypeMetrics method is:

+ +
+MagickBooleanType GetTypeMetrics(Image *image,const DrawInfo *draw_info,
+  TypeMetric *metrics,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
metrics
+
Return the font metrics in this structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/attribute.html b/share/doc/ImageMagick-7/www/api/attribute.html new file mode 100644 index 0000000..63f1d10 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/attribute.html @@ -0,0 +1,414 @@ + + + + + + + + + + MagickCore, C API: Set Text Attributes @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

GetImageDepthGetImageQuantumDepthGetImageTypeIdentifyImageGrayIdentifyImageMonochromeIdentifyImageTypeIsImageGrayIsImageMonochromeIsImageOpaqueSetImageDepthSetImageType

+ +

GetImageDepth

+ +

GetImageDepth() returns the depth of a particular image channel.

+ +

The format of the GetImageDepth method is:

+ +
+size_t GetImageDepth(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetImageQuantumDepth

+ +

GetImageQuantumDepth() returns the depth of the image rounded to a legal quantum depth: 8, 16, or 32.

+ +

The format of the GetImageQuantumDepth method is:

+ +
+size_t GetImageQuantumDepth(const Image *image,
+  const MagickBooleanType constrain)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
constrain
+
A value other than MagickFalse, constrains the depth to a maximum of MAGICKCORE_QUANTUM_DEPTH.
+ +
+
+

GetImageType

+ +

GetImageType() returns the type of image:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte

+ +

The format of the GetImageType method is:

+ +
+ImageType GetImageType(const Image *image)
+
+ +

A description of each parameter follows:

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

IdentifyImageGray

+ +

IdentifyImageGray() returns grayscale if all the pixels in the image have the same red, green, and blue intensities, and bi-level is the intensity is either 0 or QuantumRange. Otherwise undefined is returned.

+ +

The format of the IdentifyImageGray method is:

+ +
+ImageType IdentifyImageGray(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

IdentifyImageMonochrome

+ +

IdentifyImageMonochrome() returns MagickTrue if all the pixels in the image have the same red, green, and blue intensities and the intensity is either 0 or QuantumRange.

+ +

The format of the IdentifyImageMonochrome method is:

+ +
+MagickBooleanType IdentifyImageMonochrome(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

IdentifyImageType

+ +

IdentifyImageType() returns the potential type of image:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte

+ +

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

+ +
+    (void) SetImageType(image,IdentifyImageType(image,exception),exception);
+
+ +

The format of the IdentifyImageType method is:

+ +
+ImageType IdentifyImageType(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

IsImageGray

+ +

IsImageGray() returns MagickTrue if the type of the image is grayscale or bi-level.

+ +

The format of the IsImageGray method is:

+ +
+MagickBooleanType IsImageGray(const Image *image)
+
+ +

A description of each parameter follows:

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

IsImageMonochrome

+ +

IsImageMonochrome() returns MagickTrue if type of the image is bi-level.

+ +

The format of the IsImageMonochrome method is:

+ +
+MagickBooleanType IsImageMonochrome(const Image *image)
+
+ +

A description of each parameter follows:

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

IsImageOpaque

+ +

IsImageOpaque() returns MagickTrue if none of the pixels in the image have an alpha value other than OpaqueAlpha (QuantumRange).

+ +

Will return true immediatally is alpha channel is not available.

+ +

The format of the IsImageOpaque method is:

+ +
+MagickBooleanType IsImageOpaque(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageDepth

+ +

SetImageDepth() sets the depth of the image.

+ +

The format of the SetImageDepth method is:

+ +
+MagickBooleanType SetImageDepth(Image *image,const size_t depth,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageType

+ +

SetImageType() sets the type of image. Choose from these types:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte OptimizeType

+ +

The format of the SetImageType method is:

+ +
+MagickBooleanType SetImageType(Image *image,const ImageType type,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
type
+
Image type.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/attribute.php b/share/doc/ImageMagick-7/www/api/attribute.php new file mode 100644 index 0000000..99c33b0 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/attribute.php @@ -0,0 +1,380 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Set Text Attributes + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

GetImageDepthGetImageQuantumDepthGetImageTypeIdentifyImageGrayIdentifyImageMonochromeIdentifyImageTypeIsImageGrayIsImageMonochromeIsImageOpaqueSetImageDepthSetImageType

+ +

GetImageDepth

+ +

GetImageDepth() returns the depth of a particular image channel.

+ +

The format of the GetImageDepth method is:

+ +
+size_t GetImageDepth(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetImageQuantumDepth

+ +

GetImageQuantumDepth() returns the depth of the image rounded to a legal quantum depth: 8, 16, or 32.

+ +

The format of the GetImageQuantumDepth method is:

+ +
+size_t GetImageQuantumDepth(const Image *image,
+  const MagickBooleanType constrain)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
constrain
+
A value other than MagickFalse, constrains the depth to a maximum of MAGICKCORE_QUANTUM_DEPTH.
+ +
+
+

GetImageType

+ +

GetImageType() returns the type of image:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte

+ +

The format of the GetImageType method is:

+ +
+ImageType GetImageType(const Image *image)
+
+ +

A description of each parameter follows:

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

IdentifyImageGray

+ +

IdentifyImageGray() returns grayscale if all the pixels in the image have the same red, green, and blue intensities, and bi-level is the intensity is either 0 or QuantumRange. Otherwise undefined is returned.

+ +

The format of the IdentifyImageGray method is:

+ +
+ImageType IdentifyImageGray(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

IdentifyImageMonochrome

+ +

IdentifyImageMonochrome() returns MagickTrue if all the pixels in the image have the same red, green, and blue intensities and the intensity is either 0 or QuantumRange.

+ +

The format of the IdentifyImageMonochrome method is:

+ +
+MagickBooleanType IdentifyImageMonochrome(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

IdentifyImageType

+ +

IdentifyImageType() returns the potential type of image:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte

+ +

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

+ +
+    (void) SetImageType(image,IdentifyImageType(image,exception),exception);
+
+ +

The format of the IdentifyImageType method is:

+ +
+ImageType IdentifyImageType(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

IsImageGray

+ +

IsImageGray() returns MagickTrue if the type of the image is grayscale or bi-level.

+ +

The format of the IsImageGray method is:

+ +
+MagickBooleanType IsImageGray(const Image *image)
+
+ +

A description of each parameter follows:

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

IsImageMonochrome

+ +

IsImageMonochrome() returns MagickTrue if type of the image is bi-level.

+ +

The format of the IsImageMonochrome method is:

+ +
+MagickBooleanType IsImageMonochrome(const Image *image)
+
+ +

A description of each parameter follows:

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

IsImageOpaque

+ +

IsImageOpaque() returns MagickTrue if none of the pixels in the image have an alpha value other than OpaqueAlpha (QuantumRange).

+ +

Will return true immediatally is alpha channel is not available.

+ +

The format of the IsImageOpaque method is:

+ +
+MagickBooleanType IsImageOpaque(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageDepth

+ +

SetImageDepth() sets the depth of the image.

+ +

The format of the SetImageDepth method is:

+ +
+MagickBooleanType SetImageDepth(Image *image,const size_t depth,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageType

+ +

SetImageType() sets the type of image. Choose from these types:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte OptimizeType

+ +

The format of the SetImageType method is:

+ +
+MagickBooleanType SetImageType(Image *image,const ImageType type,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
type
+
Image type.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/blob.html b/share/doc/ImageMagick-7/www/api/blob.html new file mode 100644 index 0000000..30fe17b --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/blob.html @@ -0,0 +1,467 @@ + + + + + + + + + + MagickCore, C API: Read or Write Binary Large OBjects @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

BlobToImageCustomStreamToImageFileToBlobFileToImageGetBlobPropertiesImageToBlobImageToFileImagesToBlobInjectImageBlobIsBlobExemptIsBlobSeekableIsBlobTemporary

+ +

BlobToImage

+ +

BlobToImage() implements direct to memory image formats. It returns the blob as an image.

+ +

The format of the BlobToImage method is:

+ +
+Image *BlobToImage(const ImageInfo *image_info,const void *blob,
+  const size_t length,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
blob
+
the address of a character stream in one of the image formats understood by ImageMagick.
+ +
+
length
+
This size_t integer reflects the length in bytes of the blob.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CustomStreamToImage

+ +

CustomStreamToImage() is the equivalent of ReadImage(), but reads the formatted "file" from the suplied method rather than to an actual file.

+ +

The format of the CustomStreamToImage method is:

+ +
+Image *CustomStreamToImage(const ImageInfo *image_info,
+   ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

FileToBlob

+ +

FileToBlob() returns the contents of a file as a buffer terminated with the '\0' character. The length of the buffer (not including the extra terminating '\0' character) is returned via the 'length' parameter. Free the buffer with RelinquishMagickMemory().

+ +

The format of the FileToBlob method is:

+ +
+void *FileToBlob(const char *filename,const size_t extent,
+  size_t *length,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
blob
+
FileToBlob() returns the contents of a file as a blob. If an error occurs NULL is returned.
+ +
+
filename
+
the filename.
+ +
+
extent
+
The maximum length of the blob.
+ +
+
length
+
On return, this reflects the actual length of the blob.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

FileToImage

+ +

FileToImage() write the contents of a file to an image.

+ +

The format of the FileToImage method is:

+ +
+MagickBooleanType FileToImage(Image *,const char *filename)
+
+ +

A description of each parameter follows:

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

GetBlobProperties

+ +

GetBlobProperties() returns information about an image blob.

+ +

The format of the GetBlobProperties method is:

+ +
+const struct stat *GetBlobProperties(const Image *image)
+
+ +

A description of each parameter follows:

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

ImageToBlob

+ +

ImageToBlob() implements direct to memory image formats. It returns the image as a formatted blob and its length. The magick member of the Image structure determines the format of the returned blob (GIF, JPEG, PNG, etc.). This method is the equivalent of WriteImage(), but writes the formatted "file" to a memory buffer rather than to an actual file.

+ +

The format of the ImageToBlob method is:

+ +
+void *ImageToBlob(const ImageInfo *image_info,Image *image,
+  size_t *length,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
image
+
the image.
+ +
+
length
+
return the actual length of the blob.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ImageToFile

+ +

ImageToFile() writes an image to a file. It returns MagickFalse if an error occurs otherwise MagickTrue.

+ +

The format of the ImageToFile method is:

+ +
+ MagickBooleanType ImageToFile(Image *image,char *filename,
+   ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
filename
+
Write the image to this file.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ImagesToBlob

+ +

ImagesToBlob() implements direct to memory image formats. It returns the image sequence as a blob and its length. The magick member of the ImageInfo structure determines the format of the returned blob (GIF, JPEG, PNG, etc.)

+ +

Note, some image formats do not permit multiple images to the same image stream (e.g. JPEG). in this instance, just the first image of the sequence is returned as a blob.

+ +

The format of the ImagesToBlob method is:

+ +
+void *ImagesToBlob(const ImageInfo *image_info,Image *images,
+  size_t *length,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
images
+
the image list.
+ +
+
length
+
return the actual length of the blob.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

InjectImageBlob

+ +

InjectImageBlob() injects the image with a copy of itself in the specified format (e.g. inject JPEG into a PDF image).

+ +

The format of the InjectImageBlob method is:

+ +
+MagickBooleanType InjectImageBlob(const ImageInfo *image_info,
+  Image *image,Image *inject_image,const char *format,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info..
+ +
+
image
+
the image.
+ +
+
inject_image
+
inject into the image stream.
+ +
+
format
+
the image format.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

IsBlobExempt

+ +

IsBlobExempt() returns true if the blob is exempt.

+ +

The format of the IsBlobExempt method is:

+ +
+ MagickBooleanType IsBlobExempt(const Image *image)
+
+ +

A description of each parameter follows:

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

IsBlobSeekable

+ +

IsBlobSeekable() returns true if the blob is seekable.

+ +

The format of the IsBlobSeekable method is:

+ +
+ MagickBooleanType IsBlobSeekable(const Image *image)
+
+ +

A description of each parameter follows:

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

IsBlobTemporary

+ +

IsBlobTemporary() returns true if the blob is temporary.

+ +

The format of the IsBlobTemporary method is:

+ +
+ MagickBooleanType IsBlobTemporary(const Image *image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/blob.php b/share/doc/ImageMagick-7/www/api/blob.php new file mode 100644 index 0000000..58c34d4 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/blob.php @@ -0,0 +1,301 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Read or Write Binary Large OBjects + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

BlobToImageFileToImageGetBlobPropertiesImageToBlobImageToFileImagesToBlobInjectImageBlob

+ +

BlobToImage

+ +

BlobToImage() implements direct to memory image formats. It returns the blob as an image.

+ +

The format of the BlobToImage method is:

+ +
+Image *BlobToImage(const ImageInfo *image_info,const void *blob,
+  const size_t length,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
blob
+
the address of a character stream in one of the image formats understood by ImageMagick.
+ +
+
length
+
This size_t integer reflects the length in bytes of the blob.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

FileToImage

+ +

FileToImage() write the contents of a file to an image.

+ +

The format of the FileToImage method is:

+ +
+MagickBooleanType FileToImage(Image *,const char *filename)
+
+ +

A description of each parameter follows:

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

GetBlobProperties

+ +

GetBlobProperties() returns information about an image blob.

+ +

The format of the GetBlobProperties method is:

+ +
+const struct stat *GetBlobProperties(const Image *image)
+
+ +

A description of each parameter follows:

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

ImageToBlob

+ +

ImageToBlob() implements direct to memory image formats. It returns the image as a formatted blob and its length. The magick member of the Image structure determines the format of the returned blob (GIF, JPEG, PNG, etc.). This method is the equivalent of WriteImage(), but writes the formatted "file" to a memory buffer rather than to an actual file.

+ +

The format of the ImageToBlob method is:

+ +
+void *ImageToBlob(const ImageInfo *image_info,Image *image,
+  size_t *length,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
image
+
the image.
+ +
+
length
+
return the actual length of the blob.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ImageToFile

+ +

ImageToFile() writes an image to a file. It returns MagickFalse if an error occurs otherwise MagickTrue.

+ +

The format of the ImageToFile method is:

+ +
+ MagickBooleanType ImageToFile(Image *image,char *filename,
+   ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
filename
+
Write the image to this file.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ImagesToBlob

+ +

ImagesToBlob() implements direct to memory image formats. It returns the image sequence as a blob and its length. The magick member of the ImageInfo structure determines the format of the returned blob (GIF, JPEG, PNG, etc.)

+ +

Note, some image formats do not permit multiple images to the same image stream (e.g. JPEG). in this instance, just the first image of the sequence is returned as a blob.

+ +

The format of the ImagesToBlob method is:

+ +
+void *ImagesToBlob(const ImageInfo *image_info,Image *images,
+  size_t *length,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
images
+
the image list.
+ +
+
length
+
return the actual length of the blob.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

InjectImageBlob

+ +

InjectImageBlob() injects the image with a copy of itself in the specified format (e.g. inject JPEG into a PDF image).

+ +

The format of the InjectImageBlob method is:

+ +
+MagickBooleanType InjectImageBlob(const ImageInfo *image_info,
+  Image *image,Image *inject_image,const char *format,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info..
+ +
+
image
+
the image.
+ +
+
inject_image
+
inject into the image stream.
+ +
+
format
+
the image format.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/cache-view.html b/share/doc/ImageMagick-7/www/api/cache-view.html new file mode 100644 index 0000000..f25fd50 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/cache-view.html @@ -0,0 +1,693 @@ + + + + + + + + + + MagickCore, C API: Cache Views @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

AcquireAuthenticCacheViewAcquireVirtualCacheViewCloneCacheViewDestroyCacheViewGetCacheViewAuthenticPixelsGetCacheViewAuthenticMetacontentGetCacheViewAuthenticPixelQueueGetCacheViewColorspaceGetCacheViewImageGetCacheViewStorageClassGetCacheViewVirtualMetacontentGetCacheViewVirtualPixelQueueGetCacheViewVirtualPixelsGetOneCacheViewAuthenticPixelGetOneCacheViewVirtualPixelGetOneCacheViewVirtualPixelInfoGetOneCacheViewVirtualMethodPixelQueueCacheViewAuthenticPixelsSetCacheViewStorageClassSetCacheViewVirtualPixelMethodSyncCacheViewAuthenticPixels

+ +

AcquireAuthenticCacheView

+ +

AcquireAuthenticCacheView() acquires an authentic view into the pixel cache. It always succeeds but may return a warning or informational exception.

+ +

The format of the AcquireAuthenticCacheView method is:

+ +
+CacheView *AcquireAuthenticCacheView(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

AcquireVirtualCacheView

+ +

AcquireVirtualCacheView() acquires a virtual view into the pixel cache, using the VirtualPixelMethod that is defined within the given image itself. It always succeeds but may return a warning or informational exception.

+ +

The format of the AcquireVirtualCacheView method is:

+ +
+CacheView *AcquireVirtualCacheView(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

CloneCacheView

+ +

CloneCacheView() makes an exact copy of the specified cache view.

+ +

The format of the CloneCacheView method is:

+ +
+CacheView *CloneCacheView(const CacheView *cache_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
+

DestroyCacheView

+ +

DestroyCacheView() destroys the specified view returned by a previous call to AcquireCacheView().

+ +

The format of the DestroyCacheView method is:

+ +
+CacheView *DestroyCacheView(CacheView *cache_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
+

GetCacheViewAuthenticPixels

+ +

GetCacheViewAuthenticPixels() gets pixels from the in-memory or disk pixel cache as defined by the geometry parameters. A pointer to the pixels is returned if the pixels are transferred, otherwise a NULL is returned.

+ +

The format of the GetCacheViewAuthenticPixels method is:

+ +
+Quantum *GetCacheViewAuthenticPixels(CacheView *cache_view,
+  const ssize_t x,const ssize_t y,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a region of pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetCacheViewAuthenticMetacontent

+ +

GetCacheViewAuthenticMetacontent() returns the meta-content corresponding with the last call to SetCacheViewIndexes() or GetCacheViewAuthenticMetacontent(). The meta-content are authentic and can be updated.

+ +

The format of the GetCacheViewAuthenticMetacontent() method is:

+ +
+void *GetCacheViewAuthenticMetacontent(CacheView *cache_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
+

GetCacheViewAuthenticPixelQueue

+ +

GetCacheViewAuthenticPixelQueue() returns the pixels associated with the last call to QueueCacheViewAuthenticPixels() or GetCacheViewAuthenticPixels(). The pixels are authentic and therefore can be updated.

+ +

The format of the GetCacheViewAuthenticPixelQueue() method is:

+ +
+Quantum *GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
+

GetCacheViewColorspace

+ +

GetCacheViewColorspace() returns the image colorspace associated with the specified view.

+ +

The format of the GetCacheViewColorspace method is:

+ +
+ColorspaceType GetCacheViewColorspace(const CacheView *cache_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
+

GetCacheViewImage

+ +

GetCacheViewImage() returns the image associated with the specified view.

+ +

The format of the GetCacheViewImage method is:

+ +
+const Image *GetCacheViewImage(const CacheView *cache_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
+

GetCacheViewStorageClass

+ +

GetCacheViewStorageClass() returns the image storage class associated with the specified view.

+ +

The format of the GetCacheViewStorageClass method is:

+ +
+ClassType GetCacheViewStorageClass(const CacheView *cache_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
+

GetCacheViewVirtualMetacontent

+ +

GetCacheViewVirtualMetacontent() returns the meta-content corresponding with the last call to GetCacheViewVirtualMetacontent(). The meta-content is virtual and therefore cannot be updated.

+ +

The format of the GetCacheViewVirtualMetacontent() method is:

+ +
+const void *GetCacheViewVirtualMetacontent(
+  const CacheView *cache_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
+

GetCacheViewVirtualPixelQueue

+ +

GetCacheViewVirtualPixelQueue() returns the the pixels associated with the last call to GetCacheViewVirtualPixels(). The pixels are virtual and therefore cannot be updated.

+ +

The format of the GetCacheViewVirtualPixelQueue() method is:

+ +
+const Quantum *GetCacheViewVirtualPixelQueue(
+  const CacheView *cache_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
+

GetCacheViewVirtualPixels

+ +

GetCacheViewVirtualPixels() gets virtual pixels from the in-memory or disk pixel cache as defined by the geometry parameters. A pointer to the pixels is returned if the pixels are transferred, otherwise a NULL is returned.

+ +

The format of the GetCacheViewVirtualPixels method is:

+ +
+const Quantum *GetCacheViewVirtualPixels(
+  const CacheView *cache_view,const ssize_t x,const ssize_t y,
+  const size_t columns,const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a region of pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetOneCacheViewAuthenticPixel

+ +

GetOneCacheViewAuthenticPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs.

+ +

The format of the GetOneCacheViewAuthenticPixel method is:

+ +
+MagickBooleaNType GetOneCacheViewAuthenticPixel(
+  const CacheView *cache_view,const ssize_t x,const ssize_t y,
+  Quantum *pixel,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
x,y
+
These values define the offset of the pixel.
+ +
+
pixel
+
return a pixel at the specified (x,y) location.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetOneCacheViewVirtualPixel

+ +

GetOneCacheViewVirtualPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead.

+ +

The format of the GetOneCacheViewVirtualPixel method is:

+ +
+MagickBooleanType GetOneCacheViewVirtualPixel(
+  const CacheView *cache_view,const ssize_t x,const ssize_t y,
+  Quantum *pixel,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
x,y
+
These values define the offset of the pixel.
+ +
+
pixel
+
return a pixel at the specified (x,y) location.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetOneCacheViewVirtualPixelInfo

+ +

GetOneCacheViewVirtualPixelInfo() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead.

+ +

The format of the GetOneCacheViewVirtualPixelInfo method is:

+ +
+MagickBooleanType GetOneCacheViewVirtualPixelInfo(
+  const CacheView *cache_view,const ssize_t x,const ssize_t y,
+  PixelInfo *pixel,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
x,y
+
These values define the offset of the pixel.
+ +
+
pixel
+
return a pixel at the specified (x,y) location.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetOneCacheViewVirtualMethodPixel

+ +

GetOneCacheViewVirtualMethodPixel() returns a single virtual pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead.

+ +

The format of the GetOneCacheViewVirtualPixel method is:

+ +
+MagickBooleanType GetOneCacheViewVirtualMethodPixel(
+  const CacheView *cache_view,
+  const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
+  const ssize_t y,Quantum *pixel,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
virtual_pixel_method
+
the virtual pixel method.
+ +
+
x,y
+
These values define the offset of the pixel.
+ +
+
pixel
+
return a pixel at the specified (x,y) location.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

QueueCacheViewAuthenticPixels

+ +

QueueCacheViewAuthenticPixels() queues authentic pixels from the in-memory or disk pixel cache as defined by the geometry parameters. A pointer to the pixels is returned if the pixels are transferred, otherwise a NULL is returned.

+ +

The format of the QueueCacheViewAuthenticPixels method is:

+ +
+Quantum *QueueCacheViewAuthenticPixels(CacheView *cache_view,
+  const ssize_t x,const ssize_t y,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a region of pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetCacheViewStorageClass

+ +

SetCacheViewStorageClass() sets the image storage class associated with the specified view.

+ +

The format of the SetCacheViewStorageClass method is:

+ +
+MagickBooleanType SetCacheViewStorageClass(CacheView *cache_view,
+  const ClassType storage_class,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
storage_class
+
the image storage class: PseudoClass or DirectClass.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetCacheViewVirtualPixelMethod

+ +

SetCacheViewVirtualPixelMethod() sets the virtual pixel method associated with the specified cache view.

+ +

The format of the SetCacheViewVirtualPixelMethod method is:

+ +
+MagickBooleanType SetCacheViewVirtualPixelMethod(CacheView *cache_view,
+  const VirtualPixelMethod virtual_pixel_method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
virtual_pixel_method
+
the virtual pixel method.
+ +
+
+

SyncCacheViewAuthenticPixels

+ +

SyncCacheViewAuthenticPixels() saves the cache view pixels to the in-memory or disk cache. It returns MagickTrue if the pixel region is flushed, otherwise MagickFalse.

+ +

The format of the SyncCacheViewAuthenticPixels method is:

+ +
+MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *cache_view,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
cache_view
+
the cache view.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/cache.html b/share/doc/ImageMagick-7/www/api/cache.html new file mode 100644 index 0000000..d0d963f --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/cache.html @@ -0,0 +1,530 @@ + + + + + + + + + + MagickCore, C API: Get or Set Image Pixels @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

AcquirePixelCacheNexusAcquirePixelCachePixelsGetAuthenticMetacontentGetAuthenticPixelQueueGetAuthenticPixelsGetOneAuthenticPixelGetOneVirtualPixelGetOneVirtualPixelInfoGetVirtualMetacontentGetVirtualPixelQueueGetVirtualPixelsQueueAuthenticPixelsSetPixelCacheVirtualMethodSyncAuthenticPixels

+ +

AcquirePixelCacheNexus

+ +

AcquirePixelCacheNexus() allocates the NexusInfo structure.

+ +

The format of the AcquirePixelCacheNexus method is:

+ +
+NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
number_threads
+
the number of nexus threads.
+ +
+
+

AcquirePixelCachePixels

+ +

AcquirePixelCachePixels() returns the pixels associated with the specified image.

+ +

The format of the AcquirePixelCachePixels() method is:

+ +
+void *AcquirePixelCachePixels(const Image *image,size_t *length,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetAuthenticMetacontent

+ +

GetAuthenticMetacontent() returns the authentic metacontent corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the associated pixels are not available.

+ +

The format of the GetAuthenticMetacontent() method is:

+ +
+void *GetAuthenticMetacontent(const Image *image)
+
+ +

A description of each parameter follows:

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

GetAuthenticPixelQueue

+ +

GetAuthenticPixelQueue() returns the authentic pixels associated corresponding with the last call to QueueAuthenticPixels() or GetAuthenticPixels().

+ +

The format of the GetAuthenticPixelQueue() method is:

+ +
+Quantum *GetAuthenticPixelQueue(const Image image)
+
+ +

A description of each parameter follows:

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

GetAuthenticPixels

+ +

GetAuthenticPixels() obtains a pixel region for read/write access. If the region is successfully accessed, a pointer to a Quantum array representing the region is returned, otherwise NULL is returned.

+ +

The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.

+ +

Pixels accessed via the returned pointer represent a simple array of type Quantum. If the image has corresponding metacontent,call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to obtain the meta-content corresponding to the region. Once the Quantum array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.

+ +

The format of the GetAuthenticPixels() method is:

+ +
+Quantum *GetAuthenticPixels(Image *image,const ssize_t x,
+  const ssize_t y,const size_t columns,const size_t rows,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a region of pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetOneAuthenticPixel

+ +

GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs.

+ +

The format of the GetOneAuthenticPixel() method is:

+ +
+MagickBooleanType GetOneAuthenticPixel(const Image image,const ssize_t x,
+  const ssize_t y,Quantum *pixel,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
x,y
+
These values define the location of the pixel to return.
+ +
+
pixel
+
return a pixel at the specified (x,y) location.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetOneVirtualPixel

+ +

GetOneVirtualPixel() returns a single virtual pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.

+ +

The format of the GetOneVirtualPixel() method is:

+ +
+MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
+  const ssize_t y,Quantum *pixel,ExceptionInfo exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
x,y
+
These values define the location of the pixel to return.
+ +
+
pixel
+
return a pixel at the specified (x,y) location.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetOneVirtualPixelInfo

+ +

GetOneVirtualPixelInfo() returns a single pixel at the specified (x,y) location. The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.

+ +

The format of the GetOneVirtualPixelInfo() method is:

+ +
+MagickBooleanType GetOneVirtualPixelInfo(const Image image,
+  const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
+  const ssize_t y,PixelInfo *pixel,ExceptionInfo exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
virtual_pixel_method
+
the virtual pixel method.
+ +
+
x,y
+
these values define the location of the pixel to return.
+ +
+
pixel
+
return a pixel at the specified (x,y) location.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetVirtualMetacontent

+ +

GetVirtualMetacontent() returns the virtual metacontent corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels(). NULL is returned if the meta-content are not available.

+ +

The format of the GetVirtualMetacontent() method is:

+ +
+const void *GetVirtualMetacontent(const Image *image)
+
+ +

A description of each parameter follows:

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

GetVirtualPixelQueue

+ +

GetVirtualPixelQueue() returns the virtual pixels associated corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels().

+ +

The format of the GetVirtualPixelQueue() method is:

+ +
+const Quantum *GetVirtualPixelQueue(const Image image)
+
+ +

A description of each parameter follows:

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

GetVirtualPixels

+ +

GetVirtualPixels() returns an immutable pixel region. If the region is successfully accessed, a pointer to it is returned, otherwise NULL is returned. The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.

+ +

Pixels accessed via the returned pointer represent a simple array of type Quantum. If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to access the meta-content (of type void) corresponding to the the region.

+ +

If you plan to modify the pixels, use GetAuthenticPixels() instead.

+ +

Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe. In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.

+ +

The format of the GetVirtualPixels() method is:

+ +
+const Quantum *GetVirtualPixels(const Image *image,const ssize_t x,
+  const ssize_t y,const size_t columns,const size_t rows,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a region of pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

QueueAuthenticPixels

+ +

QueueAuthenticPixels() queues a mutable pixel region. If the region is successfully initialized a pointer to a Quantum array representing the region is returned, otherwise NULL is returned. The returned pointer may point to a temporary working buffer for the pixels or it may point to the final location of the pixels in memory.

+ +

Write-only access means that any existing pixel values corresponding to the region are ignored. This is useful if the initial image is being created from scratch, or if the existing pixel values are to be completely replaced without need to refer to their pre-existing values. The application is free to read and write the pixel buffer returned by QueueAuthenticPixels() any way it pleases. QueueAuthenticPixels() does not initialize the pixel array values. Initializing pixel array values is the application's responsibility.

+ +

Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.

+ +

Pixels accessed via the returned pointer represent a simple array of type Quantum. If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to obtain the meta-content (of type void) corresponding to the region. Once the Quantum (and/or Quantum) array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.

+ +

The format of the QueueAuthenticPixels() method is:

+ +
+Quantum *QueueAuthenticPixels(Image *image,const ssize_t x,
+  const ssize_t y,const size_t columns,const size_t rows,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a region of pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetPixelCacheVirtualMethod

+ +

SetPixelCacheVirtualMethod() sets the "virtual pixels" method for the pixel cache and returns the previous setting. A virtual pixel is any pixel access that is outside the boundaries of the image cache.

+ +

The format of the SetPixelCacheVirtualMethod() method is:

+ +
+VirtualPixelMethod SetPixelCacheVirtualMethod(Image *image,
+  const VirtualPixelMethod virtual_pixel_method,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
virtual_pixel_method
+
choose the type of virtual pixel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SyncAuthenticPixels

+ +

SyncAuthenticPixels() saves the image pixels to the in-memory or disk cache. The method returns MagickTrue if the pixel region is flushed, otherwise MagickFalse.

+ +

The format of the SyncAuthenticPixels() method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/channel.html b/share/doc/ImageMagick-7/www/api/channel.html new file mode 100644 index 0000000..3ae1d60 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/channel.html @@ -0,0 +1,294 @@ + + + + + + + + + + MagickCore, C API: Get or Set Image Channels @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

ChannelFxImageCombineImagesGetImageAlphaChannelSeparateImageSeparateImagesSetImageAlphaChannel

+ +

ChannelFxImage

+ +

ChannelFxImage() applies a channel expression to the specified image. The expression consists of one or more channels, either mnemonic or numeric (e.g. red, 1), separated by actions as follows:

+ +
+
+ +
<=> exchange two channels (e.g. red<=>blue) => copy one channel to another channel (e.g. red=>green) = assign a constant value to a channel (e.g. red=50) , write new image channels in the specified order (e.g. red, green) | add a new output image for the next set of channel operations ; move to the next input image for the source of channel data
+ +
For example, to create 3 grayscale images from the red, green, and blue channels of an image, use:
+ +
+    -channel-fx "red; green; blue"
+
+ +

A channel without an operation symbol implies separate (i.e, semicolon). + +

The format of the ChannelFxImage method is:
+ +
+Image *ChannelFxImage(const Image *image,const char *expression,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows: + +

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

CombineImages

+ +

CombineImages() combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified channels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

+ +

The format of the CombineImages method is:

+ +
+Image *CombineImages(const Image *images,const ColorspaceType colorspace,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetImageAlphaChannel

+ +

GetImageAlphaChannel() returns MagickFalse if the image alpha channel is not activated. That is, the image is RGB rather than RGBA or CMYK rather than CMYKA.

+ +

The format of the GetImageAlphaChannel method is:

+ +
+MagickBooleanType GetImageAlphaChannel(const Image *image)
+
+ +

A description of each parameter follows:

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

SeparateImage

+ +

SeparateImage() separates a channel from the image and returns it as a grayscale image.

+ +

The format of the SeparateImage method is:

+ +
+Image *SeparateImage(const Image *image,const ChannelType channel,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SeparateImages

+ +

SeparateImages() returns a separate grayscale image for each channel specified.

+ +

The format of the SeparateImages method is:

+ +
+Image *SeparateImages(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageAlphaChannel

+ +

SetImageAlphaChannel() activates, deactivates, resets, or sets the alpha channel.

+ +

The format of the SetImageAlphaChannel method is:

+ +
+MagickBooleanType SetImageAlphaChannel(Image *image,
+  const AlphaChannelOption alpha_type,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
alpha_type
+
The alpha channel type: ActivateAlphaChannel, AssociateAlphaChannel, CopyAlphaChannel, DeactivateAlphaChannel, DisassociateAlphaChannel, ExtractAlphaChannel, OffAlphaChannel, OnAlphaChannel, OpaqueAlphaChannel, SetAlphaChannel, ShapeAlphaChannel, and TransparentAlphaChannel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/channel.php b/share/doc/ImageMagick-7/www/api/channel.php new file mode 100644 index 0000000..c957ba1 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/channel.php @@ -0,0 +1,260 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Get or Set Image Channels + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

ChannelFxImageCombineImagesGetImageAlphaChannelSeparateImageSeparateImagesSetImageAlphaChannel

+ +

ChannelFxImage

+ +

ChannelFxImage() applies a channel expression to the specified image. The expression consists of one or more channels, either mnemonic or numeric (e.g. red, 1), separated by actions as follows:

+ +
+
+ +
<=> exchange two channels (e.g. red<=>blue) => copy one channel to another channel (e.g. red=>green) = assign a constant value to a channel (e.g. red=50) , write new image channels in the specified order (e.g. red, green) | add a new output image for the next set of channel operations ; move to the next input image for the source of channel data
+ +
For example, to create 3 grayscale images from the red, green, and blue channels of an image, use:
+ +
+    -channel-fx "red; green; blue"
+
+ +

A channel without an operation symbol implies separate (i.e, semicolon). + +

The format of the ChannelFxImage method is:
+ +
+Image *ChannelFxImage(const Image *image,const char *expression,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows: + +

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

CombineImages

+ +

CombineImages() combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified channels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

+ +

The format of the CombineImages method is:

+ +
+Image *CombineImages(const Image *images,const ColorspaceType colorspace,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetImageAlphaChannel

+ +

GetImageAlphaChannel() returns MagickFalse if the image alpha channel is not activated. That is, the image is RGB rather than RGBA or CMYK rather than CMYKA.

+ +

The format of the GetImageAlphaChannel method is:

+ +
+MagickBooleanType GetImageAlphaChannel(const Image *image)
+
+ +

A description of each parameter follows:

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

SeparateImage

+ +

SeparateImage() separates a channel from the image and returns it as a grayscale image.

+ +

The format of the SeparateImage method is:

+ +
+Image *SeparateImage(const Image *image,const ChannelType channel,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SeparateImages

+ +

SeparateImages() returns a separate grayscale image for each channel specified.

+ +

The format of the SeparateImages method is:

+ +
+Image *SeparateImages(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageAlphaChannel

+ +

SetImageAlphaChannel() activates, deactivates, resets, or sets the alpha channel.

+ +

The format of the SetImageAlphaChannel method is:

+ +
+MagickBooleanType SetImageAlphaChannel(Image *image,
+  const AlphaChannelOption alpha_type,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
alpha_type
+
The alpha channel type: ActivateAlphaChannel, AssociateAlphaChannel, CopyAlphaChannel, DeactivateAlphaChannel, DisassociateAlphaChannel, ExtractAlphaChannel, OffAlphaChannel, OnAlphaChannel, OpaqueAlphaChannel, SetAlphaChannel, ShapeAlphaChannel, and TransparentAlphaChannel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/cipher.html b/share/doc/ImageMagick-7/www/api/cipher.html new file mode 100644 index 0000000..76413e9 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/cipher.html @@ -0,0 +1,342 @@ + + + + + + + + + + MagickCore, C API: Convert to and from Cipher Pixels @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireAESInfoDestroyAESInfoEncipherAESBlockPasskeyDecipherImagePasskeyEncipherImageSetAESKeyPasskeyDecipherImagePasskeyEncipherImage

+ +

AcquireAESInfo

+ +

AcquireAESInfo() allocate the AESInfo structure.

+ +

The format of the AcquireAESInfo method is:

+ +
+AESInfo *AcquireAESInfo(void)
+
+ +

DestroyAESInfo

+ +

DestroyAESInfo() zeros memory associated with the AESInfo structure.

+ +

The format of the DestroyAESInfo method is:

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

A description of each parameter follows:

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

EncipherAESBlock

+ +

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

+ +

The format of the EncipherAESBlock method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
aes_info
+
the cipher context.
+ +
+
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.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/cipher.php b/share/doc/ImageMagick-7/www/api/cipher.php new file mode 100644 index 0000000..3b83b03 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/cipher.php @@ -0,0 +1,308 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Convert to and from Cipher Pixels + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AcquireAESInfoDestroyAESInfoEncipherAESBlockPasskeyDecipherImagePasskeyEncipherImageSetAESKeyPasskeyDecipherImagePasskeyEncipherImage

+ +

AcquireAESInfo

+ +

AcquireAESInfo() allocate the AESInfo structure.

+ +

The format of the AcquireAESInfo method is:

+ +
+AESInfo *AcquireAESInfo(void)
+
+ +

DestroyAESInfo

+ +

DestroyAESInfo() zeros memory associated with the AESInfo structure.

+ +

The format of the DestroyAESInfo method is:

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

A description of each parameter follows:

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

EncipherAESBlock

+ +

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

+ +

The format of the EncipherAESBlock method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
aes_info
+
the cipher context.
+ +
+
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.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/color.html b/share/doc/ImageMagick-7/www/api/color.html new file mode 100644 index 0000000..20fa564 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/color.html @@ -0,0 +1,247 @@ + + + + + + + + + + MagickCore, C API: Count the Colors in an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireColorCacheGetColorInfoListGetColorListListColorInfoQueryColorname

+ +

AcquireColorCache

+ +

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

+ +

The format of the AcquireColorCache method is:

+ +
+LinkedListInfo *AcquireColorCache(const char *filename,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
filename
+
the font file name.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetColorInfoList

+ +

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

+ +

The format of the GetColorInfoList function is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_colors
+
This integer returns the number of colors in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetColorList

+ +

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

+ +

The format of the GetColorList function is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_colors
+
This integer returns the number of colors in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ListColorInfo

+ +

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.

+ +

The format of the ListColorInfo method is:

+ +
+MagickBooleanType ListColorInfo(FILE *file,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
file
+

List color names to this file handle.

+ +
exception
+

return any errors or warnings in this structure.

+ +

QueryColorname

+ +

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.

+ +

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

+ +

The format of the QueryColorname method is:

+ +
+MagickBooleanType QueryColorname(const Image *image,
+  const PixelInfo *color,const ComplianceType compliance,char *name,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

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

+ +
color
+

the color intensities.

+ +
Compliance
+

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

+ +
name
+

Return the color name or hex value.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/color.php b/share/doc/ImageMagick-7/www/api/color.php new file mode 100644 index 0000000..8b43b12 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/color.php @@ -0,0 +1,213 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Count the Colors in an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AcquireColorCacheGetColorInfoListGetColorListListColorInfoQueryColorname

+ +

AcquireColorCache

+ +

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

+ +

The format of the AcquireColorCache method is:

+ +
+LinkedListInfo *AcquireColorCache(const char *filename,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
filename
+
the font file name.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetColorInfoList

+ +

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

+ +

The format of the GetColorInfoList function is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_colors
+
This integer returns the number of colors in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetColorList

+ +

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

+ +

The format of the GetColorList function is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_colors
+
This integer returns the number of colors in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ListColorInfo

+ +

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.

+ +

The format of the ListColorInfo method is:

+ +
+MagickBooleanType ListColorInfo(FILE *file,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
file
+

List color names to this file handle.

+ +
exception
+

return any errors or warnings in this structure.

+ +

QueryColorname

+ +

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.

+ +

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

+ +

The format of the QueryColorname method is:

+ +
+MagickBooleanType QueryColorname(const Image *image,
+  const PixelInfo *color,const ComplianceType compliance,char *name,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

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

+ +
color
+

the color intensities.

+ +
Compliance
+

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

+ +
name
+

Return the color name or hex value.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/colormap.html b/share/doc/ImageMagick-7/www/api/colormap.html new file mode 100644 index 0000000..ee6a2c1 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/colormap.html @@ -0,0 +1,173 @@ + + + + + + + + + + MagickCore, C API: Colormap Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireImageColormapCycleColormap

+ +

AcquireImageColormap

+ +

AcquireImageColormap() allocates an image colormap and initializes it to a linear gray colorspace. If the image already has a colormap, it is replaced. AcquireImageColormap() returns MagickTrue if successful, otherwise MagickFalse if there is not enough memory.

+ +

The format of the AcquireImageColormap method is:

+ +
+MagickBooleanType AcquireImageColormap(Image *image,const size_t colors,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
colors
+
the number of colors in the image colormap.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CycleColormap

+ +

CycleColormap() displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychodelic effect.

+ +

WARNING: this assumes an images colormap is in a well know and defined order. Currently Imagemagick has no way of setting that order.

+ +

The format of the CycleColormapImage method is:

+ +
+MagickBooleanType CycleColormapImage(Image *image,const ssize_t displace,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
displace
+
displace the colormap this amount.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/colormap.php b/share/doc/ImageMagick-7/www/api/colormap.php new file mode 100644 index 0000000..73575bf --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/colormap.php @@ -0,0 +1,139 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Colormap Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AcquireImageColormapCycleColormap

+ +

AcquireImageColormap

+ +

AcquireImageColormap() allocates an image colormap and initializes it to a linear gray colorspace. If the image already has a colormap, it is replaced. AcquireImageColormap() returns MagickTrue if successful, otherwise MagickFalse if there is not enough memory.

+ +

The format of the AcquireImageColormap method is:

+ +
+MagickBooleanType AcquireImageColormap(Image *image,const size_t colors,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
colors
+
the number of colors in the image colormap.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CycleColormap

+ +

CycleColormap() displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychodelic effect.

+ +

WARNING: this assumes an images colormap is in a well know and defined order. Currently Imagemagick has no way of setting that order.

+ +

The format of the CycleColormapImage method is:

+ +
+MagickBooleanType CycleColormapImage(Image *image,const ssize_t displace,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
displace
+
displace the colormap this amount.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/colorspace.html b/share/doc/ImageMagick-7/www/api/colorspace.html new file mode 100644 index 0000000..dbfd1bc --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/colorspace.html @@ -0,0 +1,259 @@ + + + + + + + + + + MagickCore, C API: Dealing with Image Colorspaces @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

GetImageColorspaceTypeSetImageColorspaceSetImageGraySetImageMonochromeTransformImageColorspace

+ +

GetImageColorspaceType

+ +

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

+ +

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

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

The format of the GetImageColorspaceType method is:

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

A description of each parameter follows:

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

SetImageColorspace

+ +

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

+ +

The format of the SetImageColorspace method is:

+ +
+MagickBooleanType SetImageColorspace(Image *image,
+  const ColorspaceType colorspace,ExceptiionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageGray

+ +

SetImageGray() returns MagickTrue if all the pixels in the image have the same red, green, and blue intensities and changes the type of the image to bi-level or grayscale.

+ +

The format of the SetImageGray method is:

+ +
+MagickBooleanType SetImageGray(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageMonochrome

+ +

SetImageMonochrome() returns MagickTrue if all the pixels in the image have the same red, green, and blue intensities and the intensity is either 0 or QuantumRange and changes the type of the image to bi-level.

+ +

The format of the SetImageMonochrome method is:

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

A description of each parameter follows:

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

TransformImageColorspace

+ +

TransformImageColorspace() transforms an image colorspace, changing the image data to reflect the new colorspace.

+ +

The format of the TransformImageColorspace method is:

+ +
+MagickBooleanType TransformImageColorspace(Image *image,
+  const ColorspaceType colorspace,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
colorspace
+
the colorspace.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/colorspace.php b/share/doc/ImageMagick-7/www/api/colorspace.php new file mode 100644 index 0000000..65cfe11 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/colorspace.php @@ -0,0 +1,191 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Dealing with Image Colorspaces + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

SetImageColorspaceSetImageGraySetImageMonochromeTransformImageColorspace

+ +

SetImageColorspace

+ +

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

+ +

The format of the SetImageColorspace method is:

+ +
+MagickBooleanType SetImageColorspace(Image *image,
+  const ColorspaceType colorspace,ExceptiionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageGray

+ +

SetImageGray() returns MagickTrue if all the pixels in the image have the same red, green, and blue intensities and changes the type of the image to bi-level or grayscale.

+ +

The format of the SetImageGray method is:

+ +
+MagickBooleanType SetImageGray(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageMonochrome

+ +

SetImageMonochrome() returns MagickTrue if all the pixels in the image have the same red, green, and blue intensities and the intensity is either 0 or QuantumRange and changes the type of the image to bi-level.

+ +

The format of the SetImageMonochrome method is:

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

A description of each parameter follows:

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

TransformImageColorspace

+ +

TransformImageColorspace() transforms an image colorspace, changing the image data to reflect the new colorspace.

+ +

The format of the TransformImageColorspace method is:

+ +
+MagickBooleanType TransformImageColorspace(Image *image,
+  const ColorspaceType colorspace,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
colorspace
+
the colorspace.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/compare.html b/share/doc/ImageMagick-7/www/api/compare.html new file mode 100644 index 0000000..1eaaa85 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/compare.html @@ -0,0 +1,148 @@ + + + + + + + + + + MagickCore, C API: Compare an Image to a Reconstructed Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

CompareImagesCommand

+ +

CompareImagesCommand

+ +

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

+ +

The format of the CompareImagesCommand method is:

+ +
+MagickBooleanType CompareImagesCommand(ImageInfo *image_info,int argc,
+  char **argv,char **metadata,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
argc
+
the number of elements in the argument vector.
+ +
+
argv
+
A text array containing the command line arguments.
+ +
+
metadata
+
any metadata is returned here.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/compare.php b/share/doc/ImageMagick-7/www/api/compare.php new file mode 100644 index 0000000..bab3578 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/compare.php @@ -0,0 +1,273 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Compare an Image to a Reconstructed Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

CompareImagesGetImageDistortionGetImageDistortionsIsImagesEqualSimilarityImage

+ +

CompareImages

+ +

CompareImages() compares one or more pixel channels of an image to a reconstructed image and returns the difference image.

+ +

The format of the CompareImages method is:

+ +
+Image *CompareImages(const Image *image,const Image *reconstruct_image,
+  const MetricType metric,double *distortion,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
reconstruct_image
+
the reconstruct image.
+ +
+
metric
+
the metric.
+ +
+
distortion
+
the computed distortion between the images.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageDistortion

+ +

GetImageDistortion() compares one or more pixel channels of an image to a reconstructed image and returns the specified distortion metric.

+ +

The format of the GetImageDistortion method is:

+ +
+MagickBooleanType GetImageDistortion(const Image *image,
+  const Image *reconstruct_image,const MetricType metric,
+  double *distortion,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
reconstruct_image
+
the reconstruct image.
+ +
+
metric
+
the metric.
+ +
+
distortion
+
the computed distortion between the images.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageDistortions

+ +

GetImageDistortions() compares the pixel channels of an image to a reconstructed image and returns the specified distortion metric for each channel.

+ +

The format of the GetImageDistortions method is:

+ +
+double *GetImageDistortions(const Image *image,
+  const Image *reconstruct_image,const MetricType metric,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

IsImagesEqual

+ +

IsImagesEqual() measures the difference between colors at each pixel location of two images. A value other than 0 means the colors match exactly. Otherwise an error measure is computed by summing over all pixels in an image the distance squared in RGB space between each image pixel and its corresponding pixel in the reconstruct image. The error measure is assigned to these image members:

+ +
+    o mean_error_per_pixel:  The mean error for any single pixel in
+the image.
+
+ +
normalized_mean_error
+

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.

+ +
normalized_maximum_error
+

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.

+ +

A small normalized mean square error, accessed as image->normalized_mean_error, suggests the images are very similar in spatial layout and color.

+ +

The format of the IsImagesEqual method is:

+ +
+MagickBooleanType IsImagesEqual(Image *image,
+  const Image *reconstruct_image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
reconstruct_image
+

the reconstruct image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

SimilarityImage

+ +

SimilarityImage() compares the reference image of the image and 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.

+ +

The format of the SimilarityImageImage method is:

+ +
+Image *SimilarityImage(const Image *image,const Image *reference,
+  const MetricType metric,const double similarity_threshold,
+  RectangleInfo *offset,double *similarity,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
reference
+
find an area of the image that closely resembles this image.
+ +
+
metric
+
the metric.
+ +
+
similarity_threshold
+
minimum distortion for (sub)image match.
+ +
+
offset
+
the best match offset of the reference image within the image.
+ +
+
similarity
+
the computed similarity between the images.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/composite.html b/share/doc/ImageMagick-7/www/api/composite.html new file mode 100644 index 0000000..747ec29 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/composite.html @@ -0,0 +1,148 @@ + + + + + + + + + + MagickCore, C API: Composite an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

CompositeImageCommand

+ +

CompositeImageCommand

+ +

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

+ +

The format of the CompositeImageCommand method is:

+ +
+MagickBooleanType CompositeImageCommand(ImageInfo *image_info,int argc,
+  char **argv,char **metadata,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
argc
+
the number of elements in the argument vector.
+ +
+
argv
+
A text array containing the command line arguments.
+ +
+
metadata
+
any metadata is returned here.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/constitute.html b/share/doc/ImageMagick-7/www/api/constitute.html new file mode 100644 index 0000000..16e392d --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/constitute.html @@ -0,0 +1,337 @@ + + + + + + + + + + MagickCore, C API: Constitute an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

ConstituteImagePingImagePingImagesReadImageReadImagesWriteImageWriteImages

+ +

ConstituteImage

+ +

ConstituteImage() returns an image from the pixel data you supply. The pixel data must be in scanline order top-to-bottom. The data can be char, short int, int, float, or double. Float and double require the pixels to be normalized [0..1], otherwise [0..QuantumRange]. For example, to create a 640x480 image from unsigned red-green-blue character data, use:

+ +
+image = ConstituteImage(640,480,"RGB",CharPixel,pixels,&exception);
+
+ +

The format of the ConstituteImage method is:

+ +
+Image *ConstituteImage(const size_t columns,const size_t rows,
+  const char *map,const StorageType storage,const void *pixels,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
columns
+
width in pixels of the image.
+ +
+
rows
+
height in pixels of the image.
+ +
+
map
+
This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
+ +
+
storage
+
Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, DoublePixel, FloatPixel, IntegerPixel, LongPixel, QuantumPixel, or ShortPixel.
+ +
+
pixels
+
This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

PingImage

+ +

PingImage() returns all the properties of an image or image sequence except for the pixels. It is much faster and consumes far less memory than ReadImage(). On failure, a NULL image is returned and exception describes the reason for the failure.

+ +

The format of the PingImage method is:

+ +
+Image *PingImage(const ImageInfo *image_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
Ping the image defined by the file or filename members of this structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

PingImages

+ +

PingImages() pings one or more images and returns them as an image list.

+ +

The format of the PingImage method is:

+ +
+Image *PingImages(ImageInfo *image_info,const char *filename,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

ReadImage

+ +

ReadImage() reads an image or image sequence from a file or file handle. The method returns a NULL if there is a memory shortage or if the image cannot be read. On failure, a NULL image is returned and exception describes the reason for the failure.

+ +

The format of the ReadImage method is:

+ +
+Image *ReadImage(const ImageInfo *image_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
Read the image defined by the file or filename members of this structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ReadImages

+ +

ReadImages() reads one or more images and returns them as an image list.

+ +

The format of the ReadImage method is:

+ +
+Image *ReadImages(ImageInfo *image_info,const char *filename,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

WriteImage

+ +

WriteImage() writes an image or an image sequence to a file or file handle. If writing to a file is on disk, the name is defined by the filename member of the image structure. WriteImage() returns MagickFalse is there is a memory shortage or if the image cannot be written. Check the exception member of image to determine the cause for any failure.

+ +

The format of the WriteImage method is:

+ +
+MagickBooleanType WriteImage(const ImageInfo *image_info,Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

WriteImages

+ +

WriteImages() writes an image sequence into one or more files. While WriteImage() can write an image sequence, it is limited to writing the sequence into a single file using a format which supports multiple frames. WriteImages(), however, does not have this limitation, instead it generates multiple output files if necessary (or when requested). When ImageInfo's adjoin flag is set to MagickFalse, the file name is expected to include a printf-style formatting string for the frame number (e.g. "image02d.png").

+ +

The format of the WriteImages method is:

+ +
+MagickBooleanType WriteImages(const ImageInfo *image_info,Image *images,
+  const char *filename,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
images
+
the image list.
+ +
+
filename
+
the image filename.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/constitute.php b/share/doc/ImageMagick-7/www/api/constitute.php new file mode 100644 index 0000000..105bfc1 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/constitute.php @@ -0,0 +1,303 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Constitute an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

ConstituteImagePingImagePingImagesReadImageReadImagesWriteImageWriteImages

+ +

ConstituteImage

+ +

ConstituteImage() returns an image from the pixel data you supply. The pixel data must be in scanline order top-to-bottom. The data can be char, short int, int, float, or double. Float and double require the pixels to be normalized [0..1], otherwise [0..QuantumRange]. For example, to create a 640x480 image from unsigned red-green-blue character data, use:

+ +
+image = ConstituteImage(640,480,"RGB",CharPixel,pixels,&exception);
+
+ +

The format of the ConstituteImage method is:

+ +
+Image *ConstituteImage(const size_t columns,const size_t rows,
+  const char *map,const StorageType storage,const void *pixels,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
columns
+
width in pixels of the image.
+ +
+
rows
+
height in pixels of the image.
+ +
+
map
+
This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
+ +
+
storage
+
Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, DoublePixel, FloatPixel, IntegerPixel, LongPixel, QuantumPixel, or ShortPixel.
+ +
+
pixels
+
This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

PingImage

+ +

PingImage() returns all the properties of an image or image sequence except for the pixels. It is much faster and consumes far less memory than ReadImage(). On failure, a NULL image is returned and exception describes the reason for the failure.

+ +

The format of the PingImage method is:

+ +
+Image *PingImage(const ImageInfo *image_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
Ping the image defined by the file or filename members of this structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

PingImages

+ +

PingImages() pings one or more images and returns them as an image list.

+ +

The format of the PingImage method is:

+ +
+Image *PingImages(ImageInfo *image_info,const char *filename,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

ReadImage

+ +

ReadImage() reads an image or image sequence from a file or file handle. The method returns a NULL if there is a memory shortage or if the image cannot be read. On failure, a NULL image is returned and exception describes the reason for the failure.

+ +

The format of the ReadImage method is:

+ +
+Image *ReadImage(const ImageInfo *image_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
Read the image defined by the file or filename members of this structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ReadImages

+ +

ReadImages() reads one or more images and returns them as an image list.

+ +

The format of the ReadImage method is:

+ +
+Image *ReadImages(ImageInfo *image_info,const char *filename,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

WriteImage

+ +

WriteImage() writes an image or an image sequence to a file or file handle. If writing to a file is on disk, the name is defined by the filename member of the image structure. WriteImage() returns MagickFalse is there is a memory shortage or if the image cannot be written. Check the exception member of image to determine the cause for any failure.

+ +

The format of the WriteImage method is:

+ +
+MagickBooleanType WriteImage(const ImageInfo *image_info,Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

WriteImages

+ +

WriteImages() writes an image sequence into one or more files. While WriteImage() can write an image sequence, it is limited to writing the sequence into a single file using a format which supports multiple frames. WriteImages(), however, does not have this limitation, instead it generates multiple output files if necessary (or when requested). When ImageInfo's adjoin flag is set to MagickFalse, the file name is expected to include a printf-style formatting string for the frame number (e.g. "image02d.png").

+ +

The format of the WriteImages method is:

+ +
+MagickBooleanType WriteImages(const ImageInfo *image_info,Image *images,
+  const char *filename,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
images
+
the image list.
+ +
+
filename
+
the image filename.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/decorate.html b/share/doc/ImageMagick-7/www/api/decorate.html new file mode 100644 index 0000000..a3f7e39 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/decorate.html @@ -0,0 +1,215 @@ + + + + + + + + + + MagickCore, C API: Decorate an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

BorderImageFrameImageRaiseImage

+ +

BorderImage

+ +

BorderImage() surrounds the image with a border of the color defined by the bordercolor member of the image structure. The width and height of the border are defined by the corresponding members of the border_info structure.

+ +

The format of the BorderImage method is:

+ +
+Image *BorderImage(const Image *image,const RectangleInfo *border_info,
+  const CompositeOperator compose,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
border_info
+
define the width and height of the border.
+ +
+
compose
+
the composite operator.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

FrameImage

+ +

FrameImage() adds a simulated three-dimensional border around the image. The color of the border is defined by the matte_color member of image. Members width and height of frame_info specify the border width of the vertical and horizontal sides of the frame. Members inner and outer indicate the width of the inner and outer shadows of the frame.

+ +

The format of the FrameImage method is:

+ +
+Image *FrameImage(const Image *image,const FrameInfo *frame_info,
+  const CompositeOperator compose,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
frame_info
+
Define the width and height of the frame and its bevels.
+ +
+
compose
+
the composite operator.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

RaiseImage

+ +

RaiseImage() creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

+ +

The format of the RaiseImage method is:

+ +
+MagickBooleanType RaiseImage(const Image *image,
+  const RectangleInfo *raise_info,const MagickBooleanType raise,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
raise_info
+
Define the width and height of the raise area.
+ +
+
raise
+
A value other than zero creates a 3-D raise effect, otherwise it has a lowered effect.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/decorate.php b/share/doc/ImageMagick-7/www/api/decorate.php new file mode 100644 index 0000000..274feab --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/decorate.php @@ -0,0 +1,181 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Decorate an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

BorderImageFrameImageRaiseImage

+ +

BorderImage

+ +

BorderImage() surrounds the image with a border of the color defined by the bordercolor member of the image structure. The width and height of the border are defined by the corresponding members of the border_info structure.

+ +

The format of the BorderImage method is:

+ +
+Image *BorderImage(const Image *image,const RectangleInfo *border_info,
+  const CompositeOperator compose,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
border_info
+
define the width and height of the border.
+ +
+
compose
+
the composite operator.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

FrameImage

+ +

FrameImage() adds a simulated three-dimensional border around the image. The color of the border is defined by the matte_color member of image. Members width and height of frame_info specify the border width of the vertical and horizontal sides of the frame. Members inner and outer indicate the width of the inner and outer shadows of the frame.

+ +

The format of the FrameImage method is:

+ +
+Image *FrameImage(const Image *image,const FrameInfo *frame_info,
+  const CompositeOperator compose,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
frame_info
+
Define the width and height of the frame and its bevels.
+ +
+
compose
+
the composite operator.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

RaiseImage

+ +

RaiseImage() creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

+ +

The format of the RaiseImage method is:

+ +
+MagickBooleanType RaiseImage(const Image *image,
+  const RectangleInfo *raise_info,const MagickBooleanType raise,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
raise_info
+
Define the width and height of the raise area.
+ +
+
raise
+
A value other than zero creates a 3-D raise effect, otherwise it has a lowered effect.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/deprecate.html b/share/doc/ImageMagick-7/www/api/deprecate.html new file mode 100644 index 0000000..02d838e --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/deprecate.html @@ -0,0 +1,163 @@ + + + + + + + + + + MagickCore, C API: Deprecated Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

MagickGetImageAlphaColorMagickSetImageAlphaColor

+ +

MagickGetImageAlphaColor

+ +

MagickGetImageAlphaColor() returns the image alpha color.

+ +

The format of the MagickGetImageAlphaColor method is:

+ +
+MagickBooleanType MagickGetImageAlphaColor(MagickWand *wand,
+  PixelWand *alpha_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
alpha_color
+
return the alpha color.
+ +
+
+

MagickSetImageAlphaColor

+ +

MagickSetImageAlphaColor() sets the image alpha color.

+ +

The format of the MagickSetImageAlphaColor method is:

+ +
+MagickBooleanType MagickSetImageAlphaColor(MagickWand *wand,
+  const PixelWand *matte)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
matte
+
the alpha pixel wand.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/deprecate.php b/share/doc/ImageMagick-7/www/api/deprecate.php new file mode 100644 index 0000000..ad8fb95 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/deprecate.php @@ -0,0 +1,75 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Deprecated Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

+ +
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/display.html b/share/doc/ImageMagick-7/www/api/display.html new file mode 100644 index 0000000..78d2889 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/display.html @@ -0,0 +1,109 @@ + + + + + + + + + + MagickCore, C API: Interactively Display and Edit an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/display.php b/share/doc/ImageMagick-7/www/api/display.php new file mode 100644 index 0000000..6f2c0c5 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/display.php @@ -0,0 +1,176 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Interactively Display and Edit an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

DisplayImagesRemoteDisplayCommandXDisplayBackgroundImage

+ +

DisplayImages

+ +

DisplayImages() displays an image sequence to any X window screen. It returns a value other than 0 if successful. Check the exception member of image to determine the reason for any failure.

+ +

The format of the DisplayImages method is:

+ +
+MagickBooleanType DisplayImages(const ImageInfo *image_info,
+  Image *images,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RemoteDisplayCommand

+ +

RemoteDisplayCommand() encourages a remote display program to display the specified image filename.

+ +

The format of the RemoteDisplayCommand method is:

+ +
+MagickBooleanType RemoteDisplayCommand(const ImageInfo *image_info,
+  const char *window,const char *filename,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
window
+
Specifies the name or id of an X window.
+ +
+
filename
+
the name of the image filename to display.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

XDisplayBackgroundImage

+ +

XDisplayBackgroundImage() displays an image in the background of a window.

+ +

The format of the XDisplayBackgroundImage method is:

+ +
+MagickBooleanType XDisplayBackgroundImage(Display *display,
+  XResourceInfo *resource_info,Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
display
+
Specifies a connection to an X server; returned from XOpenDisplay.
+ +
+
resource_info
+
Specifies a pointer to a X11 XResourceInfo structure.
+ +
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/distort.html b/share/doc/ImageMagick-7/www/api/distort.html new file mode 100644 index 0000000..512ec74 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/distort.html @@ -0,0 +1,272 @@ + + + + + + + + + + MagickCore, C API: Image Distortions @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AffineTransformImageDistortImageRotateImageSparseColorImage

+ +

AffineTransformImage

+ +

AffineTransformImage() transforms an image as dictated by the affine matrix. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the AffineTransformImage method is:

+ +
+Image *AffineTransformImage(const Image *image,
+  AffineMatrix *affine_matrix,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DistortImage

+ +

DistortImage() distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usally of the same size as the source image, unless 'bestfit' is set to true.

+ +

If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping.

+ +

If the '-verbose' control option has been set print to standard error the equicelent '-fx' formula with coefficients for the function, if practical.

+ +

The format of the DistortImage() method is:

+ +
+Image *DistortImage(const Image *image,const DistortMethod method,
+  const size_t number_arguments,const double *arguments,
+  MagickBooleanType bestfit, ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be distorted.
+ +
+
method
+
the method of image distortion.
+ +
ArcDistortion always ignores source image offset, and always 'bestfit' the destination image with the top left corner offset relative to the polar mapping center.
+ +
Affine, Perspective, and Bilinear, do least squares fitting of the distrotion when more than the minimum number of control point pairs are provided.
+ +
Perspective, and Bilinear, fall back to a Affine distortion when less than 4 control point pairs are provided. While Affine distortions let you use any number of control point pairs, that is Zero pairs is a No-Op (viewport only) distortion, one pair is a translation and two pairs of control points do a scale-rotate-translate, without any shearing.
+ +
+
number_arguments
+
the number of arguments given.
+ +
+
arguments
+
an array of floating point arguments for this method.
+ +
+
bestfit
+
Attempt to 'bestfit' the size of the resulting image. This also forces the resulting image to be a 'layered' virtual canvas image. Can be overridden using 'distort:viewport' setting.
+ +
+
exception
+
return any errors or warnings in this structure
+ +
Extra Controls from Image meta-data (artifacts)...
+ +
o "verbose" Output to stderr alternatives, internal coefficents, and FX equivalents for the distortion operation (if feasible). This forms an extra check of the distortion method, and allows users access to the internal constants IM calculates for the distortion.
+ +
o "distort:viewport" Directly set the output image canvas area and offest to use for the resulting image, rather than use the original images canvas, or a calculated 'bestfit' canvas.
+ +
o "distort:scale" Scale the size of the output canvas by this amount to provide a method of Zooming, and for super-sampling the results.
+ +
Other settings that can effect results include
+ +
o 'interpolate' For source image lookups (scale enlargements)
+ +
o 'filter' Set filter to use for area-resampling (scale shrinking). Set to 'point' to turn off and use 'interpolate' lookup instead
+ +
+
+

RotateImage

+ +

RotateImage() creates a new image that is a rotated copy of an existing one. Positive angles rotate counter-clockwise (right-hand rule), while negative angles rotate clockwise. Rotated images are usually larger than the originals and have 'empty' triangular corners. X axis. Empty triangles left over from shearing the image are filled with the background color defined by member 'background_color' of the image. RotateImage allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the RotateImage method is:

+ +
+Image *RotateImage(const Image *image,const double degrees,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
degrees
+

Specifies the number of degrees to rotate the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

SparseColorImage

+ +

SparseColorImage(), given a set of coordinates, interpolates the colors found at those coordinates, across the whole image, using various methods.

+ +

The format of the SparseColorImage() method is:

+ +
+Image *SparseColorImage(const Image *image,
+  const SparseColorMethod method,const size_t number_arguments,
+  const double *arguments,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be filled in.
+ +
+
method
+
the method to fill in the gradient between the control points.
+ +
The methods used for SparseColor() are often simular to methods used for DistortImage(), and even share the same code for determination of the function coefficents, though with more dimensions (or resulting values).
+ +
+
number_arguments
+
the number of arguments given.
+ +
+
arguments
+
array of floating point arguments for this method-- x,y,color_values-- with color_values given as normalized values.
+ +
+
exception
+
return any errors or warnings in this structure
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/distort.php b/share/doc/ImageMagick-7/www/api/distort.php new file mode 100644 index 0000000..49d0bbe --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/distort.php @@ -0,0 +1,238 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Image Distortions + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AffineTransformImageDistortImageRotateImageSparseColorImage

+ +

AffineTransformImage

+ +

AffineTransformImage() transforms an image as dictated by the affine matrix. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the AffineTransformImage method is:

+ +
+Image *AffineTransformImage(const Image *image,
+  AffineMatrix *affine_matrix,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DistortImage

+ +

DistortImage() distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usally of the same size as the source image, unless 'bestfit' is set to true.

+ +

If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping.

+ +

If the '-verbose' control option has been set print to standard error the equicelent '-fx' formula with coefficients for the function, if practical.

+ +

The format of the DistortImage() method is:

+ +
+Image *DistortImage(const Image *image,const DistortImageMethod method,
+  const size_t number_arguments,const double *arguments,
+  MagickBooleanType bestfit, ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be distorted.
+ +
+
method
+
the method of image distortion.
+ +
ArcDistortion always ignores source image offset, and always 'bestfit' the destination image with the top left corner offset relative to the polar mapping center.
+ +
Affine, Perspective, and Bilinear, do least squares fitting of the distrotion when more than the minimum number of control point pairs are provided.
+ +
Perspective, and Bilinear, fall back to a Affine distortion when less than 4 control point pairs are provided. While Affine distortions let you use any number of control point pairs, that is Zero pairs is a No-Op (viewport only) distortion, one pair is a translation and two pairs of control points do a scale-rotate-translate, without any shearing.
+ +
+
number_arguments
+
the number of arguments given.
+ +
+
arguments
+
an array of floating point arguments for this method.
+ +
+
bestfit
+
Attempt to 'bestfit' the size of the resulting image. This also forces the resulting image to be a 'layered' virtual canvas image. Can be overridden using 'distort:viewport' setting.
+ +
+
exception
+
return any errors or warnings in this structure
+ +
Extra Controls from Image meta-data (artifacts)...
+ +
o "verbose" Output to stderr alternatives, internal coefficents, and FX equivalents for the distortion operation (if feasible). This forms an extra check of the distortion method, and allows users access to the internal constants IM calculates for the distortion.
+ +
o "distort:viewport" Directly set the output image canvas area and offest to use for the resulting image, rather than use the original images canvas, or a calculated 'bestfit' canvas.
+ +
o "distort:scale" Scale the size of the output canvas by this amount to provide a method of Zooming, and for super-sampling the results.
+ +
Other settings that can effect results include
+ +
o 'interpolate' For source image lookups (scale enlargements)
+ +
o 'filter' Set filter to use for area-resampling (scale shrinking). Set to 'point' to turn off and use 'interpolate' lookup instead
+ +
+
+

RotateImage

+ +

RotateImage() creates a new image that is a rotated copy of an existing one. Positive angles rotate counter-clockwise (right-hand rule), while negative angles rotate clockwise. Rotated images are usually larger than the originals and have 'empty' triangular corners. X axis. Empty triangles left over from shearing the image are filled with the background color defined by member 'background_color' of the image. RotateImage allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the RotateImage method is:

+ +
+Image *RotateImage(const Image *image,const double degrees,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
degrees
+

Specifies the number of degrees to rotate the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

SparseColorImage

+ +

SparseColorImage(), given a set of coordinates, interpolates the colors found at those coordinates, across the whole image, using various methods.

+ +

The format of the SparseColorImage() method is:

+ +
+Image *SparseColorImage(const Image *image,
+  const SparseColorMethod method,const size_t number_arguments,
+  const double *arguments,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be filled in.
+ +
+
method
+
the method to fill in the gradient between the control points.
+ +
The methods used for SparseColor() are often simular to methods used for DistortImage(), and even share the same code for determination of the function coefficents, though with more dimensions (or resulting values).
+ +
+
number_arguments
+
the number of arguments given.
+ +
+
arguments
+
array of floating point arguments for this method-- x,y,color_values-- with color_values given as normalized values.
+ +
+
exception
+
return any errors or warnings in this structure
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/draw.html b/share/doc/ImageMagick-7/www/api/draw.html new file mode 100644 index 0000000..90bb1af --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/draw.html @@ -0,0 +1,396 @@ + + + + + + + + + + MagickCore, C API: Draw on an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireDrawInfoCloneDrawInfoDestroyDrawInfoDrawAffineImageDrawClipPathDrawImageDrawGradientImageDrawPatternPathDrawPrimitiveGetAffineMatrix

+ +

AcquireDrawInfo

+ +

AcquireDrawInfo() returns a DrawInfo structure properly initialized.

+ +

The format of the AcquireDrawInfo method is:

+ +
+DrawInfo *AcquireDrawInfo(void)
+
+ +

CloneDrawInfo

+ +

CloneDrawInfo() makes a copy of the given draw_info structure. If NULL is specified, a new DrawInfo structure is created initialized to default values.

+ +

The format of the CloneDrawInfo method is:

+ +
+DrawInfo *CloneDrawInfo(const ImageInfo *image_info,
+  const DrawInfo *draw_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
draw_info
+
the draw info.
+ +
+
+

DestroyDrawInfo

+ +

DestroyDrawInfo() deallocates memory associated with an DrawInfo structure.

+ +

The format of the DestroyDrawInfo method is:

+ +
+DrawInfo *DestroyDrawInfo(DrawInfo *draw_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
draw_info
+
the draw info.
+ +
+
+

DrawAffineImage

+ +

DrawAffineImage() composites the source over the destination image as dictated by the affine transform.

+ +

The format of the DrawAffineImage method is:

+ +
+MagickBooleanType DrawAffineImage(Image *image,const Image *source,
+  const AffineMatrix *affine,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DrawClipPath

+ +

DrawClipPath() draws the clip path on the image mask.

+ +

The format of the DrawClipPath method is:

+ +
+MagickBooleanType DrawClipPath(Image *image,const DrawInfo *draw_info,
+  const char *name,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
name
+
the name of the clip path.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DrawImage

+ +

DrawImage() draws a graphic primitive on your image. The primitive may be represented as a string or filename. Precede the filename with an "at" sign (@) and the contents of the file are drawn on the image. You can affect how text is drawn by setting one or more members of the draw info structure.

+ +

The format of the DrawImage method is:

+ +
+MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DrawGradientImage

+ +

DrawGradientImage() draws a linear gradient on the image.

+ +

The format of the DrawGradientImage method is:

+ +
+MagickBooleanType DrawGradientImage(Image *image,
+  const DrawInfo *draw_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DrawPatternPath

+ +

DrawPatternPath() draws a pattern.

+ +

The format of the DrawPatternPath method is:

+ +
+MagickBooleanType DrawPatternPath(Image *image,const DrawInfo *draw_info,
+  const char *name,Image **pattern,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
name
+
the pattern name.
+ +
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DrawPrimitive

+ +

DrawPrimitive() draws a primitive (line, rectangle, ellipse) on the image.

+ +

The format of the DrawPrimitive method is:

+ +
+MagickBooleanType DrawPrimitive(Image *image,const DrawInfo *draw_info,
+  PrimitiveInfo *primitive_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
primitive_info
+
Specifies a pointer to a PrimitiveInfo structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetAffineMatrix

+ +

GetAffineMatrix() returns an AffineMatrix initialized to the identity matrix.

+ +

The format of the GetAffineMatrix method is:

+ +
+void GetAffineMatrix(AffineMatrix *affine_matrix)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
affine_matrix
+
the affine matrix.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/draw.php b/share/doc/ImageMagick-7/www/api/draw.php new file mode 100644 index 0000000..bfc9277 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/draw.php @@ -0,0 +1,362 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Draw on an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AcquireDrawInfoCloneDrawInfoDestroyDrawInfoDrawAffineImageDrawClipPathDrawImageDrawGradientImageDrawPatternPathDrawPrimitiveGetAffineMatrix

+ +

AcquireDrawInfo

+ +

AcquireDrawInfo() returns a DrawInfo structure properly initialized.

+ +

The format of the AcquireDrawInfo method is:

+ +
+DrawInfo *AcquireDrawInfo(void)
+
+ +

CloneDrawInfo

+ +

CloneDrawInfo() makes a copy of the given draw_info structure. If NULL is specified, a new DrawInfo structure is created initialized to default values.

+ +

The format of the CloneDrawInfo method is:

+ +
+DrawInfo *CloneDrawInfo(const ImageInfo *image_info,
+  const DrawInfo *draw_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
draw_info
+
the draw info.
+ +
+
+

DestroyDrawInfo

+ +

DestroyDrawInfo() deallocates memory associated with an DrawInfo structure.

+ +

The format of the DestroyDrawInfo method is:

+ +
+DrawInfo *DestroyDrawInfo(DrawInfo *draw_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
draw_info
+
the draw info.
+ +
+
+

DrawAffineImage

+ +

DrawAffineImage() composites the source over the destination image as dictated by the affine transform.

+ +

The format of the DrawAffineImage method is:

+ +
+MagickBooleanType DrawAffineImage(Image *image,const Image *source,
+  const AffineMatrix *affine,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DrawClipPath

+ +

DrawClipPath() draws the clip path on the image mask.

+ +

The format of the DrawClipPath method is:

+ +
+MagickBooleanType DrawClipPath(Image *image,const DrawInfo *draw_info,
+  const char *name,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
name
+
the name of the clip path.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DrawImage

+ +

DrawImage() draws a graphic primitive on your image. The primitive may be represented as a string or filename. Precede the filename with an "at" sign (@) and the contents of the file are drawn on the image. You can affect how text is drawn by setting one or more members of the draw info structure.

+ +

The format of the DrawImage method is:

+ +
+MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DrawGradientImage

+ +

DrawGradientImage() draws a linear gradient on the image.

+ +

The format of the DrawGradientImage method is:

+ +
+MagickBooleanType DrawGradientImage(Image *image,
+  const DrawInfo *draw_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DrawPatternPath

+ +

DrawPatternPath() draws a pattern.

+ +

The format of the DrawPatternPath method is:

+ +
+MagickBooleanType DrawPatternPath(Image *image,const DrawInfo *draw_info,
+  const char *name,Image **pattern,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
name
+
the pattern name.
+ +
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DrawPrimitive

+ +

DrawPrimitive() draws a primitive (line, rectangle, ellipse) on the image.

+ +

The format of the DrawPrimitive method is:

+ +
+MagickBooleanType DrawPrimitive(Image *image,const DrawInfo *draw_info,
+  PrimitiveInfo *primitive_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
primitive_info
+
Specifies a pointer to a PrimitiveInfo structure.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetAffineMatrix

+ +

GetAffineMatrix() returns an AffineMatrix initialized to the identity matrix.

+ +

The format of the GetAffineMatrix method is:

+ +
+void GetAffineMatrix(AffineMatrix *affine_matrix)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
affine_matrix
+
the affine matrix.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/drawing-wand.html b/share/doc/ImageMagick-7/www/api/drawing-wand.html new file mode 100644 index 0000000..01d4030 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/drawing-wand.html @@ -0,0 +1,3873 @@ + + + + + + + + + + MagickWand, C API: Drawing Wand Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

ClearDrawingWandCloneDrawingWandDestroyDrawingWandDrawAffineDrawAlphaDrawAnnotationDrawArcDrawBezierDrawCircleDrawClearExceptionDrawCloneExceptionInfoDrawColorDrawCompositeDrawCommentDrawEllipseDrawGetBorderColorDrawGetClipPathDrawGetClipRuleDrawGetClipUnitsDrawGetDensityDrawGetExceptionDrawGetExceptionTypeDrawGetFillColorDrawGetFillOpacityDrawGetFillRuleDrawGetFontDrawGetFontFamilyDrawGetFontResolutionDrawGetFontSizeDrawGetFontStretchDrawGetFontStyleDrawGetFontWeightDrawGetGravityDrawGetOpacityDrawGetStrokeAntialiasDrawGetStrokeColorDrawGetStrokeDashArrayDrawGetStrokeDashOffsetDrawGetStrokeLineCapDrawGetStrokeLineJoinDrawGetStrokeMiterLimitDrawGetStrokeOpacityDrawGetStrokeWidthDrawGetTextAlignmentDrawGetTextAntialiasDrawGetTextDecorationDrawGetTextDirectionDrawGetTextEncodingDrawGetTextKerningDrawGetTextInterlineSpacingDrawGetTextInterwordSpacingDrawGetVectorGraphicsDrawGetTextUnderColorDrawLineDrawPathCloseDrawPathCurveToAbsoluteDrawPathCurveToRelativeDrawPathCurveToQuadraticBezierAbsoluteDrawPathCurveToQuadraticBezierRelativeDrawPathCurveToQuadraticBezierSmoothAbsoluteDrawPathCurveToQuadraticBezierSmoothRelativeDrawPathCurveToSmoothAbsoluteDrawPathCurveToSmoothRelativeDrawPathEllipticArcAbsoluteDrawPathEllipticArcRelativeDrawPathFinishDrawPathLineToAbsoluteDrawPathLineToRelativeDrawPathLineToHorizontalAbsoluteDrawPathLineToHorizontalRelativeDrawPathLineToVerticalAbsoluteDrawPathLineToVerticalRelativeDrawPathMoveToAbsoluteDrawPathMoveToRelativeDrawPathStartDrawPointDrawPolygonDrawPolylineDrawPopClipPathDrawPopDefsDrawPopPatternDrawPushClipPathDrawPushDefsDrawPushPatternDrawRectangleDrawResetVectorGraphicsDrawRotateDrawRoundRectangleDrawScaleDrawSetBorderColorDrawSetClipPathDrawSetClipRuleDrawSetClipUnitsDrawSetDensityDrawSetFillColorDrawSetFillOpacityDrawSetFontResolutionDrawSetOpacityDrawSetFillPatternURLDrawSetFillRuleDrawSetFontDrawSetFontFamilyDrawSetFontSizeDrawSetFontStretchDrawSetFontStyleDrawSetFontWeightDrawSetGravityDrawSetStrokeColorDrawSetStrokePatternURLDrawSetStrokeAntialiasDrawSetStrokeDashArrayDrawSetStrokeDashOffsetDrawSetStrokeLineCapDrawSetStrokeLineJoinDrawSetStrokeMiterLimitDrawSetStrokeOpacityDrawSetStrokeWidthDrawSetTextAlignmentDrawSetTextAntialiasDrawSetTextDecorationDrawSetTextDirectionDrawSetTextEncodingDrawSetTextKerningDrawSetTextInterlineSpacingDrawSetTextInterwordSpacingDrawSetTextUnderColorDrawSetVectorGraphicsDrawSkewXDrawSkewYDrawTranslateDrawSetViewboxIsDrawingWandNewDrawingWandPeekDrawingWandPopDrawingWandPushDrawingWand

+ +

ClearDrawingWand

+ +

ClearDrawingWand() clears resources associated with the drawing wand.

+ +

The format of the ClearDrawingWand method is:

+ +
+void ClearDrawingWand(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand to clear.
+ +
+
+

CloneDrawingWand

+ +

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

+ +

The format of the CloneDrawingWand method is:

+ +
+DrawingWand *CloneDrawingWand(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

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

DestroyDrawingWand

+ +

DestroyDrawingWand() frees all resources associated with the drawing wand. Once the drawing wand has been freed, it should not be used and further unless it re-allocated.

+ +

The format of the DestroyDrawingWand method is:

+ +
+DrawingWand *DestroyDrawingWand(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand to destroy.
+ +
+
+

DrawAffine

+ +

DrawAffine() adjusts the current affine transformation matrix with the specified affine transformation matrix. Note that the current affine transform is adjusted rather than replaced.

+ +

The format of the DrawAffine method is:

+ +
+void DrawAffine(DrawingWand *wand,const AffineMatrix *affine)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
Drawing wand
+ +
+
affine
+
Affine matrix parameters
+ +
+
+

DrawAlpha

+ +

DrawAlpha() paints on the image's alpha channel in order to set effected pixels to transparent. The available paint methods are:

+ +
+    PointMethod: Select the target pixel
+    ReplaceMethod: Select any pixel that matches the target pixel.
+    FloodfillMethod: Select the target pixel and matching neighbors.
+    FillToBorderMethod: Select the target pixel and neighbors not matching
+border color.
+    ResetMethod: Select all pixels.
+
+ +

The format of the DrawAlpha method is:

+ +
+void DrawAlpha(DrawingWand *wand,const double x,const double y,
+  const PaintMethod paint_method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate
+ +
+
y
+
y ordinate
+ +
+
paint_method
+
paint method.
+ +
+
+

DrawAnnotation

+ +

DrawAnnotation() draws text on the image.

+ +

The format of the DrawAnnotation method is:

+ +
+void DrawAnnotation(DrawingWand *wand,const double x,
+  const double y,const unsigned char *text)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate to left of text
+ +
+
y
+
y ordinate to text baseline
+ +
+
text
+
text to draw
+ +
+
+

DrawArc

+ +

DrawArc() draws an arc falling within a specified bounding rectangle on the image.

+ +

The format of the DrawArc method is:

+ +
+void DrawArc(DrawingWand *wand,const double sx,const double sy,
+  const double ex,const double ey,const double sd,const double ed)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
sx
+
starting x ordinate of bounding rectangle
+ +
+
sy
+
starting y ordinate of bounding rectangle
+ +
+
ex
+
ending x ordinate of bounding rectangle
+ +
+
ey
+
ending y ordinate of bounding rectangle
+ +
+
sd
+
starting degrees of rotation
+ +
+
ed
+
ending degrees of rotation
+ +
+
+

DrawBezier

+ +

DrawBezier() draws a bezier curve through a set of points on the image.

+ +

The format of the DrawBezier method is:

+ +
+void DrawBezier(DrawingWand *wand,
+  const size_t number_coordinates,const PointInfo *coordinates)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_coordinates
+
number of coordinates
+ +
+
coordinates
+
coordinates
+ +
+
+

DrawCircle

+ +

DrawCircle() draws a circle on the image.

+ +

The format of the DrawCircle method is:

+ +
+void DrawCircle(DrawingWand *wand,const double ox,
+  const double oy,const double px, const double py)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
ox
+
origin x ordinate
+ +
+
oy
+
origin y ordinate
+ +
+
px
+
perimeter x ordinate
+ +
+
py
+
perimeter y ordinate
+ +
+
+

DrawClearException

+ +

DrawClearException() clear any exceptions associated with the wand.

+ +

The format of the DrawClearException method is:

+ +
+MagickBooleanType DrawClearException(DrawWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawCloneExceptionInfo

+ +

DrawCloneExceptionInfo() clones the ExceptionInfo structure within the wand.

+ +

The format of the DrawCloneExceptionInfo method is:

+ +
+ExceptionInfo *DrawCloneExceptionInfo(DrawWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawColor

+ +

DrawColor() draws color on image using the current fill color, starting at specified position, and using specified paint method. The available paint methods are:

+ +
+    PointMethod: Recolors the target pixel
+    ReplaceMethod: Recolor any pixel that matches the target pixel.
+    FloodfillMethod: Recolors target pixels and matching neighbors.
+    ResetMethod: Recolor all pixels.
+
+ +

The format of the DrawColor method is:

+ +
+void DrawColor(DrawingWand *wand,const double x,const double y,
+  const PaintMethod paint_method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate.
+ +
+
y
+
y ordinate.
+ +
+
paint_method
+
paint method.
+ +
+
+

DrawComposite

+ +

DrawComposite() composites an image onto the current image, using the specified composition operator, specified position, and at the specified size.

+ +

The format of the DrawComposite method is:

+ +
+MagickBooleanType DrawComposite(DrawingWand *wand,
+  const CompositeOperator compose,const double x,
+  const double y,const double width,const double height,
+  MagickWand *magick_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
compose
+
composition operator
+ +
+
x
+
x ordinate of top left corner
+ +
+
y
+
y ordinate of top left corner
+ +
+
width
+
Width to resize image to prior to compositing. Specify zero to use existing width.
+ +
+
height
+
Height to resize image to prior to compositing. Specify zero to use existing height.
+ +
+
magick_wand
+
Image to composite is obtained from this wand.
+ +
+
+

DrawComment

+ +

DrawComment() adds a comment to a vector output stream.

+ +

The format of the DrawComment method is:

+ +
+void DrawComment(DrawingWand *wand,const char *comment)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
comment
+
comment text
+ +
+
+

DrawEllipse

+ +

DrawEllipse() draws an ellipse on the image.

+ +

The format of the DrawEllipse method is:

+ +
+ void DrawEllipse(DrawingWand *wand,const double ox,const double oy,
+   const double rx,const double ry,const double start,const double end)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
ox
+
origin x ordinate
+ +
+
oy
+
origin y ordinate
+ +
+
rx
+
radius in x
+ +
+
ry
+
radius in y
+ +
+
start
+
starting rotation in degrees
+ +
+
end
+
ending rotation in degrees
+ +
+
+

DrawGetBorderColor

+ +

DrawGetBorderColor() returns the border color used for drawing bordered objects.

+ +

The format of the DrawGetBorderColor method is:

+ +
+void DrawGetBorderColor(const DrawingWand *wand,
+  PixelWand *border_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
border_color
+
Return the border color.
+ +
+
+

DrawGetClipPath

+ +

DrawGetClipPath() obtains the current clipping path ID. The value returned must be deallocated by the user when it is no longer needed.

+ +

The format of the DrawGetClipPath method is:

+ +
+char *DrawGetClipPath(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetClipRule

+ +

DrawGetClipRule() returns the current polygon fill rule to be used by the clipping path.

+ +

The format of the DrawGetClipRule method is:

+ +
+     FillRule DrawGetClipRule(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetClipUnits

+ +

DrawGetClipUnits() returns the interpretation of clip path units.

+ +

The format of the DrawGetClipUnits method is:

+ +
+ClipPathUnits DrawGetClipUnits(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetDensity

+ +

DrawGetDensity() obtains the vertical and horizontal resolution. The value returned must be deallocated by the user when it is no longer needed.

+ +

The format of the DrawGetDensity method is:

+ +
+char *DrawGetDensity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetException

+ +

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

+ +

The format of the DrawGetException method is:

+ +
+char *DrawGetException(const DrawWand *wand,
+  ExceptionType *severity)
+
+ +

A description of each parameter follows:

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

DrawGetExceptionType

+ +

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

+ +

The format of the DrawGetExceptionType method is:

+ +
+ExceptionType DrawGetExceptionType(const DrawWand *wand)
+
+ +

A description of each parameter follows:

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

DrawGetFillColor

+ +

DrawGetFillColor() returns the fill color used for drawing filled objects.

+ +

The format of the DrawGetFillColor method is:

+ +
+void DrawGetFillColor(const DrawingWand *wand,
+  PixelWand *fill_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_color
+
Return the fill color.
+ +
+
+

DrawGetFillOpacity

+ +

DrawGetFillOpacity() returns the alpha used when drawing using the fill color or fill texture. Fully opaque is 1.0.

+ +

The format of the DrawGetFillOpacity method is:

+ +
+double DrawGetFillOpacity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFillRule

+ +

DrawGetFillRule() returns the fill rule used while drawing polygons.

+ +

The format of the DrawGetFillRule method is:

+ +
+FillRule DrawGetFillRule(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFont

+ +

DrawGetFont() returns a null-terminaged string specifying the font used when annotating with text. The value returned must be freed by the user when no longer needed.

+ +

The format of the DrawGetFont method is:

+ +
+char *DrawGetFont(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontFamily

+ +

DrawGetFontFamily() returns the font family to use when annotating with text. The value returned must be freed by the user when it is no longer needed.

+ +

The format of the DrawGetFontFamily method is:

+ +
+char *DrawGetFontFamily(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontResolution

+ +

DrawGetFontResolution() gets the image X and Y resolution.

+ +

The format of the DrawGetFontResolution method is:

+ +
+MagickBooleanType DrawGetFontResolution(const DrawingWand *wand,
+  double *x,double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the x-resolution.
+ +
+
y
+
the y-resolution.
+ +
+
+

DrawGetFontSize

+ +

DrawGetFontSize() returns the font pointsize used when annotating with text.

+ +

The format of the DrawGetFontSize method is:

+ +
+double DrawGetFontSize(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontStretch

+ +

DrawGetFontStretch() returns the font stretch used when annotating with text.

+ +

The format of the DrawGetFontStretch method is:

+ +
+StretchType DrawGetFontStretch(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontStyle

+ +

DrawGetFontStyle() returns the font style used when annotating with text.

+ +

The format of the DrawGetFontStyle method is:

+ +
+StyleType DrawGetFontStyle(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontWeight

+ +

DrawGetFontWeight() returns the font weight used when annotating with text.

+ +

The format of the DrawGetFontWeight method is:

+ +
+size_t DrawGetFontWeight(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetGravity

+ +

DrawGetGravity() returns the text placement gravity used when annotating with text.

+ +

The format of the DrawGetGravity method is:

+ +
+GravityType DrawGetGravity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetOpacity

+ +

DrawGetOpacity() returns the alpha used when drawing with the fill or stroke color or texture. Fully opaque is 1.0.

+ +

The format of the DrawGetOpacity method is:

+ +
+double DrawGetOpacity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeAntialias

+ +

DrawGetStrokeAntialias() returns the current stroke antialias setting. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

+ +

The format of the DrawGetStrokeAntialias method is:

+ +
+MagickBooleanType DrawGetStrokeAntialias(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeColor

+ +

DrawGetStrokeColor() returns the color used for stroking object outlines.

+ +

The format of the DrawGetStrokeColor method is:

+ +
+void DrawGetStrokeColor(const DrawingWand *wand,
+  PixelWand *stroke_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_color
+
Return the stroke color.
+ +
+
+

DrawGetStrokeDashArray

+ +

DrawGetStrokeDashArray() returns an array representing the pattern of dashes and gaps used to stroke paths (see DrawSetStrokeDashArray). The array must be freed once it is no longer required by the user.

+ +

The format of the DrawGetStrokeDashArray method is:

+ +
+double *DrawGetStrokeDashArray(const DrawingWand *wand,
+  size_t *number_elements)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_elements
+
address to place number of elements in dash array
+ +
+
+

DrawGetStrokeDashOffset

+ +

DrawGetStrokeDashOffset() returns the offset into the dash pattern to start the dash.

+ +

The format of the DrawGetStrokeDashOffset method is:

+ +
+double DrawGetStrokeDashOffset(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeLineCap

+ +

DrawGetStrokeLineCap() returns the shape to be used at the end of open subpaths when they are stroked. Values of LineCap are UndefinedCap, ButtCap, RoundCap, and SquareCap.

+ +

The format of the DrawGetStrokeLineCap method is:

+ +
+LineCap DrawGetStrokeLineCap(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeLineJoin

+ +

DrawGetStrokeLineJoin() returns the shape to be used at the corners of paths (or other vector shapes) when they are stroked. Values of LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.

+ +

The format of the DrawGetStrokeLineJoin method is:

+ +
+LineJoin DrawGetStrokeLineJoin(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeMiterLimit

+ +

DrawGetStrokeMiterLimit() returns the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

+ +

The format of the DrawGetStrokeMiterLimit method is:

+ +
+size_t DrawGetStrokeMiterLimit(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeOpacity

+ +

DrawGetStrokeOpacity() returns the alpha of stroked object outlines.

+ +

The format of the DrawGetStrokeOpacity method is:

+ +
+double DrawGetStrokeOpacity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeWidth

+ +

DrawGetStrokeWidth() returns the width of the stroke used to draw object outlines.

+ +

The format of the DrawGetStrokeWidth method is:

+ +
+double DrawGetStrokeWidth(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextAlignment

+ +

DrawGetTextAlignment() returns the alignment applied when annotating with text.

+ +

The format of the DrawGetTextAlignment method is:

+ +
+AlignType DrawGetTextAlignment(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextAntialias

+ +

DrawGetTextAntialias() returns the current text antialias setting, which determines whether text is antialiased. Text is antialiased by default.

+ +

The format of the DrawGetTextAntialias method is:

+ +
+MagickBooleanType DrawGetTextAntialias(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextDecoration

+ +

DrawGetTextDecoration() returns the decoration applied when annotating with text.

+ +

The format of the DrawGetTextDecoration method is:

+ +
+DecorationType DrawGetTextDecoration(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextDirection

+ +

DrawGetTextDirection() returns the direction that will be used when annotating with text.

+ +

The format of the DrawGetTextDirection method is:

+ +
+DirectionType DrawGetTextDirection(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextEncoding

+ +

DrawGetTextEncoding() returns a null-terminated string which specifies the code set used for text annotations. The string must be freed by the user once it is no longer required.

+ +

The format of the DrawGetTextEncoding method is:

+ +
+char *DrawGetTextEncoding(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextKerning

+ +

DrawGetTextKerning() gets the spacing between characters in text.

+ +

The format of the DrawSetFontKerning method is:

+ +
+double DrawGetTextKerning(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextInterlineSpacing

+ +

DrawGetTextInterlineSpacing() gets the spacing between lines in text.

+ +

The format of the DrawGetTextInterlineSpacing method is:

+ +
+double DrawGetTextInterlineSpacing(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextInterwordSpacing

+ +

DrawGetTextInterwordSpacing() gets the spacing between words in text.

+ +

The format of the DrawSetFontKerning method is:

+ +
+double DrawGetTextInterwordSpacing(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetVectorGraphics

+ +

DrawGetVectorGraphics() returns a null-terminated string which specifies the vector graphics generated by any graphics calls made since the wand was instantiated. The string must be freed by the user once it is no longer required.

+ +

The format of the DrawGetVectorGraphics method is:

+ +
+char *DrawGetVectorGraphics(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextUnderColor

+ +

DrawGetTextUnderColor() returns the color of a background rectangle to place under text annotations.

+ +

The format of the DrawGetTextUnderColor method is:

+ +
+void DrawGetTextUnderColor(const DrawingWand *wand,
+  PixelWand *under_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
under_color
+
Return the under color.
+ +
+
+

DrawLine

+ +

DrawLine() draws a line on the image using the current stroke color, stroke alpha, and stroke width.

+ +

The format of the DrawLine method is:

+ +
+void DrawLine(DrawingWand *wand,const double sx,const double sy,
+  const double ex,const double ey)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
sx
+
starting x ordinate
+ +
+
sy
+
starting y ordinate
+ +
+
ex
+
ending x ordinate
+ +
+
ey
+
ending y ordinate
+ +
+
+

DrawPathClose

+ +

DrawPathClose() adds a path element to the current path which closes the current subpath by drawing a straight line from the current point to the current subpath's most recent starting point (usually, the most recent moveto point).

+ +

The format of the DrawPathClose method is:

+ +
+void DrawPathClose(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPathCurveToAbsolute

+ +

DrawPathCurveToAbsolute() draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToAbsolute method is:

+ +
+void DrawPathCurveToAbsolute(DrawingWand *wand,const double x1,
+  const double y1,const double x2,const double y2,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of control point for curve beginning
+ +
+
y1
+
y ordinate of control point for curve beginning
+ +
+
x2
+
x ordinate of control point for curve ending
+ +
+
y2
+
y ordinate of control point for curve ending
+ +
+
x
+
x ordinate of the end of the curve
+ +
+
y
+
y ordinate of the end of the curve
+ +
+
+

DrawPathCurveToRelative

+ +

DrawPathCurveToRelative() draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToRelative method is:

+ +
+void DrawPathCurveToRelative(DrawingWand *wand,const double x1,
+  const double y1,const double x2,const double y2,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of control point for curve beginning
+ +
+
y1
+
y ordinate of control point for curve beginning
+ +
+
x2
+
x ordinate of control point for curve ending
+ +
+
y2
+
y ordinate of control point for curve ending
+ +
+
x
+
x ordinate of the end of the curve
+ +
+
y
+
y ordinate of the end of the curve
+ +
+
+

DrawPathCurveToQuadraticBezierAbsolute

+ +

DrawPathCurveToQuadraticBezierAbsolute() draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToQuadraticBezierAbsolute method is:

+ +
+void DrawPathCurveToQuadraticBezierAbsolute(DrawingWand *wand,
+  const double x1,const double y1,onst double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of the control point
+ +
+
y1
+
y ordinate of the control point
+ +
+
x
+
x ordinate of final point
+ +
+
y
+
y ordinate of final point
+ +
+
+

DrawPathCurveToQuadraticBezierRelative

+ +

DrawPathCurveToQuadraticBezierRelative() draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToQuadraticBezierRelative method is:

+ +
+void DrawPathCurveToQuadraticBezierRelative(DrawingWand *wand,
+  const double x1,const double y1,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of the control point
+ +
+
y1
+
y ordinate of the control point
+ +
+
x
+
x ordinate of final point
+ +
+
y
+
y ordinate of final point
+ +
+
+

DrawPathCurveToQuadraticBezierSmoothAbsolute

+ +

DrawPathCurveToQuadraticBezierSmoothAbsolute() draws a quadratic Bezier curve (using absolute coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolute or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToQuadraticBezierSmoothAbsolute method is:

+ +
+void DrawPathCurveToQuadraticBezierSmoothAbsolute(
+  DrawingWand *wand,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate of final point
+ +
+
y
+
y ordinate of final point
+ +
+
+

DrawPathCurveToQuadraticBezierSmoothRelative

+ +

DrawPathCurveToQuadraticBezierSmoothRelative() draws a quadratic Bezier curve (using relative coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolute or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToQuadraticBezierSmoothRelative method is:

+ +
+void DrawPathCurveToQuadraticBezierSmoothRelative(DrawingWand *wand,
+  const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate of final point
+ +
+
y
+
y ordinate of final point
+ +
+
+

DrawPathCurveToSmoothAbsolute

+ +

DrawPathCurveToSmoothAbsolute() draws a cubic Bezier curve from the current point to (x,y) using absolute coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToSmoothAbsolute method is:

+ +
+void DrawPathCurveToSmoothAbsolute(DrawingWand *wand,
+  const double x2,const double y2,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x2
+
x ordinate of second control point
+ +
+
y2
+
y ordinate of second control point
+ +
+
x
+
x ordinate of termination point
+ +
+
y
+
y ordinate of termination point
+ +
+
+

DrawPathCurveToSmoothRelative

+ +

DrawPathCurveToSmoothRelative() draws a cubic Bezier curve from the current point to (x,y) using relative coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToSmoothRelative method is:

+ +
+void DrawPathCurveToSmoothRelative(DrawingWand *wand,
+  const double x2,const double y2,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x2
+
x ordinate of second control point
+ +
+
y2
+
y ordinate of second control point
+ +
+
x
+
x ordinate of termination point
+ +
+
y
+
y ordinate of termination point
+ +
+
+

DrawPathEllipticArcAbsolute

+ +

DrawPathEllipticArcAbsolute() draws an elliptical arc from the current point to (x, y) using absolute coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automagically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is true then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

+ +

The format of the DrawPathEllipticArcAbsolute method is:

+ +
+void DrawPathEllipticArcAbsolute(DrawingWand *wand,
+  const double rx,const double ry,const double x_axis_rotation,
+  const MagickBooleanType large_arc_flag,
+  const MagickBooleanType sweep_flag,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
rx
+
x radius
+ +
+
ry
+
y radius
+ +
+
x_axis_rotation
+
indicates how the ellipse as a whole is rotated relative to the current coordinate system
+ +
+
large_arc_flag
+
If non-zero (true) then draw the larger of the available arcs
+ +
+
sweep_flag
+
If non-zero (true) then draw the arc matching a clock-wise rotation
+ +
+ +
+
+

DrawPathEllipticArcRelative

+ +

DrawPathEllipticArcRelative() draws an elliptical arc from the current point to (x, y) using relative coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automagically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is true then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

+ +

The format of the DrawPathEllipticArcRelative method is:

+ +
+void DrawPathEllipticArcRelative(DrawingWand *wand,
+  const double rx,const double ry,const double x_axis_rotation,
+  const MagickBooleanType large_arc_flag,
+  const MagickBooleanType sweep_flag,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
rx
+
x radius
+ +
+
ry
+
y radius
+ +
+
x_axis_rotation
+
indicates how the ellipse as a whole is rotated relative to the current coordinate system
+ +
+
large_arc_flag
+
If non-zero (true) then draw the larger of the available arcs
+ +
+
sweep_flag
+
If non-zero (true) then draw the arc matching a clock-wise rotation
+ +
+
+

DrawPathFinish

+ +

DrawPathFinish() terminates the current path.

+ +

The format of the DrawPathFinish method is:

+ +
+void DrawPathFinish(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPathLineToAbsolute

+ +

DrawPathLineToAbsolute() draws a line path from the current point to the given coordinate using absolute coordinates. The coordinate then becomes the new current point.

+ +

The format of the DrawPathLineToAbsolute method is:

+ +
+void DrawPathLineToAbsolute(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathLineToRelative

+ +

DrawPathLineToRelative() draws a line path from the current point to the given coordinate using relative coordinates. The coordinate then becomes the new current point.

+ +

The format of the DrawPathLineToRelative method is:

+ +
+void DrawPathLineToRelative(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathLineToHorizontalAbsolute

+ +

DrawPathLineToHorizontalAbsolute() draws a horizontal line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

+ +

The format of the DrawPathLineToHorizontalAbsolute method is:

+ +
+void DrawPathLineToHorizontalAbsolute(DrawingWand *wand,const double x)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
+

DrawPathLineToHorizontalRelative

+ +

DrawPathLineToHorizontalRelative() draws a horizontal line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

+ +

The format of the DrawPathLineToHorizontalRelative method is:

+ +
+void DrawPathLineToHorizontalRelative(DrawingWand *wand,
+  const double x)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
+

DrawPathLineToVerticalAbsolute

+ +

DrawPathLineToVerticalAbsolute() draws a vertical line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

+ +

The format of the DrawPathLineToVerticalAbsolute method is:

+ +
+void DrawPathLineToVerticalAbsolute(DrawingWand *wand,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathLineToVerticalRelative

+ +

DrawPathLineToVerticalRelative() draws a vertical line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

+ +

The format of the DrawPathLineToVerticalRelative method is:

+ +
+void DrawPathLineToVerticalRelative(DrawingWand *wand,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathMoveToAbsolute

+ +

DrawPathMoveToAbsolute() starts a new sub-path at the given coordinate using absolute coordinates. The current point then becomes the specified coordinate.

+ +

The format of the DrawPathMoveToAbsolute method is:

+ +
+void DrawPathMoveToAbsolute(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathMoveToRelative

+ +

DrawPathMoveToRelative() starts a new sub-path at the given coordinate using relative coordinates. The current point then becomes the specified coordinate.

+ +

The format of the DrawPathMoveToRelative method is:

+ +
+void DrawPathMoveToRelative(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathStart

+ +

DrawPathStart() declares the start of a path drawing list which is terminated by a matching DrawPathFinish() command. All other DrawPath commands must be enclosed between a DrawPathStart() and a DrawPathFinish() command. This is because path drawing commands are subordinate commands and they do not function by themselves.

+ +

The format of the DrawPathStart method is:

+ +
+void DrawPathStart(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPoint

+ +

DrawPoint() draws a point using the current fill color.

+ +

The format of the DrawPoint method is:

+ +
+void DrawPoint(DrawingWand *wand,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x coordinate
+ +
+
y
+
target y coordinate
+ +
+
+

DrawPolygon

+ +

DrawPolygon() draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

+ +

The format of the DrawPolygon method is:

+ +
+void DrawPolygon(DrawingWand *wand,
+  const size_t number_coordinates,const PointInfo *coordinates)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_coordinates
+
number of coordinates
+ +
+
coordinates
+
coordinate array
+ +
+
+

DrawPolyline

+ +

DrawPolyline() draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

+ +

The format of the DrawPolyline method is:

+ +
+void DrawPolyline(DrawingWand *wand,
+  const size_t number_coordinates,const PointInfo *coordinates)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_coordinates
+
number of coordinates
+ +
+
coordinates
+
coordinate array
+ +
+
+

DrawPopClipPath

+ +

DrawPopClipPath() terminates a clip path definition.

+ +

The format of the DrawPopClipPath method is:

+ +
+void DrawPopClipPath(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPopDefs

+ +

DrawPopDefs() terminates a definition list.

+ +

The format of the DrawPopDefs method is:

+ +
+void DrawPopDefs(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPopPattern

+ +

DrawPopPattern() terminates a pattern definition.

+ +

The format of the DrawPopPattern method is:

+ +
+MagickBooleanType DrawPopPattern(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPushClipPath

+ +

DrawPushClipPath() starts a clip path definition which is comprized of any number of drawing commands and terminated by a DrawPopClipPath() command.

+ +

The format of the DrawPushClipPath method is:

+ +
+void DrawPushClipPath(DrawingWand *wand,const char *clip_mask_id)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
clip_mask_id
+
string identifier to associate with the clip path for later use.
+ +
+
+

DrawPushDefs

+ +

DrawPushDefs() indicates that commands up to a terminating DrawPopDefs() command create named elements (e.g. clip-paths, textures, etc.) which may safely be processed earlier for the sake of efficiency.

+ +

The format of the DrawPushDefs method is:

+ +
+void DrawPushDefs(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPushPattern

+ +

DrawPushPattern() indicates that subsequent commands up to a DrawPopPattern() command comprise the definition of a named pattern. The pattern space is assigned top left corner coordinates, a width and height, and becomes its own drawing space. Anything which can be drawn may be used in a pattern definition. Named patterns may be used as stroke or brush definitions.

+ +

The format of the DrawPushPattern method is:

+ +
+MagickBooleanType DrawPushPattern(DrawingWand *wand,
+  const char *pattern_id,const double x,const double y,
+  const double width,const double height)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
pattern_id
+
pattern identification for later reference
+ +
+
x
+
x ordinate of top left corner
+ +
+
y
+
y ordinate of top left corner
+ +
+
width
+
width of pattern space
+ +
+
height
+
height of pattern space
+ +
+
+

DrawRectangle

+ +

DrawRectangle() draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

+ +

The format of the DrawRectangle method is:

+ +
+void DrawRectangle(DrawingWand *wand,const double x1,
+  const double y1,const double x2,const double y2)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
x1
+
x ordinate of first coordinate
+ +
+
y1
+
y ordinate of first coordinate
+ +
+
x2
+
x ordinate of second coordinate
+ +
+
y2
+
y ordinate of second coordinate
+ +
+
+

DrawResetVectorGraphics

+ +

DrawResetVectorGraphics() resets the vector graphics associated with the specified wand.

+ +

The format of the DrawResetVectorGraphics method is:

+ +
+void DrawResetVectorGraphics(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawRotate

+ +

DrawRotate() applies the specified rotation to the current coordinate space.

+ +

The format of the DrawRotate method is:

+ +
+void DrawRotate(DrawingWand *wand,const double degrees)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
degrees
+
degrees of rotation
+ +
+
+

DrawRoundRectangle

+ +

DrawRoundRectangle() draws a rounted rectangle given two coordinates, x & y corner radiuses and using the current stroke, stroke width, and fill settings.

+ +

The format of the DrawRoundRectangle method is:

+ +
+void DrawRoundRectangle(DrawingWand *wand,double x1,double y1,
+  double x2,double y2,double rx,double ry)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of first coordinate
+ +
+
y1
+
y ordinate of first coordinate
+ +
+
x2
+
x ordinate of second coordinate
+ +
+
y2
+
y ordinate of second coordinate
+ +
+
rx
+
radius of corner in horizontal direction
+ +
+
ry
+
radius of corner in vertical direction
+ +
+
+

DrawScale

+ +

DrawScale() adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

+ +

The format of the DrawScale method is:

+ +
+void DrawScale(DrawingWand *wand,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
horizontal scale factor
+ +
+
y
+
vertical scale factor
+ +
+
+

DrawSetBorderColor

+ +

DrawSetBorderColor() sets the border color to be used for drawing bordered objects.

+ +

The format of the DrawSetBorderColor method is:

+ +
+void DrawSetBorderColor(DrawingWand *wand,const PixelWand *border_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
border_wand
+
border wand.
+ +
+
+

DrawSetClipPath

+ +

DrawSetClipPath() associates a named clipping path with the image. Only the areas drawn on by the clipping path will be modified as ssize_t as it remains in effect.

+ +

The format of the DrawSetClipPath method is:

+ +
+MagickBooleanType DrawSetClipPath(DrawingWand *wand,
+  const char *clip_mask)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
clip_mask
+
name of clipping path to associate with image
+ +
+
+

DrawSetClipRule

+ +

DrawSetClipRule() set the polygon fill rule to be used by the clipping path.

+ +

The format of the DrawSetClipRule method is:

+ +
+void DrawSetClipRule(DrawingWand *wand,const FillRule fill_rule)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_rule
+
fill rule (EvenOddRule or NonZeroRule)
+ +
+
+

DrawSetClipUnits

+ +

DrawSetClipUnits() sets the interpretation of clip path units.

+ +

The format of the DrawSetClipUnits method is:

+ +
+void DrawSetClipUnits(DrawingWand *wand,
+  const ClipPathUnits clip_units)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
clip_units
+
units to use (UserSpace, UserSpaceOnUse, or ObjectBoundingBox)
+ +
+
+

DrawSetDensity

+ +

DrawSetDensity() sets the vertical and horizontal resolution.

+ +

The format of the DrawSetDensity method is:

+ +
+MagickBooleanType DrawSetDensity(DrawingWand *wand,
+  const char *density)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
density
+
the vertical and horizontal resolution.
+ +
+
+

DrawSetFillColor

+ +

DrawSetFillColor() sets the fill color to be used for drawing filled objects.

+ +

The format of the DrawSetFillColor method is:

+ +
+void DrawSetFillColor(DrawingWand *wand,const PixelWand *fill_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_wand
+
fill wand.
+ +
+
+

DrawSetFillOpacity

+ +

DrawSetFillOpacity() sets the alpha to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

+ +

The format of the DrawSetFillOpacity method is:

+ +
+void DrawSetFillOpacity(DrawingWand *wand,const double fill_alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_opacity
+
fill opacity
+ +
+
+

DrawSetFontResolution

+ +

DrawSetFontResolution() sets the image resolution.

+ +

The format of the DrawSetFontResolution method is:

+ +
+MagickBooleanType DrawSetFontResolution(DrawingWand *wand,
+  const double x_resolution,const double y_resolution)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x_resolution
+
the image x resolution.
+ +
+
y_resolution
+
the image y resolution.
+ +
+
+

DrawSetOpacity

+ +

DrawSetOpacity() sets the alpha to use when drawing using the fill or stroke color or texture. Fully opaque is 1.0.

+ +

The format of the DrawSetOpacity method is:

+ +
+void DrawSetOpacity(DrawingWand *wand,const double alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
opacity
+
fill and stroke opacity. The value 1.0 is opaque.
+ +
+
+

DrawSetFillPatternURL

+ +

DrawSetFillPatternURL() sets the URL to use as a fill pattern for filling objects. Only local URLs ("#identifier") are supported at this time. These local URLs are normally created by defining a named fill pattern with DrawPushPattern/DrawPopPattern.

+ +

The format of the DrawSetFillPatternURL method is:

+ +
+MagickBooleanType DrawSetFillPatternURL(DrawingWand *wand,
+  const char *fill_url)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_url
+
URL to use to obtain fill pattern.
+ +
+
+

DrawSetFillRule

+ +

DrawSetFillRule() sets the fill rule to use while drawing polygons.

+ +

The format of the DrawSetFillRule method is:

+ +
+void DrawSetFillRule(DrawingWand *wand,const FillRule fill_rule)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_rule
+
fill rule (EvenOddRule or NonZeroRule)
+ +
+
+

DrawSetFont

+ +

DrawSetFont() sets the fully-sepecified font to use when annotating with text.

+ +

The format of the DrawSetFont method is:

+ +
+MagickBooleanType DrawSetFont(DrawingWand *wand,const char *font_name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
font_name
+
font name
+ +
+
+

DrawSetFontFamily

+ +

DrawSetFontFamily() sets the font family to use when annotating with text.

+ +

The format of the DrawSetFontFamily method is:

+ +
+MagickBooleanType DrawSetFontFamily(DrawingWand *wand,
+  const char *font_family)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
font_family
+
font family
+ +
+
+

DrawSetFontSize

+ +

DrawSetFontSize() sets the font pointsize to use when annotating with text.

+ +

The format of the DrawSetFontSize method is:

+ +
+void DrawSetFontSize(DrawingWand *wand,const double pointsize)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
pointsize
+
text pointsize
+ +
+
+

DrawSetFontStretch

+ +

DrawSetFontStretch() sets the font stretch to use when annotating with text. The AnyStretch enumeration acts as a wild-card "don't care" option.

+ +

The format of the DrawSetFontStretch method is:

+ +
+void DrawSetFontStretch(DrawingWand *wand,
+  const StretchType font_stretch)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
font_stretch
+
font stretch (NormalStretch, UltraCondensedStretch, CondensedStretch, SemiCondensedStretch, SemiExpandedStretch, ExpandedStretch, ExtraExpandedStretch, UltraExpandedStretch, AnyStretch)
+ +
+
+

DrawSetFontStyle

+ +

DrawSetFontStyle() sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

+ +

The format of the DrawSetFontStyle method is:

+ +
+void DrawSetFontStyle(DrawingWand *wand,const StyleType style)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
style
+
font style (NormalStyle, ItalicStyle, ObliqueStyle, AnyStyle)
+ +
+
+

DrawSetFontWeight

+ +

DrawSetFontWeight() sets the font weight to use when annotating with text.

+ +

The format of the DrawSetFontWeight method is:

+ +
+void DrawSetFontWeight(DrawingWand *wand,
+  const size_t font_weight)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
font_weight
+
font weight (valid range 100-900)
+ +
+
+

DrawSetGravity

+ +

DrawSetGravity() sets the text placement gravity to use when annotating with text.

+ +

The format of the DrawSetGravity method is:

+ +
+void DrawSetGravity(DrawingWand *wand,const GravityType gravity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
gravity
+
positioning gravity (NorthWestGravity, NorthGravity, NorthEastGravity, WestGravity, CenterGravity, EastGravity, SouthWestGravity, SouthGravity, SouthEastGravity)
+ +
+
+

DrawSetStrokeColor

+ +

DrawSetStrokeColor() sets the color used for stroking object outlines.

+ +

The format of the DrawSetStrokeColor method is:

+ +
+void DrawSetStrokeColor(DrawingWand *wand,
+  const PixelWand *stroke_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_wand
+
stroke wand.
+ +
+
+

DrawSetStrokePatternURL

+ +

DrawSetStrokePatternURL() sets the pattern used for stroking object outlines.

+ +

The format of the DrawSetStrokePatternURL method is:

+ +
+MagickBooleanType DrawSetStrokePatternURL(DrawingWand *wand,
+  const char *stroke_url)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_url
+
URL specifying pattern ID (e.g. "#pattern_id")
+ +
+
+

DrawSetStrokeAntialias

+ +

DrawSetStrokeAntialias() controls whether stroked outlines are antialiased. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

+ +

The format of the DrawSetStrokeAntialias method is:

+ +
+void DrawSetStrokeAntialias(DrawingWand *wand,
+  const MagickBooleanType stroke_antialias)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_antialias
+
set to false (zero) to disable antialiasing
+ +
+
+

DrawSetStrokeDashArray

+ +

DrawSetStrokeDashArray() specifies the pattern of dashes and gaps used to stroke paths. The stroke dash array represents an array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. To remove an existing dash array, pass a zero number_elements argument and null dasharray. A typical stroke dash array might contain the members 5 3 2.

+ +

The format of the DrawSetStrokeDashArray method is:

+ +
+MagickBooleanType DrawSetStrokeDashArray(DrawingWand *wand,
+  const size_t number_elements,const double *dasharray)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_elements
+
number of elements in dash array
+ +
+
dasharray
+
dash array values
+ +
+
+

DrawSetStrokeDashOffset

+ +

DrawSetStrokeDashOffset() specifies the offset into the dash pattern to start the dash.

+ +

The format of the DrawSetStrokeDashOffset method is:

+ +
+void DrawSetStrokeDashOffset(DrawingWand *wand,
+  const double dash_offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
dash_offset
+
dash offset
+ +
+
+

DrawSetStrokeLineCap

+ +

DrawSetStrokeLineCap() specifies the shape to be used at the end of open subpaths when they are stroked. Values of LineCap are UndefinedCap, ButtCap, RoundCap, and SquareCap.

+ +

The format of the DrawSetStrokeLineCap method is:

+ +
+void DrawSetStrokeLineCap(DrawingWand *wand,
+  const LineCap linecap)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
linecap
+
linecap style
+ +
+
+

DrawSetStrokeLineJoin

+ +

DrawSetStrokeLineJoin() specifies the shape to be used at the corners of paths (or other vector shapes) when they are stroked. Values of LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.

+ +

The format of the DrawSetStrokeLineJoin method is:

+ +
+void DrawSetStrokeLineJoin(DrawingWand *wand,
+  const LineJoin linejoin)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
linejoin
+
line join style
+ +
+
+

DrawSetStrokeMiterLimit

+ +

DrawSetStrokeMiterLimit() specifies the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

+ +

The format of the DrawSetStrokeMiterLimit method is:

+ +
+void DrawSetStrokeMiterLimit(DrawingWand *wand,
+  const size_t miterlimit)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
miterlimit
+
miter limit
+ +
+
+

DrawSetStrokeOpacity

+ +

DrawSetStrokeOpacity() specifies the alpha of stroked object outlines.

+ +

The format of the DrawSetStrokeOpacity method is:

+ +
+void DrawSetStrokeOpacity(DrawingWand *wand,
+  const double stroke_alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
opacity
+
stroke opacity. The value 1.0 is opaque.
+ +
+
+

DrawSetStrokeWidth

+ +

DrawSetStrokeWidth() sets the width of the stroke used to draw object outlines.

+ +

The format of the DrawSetStrokeWidth method is:

+ +
+void DrawSetStrokeWidth(DrawingWand *wand,
+  const double stroke_width)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_width
+
stroke width
+ +
+
+

DrawSetTextAlignment

+ +

DrawSetTextAlignment() specifies a text alignment to be applied when annotating with text.

+ +

The format of the DrawSetTextAlignment method is:

+ +
+void DrawSetTextAlignment(DrawingWand *wand,const AlignType alignment)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
alignment
+
text alignment. One of UndefinedAlign, LeftAlign, CenterAlign, or RightAlign.
+ +
+
+

DrawSetTextAntialias

+ +

DrawSetTextAntialias() controls whether text is antialiased. Text is antialiased by default.

+ +

The format of the DrawSetTextAntialias method is:

+ +
+void DrawSetTextAntialias(DrawingWand *wand,
+  const MagickBooleanType text_antialias)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
text_antialias
+
antialias boolean. Set to false (0) to disable antialiasing.
+ +
+
+

DrawSetTextDecoration

+ +

DrawSetTextDecoration() specifies a decoration to be applied when annotating with text.

+ +

The format of the DrawSetTextDecoration method is:

+ +
+void DrawSetTextDecoration(DrawingWand *wand,
+  const DecorationType decoration)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
decoration
+
text decoration. One of NoDecoration, UnderlineDecoration, OverlineDecoration, or LineThroughDecoration
+ +
+
+

DrawSetTextDirection

+ +

DrawSetTextDirection() specifies the direction to be used when annotating with text.

+ +

The format of the DrawSetTextDirection method is:

+ +
+void DrawSetTextDirection(DrawingWand *wand,
+  const DirectionType direction)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
direction
+
text direction. One of RightToLeftDirection, LeftToRightDirection
+ +
+
+

DrawSetTextEncoding

+ +

DrawSetTextEncoding() specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

+ +

The format of the DrawSetTextEncoding method is:

+ +
+void DrawSetTextEncoding(DrawingWand *wand,const char *encoding)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
encoding
+
character string specifying text encoding
+ +
+
+

DrawSetTextKerning

+ +

DrawSetTextKerning() sets the spacing between characters in text.

+ +

The format of the DrawSetTextKerning method is:

+ +
+void DrawSetTextKerning(DrawingWand *wand,const double kerning)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
kerning
+
text kerning
+ +
+
+

DrawSetTextInterlineSpacing

+ +

DrawSetTextInterlineSpacing() sets the spacing between line in text.

+ +

The format of the DrawSetInterlineSpacing method is:

+ +
+void DrawSetTextInterlineSpacing(DrawingWand *wand,
+  const double interline_spacing)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
interline_spacing
+
text line spacing
+ +
+
+

DrawSetTextInterwordSpacing

+ +

DrawSetTextInterwordSpacing() sets the spacing between words in text.

+ +

The format of the DrawSetInterwordSpacing method is:

+ +
+void DrawSetTextInterwordSpacing(DrawingWand *wand,
+  const double interword_spacing)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
interword_spacing
+
text word spacing
+ +
+
+

DrawSetTextUnderColor

+ +

DrawSetTextUnderColor() specifies the color of a background rectangle to place under text annotations.

+ +

The format of the DrawSetTextUnderColor method is:

+ +
+void DrawSetTextUnderColor(DrawingWand *wand,
+  const PixelWand *under_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
under_wand
+
text under wand.
+ +
+
+

DrawSetVectorGraphics

+ +

DrawSetVectorGraphics() sets the vector graphics associated with the specified wand. Use this method with DrawGetVectorGraphics() as a method to persist the vector graphics state.

+ +

The format of the DrawSetVectorGraphics method is:

+ +
+MagickBooleanType DrawSetVectorGraphics(DrawingWand *wand,
+  const char *xml)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
xml
+
the drawing wand XML.
+ +
+
+

DrawSkewX

+ +

DrawSkewX() skews the current coordinate system in the horizontal direction.

+ +

The format of the DrawSkewX method is:

+ +
+void DrawSkewX(DrawingWand *wand,const double degrees)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
degrees
+
number of degrees to skew the coordinates
+ +
+
+

DrawSkewY

+ +

DrawSkewY() skews the current coordinate system in the vertical direction.

+ +

The format of the DrawSkewY method is:

+ +
+void DrawSkewY(DrawingWand *wand,const double degrees)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
degrees
+
number of degrees to skew the coordinates
+ +
+
+

DrawTranslate

+ +

DrawTranslate() applies a translation to the current coordinate system which moves the coordinate system origin to the specified coordinate.

+ +

The format of the DrawTranslate method is:

+ +
+void DrawTranslate(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
new x ordinate for coordinate system origin
+ +
+
y
+
new y ordinate for coordinate system origin
+ +
+
+

DrawSetViewbox

+ +

DrawSetViewbox() sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

+ +

The format of the DrawSetViewbox method is:

+ +
+void DrawSetViewbox(DrawingWand *wand,const double x1,const double y1,
+  const double x2,const double y2)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
left x ordinate
+ +
+
y1
+
top y ordinate
+ +
+
x2
+
right x ordinate
+ +
+
y2
+
bottom y ordinate
+ +
+
+

IsDrawingWand

+ +

IsDrawingWand() returns MagickTrue if the wand is verified as a drawing wand.

+ +

The format of the IsDrawingWand method is:

+ +
+MagickBooleanType IsDrawingWand(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

NewDrawingWand

+ +

NewDrawingWand() returns a drawing wand required for all other methods in the API.

+ +

The format of the NewDrawingWand method is:

+ +
+DrawingWand *NewDrawingWand(void)
+
+ +

PeekDrawingWand

+ +

PeekDrawingWand() returns the current drawing wand.

+ +

The format of the PeekDrawingWand method is:

+ +
+DrawInfo *PeekDrawingWand(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

PopDrawingWand

+ +

PopDrawingWand() destroys the current drawing wand and returns to the previously pushed drawing wand. Multiple drawing wands may exist. It is an error to attempt to pop more drawing wands than have been pushed, and it is proper form to pop all drawing wands which have been pushed.

+ +

The format of the PopDrawingWand method is:

+ +
+MagickBooleanType PopDrawingWand(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

PushDrawingWand

+ +

PushDrawingWand() clones the current drawing wand to create a new drawing wand. The original drawing wand(s) may be returned to by invoking PopDrawingWand(). The drawing wands are stored on a drawing wand stack. For every Pop there must have already been an equivalent Push.

+ +

The format of the PushDrawingWand method is:

+ +
+MagickBooleanType PushDrawingWand(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/drawing-wand.php b/share/doc/ImageMagick-7/www/api/drawing-wand.php new file mode 100644 index 0000000..e86eb96 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/drawing-wand.php @@ -0,0 +1,3812 @@ + + + + + + + + + ImageMagick: MagickWand, C API for ImageMagick: Drawing Wand Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

ClearDrawingWandCloneDrawingWandDestroyDrawingWandDrawAffineDrawAlphaDrawAnnotationDrawArcDrawBezierDrawCircleDrawClearExceptionDrawCloneExceptionInfoDrawCompositeDrawColorDrawCommentDrawEllipseDrawGetBorderColorDrawGetClipPathDrawGetClipRuleDrawGetClipUnitsDrawGetDensityDrawGetExceptionDrawGetExceptionTypeDrawGetFillColorDrawGetFillOpacityDrawGetFillRuleDrawGetFontDrawGetFontFamilyDrawGetFontResolutionDrawGetFontSizeDrawGetFontStretchDrawGetFontStyleDrawGetFontWeightDrawGetGravityDrawGetOpacityDrawGetStrokeAntialiasDrawGetStrokeColorDrawGetStrokeDashArrayDrawGetStrokeDashOffsetDrawGetStrokeLineCapDrawGetStrokeLineJoinDrawGetStrokeMiterLimitDrawGetStrokeOpacityDrawGetStrokeWidthDrawGetTextAlignmentDrawGetTextAntialiasDrawGetTextDecorationDrawGetTextDirectionDrawGetTextEncodingDrawGetTextKerningDrawGetTextInterlineSpacingDrawGetTextInterwordSpacingDrawGetVectorGraphicsDrawGetTextUnderColorDrawLineDrawPathCloseDrawPathCurveToAbsoluteDrawPathCurveToRelativeDrawPathCurveToQuadraticBezierAbsoluteDrawPathCurveToQuadraticBezierRelativeDrawPathCurveToQuadraticBezierSmoothAbsoluteDrawPathCurveToQuadraticBezierSmoothRelativeDrawPathCurveToSmoothAbsoluteDrawPathCurveToSmoothRelativeDrawPathEllipticArcAbsoluteDrawPathEllipticArcRelativeDrawPathFinishDrawPathLineToAbsoluteDrawPathLineToRelativeDrawPathLineToHorizontalAbsoluteDrawPathLineToHorizontalRelativeDrawPathLineToVerticalAbsoluteDrawPathLineToVerticalRelativeDrawPathMoveToAbsoluteDrawPathMoveToRelativeDrawPathStartDrawPointDrawPolygonDrawPolylineDrawPopClipPathDrawPopDefsDrawPopPatternDrawPushClipPathDrawPushDefsDrawPushPatternDrawRectangleDrawResetVectorGraphicsDrawRotateDrawRoundRectangleDrawScaleDrawSetBorderColorDrawSetClipPathDrawSetClipRuleDrawSetClipUnitsDrawSetDensityDrawSetFillColorDrawSetFillOpacityDrawSetFontResolutionDrawSetOpacityDrawSetFillPatternURLDrawSetFillRuleDrawSetFontDrawSetFontFamilyDrawSetFontSizeDrawSetFontStretchDrawSetFontStyleDrawSetFontWeightDrawSetGravityDrawSetStrokeColorDrawSetStrokePatternURLDrawSetStrokeAntialiasDrawSetStrokeDashArrayDrawSetStrokeDashOffsetDrawSetStrokeLineCapDrawSetStrokeLineJoinDrawSetStrokeMiterLimitDrawSetStrokeOpacityDrawSetStrokeWidthDrawSetTextAlignmentDrawSetTextAntialiasDrawSetTextDecorationDrawSetTextEncodingDrawSetTextKerningDrawSetTextInterlineSpacingDrawSetTextInterwordSpacingDrawSetTextUnderColorDrawSetVectorGraphicsDrawSkewXDrawSkewYDrawTranslateDrawSetViewboxIsDrawingWandNewDrawingWandPeekDrawingWandPopDrawingWandPushDrawingWand

+ +

ClearDrawingWand

+ +

ClearDrawingWand() clears resources associated with the drawing wand.

+ +

The format of the ClearDrawingWand method is:

+ +
+void ClearDrawingWand(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand to clear.
+ +
+
+

CloneDrawingWand

+ +

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

+ +

The format of the CloneDrawingWand method is:

+ +
+DrawingWand *CloneDrawingWand(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

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

DestroyDrawingWand

+ +

DestroyDrawingWand() frees all resources associated with the drawing wand. Once the drawing wand has been freed, it should not be used and further unless it re-allocated.

+ +

The format of the DestroyDrawingWand method is:

+ +
+DrawingWand *DestroyDrawingWand(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand to destroy.
+ +
+
+

DrawAffine

+ +

DrawAffine() adjusts the current affine transformation matrix with the specified affine transformation matrix. Note that the current affine transform is adjusted rather than replaced.

+ +

The format of the DrawAffine method is:

+ +
+void DrawAffine(DrawingWand *wand,const AffineMatrix *affine)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
Drawing wand
+ +
+
affine
+
Affine matrix parameters
+ +
+
+

DrawAlpha

+ +

DrawAlpha() paints on the image's alpha channel in order to set effected pixels to transparent. to influence the alpha of pixels. The available paint methods are:

+ +
+    PointMethod: Select the target pixel
+    ReplaceMethod: Select any pixel that matches the target pixel.
+    FloodfillMethod: Select the target pixel and matching neighbors.
+    FillToBorderMethod: Select the target pixel and neighbors not matching
+border color.
+    ResetMethod: Select all pixels.
+
+ +

The format of the DrawAlpha method is:

+ +
+void DrawAlpha(DrawingWand *wand,const double x,const double y,
+  const PaintMethod paint_method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate
+ +
+
y
+
y ordinate
+ +
+
paint_method
+
paint method.
+ +
+
+

DrawAnnotation

+ +

DrawAnnotation() draws text on the image.

+ +

The format of the DrawAnnotation method is:

+ +
+void DrawAnnotation(DrawingWand *wand,const double x,
+  const double y,const unsigned char *text)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate to left of text
+ +
+
y
+
y ordinate to text baseline
+ +
+
text
+
text to draw
+ +
+
+

DrawArc

+ +

DrawArc() draws an arc falling within a specified bounding rectangle on the image.

+ +

The format of the DrawArc method is:

+ +
+void DrawArc(DrawingWand *wand,const double sx,const double sy,
+  const double ex,const double ey,const double sd,const double ed)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
sx
+
starting x ordinate of bounding rectangle
+ +
+
sy
+
starting y ordinate of bounding rectangle
+ +
+
ex
+
ending x ordinate of bounding rectangle
+ +
+
ey
+
ending y ordinate of bounding rectangle
+ +
+
sd
+
starting degrees of rotation
+ +
+
ed
+
ending degrees of rotation
+ +
+
+

DrawBezier

+ +

DrawBezier() draws a bezier curve through a set of points on the image.

+ +

The format of the DrawBezier method is:

+ +
+void DrawBezier(DrawingWand *wand,
+  const size_t number_coordinates,const PointInfo *coordinates)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_coordinates
+
number of coordinates
+ +
+
coordinates
+
coordinates
+ +
+
+

DrawCircle

+ +

DrawCircle() draws a circle on the image.

+ +

The format of the DrawCircle method is:

+ +
+void DrawCircle(DrawingWand *wand,const double ox,
+  const double oy,const double px, const double py)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
ox
+
origin x ordinate
+ +
+
oy
+
origin y ordinate
+ +
+
px
+
perimeter x ordinate
+ +
+
py
+
perimeter y ordinate
+ +
+
+

DrawClearException

+ +

DrawClearException() clear any exceptions associated with the wand.

+ +

The format of the DrawClearException method is:

+ +
+MagickBooleanType DrawClearException(DrawWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawCloneExceptionInfo

+ +

DrawCloneExceptionInfo() clones the ExceptionInfo structure within the wand.

+ +

The format of the DrawCloneExceptionInfo method is:

+ +
+ExceptionInfo *DrawCloneExceptionInfo(DrawWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawComposite

+ +

DrawComposite() composites an image onto the current image, using the specified composition operator, specified position, and at the specified size.

+ +

The format of the DrawComposite method is:

+ +
+MagickBooleanType DrawComposite(DrawingWand *wand,
+  const CompositeOperator compose,const double x,
+  const double y,const double width,const double height,
+  MagickWand *magick_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
compose
+
composition operator
+ +
+
x
+
x ordinate of top left corner
+ +
+
y
+
y ordinate of top left corner
+ +
+
width
+
Width to resize image to prior to compositing. Specify zero to use existing width.
+ +
+
height
+
Height to resize image to prior to compositing. Specify zero to use existing height.
+ +
+
magick_wand
+
Image to composite is obtained from this wand.
+ +
+
+

DrawColor

+ +

DrawColor() draws color on image using the current fill color, starting at specified position, and using specified paint method. The available paint methods are:

+ +
+    PointMethod: Recolors the target pixel
+    ReplaceMethod: Recolor any pixel that matches the target pixel.
+    FloodfillMethod: Recolors target pixels and matching neighbors.
+    ResetMethod: Recolor all pixels.
+
+ +

The format of the DrawColor method is:

+ +
+void DrawColor(DrawingWand *wand,const double x,const double y,
+  const PaintMethod paint_method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate.
+ +
+
y
+
y ordinate.
+ +
+
paint_method
+
paint method.
+ +
+
+

DrawComment

+ +

DrawComment() adds a comment to a vector output stream.

+ +

The format of the DrawComment method is:

+ +
+void DrawComment(DrawingWand *wand,const char *comment)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
comment
+
comment text
+ +
+
+

DrawEllipse

+ +

DrawEllipse() draws an ellipse on the image.

+ +

The format of the DrawEllipse method is:

+ +
+ void DrawEllipse(DrawingWand *wand,const double ox,const double oy,
+   const double rx,const double ry,const double start,const double end)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
ox
+
origin x ordinate
+ +
+
oy
+
origin y ordinate
+ +
+
rx
+
radius in x
+ +
+
ry
+
radius in y
+ +
+
start
+
starting rotation in degrees
+ +
+
end
+
ending rotation in degrees
+ +
+
+

DrawGetBorderColor

+ +

DrawGetBorderColor() returns the border color used for drawing bordered objects.

+ +

The format of the DrawGetBorderColor method is:

+ +
+void DrawGetBorderColor(const DrawingWand *wand,
+  PixelWand *border_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
border_color
+
Return the border color.
+ +
+
+

DrawGetClipPath

+ +

DrawGetClipPath() obtains the current clipping path ID. The value returned must be deallocated by the user when it is no longer needed.

+ +

The format of the DrawGetClipPath method is:

+ +
+char *DrawGetClipPath(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetClipRule

+ +

DrawGetClipRule() returns the current polygon fill rule to be used by the clipping path.

+ +

The format of the DrawGetClipRule method is:

+ +
+     FillRule DrawGetClipRule(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetClipUnits

+ +

DrawGetClipUnits() returns the interpretation of clip path units.

+ +

The format of the DrawGetClipUnits method is:

+ +
+ClipPathUnits DrawGetClipUnits(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetDensity

+ +

DrawGetDensity() obtains the vertical and horizontal resolution. The value returned must be deallocated by the user when it is no longer needed.

+ +

The format of the DrawGetDensity method is:

+ +
+char *DrawGetDensity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetException

+ +

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

+ +

The format of the DrawGetException method is:

+ +
+char *DrawGetException(const DrawWand *wand,
+  ExceptionType *severity)
+
+ +

A description of each parameter follows:

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

DrawGetExceptionType

+ +

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

+ +

The format of the DrawGetExceptionType method is:

+ +
+ExceptionType DrawGetExceptionType(const DrawWand *wand)
+
+ +

A description of each parameter follows:

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

DrawGetFillColor

+ +

DrawGetFillColor() returns the fill color used for drawing filled objects.

+ +

The format of the DrawGetFillColor method is:

+ +
+void DrawGetFillColor(const DrawingWand *wand,
+  PixelWand *fill_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_color
+
Return the fill color.
+ +
+
+

DrawGetFillOpacity

+ +

DrawGetFillOpacity() returns the alpha used when drawing using the fill color or fill texture. Fully opaque is 1.0.

+ +

The format of the DrawGetFillOpacity method is:

+ +
+double DrawGetFillOpacity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFillRule

+ +

DrawGetFillRule() returns the fill rule used while drawing polygons.

+ +

The format of the DrawGetFillRule method is:

+ +
+FillRule DrawGetFillRule(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFont

+ +

DrawGetFont() returns a null-terminaged string specifying the font used when annotating with text. The value returned must be freed by the user when no longer needed.

+ +

The format of the DrawGetFont method is:

+ +
+char *DrawGetFont(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontFamily

+ +

DrawGetFontFamily() returns the font family to use when annotating with text. The value returned must be freed by the user when it is no longer needed.

+ +

The format of the DrawGetFontFamily method is:

+ +
+char *DrawGetFontFamily(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontResolution

+ +

DrawGetFontResolution() gets the image X and Y resolution.

+ +

The format of the DrawGetFontResolution method is:

+ +
+MagickBooleanType DrawGetFontResolution(const DrawingWand *wand,
+  double *x,double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the x-resolution.
+ +
+
y
+
the y-resolution.
+ +
+
+

DrawGetFontSize

+ +

DrawGetFontSize() returns the font pointsize used when annotating with text.

+ +

The format of the DrawGetFontSize method is:

+ +
+double DrawGetFontSize(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontStretch

+ +

DrawGetFontStretch() returns the font stretch used when annotating with text.

+ +

The format of the DrawGetFontStretch method is:

+ +
+StretchType DrawGetFontStretch(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontStyle

+ +

DrawGetFontStyle() returns the font style used when annotating with text.

+ +

The format of the DrawGetFontStyle method is:

+ +
+StyleType DrawGetFontStyle(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetFontWeight

+ +

DrawGetFontWeight() returns the font weight used when annotating with text.

+ +

The format of the DrawGetFontWeight method is:

+ +
+size_t DrawGetFontWeight(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetGravity

+ +

DrawGetGravity() returns the text placement gravity used when annotating with text.

+ +

The format of the DrawGetGravity method is:

+ +
+GravityType DrawGetGravity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetOpacity

+ +

DrawGetOpacity() returns the alpha used when drawing with the fill or stroke color or texture. Fully opaque is 1.0.

+ +

The format of the DrawGetOpacity method is:

+ +
+double DrawGetOpacity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeAntialias

+ +

DrawGetStrokeAntialias() returns the current stroke antialias setting. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

+ +

The format of the DrawGetStrokeAntialias method is:

+ +
+MagickBooleanType DrawGetStrokeAntialias(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeColor

+ +

DrawGetStrokeColor() returns the color used for stroking object outlines.

+ +

The format of the DrawGetStrokeColor method is:

+ +
+void DrawGetStrokeColor(const DrawingWand *wand,
+  PixelWand *stroke_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_color
+
Return the stroke color.
+ +
+
+

DrawGetStrokeDashArray

+ +

DrawGetStrokeDashArray() returns an array representing the pattern of dashes and gaps used to stroke paths (see DrawSetStrokeDashArray). The array must be freed once it is no longer required by the user.

+ +

The format of the DrawGetStrokeDashArray method is:

+ +
+double *DrawGetStrokeDashArray(const DrawingWand *wand,
+  size_t *number_elements)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_elements
+
address to place number of elements in dash array
+ +
+
+

DrawGetStrokeDashOffset

+ +

DrawGetStrokeDashOffset() returns the offset into the dash pattern to start the dash.

+ +

The format of the DrawGetStrokeDashOffset method is:

+ +
+double DrawGetStrokeDashOffset(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeLineCap

+ +

DrawGetStrokeLineCap() returns the shape to be used at the end of open subpaths when they are stroked. Values of LineCap are UndefinedCap, ButtCap, RoundCap, and SquareCap.

+ +

The format of the DrawGetStrokeLineCap method is:

+ +
+LineCap DrawGetStrokeLineCap(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeLineJoin

+ +

DrawGetStrokeLineJoin() returns the shape to be used at the corners of paths (or other vector shapes) when they are stroked. Values of LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.

+ +

The format of the DrawGetStrokeLineJoin method is:

+ +
+LineJoin DrawGetStrokeLineJoin(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeMiterLimit

+ +

DrawGetStrokeMiterLimit() returns the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

+ +

The format of the DrawGetStrokeMiterLimit method is:

+ +
+size_t DrawGetStrokeMiterLimit(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeOpacity

+ +

DrawGetStrokeOpacity() returns the alpha of stroked object outlines.

+ +

The format of the DrawGetStrokeOpacity method is:

+ +
+double DrawGetStrokeOpacity(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetStrokeWidth

+ +

DrawGetStrokeWidth() returns the width of the stroke used to draw object outlines.

+ +

The format of the DrawGetStrokeWidth method is:

+ +
+double DrawGetStrokeWidth(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextAlignment

+ +

DrawGetTextAlignment() returns the alignment applied when annotating with text.

+ +

The format of the DrawGetTextAlignment method is:

+ +
+AlignType DrawGetTextAlignment(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextAntialias

+ +

DrawGetTextAntialias() returns the current text antialias setting, which determines whether text is antialiased. Text is antialiased by default.

+ +

The format of the DrawGetTextAntialias method is:

+ +
+MagickBooleanType DrawGetTextAntialias(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextDecoration

+ +

DrawGetTextDecoration() returns the decoration applied when annotating with text.

+ +

The format of the DrawGetTextDecoration method is:

+ +
+DecorationType DrawGetTextDecoration(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextDirection

+ +

DrawGetTextDirection() returns the direction that will be used when annotating with text.

+ +

The format of the DrawGetTextDirection method is:

+ +
+DirectionType DrawGetTextDirection(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextEncoding

+ +

DrawGetTextEncoding() returns a null-terminated string which specifies the code set used for text annotations. The string must be freed by the user once it is no longer required.

+ +

The format of the DrawGetTextEncoding method is:

+ +
+char *DrawGetTextEncoding(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextKerning

+ +

DrawGetTextKerning() gets the spacing between characters in text.

+ +

The format of the DrawSetFontKerning method is:

+ +
+double DrawGetTextKerning(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextInterlineSpacing

+ +

DrawGetTextInterlineSpacing() gets the spacing between lines in text.

+ +

The format of the DrawGetTextInterlineSpacing method is:

+ +
+double DrawGetTextInterlineSpacing(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextInterwordSpacing

+ +

DrawGetTextInterwordSpacing() gets the spacing between words in text.

+ +

The format of the DrawSetFontKerning method is:

+ +
+double DrawGetTextInterwordSpacing(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetVectorGraphics

+ +

DrawGetVectorGraphics() returns a null-terminated string which specifies the vector graphics generated by any graphics calls made since the wand was instantiated. The string must be freed by the user once it is no longer required.

+ +

The format of the DrawGetVectorGraphics method is:

+ +
+char *DrawGetVectorGraphics(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawGetTextUnderColor

+ +

DrawGetTextUnderColor() returns the color of a background rectangle to place under text annotations.

+ +

The format of the DrawGetTextUnderColor method is:

+ +
+void DrawGetTextUnderColor(const DrawingWand *wand,
+  PixelWand *under_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
under_color
+
Return the under color.
+ +
+
+

DrawLine

+ +

DrawLine() draws a line on the image using the current stroke color, stroke alpha, and stroke width.

+ +

The format of the DrawLine method is:

+ +
+void DrawLine(DrawingWand *wand,const double sx,const double sy,
+  const double ex,const double ey)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
sx
+
starting x ordinate
+ +
+
sy
+
starting y ordinate
+ +
+
ex
+
ending x ordinate
+ +
+
ey
+
ending y ordinate
+ +
+
+

DrawPathClose

+ +

DrawPathClose() adds a path element to the current path which closes the current subpath by drawing a straight line from the current point to the current subpath's most recent starting point (usually, the most recent moveto point).

+ +

The format of the DrawPathClose method is:

+ +
+void DrawPathClose(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPathCurveToAbsolute

+ +

DrawPathCurveToAbsolute() draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToAbsolute method is:

+ +
+void DrawPathCurveToAbsolute(DrawingWand *wand,const double x1,
+  const double y1,const double x2,const double y2,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of control point for curve beginning
+ +
+
y1
+
y ordinate of control point for curve beginning
+ +
+
x2
+
x ordinate of control point for curve ending
+ +
+
y2
+
y ordinate of control point for curve ending
+ +
+
x
+
x ordinate of the end of the curve
+ +
+
y
+
y ordinate of the end of the curve
+ +
+
+

DrawPathCurveToRelative

+ +

DrawPathCurveToRelative() draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToRelative method is:

+ +
+void DrawPathCurveToRelative(DrawingWand *wand,const double x1,
+  const double y1,const double x2,const double y2,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of control point for curve beginning
+ +
+
y1
+
y ordinate of control point for curve beginning
+ +
+
x2
+
x ordinate of control point for curve ending
+ +
+
y2
+
y ordinate of control point for curve ending
+ +
+
x
+
x ordinate of the end of the curve
+ +
+
y
+
y ordinate of the end of the curve
+ +
+
+

DrawPathCurveToQuadraticBezierAbsolute

+ +

DrawPathCurveToQuadraticBezierAbsolute() draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToQuadraticBezierAbsolute method is:

+ +
+void DrawPathCurveToQuadraticBezierAbsolute(DrawingWand *wand,
+  const double x1,const double y1,onst double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of the control point
+ +
+
y1
+
y ordinate of the control point
+ +
+
x
+
x ordinate of final point
+ +
+
y
+
y ordinate of final point
+ +
+
+

DrawPathCurveToQuadraticBezierRelative

+ +

DrawPathCurveToQuadraticBezierRelative() draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToQuadraticBezierRelative method is:

+ +
+void DrawPathCurveToQuadraticBezierRelative(DrawingWand *wand,
+  const double x1,const double y1,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of the control point
+ +
+
y1
+
y ordinate of the control point
+ +
+
x
+
x ordinate of final point
+ +
+
y
+
y ordinate of final point
+ +
+
+

DrawPathCurveToQuadraticBezierSmoothAbsolute

+ +

DrawPathCurveToQuadraticBezierSmoothAbsolute() draws a quadratic Bezier curve (using absolute coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolute or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToQuadraticBezierSmoothAbsolute method is:

+ +
+void DrawPathCurveToQuadraticBezierSmoothAbsolute(
+  DrawingWand *wand,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate of final point
+ +
+
y
+
y ordinate of final point
+ +
+
+

DrawPathCurveToQuadraticBezierSmoothRelative

+ +

DrawPathCurveToQuadraticBezierSmoothRelative() draws a quadratic Bezier curve (using relative coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolute or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToQuadraticBezierSmoothRelative method is:

+ +
+void DrawPathCurveToQuadraticBezierSmoothRelative(DrawingWand *wand,
+  const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
x ordinate of final point
+ +
+
y
+
y ordinate of final point
+ +
+
+

DrawPathCurveToSmoothAbsolute

+ +

DrawPathCurveToSmoothAbsolute() draws a cubic Bezier curve from the current point to (x,y) using absolute coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToSmoothAbsolute method is:

+ +
+void DrawPathCurveToSmoothAbsolute(DrawingWand *wand,
+  const double x2,const double y2,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x2
+
x ordinate of second control point
+ +
+
y2
+
y ordinate of second control point
+ +
+
x
+
x ordinate of termination point
+ +
+
y
+
y ordinate of termination point
+ +
+
+

DrawPathCurveToSmoothRelative

+ +

DrawPathCurveToSmoothRelative() draws a cubic Bezier curve from the current point to (x,y) using relative coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

+ +

The format of the DrawPathCurveToSmoothRelative method is:

+ +
+void DrawPathCurveToSmoothRelative(DrawingWand *wand,
+  const double x2,const double y2,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x2
+
x ordinate of second control point
+ +
+
y2
+
y ordinate of second control point
+ +
+
x
+
x ordinate of termination point
+ +
+
y
+
y ordinate of termination point
+ +
+
+

DrawPathEllipticArcAbsolute

+ +

DrawPathEllipticArcAbsolute() draws an elliptical arc from the current point to (x, y) using absolute coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automagically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is true then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

+ +

The format of the DrawPathEllipticArcAbsolute method is:

+ +
+void DrawPathEllipticArcAbsolute(DrawingWand *wand,
+  const double rx,const double ry,const double x_axis_rotation,
+  const MagickBooleanType large_arc_flag,
+  const MagickBooleanType sweep_flag,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
rx
+
x radius
+ +
+
ry
+
y radius
+ +
+
x_axis_rotation
+
indicates how the ellipse as a whole is rotated relative to the current coordinate system
+ +
+
large_arc_flag
+
If non-zero (true) then draw the larger of the available arcs
+ +
+
sweep_flag
+
If non-zero (true) then draw the arc matching a clock-wise rotation
+ +
+ +
+
+

DrawPathEllipticArcRelative

+ +

DrawPathEllipticArcRelative() draws an elliptical arc from the current point to (x, y) using relative coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automagically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is true then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

+ +

The format of the DrawPathEllipticArcRelative method is:

+ +
+void DrawPathEllipticArcRelative(DrawingWand *wand,
+  const double rx,const double ry,const double x_axis_rotation,
+  const MagickBooleanType large_arc_flag,
+  const MagickBooleanType sweep_flag,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
rx
+
x radius
+ +
+
ry
+
y radius
+ +
+
x_axis_rotation
+
indicates how the ellipse as a whole is rotated relative to the current coordinate system
+ +
+
large_arc_flag
+
If non-zero (true) then draw the larger of the available arcs
+ +
+
sweep_flag
+
If non-zero (true) then draw the arc matching a clock-wise rotation
+ +
+
+

DrawPathFinish

+ +

DrawPathFinish() terminates the current path.

+ +

The format of the DrawPathFinish method is:

+ +
+void DrawPathFinish(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPathLineToAbsolute

+ +

DrawPathLineToAbsolute() draws a line path from the current point to the given coordinate using absolute coordinates. The coordinate then becomes the new current point.

+ +

The format of the DrawPathLineToAbsolute method is:

+ +
+void DrawPathLineToAbsolute(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathLineToRelative

+ +

DrawPathLineToRelative() draws a line path from the current point to the given coordinate using relative coordinates. The coordinate then becomes the new current point.

+ +

The format of the DrawPathLineToRelative method is:

+ +
+void DrawPathLineToRelative(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathLineToHorizontalAbsolute

+ +

DrawPathLineToHorizontalAbsolute() draws a horizontal line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

+ +

The format of the DrawPathLineToHorizontalAbsolute method is:

+ +
+void DrawPathLineToHorizontalAbsolute(DrawingWand *wand,const double x)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
+

DrawPathLineToHorizontalRelative

+ +

DrawPathLineToHorizontalRelative() draws a horizontal line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

+ +

The format of the DrawPathLineToHorizontalRelative method is:

+ +
+void DrawPathLineToHorizontalRelative(DrawingWand *wand,
+  const double x)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
+

DrawPathLineToVerticalAbsolute

+ +

DrawPathLineToVerticalAbsolute() draws a vertical line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

+ +

The format of the DrawPathLineToVerticalAbsolute method is:

+ +
+void DrawPathLineToVerticalAbsolute(DrawingWand *wand,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathLineToVerticalRelative

+ +

DrawPathLineToVerticalRelative() draws a vertical line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

+ +

The format of the DrawPathLineToVerticalRelative method is:

+ +
+void DrawPathLineToVerticalRelative(DrawingWand *wand,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathMoveToAbsolute

+ +

DrawPathMoveToAbsolute() starts a new sub-path at the given coordinate using absolute coordinates. The current point then becomes the specified coordinate.

+ +

The format of the DrawPathMoveToAbsolute method is:

+ +
+void DrawPathMoveToAbsolute(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathMoveToRelative

+ +

DrawPathMoveToRelative() starts a new sub-path at the given coordinate using relative coordinates. The current point then becomes the specified coordinate.

+ +

The format of the DrawPathMoveToRelative method is:

+ +
+void DrawPathMoveToRelative(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x ordinate
+ +
+
y
+
target y ordinate
+ +
+
+

DrawPathStart

+ +

DrawPathStart() declares the start of a path drawing list which is terminated by a matching DrawPathFinish() command. All other DrawPath commands must be enclosed between a DrawPathStart() and a DrawPathFinish() command. This is because path drawing commands are subordinate commands and they do not function by themselves.

+ +

The format of the DrawPathStart method is:

+ +
+void DrawPathStart(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPoint

+ +

DrawPoint() draws a point using the current fill color.

+ +

The format of the DrawPoint method is:

+ +
+void DrawPoint(DrawingWand *wand,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
target x coordinate
+ +
+
y
+
target y coordinate
+ +
+
+

DrawPolygon

+ +

DrawPolygon() draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

+ +

The format of the DrawPolygon method is:

+ +
+void DrawPolygon(DrawingWand *wand,
+  const size_t number_coordinates,const PointInfo *coordinates)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_coordinates
+
number of coordinates
+ +
+
coordinates
+
coordinate array
+ +
+
+

DrawPolyline

+ +

DrawPolyline() draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

+ +

The format of the DrawPolyline method is:

+ +
+void DrawPolyline(DrawingWand *wand,
+  const size_t number_coordinates,const PointInfo *coordinates)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_coordinates
+
number of coordinates
+ +
+
coordinates
+
coordinate array
+ +
+
+

DrawPopClipPath

+ +

DrawPopClipPath() terminates a clip path definition.

+ +

The format of the DrawPopClipPath method is:

+ +
+void DrawPopClipPath(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPopDefs

+ +

DrawPopDefs() terminates a definition list.

+ +

The format of the DrawPopDefs method is:

+ +
+void DrawPopDefs(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPopPattern

+ +

DrawPopPattern() terminates a pattern definition.

+ +

The format of the DrawPopPattern method is:

+ +
+MagickBooleanType DrawPopPattern(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPushClipPath

+ +

DrawPushClipPath() starts a clip path definition which is comprized of any number of drawing commands and terminated by a DrawPopClipPath() command.

+ +

The format of the DrawPushClipPath method is:

+ +
+void DrawPushClipPath(DrawingWand *wand,const char *clip_mask_id)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
clip_mask_id
+
string identifier to associate with the clip path for later use.
+ +
+
+

DrawPushDefs

+ +

DrawPushDefs() indicates that commands up to a terminating DrawPopDefs() command create named elements (e.g. clip-paths, textures, etc.) which may safely be processed earlier for the sake of efficiency.

+ +

The format of the DrawPushDefs method is:

+ +
+void DrawPushDefs(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawPushPattern

+ +

DrawPushPattern() indicates that subsequent commands up to a DrawPopPattern() command comprise the definition of a named pattern. The pattern space is assigned top left corner coordinates, a width and height, and becomes its own drawing space. Anything which can be drawn may be used in a pattern definition. Named patterns may be used as stroke or brush definitions.

+ +

The format of the DrawPushPattern method is:

+ +
+MagickBooleanType DrawPushPattern(DrawingWand *wand,
+  const char *pattern_id,const double x,const double y,
+  const double width,const double height)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
pattern_id
+
pattern identification for later reference
+ +
+
x
+
x ordinate of top left corner
+ +
+
y
+
y ordinate of top left corner
+ +
+
width
+
width of pattern space
+ +
+
height
+
height of pattern space
+ +
+
+

DrawRectangle

+ +

DrawRectangle() draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

+ +

The format of the DrawRectangle method is:

+ +
+void DrawRectangle(DrawingWand *wand,const double x1,
+  const double y1,const double x2,const double y2)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
x1
+
x ordinate of first coordinate
+ +
+
y1
+
y ordinate of first coordinate
+ +
+
x2
+
x ordinate of second coordinate
+ +
+
y2
+
y ordinate of second coordinate
+ +
+
+

DrawResetVectorGraphics

+ +

DrawResetVectorGraphics() resets the vector graphics associated with the specified wand.

+ +

The format of the DrawResetVectorGraphics method is:

+ +
+void DrawResetVectorGraphics(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

DrawRotate

+ +

DrawRotate() applies the specified rotation to the current coordinate space.

+ +

The format of the DrawRotate method is:

+ +
+void DrawRotate(DrawingWand *wand,const double degrees)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
degrees
+
degrees of rotation
+ +
+
+

DrawRoundRectangle

+ +

DrawRoundRectangle() draws a rounted rectangle given two coordinates, x & y corner radiuses and using the current stroke, stroke width, and fill settings.

+ +

The format of the DrawRoundRectangle method is:

+ +
+void DrawRoundRectangle(DrawingWand *wand,double x1,double y1,
+  double x2,double y2,double rx,double ry)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
x ordinate of first coordinate
+ +
+
y1
+
y ordinate of first coordinate
+ +
+
x2
+
x ordinate of second coordinate
+ +
+
y2
+
y ordinate of second coordinate
+ +
+
rx
+
radius of corner in horizontal direction
+ +
+
ry
+
radius of corner in vertical direction
+ +
+
+

DrawScale

+ +

DrawScale() adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

+ +

The format of the DrawScale method is:

+ +
+void DrawScale(DrawingWand *wand,const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
horizontal scale factor
+ +
+
y
+
vertical scale factor
+ +
+
+

DrawSetBorderColor

+ +

DrawSetBorderColor() sets the border color to be used for drawing bordered objects.

+ +

The format of the DrawSetBorderColor method is:

+ +
+void DrawSetBorderColor(DrawingWand *wand,const PixelWand *border_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
border_wand
+
border wand.
+ +
+
+

DrawSetClipPath

+ +

DrawSetClipPath() associates a named clipping path with the image. Only the areas drawn on by the clipping path will be modified as ssize_t as it remains in effect.

+ +

The format of the DrawSetClipPath method is:

+ +
+MagickBooleanType DrawSetClipPath(DrawingWand *wand,
+  const char *clip_mask)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
clip_mask
+
name of clipping path to associate with image
+ +
+
+

DrawSetClipRule

+ +

DrawSetClipRule() set the polygon fill rule to be used by the clipping path.

+ +

The format of the DrawSetClipRule method is:

+ +
+void DrawSetClipRule(DrawingWand *wand,const FillRule fill_rule)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_rule
+
fill rule (EvenOddRule or NonZeroRule)
+ +
+
+

DrawSetClipUnits

+ +

DrawSetClipUnits() sets the interpretation of clip path units.

+ +

The format of the DrawSetClipUnits method is:

+ +
+void DrawSetClipUnits(DrawingWand *wand,
+  const ClipPathUnits clip_units)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
clip_units
+
units to use (UserSpace, UserSpaceOnUse, or ObjectBoundingBox)
+ +
+
+

DrawSetDensity

+ +

DrawSetDensity() sets the vertical and horizontal resolution.

+ +

The format of the DrawSetDensity method is:

+ +
+MagickBooleanType DrawSetDensity(DrawingWand *wand,
+  const char *density)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
density
+
the vertical and horizontal resolution.
+ +
+
+

DrawSetFillColor

+ +

DrawSetFillColor() sets the fill color to be used for drawing filled objects.

+ +

The format of the DrawSetFillColor method is:

+ +
+void DrawSetFillColor(DrawingWand *wand,const PixelWand *fill_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_wand
+
fill wand.
+ +
+
+

DrawSetFillOpacity

+ +

DrawSetFillOpacity() sets the alpha to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

+ +

The format of the DrawSetFillOpacity method is:

+ +
+void DrawSetFillOpacity(DrawingWand *wand,const double fill_alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_opacity
+
fill opacity
+ +
+
+

DrawSetFontResolution

+ +

DrawSetFontResolution() sets the image resolution.

+ +

The format of the DrawSetFontResolution method is:

+ +
+MagickBooleanType DrawSetFontResolution(DrawingWand *wand,
+  const double x_resolution,const double y_resolution)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x_resolution
+
the image x resolution.
+ +
+
y_resolution
+
the image y resolution.
+ +
+
+

DrawSetOpacity

+ +

DrawSetOpacity() sets the alpha to use when drawing using the fill or stroke color or texture. Fully opaque is 1.0.

+ +

The format of the DrawSetOpacity method is:

+ +
+void DrawSetOpacity(DrawingWand *wand,const double alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
opacity
+
fill and stroke opacity. The value 1.0 is opaque.
+ +
+
+

DrawSetFillPatternURL

+ +

DrawSetFillPatternURL() sets the URL to use as a fill pattern for filling objects. Only local URLs ("#identifier") are supported at this time. These local URLs are normally created by defining a named fill pattern with DrawPushPattern/DrawPopPattern.

+ +

The format of the DrawSetFillPatternURL method is:

+ +
+MagickBooleanType DrawSetFillPatternURL(DrawingWand *wand,
+  const char *fill_url)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_url
+
URL to use to obtain fill pattern.
+ +
+
+

DrawSetFillRule

+ +

DrawSetFillRule() sets the fill rule to use while drawing polygons.

+ +

The format of the DrawSetFillRule method is:

+ +
+void DrawSetFillRule(DrawingWand *wand,const FillRule fill_rule)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
fill_rule
+
fill rule (EvenOddRule or NonZeroRule)
+ +
+
+

DrawSetFont

+ +

DrawSetFont() sets the fully-sepecified font to use when annotating with text.

+ +

The format of the DrawSetFont method is:

+ +
+MagickBooleanType DrawSetFont(DrawingWand *wand,const char *font_name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
font_name
+
font name
+ +
+
+

DrawSetFontFamily

+ +

DrawSetFontFamily() sets the font family to use when annotating with text.

+ +

The format of the DrawSetFontFamily method is:

+ +
+MagickBooleanType DrawSetFontFamily(DrawingWand *wand,
+  const char *font_family)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
font_family
+
font family
+ +
+
+

DrawSetFontSize

+ +

DrawSetFontSize() sets the font pointsize to use when annotating with text.

+ +

The format of the DrawSetFontSize method is:

+ +
+void DrawSetFontSize(DrawingWand *wand,const double pointsize)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
pointsize
+
text pointsize
+ +
+
+

DrawSetFontStretch

+ +

DrawSetFontStretch() sets the font stretch to use when annotating with text. The AnyStretch enumeration acts as a wild-card "don't care" option.

+ +

The format of the DrawSetFontStretch method is:

+ +
+void DrawSetFontStretch(DrawingWand *wand,
+  const StretchType font_stretch)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
font_stretch
+
font stretch (NormalStretch, UltraCondensedStretch, CondensedStretch, SemiCondensedStretch, SemiExpandedStretch, ExpandedStretch, ExtraExpandedStretch, UltraExpandedStretch, AnyStretch)
+ +
+
+

DrawSetFontStyle

+ +

DrawSetFontStyle() sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

+ +

The format of the DrawSetFontStyle method is:

+ +
+void DrawSetFontStyle(DrawingWand *wand,const StyleType style)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
style
+
font style (NormalStyle, ItalicStyle, ObliqueStyle, AnyStyle)
+ +
+
+

DrawSetFontWeight

+ +

DrawSetFontWeight() sets the font weight to use when annotating with text.

+ +

The format of the DrawSetFontWeight method is:

+ +
+void DrawSetFontWeight(DrawingWand *wand,
+  const size_t font_weight)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
font_weight
+
font weight (valid range 100-900)
+ +
+
+

DrawSetGravity

+ +

DrawSetGravity() sets the text placement gravity to use when annotating with text.

+ +

The format of the DrawSetGravity method is:

+ +
+void DrawSetGravity(DrawingWand *wand,const GravityType gravity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
gravity
+
positioning gravity (NorthWestGravity, NorthGravity, NorthEastGravity, WestGravity, CenterGravity, EastGravity, SouthWestGravity, SouthGravity, SouthEastGravity)
+ +
+
+

DrawSetStrokeColor

+ +

DrawSetStrokeColor() sets the color used for stroking object outlines.

+ +

The format of the DrawSetStrokeColor method is:

+ +
+void DrawSetStrokeColor(DrawingWand *wand,
+  const PixelWand *stroke_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_wand
+
stroke wand.
+ +
+
+

DrawSetStrokePatternURL

+ +

DrawSetStrokePatternURL() sets the pattern used for stroking object outlines.

+ +

The format of the DrawSetStrokePatternURL method is:

+ +
+MagickBooleanType DrawSetStrokePatternURL(DrawingWand *wand,
+  const char *stroke_url)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_url
+
URL specifying pattern ID (e.g. "#pattern_id")
+ +
+
+

DrawSetStrokeAntialias

+ +

DrawSetStrokeAntialias() controls whether stroked outlines are antialiased. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

+ +

The format of the DrawSetStrokeAntialias method is:

+ +
+void DrawSetStrokeAntialias(DrawingWand *wand,
+  const MagickBooleanType stroke_antialias)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_antialias
+
set to false (zero) to disable antialiasing
+ +
+
+

DrawSetStrokeDashArray

+ +

DrawSetStrokeDashArray() specifies the pattern of dashes and gaps used to stroke paths. The stroke dash array represents an array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. To remove an existing dash array, pass a zero number_elements argument and null dasharray. A typical stroke dash array might contain the members 5 3 2.

+ +

The format of the DrawSetStrokeDashArray method is:

+ +
+MagickBooleanType DrawSetStrokeDashArray(DrawingWand *wand,
+  const size_t number_elements,const double *dasharray)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
number_elements
+
number of elements in dash array
+ +
+
dasharray
+
dash array values
+ +
+
+

DrawSetStrokeDashOffset

+ +

DrawSetStrokeDashOffset() specifies the offset into the dash pattern to start the dash.

+ +

The format of the DrawSetStrokeDashOffset method is:

+ +
+void DrawSetStrokeDashOffset(DrawingWand *wand,
+  const double dash_offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
dash_offset
+
dash offset
+ +
+
+

DrawSetStrokeLineCap

+ +

DrawSetStrokeLineCap() specifies the shape to be used at the end of open subpaths when they are stroked. Values of LineCap are UndefinedCap, ButtCap, RoundCap, and SquareCap.

+ +

The format of the DrawSetStrokeLineCap method is:

+ +
+void DrawSetStrokeLineCap(DrawingWand *wand,
+  const LineCap linecap)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
linecap
+
linecap style
+ +
+
+

DrawSetStrokeLineJoin

+ +

DrawSetStrokeLineJoin() specifies the shape to be used at the corners of paths (or other vector shapes) when they are stroked. Values of LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.

+ +

The format of the DrawSetStrokeLineJoin method is:

+ +
+void DrawSetStrokeLineJoin(DrawingWand *wand,
+  const LineJoin linejoin)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
linejoin
+
line join style
+ +
+
+

DrawSetStrokeMiterLimit

+ +

DrawSetStrokeMiterLimit() specifies the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

+ +

The format of the DrawSetStrokeMiterLimit method is:

+ +
+void DrawSetStrokeMiterLimit(DrawingWand *wand,
+  const size_t miterlimit)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
miterlimit
+
miter limit
+ +
+
+

DrawSetStrokeOpacity

+ +

DrawSetStrokeOpacity() specifies the alpha of stroked object outlines.

+ +

The format of the DrawSetStrokeOpacity method is:

+ +
+void DrawSetStrokeOpacity(DrawingWand *wand,
+  const double stroke_alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
opacity
+
stroke opacity. The value 1.0 is opaque.
+ +
+
+

DrawSetStrokeWidth

+ +

DrawSetStrokeWidth() sets the width of the stroke used to draw object outlines.

+ +

The format of the DrawSetStrokeWidth method is:

+ +
+void DrawSetStrokeWidth(DrawingWand *wand,
+  const double stroke_width)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
stroke_width
+
stroke width
+ +
+
+

DrawSetTextAlignment

+ +

DrawSetTextAlignment() specifies a text alignment to be applied when annotating with text.

+ +

The format of the DrawSetTextAlignment method is:

+ +
+void DrawSetTextAlignment(DrawingWand *wand,const AlignType alignment)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
alignment
+
text alignment. One of UndefinedAlign, LeftAlign, CenterAlign, or RightAlign.
+ +
+
+

DrawSetTextAntialias

+ +

DrawSetTextAntialias() controls whether text is antialiased. Text is antialiased by default.

+ +

The format of the DrawSetTextAntialias method is:

+ +
+void DrawSetTextAntialias(DrawingWand *wand,
+  const MagickBooleanType text_antialias)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
text_antialias
+
antialias boolean. Set to false (0) to disable antialiasing.
+ +
+
+

DrawSetTextDecoration

+ +

DrawSetTextDecoration() specifies a decoration to be applied when annotating with text.

+ +

The format of the DrawSetTextDecoration method is:

+ +
+void DrawSetTextDecoration(DrawingWand *wand,
+  const DecorationType decoration)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
decoration
+
text decoration. One of NoDecoration, UnderlineDecoration, OverlineDecoration, or LineThroughDecoration
+ +
+
+

DrawSetTextEncoding

+ +

DrawSetTextEncoding() specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

+ +

The format of the DrawSetTextEncoding method is:

+ +
+void DrawSetTextEncoding(DrawingWand *wand,const char *encoding)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
encoding
+
character string specifying text encoding
+ +
+
+

DrawSetTextKerning

+ +

DrawSetTextKerning() sets the spacing between characters in text.

+ +

The format of the DrawSetTextKerning method is:

+ +
+void DrawSetTextKerning(DrawingWand *wand,const double kerning)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
kerning
+
text kerning
+ +
+
+

DrawSetTextInterlineSpacing

+ +

DrawSetTextInterlineSpacing() sets the spacing between line in text.

+ +

The format of the DrawSetInterlineSpacing method is:

+ +
+void DrawSetTextInterlineSpacing(DrawingWand *wand,
+  const double interline_spacing)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
interline_spacing
+
text line spacing
+ +
+
+

DrawSetTextInterwordSpacing

+ +

DrawSetTextInterwordSpacing() sets the spacing between words in text.

+ +

The format of the DrawSetInterwordSpacing method is:

+ +
+void DrawSetTextInterwordSpacing(DrawingWand *wand,
+  const double interword_spacing)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
interword_spacing
+
text word spacing
+ +
+
+

DrawSetTextUnderColor

+ +

DrawSetTextUnderColor() specifies the color of a background rectangle to place under text annotations.

+ +

The format of the DrawSetTextUnderColor method is:

+ +
+void DrawSetTextUnderColor(DrawingWand *wand,
+  const PixelWand *under_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
under_wand
+
text under wand.
+ +
+
+

DrawSetVectorGraphics

+ +

DrawSetVectorGraphics() sets the vector graphics associated with the specified wand. Use this method with DrawGetVectorGraphics() as a method to persist the vector graphics state.

+ +

The format of the DrawSetVectorGraphics method is:

+ +
+MagickBooleanType DrawSetVectorGraphics(DrawingWand *wand,
+  const char *xml)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
xml
+
the drawing wand XML.
+ +
+
+

DrawSkewX

+ +

DrawSkewX() skews the current coordinate system in the horizontal direction.

+ +

The format of the DrawSkewX method is:

+ +
+void DrawSkewX(DrawingWand *wand,const double degrees)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
degrees
+
number of degrees to skew the coordinates
+ +
+
+

DrawSkewY

+ +

DrawSkewY() skews the current coordinate system in the vertical direction.

+ +

The format of the DrawSkewY method is:

+ +
+void DrawSkewY(DrawingWand *wand,const double degrees)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
degrees
+
number of degrees to skew the coordinates
+ +
+
+

DrawTranslate

+ +

DrawTranslate() applies a translation to the current coordinate system which moves the coordinate system origin to the specified coordinate.

+ +

The format of the DrawTranslate method is:

+ +
+void DrawTranslate(DrawingWand *wand,const double x,
+  const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x
+
new x ordinate for coordinate system origin
+ +
+
y
+
new y ordinate for coordinate system origin
+ +
+
+

DrawSetViewbox

+ +

DrawSetViewbox() sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

+ +

The format of the DrawSetViewbox method is:

+ +
+void DrawSetViewbox(DrawingWand *wand,const double x1,const double y1,
+  const double x2,const double y2)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
x1
+
left x ordinate
+ +
+
y1
+
top y ordinate
+ +
+
x2
+
right x ordinate
+ +
+
y2
+
bottom y ordinate
+ +
+
+

IsDrawingWand

+ +

IsDrawingWand() returns MagickTrue if the wand is verified as a drawing wand.

+ +

The format of the IsDrawingWand method is:

+ +
+MagickBooleanType IsDrawingWand(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

NewDrawingWand

+ +

NewDrawingWand() returns a drawing wand required for all other methods in the API.

+ +

The format of the NewDrawingWand method is:

+ +
+DrawingWand *NewDrawingWand(void)
+
+ +

PeekDrawingWand

+ +

PeekDrawingWand() returns the current drawing wand.

+ +

The format of the PeekDrawingWand method is:

+ +
+DrawInfo *PeekDrawingWand(const DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

PopDrawingWand

+ +

PopDrawingWand() destroys the current drawing wand and returns to the previously pushed drawing wand. Multiple drawing wands may exist. It is an error to attempt to pop more drawing wands than have been pushed, and it is proper form to pop all drawing wands which have been pushed.

+ +

The format of the PopDrawingWand method is:

+ +
+MagickBooleanType PopDrawingWand(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+

PushDrawingWand

+ +

PushDrawingWand() clones the current drawing wand to create a new drawing wand. The original drawing wand(s) may be returned to by invoking PopDrawingWand(). The drawing wands are stored on a drawing wand stack. For every Pop there must have already been an equivalent Push.

+ +

The format of the PushDrawingWand method is:

+ +
+MagickBooleanType PushDrawingWand(DrawingWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the drawing wand.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/effect.html b/share/doc/ImageMagick-7/www/api/effect.html new file mode 100644 index 0000000..75e270c --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/effect.html @@ -0,0 +1,742 @@ + + + + + + + + + + MagickCore, C API: Add an Effect @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AdaptiveBlurImageAdaptiveSharpenImageBlurImageConvolveImageDespeckleImageEdgeImageEmbossImageGaussianBlurImageKuwaharaImageLocalContrastImageMotionBlurImagePreviewImageRotationalBlurImageSelectiveBlurImageShadeImageSharpenImageSpreadImageUnsharpMaskImage

+ +

AdaptiveBlurImage

+ +

AdaptiveBlurImage() adaptively blurs the image by blurring less intensely near image edges and more intensely far from edges. We blur 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 AdaptiveBlurImage() selects a suitable radius for you.

+ +

The format of the AdaptiveBlurImage method is:

+ +
+Image *AdaptiveBlurImage(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 Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Laplacian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

AdaptiveSharpenImage

+ +

AdaptiveSharpenImage() adaptively sharpens the image by sharpening more intensely near image edges and less intensely far from edges. We sharpen 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 AdaptiveSharpenImage() selects a suitable radius for you.

+ +

The format of the AdaptiveSharpenImage method is:

+ +
+Image *AdaptiveSharpenImage(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 Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Laplacian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

BlurImage

+ +

BlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and BlurImage() selects a suitable radius for you.

+ +

The format of the BlurImage method is:

+ +
+Image *BlurImage(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 Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ConvolveImage

+ +

ConvolveImage() applies a custom convolution kernel to the image.

+ +

The format of the ConvolveImage method is:

+ +
+Image *ConvolveImage(const Image *image,const KernelInfo *kernel,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DespeckleImage

+ +

DespeckleImage() reduces the speckle noise in an image while perserving the edges of the original image. A speckle removing filter uses a complementary hulling technique (raising pixels that are darker than their surrounding neighbors, then complementarily lowering pixels that are brighter than their surrounding neighbors) to reduce the speckle index of that image (reference Crimmins speckle removal).

+ +

The format of the DespeckleImage method is:

+ +
+Image *DespeckleImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

EdgeImage

+ +

EdgeImage() finds edges in an image. Radius defines the radius of the convolution filter. Use a radius of 0 and EdgeImage() selects a suitable radius for you.

+ +

The format of the EdgeImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
radius
+
the radius of the pixel neighborhood.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

EmbossImage

+ +

EmbossImage() returns a grayscale image with a three-dimensional effect. 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 Emboss() selects a suitable radius for you.

+ +

The format of the EmbossImage method is:

+ +
+Image *EmbossImage(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.
+ +
+
+

GaussianBlurImage

+ +

GaussianBlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and GaussianBlurImage() selects a suitable radius for you

+ +

The format of the GaussianBlurImage method is:

+ +
+Image *GaussianBlurImage(const Image *image,onst double radius,
+  const double sigma,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.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

KuwaharaImage

+ +

KuwaharaImage() is an edge preserving noise reduction filter.

+ +

The format of the KuwaharaImage method is:

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

A description of each parameter follows:

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

LocalContrastImage

+ +

LocalContrastImage() attempts to increase the appearance of large-scale light-dark transitions. Local contrast enhancement works similarly to sharpening with an unsharp mask, however the mask is instead created using an image with a greater blur distance.

+ +

The format of the LocalContrastImage method is:

+ +
+Image *LocalContrastImage(const Image *image, const double radius,
+  const double strength,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
radius
+
the radius of the Gaussian blur, in percentage with 100 resulting in a blur radius of 20 of largest dimension.
+ +
+
strength
+
the strength of the blur mask in percentage.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

MotionBlurImage

+ +

MotionBlurImage() simulates motion blur. 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 MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

+ +

Andrew Protano contributed this effect.

+ +

The format of the MotionBlurImage method is:

+ +
+    Image *MotionBlurImage(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.
+ +
+
+

PreviewImage

+ +

PreviewImage() tiles 9 thumbnails of the specified image with an image processing operation applied with varying parameters. This may be helpful pin-pointing an appropriate parameter for a particular image processing operation.

+ +

The format of the PreviewImages method is:

+ +
+Image *PreviewImages(const Image *image,const PreviewType preview,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RotationalBlurImage

+ +

RotationalBlurImage() applies a radial blur to the image.

+ +

Andrew Protano contributed this effect.

+ +

The format of the RotationalBlurImage method is:

+ +
+    Image *RotationalBlurImage(const Image *image,const double angle,
+ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
angle
+
the angle of the radial blur.
+ +
+
blur
+
the blur.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SelectiveBlurImage

+ +

SelectiveBlurImage() selectively blur pixels within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

+ +

The format of the SelectiveBlurImage method is:

+ +
+Image *SelectiveBlurImage(const Image *image,const double radius,
+  const double sigma,const double threshold,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.
+ +
+
threshold
+
only pixels within this contrast threshold are included in the blur operation.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ShadeImage

+ +

ShadeImage() shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis.

+ +

The format of the ShadeImage method is:

+ +
+Image *ShadeImage(const Image *image,const MagickBooleanType gray,
+  const double azimuth,const double elevation,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
gray
+
A value other than zero shades the intensity of each pixel.
+ +
+
azimuth, elevation
+
Define the light source direction.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SharpenImage

+ +

SharpenImage() sharpens the image. 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 SharpenImage() selects a suitable radius for you.

+ +

Using a separable kernel would be faster, but the negative weights cancel out on the corners of the kernel producing often undesirable ringing in the filtered result; this can be avoided by using a 2D gaussian shaped image sharpening kernel instead.

+ +

The format of the SharpenImage method is:

+ +
+    Image *SharpenImage(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 Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Laplacian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SpreadImage

+ +

SpreadImage() is a special effects method that randomly displaces each pixel in a square area defined by the radius parameter.

+ +

The format of the SpreadImage method is:

+ +
+Image *SpreadImage(const Image *image,
+  const PixelInterpolateMethod method,const double radius,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
method
+
intepolation method.
+ +
+
radius
+
choose a random pixel in a neighborhood of this extent.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

UnsharpMaskImage

+ +

UnsharpMaskImage() sharpens one or more image channels. 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 UnsharpMaskImage() selects a suitable radius for you.

+ +

The format of the UnsharpMaskImage method is:

+ +
+    Image *UnsharpMaskImage(const Image *image,const double radius,
+const double sigma,const double amount,const double threshold,
+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.
+ +
+
gain
+
the percentage of the difference between the original and the blur image that is added back into the original.
+ +
+
threshold
+
the threshold in pixels needed to apply the diffence gain.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/effect.php b/share/doc/ImageMagick-7/www/api/effect.php new file mode 100644 index 0000000..349867a --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/effect.php @@ -0,0 +1,673 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Add an Effect + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AdaptiveBlurImageAdaptiveSharpenImageBlurImageConvolveImageDespeckleImageEdgeImageEmbossImageGaussianBlurImageKuwaharaImageMotionBlurImagePreviewImageRotationalBlurImageSelectiveBlurImageShadeImageSharpenImageSpreadImageUnsharpMaskImage

+ +

AdaptiveBlurImage

+ +

AdaptiveBlurImage() adaptively blurs the image by blurring less intensely near image edges and more intensely far from edges. We blur 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 AdaptiveBlurImage() selects a suitable radius for you.

+ +

The format of the AdaptiveBlurImage method is:

+ +
+Image *AdaptiveBlurImage(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 Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Laplacian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

AdaptiveSharpenImage

+ +

AdaptiveSharpenImage() adaptively sharpens the image by sharpening more intensely near image edges and less intensely far from edges. We sharpen 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 AdaptiveSharpenImage() selects a suitable radius for you.

+ +

The format of the AdaptiveSharpenImage method is:

+ +
+Image *AdaptiveSharpenImage(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 Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Laplacian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

BlurImage

+ +

BlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and BlurImage() selects a suitable radius for you.

+ +

The format of the BlurImage method is:

+ +
+Image *BlurImage(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 Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ConvolveImage

+ +

ConvolveImage() applies a custom convolution kernel to the image.

+ +

The format of the ConvolveImage method is:

+ +
+Image *ConvolveImage(const Image *image,const KernelInfo *kernel,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DespeckleImage

+ +

DespeckleImage() reduces the speckle noise in an image while perserving the edges of the original image. A speckle removing filter uses a complementary hulling technique (raising pixels that are darker than their surrounding neighbors, then complementarily lowering pixels that are brighter than their surrounding neighbors) to reduce the speckle index of that image (reference Crimmins speckle removal).

+ +

The format of the DespeckleImage method is:

+ +
+Image *DespeckleImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

EdgeImage

+ +

EdgeImage() finds edges in an image. Radius defines the radius of the convolution filter. Use a radius of 0 and EdgeImage() selects a suitable radius for you.

+ +

The format of the EdgeImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
radius
+
the radius of the pixel neighborhood.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

EmbossImage

+ +

EmbossImage() returns a grayscale image with a three-dimensional effect. 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 Emboss() selects a suitable radius for you.

+ +

The format of the EmbossImage method is:

+ +
+Image *EmbossImage(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.
+ +
+
+

GaussianBlurImage

+ +

GaussianBlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and GaussianBlurImage() selects a suitable radius for you

+ +

The format of the GaussianBlurImage method is:

+ +
+Image *GaussianBlurImage(const Image *image,onst double radius,
+  const double sigma,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.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

KuwaharaImage

+ +

KuwaharaImage() is an edge preserving noise reduction filter.

+ +

The format of the KuwaharaImage method is:

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

A description of each parameter follows:

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

MotionBlurImage

+ +

MotionBlurImage() simulates motion blur. 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 MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

+ +

Andrew Protano contributed this effect.

+ +

The format of the MotionBlurImage method is:

+ +
+    Image *MotionBlurImage(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.
+ +
+
+

PreviewImage

+ +

PreviewImage() tiles 9 thumbnails of the specified image with an image processing operation applied with varying parameters. This may be helpful pin-pointing an appropriate parameter for a particular image processing operation.

+ +

The format of the PreviewImages method is:

+ +
+Image *PreviewImages(const Image *image,const PreviewType preview,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RotationalBlurImage

+ +

RotationalBlurImage() applies a radial blur to the image.

+ +

Andrew Protano contributed this effect.

+ +

The format of the RotationalBlurImage method is:

+ +
+    Image *RotationalBlurImage(const Image *image,const double angle,
+ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
angle
+
the angle of the radial blur.
+ +
+
blur
+
the blur.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SelectiveBlurImage

+ +

SelectiveBlurImage() selectively blur pixels within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

+ +

The format of the SelectiveBlurImage method is:

+ +
+Image *SelectiveBlurImage(const Image *image,const double radius,
+  const double sigma,const double threshold,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.
+ +
+
threshold
+
only pixels within this contrast threshold are included in the blur operation.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ShadeImage

+ +

ShadeImage() shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis.

+ +

The format of the ShadeImage method is:

+ +
+Image *ShadeImage(const Image *image,const MagickBooleanType gray,
+  const double azimuth,const double elevation,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
gray
+
A value other than zero shades the intensity of each pixel.
+ +
+
azimuth, elevation
+
Define the light source direction.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SharpenImage

+ +

SharpenImage() sharpens the image. 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 SharpenImage() selects a suitable radius for you.

+ +

Using a separable kernel would be faster, but the negative weights cancel out on the corners of the kernel producing often undesirable ringing in the filtered result; this can be avoided by using a 2D gaussian shaped image sharpening kernel instead.

+ +

The format of the SharpenImage method is:

+ +
+    Image *SharpenImage(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 Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Laplacian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SpreadImage

+ +

SpreadImage() is a special effects method that randomly displaces each pixel in a square area defined by the radius parameter.

+ +

The format of the SpreadImage method is:

+ +
+Image *SpreadImage(const Image *image,
+  const PixelInterpolateMethod method,const double radius,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
method
+
intepolation method.
+ +
+
radius
+
choose a random pixel in a neighborhood of this extent.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

UnsharpMaskImage

+ +

UnsharpMaskImage() sharpens one or more image channels. 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 UnsharpMaskImage() selects a suitable radius for you.

+ +

The format of the UnsharpMaskImage method is:

+ +
+    Image *UnsharpMaskImage(const Image *image,const double radius,
+const double sigma,const double amount,const double threshold,
+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.
+ +
+
gain
+
the percentage of the difference between the original and the blur image that is added back into the original.
+ +
+
threshold
+
the threshold in pixels needed to apply the diffence gain.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/enhance.html b/share/doc/ImageMagick-7/www/api/enhance.html new file mode 100644 index 0000000..b8936ba --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/enhance.html @@ -0,0 +1,790 @@ + + + + + + + + + + MagickCore, C API: Enhance an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AutoGammaImageAutoLevelImageBrightnessContrastImageClutImageColorDecisionListImageContrastImageContrastStretchImageEnhanceImageEqualizeImageGammaImageGrayscaleImageHaldClutImageLevelImageLevelizeImageLevelImageColorsLinearStretchImageModulateImageNegateImageThe NormalizeImageSigmoidalContrastImage

+ +

AutoGammaImage

+ +

AutoGammaImage() extract the 'mean' from the image and adjust the image to try make set its gamma appropriatally.

+ +

The format of the AutoGammaImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
The image to auto-level
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

AutoLevelImage

+ +

AutoLevelImage() adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

+ +

The format of the LevelImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
The image to auto-level
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

BrightnessContrastImage

+ +

BrightnessContrastImage() changes the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.

+ +

The format of the BrightnessContrastImage method is:

+ +
+MagickBooleanType BrightnessContrastImage(Image *image,
+  const double brightness,const double contrast,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
brightness
+
the brightness percent (-100 .. 100).
+ +
+
contrast
+
the contrast percent (-100 .. 100).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ClutImage

+ +

ClutImage() replaces each color value in the given image, by using it as an index to lookup a replacement color value in a Color Look UP Table in the form of an image. The values are extracted along a diagonal of the CLUT image so either a horizontal or vertial gradient image can be used.

+ +

Typically this is used to either re-color a gray-scale image according to a color gradient in the CLUT image, or to perform a freeform histogram (level) adjustment according to the (typically gray-scale) gradient in the CLUT image.

+ +

When the 'channel' mask includes the matte/alpha transparency channel but one image has no such channel it is assumed that that image is a simple gray-scale image that will effect the alpha channel values, either for gray-scale coloring (with transparent or semi-transparent colors), or a histogram adjustment of existing alpha channel values. If both images have matte channels, direct and normal indexing is applied, which is rarely used.

+ +

The format of the ClutImage method is:

+ +
+MagickBooleanType ClutImage(Image *image,Image *clut_image,
+  const PixelInterpolateMethod method,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image, which is replaced by indexed CLUT values
+ +
+
clut_image
+
the color lookup table image for replacement color values.
+ +
+
method
+
the pixel interpolation method.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ColorDecisionListImage

+ +

ColorDecisionListImage() accepts a lightweight Color Correction Collection (CCC) file which solely contains one or more color corrections and applies the correction to the image. Here is a sample CCC file:

+ +
+    <ColorCorrectionCollection xmlns="urn:ASC:CDL:v1.2">
+    <ColorCorrection id="cc03345">
+          <SOPNode>
+               <Slope> 0.9 1.2 0.5 </Slope>
+               <Offset> 0.4 -0.5 0.6 </Offset>
+               <Power> 1.0 0.8 1.5 </Power>
+          </SOPNode>
+          <SATNode>
+               <Saturation> 0.85 </Saturation>
+          </SATNode>
+    </ColorCorrection>
+    </ColorCorrectionCollection>
+
+ +

which includes the slop, offset, and power for each of the RGB channels as well as the saturation.

+ +

The format of the ColorDecisionListImage method is:

+ +
+MagickBooleanType ColorDecisionListImage(Image *image,
+  const char *color_correction_collection,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
color_correction_collection
+
the color correction collection in XML.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ContrastImage

+ +

ContrastImage() enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a MagickTrue to increase the image contrast otherwise the contrast is reduced.

+ +

The format of the ContrastImage method is:

+ +
+MagickBooleanType ContrastImage(Image *image,
+  const MagickBooleanType sharpen,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
sharpen
+
Increase or decrease image contrast.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ContrastStretchImage

+ +

ContrastStretchImage() is a simple image enhancement technique that attempts to improve the contrast in an image by 'stretching' the range of intensity values it contains to span a desired range of values. It differs from the more sophisticated histogram equalization in that it can only apply a linear scaling function to the image pixel values. As a result the 'enhancement' is less harsh.

+ +

The format of the ContrastStretchImage method is:

+ +
+MagickBooleanType ContrastStretchImage(Image *image,
+  const char *levels,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_point
+
the black point.
+ +
+
white_point
+
the white point.
+ +
+
levels
+
Specify the levels where the black and white points have the range of 0 to number-of-pixels (e.g. 1, 10x90, etc.).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

EnhanceImage

+ +

EnhanceImage() applies a digital filter that improves the quality of a noisy image.

+ +

The format of the EnhanceImage method is:

+ +
+Image *EnhanceImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

EqualizeImage

+ +

EqualizeImage() applies a histogram equalization to the image.

+ +

The format of the EqualizeImage method is:

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

A description of each parameter follows:

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

GammaImage

+ +

GammaImage() gamma-corrects a particular image channel. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the GammaImage method is:

+ +
+MagickBooleanType GammaImage(Image *image,const double gamma,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
level
+
the image gamma as a string (e.g. 1.6,1.2,1.0).
+ +
+
gamma
+
the image gamma.
+ +
+
+

GrayscaleImage

+ +

GrayscaleImage() converts the image to grayscale.

+ +

The format of the GrayscaleImage method is:

+ +
+MagickBooleanType GrayscaleImage(Image *image,
+  const PixelIntensityMethod method ,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

HaldClutImage

+ +

HaldClutImage() applies a Hald color lookup table to the image. A Hald color lookup table is a 3-dimensional color cube mapped to 2 dimensions. Create it with the HALD coder. You can apply any color transformation to the Hald image and then use this method to apply the transform to the image.

+ +

The format of the HaldClutImage method is:

+ +
+MagickBooleanType HaldClutImage(Image *image,Image *hald_image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image, which is replaced by indexed CLUT values
+ +
+
hald_image
+
the color lookup table image for replacement color values.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LevelImage

+ +

LevelImage() adjusts the levels of a particular image channel by scaling the colors falling between specified white and black points to the full available quantum range.

+ +

The parameters provided represent the black, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

+ +

If a '!' flag is given, map black and white colors to the given levels rather than mapping those levels to black and white. See LevelizeImage() below.

+ +

Gamma specifies a gamma correction to apply to the image.

+ +

The format of the LevelImage method is:

+ +
+MagickBooleanType LevelImage(Image *image,const double black_point,
+  const double white_point,const double gamma,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_point
+
The level to map zero (black) to.
+ +
+
white_point
+
The level to map QuantumRange (white) to.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LevelizeImage

+ +

LevelizeImage() applies the reversed LevelImage() operation to just the specific channels specified. It compresses the full range of color values, so that they lie between the given black and white points. Gamma is applied before the values are mapped.

+ +

LevelizeImage() can be called with by using a +level command line API option, or using a '!' on a -level or LevelImage() geometry string.

+ +

It can be used to de-contrast a greyscale image to the exact levels specified. Or by using specific levels for each channel of an image you can convert a gray-scale image to any linear color gradient, according to those levels.

+ +

The format of the LevelizeImage method is:

+ +
+MagickBooleanType LevelizeImage(Image *image,const double black_point,
+  const double white_point,const double gamma,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_point
+
The level to map zero (black) to.
+ +
+
white_point
+
The level to map QuantumRange (white) to.
+ +
+
gamma
+
adjust gamma by this factor before mapping values.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LevelImageColors

+ +

LevelImageColors() maps the given color to "black" and "white" values, linearly spreading out the colors, and level values on a channel by channel bases, as per LevelImage(). The given colors allows you to specify different level ranges for each of the color channels separately.

+ +

If the boolean 'invert' is set true the image values will modifyed in the reverse direction. That is any existing "black" and "white" colors in the image will become the color values given, with all other values compressed appropriatally. This effectivally maps a greyscale gradient into the given color gradient.

+ +

The format of the LevelImageColors method is:

+ +
+    MagickBooleanType LevelImageColors(Image *image,
+const PixelInfo *black_color,const PixelInfo *white_color,
+const MagickBooleanType invert,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_color
+
The color to map black to/from
+ +
+
white_point
+
The color to map white to/from
+ +
+
invert
+
if true map the colors (levelize), rather than from (level)
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LinearStretchImage

+ +

LinearStretchImage() discards any pixels below the black point and above the white point and levels the remaining pixels.

+ +

The format of the LinearStretchImage method is:

+ +
+MagickBooleanType LinearStretchImage(Image *image,
+  const double black_point,const double white_point,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_point
+
the black point.
+ +
+
white_point
+
the white point.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ModulateImage

+ +

ModulateImage() lets you control the brightness, saturation, and hue of an image. Modulate represents the brightness, saturation, and hue as one parameter (e.g. 90,150,100). If the image colorspace is HSL, the modulation is lightness, saturation, and hue. For HWB, use blackness, whiteness, and hue. And for HCL, use chrome, luma, and hue.

+ +

The format of the ModulateImage method is:

+ +
+MagickBooleanType ModulateImage(Image *image,const char *modulate,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
modulate
+
Define the percent change in brightness, saturation, and hue.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

NegateImage

+ +

NegateImage() negates the colors in the reference image. The grayscale option means that only grayscale values within the image are negated.

+ +

The format of the NegateImage method is:

+ +
+MagickBooleanType NegateImage(Image *image,
+  const MagickBooleanType grayscale,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
grayscale
+
If MagickTrue, only negate grayscale pixels within the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

The NormalizeImage

+ +

The NormalizeImage() method enhances the contrast of a color image by mapping the darkest 2 percent of all pixel to black and the brightest 1 percent to white.

+ +

The format of the NormalizeImage method is:

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

A description of each parameter follows:

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

SigmoidalContrastImage

+ +

SigmoidalContrastImage() adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to MagickTrue to increase the image contrast otherwise the contrast is reduced.

+ +

The format of the SigmoidalContrastImage method is:

+ +
+MagickBooleanType SigmoidalContrastImage(Image *image,
+  const MagickBooleanType sharpen,const char *levels,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
sharpen
+
Increase or decrease image contrast.
+ +
+
contrast
+
strength of the contrast, the larger the number the more 'threshold-like' it becomes.
+ +
+
midpoint
+
midpoint of the function as a color value 0 to QuantumRange.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/enhance.php b/share/doc/ImageMagick-7/www/api/enhance.php new file mode 100644 index 0000000..316224d --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/enhance.php @@ -0,0 +1,756 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Enhance an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AutoGammaImageAutoLevelImageBrightnessContrastImageClutImageColorDecisionListImageContrastImageContrastStretchImageEnhanceImageEqualizeImageGammaImageGrayscaleImageHaldClutImageLevelImageLevelizeImageLevelImageColorsLinearStretchImageModulateImageNegateImageThe NormalizeImageSigmoidalContrastImage

+ +

AutoGammaImage

+ +

AutoGammaImage() extract the 'mean' from the image and adjust the image to try make set its gamma appropriatally.

+ +

The format of the AutoGammaImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
The image to auto-level
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

AutoLevelImage

+ +

AutoLevelImage() adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

+ +

The format of the LevelImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
The image to auto-level
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

BrightnessContrastImage

+ +

BrightnessContrastImage() changes the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.

+ +

The format of the BrightnessContrastImage method is:

+ +
+MagickBooleanType BrightnessContrastImage(Image *image,
+  const double brightness,const double contrast,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
brightness
+
the brightness percent (-100 .. 100).
+ +
+
contrast
+
the contrast percent (-100 .. 100).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ClutImage

+ +

ClutImage() replaces each color value in the given image, by using it as an index to lookup a replacement color value in a Color Look UP Table in the form of an image. The values are extracted along a diagonal of the CLUT image so either a horizontal or vertial gradient image can be used.

+ +

Typically this is used to either re-color a gray-scale image according to a color gradient in the CLUT image, or to perform a freeform histogram (level) adjustment according to the (typically gray-scale) gradient in the CLUT image.

+ +

When the 'channel' mask includes the matte/alpha transparency channel but one image has no such channel it is assumed that that image is a simple gray-scale image that will effect the alpha channel values, either for gray-scale coloring (with transparent or semi-transparent colors), or a histogram adjustment of existing alpha channel values. If both images have matte channels, direct and normal indexing is applied, which is rarely used.

+ +

The format of the ClutImage method is:

+ +
+MagickBooleanType ClutImage(Image *image,Image *clut_image,
+  const PixelInterpolateMethod method,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image, which is replaced by indexed CLUT values
+ +
+
clut_image
+
the color lookup table image for replacement color values.
+ +
+
method
+
the pixel interpolation method.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ColorDecisionListImage

+ +

ColorDecisionListImage() accepts a lightweight Color Correction Collection (CCC) file which solely contains one or more color corrections and applies the correction to the image. Here is a sample CCC file:

+ +
+    <ColorCorrectionCollection xmlns="urn:ASC:CDL:v1.2">
+    <ColorCorrection id="cc03345">
+          <SOPNode>
+               <Slope> 0.9 1.2 0.5 </Slope>
+               <Offset> 0.4 -0.5 0.6 </Offset>
+               <Power> 1.0 0.8 1.5 </Power>
+          </SOPNode>
+          <SATNode>
+               <Saturation> 0.85 </Saturation>
+          </SATNode>
+    </ColorCorrection>
+    </ColorCorrectionCollection>
+
+ +

which includes the slop, offset, and power for each of the RGB channels as well as the saturation.

+ +

The format of the ColorDecisionListImage method is:

+ +
+MagickBooleanType ColorDecisionListImage(Image *image,
+  const char *color_correction_collection,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
color_correction_collection
+
the color correction collection in XML.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ContrastImage

+ +

ContrastImage() enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a MagickTrue to increase the image contrast otherwise the contrast is reduced.

+ +

The format of the ContrastImage method is:

+ +
+MagickBooleanType ContrastImage(Image *image,
+  const MagickBooleanType sharpen,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
sharpen
+
Increase or decrease image contrast.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ContrastStretchImage

+ +

ContrastStretchImage() is a simple image enhancement technique that attempts to improve the contrast in an image by 'stretching' the range of intensity values it contains to span a desired range of values. It differs from the more sophisticated histogram equalization in that it can only apply a linear scaling function to the image pixel values. As a result the 'enhancement' is less harsh.

+ +

The format of the ContrastStretchImage method is:

+ +
+MagickBooleanType ContrastStretchImage(Image *image,
+  const char *levels,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_point
+
the black point.
+ +
+
white_point
+
the white point.
+ +
+
levels
+
Specify the levels where the black and white points have the range of 0 to number-of-pixels (e.g. 1, 10x90, etc.).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

EnhanceImage

+ +

EnhanceImage() applies a digital filter that improves the quality of a noisy image.

+ +

The format of the EnhanceImage method is:

+ +
+Image *EnhanceImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

EqualizeImage

+ +

EqualizeImage() applies a histogram equalization to the image.

+ +

The format of the EqualizeImage method is:

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

A description of each parameter follows:

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

GammaImage

+ +

GammaImage() gamma-corrects a particular image channel. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the GammaImage method is:

+ +
+MagickBooleanType GammaImage(Image *image,const double gamma,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
level
+
the image gamma as a string (e.g. 1.6,1.2,1.0).
+ +
+
gamma
+
the image gamma.
+ +
+
+

GrayscaleImage

+ +

GrayscaleImage() converts the image to grayscale.

+ +

The format of the GrayscaleImage method is:

+ +
+MagickBooleanType GrayscaleImage(Image *image,
+  const PixelIntensityMethod method ,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

HaldClutImage

+ +

HaldClutImage() applies a Hald color lookup table to the image. A Hald color lookup table is a 3-dimensional color cube mapped to 2 dimensions. Create it with the HALD coder. You can apply any color transformation to the Hald image and then use this method to apply the transform to the image.

+ +

The format of the HaldClutImage method is:

+ +
+MagickBooleanType HaldClutImage(Image *image,Image *hald_image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image, which is replaced by indexed CLUT values
+ +
+
hald_image
+
the color lookup table image for replacement color values.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LevelImage

+ +

LevelImage() adjusts the levels of a particular image channel by scaling the colors falling between specified white and black points to the full available quantum range.

+ +

The parameters provided represent the black, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

+ +

If a '!' flag is given, map black and white colors to the given levels rather than mapping those levels to black and white. See LevelizeImage() below.

+ +

Gamma specifies a gamma correction to apply to the image.

+ +

The format of the LevelImage method is:

+ +
+MagickBooleanType LevelImage(Image *image,const double black_point,
+  const double white_point,const double gamma,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_point
+
The level to map zero (black) to.
+ +
+
white_point
+
The level to map QuantumRange (white) to.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LevelizeImage

+ +

LevelizeImage() applies the reversed LevelImage() operation to just the specific channels specified. It compresses the full range of color values, so that they lie between the given black and white points. Gamma is applied before the values are mapped.

+ +

LevelizeImage() can be called with by using a +level command line API option, or using a '!' on a -level or LevelImage() geometry string.

+ +

It can be used to de-contrast a greyscale image to the exact levels specified. Or by using specific levels for each channel of an image you can convert a gray-scale image to any linear color gradient, according to those levels.

+ +

The format of the LevelizeImage method is:

+ +
+MagickBooleanType LevelizeImage(Image *image,const double black_point,
+  const double white_point,const double gamma,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_point
+
The level to map zero (black) to.
+ +
+
white_point
+
The level to map QuantumRange (white) to.
+ +
+
gamma
+
adjust gamma by this factor before mapping values.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LevelImageColors

+ +

LevelImageColors() maps the given color to "black" and "white" values, linearly spreading out the colors, and level values on a channel by channel bases, as per LevelImage(). The given colors allows you to specify different level ranges for each of the color channels separately.

+ +

If the boolean 'invert' is set true the image values will modifyed in the reverse direction. That is any existing "black" and "white" colors in the image will become the color values given, with all other values compressed appropriatally. This effectivally maps a greyscale gradient into the given color gradient.

+ +

The format of the LevelImageColors method is:

+ +
+    MagickBooleanType LevelImageColors(Image *image,
+const PixelInfo *black_color,const PixelInfo *white_color,
+const MagickBooleanType invert,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_color
+
The color to map black to/from
+ +
+
white_point
+
The color to map white to/from
+ +
+
invert
+
if true map the colors (levelize), rather than from (level)
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LinearStretchImage

+ +

LinearStretchImage() discards any pixels below the black point and above the white point and levels the remaining pixels.

+ +

The format of the LinearStretchImage method is:

+ +
+MagickBooleanType LinearStretchImage(Image *image,
+  const double black_point,const double white_point,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
black_point
+
the black point.
+ +
+
white_point
+
the white point.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ModulateImage

+ +

ModulateImage() lets you control the brightness, saturation, and hue of an image. Modulate represents the brightness, saturation, and hue as one parameter (e.g. 90,150,100). If the image colorspace is HSL, the modulation is lightness, saturation, and hue. For HWB, use blackness, whiteness, and hue. And for HCL, use chrome, luma, and hue.

+ +

The format of the ModulateImage method is:

+ +
+MagickBooleanType ModulateImage(Image *image,const char *modulate,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
modulate
+
Define the percent change in brightness, saturation, and hue.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

NegateImage

+ +

NegateImage() negates the colors in the reference image. The grayscale option means that only grayscale values within the image are negated.

+ +

The format of the NegateImage method is:

+ +
+MagickBooleanType NegateImage(Image *image,
+  const MagickBooleanType grayscale,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
grayscale
+
If MagickTrue, only negate grayscale pixels within the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

The NormalizeImage

+ +

The NormalizeImage() method enhances the contrast of a color image by mapping the darkest 2 percent of all pixel to black and the brightest 1 percent to white.

+ +

The format of the NormalizeImage method is:

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

A description of each parameter follows:

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

SigmoidalContrastImage

+ +

SigmoidalContrastImage() adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to MagickTrue to increase the image contrast otherwise the contrast is reduced.

+ +

The format of the SigmoidalContrastImage method is:

+ +
+MagickBooleanType SigmoidalContrastImage(Image *image,
+  const MagickBooleanType sharpen,const char *levels,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
sharpen
+
Increase or decrease image contrast.
+ +
+
contrast
+
strength of the contrast, the larger the number the more 'threshold-like' it becomes.
+ +
+
midpoint
+
midpoint of the function as a color value 0 to QuantumRange.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/exception.html b/share/doc/ImageMagick-7/www/api/exception.html new file mode 100644 index 0000000..0401672 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/exception.html @@ -0,0 +1,499 @@ + + + + + + + + + + MagickCore, C API: Dealing with Exceptions @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireExceptionInfoClearMagickExceptionCatchExceptionCloneExceptionInfoDestroyExceptionInfoGetExceptionMessageGetLocaleExceptionMessageInheritExceptionInitializeExceptionInfoMagickErrorMagickFatalErrorMagickWarningSetErrorHandlerSetFatalErrorHandlerSetWarningHandlerThrowException

+ +

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.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/exception.php b/share/doc/ImageMagick-7/www/api/exception.php new file mode 100644 index 0000000..ebc302a --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/exception.php @@ -0,0 +1,465 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Dealing with Exceptions + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AcquireExceptionInfoClearMagickExceptionCatchExceptionCloneExceptionInfoDestroyExceptionInfoGetExceptionMessageGetLocaleExceptionMessageInheritExceptionInitializeExceptionInfoMagickErrorMagickFatalErrorMagickWarningSetErrorHandlerSetFatalErrorHandlerSetWarningHandlerThrowException

+ +

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.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/feature.html b/share/doc/ImageMagick-7/www/api/feature.html new file mode 100644 index 0000000..27af7ca --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/feature.html @@ -0,0 +1,261 @@ + + + + + + + + + + MagickCore, C API: Image Features @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

CannyEdgeImageGetImageFeaturesUse HoughLineImageMeanShiftImage

+ +

CannyEdgeImage

+ +

CannyEdgeImage() uses a multi-stage algorithm to detect a wide range of edges in images.

+ +

The format of the CannyEdgeImage method is:

+ +
+Image *CannyEdgeImage(const Image *image,const double radius,
+  const double sigma,const double lower_percent,
+  const double upper_percent,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
radius
+
the radius of the gaussian smoothing filter.
+ +
+
sigma
+
the sigma of the gaussian smoothing filter.
+ +
+
lower_percent
+
percentage of edge pixels in the lower threshold.
+ +
+
upper_percent
+
percentage of edge pixels in the upper threshold.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageFeatures

+ +

GetImageFeatures() returns features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance. The features include the angular second moment, contrast, correlation, sum of squares: variance, inverse difference moment, sum average, sum varience, sum entropy, entropy, difference variance, difference entropy, information measures of correlation 1, information measures of correlation 2, and maximum correlation coefficient. You can access the red channel contrast, for example, like this:

+ +
+channel_features=GetImageFeatures(image,1,exception);
+contrast=channel_features[RedPixelChannel].contrast[0];
+
+ +

Use MagickRelinquishMemory() to free the features buffer.

+ +

The format of the GetImageFeatures method is:

+ +
+ChannelFeatures *GetImageFeatures(const Image *image,
+  const size_t distance,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

Use HoughLineImage

+ +

Use HoughLineImage() in conjunction with any binary edge extracted image (we recommand Canny) to identify lines in the image. The algorithm accumulates counts for every white pixel for every possible orientation (for angles from 0 to 179 in 1 degree increments) and distance from the center of the image to the corner (in 1 px increments) and stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator is 180x(diagonal/2). Next it searches this space for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. Use the slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are then drawn. The counts are a measure of the length of the lines

+ +

The format of the HoughLineImage method is:

+ +
+Image *HoughLineImage(const Image *image,const size_t width,
+  const size_t height,const size_t threshold,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
width, height
+
find line pairs as local maxima in this neighborhood.
+ +
+
threshold
+
the line count threshold.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

MeanShiftImage

+ +

MeanShiftImage() delineate arbitrarily shaped clusters in the image. For each pixel, it visits all the pixels in the neighborhood specified by the window centered at the pixel and excludes those that are outside the radius=(window-1)/2 surrounding the pixel. From those pixels, it finds those that are within the specified color distance from the current mean, and computes a new x,y centroid from those coordinates and a new mean. This new x,y centroid is used as the center for a new window. This process iterates until it converges and the final mean is replaces the (original window center) pixel value. It repeats this process for the next pixel, etc., until it processes all pixels in the image. Results are typically better with colorspaces other than sRGB. We recommend YIQ, YUV or YCbCr.

+ +

The format of the MeanShiftImage method is:

+ +
+Image *MeanShiftImage(const Image *image,const size_t width,
+  const size_t height,const double color_distance,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
width, height
+
find pixels in this neighborhood.
+ +
+
color_distance
+
the color distance.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + diff --git a/share/doc/ImageMagick-7/www/api/feature.php b/share/doc/ImageMagick-7/www/api/feature.php new file mode 100644 index 0000000..923cc0a --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/feature.php @@ -0,0 +1,228 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Image Features + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

CannyEdgeImageGetImageFeaturesUse HoughLineImageMeanShiftImage

+ +

CannyEdgeImage

+ +

CannyEdgeImage() uses a multi-stage algorithm to detect a wide range of edges in images.

+ +

The format of the CannyEdgeImage method is:

+ +
+Image *CannyEdgeImage(const Image *image,const double radius,
+  const double sigma,const double lower_percent,
+  const double upper_percent,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
radius
+
the radius of the gaussian smoothing filter.
+ +
+
sigma
+
the sigma of the gaussian smoothing filter.
+ +
+
lower_precent
+
percentage of edge pixels in the lower threshold.
+ +
+
upper_percent
+
percentage of edge pixels in the upper threshold.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageFeatures

+ +

GetImageFeatures() returns features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance. The features include the angular second moment, contrast, correlation, sum of squares: variance, inverse difference moment, sum average, sum varience, sum entropy, entropy, difference variance, difference entropy, information measures of correlation 1, information measures of correlation 2, and maximum correlation coefficient. You can access the red channel contrast, for example, like this:

+ +
+channel_features=GetImageFeatures(image,1,exception);
+contrast=channel_features[RedPixelChannel].contrast[0];
+
+ +

Use MagickRelinquishMemory() to free the features buffer.

+ +

The format of the GetImageFeatures method is:

+ +
+ChannelFeatures *GetImageFeatures(const Image *image,
+  const size_t distance,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

Use HoughLineImage

+ +

Use HoughLineImage() in conjunction with any binary edge extracted image (we recommand Canny) to identify lines in the image. The algorithm accumulates counts for every white pixel for every possible orientation (for angles from 0 to 179 in 1 degree increments) and distance from the center of the image to the corner (in 1 px increments) and stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator is 180x(diagonal/2). Next it searches this space for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. Use the slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are then drawn. The counts are a measure of the length of the lines

+ +

The format of the HoughLineImage method is:

+ +
+Image *HoughLineImage(const Image *image,const size_t width,
+  const size_t height,const size_t threshold,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
width, height
+
find line pairs as local maxima in this neighborhood.
+ +
+
threshold
+
the line count threshold.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

MeanShiftImage

+ +

MeanShiftImage() delineate arbitrarily shaped clusters in the image. For each pixel, it visits all the pixels in the neighborhood specified by the window centered at the pixel and excludes those that are outside the radius=(window-1)/2 surrounding the pixel. From those pixels, it finds those that are within the specified color distance from the current mean, and computes a new x,y centroid from those coordinates and a new mean. This new x,y centroid is used as the center for a new window. This process iterates until it converges and the final mean is replaces the (original window center) pixel value. It repeats this process for the next pixel, etc., until it processes all pixels in the image. Results are typically better with colorspaces other than sRGB. We recommend YIQ, YUV or YCbCr.

+ +

The format of the MeanShiftImage method is:

+ +
+Image *MeanShiftImage(const Image *image,const size_t width,
+  const size_t height,const double color_distance,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
width, height
+
find pixels in this neighborhood.
+ +
+
color_distance
+
the color distance.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/fourier.html b/share/doc/ImageMagick-7/www/api/fourier.html new file mode 100644 index 0000000..df01c92 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/fourier.html @@ -0,0 +1,207 @@ + + + + + + + + + + MagickCore, C API: Fourier Transform @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

ComplexImagesForwardFourierTransformImageInverseFourierTransformImage

+ +

ComplexImages

+ +

ComplexImages() performs complex mathematics on an image sequence.

+ +

The format of the ComplexImages method is:

+ +
+MagickBooleanType ComplexImages(Image *images,const ComplexOperator op,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
op
+
A complex operator.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ForwardFourierTransformImage

+ +

ForwardFourierTransformImage() implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

+ +

The format of the ForwadFourierTransformImage method is:

+ +
+Image *ForwardFourierTransformImage(const Image *image,
+  const MagickBooleanType modulus,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
modulus
+
if true, return as transform as a magnitude / phase pair otherwise a real / imaginary image pair.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

InverseFourierTransformImage

+ +

InverseFourierTransformImage() implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

+ +

The format of the InverseFourierTransformImage method is:

+ +
+Image *InverseFourierTransformImage(const Image *magnitude_image,
+  const Image *phase_image,const MagickBooleanType modulus,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
magnitude_image
+
the magnitude or real image.
+ +
+
phase_image
+
the phase or imaginary image.
+ +
+
modulus
+
if true, return transform as a magnitude / phase pair otherwise a real / imaginary image pair.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/fourier.php b/share/doc/ImageMagick-7/www/api/fourier.php new file mode 100644 index 0000000..56d83af --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/fourier.php @@ -0,0 +1,173 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Fourier Transform + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

ComplexImagesForwardFourierTransformImageInverseFourierTransformImage

+ +

ComplexImages

+ +

ComplexImages() performs complex mathematics on an image sequence.

+ +

The format of the ComplexImages method is:

+ +
+MagickBooleanType ComplexImages(Image *images,const ComplexOperator op,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

ForwardFourierTransformImage

+ +

ForwardFourierTransformImage() implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

+ +

The format of the ForwadFourierTransformImage method is:

+ +
+Image *ForwardFourierTransformImage(const Image *image,
+  const MagickBooleanType modulus,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
modulus
+
if true, return as transform as a magnitude / phase pair otherwise a real / imaginary image pair.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

InverseFourierTransformImage

+ +

InverseFourierTransformImage() implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

+ +

The format of the InverseFourierTransformImage method is:

+ +
+Image *InverseFourierTransformImage(const Image *magnitude_image,
+  const Image *phase_image,const MagickBooleanType modulus,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
magnitude_image
+
the magnitude or real image.
+ +
+
phase_image
+
the phase or imaginary image.
+ +
+
modulus
+
if true, return transform as a magnitude / phase pair otherwise a real / imaginary image pair.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/fx.html b/share/doc/ImageMagick-7/www/api/fx.html new file mode 100644 index 0000000..a8705b7 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/fx.html @@ -0,0 +1,865 @@ + + + + + + + + + + MagickCore, C API: Add a Special Effect @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AddNoiseImageBlueShiftImageCharcoalImageColorizeImageColorMatrixImageFxImageImplodeImageThe MorphImagesPlasmaImagePolaroidImageMagickSepiaToneImageShadowImageSketchImageSolarizeImageSteganoImageStereoAnaglyphImageSwirlImageTintImageVignetteImageWaveImageWaveletDenoiseImage

+ +

AddNoiseImage

+ +

AddNoiseImage() adds random noise to the image.

+ +

The format of the AddNoiseImage method is:

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

A description of each parameter follows:

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

BlueShiftImage

+ +

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

+ +

The format of the BlueShiftImage method is:

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

A description of each parameter follows:

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

CharcoalImage

+ +

CharcoalImage() creates a new image that is a copy of an existing one with the edge highlighted. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the CharcoalImage method is:

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

A description of each parameter follows:

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

ColorizeImage

+ +

ColorizeImage() blends the fill color with each pixel in the image. A percentage blend is specified with opacity. Control the application of different color components by specifying a different percentage for each component (e.g. 90/100/10 is 90 red, 100 green, and 10 blue).

+ +

The format of the ColorizeImage method is:

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

A description of each parameter follows:

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

ColorMatrixImage

+ +

ColorMatrixImage() applies color transformation to an image. This method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255).

+ +

The format of the ColorMatrixImage method is:

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

A description of each parameter follows:

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

FxImage

+ +

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

+ +

The format of the FxImage method is:

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

A description of each parameter follows:

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

ImplodeImage

+ +

ImplodeImage() creates a new image that is a copy of an existing one with the image pixels "implode" by the specified percentage. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the ImplodeImage method is:

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

A description of each parameter follows:

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

The MorphImages

+ +

The MorphImages() method requires a minimum of two images. The first image is transformed into the second by a number of intervening images as specified by frames.

+ +

The format of the MorphImage method is:

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

A description of each parameter follows:

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

PlasmaImage

+ +

PlasmaImage() initializes an image with plasma fractal values. The image must be initialized with a base color and the random number generator seeded before this method is called.

+ +

The format of the PlasmaImage method is:

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

A description of each parameter follows:

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

PolaroidImage

+ +

PolaroidImage() simulates a Polaroid picture.

+ +

The format of the PolaroidImage method is:

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

A description of each parameter follows:

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

MagickSepiaToneImage

+ +

MagickSepiaToneImage() applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the sepia toning. A threshold of 80 is a good starting point for a reasonable tone.

+ +

The format of the SepiaToneImage method is:

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

A description of each parameter follows:

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

ShadowImage

+ +

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

+ +

The format of the ShadowImage method is:

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

A description of each parameter follows:

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

SketchImage

+ +

SketchImage() simulates a pencil sketch. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and SketchImage() selects a suitable radius for you. Angle gives the angle of the sketch.

+ +

The format of the SketchImage method is:

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

A description of each parameter follows:

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

SolarizeImage

+ +

SolarizeImage() applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

+ +

The format of the SolarizeImage method is:

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

A description of each parameter follows:

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

SteganoImage

+ +

SteganoImage() hides a digital watermark within the image. Recover the hidden watermark later to prove that the authenticity of an image. Offset defines the start position within the image to hide the watermark.

+ +

The format of the SteganoImage method is:

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

A description of each parameter follows:

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

StereoAnaglyphImage

+ +

StereoAnaglyphImage() combines two images and produces a single image that is the composite of a left and right image of a stereo pair. Special red-green stereo glasses are required to view this effect.

+ +

The format of the StereoAnaglyphImage method is:

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

A description of each parameter follows:

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

SwirlImage

+ +

SwirlImage() swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

+ +

The format of the SwirlImage method is:

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

A description of each parameter follows:

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

TintImage

+ +

TintImage() applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighting function is f(x)=(1-(4.0*((x-0.5)*(x-0.5))))

+ +

The format of the TintImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
blend
+
A color value used for tinting.
+ +
+
tint
+
A color value used for tinting.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

VignetteImage

+ +

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

+ +

The format of the VignetteImage method is:

+ +
+Image *VignetteImage(const Image *image,const double radius,
+  const double sigma,const ssize_t x,const ssize_t y,
+  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.
+ +
+
x, y
+
Define the x and y ellipse offset.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

WaveImage

+ +

WaveImage() creates a "ripple" effect in the image by shifting the pixels vertically along a sine wave whose amplitude and wavelength is specified by the given parameters.

+ +

The format of the WaveImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
amplitude, wave_length
+
Define the amplitude and wave length of the sine wave.
+ +
+
interpolate
+
the pixel interpolation method.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

WaveletDenoiseImage

+ +

WaveletDenoiseImage() removes noise from the image using a wavelet transform. The wavelet transform is a fast hierarchical scheme for processing an image using a set of consecutive lowpass and high_pass filters, followed by a decimation. This results in a decomposition into different scales which can be regarded as different “frequency bandsâ€, determined by the mother wavelet. Adapted from dcraw.c by David Coffin.

+ +

The format of the WaveletDenoiseImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
threshold
+
set the threshold for smoothing.
+ +
+
softness
+
attenuate the smoothing threshold.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/fx.php b/share/doc/ImageMagick-7/www/api/fx.php new file mode 100644 index 0000000..875a60e --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/fx.php @@ -0,0 +1,796 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Add a Special Effect + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AddNoiseImageBlueShiftImageCharcoalImageColorizeImageColorMatrixImageFxImageImplodeImageThe MorphImagesPlasmaImagePolaroidImageMagickSepiaToneImageShadowImageSketchImageSolarizeImageSteganoImageStereoAnaglyphImageSwirlImageTintImageVignetteImageWaveImage

+ +

AddNoiseImage

+ +

AddNoiseImage() adds random noise to the image.

+ +

The format of the AddNoiseImage method is:

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

A description of each parameter follows:

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

BlueShiftImage

+ +

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

+ +

The format of the BlueShiftImage method is:

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

A description of each parameter follows:

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

CharcoalImage

+ +

CharcoalImage() creates a new image that is a copy of an existing one with the edge highlighted. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the CharcoalImage method is:

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

A description of each parameter follows:

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

ColorizeImage

+ +

ColorizeImage() blends the fill color with each pixel in the image. A percentage blend is specified with opacity. Control the application of different color components by specifying a different percentage for each component (e.g. 90/100/10 is 90 red, 100 green, and 10 blue).

+ +

The format of the ColorizeImage method is:

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

A description of each parameter follows:

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

ColorMatrixImage

+ +

ColorMatrixImage() applies color transformation to an image. This method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255).

+ +

The format of the ColorMatrixImage method is:

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

A description of each parameter follows:

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

FxImage

+ +

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

+ +

The format of the FxImage method is:

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

A description of each parameter follows:

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

ImplodeImage

+ +

ImplodeImage() creates a new image that is a copy of an existing one with the image pixels "implode" by the specified percentage. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the ImplodeImage method is:

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

A description of each parameter follows:

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

The MorphImages

+ +

The MorphImages() method requires a minimum of two images. The first image is transformed into the second by a number of intervening images as specified by frames.

+ +

The format of the MorphImage method is:

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

A description of each parameter follows:

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

PlasmaImage

+ +

PlasmaImage() initializes an image with plasma fractal values. The image must be initialized with a base color and the random number generator seeded before this method is called.

+ +

The format of the PlasmaImage method is:

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

A description of each parameter follows:

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

PolaroidImage

+ +

PolaroidImage() simulates a Polaroid picture.

+ +

The format of the PolaroidImage method is:

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

A description of each parameter follows:

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

MagickSepiaToneImage

+ +

MagickSepiaToneImage() applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the sepia toning. A threshold of 80 is a good starting point for a reasonable tone.

+ +

The format of the SepiaToneImage method is:

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

A description of each parameter follows:

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

ShadowImage

+ +

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

+ +

The format of the ShadowImage method is:

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

A description of each parameter follows:

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

SketchImage

+ +

SketchImage() simulates a pencil sketch. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and SketchImage() selects a suitable radius for you. Angle gives the angle of the sketch.

+ +

The format of the SketchImage method is:

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

A description of each parameter follows:

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

SolarizeImage

+ +

SolarizeImage() applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

+ +

The format of the SolarizeImage method is:

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

A description of each parameter follows:

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

SteganoImage

+ +

SteganoImage() hides a digital watermark within the image. Recover the hidden watermark later to prove that the authenticity of an image. Offset defines the start position within the image to hide the watermark.

+ +

The format of the SteganoImage method is:

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

A description of each parameter follows:

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

StereoAnaglyphImage

+ +

StereoAnaglyphImage() combines two images and produces a single image that is the composite of a left and right image of a stereo pair. Special red-green stereo glasses are required to view this effect.

+ +

The format of the StereoAnaglyphImage method is:

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

A description of each parameter follows:

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

SwirlImage

+ +

SwirlImage() swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

+ +

The format of the SwirlImage method is:

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

A description of each parameter follows:

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

TintImage

+ +

TintImage() applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighting function is f(x)=(1-(4.0*((x-0.5)*(x-0.5))))

+ +

The format of the TintImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
blend
+
A color value used for tinting.
+ +
+
tint
+
A color value used for tinting.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

VignetteImage

+ +

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

+ +

The format of the VignetteImage method is:

+ +
+Image *VignetteImage(const Image *image,const double radius,
+  const double sigma,const ssize_t x,const ssize_t y,
+  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.
+ +
+
x, y
+
Define the x and y ellipse offset.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

WaveImage

+ +

WaveImage() creates a "ripple" effect in the image by shifting the pixels vertically along a sine wave whose amplitude and wavelength is specified by the given parameters.

+ +

The format of the WaveImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
amplitude, wave_length
+
Define the amplitude and wave length of the sine wave.
+ +
+
interpolate
+
the pixel interpolation method.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/histogram.html b/share/doc/ImageMagick-7/www/api/histogram.html new file mode 100644 index 0000000..1493d8e --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/histogram.html @@ -0,0 +1,267 @@ + + + + + + + + + + MagickCore, C API: Image Histograms @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

GetImageHistogramIdentifyPaletteImageIsHistogramImageIsPaletteImageMinMaxStretchImageGetNumberColorsUniqueImageColors

+ +

GetImageHistogram

+ +

GetImageHistogram() returns the unique colors in an image.

+ +

The format of the GetImageHistogram method is:

+ +
+size_t GetImageHistogram(const Image *image,
+  size_t *number_colors,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
file
+

Write a histogram of the color distribution to this file handle.

+ +
exception
+

return any errors or warnings in this structure.

+ +

IdentifyPaletteImage

+ +

IdentifyPaletteImage() returns MagickTrue if the image has 256 unique colors or less.

+ +

The format of the IdentifyPaletteImage method is:

+ +
+MagickBooleanType IdentifyPaletteImage(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

IsHistogramImage

+ +

IsHistogramImage() returns MagickTrue if the image has 1024 unique colors or less.

+ +

The format of the IsHistogramImage method is:

+ +
+MagickBooleanType IsHistogramImage(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

IsPaletteImage

+ +

IsPaletteImage() returns MagickTrue if the image is PseudoClass and has 256 unique colors or less.

+ +

The format of the IsPaletteImage method is:

+ +
+MagickBooleanType IsPaletteImage(const Image *image)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +

MinMaxStretchImage

+ +

MinMaxStretchImage() uses the exact minimum and maximum values found in each of the channels given, as the BlackPoint and WhitePoint to linearly stretch the colors (and histogram) of the image. The stretch points are also moved further inward by the adjustment values given.

+ +

If the adjustment values are both zero this function is equivalent to a perfect normalization (or autolevel) of the image.

+ +

Each channel is stretched independantally of each other (producing color distortion) unless the special 'SyncChannels' flag is also provided in the channels setting. If this flag is present the minimum and maximum point will be extracted from all the given channels, and those channels will be stretched by exactly the same amount (preventing color distortion).

+ +

In the special case that only ONE value is found in a channel of the image that value is not stretched, that value is left as is.

+ +

The 'SyncChannels' is turned on in the 'DefaultChannels' setting by default.

+ +

The format of the MinMaxStretchImage method is:

+ +
+MagickBooleanType MinMaxStretchImage(Image *image,const double black,
+  const double white,const double gamma,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
The image to auto-level
+ +
+
black, white
+
move the black / white point inward from the minimum and maximum points by this color value.
+ +
+
gamma
+
the gamma.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetNumberColors

+ +

GetNumberColors() returns the number of unique colors in an image.

+ +

The format of the GetNumberColors method is:

+ +
+size_t GetNumberColors(const Image *image,FILE *file,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
file
+

Write a histogram of the color distribution to this file handle.

+ +
exception
+

return any errors or warnings in this structure.

+ +

UniqueImageColors

+ +

UniqueImageColors() returns the unique colors of an image.

+ +

The format of the UniqueImageColors method is:

+ +
+Image *UniqueImageColors(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/histogram.php b/share/doc/ImageMagick-7/www/api/histogram.php new file mode 100644 index 0000000..8b12adb --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/histogram.php @@ -0,0 +1,233 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Image Histograms + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

GetImageHistogramIdentifyPaletteImageIsHistogramImageIsPaletteImageMinMaxStretchImageGetNumberColorsUniqueImageColors

+ +

GetImageHistogram

+ +

GetImageHistogram() returns the unique colors in an image.

+ +

The format of the GetImageHistogram method is:

+ +
+size_t GetImageHistogram(const Image *image,
+  size_t *number_colors,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
file
+

Write a histogram of the color distribution to this file handle.

+ +
exception
+

return any errors or warnings in this structure.

+ +

IdentifyPaletteImage

+ +

IdentifyPaletteImage() returns MagickTrue if the image has 256 unique colors or less.

+ +

The format of the IdentifyPaletteImage method is:

+ +
+MagickBooleanType IdentifyPaletteImage(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

IsHistogramImage

+ +

IsHistogramImage() returns MagickTrue if the image has 1024 unique colors or less.

+ +

The format of the IsHistogramImage method is:

+ +
+MagickBooleanType IsHistogramImage(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

IsPaletteImage

+ +

IsPaletteImage() returns MagickTrue if the image is PseudoClass and has 256 unique colors or less.

+ +

The format of the IsPaletteImage method is:

+ +
+MagickBooleanType IsPaletteImage(const Image *image)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +

MinMaxStretchImage

+ +

MinMaxStretchImage() uses the exact minimum and maximum values found in each of the channels given, as the BlackPoint and WhitePoint to linearly stretch the colors (and histogram) of the image. The stretch points are also moved further inward by the adjustment values given.

+ +

If the adjustment values are both zero this function is equivalent to a perfect normalization (or autolevel) of the image.

+ +

Each channel is stretched independantally of each other (producing color distortion) unless the special 'SyncChannels' flag is also provided in the channels setting. If this flag is present the minimum and maximum point will be extracted from all the given channels, and those channels will be stretched by exactly the same amount (preventing color distortion).

+ +

In the special case that only ONE value is found in a channel of the image that value is not stretched, that value is left as is.

+ +

The 'SyncChannels' is turned on in the 'DefaultChannels' setting by default.

+ +

The format of the MinMaxStretchImage method is:

+ +
+MagickBooleanType MinMaxStretchImage(Image *image,const double black,
+  const double white,const double gamma,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
The image to auto-level
+ +
+
black, white
+
move the black / white point inward from the minimum and maximum points by this color value.
+ +
+
gamma
+
the gamma.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetNumberColors

+ +

GetNumberColors() returns the number of unique colors in an image.

+ +

The format of the GetNumberColors method is:

+ +
+size_t GetNumberColors(const Image *image,FILE *file,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
file
+

Write a histogram of the color distribution to this file handle.

+ +
exception
+

return any errors or warnings in this structure.

+ +

UniqueImageColors

+ +

UniqueImageColors() returns the unique colors of an image.

+ +

The format of the UniqueImageColors method is:

+ +
+Image *UniqueImageColors(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/image-view.html b/share/doc/ImageMagick-7/www/api/image-view.html new file mode 100644 index 0000000..0b51906 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/image-view.html @@ -0,0 +1,666 @@ + + + + + + + + + + MagickCore, C API: Image View Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

CloneImageViewDestroyImageViewDuplexTransferImageViewIteratorGetImageViewAuthenticMetacontentGetImageViewAuthenticPixelsGetImageViewExceptionGetImageViewExtentGetImageViewImageGetImageViewIteratorGetImageViewVirtualMetacontentGetImageViewVirtualPixelsIsImageViewNewImageViewNewImageViewRegionSetImageViewDescriptionSetImageViewIteratorTransferImageViewIteratorUpdateImageViewIterator

+ +

CloneImageView

+ +

CloneImageView() makes a copy of the specified image view.

+ +

The format of the CloneImageView method is:

+ +
+ImageView *CloneImageView(const ImageView *image_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
+

DestroyImageView

+ +

DestroyImageView() deallocates memory associated with a image view.

+ +

The format of the DestroyImageView method is:

+ +
+ImageView *DestroyImageView(ImageView *image_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
+

DuplexTransferImageViewIterator

+ +

DuplexTransferImageViewIterator() iterates over three image views in parallel and calls your transfer method for each scanline of the view. The source and duplex pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination image view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

+ +

The callback signature is:

+ +
+MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source,
+  const ImageView *duplex,ImageView *destination,const ssize_t y,
+  const int thread_id,void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback transfer method that must be executed by a single thread at a time.

+ +

The format of the DuplexTransferImageViewIterator method is:

+ +
+MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
+  ImageView *duplex,ImageView *destination,
+  DuplexTransferImageViewMethod transfer,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
source
+
the source image view.
+ +
+
duplex
+
the duplex image view.
+ +
+
destination
+
the destination image view.
+ +
+
transfer
+
the transfer callback method.
+ +
+
context
+
the user defined context.
+ +
+
+

GetImageViewAuthenticMetacontent

+ +

GetImageViewAuthenticMetacontent() returns the image view authentic meta-content.

+ +

The format of the GetImageViewAuthenticPixels method is:

+ +
+void *GetImageViewAuthenticMetacontent(
+  const ImageView *image_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
+

GetImageViewAuthenticPixels

+ +

GetImageViewAuthenticPixels() returns the image view authentic pixels.

+ +

The format of the GetImageViewAuthenticPixels method is:

+ +
+Quantum *GetImageViewAuthenticPixels(const ImageView *image_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
+

GetImageViewException

+ +

GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.

+ +

The format of the GetImageViewException method is:

+ +
+char *GetImageViewException(const PixelImage *image_view,
+  ExceptionType *severity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the pixel image_view.
+ +
+
severity
+
the severity of the error is returned here.
+ +
+
+

GetImageViewExtent

+ +

GetImageViewExtent() returns the image view extent.

+ +

The format of the GetImageViewExtent method is:

+ +
+RectangleInfo GetImageViewExtent(const ImageView *image_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
+

GetImageViewImage

+ +

GetImageViewImage() returns the image associated with the image view.

+ +

The format of the GetImageViewImage method is:

+ +
+MagickCore *GetImageViewImage(const ImageView *image_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
+

GetImageViewIterator

+ +

GetImageViewIterator() iterates over the image view in parallel and calls your get method for each scanline of the view. The pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. Any updates to the pixels in your callback are ignored.

+ +

The callback signature is:

+ +
+MagickBooleanType GetImageViewMethod(const ImageView *source,
+  const ssize_t y,const int thread_id,void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback get method that must be executed by a single thread at a time.

+ +

The format of the GetImageViewIterator method is:

+ +
+MagickBooleanType GetImageViewIterator(ImageView *source,
+  GetImageViewMethod get,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
source
+
the source image view.
+ +
+
get
+
the get callback method.
+ +
+
context
+
the user defined context.
+ +
+
+

GetImageViewVirtualMetacontent

+ +

GetImageViewVirtualMetacontent() returns the image view virtual meta-content.

+ +

The format of the GetImageViewVirtualMetacontent method is:

+ +
+const void *GetImageViewVirtualMetacontent(
+  const ImageView *image_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
+

GetImageViewVirtualPixels

+ +

GetImageViewVirtualPixels() returns the image view virtual pixels.

+ +

The format of the GetImageViewVirtualPixels method is:

+ +
+const Quantum *GetImageViewVirtualPixels(const ImageView *image_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
+

IsImageView

+ +

IsImageView() returns MagickTrue if the the parameter is verified as a image view object.

+ +

The format of the IsImageView method is:

+ +
+MagickBooleanType IsImageView(const ImageView *image_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
+

NewImageView

+ +

NewImageView() returns a image view required for all other methods in the Image View API.

+ +

The format of the NewImageView method is:

+ +
+ImageView *NewImageView(MagickCore *wand,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

NewImageViewRegion

+ +

NewImageViewRegion() returns a image view required for all other methods in the Image View API.

+ +

The format of the NewImageViewRegion method is:

+ +
+ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
+  const ssize_t y,const size_t width,const size_t height,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a extent of pixel_wands view.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetImageViewDescription

+ +

SetImageViewDescription() associates a description with an image view.

+ +

The format of the SetImageViewDescription method is:

+ +
+void SetImageViewDescription(ImageView *image_view,
+  const char *description)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_view
+
the image view.
+ +
+
description
+
the image view description.
+ +
+
+

SetImageViewIterator

+ +

SetImageViewIterator() iterates over the image view in parallel and calls your set method for each scanline of the view. The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension. The pixels are initiallly undefined and any settings you make in the callback method are automagically synced back to your image.

+ +

The callback signature is:

+ +
+MagickBooleanType SetImageViewMethod(ImageView *destination,
+  const ssize_t y,const int thread_id,void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback set method that must be executed by a single thread at a time.

+ +

The format of the SetImageViewIterator method is:

+ +
+MagickBooleanType SetImageViewIterator(ImageView *destination,
+  SetImageViewMethod set,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
destination
+
the image view.
+ +
+
set
+
the set callback method.
+ +
+
context
+
the user defined context.
+ +
+
+

TransferImageViewIterator

+ +

TransferImageViewIterator() iterates over two image views in parallel and calls your transfer method for each scanline of the view. The source pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination image view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

+ +

The callback signature is:

+ +
+MagickBooleanType TransferImageViewMethod(const ImageView *source,
+  ImageView *destination,const ssize_t y,const int thread_id,
+  void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback transfer method that must be executed by a single thread at a time.

+ +

The format of the TransferImageViewIterator method is:

+ +
+MagickBooleanType TransferImageViewIterator(ImageView *source,
+  ImageView *destination,TransferImageViewMethod transfer,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
source
+
the source image view.
+ +
+
destination
+
the destination image view.
+ +
+
transfer
+
the transfer callback method.
+ +
+
context
+
the user defined context.
+ +
+
+

UpdateImageViewIterator

+ +

UpdateImageViewIterator() iterates over the image view in parallel and calls your update method for each scanline of the view. The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted. Updates to pixels in your callback are automagically synced back to the image.

+ +

The callback signature is:

+ +
+MagickBooleanType UpdateImageViewMethod(ImageView *source,
+  const ssize_t y,const int thread_id,void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback update method that must be executed by a single thread at a time.

+ +

The format of the UpdateImageViewIterator method is:

+ +
+MagickBooleanType UpdateImageViewIterator(ImageView *source,
+  UpdateImageViewMethod update,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
source
+
the source image view.
+ +
+
update
+
the update callback method.
+ +
+
context
+
the user defined context.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/image.html b/share/doc/ImageMagick-7/www/api/image.html new file mode 100644 index 0000000..06ddf98 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/image.html @@ -0,0 +1,1184 @@ + + + + + + + + + + MagickCore, C API: Image Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireImageAcquireImageInfoAcquireNextImageAppendImagesCatchImageExceptionClipImagePathCloneImageCloneImageInfoCopyImagePixelsDestroyImageDestroyImageInfoGetImageInfoGetImageInfoFileGetImageMaskGetImageVirtualPixelMethodInterpretImageFilenameIsHighDynamicRangeImageIsImageObjectIsTaintImageModifyImageNewMagickImageReferenceImageResetImagePageSetImageAlphaSetImageBackgroundColorSetImageChannelMaskSetImageColorSetImageStorageClassSetImageExtentSetImageInfoBlobSetImageInfoCustomStreamSetImageInfoFileSetImageMaskSetImageRegionMaskSetImageVirtualPixelMethodSmushImagesStripImageSyncImageSettings

+ +

AcquireImage

+ +

AcquireImage() returns a pointer to an image structure initialized to default values.

+ +

The format of the AcquireImage method is:

+ +
+Image *AcquireImage(const ImageInfo *image_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
Many of the image default values are set from this structure. For example, filename, compression, depth, background color, and others.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

AcquireImageInfo

+ +

AcquireImageInfo() allocates the ImageInfo structure.

+ +

The format of the AcquireImageInfo method is:

+ +
+ImageInfo *AcquireImageInfo(void)
+
+ +

AcquireNextImage

+ +

AcquireNextImage() initializes the next image in a sequence to default values. The next member of image points to the newly allocated image. If there is a memory shortage, next is assigned NULL.

+ +

The format of the AcquireNextImage method is:

+ +
+void AcquireNextImage(const ImageInfo *image_info,Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
Many of the image default values are set from this structure. For example, filename, compression, depth, background color, and others.
+ +
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

AppendImages

+ +

AppendImages() takes all images from the current image pointer to the end of the image list and appends them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

+ +

The current gravity setting effects how the image is justified in the final image.

+ +

The format of the AppendImages method is:

+ +
+Image *AppendImages(const Image *images,const MagickBooleanType stack,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
stack
+
A value other than 0 stacks the images top-to-bottom.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CatchImageException

+ +

CatchImageException() returns if no exceptions are found in the image sequence, otherwise it determines the most severe exception and reports it as a warning or error depending on the severity.

+ +

The format of the CatchImageException method is:

+ +
+ExceptionType CatchImageException(Image *image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
An image sequence.
+ +
+
+

ClipImagePath

+ +

ClipImagePath() sets the image clip mask based any clipping path information if it exists.

+ +

The format of the ClipImagePath method is:

+ +
+MagickBooleanType ClipImagePath(Image *image,const char *pathname,
+  const MagickBooleanType inside,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
pathname
+
name of clipping path resource. If name is preceded by #, use clipping path numbered by name.
+ +
+
inside
+
if non-zero, later operations take effect inside clipping path. Otherwise later operations take effect outside clipping path.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CloneImage

+ +

CloneImage() copies an image and returns the copy as a new image object.

+ +

If the specified columns and rows is 0, an exact copy of the image is returned, otherwise the pixel data is undefined and must be initialized with the QueueAuthenticPixels() and SyncAuthenticPixels() methods. On failure, a NULL image is returned and exception describes the reason for the failure.

+ +

The format of the CloneImage method is:

+ +
+Image *CloneImage(const Image *image,const size_t columns,
+  const size_t rows,const MagickBooleanType orphan,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the cloned image.
+ +
+
rows
+
the number of rows in the cloned image.
+ +
+
detach
+
With a value other than 0, the cloned image is detached from its parent I/O stream.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CloneImageInfo

+ +

CloneImageInfo() makes a copy of the given image info structure. If NULL is specified, a new image info structure is created initialized to default values.

+ +

The format of the CloneImageInfo method is:

+ +
+ImageInfo *CloneImageInfo(const ImageInfo *image_info)
+
+ +

A description of each parameter follows:

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

CopyImagePixels

+ +

CopyImagePixels() copies pixels from the source image as defined by the geometry the destination image at the specified offset.

+ +

The format of the CopyImagePixels method is:

+ +
+MagickBooleanType CopyImagePixels(Image *image,const Image *source_image,
+  const RectangleInfo *geometry,const OffsetInfo *offset,
+  ExceptionInfo *exception);
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the destination image.
+ +
+
source_image
+
the source image.
+ +
+
geometry
+
define the dimensions of the source pixel rectangle.
+ +
+
offset
+
define the offset in the destination image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DestroyImage

+ +

DestroyImage() dereferences an image, deallocating memory associated with the image if the reference count becomes zero.

+ +

The format of the DestroyImage method is:

+ +
+Image *DestroyImage(Image *image)
+
+ +

A description of each parameter follows:

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

DestroyImageInfo

+ +

DestroyImageInfo() deallocates memory associated with an ImageInfo structure.

+ +

The format of the DestroyImageInfo method is:

+ +
+ImageInfo *DestroyImageInfo(ImageInfo *image_info)
+
+ +

A description of each parameter follows:

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

GetImageInfo

+ +

GetImageInfo() initializes image_info to default values.

+ +

The format of the GetImageInfo method is:

+ +
+void GetImageInfo(ImageInfo *image_info)
+
+ +

A description of each parameter follows:

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

GetImageInfoFile

+ +

GetImageInfoFile() returns the image info file member.

+ +

The format of the GetImageInfoFile method is:

+ +
+FILE *GetImageInfoFile(const ImageInfo *image_info)
+
+ +

A description of each parameter follows:

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

GetImageMask

+ +

GetImageMask() returns the mask associated with the image.

+ +

The format of the GetImageMask method is:

+ +
+Image *GetImageMask(const Image *image,const PixelMask type,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
type
+
the mask type, ReadPixelMask or WritePixelMask.
+ +
+
+

GetImageVirtualPixelMethod

+ +

GetImageVirtualPixelMethod() gets the "virtual pixels" method for the image. A virtual pixel is any pixel access that is outside the boundaries of the image cache.

+ +

The format of the GetImageVirtualPixelMethod() method is:

+ +
+VirtualPixelMethod GetImageVirtualPixelMethod(const Image *image)
+
+ +

A description of each parameter follows:

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

InterpretImageFilename

+ +

InterpretImageFilename() interprets embedded characters in an image filename. The filename length is returned.

+ +

The format of the InterpretImageFilename method is:

+ +
+size_t InterpretImageFilename(const ImageInfo *image_info,Image *image,
+  const char *format,int value,char *filename,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image_info
+

the image info..

+ +
image
+

the image.

+ +
format
+

A filename describing the format to use to write the numeric argument. Only the first numeric format identifier is replaced.

+ +
value
+

Numeric value to substitute into format filename.

+ +
filename
+

return the formatted filename in this character buffer.

+ +
exception
+

return any errors or warnings in this structure.

+ +

IsHighDynamicRangeImage

+ +

IsHighDynamicRangeImage() returns MagickTrue if any pixel component is non-integer or exceeds the bounds of the quantum depth (e.g. for Q16 0..65535.

+ +

The format of the IsHighDynamicRangeImage method is:

+ +
+MagickBooleanType IsHighDynamicRangeImage(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

IsImageObject

+ +

IsImageObject() returns MagickTrue if the image sequence contains a valid set of image objects.

+ +

The format of the IsImageObject method is:

+ +
+MagickBooleanType IsImageObject(const Image *image)
+
+ +

A description of each parameter follows:

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

IsTaintImage

+ +

IsTaintImage() returns MagickTrue any pixel in the image has been altered since it was first constituted.

+ +

The format of the IsTaintImage method is:

+ +
+MagickBooleanType IsTaintImage(const Image *image)
+
+ +

A description of each parameter follows:

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

ModifyImage

+ +

ModifyImage() ensures that there is only a single reference to the image to be modified, updating the provided image pointer to point to a clone of the original image if necessary.

+ +

The format of the ModifyImage method is:

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

A description of each parameter follows:

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

NewMagickImage

+ +

NewMagickImage() creates a blank image canvas of the specified size and background color.

+ +

The format of the NewMagickImage method is:

+ +
+Image *NewMagickImage(const ImageInfo *image_info,const size_t width,
+  const size_t height,const PixelInfo *background,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
width
+
the image width.
+ +
+
height
+
the image height.
+ +
+
background
+
the image color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ReferenceImage

+ +

ReferenceImage() increments the reference count associated with an image returning a pointer to the image.

+ +

The format of the ReferenceImage method is:

+ +
+Image *ReferenceImage(Image *image)
+
+ +

A description of each parameter follows:

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

ResetImagePage

+ +

ResetImagePage() resets the image page canvas and position.

+ +

The format of the ResetImagePage method is:

+ +
+MagickBooleanType ResetImagePage(Image *image,const char *page)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
page
+
the relative page specification.
+ +
+
+

SetImageAlpha

+ +

SetImageAlpha() sets the alpha levels of the image.

+ +

The format of the SetImageAlpha method is:

+ +
+MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
Alpha
+
the level of transparency: 0 is fully opaque and QuantumRange is fully transparent.
+ +
+
+

SetImageBackgroundColor

+ +

SetImageBackgroundColor() initializes the image pixels to the image background color. The background color is defined by the background_color member of the image structure.

+ +

The format of the SetImage method is:

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

A description of each parameter follows:

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

SetImageChannelMask

+ +

SetImageChannelMask() sets the image channel mask from the specified channel mask.

+ +

The format of the SetImageChannelMask method is:

+ +
+ChannelType SetImageChannelMask(Image *image,
+  const ChannelType channel_mask)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
channel_mask
+
the channel mask.
+ +
+
+

SetImageColor

+ +

SetImageColor() set the entire image canvas to the specified color.

+ +

The format of the SetImageColor method is:

+ +
+MagickBooleanType SetImageColor(Image *image,const PixelInfo *color,
+  ExeptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageStorageClass

+ +

SetImageStorageClass() sets the image class: DirectClass for true color images or PseudoClass for colormapped images.

+ +

The format of the SetImageStorageClass method is:

+ +
+MagickBooleanType SetImageStorageClass(Image *image,
+  const ClassType storage_class,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageExtent

+ +

SetImageExtent() sets the image size (i.e. columns & rows).

+ +

The format of the SetImageExtent method is:

+ +
+MagickBooleanType SetImageExtent(Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
The image width in pixels.
+ +
+
rows
+
The image height in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetImageInfoBlob

+ +

SetImageInfoBlob() sets the image info blob member.

+ +

The format of the SetImageInfoBlob method is:

+ +
+void SetImageInfoBlob(ImageInfo *image_info,const void *blob,
+  const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
blob
+
the blob.
+ +
+
length
+
the blob length.
+ +
+
+

SetImageInfoCustomStream

+ +

SetImageInfoCustomStream() sets the image info custom stream handlers.

+ +

The format of the SetImageInfoCustomStream method is:

+ +
+void SetImageInfoCustomStream(ImageInfo *image_info,
+  CustomStreamInfo *custom_stream)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
custom_stream
+
your custom stream methods.
+ +
+
+

SetImageInfoFile

+ +

SetImageInfoFile() sets the image info file member.

+ +

The format of the SetImageInfoFile method is:

+ +
+void SetImageInfoFile(ImageInfo *image_info,FILE *file)
+
+ +

A description of each parameter follows:

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

SetImageMask

+ +

SetImageMask() associates a mask with the image. The mask must be the same dimensions as the image.

+ +

The format of the SetImageMask method is:

+ +
+MagickBooleanType SetImageMask(Image *image,const PixelMask type,
+  const Image *mask,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
type
+
the mask type, ReadPixelMask or WritePixelMask.
+ +
+
mask
+
the image mask.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetImageRegionMask

+ +

SetImageRegionMask() associates a mask with the image as defined by the specified region.

+ +

The format of the SetImageRegionMask method is:

+ +
+MagickBooleanType SetImageRegionMask(Image *image,const PixelMask type,
+  const RectangleInfo *region,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
type
+
the mask type, ReadPixelMask or WritePixelMask.
+ +
+
geometry
+
the mask region.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetImageVirtualPixelMethod

+ +

SetImageVirtualPixelMethod() sets the "virtual pixels" method for the image and returns the previous setting. A virtual pixel is any pixel access that is outside the boundaries of the image cache.

+ +

The format of the SetImageVirtualPixelMethod() method is:

+ +
+VirtualPixelMethod SetImageVirtualPixelMethod(Image *image,
+  const VirtualPixelMethod virtual_pixel_method,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
virtual_pixel_method
+
choose the type of virtual pixel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SmushImages

+ +

SmushImages() takes all images from the current image pointer to the end of the image list and smushes them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

+ +

The current gravity setting now effects how the image is justified in the final image.

+ +

The format of the SmushImages method is:

+ +
+Image *SmushImages(const Image *images,const MagickBooleanType stack,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
stack
+
A value other than 0 stacks the images top-to-bottom.
+ +
+
offset
+
minimum distance in pixels between images.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

StripImage

+ +

StripImage() strips an image of all profiles and comments.

+ +

The format of the StripImage method is:

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

A description of each parameter follows:

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

SyncImageSettings

+ +

SyncImageSettings() syncs any image_info global options into per-image attributes.

+ +

Note: in IMv6 free form 'options' were always mapped into 'artifacts', so that operations and coders can find such settings. In IMv7 if a desired per-image artifact is not set, then it will directly look for a global option as a fallback, as such this copy is no longer needed, only the link set up.

+ +

The format of the SyncImageSettings method is:

+ +
+MagickBooleanType SyncImageSettings(const ImageInfo *image_info,
+  Image *image,ExceptionInfo *exception)
+MagickBooleanType SyncImagesSettings(const ImageInfo *image_info,
+  Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/image.php b/share/doc/ImageMagick-7/www/api/image.php new file mode 100644 index 0000000..e222588 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/image.php @@ -0,0 +1,1083 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Image Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AcquireImageAcquireImageInfoAcquireNextImageAppendImagesCatchImageExceptionClipImagePathCloneImageCloneImageInfoCopyImagePixelsDestroyImageDestroyImageInfoGetImageInfoGetImageInfoFileGetImageMaskGetImageVirtualPixelMethodInterpretImageFilenameIsHighDynamicRangeImageIsImageObjectIsTaintImageModifyImageNewMagickImageReferenceImageResetImagePageSetImageBackgroundColorSetImageChannelMaskSetImageColorSetImageStorageClassSetImageExtentSetImageInfoBlobSetImageInfoFileSetImageMaskSetImageAlphaSetImageVirtualPixelMethodSmushImagesStripImageSyncImageSettings

+ +

AcquireImage

+ +

AcquireImage() returns a pointer to an image structure initialized to default values.

+ +

The format of the AcquireImage method is:

+ +
+Image *AcquireImage(const ImageInfo *image_info,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
Many of the image default values are set from this structure. For example, filename, compression, depth, background color, and others.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

AcquireImageInfo

+ +

AcquireImageInfo() allocates the ImageInfo structure.

+ +

The format of the AcquireImageInfo method is:

+ +
+ImageInfo *AcquireImageInfo(void)
+
+ +

AcquireNextImage

+ +

AcquireNextImage() initializes the next image in a sequence to default values. The next member of image points to the newly allocated image. If there is a memory shortage, next is assigned NULL.

+ +

The format of the AcquireNextImage method is:

+ +
+void AcquireNextImage(const ImageInfo *image_info,Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
Many of the image default values are set from this structure. For example, filename, compression, depth, background color, and others.
+ +
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

AppendImages

+ +

AppendImages() takes all images from the current image pointer to the end of the image list and appends them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

+ +

The current gravity setting effects how the image is justified in the final image.

+ +

The format of the AppendImages method is:

+ +
+Image *AppendImages(const Image *images,const MagickBooleanType stack,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
stack
+
A value other than 0 stacks the images top-to-bottom.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CatchImageException

+ +

CatchImageException() returns if no exceptions are found in the image sequence, otherwise it determines the most severe exception and reports it as a warning or error depending on the severity.

+ +

The format of the CatchImageException method is:

+ +
+ExceptionType CatchImageException(Image *image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
An image sequence.
+ +
+
+

ClipImagePath

+ +

ClipImagePath() sets the image clip mask based any clipping path information if it exists.

+ +

The format of the ClipImagePath method is:

+ +
+MagickBooleanType ClipImagePath(Image *image,const char *pathname,
+  const MagickBooleanType inside,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
pathname
+
name of clipping path resource. If name is preceded by #, use clipping path numbered by name.
+ +
+
inside
+
if non-zero, later operations take effect inside clipping path. Otherwise later operations take effect outside clipping path.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CloneImage

+ +

CloneImage() copies an image and returns the copy as a new image object.

+ +

If the specified columns and rows is 0, an exact copy of the image is returned, otherwise the pixel data is undefined and must be initialized with the QueueAuthenticPixels() and SyncAuthenticPixels() methods. On failure, a NULL image is returned and exception describes the reason for the failure.

+ +

The format of the CloneImage method is:

+ +
+Image *CloneImage(const Image *image,const size_t columns,
+  const size_t rows,const MagickBooleanType orphan,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the cloned image.
+ +
+
rows
+
the number of rows in the cloned image.
+ +
+
detach
+
With a value other than 0, the cloned image is detached from its parent I/O stream.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CloneImageInfo

+ +

CloneImageInfo() makes a copy of the given image info structure. If NULL is specified, a new image info structure is created initialized to default values.

+ +

The format of the CloneImageInfo method is:

+ +
+ImageInfo *CloneImageInfo(const ImageInfo *image_info)
+
+ +

A description of each parameter follows:

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

CopyImagePixels

+ +

CopyImagePixels() copies pixels from the source image as defined by the geometry the destination image at the specified offset.

+ +

The format of the CopyImagePixels method is:

+ +
+MagickBooleanType CopyImagePixels(Image *image,const Image *source_image,
+  const RectangleInfo *geometry,const OffsetInfo *offset,
+  ExceptionInfo *exception);
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the destination image.
+ +
+
source_image
+
the source image.
+ +
+
geometry
+
define the dimensions of the source pixel rectangle.
+ +
+
offset
+
define the offset in the destination image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DestroyImage

+ +

DestroyImage() dereferences an image, deallocating memory associated with the image if the reference count becomes zero.

+ +

The format of the DestroyImage method is:

+ +
+Image *DestroyImage(Image *image)
+
+ +

A description of each parameter follows:

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

DestroyImageInfo

+ +

DestroyImageInfo() deallocates memory associated with an ImageInfo structure.

+ +

The format of the DestroyImageInfo method is:

+ +
+ImageInfo *DestroyImageInfo(ImageInfo *image_info)
+
+ +

A description of each parameter follows:

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

GetImageInfo

+ +

GetImageInfo() initializes image_info to default values.

+ +

The format of the GetImageInfo method is:

+ +
+void GetImageInfo(ImageInfo *image_info)
+
+ +

A description of each parameter follows:

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

GetImageInfoFile

+ +

GetImageInfoFile() returns the image info file member.

+ +

The format of the GetImageInfoFile method is:

+ +
+FILE *GetImageInfoFile(const ImageInfo *image_info)
+
+ +

A description of each parameter follows:

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

GetImageMask

+ +

GetImageMask() returns the mask associated with the image.

+ +

The format of the GetImageMask method is:

+ +
+Image *GetImageMask(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetImageVirtualPixelMethod

+ +

GetImageVirtualPixelMethod() gets the "virtual pixels" method for the image. A virtual pixel is any pixel access that is outside the boundaries of the image cache.

+ +

The format of the GetImageVirtualPixelMethod() method is:

+ +
+VirtualPixelMethod GetImageVirtualPixelMethod(const Image *image)
+
+ +

A description of each parameter follows:

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

InterpretImageFilename

+ +

InterpretImageFilename() interprets embedded characters in an image filename. The filename length is returned.

+ +

The format of the InterpretImageFilename method is:

+ +
+size_t InterpretImageFilename(const ImageInfo *image_info,Image *image,
+  const char *format,int value,char *filename,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image_info
+

the image info..

+ +
image
+

the image.

+ +
format
+

A filename describing the format to use to write the numeric argument. Only the first numeric format identifier is replaced.

+ +
value
+

Numeric value to substitute into format filename.

+ +
filename
+

return the formatted filename in this character buffer.

+ +
exception
+

return any errors or warnings in this structure.

+ +

IsHighDynamicRangeImage

+ +

IsHighDynamicRangeImage() returns MagickTrue if any pixel component is non-integer or exceeds the bounds of the quantum depth (e.g. for Q16 0..65535.

+ +

The format of the IsHighDynamicRangeImage method is:

+ +
+MagickBooleanType IsHighDynamicRangeImage(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

IsImageObject

+ +

IsImageObject() returns MagickTrue if the image sequence contains a valid set of image objects.

+ +

The format of the IsImageObject method is:

+ +
+MagickBooleanType IsImageObject(const Image *image)
+
+ +

A description of each parameter follows:

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

IsTaintImage

+ +

IsTaintImage() returns MagickTrue any pixel in the image has been altered since it was first constituted.

+ +

The format of the IsTaintImage method is:

+ +
+MagickBooleanType IsTaintImage(const Image *image)
+
+ +

A description of each parameter follows:

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

ModifyImage

+ +

ModifyImage() ensures that there is only a single reference to the image to be modified, updating the provided image pointer to point to a clone of the original image if necessary.

+ +

The format of the ModifyImage method is:

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

A description of each parameter follows:

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

NewMagickImage

+ +

NewMagickImage() creates a blank image canvas of the specified size and background color.

+ +

The format of the NewMagickImage method is:

+ +
+Image *NewMagickImage(const ImageInfo *image_info,const size_t width,
+  const size_t height,const PixelInfo *background,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
width
+
the image width.
+ +
+
height
+
the image height.
+ +
+
background
+
the image color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ReferenceImage

+ +

ReferenceImage() increments the reference count associated with an image returning a pointer to the image.

+ +

The format of the ReferenceImage method is:

+ +
+Image *ReferenceImage(Image *image)
+
+ +

A description of each parameter follows:

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

ResetImagePage

+ +

ResetImagePage() resets the image page canvas and position.

+ +

The format of the ResetImagePage method is:

+ +
+MagickBooleanType ResetImagePage(Image *image,const char *page)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
page
+
the relative page specification.
+ +
+
+

SetImageBackgroundColor

+ +

SetImageBackgroundColor() initializes the image pixels to the image background color. The background color is defined by the background_color member of the image structure.

+ +

The format of the SetImage method is:

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

A description of each parameter follows:

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

SetImageChannelMask

+ +

SetImageChannelMask() sets the image channel mask from the specified channel mask.

+ +

The format of the SetImageChannelMask method is:

+ +
+ChannelType SetImageChannelMask(Image *image,
+  const ChannelType channel_mask)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
channel_mask
+
the channel mask.
+ +
+
+

SetImageColor

+ +

SetImageColor() set the entire image canvas to the specified color.

+ +

The format of the SetImageColor method is:

+ +
+MagickBooleanType SetImageColor(Image *image,const PixelInfo *color,
+  ExeptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageStorageClass

+ +

SetImageStorageClass() sets the image class: DirectClass for true color images or PseudoClass for colormapped images.

+ +

The format of the SetImageStorageClass method is:

+ +
+MagickBooleanType SetImageStorageClass(Image *image,
+  const ClassType storage_class,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

SetImageExtent

+ +

SetImageExtent() sets the image size (i.e. columns & rows).

+ +

The format of the SetImageExtent method is:

+ +
+MagickBooleanType SetImageExtent(Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
The image width in pixels.
+ +
+
rows
+
The image height in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetImageInfoBlob

+ +

SetImageInfoBlob() sets the image info blob member.

+ +

The format of the SetImageInfoBlob method is:

+ +
+void SetImageInfoBlob(ImageInfo *image_info,const void *blob,
+  const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
blob
+
the blob.
+ +
+
length
+
the blob length.
+ +
+
+

SetImageInfoFile

+ +

SetImageInfoFile() sets the image info file member.

+ +

The format of the SetImageInfoFile method is:

+ +
+void SetImageInfoFile(ImageInfo *image_info,FILE *file)
+
+ +

A description of each parameter follows:

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

SetImageMask

+ +

SetImageMask() associates a mask with the image. The mask must be the same dimensions as the image.

+ +

The format of the SetImageMask method is:

+ +
+MagickBooleanType SetImageMask(Image *image,const PixelMask type,
+  const Image *mask,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
type
+
the mask type, ReadPixelMask or WritePixelMask.
+ +
+
mask
+
the image mask.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SetImageAlpha

+ +

SetImageAlpha() sets the alpha levels of the image.

+ +

The format of the SetImageAlpha method is:

+ +
+MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
Alpha
+
the level of transparency: 0 is fully opaque and QuantumRange is fully transparent.
+ +
+
+

SetImageVirtualPixelMethod

+ +

SetImageVirtualPixelMethod() sets the "virtual pixels" method for the image and returns the previous setting. A virtual pixel is any pixel access that is outside the boundaries of the image cache.

+ +

The format of the SetImageVirtualPixelMethod() method is:

+ +
+VirtualPixelMethod SetImageVirtualPixelMethod(Image *image,
+  const VirtualPixelMethod virtual_pixel_method,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
virtual_pixel_method
+
choose the type of virtual pixel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SmushImages

+ +

SmushImages() takes all images from the current image pointer to the end of the image list and smushes them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

+ +

The current gravity setting now effects how the image is justified in the final image.

+ +

The format of the SmushImages method is:

+ +
+Image *SmushImages(const Image *images,const MagickBooleanType stack,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
stack
+
A value other than 0 stacks the images top-to-bottom.
+ +
+
offset
+
minimum distance in pixels between images.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

StripImage

+ +

StripImage() strips an image of all profiles and comments.

+ +

The format of the StripImage method is:

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

A description of each parameter follows:

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

SyncImageSettings

+ +

SyncImageSettings() syncs any image_info global options into per-image attributes.

+ +

Note: in IMv6 free form 'options' were always mapped into 'artifacts', so that operations and coders can find such settings. In IMv7 if a desired per-image artifact is not set, then it will directly look for a global option as a fallback, as such this copy is no longer needed, only the link set up.

+ +

The format of the SyncImageSettings method is:

+ +
+MagickBooleanType SyncImageSettings(const ImageInfo *image_info,
+  Image *image,ExceptionInfo *exception)
+MagickBooleanType SyncImagesSettings(const ImageInfo *image_info,
+  Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/layer.html b/share/doc/ImageMagick-7/www/api/layer.html new file mode 100644 index 0000000..6d14a20 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/layer.html @@ -0,0 +1,428 @@ + + + + + + + + + + MagickCore, C API: Dealing with Image Layers @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

CoalesceImagesDisposeImagesCompareImagesLayersOptimizeImageLayersOptimizeImagePlusLayersOptimizeImageTransparencyRemoveDuplicateLayersRemoveZeroDelayLayersCompositeLayersMergeImageLayers

+ +

CoalesceImages

+ +

CoalesceImages() composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. A new image sequence is returned with all images the same size as the first images virtual canvas and composited with the next image in the sequence.

+ +

The format of the CoalesceImages method is:

+ +
+Image *CoalesceImages(Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DisposeImages

+ +

DisposeImages() returns the coalesced frames of a GIF animation as it would appear after the GIF dispose method of that frame has been applied. That is it returned the appearance of each frame before the next is overlaid.

+ +

The format of the DisposeImages method is:

+ +
+Image *DisposeImages(Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

CompareImagesLayers

+ +

CompareImagesLayers() compares each image with the next in a sequence and returns the minimum bounding region of all the pixel differences (of the LayerMethod specified) it discovers.

+ +

Images do NOT have to be the same size, though it is best that all the images are 'coalesced' (images are all the same size, on a flattened canvas, so as to represent exactly how an specific frame should look).

+ +

No GIF dispose methods are applied, so GIF animations must be coalesced before applying this image operator to find differences to them.

+ +

The format of the CompareImagesLayers method is:

+ +
+Image *CompareImagesLayers(const Image *images,
+  const LayerMethod method,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
method
+
the layers type to compare images with. Must be one of... CompareAnyLayer, CompareClearLayer, CompareOverlayLayer.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

OptimizeImageLayers

+ +

OptimizeImageLayers() compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the GIF animation.

+ +

The format of the OptimizeImageLayers method is:

+ +
+Image *OptimizeImageLayers(const Image *image,
+         ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

OptimizeImagePlusLayers

+ +

OptimizeImagePlusLayers() is exactly as OptimizeImageLayers(), but may also add or even remove extra frames in the animation, if it improves the total number of pixels in the resulting GIF animation.

+ +

The format of the OptimizePlusImageLayers method is:

+ +
+Image *OptimizePlusImageLayers(const Image *image,
+         ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

OptimizeImageTransparency

+ +

OptimizeImageTransparency() takes a frame optimized GIF animation, and compares the overlayed pixels against the disposal image resulting from all the previous frames in the animation. Any pixel that does not change the disposal image (and thus does not effect the outcome of an overlay) is made transparent.

+ +

WARNING: This modifies the current images directly, rather than generate a new image sequence.

+ +

The format of the OptimizeImageTransperency method is:

+ +
+void OptimizeImageTransperency(Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RemoveDuplicateLayers

+ +

RemoveDuplicateLayers() removes any image that is exactly the same as the next image in the given image list. Image size and virtual canvas offset must also match, though not the virtual canvas size itself.

+ +

No check is made with regards to image disposal setting, though it is the dispose setting of later image that is kept. Also any time delays are also added together. As such coalesced image animations should still produce the same result, though with duplicte frames merged into a single frame.

+ +

The format of the RemoveDuplicateLayers method is:

+ +
+void RemoveDuplicateLayers(Image **image, ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RemoveZeroDelayLayers

+ +

RemoveZeroDelayLayers() removes any image that as a zero delay time. Such images generally represent intermediate or partial updates in GIF animations used for file optimization. They are not ment to be displayed to users of the animation. Viewable images in an animation should have a time delay of 3 or more centi-seconds (hundredths of a second).

+ +

However if all the frames have a zero time delay, then either the animation is as yet incomplete, or it is not a GIF animation. This a non-sensible situation, so no image will be removed and a 'Zero Time Animation' warning (exception) given.

+ +

No warning will be given if no image was removed because all images had an appropriate non-zero time delay set.

+ +

Due to the special requirements of GIF disposal handling, GIF animations should be coalesced first, before calling this function, though that is not a requirement.

+ +

The format of the RemoveZeroDelayLayers method is:

+ +
+void RemoveZeroDelayLayers(Image **image, ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

CompositeLayers

+ +

CompositeLayers() compose the source image sequence over the destination image sequence, starting with the current image in both lists.

+ +

Each layer from the two image lists are composted together until the end of one of the image lists is reached. The offset of each composition is also adjusted to match the virtual canvas offsets of each layer. As such the given offset is relative to the virtual canvas, and not the actual image.

+ +

Composition uses given x and y offsets, as the 'origin' location of the source images virtual canvas (not the real image) allowing you to compose a list of 'layer images' into the destiantioni images. This makes it well sutiable for directly composing 'Clears Frame Animations' or 'Coaleased Animations' onto a static or other 'Coaleased Animation' destination image list. GIF disposal handling is not looked at.

+ +

Special case:- If one of the image sequences is the last image (just a single image remaining), that image is repeatally composed with all the images in the other image list. Either the source or destination lists may be the single image, for this situation.

+ +

In the case of a single destination image (or last image given), that image will ve cloned to match the number of images remaining in the source image list.

+ +

This is equivelent to the "-layer Composite" Shell API operator.

+ + +

The format of the CompositeLayers method is:

+ +
+void CompositeLayers(Image *destination, const CompositeOperator
+compose, Image *source, const ssize_t x_offset, const ssize_t y_offset,
+ExceptionInfo *exception);
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
destination
+
the destination images and results
+ +
+
source
+
source image(s) for the layer composition
+ +
+
compose, x_offset, y_offset
+
arguments passed on to CompositeImages()
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

MergeImageLayers

+ +

MergeImageLayers() composes all the image layers from the current given image onward to produce a single image of the merged layers.

+ +

The inital canvas's size depends on the given LayerMethod, and is initialized using the first images background color. The images are then compositied onto that image in sequence using the given composition that has been assigned to each individual image.

+ +

The format of the MergeImageLayers is:

+ +
+Image *MergeImageLayers(const Image *image,
+  const LayerMethod method, ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image list to be composited together
+ +
+
method
+
the method of selecting the size of the initial canvas.
+ +
MergeLayer: Merge all layers onto a canvas just large enough to hold all the actual images. The virtual canvas of the first image is preserved but otherwise ignored.
+ +
FlattenLayer: Use the virtual canvas size of first image. Images which fall outside this canvas is clipped. This can be used to 'fill out' a given virtual canvas.
+ +
MosaicLayer: Start with the virtual canvas of the first image, enlarging left and right edges to contain all images. Images with negative offsets will be clipped.
+ +
TrimBoundsLayer: Determine the overall bounds of all the image layers just as in "MergeLayer", then adjust the the canvas and offsets to be relative to those bounds, without overlaying the images.
+ +
WARNING: a new image is not returned, the original image sequence page data is modified instead.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/layer.php b/share/doc/ImageMagick-7/www/api/layer.php new file mode 100644 index 0000000..ae82c06 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/layer.php @@ -0,0 +1,394 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Dealing with Image Layers + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

CoalesceImagesDisposeImagesCompareImagesLayersOptimizeImageLayersOptimizeImagePlusLayersOptimizeImageTransparencyRemoveDuplicateLayersRemoveZeroDelayLayersCompositeLayersMergeImageLayers

+ +

CoalesceImages

+ +

CoalesceImages() composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. A new image sequence is returned with all images the same size as the first images virtual canvas and composited with the next image in the sequence.

+ +

The format of the CoalesceImages method is:

+ +
+Image *CoalesceImages(Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DisposeImages

+ +

DisposeImages() returns the coalesced frames of a GIF animation as it would appear after the GIF dispose method of that frame has been applied. That is it returned the appearance of each frame before the next is overlaid.

+ +

The format of the DisposeImages method is:

+ +
+Image *DisposeImages(Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

CompareImagesLayers

+ +

CompareImagesLayers() compares each image with the next in a sequence and returns the minimum bounding region of all the pixel differences (of the LayerMethod specified) it discovers.

+ +

Images do NOT have to be the same size, though it is best that all the images are 'coalesced' (images are all the same size, on a flattened canvas, so as to represent exactly how an specific frame should look).

+ +

No GIF dispose methods are applied, so GIF animations must be coalesced before applying this image operator to find differences to them.

+ +

The format of the CompareImagesLayers method is:

+ +
+Image *CompareImagesLayers(const Image *images,
+  const LayerMethod method,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
method
+
the layers type to compare images with. Must be one of... CompareAnyLayer, CompareClearLayer, CompareOverlayLayer.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

OptimizeImageLayers

+ +

OptimizeImageLayers() compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the GIF animation.

+ +

The format of the OptimizeImageLayers method is:

+ +
+Image *OptimizeImageLayers(const Image *image,
+         ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

OptimizeImagePlusLayers

+ +

OptimizeImagePlusLayers() is exactly as OptimizeImageLayers(), but may also add or even remove extra frames in the animation, if it improves the total number of pixels in the resulting GIF animation.

+ +

The format of the OptimizePlusImageLayers method is:

+ +
+Image *OptimizePlusImageLayers(const Image *image,
+         ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

OptimizeImageTransparency

+ +

OptimizeImageTransparency() takes a frame optimized GIF animation, and compares the overlayed pixels against the disposal image resulting from all the previous frames in the animation. Any pixel that does not change the disposal image (and thus does not effect the outcome of an overlay) is made transparent.

+ +

WARNING: This modifies the current images directly, rather than generate a new image sequence.

+ +

The format of the OptimizeImageTransperency method is:

+ +
+void OptimizeImageTransperency(Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RemoveDuplicateLayers

+ +

RemoveDuplicateLayers() removes any image that is exactly the same as the next image in the given image list. Image size and virtual canvas offset must also match, though not the virtual canvas size itself.

+ +

No check is made with regards to image disposal setting, though it is the dispose setting of later image that is kept. Also any time delays are also added together. As such coalesced image animations should still produce the same result, though with duplicte frames merged into a single frame.

+ +

The format of the RemoveDuplicateLayers method is:

+ +
+void RemoveDuplicateLayers(Image **image, ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RemoveZeroDelayLayers

+ +

RemoveZeroDelayLayers() removes any image that as a zero delay time. Such images generally represent intermediate or partial updates in GIF animations used for file optimization. They are not ment to be displayed to users of the animation. Viewable images in an animation should have a time delay of 3 or more centi-seconds (hundredths of a second).

+ +

However if all the frames have a zero time delay, then either the animation is as yet incomplete, or it is not a GIF animation. This a non-sensible situation, so no image will be removed and a 'Zero Time Animation' warning (exception) given.

+ +

No warning will be given if no image was removed because all images had an appropriate non-zero time delay set.

+ +

Due to the special requirements of GIF disposal handling, GIF animations should be coalesced first, before calling this function, though that is not a requirement.

+ +

The format of the RemoveZeroDelayLayers method is:

+ +
+void RemoveZeroDelayLayers(Image **image, ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

CompositeLayers

+ +

CompositeLayers() compose the source image sequence over the destination image sequence, starting with the current image in both lists.

+ +

Each layer from the two image lists are composted together until the end of one of the image lists is reached. The offset of each composition is also adjusted to match the virtual canvas offsets of each layer. As such the given offset is relative to the virtual canvas, and not the actual image.

+ +

Composition uses given x and y offsets, as the 'origin' location of the source images virtual canvas (not the real image) allowing you to compose a list of 'layer images' into the destiantioni images. This makes it well sutiable for directly composing 'Clears Frame Animations' or 'Coaleased Animations' onto a static or other 'Coaleased Animation' destination image list. GIF disposal handling is not looked at.

+ +

Special case:- If one of the image sequences is the last image (just a single image remaining), that image is repeatally composed with all the images in the other image list. Either the source or destination lists may be the single image, for this situation.

+ +

In the case of a single destination image (or last image given), that image will ve cloned to match the number of images remaining in the source image list.

+ +

This is equivelent to the "-layer Composite" Shell API operator.

+ + +

The format of the CompositeLayers method is:

+ +
+void CompositeLayers(Image *destination, const CompositeOperator
+compose, Image *source, const ssize_t x_offset, const ssize_t y_offset,
+ExceptionInfo *exception);
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
destination
+
the destination images and results
+ +
+
source
+
source image(s) for the layer composition
+ +
+
compose, x_offset, y_offset
+
arguments passed on to CompositeImages()
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

MergeImageLayers

+ +

MergeImageLayers() composes all the image layers from the current given image onward to produce a single image of the merged layers.

+ +

The inital canvas's size depends on the given LayerMethod, and is initialized using the first images background color. The images are then compositied onto that image in sequence using the given composition that has been assigned to each individual image.

+ +

The format of the MergeImageLayers is:

+ +
+Image *MergeImageLayers(const Image *image,
+  const LayerMethod method, ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image list to be composited together
+ +
+
method
+
the method of selecting the size of the initial canvas.
+ +
MergeLayer: Merge all layers onto a canvas just large enough to hold all the actual images. The virtual canvas of the first image is preserved but otherwise ignored.
+ +
FlattenLayer: Use the virtual canvas size of first image. Images which fall outside this canvas is clipped. This can be used to 'fill out' a given virtual canvas.
+ +
MosaicLayer: Start with the virtual canvas of the first image, enlarging left and right edges to contain all images. Images with negative offsets will be clipped.
+ +
TrimBoundsLayer: Determine the overall bounds of all the image layers just as in "MergeLayer", then adjust the the canvas and offsets to be relative to those bounds, without overlaying the images.
+ +
WARNING: a new image is not returned, the original image sequence page data is modified instead.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/list.html b/share/doc/ImageMagick-7/www/api/list.html new file mode 100644 index 0000000..facef97 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/list.html @@ -0,0 +1,768 @@ + + + + + + + + + + MagickCore, C API: Working with Image Lists @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AppendImageToListCloneImageListCloneImagesDeleteImageFromListDeleteImagesDestroyImageListDuplicateImagesGetFirstImageInListGetImageFromListGetImageIndexInListGetImageListLengthGetLastImageInListGetNextImageInListGetPreviousImageInListImageListToArrayInsertImageInListNewImageListPrependImageToListRemoveImageFromListRemoveFirstImageFromListRemoveLastImageFromListReplaceImageInListReplaceImageInListReturnLastReverseImageListSpliceImageIntoListSplitImageList

+ +

AppendImageToList

+ +

AppendImageToList() appends the second image list to the end of the first list. The given image list pointer is left unchanged, unless it was empty.

+ +

The format of the AppendImageToList method is:

+ +
+AppendImageToList(Image *images,const Image *image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list to be appended to.
+ +
+
image
+
the appended image or image list.
+ +
+
+

CloneImageList

+ +

CloneImageList() returns a duplicate of the image list.

+ +

The format of the CloneImageList method is:

+ +
+Image *CloneImageList(const Image *images,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

CloneImages

+ +

CloneImages() clones one or more images from an image sequence, using a comma separated list of image numbers or ranges.

+ +

The numbers start at 0 for the first image in the list, while negative numbers refer to images starting counting from the end of the range. Images may be refered to multiple times to clone them multiple times. Images refered beyond the available number of images in list are ignored.

+ +

Images referenced may be reversed, and results in a clone of those images also being made with a reversed order.

+ +

The format of the CloneImages method is:

+ +
+Image *CloneImages(const Image *images,const char *scenes,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
scenes
+
This character string specifies which scenes to clone (e.g. 1,3-5,7-3,2).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DeleteImageFromList

+ +

DeleteImageFromList() deletes an image from the list. List pointer is moved to the next image, if one is present. See RemoveImageFromList().

+ +

The format of the DeleteImageFromList method is:

+ +
+DeleteImageFromList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

DeleteImages

+ +

DeleteImages() deletes one or more images from an image sequence, using a comma separated list of image numbers or ranges.

+ +

The numbers start at 0 for the first image, while negative numbers refer to images starting counting from the end of the range. Images may be refered to multiple times without problems. Image refered beyond the available number of images in list are ignored.

+ +

If the referenced images are in the reverse order, that range will be completely ignored, unlike CloneImages().

+ +

The format of the DeleteImages method is:

+ +
+DeleteImages(Image **images,const char *scenes,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
scenes
+
This character string specifies which scenes to delete (e.g. 1,3-5,-2-6,2).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DestroyImageList

+ +

DestroyImageList() destroys an image list.

+ +

The format of the DestroyImageList method is:

+ +
+Image *DestroyImageList(Image *image)
+
+ +

A description of each parameter follows:

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

DuplicateImages

+ +

DuplicateImages() duplicates one or more images from an image sequence, using a count and a comma separated list of image numbers or ranges.

+ +

The numbers start at 0 for the first image, while negative numbers refer to images starting counting from the end of the range. Images may be refered to multiple times without problems. Image refered beyond the available number of images in list are ignored.

+ +

The format of the DuplicateImages method is:

+ +
+Image *DuplicateImages(Image *images,const size_t number_duplicates,
+  const char *scenes,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
number_duplicates
+
duplicate the image sequence this number of times.
+ +
+
scenes
+
This character string specifies which scenes to duplicate (e.g. 1,3-5,-2-6,2).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetFirstImageInList

+ +

GetFirstImageInList() returns a pointer to the first image in the list.

+ +

The format of the GetFirstImageInList method is:

+ +
+Image *GetFirstImageInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetImageFromList

+ +

GetImageFromList() returns an image at the specified index from the image list. Starting with 0 as the first image in the list.

+ +

A negative offset will return the image from the end of the list, such that an index of -1 is the last image.

+ +

If no such image exists at the specified offset a NULL image pointer is returned. This will only happen if index is less that the negative of the list length, or larger than list length -1. EG: ( -N to N-1 )

+ +

The format of the GetImageFromList method is:

+ +
+Image *GetImageFromList(const Image *images,const ssize_t index)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
index
+
the position within the list.
+ +
+
+

GetImageIndexInList

+ +

GetImageIndexInList() returns the offset in the list of the specified image.

+ +

The format of the GetImageIndexInList method is:

+ +
+ssize_t GetImageIndexInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetImageListLength

+ +

GetImageListLength() returns the length of the list (the number of images in the list).

+ +

The format of the GetImageListLength method is:

+ +
+size_t GetImageListLength(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetLastImageInList

+ +

GetLastImageInList() returns a pointer to the last image in the list.

+ +

The format of the GetLastImageInList method is:

+ +
+Image *GetLastImageInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetNextImageInList

+ +

GetNextImageInList() returns the next image in the list.

+ +

The format of the GetNextImageInList method is:

+ +
+Image *GetNextImageInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetPreviousImageInList

+ +

GetPreviousImageInList() returns the previous image in the list.

+ +

The format of the GetPreviousImageInList method is:

+ +
+Image *GetPreviousImageInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

ImageListToArray

+ +

ImageListToArray() is a convenience method that converts an image list to a sequential array, with a NULL image pointer at the end of the array.

+ +

The images remain part of the original image list, with the array providing an alternative means of indexing the image array.

+ +

group = ImageListToArray(images, exception); while (i = 0; group[i] != (Image *) NULL; i++) printf("s\n", group[i]->filename); printf("d images\n", i); group = RelinquishMagickMemory(group);

+ +

The format of the ImageListToArray method is:

+ +
+Image **ImageListToArray(const Image *images,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

InsertImageInList

+ +

InsertImageInList() insert the given image or image list, into the first image list, immediately AFTER the image pointed to. The given image list pointer is left unchanged unless previously empty.

+ +

The format of the InsertImageInList method is:

+ +
+InsertImageInList(Image **images,Image *insert)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list to insert into.
+ +
+
insert
+
the image list to insert.
+ +
+
+

NewImageList

+ +

NewImageList() creates an empty image list.

+ +

The format of the NewImageList method is:

+ +
+Image *NewImageList(void)
+
+ +

PrependImageToList

+ +

PrependImageToList() prepends the image to the beginning of the list.

+ +

The format of the PrependImageToList method is:

+ +
+PrependImageToList(Image *images,Image *image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
image
+
the image.
+ +
+
+

RemoveImageFromList

+ +

RemoveImageFromList() removes and returns the image pointed to.

+ +

The given image list pointer is set to point to the next image in list if it exists, otherwise it is set to the previous image, or NULL if list was emptied.

+ +

The format of the RemoveImageFromList method is:

+ +
+Image *RemoveImageFromList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

RemoveFirstImageFromList

+ +

RemoveFirstImageFromList() removes and returns the first image in the list.

+ +

If the given image list pointer pointed to the removed first image, it is set to the new first image of list, or NULL if list was emptied, otherwise it is left as is.

+ +

The format of the RemoveFirstImageFromList method is:

+ +
+Image *RemoveFirstImageFromList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

RemoveLastImageFromList

+ +

RemoveLastImageFromList() removes and returns the last image from the list.

+ +

If the given image list pointer pointed to the removed last image, it is set to the new last image of list, or NULL if list was emptied, otherwise it is left as is.

+ +

The format of the RemoveLastImageFromList method is:

+ +
+Image *RemoveLastImageFromList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

ReplaceImageInList

+ +

ReplaceImageInList() replaces an image in the list with the given image, or list of images. Old image is destroyed.

+ +

The images list pointer is set to point to the first image of the inserted list of images.

+ +

The format of the ReplaceImageInList method is:

+ +
+ReplaceImageInList(Image **images,Image *replace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the list and pointer to image to replace
+ +
+
replace
+
the image or image list replacing the original
+ +
+
+

ReplaceImageInListReturnLast

+ +

ReplaceImageInListReturnLast() is exactly as ReplaceImageInList() except the images pointer is set to the last image in the list of replacement images.

+ +

This allows you to simply use GetNextImageInList() to go to the image that follows the just replaced image, even if a list of replacement images was inserted.

+ +

The format of the ReplaceImageInList method is:

+ +
+ReplaceImageInListReturnLast(Image **images,Image *replace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the list and pointer to image to replace
+ +
+
replace
+
the image or image list replacing the original
+ +
+
+

ReverseImageList

+ +

ReverseImageList() reverses the order of an image list. The list pointer is reset to that start of the re-ordered list.

+ +

The format of the ReverseImageList method is:

+ +
+void ReverseImageList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

SpliceImageIntoList

+ +

SpliceImageIntoList() removes 'length' images from the list and replaces them with the specified splice. Removed images are returned.

+ +

The format of the SpliceImageIntoList method is:

+ +
+SpliceImageIntoList(Image **images,const size_t,
+  const Image *splice)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
length
+
the length of the image list to remove.
+ +
+
splice
+
Replace the removed image list with this list.
+ +
+
+

SplitImageList

+ +

SplitImageList() splits an image into two lists, after given image The list that was split off is returned, which may be empty.

+ +

The format of the SplitImageList method is:

+ +
+Image *SplitImageList(Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/list.php b/share/doc/ImageMagick-7/www/api/list.php new file mode 100644 index 0000000..89816ba --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/list.php @@ -0,0 +1,734 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Working with Image Lists + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AppendImageToListCloneImageListCloneImagesDeleteImageFromListDeleteImagesDestroyImageListDuplicateImagesGetFirstImageInListGetImageFromListGetImageIndexInListGetImageListLengthGetLastImageInListGetNextImageInListGetPreviousImageInListImageListToArrayInsertImageInListNewImageListPrependImageToListRemoveImageFromListRemoveFirstImageFromListRemoveLastImageFromListReplaceImageInListReplaceImageInListReturnLastReverseImageListSpliceImageIntoListSplitImageList

+ +

AppendImageToList

+ +

AppendImageToList() appends the second image list to the end of the first list. The given image list pointer is left unchanged, unless it was empty.

+ +

The format of the AppendImageToList method is:

+ +
+AppendImageToList(Image *images,const Image *image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list to be appended to.
+ +
+
image
+
the appended image or image list.
+ +
+
+

CloneImageList

+ +

CloneImageList() returns a duplicate of the image list.

+ +

The format of the CloneImageList method is:

+ +
+Image *CloneImageList(const Image *images,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

CloneImages

+ +

CloneImages() clones one or more images from an image sequence, using a comma separated list of image numbers or ranges.

+ +

The numbers start at 0 for the first image in the list, while negative numbers refer to images starting counting from the end of the range. Images may be refered to multiple times to clone them multiple times. Images refered beyond the available number of images in list are ignored.

+ +

Images referenced may be reversed, and results in a clone of those images also being made with a reversed order.

+ +

The format of the CloneImages method is:

+ +
+Image *CloneImages(const Image *images,const char *scenes,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
scenes
+
This character string specifies which scenes to clone (e.g. 1,3-5,7-3,2).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DeleteImageFromList

+ +

DeleteImageFromList() deletes an image from the list. List pointer is moved to the next image, if one is present. See RemoveImageFromList().

+ +

The format of the DeleteImageFromList method is:

+ +
+DeleteImageFromList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

DeleteImages

+ +

DeleteImages() deletes one or more images from an image sequence, using a comma separated list of image numbers or ranges.

+ +

The numbers start at 0 for the first image, while negative numbers refer to images starting counting from the end of the range. Images may be refered to multiple times without problems. Image refered beyond the available number of images in list are ignored.

+ +

If the referenced images are in the reverse order, that range will be completely ignored, unlike CloneImages().

+ +

The format of the DeleteImages method is:

+ +
+DeleteImages(Image **images,const char *scenes,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
scenes
+
This character string specifies which scenes to delete (e.g. 1,3-5,-2-6,2).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

DestroyImageList

+ +

DestroyImageList() destroys an image list.

+ +

The format of the DestroyImageList method is:

+ +
+Image *DestroyImageList(Image *image)
+
+ +

A description of each parameter follows:

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

DuplicateImages

+ +

DuplicateImages() duplicates one or more images from an image sequence, using a count and a comma separated list of image numbers or ranges.

+ +

The numbers start at 0 for the first image, while negative numbers refer to images starting counting from the end of the range. Images may be refered to multiple times without problems. Image refered beyond the available number of images in list are ignored.

+ +

The format of the DuplicateImages method is:

+ +
+Image *DuplicateImages(Image *images,const size_t number_duplicates,
+  const char *scenes,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
number_duplicates
+
duplicate the image sequence this number of times.
+ +
+
scenes
+
This character string specifies which scenes to duplicate (e.g. 1,3-5,-2-6,2).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetFirstImageInList

+ +

GetFirstImageInList() returns a pointer to the first image in the list.

+ +

The format of the GetFirstImageInList method is:

+ +
+Image *GetFirstImageInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetImageFromList

+ +

GetImageFromList() returns an image at the specified index from the image list. Starting with 0 as the first image in the list.

+ +

A negative offset will return the image from the end of the list, such that an index of -1 is the last image.

+ +

If no such image exists at the specified offset a NULL image pointer is returned. This will only happen if index is less that the negative of the list length, or larger than list length -1. EG: ( -N to N-1 )

+ +

The format of the GetImageFromList method is:

+ +
+Image *GetImageFromList(const Image *images,const ssize_t index)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
index
+
the position within the list.
+ +
+
+

GetImageIndexInList

+ +

GetImageIndexInList() returns the offset in the list of the specified image.

+ +

The format of the GetImageIndexInList method is:

+ +
+ssize_t GetImageIndexInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetImageListLength

+ +

GetImageListLength() returns the length of the list (the number of images in the list).

+ +

The format of the GetImageListLength method is:

+ +
+size_t GetImageListLength(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetLastImageInList

+ +

GetLastImageInList() returns a pointer to the last image in the list.

+ +

The format of the GetLastImageInList method is:

+ +
+Image *GetLastImageInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetNextImageInList

+ +

GetNextImageInList() returns the next image in the list.

+ +

The format of the GetNextImageInList method is:

+ +
+Image *GetNextImageInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

GetPreviousImageInList

+ +

GetPreviousImageInList() returns the previous image in the list.

+ +

The format of the GetPreviousImageInList method is:

+ +
+Image *GetPreviousImageInList(const Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

ImageListToArray

+ +

ImageListToArray() is a convenience method that converts an image list to a sequential array, with a NULL image pointer at the end of the array.

+ +

The images remain part of the original image list, with the array providing an alternative means of indexing the image array.

+ +

group = ImageListToArray(images, exception); while (i = 0; group[i] != (Image *) NULL; i++) printf("s\n", group[i]->filename); printf("d images\n", i); group = RelinquishMagickMemory(group);

+ +

The format of the ImageListToArray method is:

+ +
+Image **ImageListToArray(const Image *images,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

InsertImageInList

+ +

InsertImageInList() insert the given image or image list, into the first image list, immediately AFTER the image pointed to. The given image list pointer is left unchanged unless previously empty.

+ +

The format of the InsertImageInList method is:

+ +
+InsertImageInList(Image **images,Image *insert)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list to insert into.
+ +
+
insert
+
the image list to insert.
+ +
+
+

NewImageList

+ +

NewImageList() creates an empty image list.

+ +

The format of the NewImageList method is:

+ +
+Image *NewImageList(void)
+
+ +

PrependImageToList

+ +

PrependImageToList() prepends the image to the beginning of the list.

+ +

The format of the PrependImageToList method is:

+ +
+PrependImageToList(Image *images,Image *image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
image
+
the image.
+ +
+
+

RemoveImageFromList

+ +

RemoveImageFromList() removes and returns the image pointed to.

+ +

The given image list pointer is set to point to the next image in list if it exists, otherwise it is set to the previous image, or NULL if list was emptied.

+ +

The format of the RemoveImageFromList method is:

+ +
+Image *RemoveImageFromList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

RemoveFirstImageFromList

+ +

RemoveFirstImageFromList() removes and returns the first image in the list.

+ +

If the given image list pointer pointed to the removed first image, it is set to the new first image of list, or NULL if list was emptied, otherwise it is left as is.

+ +

The format of the RemoveFirstImageFromList method is:

+ +
+Image *RemoveFirstImageFromList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

RemoveLastImageFromList

+ +

RemoveLastImageFromList() removes and returns the last image from the list.

+ +

If the given image list pointer pointed to the removed last image, it is set to the new last image of list, or NULL if list was emptied, otherwise it is left as is.

+ +

The format of the RemoveLastImageFromList method is:

+ +
+Image *RemoveLastImageFromList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

ReplaceImageInList

+ +

ReplaceImageInList() replaces an image in the list with the given image, or list of images. Old image is destroyed.

+ +

The images list pointer is set to point to the first image of the inserted list of images.

+ +

The format of the ReplaceImageInList method is:

+ +
+ReplaceImageInList(Image **images,Image *replace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the list and pointer to image to replace
+ +
+
replace
+
the image or image list replacing the original
+ +
+
+

ReplaceImageInListReturnLast

+ +

ReplaceImageInListReturnLast() is exactly as ReplaceImageInList() except the images pointer is set to the last image in the list of replacemen images.

+ +

This allows you to simply use GetNextImageInList() to go to the image that follows the just replaced image, even if a list of replacement images was inserted.

+ +

The format of the ReplaceImageInList method is:

+ +
+ReplaceImageInListReturnLast(Image **images,Image *replace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the list and pointer to image to replace
+ +
+
replace
+
the image or image list replacing the original
+ +
+
+

ReverseImageList

+ +

ReverseImageList() reverses the order of an image list. The list pointer is reset to that start of the re-ordered list.

+ +

The format of the ReverseImageList method is:

+ +
+void ReverseImageList(Image **images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+

SpliceImageIntoList

+ +

SpliceImageIntoList() removes 'length' images from the list and replaces them with the specified splice. Removed images are returned.

+ +

The format of the SpliceImageIntoList method is:

+ +
+SpliceImageIntoList(Image **images,const size_t,
+  const Image *splice)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
length
+
the length of the image list to remove.
+ +
+
splice
+
Replace the removed image list with this list.
+ +
+
+

SplitImageList

+ +

SplitImageList() splits an image into two lists, after given image The list that was split off is returned, which may be empty.

+ +

The format of the SplitImageList method is:

+ +
+Image *SplitImageList(Image *images)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image list.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/magick++-classes.html b/share/doc/ImageMagick-7/www/api/magick++-classes.html new file mode 100644 index 0000000..7f6eeff --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick++-classes.html @@ -0,0 +1,162 @@ + + + + + + + + + + Magick++, C++ API: Classes @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+

Magick++ Classes

+
+

Magick++ provides a simple C++ API to the ImageMagick image processing library which supports reading and writing a huge number of image formats as well as supporting a broad spectrum of traditional image processing operations. The ImageMagick C API is complex and the data structures are currently not documented. Magick++ provides access to most of the features available from the C API but in a simple object-oriented and well-documented framework.

+

Magick++ is intended to support commercial-grade application development. In order to avoid possible conflicts with the user's application, all symbols contained in Magick++ (included by the header <Magick++.h>) are scoped to the namespace Magick. Symbols from the ImageMagick C library are imported under the MagickCore namespace to avoid possible conflicts and ImageMagick macros are only included within the Magick++ implementation so they won't impact the user's application.

+

The core class in Magick++ is the Image class. The Image class provides methods to manipulate a single image frame (e.g. a JPEG image). Standard Template Library (STL)compatible algorithms and function objects are provided in order to manipulate multiple image frames or to read and write file formats which support multiple image frames (e.g. GIF animations, MPEG animations, and Postscript files).

+

The Image class supports reference-counted memory management which supports the semantics of an intrinsic variable type (e.g. 'int') with an extremely efficient operator = and copy constructor (only a pointer is assigned) while ensuring that the image data is replicated as required so that it the image may be modified without impacting earlier generations. Since the Image class manages heap memory internally, images are best allocated via C++ automatic (stack-based) memory allocation. This support allows most programs using Magick++ to be written without using any pointers, simplifying the implementation and avoiding the risks of using pointers. When a program uses automatic memory allocation to allocate Magick++ images, that aspect of the program becomes naturally exception-safe and thread-safe.

+

The image class uses a number of supportive classes in order to specify arguments. Colors are specified via the Color class. Colors specified in X11-style string form are implicitly converted to the Color class. Geometry arguments (those specifying width, height, and/or x and y offset) are specified via the Geometry class. Similar to the Color class, geometries specified as an X11-style string are implicitly converted to the Geometry class. Two dimensional drawable objects are specified via the Drawable class. Drawable objects may be provided as a single object or as a list of objects to be rendered using the current image options. Montage options (a montage is a rendered grid of thumbnails in one image) are specified via the Montage class.

+

Errors are reported using C++ exceptions derived from the Exception class, which is itself derived from the standard C++ exception class. Exceptions are reported synchronous with the operation and are caught by the first matching try block as the stack is unraveled. This allows a clean coding style in which multiple related Magick++ commands may be executed with errors handled as a unit rather than line-by-line. Since the Image object provides reference-counted memory management, unreferenced images on the stack are automagically cleaned up, avoiding the potential for memory leaks.

+

For ease of access, the documentation for the available user-level classes is available via the following table.

+
+
    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Magick++ User-Level Classes
    BlobBinary Large OBject container.
    CoderInfoReport information about supported image formats (use with +coderInfoList())
    ColorColor specification.
    DrawableDrawable shape (for input to 'draw').
    ExceptionC++ exception objects.
    GeometryGeometry specification.
    ImageImage frame. This is the primary object in Magick++.
    MontageMontage options for montageImages().
    PixelsLow-level access to image pixels.
    STLSTL algorithms and function objects for operating on +containers of image frames.
    TypeMetricContainer for font type metrics (use with +Image::fontTypeMetrics).
    +
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/magick-deprecate.html b/share/doc/ImageMagick-7/www/api/magick-deprecate.html new file mode 100644 index 0000000..ee3b3d6 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick-deprecate.html @@ -0,0 +1,109 @@ + + + + + + + + + + MagickWand, C API: Deprecated Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/magick-deprecate.php b/share/doc/ImageMagick-7/www/api/magick-deprecate.php new file mode 100644 index 0000000..447aba7 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick-deprecate.php @@ -0,0 +1,75 @@ + + + + + + + + + ImageMagick: MagickWand, C API for ImageMagick: Deprecated Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

+ +
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/magick-image.html b/share/doc/ImageMagick-7/www/api/magick-image.html new file mode 100644 index 0000000..3ad7536 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick-image.html @@ -0,0 +1,7851 @@ + + + + + + + + + + MagickWand, C API: Image Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

GetImageFromMagickWandMagickAdaptiveBlurImageMagickAdaptiveResizeImageMagickAdaptiveSharpenImageMagickAdaptiveThresholdImageMagickAddImageMagickAddNoiseImageMagickAffineTransformImageMagickAnnotateImageMagickAnimateImagesMagickAppendImagesMagickAutoGammaImageMagickAutoLevelImageMagickAutoOrientImageMagickBlackThresholdImageMagickBlueShiftImageMagickBlurImageMagickBorderImageUse MagickBrightnessContrastImageMagickChannelFxImageMagickCharcoalImageMagickChopImageMagickClampImageMagickClipImageMagickClipImagePathMagickClutImageMagickCoalesceImagesMagickColorDecisionListImageMagickColorizeImageMagickColorMatrixImageMagickCombineImagesMagickCommentImageMagickCompareImagesLayersMagickCompareImagesMagickCompositeImageMagickCompositeImageGravityMagickCompositeLayersMagickContrastImageMagickContrastStretchImageMagickConvolveImageMagickCropImageMagickCycleColormapImageMagickConstituteImageMagickDecipherImageMagickDeconstructImagesMagickDeskewImageMagickDespeckleImageMagickDestroyImageMagickDisplayImageMagickDisplayImagesMagickDistortImageMagickDrawImageMagickEdgeImageMagickEmbossImageMagickEncipherImageMagickEnhanceImageMagickEqualizeImageMagickEvaluateImageMagickExportImagePixelsMagickExtentImageMagickFlipImageMagickFloodfillPaintImageMagickFlopImageMagickForwardFourierTransformImageMagickFrameImageMagickFunctionImageMagickFxImageMagickGammaImageMagickGaussianBlurImageMagickGetImageMagickGetImageAlphaChannelMagickGetImageMaskMagickGetImageBackgroundColorMagickGetImageBlobMagickGetImageBlobMagickGetImageBluePrimaryMagickGetImageBorderColorMagickGetImageFeaturesMagickGetImageKurtosisMagickGetImageMeanMagickGetImageRangeMagickGetImageStatisticsMagickGetImageColormapColorMagickGetImageColorsMagickGetImageColorspaceMagickGetImageComposeMagickGetImageCompressionMagickGetImageCompressionQualityMagickGetImageDelayMagickGetImageDepthMagickGetImageDisposeMagickGetImageDistortionMagickGetImageDistortionsMagickGetImageEndianMagickGetImageFilenameMagickGetImageFormatMagickGetImageFuzzMagickGetImageGammaMagickGetImageGravityMagickGetImageGreenPrimaryMagickGetImageHeightMagickGetImageHistogramMagickGetImageInterlaceSchemeMagickGetImageInterpolateMethodMagickGetImageIterationsMagickGetImageLengthMagickGetImageMatteColorMagickGetImageOrientationMagickGetImagePageMagickGetImagePixelColorMagickGetImageRedPrimaryMagickGetImageRegionMagickGetImageRenderingIntentMagickGetImageResolutionMagickGetImageSceneMagickGetImageSignatureMagickGetImageTicksPerSecondMagickGetImageTypeMagickGetImageUnitsMagickGetImageVirtualPixelMethodMagickGetImageWhitePointMagickGetImageWidthMagickGetNumberImagesMagickGetImageTotalInkDensityMagickHaldClutImageMagickHasNextImageMagickHasPreviousImageMagickIdentifyImageMagickIdentifyImageTypeMagickImplodeImageMagickImportImagePixelsMagickInterpolativeResizeImageMagickInverseFourierTransformImageMagickLabelImageMagickLevelImageMagickLinearStretchImageMagickLiquidRescaleImageMagickLocalContrastImageMagickMagnifyImageMagickMergeImageLayersMagickMinifyImageMagickModulateImageMagickMontageImageMagickMorphImagesMagickMorphologyImageMagickMotionBlurImageMagickNegateImageMagickNewImageMagickNextImageMagickNormalizeImageMagickOilPaintImageMagickOpaquePaintImageMagickOptimizeImageLayersMagickOptimizeImageTransparencyMagickOrderedDitherImageMagickPingImageMagickPingImageBlobMagickPingImageFileMagickPolaroidImageMagickPosterizeImageMagickPreviewImagesMagickPreviousImageMagickQuantizeImageMagickQuantizeImagesMagickRotationalBlurImageMagickRaiseImageMagickRandomThresholdImageMagickReadImageMagickReadImageBlobMagickReadImageFileMagickRemapImageMagickRemoveImageMagickResampleImageMagickResetImagePageMagickResizeImageMagickRollImageMagickRotateImageMagickSampleImageMagickScaleImageMagickSegmentImageMagickSelectiveBlurImageMagickSeparateImageMagickSepiaToneImageMagickSetImageMagickSetImageAlphaChannelMagickSetImageBackgroundColorMagickSetImageBluePrimaryMagickSetImageBorderColorMagickSetImageChannelMaskMagickSetImageMaskMagickSetImageColorMagickSetImageColormapColorMagickSetImageColorspaceMagickSetImageComposeMagickSetImageCompressionMagickSetImageCompressionQualityMagickSetImageDelayMagickSetImageDepthMagickSetImageDisposeMagickSetImageEndianMagickSetImageExtentMagickSetImageFilenameMagickSetImageFormatMagickSetImageFuzzMagickSetImageGammaMagickSetImageGravityMagickSetImageGreenPrimaryMagickSetImageInterlaceSchemeMagickSetImageInterpolateMethodMagickSetImageIterationsMagickSetImageMatteMagickSetImageMatteColorMagickSetImageAlphaMagickSetImageOrientationMagickSetImagePageMagickSetImageProgressMonitorMagickSetImageRedPrimaryMagickSetImageRenderingIntentMagickSetImageResolutionMagickSetImageSceneMagickSetImageTicksPerSecondMagickSetImageTypeMagickSetImageUnitsMagickSetImageVirtualPixelMethodMagickSetImageWhitePointMagickShadeImageMagickShadowImageMagickSharpenImageMagickShaveImageMagickShearImageMagickSigmoidalContrastImageMagickSimilarityImageMagickSketchImageMagickSmushImagesMagickSolarizeImageMagickSparseColorImageMagickSpliceImageMagickSpreadImageMagickStatisticImageMagickSteganoImageMagickStereoImageMagickStripImageMagickSwirlImageMagickTextureImageMagickThresholdImageMagickThumbnailImageMagickTintImageMagickTransformImageColorspaceMagickTransparentPaintImageMagickTransposeImageMagickTransverseImageMagickTrimImageMagickUniqueImageColorsMagickUnsharpMaskImageMagickVignetteImageMagickWaveImageMagickWhiteThresholdImageMagickWriteImageMagickWriteImageFileMagickWriteImagesMagickWriteImagesFile

+ +

GetImageFromMagickWand

+ +

GetImageFromMagickWand() returns the current image from the magick wand.

+ +

The format of the GetImageFromMagickWand method is:

+ +
+Image *GetImageFromMagickWand(const MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickAdaptiveBlurImage

+ +

MagickAdaptiveBlurImage() adaptively blurs the image by blurring less intensely near image edges and more intensely far from edges. We blur 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 MagickAdaptiveBlurImage() selects a suitable radius for you.

+ +

The format of the MagickAdaptiveBlurImage method is:

+ +
+MagickBooleanType MagickAdaptiveBlurImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickAdaptiveResizeImage

+ +

MagickAdaptiveResizeImage() adaptively resize image with data dependent triangulation.

+ +

MagickBooleanType MagickAdaptiveResizeImage(MagickWand *wand, const size_t columns,const size_t rows)

+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
+

MagickAdaptiveSharpenImage

+ +

MagickAdaptiveSharpenImage() adaptively sharpens the image by sharpening more intensely near image edges and less intensely far from edges. We sharpen 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 MagickAdaptiveSharpenImage() selects a suitable radius for you.

+ +

The format of the MagickAdaptiveSharpenImage method is:

+ +
+MagickBooleanType MagickAdaptiveSharpenImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickAdaptiveThresholdImage

+ +

MagickAdaptiveThresholdImage() selects an individual threshold for each pixel based on the range of intensity values in its local neighborhood. This allows for thresholding of an image whose global intensity histogram doesn't contain distinctive peaks.

+ +

The format of the AdaptiveThresholdImage method is:

+ +
+MagickBooleanType MagickAdaptiveThresholdImage(MagickWand *wand,
+  const size_t width,const size_t height,const double bias)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the width of the local neighborhood.
+ +
+
height
+
the height of the local neighborhood.
+ +
+
offset
+
the mean bias.
+ +
+
+

MagickAddImage

+ +

MagickAddImage() adds a clone of the images from the second wand and inserts them into the first wand.

+ +

Use MagickSetLastIterator(), to append new images into an existing wand, current image will be set to last image so later adds with also be appened to end of wand.

+ +

Use MagickSetFirstIterator() to prepend new images into wand, any more images added will also be prepended before other images in the wand. However the order of a list of new images will not change.

+ +

Otherwise the new images will be inserted just after the current image, and any later image will also be added after this current image but before the previously added images. Caution is advised when multiple image adds are inserted into the middle of the wand image list.

+ +

The format of the MagickAddImage method is:

+ +
+MagickBooleanType MagickAddImage(MagickWand *wand,
+  const MagickWand *add_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
add_wand
+
A wand that contains the image list to be added
+ +
+
+

MagickAddNoiseImage

+ +

MagickAddNoiseImage() adds random noise to the image.

+ +

The format of the MagickAddNoiseImage method is:

+ +
+MagickBooleanType MagickAddNoiseImage(MagickWand *wand,
+  const NoiseType noise_type,const double attenuate)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
noise_type
+
The type of noise: Uniform, Gaussian, Multiplicative, Impulse, Laplacian, or Poisson.
+ +
+
attenuate
+
attenuate the random distribution.
+ +
+
+

MagickAffineTransformImage

+ +

MagickAffineTransformImage() transforms an image as dictated by the affine matrix of the drawing wand.

+ +

The format of the MagickAffineTransformImage method is:

+ +
+MagickBooleanType MagickAffineTransformImage(MagickWand *wand,
+  const DrawingWand *drawing_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the draw wand.
+ +
+
+

MagickAnnotateImage

+ +

MagickAnnotateImage() annotates an image with text.

+ +

The format of the MagickAnnotateImage method is:

+ +
+MagickBooleanType MagickAnnotateImage(MagickWand *wand,
+  const DrawingWand *drawing_wand,const double x,const double y,
+  const double angle,const char *text)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the draw wand.
+ +
+
x
+
x ordinate to left of text
+ +
+
y
+
y ordinate to text baseline
+ +
+
angle
+
rotate text relative to this angle.
+ +
+
text
+
text to draw
+ +
+
+

MagickAnimateImages

+ +

MagickAnimateImages() animates an image or image sequence.

+ +

The format of the MagickAnimateImages method is:

+ +
+MagickBooleanType MagickAnimateImages(MagickWand *wand,
+  const char *server_name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
server_name
+
the X server name.
+ +
+
+

MagickAppendImages

+ +

MagickAppendImages() append the images in a wand from the current image onwards, creating a new wand with the single image result. This is affected by the gravity and background settings of the first image.

+ +

Typically you would call either MagickResetIterator() or MagickSetFirstImage() before calling this function to ensure that all the images in the wand's image list will be appended together.

+ +

The format of the MagickAppendImages method is:

+ +
+MagickWand *MagickAppendImages(MagickWand *wand,
+  const MagickBooleanType stack)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
stack
+
By default, images are stacked left-to-right. Set stack to MagickTrue to stack them top-to-bottom.
+ +
+
+

MagickAutoGammaImage

+ +

MagickAutoGammaImage() extracts the 'mean' from the image and adjust the image to try make set its gamma appropriatally.

+ +

The format of the MagickAutoGammaImage method is:

+ +
+MagickBooleanType MagickAutoGammaImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickAutoLevelImage

+ +

MagickAutoLevelImage() adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

+ +

The format of the MagickAutoLevelImage method is:

+ +
+MagickBooleanType MagickAutoLevelImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickAutoOrientImage

+ +

MagickAutoOrientImage() adjusts an image so that its orientation is suitable $ for viewing (i.e. top-left orientation).

+ +

The format of the MagickAutoOrientImage method is:

+ +
+MagickBooleanType MagickAutoOrientImage(MagickWand *image)
+
+ +

A description of each parameter follows:

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

MagickBlackThresholdImage

+ +

MagickBlackThresholdImage() is like MagickThresholdImage() but forces all pixels below the threshold into black while leaving all pixels above the threshold unchanged.

+ +

The format of the MagickBlackThresholdImage method is:

+ +
+MagickBooleanType MagickBlackThresholdImage(MagickWand *wand,
+  const PixelWand *threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
the pixel wand.
+ +
+
+

MagickBlueShiftImage

+ +

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

+ +

The format of the MagickBlueShiftImage method is:

+ +
+MagickBooleanType MagickBlueShiftImage(MagickWand *wand,
+  const double factor)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
factor
+
the blue shift factor (default 1.5)
+ +
+
+

MagickBlurImage

+ +

MagickBlurImage() blurs an image. We convolve the image with a gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and BlurImage() selects a suitable radius for you.

+ +

The format of the MagickBlurImage method is:

+ +
+MagickBooleanType MagickBlurImage(MagickWand *wand,const double radius,
+  const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the , in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the , in pixels.
+ +
+
+

MagickBorderImage

+ +

MagickBorderImage() surrounds the image with a border of the color defined by the bordercolor pixel wand.

+ +

The format of the MagickBorderImage method is:

+ +
+MagickBooleanType MagickBorderImage(MagickWand *wand,
+  const PixelWand *bordercolor,const size_t width,
+  const size_t height,const CompositeOperator compose)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
bordercolor
+
the border color pixel wand.
+ +
+
width
+
the border width.
+ +
+
height
+
the border height.
+ +
+
compose
+
the composite operator.
+ +
+
+

Use MagickBrightnessContrastImage

+ +

Use MagickBrightnessContrastImage() to change the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.

+ + +

The format of the MagickBrightnessContrastImage method is:

+ +
+MagickBooleanType MagickBrightnessContrastImage(MagickWand *wand,
+  const double brightness,const double contrast)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
brightness
+
the brightness percent (-100 .. 100).
+ +
+
contrast
+
the contrast percent (-100 .. 100).
+ +
+
+

MagickChannelFxImage

+ +

MagickChannelFxImage() applies a channel expression to the specified image. The expression consists of one or more channels, either mnemonic or numeric (e.g. red, 1), separated by actions as follows:

+ +
+
+ +
<=> exchange two channels (e.g. red<=>blue) => transfer a channel to another (e.g. red=>green) , separate channel operations (e.g. red, green) | read channels from next input image (e.g. red | green) ; write channels to next output image (e.g. red; green; blue)
+ +
A channel without a operation symbol implies extract. For example, to create 3 grayscale images from the red, green, and blue channels of an image, use:
+ +
+    -channel-fx "red; green; blue"
+
+ +

The format of the MagickChannelFxImage method is: + +

+MagickWand *MagickChannelFxImage(MagickWand *wand,const char *expression)
+
+ +

A description of each parameter follows: + +

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

MagickCharcoalImage

+ +

MagickCharcoalImage() simulates a charcoal drawing.

+ +

The format of the MagickCharcoalImage method is:

+ +
+MagickBooleanType MagickCharcoalImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickChopImage

+ +

MagickChopImage() removes a region of an image and collapses the image to occupy the removed portion

+ +

The format of the MagickChopImage method is:

+ +
+MagickBooleanType MagickChopImage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x offset.
+ +
+
y
+
the region y offset.
+ +
+ +
+
+

MagickClampImage

+ +

MagickClampImage() restricts the color range from 0 to the quantum depth.

+ +

The format of the MagickClampImage method is:

+ +
+MagickBooleanType MagickClampImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickClipImage

+ +

MagickClipImage() clips along the first path from the 8BIM profile, if present.

+ +

The format of the MagickClipImage method is:

+ +
+MagickBooleanType MagickClipImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickClipImagePath

+ +

MagickClipImagePath() clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. Id may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

+ +

The format of the MagickClipImagePath method is:

+ +
+MagickBooleanType MagickClipImagePath(MagickWand *wand,
+  const char *pathname,const MagickBooleanType inside)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pathname
+
name of clipping path resource. If name is preceded by #, use clipping path numbered by name.
+ +
+
inside
+
if non-zero, later operations take effect inside clipping path. Otherwise later operations take effect outside clipping path.
+ +
+
+

MagickClutImage

+ +

MagickClutImage() replaces colors in the image from a color lookup table.

+ +

The format of the MagickClutImage method is:

+ +
+MagickBooleanType MagickClutImage(MagickWand *wand,
+  const MagickWand *clut_wand,const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
clut_image
+
the clut image.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickCoalesceImages

+ +

MagickCoalesceImages() composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. MagickCoalesceImages() returns a new sequence where each image in the sequence is the same size as the first and composited with the next image in the sequence.

+ +

The format of the MagickCoalesceImages method is:

+ +
+MagickWand *MagickCoalesceImages(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickColorDecisionListImage

+ +

MagickColorDecisionListImage() accepts a lightweight Color Correction Collection (CCC) file which solely contains one or more color corrections and applies the color correction to the image. Here is a sample CCC file:

+ +
+    <ColorCorrectionCollection xmlns="urn:ASC:CDL:v1.2">
+    <ColorCorrection id="cc03345">
+          <SOPNode>
+               <Slope> 0.9 1.2 0.5 </Slope>
+               <Offset> 0.4 -0.5 0.6 </Offset>
+               <Power> 1.0 0.8 1.5 </Power>
+          </SOPNode>
+          <SATNode>
+               <Saturation> 0.85 </Saturation>
+          </SATNode>
+    </ColorCorrection>
+    </ColorCorrectionCollection>
+
+ +

which includes the offset, slope, and power for each of the RGB channels as well as the saturation.

+ +

The format of the MagickColorDecisionListImage method is:

+ +
+MagickBooleanType MagickColorDecisionListImage(MagickWand *wand,
+  const char *color_correction_collection)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
color_correction_collection
+
the color correction collection in XML.
+ +
+
+

MagickColorizeImage

+ +

MagickColorizeImage() blends the fill color with each pixel in the image.

+ +

The format of the MagickColorizeImage method is:

+ +
+MagickBooleanType MagickColorizeImage(MagickWand *wand,
+  const PixelWand *colorize,const PixelWand *blend)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
colorize
+
the colorize pixel wand.
+ +
+
alpha
+
the alpha pixel wand.
+ +
+
+

MagickColorMatrixImage

+ +

MagickColorMatrixImage() apply color transformation to an image. The 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 MagickColorMatrixImage method is:

+ +
+MagickBooleanType MagickColorMatrixImage(MagickWand *wand,
+  const KernelInfo *color_matrix)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
color_matrix
+
the color matrix.
+ +
+
+

MagickCombineImages

+ +

MagickCombineImages() combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified hannels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

+ +

The format of the MagickCombineImages method is:

+ +
+MagickWand *MagickCombineImages(MagickWand *wand,
+  const ColorspaceType colorspace)
+
+ +

A description of each parameter follows:

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

MagickCommentImage

+ +

MagickCommentImage() adds a comment to your image.

+ +

The format of the MagickCommentImage method is:

+ +
+MagickBooleanType MagickCommentImage(MagickWand *wand,
+  const char *comment)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
comment
+
the image comment.
+ +
+
+

MagickCompareImagesLayers

+ +

MagickCompareImagesLayers() compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

+ +

The format of the MagickCompareImagesLayers method is:

+ +
+MagickWand *MagickCompareImagesLayers(MagickWand *wand,
+  const LayerMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the compare method.
+ +
+
+

MagickCompareImages

+ +

MagickCompareImages() compares an image to a reconstructed image and returns the specified difference image.

+ +

The format of the MagickCompareImages method is:

+ +
+MagickWand *MagickCompareImages(MagickWand *wand,
+  const MagickWand *reference,const MetricType metric,
+  double *distortion)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
reference
+
the reference wand.
+ +
+
metric
+
the metric.
+ +
+
distortion
+
the computed distortion between the images.
+ +
+
+

MagickCompositeImage

+ +

MagickCompositeImage() composite one image onto another at the specified offset.

+ +

The format of the MagickCompositeImage method is:

+ +
+MagickBooleanType MagickCompositeImage(MagickWand *wand,
+  const MagickWand *source_wand,const CompositeOperator compose,
+  const MagickBooleanType clip_to_self,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand holding the destination images
+ +
+
source_image
+
the magick wand holding source image.
+ +
+
compose
+
This operator affects how the composite is applied to the image. The default is Over. These are some of the compose methods availble.
+ +
OverCompositeOp InCompositeOp OutCompositeOp AtopCompositeOp XorCompositeOp PlusCompositeOp MinusCompositeOp AddCompositeOp SubtractCompositeOp DifferenceCompositeOp BumpmapCompositeOp CopyCompositeOp DisplaceCompositeOp
+ +
+
clip_to_self
+
set to MagickTrue to limit composition to area composed.
+ +
+
x
+
the column offset of the composited image.
+ +
+
y
+
the row offset of the composited image.
+ +
+
+

MagickCompositeImageGravity

+ +

MagickCompositeImageGravity() composite one image onto another using the specified gravity.

+ +

The format of the MagickCompositeImageGravity method is:

+ +
+MagickBooleanType MagickCompositeImageGravity(MagickWand *wand,
+  const MagickWand *source_wand,const CompositeOperator compose,
+  const GravityType gravity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand holding the destination images
+ +
+
source_image
+
the magick wand holding source image.
+ +
+
compose
+
This operator affects how the composite is applied to the image. The default is Over. These are some of the compose methods availble.
+ +
OverCompositeOp InCompositeOp OutCompositeOp AtopCompositeOp XorCompositeOp PlusCompositeOp MinusCompositeOp AddCompositeOp SubtractCompositeOp DifferenceCompositeOp BumpmapCompositeOp CopyCompositeOp DisplaceCompositeOp
+ +
+
gravity
+
positioning gravity (NorthWestGravity, NorthGravity, NorthEastGravity, WestGravity, CenterGravity, EastGravity, SouthWestGravity, SouthGravity, SouthEastGravity)
+ +
+
+

MagickCompositeLayers

+ +

MagickCompositeLayers() composite the images in the source wand over the images in the destination wand in sequence, starting with the current image in both lists.

+ +

Each layer from the two image lists are composted together until the end of one of the image lists is reached. The offset of each composition is also adjusted to match the virtual canvas offsets of each layer. As such the given offset is relative to the virtual canvas, and not the actual image.

+ +

Composition uses given x and y offsets, as the 'origin' location of the source images virtual canvas (not the real image) allowing you to compose a list of 'layer images' into the destiantioni images. This makes it well sutiable for directly composing 'Clears Frame Animations' or 'Coaleased Animations' onto a static or other 'Coaleased Animation' destination image list. GIF disposal handling is not looked at.

+ +

Special case:- If one of the image sequences is the last image (just a single image remaining), that image is repeatally composed with all the images in the other image list. Either the source or destination lists may be the single image, for this situation.

+ +

In the case of a single destination image (or last image given), that image will ve cloned to match the number of images remaining in the source image list.

+ +

This is equivelent to the "-layer Composite" Shell API operator.

+ +

The format of the MagickCompositeLayers method is:

+ +
+MagickBooleanType MagickCompositeLayers(MagickWand *wand,
+  const MagickWand *source_wand, const CompositeOperator compose,
+  const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand holding destaintion images
+ +
+
source_wand
+
the wand holding the source images
+ +
+
compose, x, y
+
composition arguments
+ +
+
+

MagickContrastImage

+ +

MagickContrastImage() enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a value other than 0 to increase the image contrast otherwise the contrast is reduced.

+ +

The format of the MagickContrastImage method is:

+ +
+MagickBooleanType MagickContrastImage(MagickWand *wand,
+  const MagickBooleanType sharpen)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
sharpen
+
Increase or decrease image contrast.
+ +
+ +
+
+

MagickContrastStretchImage

+ +

MagickContrastStretchImage() enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available. You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickContrastStretchImage method is:

+ +
+MagickBooleanType MagickContrastStretchImage(MagickWand *wand,
+  const double black_point,const double white_point)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
black_point
+
the black point.
+ +
+
white_point
+
the white point.
+ +
+
+

MagickConvolveImage

+ +

MagickConvolveImage() applies a custom convolution kernel to the image.

+ +

The format of the MagickConvolveImage method is:

+ +
+MagickBooleanType MagickConvolveImage(MagickWand *wand,
+  const KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
kernel
+
An array of doubles representing the convolution kernel.
+ +
+
+

MagickCropImage

+ +

MagickCropImage() extracts a region of the image.

+ +

The format of the MagickCropImage method is:

+ +
+MagickBooleanType MagickCropImage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x-offset.
+ +
+
y
+
the region y-offset.
+ +
+
+

MagickCycleColormapImage

+ +

MagickCycleColormapImage() displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychodelic effect.

+ +

The format of the MagickCycleColormapImage method is:

+ +
+MagickBooleanType MagickCycleColormapImage(MagickWand *wand,
+  const ssize_t displace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pixel_wand
+
the pixel wand.
+ +
+
+

MagickConstituteImage

+ +

MagickConstituteImage() adds an image to the wand comprised of the pixel data you supply. The pixel data must be in scanline order top-to-bottom. The data can be char, short int, int, float, or double. Float and double require the pixels to be normalized [0..1], otherwise [0..Max], where Max is the maximum value the type can accomodate (e.g. 255 for char). For example, to create a 640x480 image from unsigned red-green-blue character data, use

+ +

MagickConstituteImage(wand,640,480,"RGB",CharPixel,pixels);

+ +

The format of the MagickConstituteImage method is:

+ +
+MagickBooleanType MagickConstituteImage(MagickWand *wand,
+  const size_t columns,const size_t rows,const char *map,
+  const StorageType storage,void *pixels)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
width in pixels of the image.
+ +
+
rows
+
height in pixels of the image.
+ +
+
map
+
This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = alpha (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
+ +
+
storage
+
Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, DoublePixel, FloatPixel, IntegerPixel, LongPixel, QuantumPixel, or ShortPixel.
+ +
+
pixels
+
This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
+ +
+ +
+
+

MagickDecipherImage

+ +

MagickDecipherImage() converts cipher pixels to plain pixels.

+ +

The format of the MagickDecipherImage method is:

+ +
+MagickBooleanType MagickDecipherImage(MagickWand *wand,
+  const char *passphrase)
+
+ +

A description of each parameter follows:

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

MagickDeconstructImages

+ +

MagickDeconstructImages() compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

+ +

The format of the MagickDeconstructImages method is:

+ +
+MagickWand *MagickDeconstructImages(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickDeskewImage

+ +

MagickDeskewImage() removes skew from the image. Skew is an artifact that occurs in scanned images because of the camera being misaligned, imperfections in the scanning or surface, or simply because the paper was not placed completely flat when scanned.

+ +

The format of the MagickDeskewImage method is:

+ +
+MagickBooleanType MagickDeskewImage(MagickWand *wand,
+  const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
separate background from foreground.
+ +
+
+

MagickDespeckleImage

+ +

MagickDespeckleImage() reduces the speckle noise in an image while perserving the edges of the original image.

+ +

The format of the MagickDespeckleImage method is:

+ +
+MagickBooleanType MagickDespeckleImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickDestroyImage

+ +

MagickDestroyImage() dereferences an image, deallocating memory associated with the image if the reference count becomes zero.

+ +

The format of the MagickDestroyImage method is:

+ +
+Image *MagickDestroyImage(Image *image)
+
+ +

A description of each parameter follows:

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

MagickDisplayImage

+ +

MagickDisplayImage() displays an image.

+ +

The format of the MagickDisplayImage method is:

+ +
+MagickBooleanType MagickDisplayImage(MagickWand *wand,
+  const char *server_name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
server_name
+
the X server name.
+ +
+
+

MagickDisplayImages

+ +

MagickDisplayImages() displays an image or image sequence.

+ +

The format of the MagickDisplayImages method is:

+ +
+MagickBooleanType MagickDisplayImages(MagickWand *wand,
+  const char *server_name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
server_name
+
the X server name.
+ +
+
+

MagickDistortImage

+ +

MagickDistortImage() distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usally of the same size as the source image, unless 'bestfit' is set to true.

+ +

If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping.

+ +

The format of the MagickDistortImage method is:

+ +
+MagickBooleanType MagickDistortImage(MagickWand *wand,
+  const DistortMethod method,const size_t number_arguments,
+  const double *arguments,const MagickBooleanType bestfit)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be distorted.
+ +
+
method
+
the method of image distortion.
+ +
ArcDistortion always ignores the source image offset, and always 'bestfit' the destination image with the top left corner offset relative to the polar mapping center.
+ +
Bilinear has no simple inverse mapping so it does not allow 'bestfit' style of image distortion.
+ +
Affine, Perspective, and Bilinear, do least squares fitting of the distortion when more than the minimum number of control point pairs are provided.
+ +
Perspective, and Bilinear, falls back to a Affine distortion when less that 4 control point pairs are provided. While Affine distortions let you use any number of control point pairs, that is Zero pairs is a no-Op (viewport only) distrotion, one pair is a translation and two pairs of control points do a scale-rotate-translate, without any shearing.
+ +
+
number_arguments
+
the number of arguments given for this distortion method.
+ +
+
arguments
+
the arguments for this distortion method.
+ +
+
bestfit
+
Attempt to resize destination to fit distorted source.
+ +
+
+

MagickDrawImage

+ +

MagickDrawImage() renders the drawing wand on the current image.

+ +

The format of the MagickDrawImage method is:

+ +
+MagickBooleanType MagickDrawImage(MagickWand *wand,
+  const DrawingWand *drawing_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the draw wand.
+ +
+
+

MagickEdgeImage

+ +

MagickEdgeImage() enhance edges within the image with a convolution filter of the given radius. Use a radius of 0 and Edge() selects a suitable radius for you.

+ +

The format of the MagickEdgeImage method is:

+ +
+MagickBooleanType MagickEdgeImage(MagickWand *wand,const double radius)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the pixel neighborhood.
+ +
+
+

MagickEmbossImage

+ +

MagickEmbossImage() returns a grayscale image with a three-dimensional effect. 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 Emboss() selects a suitable radius for you.

+ +

The format of the MagickEmbossImage method is:

+ +
+MagickBooleanType MagickEmbossImage(MagickWand *wand,const double radius,
+  const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickEncipherImage

+ +

MagickEncipherImage() converts plaint pixels to cipher pixels.

+ +

The format of the MagickEncipherImage method is:

+ +
+MagickBooleanType MagickEncipherImage(MagickWand *wand,
+  const char *passphrase)
+
+ +

A description of each parameter follows:

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

MagickEnhanceImage

+ +

MagickEnhanceImage() applies a digital filter that improves the quality of a noisy image.

+ +

The format of the MagickEnhanceImage method is:

+ +
+MagickBooleanType MagickEnhanceImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickEqualizeImage

+ +

MagickEqualizeImage() equalizes the image histogram.

+ +

The format of the MagickEqualizeImage method is:

+ +
+MagickBooleanType MagickEqualizeImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
channel
+
the image channel(s).
+ +
+
+

MagickEvaluateImage

+ +

MagickEvaluateImage() applys an arithmetic, relational, or logical expression to an image. Use these operators to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

+ +

The format of the MagickEvaluateImage method is:

+ +
+MagickBooleanType MagickEvaluateImage(MagickWand *wand,
+  const MagickEvaluateOperator operator,const double value)
+MagickBooleanType MagickEvaluateImages(MagickWand *wand,
+  const MagickEvaluateOperator operator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
op
+
A channel operator.
+ +
+
value
+
A value value.
+ +
+
+

MagickExportImagePixels

+ +

MagickExportImagePixels() extracts pixel data from an image and returns it to you. The method returns MagickTrue on success otherwise MagickFalse if an error is encountered. The data is returned as char, short int, int, ssize_t, float, or double in the order specified by map.

+ +

Suppose you want to extract the first scanline of a 640x480 image as character data in red-green-blue order:

+ +
+MagickExportImagePixels(wand,0,0,640,1,"RGB",CharPixel,pixels);
+
+ +

The format of the MagickExportImagePixels method is:

+ +
+MagickBooleanType MagickExportImagePixels(MagickWand *wand,
+  const ssize_t x,const ssize_t y,const size_t columns,
+  const size_t rows,const char *map,const StorageType storage,
+  void *pixels)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x, y, columns, rows
+
These values define the perimeter of a region of pixels you want to extract.
+ +
+
map
+
This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = alpha (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
+ +
+
storage
+
Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, DoublePixel, FloatPixel, IntegerPixel, LongPixel, QuantumPixel, or ShortPixel.
+ +
+
pixels
+
This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
+ +
+
+

MagickExtentImage

+ +

MagickExtentImage() extends the image as defined by the geometry, gravity, and wand background color. Set the (x,y) offset of the geometry to move the original wand relative to the extended wand.

+ +

The format of the MagickExtentImage method is:

+ +
+MagickBooleanType MagickExtentImage(MagickWand *wand,const size_t width,
+  const size_t height,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x offset.
+ +
+
y
+
the region y offset.
+ +
+
+

MagickFlipImage

+ +

MagickFlipImage() creates a vertical mirror image by reflecting the pixels around the central x-axis.

+ +

The format of the MagickFlipImage method is:

+ +
+MagickBooleanType MagickFlipImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickFloodfillPaintImage

+ +

MagickFloodfillPaintImage() changes the color value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the color value is changed for any neighbor pixel that does not match the bordercolor member of image.

+ +

The format of the MagickFloodfillPaintImage method is:

+ +
+MagickBooleanType MagickFloodfillPaintImage(MagickWand *wand,
+  const PixelWand *fill,const double fuzz,const PixelWand *bordercolor,
+  const ssize_t x,const ssize_t y,const MagickBooleanType invert)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
fill
+
the floodfill color pixel wand.
+ +
+
fuzz
+
By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
+ +
+
bordercolor
+
the border color pixel wand.
+ +
+
x,y
+
the starting location of the operation.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
+

MagickFlopImage

+ +

MagickFlopImage() creates a horizontal mirror image by reflecting the pixels around the central y-axis.

+ +

The format of the MagickFlopImage method is:

+ +
+MagickBooleanType MagickFlopImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickForwardFourierTransformImage

+ +

MagickForwardFourierTransformImage() implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

+ +

The format of the MagickForwardFourierTransformImage method is:

+ +
+MagickBooleanType MagickForwardFourierTransformImage(MagickWand *wand,
+  const MagickBooleanType magnitude)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
magnitude
+
if true, return as magnitude / phase pair otherwise a real / imaginary image pair.
+ +
+
+

MagickFrameImage

+ +

MagickFrameImage() adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

+ +

The format of the MagickFrameImage method is:

+ +
+MagickBooleanType MagickFrameImage(MagickWand *wand,
+  const PixelWand *matte_color,const size_t width,
+  const size_t height,const ssize_t inner_bevel,
+  const ssize_t outer_bevel,const CompositeOperator compose)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
matte_color
+
the frame color pixel wand.
+ +
+
width
+
the border width.
+ +
+
height
+
the border height.
+ +
+
inner_bevel
+
the inner bevel width.
+ +
+
outer_bevel
+
the outer bevel width.
+ +
+
compose
+
the composite operator.
+ +
+
+

MagickFunctionImage

+ +

MagickFunctionImage() applys an arithmetic, relational, or logical expression to an image. Use these operators to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

+ +

The format of the MagickFunctionImage method is:

+ +
+MagickBooleanType MagickFunctionImage(MagickWand *wand,
+  const MagickFunction function,const size_t number_arguments,
+  const double *arguments)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
function
+
the image function.
+ +
+
number_arguments
+
the number of function arguments.
+ +
+
arguments
+
the function arguments.
+ +
+
+

MagickFxImage

+ +

MagickFxImage() evaluate expression for each pixel in the image.

+ +

The format of the MagickFxImage method is:

+ +
+MagickWand *MagickFxImage(MagickWand *wand,const char *expression)
+
+ +

A description of each parameter follows:

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

MagickGammaImage

+ +

MagickGammaImage() gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickGammaImage method is:

+ +
+MagickBooleanType MagickGammaImage(MagickWand *wand,const double gamma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
level
+
Define the level of gamma correction.
+ +
+
+

MagickGaussianBlurImage

+ +

MagickGaussianBlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and MagickGaussianBlurImage() selects a suitable radius for you.

+ +

The format of the MagickGaussianBlurImage method is:

+ +
+MagickBooleanType MagickGaussianBlurImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickGetImage

+ +

MagickGetImage() gets the image at the current image index.

+ +

The format of the MagickGetImage method is:

+ +
+MagickWand *MagickGetImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageAlphaChannel

+ +

MagickGetImageAlphaChannel() returns MagickFalse if the image alpha channel is not activated. That is, the image is RGB rather than RGBA or CMYK rather than CMYKA.

+ +

The format of the MagickGetImageAlphaChannel method is:

+ +
+MagickBooleanType MagickGetImageAlphaChannel(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageMask

+ +

MagickGetImageMask() gets the image clip mask at the current image index.

+ +

The format of the MagickGetImageMask method is:

+ +
+MagickWand *MagickGetImageMask(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
type
+
type of mask, ReadPixelMask or WritePixelMask.
+ +
+
+

MagickGetImageBackgroundColor

+ +

MagickGetImageBackgroundColor() returns the image background color.

+ +

The format of the MagickGetImageBackgroundColor method is:

+ +
+MagickBooleanType MagickGetImageBackgroundColor(MagickWand *wand,
+  PixelWand *background_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background_color
+
Return the background color.
+ +
+
+

MagickGetImageBlob

+ +

MagickGetImageBlob() implements direct to memory image formats. It returns the image as a blob (a formatted "file" in memory) and its length, starting from the current position in the image sequence. Use MagickSetImageFormat() to set the format to write to the blob (GIF, JPEG, PNG, etc.).

+ +

Utilize MagickResetIterator() to ensure the write is from the beginning of the image sequence.

+ +

Use MagickRelinquishMemory() to free the blob when you are done with it.

+ +

The format of the MagickGetImageBlob method is:

+ +
+unsigned char *MagickGetImageBlob(MagickWand *wand,size_t *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
length
+
the length of the blob.
+ +
+
+

MagickGetImageBlob

+ +

MagickGetImageBlob() implements direct to memory image formats. It returns the image sequence as a blob and its length. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use MagickSetImageFormat().

+ +

Note, some image formats do not permit multiple images to the same image stream (e.g. JPEG). in this instance, just the first image of the sequence is returned as a blob.

+ +

The format of the MagickGetImagesBlob method is:

+ +
+unsigned char *MagickGetImagesBlob(MagickWand *wand,size_t *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
length
+
the length of the blob.
+ +
+
+

MagickGetImageBluePrimary

+ +

MagickGetImageBluePrimary() returns the chromaticy blue primary point for the image.

+ +

The format of the MagickGetImageBluePrimary method is:

+ +
+MagickBooleanType MagickGetImageBluePrimary(MagickWand *wand,double *x,
+  double *y,double *z)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the chromaticity blue primary x-point.
+ +
+
y
+
the chromaticity blue primary y-point.
+ +
+
z
+
the chromaticity blue primary z-point.
+ +
+
+

MagickGetImageBorderColor

+ +

MagickGetImageBorderColor() returns the image border color.

+ +

The format of the MagickGetImageBorderColor method is:

+ +
+MagickBooleanType MagickGetImageBorderColor(MagickWand *wand,
+  PixelWand *border_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
border_color
+
Return the border color.
+ +
+
+

MagickGetImageFeatures

+ +

MagickGetImageFeatures() returns features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance. The features include the angular second moment, contrast, correlation, sum of squares: variance, inverse difference moment, sum average, sum varience, sum entropy, entropy, difference variance, difference entropy, information measures of correlation 1, information measures of correlation 2, and maximum correlation coefficient. You can access the red channel contrast, for example, like this:

+ +
+channel_features=MagickGetImageFeatures(wand,1);
+contrast=channel_features[RedPixelChannel].contrast[0];
+
+ +

Use MagickRelinquishMemory() to free the statistics buffer.

+ +

The format of the MagickGetImageFeatures method is:

+ +
+ChannelFeatures *MagickGetImageFeatures(MagickWand *wand,
+  const size_t distance)
+
+ +

A description of each parameter follows:

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

MagickGetImageKurtosis

+ +

MagickGetImageKurtosis() gets the kurtosis and skewness of one or more image channels.

+ +

The format of the MagickGetImageKurtosis method is:

+ +
+MagickBooleanType MagickGetImageKurtosis(MagickWand *wand,
+  double *kurtosis,double *skewness)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
kurtosis
+
The kurtosis for the specified channel(s).
+ +
+
skewness
+
The skewness for the specified channel(s).
+ +
+
+

MagickGetImageMean

+ +

MagickGetImageMean() gets the mean and standard deviation of one or more image channels.

+ +

The format of the MagickGetImageMean method is:

+ +
+MagickBooleanType MagickGetImageMean(MagickWand *wand,double *mean,
+  double *standard_deviation)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
channel
+
the image channel(s).
+ +
+
mean
+
The mean pixel value for the specified channel(s).
+ +
+
standard_deviation
+
The standard deviation for the specified channel(s).
+ +
+
+

MagickGetImageRange

+ +

MagickGetImageRange() gets the range for one or more image channels.

+ +

The format of the MagickGetImageRange method is:

+ +
+MagickBooleanType MagickGetImageRange(MagickWand *wand,double *minima,
+  double *maxima)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
minima
+
The minimum pixel value for the specified channel(s).
+ +
+
maxima
+
The maximum pixel value for the specified channel(s).
+ +
+
+

MagickGetImageStatistics

+ +

MagickGetImageStatistics() returns statistics for each channel in the image. The statistics include the channel depth, its minima and maxima, the mean, the standard deviation, the kurtosis and the skewness. You can access the red channel mean, for example, like this:

+ +
+channel_statistics=MagickGetImageStatistics(wand);
+red_mean=channel_statistics[RedPixelChannel].mean;
+
+ +

Use MagickRelinquishMemory() to free the statistics buffer.

+ +

The format of the MagickGetImageStatistics method is:

+ +
+ChannelStatistics *MagickGetImageStatistics(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageColormapColor

+ +

MagickGetImageColormapColor() returns the color of the specified colormap index.

+ +

The format of the MagickGetImageColormapColor method is:

+ +
+MagickBooleanType MagickGetImageColormapColor(MagickWand *wand,
+  const size_t index,PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
index
+
the offset into the image colormap.
+ +
+
color
+
Return the colormap color in this wand.
+ +
+
+

MagickGetImageColors

+ +

MagickGetImageColors() gets the number of unique colors in the image.

+ +

The format of the MagickGetImageColors method is:

+ +
+size_t MagickGetImageColors(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageColorspace

+ +

MagickGetImageColorspace() gets the image colorspace.

+ +

The format of the MagickGetImageColorspace method is:

+ +
+ColorspaceType MagickGetImageColorspace(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageCompose

+ +

MagickGetImageCompose() returns the composite operator associated with the image.

+ +

The format of the MagickGetImageCompose method is:

+ +
+CompositeOperator MagickGetImageCompose(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageCompression

+ +

MagickGetImageCompression() gets the image compression.

+ +

The format of the MagickGetImageCompression method is:

+ +
+CompressionType MagickGetImageCompression(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageCompressionQuality

+ +

MagickGetImageCompressionQuality() gets the image compression quality.

+ +

The format of the MagickGetImageCompressionQuality method is:

+ +
+size_t MagickGetImageCompressionQuality(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageDelay

+ +

MagickGetImageDelay() gets the image delay.

+ +

The format of the MagickGetImageDelay method is:

+ +
+size_t MagickGetImageDelay(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageDepth

+ +

MagickGetImageDepth() gets the image depth.

+ +

The format of the MagickGetImageDepth method is:

+ +
+size_t MagickGetImageDepth(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageDispose

+ +

MagickGetImageDispose() gets the image disposal method.

+ +

The format of the MagickGetImageDispose method is:

+ +
+DisposeType MagickGetImageDispose(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageDistortion

+ +

MagickGetImageDistortion() compares an image to a reconstructed image and returns the specified distortion metric.

+ +

The format of the MagickGetImageDistortion method is:

+ +
+MagickBooleanType MagickGetImageDistortion(MagickWand *wand,
+  const MagickWand *reference,const MetricType metric,
+  double *distortion)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
reference
+
the reference wand.
+ +
+
metric
+
the metric.
+ +
+
distortion
+
the computed distortion between the images.
+ +
+
+

MagickGetImageDistortions

+ +

MagickGetImageDistortions() compares one or more pixel channels of an image to a reconstructed image and returns the specified distortion metrics.

+ +

Use MagickRelinquishMemory() to free the metrics when you are done with them.

+ +

The format of the MagickGetImageDistortion method is:

+ +
+double *MagickGetImageDistortion(MagickWand *wand,
+  const MagickWand *reference,const MetricType metric)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
reference
+
the reference wand.
+ +
+
metric
+
the metric.
+ +
+
+

MagickGetImageEndian

+ +

MagickGetImageEndian() gets the image endian.

+ +

The format of the MagickGetImageEndian method is:

+ +
+EndianType MagickGetImageEndian(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageFilename

+ +

MagickGetImageFilename() returns the filename of a particular image in a sequence.

+ +

The format of the MagickGetImageFilename method is:

+ +
+char *MagickGetImageFilename(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageFormat

+ +

MagickGetImageFormat() returns the format of a particular image in a sequence.

+ +

The format of the MagickGetImageFormat method is:

+ +
+char *MagickGetImageFormat(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageFuzz

+ +

MagickGetImageFuzz() gets the image fuzz.

+ +

The format of the MagickGetImageFuzz method is:

+ +
+double MagickGetImageFuzz(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageGamma

+ +

MagickGetImageGamma() gets the image gamma.

+ +

The format of the MagickGetImageGamma method is:

+ +
+double MagickGetImageGamma(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageGravity

+ +

MagickGetImageGravity() gets the image gravity.

+ +

The format of the MagickGetImageGravity method is:

+ +
+GravityType MagickGetImageGravity(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageGreenPrimary

+ +

MagickGetImageGreenPrimary() returns the chromaticy green primary point.

+ +

The format of the MagickGetImageGreenPrimary method is:

+ +
+MagickBooleanType MagickGetImageGreenPrimary(MagickWand *wand,double *x,
+  double *y,double *z)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the chromaticity green primary x-point.
+ +
+
y
+
the chromaticity green primary y-point.
+ +
+
z
+
the chromaticity green primary z-point.
+ +
+
+

MagickGetImageHeight

+ +

MagickGetImageHeight() returns the image height.

+ +

The format of the MagickGetImageHeight method is:

+ +
+size_t MagickGetImageHeight(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageHistogram

+ +

MagickGetImageHistogram() returns the image histogram as an array of PixelWand wands.

+ +

The format of the MagickGetImageHistogram method is:

+ +
+PixelWand **MagickGetImageHistogram(MagickWand *wand,
+  size_t *number_colors)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_colors
+
the number of unique colors in the image and the number of pixel wands returned.
+ +
+
+

MagickGetImageInterlaceScheme

+ +

MagickGetImageInterlaceScheme() gets the image interlace scheme.

+ +

The format of the MagickGetImageInterlaceScheme method is:

+ +
+InterlaceType MagickGetImageInterlaceScheme(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageInterpolateMethod

+ +

MagickGetImageInterpolateMethod() returns the interpolation method for the sepcified image.

+ +

The format of the MagickGetImageInterpolateMethod method is:

+ +
+PixelInterpolateMethod MagickGetImageInterpolateMethod(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageIterations

+ +

MagickGetImageIterations() gets the image iterations.

+ +

The format of the MagickGetImageIterations method is:

+ +
+size_t MagickGetImageIterations(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageLength

+ +

MagickGetImageLength() returns the image length in bytes.

+ +

The format of the MagickGetImageLength method is:

+ +
+MagickBooleanType MagickGetImageLength(MagickWand *wand,
+  MagickSizeType *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
length
+
the image length in bytes.
+ +
+
+

MagickGetImageMatteColor

+ +

MagickGetImageMatteColor() returns the image matte color.

+ +

The format of the MagickGetImageMatteColor method is:

+ +
+MagickBooleanType MagickGetImageMatteColor(MagickWand *wand,
+  PixelWand *matte_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
matte_color
+
return the alpha color.
+ +
+
+

MagickGetImageOrientation

+ +

MagickGetImageOrientation() returns the image orientation.

+ +

The format of the MagickGetImageOrientation method is:

+ +
+OrientationType MagickGetImageOrientation(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImagePage

+ +

MagickGetImagePage() returns the page geometry associated with the image.

+ +

The format of the MagickGetImagePage method is:

+ +
+MagickBooleanType MagickGetImagePage(MagickWand *wand,
+  size_t *width,size_t *height,ssize_t *x,ssize_t *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the page width.
+ +
+
height
+
the page height.
+ +
+
x
+
the page x-offset.
+ +
+
y
+
the page y-offset.
+ +
+
+

MagickGetImagePixelColor

+ +

MagickGetImagePixelColor() returns the color of the specified pixel.

+ +

The format of the MagickGetImagePixelColor method is:

+ +
+MagickBooleanType MagickGetImagePixelColor(MagickWand *wand,
+  const ssize_t x,const ssize_t y,PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x,y
+
the pixel offset into the image.
+ +
+
color
+
Return the colormap color in this wand.
+ +
+
+

MagickGetImageRedPrimary

+ +

MagickGetImageRedPrimary() returns the chromaticy red primary point.

+ +

The format of the MagickGetImageRedPrimary method is:

+ +
+MagickBooleanType MagickGetImageRedPrimary(MagickWand *wand,double *x,
+  double *y, double *z)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the chromaticity red primary x-point.
+ +
+
y
+
the chromaticity red primary y-point.
+ +
+
z
+
the chromaticity red primary z-point.
+ +
+
+

MagickGetImageRegion

+ +

MagickGetImageRegion() extracts a region of the image and returns it as a a new wand.

+ +

The format of the MagickGetImageRegion method is:

+ +
+MagickWand *MagickGetImageRegion(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x offset.
+ +
+
y
+
the region y offset.
+ +
+
+

MagickGetImageRenderingIntent

+ +

MagickGetImageRenderingIntent() gets the image rendering intent.

+ +

The format of the MagickGetImageRenderingIntent method is:

+ +
+RenderingIntent MagickGetImageRenderingIntent(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageResolution

+ +

MagickGetImageResolution() gets the image X and Y resolution.

+ +

The format of the MagickGetImageResolution method is:

+ +
+MagickBooleanType MagickGetImageResolution(MagickWand *wand,double *x,
+  double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the image x-resolution.
+ +
+
y
+
the image y-resolution.
+ +
+
+

MagickGetImageScene

+ +

MagickGetImageScene() gets the image scene.

+ +

The format of the MagickGetImageScene method is:

+ +
+size_t MagickGetImageScene(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageSignature

+ +

MagickGetImageSignature() generates an SHA-256 message digest for the image pixel stream.

+ +

The format of the MagickGetImageSignature method is:

+ +
+char *MagickGetImageSignature(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageTicksPerSecond

+ +

MagickGetImageTicksPerSecond() gets the image ticks-per-second.

+ +

The format of the MagickGetImageTicksPerSecond method is:

+ +
+size_t MagickGetImageTicksPerSecond(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageType

+ +

MagickGetImageType() gets the potential image type:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte

+ +

The format of the MagickGetImageType method is:

+ +
+ImageType MagickGetImageType(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageUnits

+ +

MagickGetImageUnits() gets the image units of resolution.

+ +

The format of the MagickGetImageUnits method is:

+ +
+ResolutionType MagickGetImageUnits(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageVirtualPixelMethod

+ +

MagickGetImageVirtualPixelMethod() returns the virtual pixel method for the sepcified image.

+ +

The format of the MagickGetImageVirtualPixelMethod method is:

+ +
+VirtualPixelMethod MagickGetImageVirtualPixelMethod(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageWhitePoint

+ +

MagickGetImageWhitePoint() returns the chromaticy white point.

+ +

The format of the MagickGetImageWhitePoint method is:

+ +
+MagickBooleanType MagickGetImageWhitePoint(MagickWand *wand,double *x,
+  double *y,double *z)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the chromaticity white x-point.
+ +
+
y
+
the chromaticity white y-point.
+ +
+
z
+
the chromaticity white z-point.
+ +
+
+

MagickGetImageWidth

+ +

MagickGetImageWidth() returns the image width.

+ +

The format of the MagickGetImageWidth method is:

+ +
+size_t MagickGetImageWidth(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetNumberImages

+ +

MagickGetNumberImages() returns the number of images associated with a magick wand.

+ +

The format of the MagickGetNumberImages method is:

+ +
+size_t MagickGetNumberImages(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageTotalInkDensity

+ +

MagickGetImageTotalInkDensity() gets the image total ink density.

+ +

The format of the MagickGetImageTotalInkDensity method is:

+ +
+double MagickGetImageTotalInkDensity(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickHaldClutImage

+ +

MagickHaldClutImage() replaces colors in the image from a Hald color lookup table. A Hald color lookup table is a 3-dimensional color cube mapped to 2 dimensions. Create it with the HALD coder. You can apply any color transformation to the Hald image and then use this method to apply the transform to the image.

+ +

The format of the MagickHaldClutImage method is:

+ +
+MagickBooleanType MagickHaldClutImage(MagickWand *wand,
+  const MagickWand *hald_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
hald_image
+
the hald CLUT image.
+ +
+
+

MagickHasNextImage

+ +

MagickHasNextImage() returns MagickTrue if the wand has more images when traversing the list in the forward direction

+ +

The format of the MagickHasNextImage method is:

+ +
+MagickBooleanType MagickHasNextImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickHasPreviousImage

+ +

MagickHasPreviousImage() returns MagickTrue if the wand has more images when traversing the list in the reverse direction

+ +

The format of the MagickHasPreviousImage method is:

+ +
+MagickBooleanType MagickHasPreviousImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickIdentifyImage

+ +

MagickIdentifyImage() identifies an image by printing its attributes to the file. Attributes include the image width, height, size, and others.

+ +

The format of the MagickIdentifyImage method is:

+ +
+const char *MagickIdentifyImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickIdentifyImageType

+ +

MagickIdentifyImageType() gets the potential image type:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte

+ +

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

+ +
+    (void) MagickSetImageType(wand,MagickIdentifyImageType(wand));
+
+ +

The format of the MagickIdentifyImageType method is:

+ +
+ImageType MagickIdentifyImageType(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickImplodeImage

+ +

MagickImplodeImage() 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 MagickImplodeImage method is:

+ +
+MagickBooleanType MagickImplodeImage(MagickWand *wand,
+  const double radius,const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
amount
+
Define the extent of the implosion.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickImportImagePixels

+ +

MagickImportImagePixels() accepts pixel datand stores it in the image at the location you specify. The method returns MagickFalse on success otherwise MagickTrue if an error is encountered. The pixel data can be either char, short int, int, ssize_t, float, or double in the order specified by map.

+ +

Suppose your want to upload the first scanline of a 640x480 image from character data in red-green-blue order:

+ +
+MagickImportImagePixels(wand,0,0,640,1,"RGB",CharPixel,pixels);
+
+ +

The format of the MagickImportImagePixels method is:

+ +
+MagickBooleanType MagickImportImagePixels(MagickWand *wand,
+  const ssize_t x,const ssize_t y,const size_t columns,
+  const size_t rows,const char *map,const StorageType storage,
+  const void *pixels)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x, y, columns, rows
+
These values define the perimeter of a region of pixels you want to define.
+ +
+
map
+
This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = alpha (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
+ +
+
storage
+
Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, ShortPixel, IntegerPixel, LongPixel, FloatPixel, or DoublePixel.
+ +
+
pixels
+
This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
+ +
+
+

MagickInterpolativeResizeImage

+ +

MagickInterpolativeResizeImage() resize image using a interpolative method.

+ +

MagickBooleanType MagickInterpolativeResizeImage(MagickWand *wand, const size_t columns,const size_t rows, const PixelInterpolateMethod method)

+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
interpolate
+
the pixel interpolation method.
+ +
+
+

MagickInverseFourierTransformImage

+ +

MagickInverseFourierTransformImage() implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

+ +

The format of the MagickInverseFourierTransformImage method is:

+ +
+MagickBooleanType MagickInverseFourierTransformImage(
+  MagickWand *magnitude_wand,MagickWand *phase_wand,
+  const MagickBooleanType magnitude)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
magnitude_wand
+
the magnitude or real wand.
+ +
+
phase_wand
+
the phase or imaginary wand.
+ +
+
magnitude
+
if true, return as magnitude / phase pair otherwise a real / imaginary image pair.
+ +
+
+

MagickLabelImage

+ +

MagickLabelImage() adds a label to your image.

+ +

The format of the MagickLabelImage method is:

+ +
+MagickBooleanType MagickLabelImage(MagickWand *wand,const char *label)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
label
+
the image label.
+ +
+
+

MagickLevelImage

+ +

MagickLevelImage() adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

+ +

The format of the MagickLevelImage method is:

+ +
+MagickBooleanType MagickLevelImage(MagickWand *wand,
+  const double black_point,const double gamma,const double white_point)
+MagickBooleanType MagickLevelImage(MagickWand *wand,
+  const ChannelType channel,const double black_point,const double gamma,
+  const double white_point)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
channel
+
Identify which channel to level: RedPixelChannel, GreenPixelChannel, etc.
+ +
+
black_point
+
the black point.
+ +
+
gamma
+
the gamma.
+ +
+
white_point
+
the white point.
+ +
+
+

MagickLinearStretchImage

+ +

MagickLinearStretchImage() stretches with saturation the image intensity.

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickLinearStretchImage method is:

+ +
+MagickBooleanType MagickLinearStretchImage(MagickWand *wand,
+  const double black_point,const double white_point)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
black_point
+
the black point.
+ +
+
white_point
+
the white point.
+ +
+
+

MagickLiquidRescaleImage

+ +

MagickLiquidRescaleImage() rescales image with seam carving.

+ +

MagickBooleanType MagickLiquidRescaleImage(MagickWand *wand, const size_t columns,const size_t rows, const double delta_x,const double rigidity)

+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
delta_x
+
maximum seam transversal step (0 means straight seams).
+ +
+
rigidity
+
introduce a bias for non-straight seams (typically 0).
+ +
+
+

MagickLocalContrastImage

+ +

MagickLocalContrastImage() attempts to increase the appearance of large-scale light-dark transitions. Local contrast enhancement works similarly to sharpening with an unsharp mask, however the mask is instead created using an image with a greater blur distance.

+ +

MagickBooleanType MagickLocalContrastImage(MagickWand *wand, const double radius,const double strength)

+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
strength
+
the strength of the blur mask in percentage.
+ +
+
+

MagickMagnifyImage

+ +

MagickMagnifyImage() is a convenience method that scales an image proportionally to twice its original size.

+ +

The format of the MagickMagnifyImage method is:

+ +
+MagickBooleanType MagickMagnifyImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickMergeImageLayers

+ +

MagickMergeImageLayers() composes all the image layers from the current given image onward to produce a single image of the merged layers.

+ +

The inital canvas's size depends on the given LayerMethod, and is initialized using the first images background color. The images are then compositied onto that image in sequence using the given composition that has been assigned to each individual image.

+ +

The format of the MagickMergeImageLayers method is:

+ +
+MagickWand *MagickMergeImageLayers(MagickWand *wand,
+  const LayerMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the method of selecting the size of the initial canvas.
+ +
MergeLayer: Merge all layers onto a canvas just large enough to hold all the actual images. The virtual canvas of the first image is preserved but otherwise ignored.
+ +
FlattenLayer: Use the virtual canvas size of first image. Images which fall outside this canvas is clipped. This can be used to 'fill out' a given virtual canvas.
+ +
MosaicLayer: Start with the virtual canvas of the first image, enlarging left and right edges to contain all images. Images with negative offsets will be clipped.
+ +
+
+

MagickMinifyImage

+ +

MagickMinifyImage() is a convenience method that scales an image proportionally to one-half its original size

+ +

The format of the MagickMinifyImage method is:

+ +
+MagickBooleanType MagickMinifyImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickModulateImage

+ +

MagickModulateImage() lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

+ +

To increase the color brightness by 20 and decrease the color saturation by 10 and leave the hue unchanged, use: 120,90,100.

+ +

The format of the MagickModulateImage method is:

+ +
+MagickBooleanType MagickModulateImage(MagickWand *wand,
+  const double brightness,const double saturation,const double hue)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
brightness
+
the percent change in brighness.
+ +
+
saturation
+
the percent change in saturation.
+ +
+
hue
+
the percent change in hue.
+ +
+
+

MagickMontageImage

+ +

MagickMontageImage() creates a composite image by combining several separate images. The images are tiled on the composite image with the name of the image optionally appearing just below the individual tile.

+ +

The format of the MagickMontageImage method is:

+ +
+MagickWand *MagickMontageImage(MagickWand *wand,
+  const DrawingWand drawing_wand,const char *tile_geometry,
+  const char *thumbnail_geometry,const MontageMode mode,
+  const char *frame)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the drawing wand. The font name, size, and color are obtained from this wand.
+ +
+
tile_geometry
+
the number of tiles per row and page (e.g. 6x4+0+0).
+ +
+
thumbnail_geometry
+
Preferred image size and border size of each thumbnail (e.g. 120x120+4+3>).
+ +
+
mode
+
Thumbnail framing mode: Frame, Unframe, or Concatenate.
+ +
+
frame
+
Surround the image with an ornamental border (e.g. 15x15+3+3). The frame color is that of the thumbnail's matte color.
+ +
+
+

MagickMorphImages

+ +

MagickMorphImages() method morphs a set of images. Both the image pixels and size are linearly interpolated to give the appearance of a meta-morphosis from one image to the next.

+ +

The format of the MagickMorphImages method is:

+ +
+MagickWand *MagickMorphImages(MagickWand *wand,
+  const size_t number_frames)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_frames
+
the number of in-between images to generate.
+ +
+
+

MagickMorphologyImage

+ +

MagickMorphologyImage() applies a user supplied kernel to the image according to the given mophology method.

+ +

The format of the MagickMorphologyImage method is:

+ +
+MagickBooleanType MagickMorphologyImage(MagickWand *wand,
+  MorphologyMethod method,const ssize_t iterations,KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the morphology method to be applied.
+ +
+
iterations
+
apply the operation this many times (or no change). A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.
+ +
+
kernel
+
An array of doubles representing the morphology kernel.
+ +
+
+

MagickMotionBlurImage

+ +

MagickMotionBlurImage() simulates motion blur. 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 MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

+ +

The format of the MagickMotionBlurImage method is:

+ +
+MagickBooleanType MagickMotionBlurImage(MagickWand *wand,
+  const double radius,const double sigma,const double angle)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
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.
+ +
+
+

MagickNegateImage

+ +

MagickNegateImage() negates the colors in the reference image. The Grayscale option means that only grayscale values within the image are negated.

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickNegateImage method is:

+ +
+MagickBooleanType MagickNegateImage(MagickWand *wand,
+  const MagickBooleanType gray)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
gray
+
If MagickTrue, only negate grayscale pixels within the image.
+ +
+
+

MagickNewImage

+ +

MagickNewImage() adds a blank image canvas of the specified size and background color to the wand.

+ +

The format of the MagickNewImage method is:

+ +
+MagickBooleanType MagickNewImage(MagickWand *wand,
+  const size_t columns,const size_t rows,
+  const PixelWand *background)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the image width.
+ +
+
height
+
the image height.
+ +
+
background
+
the image color.
+ +
+
+

MagickNextImage

+ +

MagickNextImage() sets the next image in the wand as the current image.

+ +

It is typically used after MagickResetIterator(), after which its first use will set the first image as the current image (unless the wand is empty).

+ +

It will return MagickFalse when no more images are left to be returned which happens when the wand is empty, or the current image is the last image.

+ +

When the above condition (end of image list) is reached, the iterator is automaticall set so that you can start using MagickPreviousImage() to again iterate over the images in the reverse direction, starting with the last image (again). You can jump to this condition immeditally using MagickSetLastIterator().

+ +

The format of the MagickNextImage method is:

+ +
+MagickBooleanType MagickNextImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickNormalizeImage

+ +

MagickNormalizeImage() enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickNormalizeImage method is:

+ +
+MagickBooleanType MagickNormalizeImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickOilPaintImage

+ +

MagickOilPaintImage() applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

+ +

The format of the MagickOilPaintImage method is:

+ +
+MagickBooleanType MagickOilPaintImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the circular neighborhood.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickOpaquePaintImage

+ +

MagickOpaquePaintImage() changes any pixel that matches color with the color defined by fill.

+ +

The format of the MagickOpaquePaintImage method is:

+ +
+MagickBooleanType MagickOpaquePaintImage(MagickWand *wand,
+  const PixelWand *target,const PixelWand *fill,const double fuzz,
+  const MagickBooleanType invert)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
target
+
Change this target color to the fill color within the image.
+ +
+
fill
+
the fill pixel wand.
+ +
+
fuzz
+
By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
+

MagickOptimizeImageLayers

+ +

MagickOptimizeImageLayers() compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the animation.

+ +

The format of the MagickOptimizeImageLayers method is:

+ +
+MagickWand *MagickOptimizeImageLayers(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickOptimizeImageTransparency

+ +

MagickOptimizeImageTransparency() takes a frame optimized GIF animation, and compares the overlayed pixels against the disposal image resulting from all the previous frames in the animation. Any pixel that does not change the disposal image (and thus does not effect the outcome of an overlay) is made transparent.

+ +

WARNING: This modifies the current images directly, rather than generate a new image sequence. The format of the MagickOptimizeImageTransparency method is:

+ +
+MagickBooleanType MagickOptimizeImageTransparency(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickOrderedDitherImage

+ +

MagickOrderedDitherImage() performs an ordered dither based on a number of pre-defined dithering threshold maps, but over multiple intensity levels, which can be different for different channels, according to the input arguments.

+ +

The format of the MagickOrderedDitherImage method is:

+ +
+MagickBooleanType MagickOrderedDitherImage(MagickWand *wand,
+  const char *threshold_map)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
threshold_map
+
A string containing the name of the threshold dither map to use, followed by zero or more numbers representing the number of color levels tho dither between.
+ +
Any level number less than 2 is equivalent to 2, and means only binary dithering will be applied to each color channel.
+ +
No numbers also means a 2 level (bitmap) dither will be applied to all channels, while a single number is the number of levels applied to each channel in sequence. More numbers will be applied in turn to each of the color channels.
+ +
For example: "o3x3,6" generates a 6 level posterization of the image with a ordered 3x3 diffused pixel dither being applied between each level. While checker,8,8,4 will produce a 332 colormaped image with only a single checkerboard hash pattern (50 grey) between each color level, to basically double the number of color levels with a bare minimim of dithering.
+ +
+
+

MagickPingImage

+ +

MagickPingImage() is the same as MagickReadImage() except the only valid information returned is the image width, height, size, and format. It is designed to efficiently obtain this information from a file without reading the entire image sequence into memory.

+ +

The format of the MagickPingImage method is:

+ +
+MagickBooleanType MagickPingImage(MagickWand *wand,const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
+

MagickPingImageBlob

+ +

MagickPingImageBlob() pings an image or image sequence from a blob.

+ +

The format of the MagickPingImageBlob method is:

+ +
+MagickBooleanType MagickPingImageBlob(MagickWand *wand,
+  const void *blob,const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
blob
+
the blob.
+ +
+
length
+
the blob length.
+ +
+
+

MagickPingImageFile

+ +

MagickPingImageFile() pings an image or image sequence from an open file descriptor.

+ +

The format of the MagickPingImageFile method is:

+ +
+MagickBooleanType MagickPingImageFile(MagickWand *wand,FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
file
+
the file descriptor.
+ +
+
+

MagickPolaroidImage

+ +

MagickPolaroidImage() simulates a Polaroid picture.

+ +

The format of the MagickPolaroidImage method is:

+ +
+MagickBooleanType MagickPolaroidImage(MagickWand *wand,
+  const DrawingWand *drawing_wand,const char *caption,const double angle,
+  const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the draw wand.
+ +
+
caption
+
the Polaroid caption.
+ +
+
angle
+
Apply the effect along this angle.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickPosterizeImage

+ +

MagickPosterizeImage() reduces the image to a limited number of color level.

+ +

The format of the MagickPosterizeImage method is:

+ +
+MagickBooleanType MagickPosterizeImage(MagickWand *wand,
+  const size_t levels,const DitherMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
levels
+
Number of color levels allowed in each channel. Very low values (2, 3, or 4) have the most visible effect.
+ +
+
method
+
choose the dither method: UndefinedDitherMethod, NoDitherMethod, RiemersmaDitherMethod, or FloydSteinbergDitherMethod.
+ +
+
+

MagickPreviewImages

+ +

MagickPreviewImages() tiles 9 thumbnails of the specified image with an image processing operation applied at varying strengths. This helpful to quickly pin-point an appropriate parameter for an image processing operation.

+ +

The format of the MagickPreviewImages method is:

+ +
+MagickWand *MagickPreviewImages(MagickWand *wand,
+  const PreviewType preview)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
preview
+
the preview type.
+ +
+
+

MagickPreviousImage

+ +

MagickPreviousImage() sets the previous image in the wand as the current image.

+ +

It is typically used after MagickSetLastIterator(), after which its first use will set the last image as the current image (unless the wand is empty).

+ +

It will return MagickFalse when no more images are left to be returned which happens when the wand is empty, or the current image is the first image. At that point the iterator is than reset to again process images in the forward direction, again starting with the first image in list. Images added at this point are prepended.

+ +

Also at that point any images added to the wand using MagickAddImages() or MagickReadImages() will be prepended before the first image. In this sense the condition is not quite exactly the same as MagickResetIterator().

+ +

The format of the MagickPreviousImage method is:

+ +
+MagickBooleanType MagickPreviousImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickQuantizeImage

+ +

MagickQuantizeImage() 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 MagickQuantizeImage method is:

+ +
+MagickBooleanType MagickQuantizeImage(MagickWand *wand,
+  const size_t number_colors,const ColorspaceType colorspace,
+  const size_t treedepth,const DitherMethod dither_method,
+  const MagickBooleanType measure_error)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_colors
+
the number of colors.
+ +
+
colorspace
+
Perform color reduction in this colorspace, typically RGBColorspace.
+ +
+
treedepth
+
Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors). A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.
+ +
+
dither_method
+
choose from UndefinedDitherMethod, NoDitherMethod, RiemersmaDitherMethod, FloydSteinbergDitherMethod.
+ +
+
measure_error
+
A value other than zero 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.
+ +
+
+

MagickQuantizeImages

+ +

MagickQuantizeImages() analyzes the colors within a sequence of images 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 MagickQuantizeImages method is:

+ +
+MagickBooleanType MagickQuantizeImages(MagickWand *wand,
+  const size_t number_colors,const ColorspaceType colorspace,
+  const size_t treedepth,const DitherMethod dither_method,
+  const MagickBooleanType measure_error)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_colors
+
the number of colors.
+ +
+
colorspace
+
Perform color reduction in this colorspace, typically RGBColorspace.
+ +
+
treedepth
+
Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors). A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.
+ +
+
dither_method
+
choose from these dither methods: NoDitherMethod, RiemersmaDitherMethod, or FloydSteinbergDitherMethod.
+ +
+
measure_error
+
A value other than zero 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.
+ +
+
+

MagickRotationalBlurImage

+ +

MagickRotationalBlurImage() rotational blurs an image.

+ +

The format of the MagickRotationalBlurImage method is:

+ +
+MagickBooleanType MagickRotationalBlurImage(MagickWand *wand,
+  const double angle)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
angle
+
the angle of the blur in degrees.
+ +
+
+

MagickRaiseImage

+ +

MagickRaiseImage() creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

+ +

The format of the MagickRaiseImage method is:

+ +
+MagickBooleanType MagickRaiseImage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y,const MagickBooleanType raise)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width,height,x,y
+
Define the dimensions of the area to raise.
+ +
+
raise
+
A value other than zero creates a 3-D raise effect, otherwise it has a lowered effect.
+ +
+
+

MagickRandomThresholdImage

+ +

MagickRandomThresholdImage() changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image.

+ +

The format of the MagickRandomThresholdImage method is:

+ +
+MagickBooleanType MagickRandomThresholdImage(MagickWand *wand,
+  const double low,const double high)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
low,high
+
Specify the high and low thresholds. These values range from 0 to QuantumRange.
+ +
+
+

MagickReadImage

+ +

MagickReadImage() reads an image or image sequence. The images are inserted jjust before the current image pointer position.

+ +

Use MagickSetFirstIterator(), to insert new images before all the current images in the wand, MagickSetLastIterator() to append add to the end, MagickSetIteratorIndex() to place images just after the given index.

+ +

The format of the MagickReadImage method is:

+ +
+MagickBooleanType MagickReadImage(MagickWand *wand,const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
+

MagickReadImageBlob

+ +

MagickReadImageBlob() reads an image or image sequence from a blob. In all other respects it is like MagickReadImage().

+ +

The format of the MagickReadImageBlob method is:

+ +
+MagickBooleanType MagickReadImageBlob(MagickWand *wand,
+  const void *blob,const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
blob
+
the blob.
+ +
+
length
+
the blob length.
+ +
+
+

MagickReadImageFile

+ +

MagickReadImageFile() reads an image or image sequence from an already opened file descriptor. Otherwise it is like MagickReadImage().

+ +

The format of the MagickReadImageFile method is:

+ +
+MagickBooleanType MagickReadImageFile(MagickWand *wand,FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
file
+
the file descriptor.
+ +
+
+

MagickRemapImage

+ +

MagickRemapImage() replaces the colors of an image with the closest color from a reference image.

+ +

The format of the MagickRemapImage method is:

+ +
+MagickBooleanType MagickRemapImage(MagickWand *wand,
+  const MagickWand *remap_wand,const DitherMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
affinity
+
the affinity wand.
+ +
+
method
+
choose from these dither methods: NoDitherMethod, RiemersmaDitherMethod, or FloydSteinbergDitherMethod.
+ +
+
+

MagickRemoveImage

+ +

MagickRemoveImage() removes an image from the image list.

+ +

The format of the MagickRemoveImage method is:

+ +
+MagickBooleanType MagickRemoveImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
insert
+
the splice wand.
+ +
+
+

MagickResampleImage

+ +

MagickResampleImage() resample image to desired resolution.

+ +

Bessel Blackman Box Catrom Cubic Gaussian Hanning Hermite Lanczos Mitchell Point Quandratic Sinc Triangle

+ +

Most of the filters are FIR (finite impulse response), however, Bessel, Gaussian, and Sinc are IIR (infinite impulse response). Bessel and Sinc are windowed (brought down to zero) with the Blackman filter.

+ +

The format of the MagickResampleImage method is:

+ +
+MagickBooleanType MagickResampleImage(MagickWand *wand,
+  const double x_resolution,const double y_resolution,
+  const FilterType filter)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x_resolution
+
the new image x resolution.
+ +
+
y_resolution
+
the new image y resolution.
+ +
+
filter
+
Image filter to use.
+ +
+
+

MagickResetImagePage

+ +

MagickResetImagePage() resets the Wand page canvas and position.

+ +

The format of the MagickResetImagePage method is:

+ +
+MagickBooleanType MagickResetImagePage(MagickWand *wand,
+  const char *page)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
page
+
the relative page specification.
+ +
+
+

MagickResizeImage

+ +

MagickResizeImage() scales an image to the desired dimensions with one of these filters:

+ +
+    Bessel   Blackman   Box
+    Catrom   CubicGaussian
+    Hanning  Hermite    Lanczos
+    Mitchell PointQuandratic
+    Sinc     Triangle
+
+ +

Most of the filters are FIR (finite impulse response), however, Bessel, Gaussian, and Sinc are IIR (infinite impulse response). Bessel and Sinc are windowed (brought down to zero) with the Blackman filter.

+ +

The format of the MagickResizeImage method is:

+ +
+MagickBooleanType MagickResizeImage(MagickWand *wand,
+  const size_t columns,const size_t rows,const FilterType filter)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
filter
+
Image filter to use.
+ +
+
+

MagickRollImage

+ +

MagickRollImage() offsets an image as defined by x and y.

+ +

The format of the MagickRollImage method is:

+ +
+MagickBooleanType MagickRollImage(MagickWand *wand,const ssize_t x,
+  const size_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the x offset.
+ +
+
y
+
the y offset.
+ +
+ +
+
+

MagickRotateImage

+ +

MagickRotateImage() rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

+ +

The format of the MagickRotateImage method is:

+ +
+MagickBooleanType MagickRotateImage(MagickWand *wand,
+  const PixelWand *background,const double degrees)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the background pixel wand.
+ +
+
degrees
+
the number of degrees to rotate the image.
+ +
+ +
+
+

MagickSampleImage

+ +

MagickSampleImage() scales an image to the desired dimensions with pixel sampling. Unlike other scaling methods, this method does not introduce any additional color into the scaled image.

+ +

The format of the MagickSampleImage method is:

+ +
+MagickBooleanType MagickSampleImage(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+ +
+
+

MagickScaleImage

+ +

MagickScaleImage() scales the size of an image to the given dimensions.

+ +

The format of the MagickScaleImage method is:

+ +
+MagickBooleanType MagickScaleImage(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+ +
+
+

MagickSegmentImage

+ +

MagickSegmentImage() segments an image by analyzing the histograms of the color components and identifying units that are homogeneous with the fuzzy C-means technique.

+ +

The format of the SegmentImage method is:

+ +
+MagickBooleanType MagickSegmentImage(MagickWand *wand,
+  const ColorspaceType colorspace,const MagickBooleanType verbose,
+  const double cluster_threshold,const double smooth_threshold)
+
+ +

A description of each parameter follows.

+ +
wand
+

the wand.

+ +
colorspace
+

the image colorspace.

+ +
verbose
+

Set to MagickTrue to print detailed information about the identified classes.

+ +
cluster_threshold
+

This represents the minimum number of pixels contained in a hexahedra before it can be considered valid (expressed as a percentage).

+ +
smooth_threshold
+

the smoothing threshold eliminates noise in the second derivative of the histogram. As the value is increased, you can expect a smoother second derivative.

+ +

MagickSelectiveBlurImage

+ +

MagickSelectiveBlurImage() selectively blur an image within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

+ +

The format of the MagickSelectiveBlurImage method is:

+ +
+MagickBooleanType MagickSelectiveBlurImage(MagickWand *wand,
+  const double radius,const double sigma,const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the gaussian, in pixels.
+ +
+
threshold
+
only pixels within this contrast threshold are included in the blur operation.
+ +
+
+

MagickSeparateImage

+ +

MagickSeparateImage() separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

+ +

The format of the MagickSeparateImage method is:

+ +
+MagickBooleanType MagickSeparateImage(MagickWand *wand,
+  const ChannelType channel)
+
+ +

A description of each parameter follows:

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

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 MagickSepiaToneImage method is:

+ +
+MagickBooleanType MagickSepiaToneImage(MagickWand *wand,
+  const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
Define the extent of the sepia toning.
+ +
+
+

MagickSetImage

+ +

MagickSetImage() replaces the last image returned by MagickSetIteratorIndex(), MagickNextImage(), MagickPreviousImage() with the images from the specified wand.

+ +

The format of the MagickSetImage method is:

+ +
+MagickBooleanType MagickSetImage(MagickWand *wand,
+  const MagickWand *set_wand)
+
+ +

A description of each parameter follows:

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

MagickSetImageAlphaChannel

+ +

MagickSetImageAlphaChannel() activates, deactivates, resets, or sets the alpha channel.

+ +

The format of the MagickSetImageAlphaChannel method is:

+ +
+MagickBooleanType MagickSetImageAlphaChannel(MagickWand *wand,
+  const AlphaChannelOption alpha_type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
alpha_type
+
the alpha channel type: ActivateAlphaChannel, DeactivateAlphaChannel, OpaqueAlphaChannel, or SetAlphaChannel.
+ +
+
+

MagickSetImageBackgroundColor

+ +

MagickSetImageBackgroundColor() sets the image background color.

+ +

The format of the MagickSetImageBackgroundColor method is:

+ +
+MagickBooleanType MagickSetImageBackgroundColor(MagickWand *wand,
+  const PixelWand *background)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the background pixel wand.
+ +
+
+

MagickSetImageBluePrimary

+ +

MagickSetImageBluePrimary() sets the image chromaticity blue primary point.

+ +

The format of the MagickSetImageBluePrimary method is:

+ +
+MagickBooleanType MagickSetImageBluePrimary(MagickWand *wand,
+  const double x,const double y,const double z)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the blue primary x-point.
+ +
+
y
+
the blue primary y-point.
+ +
+
z
+
the blue primary z-point.
+ +
+
+

MagickSetImageBorderColor

+ +

MagickSetImageBorderColor() sets the image border color.

+ +

The format of the MagickSetImageBorderColor method is:

+ +
+MagickBooleanType MagickSetImageBorderColor(MagickWand *wand,
+  const PixelWand *border)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
border
+
the border pixel wand.
+ +
+
+

MagickSetImageChannelMask

+ +

MagickSetImageChannelMask() sets image channel mask.

+ +

The format of the MagickSetImageChannelMask method is:

+ +
+ChannelType MagickSetImageChannelMask(MagickWand *wand,
+  const ChannelType channel_mask)
+
+ +

A description of each parameter follows:

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

MagickSetImageMask

+ +

MagickSetImageMask() sets image clip mask.

+ +

The format of the MagickSetImageMask method is:

+ +
+MagickBooleanType MagickSetImageMask(MagickWand *wand,
+  const PixelMask type,const MagickWand *clip_mask)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
type
+
type of mask, ReadPixelMask or WritePixelMask.
+ +
+
clip_mask
+
the clip_mask wand.
+ +
+
+

MagickSetImageColor

+ +

MagickSetImageColor() set the entire wand canvas to the specified color.

+ +

The format of the MagickSetImageColor method is:

+ +
+MagickBooleanType MagickSetImageColor(MagickWand *wand,
+  const PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the image color.
+ +
+
+

MagickSetImageColormapColor

+ +

MagickSetImageColormapColor() sets the color of the specified colormap index.

+ +

The format of the MagickSetImageColormapColor method is:

+ +
+MagickBooleanType MagickSetImageColormapColor(MagickWand *wand,
+  const size_t index,const PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
index
+
the offset into the image colormap.
+ +
+
color
+
Return the colormap color in this wand.
+ +
+
+

MagickSetImageColorspace

+ +

MagickSetImageColorspace() sets the image colorspace. But does not modify the image data.

+ +

The format of the MagickSetImageColorspace method is:

+ +
+MagickBooleanType MagickSetImageColorspace(MagickWand *wand,
+  const ColorspaceType colorspace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
colorspace
+
the image colorspace: UndefinedColorspace, RGBColorspace, GRAYColorspace, TransparentColorspace, OHTAColorspace, XYZColorspace, YCbCrColorspace, YCCColorspace, YIQColorspace, YPbPrColorspace, YPbPrColorspace, YUVColorspace, CMYKColorspace, sRGBColorspace, HSLColorspace, or HWBColorspace.
+ +
+
+

MagickSetImageCompose

+ +

MagickSetImageCompose() sets the image composite operator, useful for specifying how to composite the image thumbnail when using the MagickMontageImage() method.

+ +

The format of the MagickSetImageCompose method is:

+ +
+MagickBooleanType MagickSetImageCompose(MagickWand *wand,
+  const CompositeOperator compose)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
compose
+
the image composite operator.
+ +
+
+

MagickSetImageCompression

+ +

MagickSetImageCompression() sets the image compression.

+ +

The format of the MagickSetImageCompression method is:

+ +
+MagickBooleanType MagickSetImageCompression(MagickWand *wand,
+  const CompressionType compression)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
compression
+
the image compression type.
+ +
+
+

MagickSetImageCompressionQuality

+ +

MagickSetImageCompressionQuality() sets the image compression quality.

+ +

The format of the MagickSetImageCompressionQuality method is:

+ +
+MagickBooleanType MagickSetImageCompressionQuality(MagickWand *wand,
+  const size_t quality)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
quality
+
the image compression tlityype.
+ +
+
+

MagickSetImageDelay

+ +

MagickSetImageDelay() sets the image delay.

+ +

The format of the MagickSetImageDelay method is:

+ +
+MagickBooleanType MagickSetImageDelay(MagickWand *wand,
+  const size_t delay)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
delay
+
the image delay in ticks-per-second units.
+ +
+
+

MagickSetImageDepth

+ +

MagickSetImageDepth() sets the image depth.

+ +

The format of the MagickSetImageDepth method is:

+ +
+MagickBooleanType MagickSetImageDepth(MagickWand *wand,
+  const size_t depth)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
depth
+
the image depth in bits: 8, 16, or 32.
+ +
+
+

MagickSetImageDispose

+ +

MagickSetImageDispose() sets the image disposal method.

+ +

The format of the MagickSetImageDispose method is:

+ +
+MagickBooleanType MagickSetImageDispose(MagickWand *wand,
+  const DisposeType dispose)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
dispose
+
the image disposeal type.
+ +
+
+

MagickSetImageEndian

+ +

MagickSetImageEndian() sets the image endian method.

+ +

The format of the MagickSetImageEndian method is:

+ +
+MagickBooleanType MagickSetImageEndian(MagickWand *wand,
+  const EndianType endian)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
endian
+
the image endian type.
+ +
+
+

MagickSetImageExtent

+ +

MagickSetImageExtent() sets the image size (i.e. columns & rows).

+ +

The format of the MagickSetImageExtent method is:

+ +
+MagickBooleanType MagickSetImageExtent(MagickWand *wand,
+  const size_t columns,const unsigned rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
The image width in pixels.
+ +
+
rows
+
The image height in pixels.
+ +
+
+

MagickSetImageFilename

+ +

MagickSetImageFilename() sets the filename of a particular image in a sequence.

+ +

The format of the MagickSetImageFilename method is:

+ +
+MagickBooleanType MagickSetImageFilename(MagickWand *wand,
+  const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
+

MagickSetImageFormat

+ +

MagickSetImageFormat() sets the format of a particular image in a sequence.

+ +

The format of the MagickSetImageFormat method is:

+ +
+MagickBooleanType MagickSetImageFormat(MagickWand *wand,
+  const char *format)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
format
+
the image format.
+ +
+
+

MagickSetImageFuzz

+ +

MagickSetImageFuzz() sets the image fuzz.

+ +

The format of the MagickSetImageFuzz method is:

+ +
+MagickBooleanType MagickSetImageFuzz(MagickWand *wand,
+  const double fuzz)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
fuzz
+
the image fuzz.
+ +
+
+

MagickSetImageGamma

+ +

MagickSetImageGamma() sets the image gamma.

+ +

The format of the MagickSetImageGamma method is:

+ +
+MagickBooleanType MagickSetImageGamma(MagickWand *wand,
+  const double gamma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
gamma
+
the image gamma.
+ +
+
+

MagickSetImageGravity

+ +

MagickSetImageGravity() sets the image gravity type.

+ +

The format of the MagickSetImageGravity method is:

+ +
+MagickBooleanType MagickSetImageGravity(MagickWand *wand,
+  const GravityType gravity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
gravity
+
positioning gravity (NorthWestGravity, NorthGravity, NorthEastGravity, WestGravity, CenterGravity, EastGravity, SouthWestGravity, SouthGravity, SouthEastGravity)
+ +
+
+

MagickSetImageGreenPrimary

+ +

MagickSetImageGreenPrimary() sets the image chromaticity green primary point.

+ +

The format of the MagickSetImageGreenPrimary method is:

+ +
+MagickBooleanType MagickSetImageGreenPrimary(MagickWand *wand,
+  const double x,const double y,const double z)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the green primary x-point.
+ +
+
y
+
the green primary y-point.
+ +
+
z
+
the green primary z-point.
+ +
+
+

MagickSetImageInterlaceScheme

+ +

MagickSetImageInterlaceScheme() sets the image interlace scheme.

+ +

The format of the MagickSetImageInterlaceScheme method is:

+ +
+MagickBooleanType MagickSetImageInterlaceScheme(MagickWand *wand,
+  const InterlaceType interlace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
interlace
+
the image interlace scheme: NoInterlace, LineInterlace, PlaneInterlace, PartitionInterlace.
+ +
+
+

MagickSetImageInterpolateMethod

+ +

MagickSetImageInterpolateMethod() sets the image interpolate pixel method.

+ +

The format of the MagickSetImageInterpolateMethod method is:

+ +
+MagickBooleanType MagickSetImageInterpolateMethod(MagickWand *wand,
+  const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the image interpole pixel methods: choose from Undefined, Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor.
+ +
+
+

MagickSetImageIterations

+ +

MagickSetImageIterations() sets the image iterations.

+ +

The format of the MagickSetImageIterations method is:

+ +
+MagickBooleanType MagickSetImageIterations(MagickWand *wand,
+  const size_t iterations)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
delay
+
the image delay in 1/100th of a second.
+ +
+
+

MagickSetImageMatte

+ +

MagickSetImageMatte() sets the image matte channel.

+ +

The format of the MagickSetImageMatte method is:

+ +
+MagickBooleanType MagickSetImageMatte(MagickWand *wand,
+  const MagickBooleanType *matte)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
matte
+
Set to MagickTrue to enable the image matte channel otherwise MagickFalse.
+ +
+
+

MagickSetImageMatteColor

+ +

MagickSetImageMatteColor() sets the image alpha color.

+ +

The format of the MagickSetImageMatteColor method is:

+ +
+MagickBooleanType MagickSetImageMatteColor(MagickWand *wand,
+  const PixelWand *matte)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
matte
+
the alpha pixel wand.
+ +
+
+

MagickSetImageAlpha

+ +

MagickSetImageAlpha() sets the image to the specified alpha level.

+ +

The format of the MagickSetImageAlpha method is:

+ +
+MagickBooleanType MagickSetImageAlpha(MagickWand *wand,
+  const double alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
alpha
+
the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
+ +
+
+

MagickSetImageOrientation

+ +

MagickSetImageOrientation() sets the image orientation.

+ +

The format of the MagickSetImageOrientation method is:

+ +
+MagickBooleanType MagickSetImageOrientation(MagickWand *wand,
+  const OrientationType orientation)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
orientation
+
the image orientation type.
+ +
+
+

MagickSetImagePage

+ +

MagickSetImagePage() sets the page geometry of the image.

+ +

The format of the MagickSetImagePage method is:

+ +
+MagickBooleanType MagickSetImagePage(MagickWand *wand,const size_t width,        const size_t height,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the page width.
+ +
+
height
+
the page height.
+ +
+
x
+
the page x-offset.
+ +
+
y
+
the page y-offset.
+ +
+
+

MagickSetImageProgressMonitor

+ +

MagickSetImageProgressMonitor() sets the wand image progress monitor to the specified method and returns the previous progress monitor if any. The progress monitor method looks like this:

+ +
+    MagickBooleanType MagickProgressMonitor(const char *text,
+const MagickOffsetType offset,const MagickSizeType span,
+void *client_data)
+
+ +

If the progress monitor returns MagickFalse, the current operation is interrupted.

+ +

The format of the MagickSetImageProgressMonitor method is:

+ +
+MagickProgressMonitor MagickSetImageProgressMonitor(MagickWand *wand
+  const MagickProgressMonitor progress_monitor,void *client_data)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
progress_monitor
+
Specifies a pointer to a method to monitor progress of an image operation.
+ +
+
client_data
+
Specifies a pointer to any client data.
+ +
+
+

MagickSetImageRedPrimary

+ +

MagickSetImageRedPrimary() sets the image chromaticity red primary point.

+ +

The format of the MagickSetImageRedPrimary method is:

+ +
+MagickBooleanType MagickSetImageRedPrimary(MagickWand *wand,
+  const double x,const double y,const double z)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the red primary x-point.
+ +
+
y
+
the red primary y-point.
+ +
+
z
+
the red primary z-point.
+ +
+
+

MagickSetImageRenderingIntent

+ +

MagickSetImageRenderingIntent() sets the image rendering intent.

+ +

The format of the MagickSetImageRenderingIntent method is:

+ +
+MagickBooleanType MagickSetImageRenderingIntent(MagickWand *wand,
+  const RenderingIntent rendering_intent)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
rendering_intent
+
the image rendering intent: UndefinedIntent, SaturationIntent, PerceptualIntent, AbsoluteIntent, or RelativeIntent.
+ +
+
+

MagickSetImageResolution

+ +

MagickSetImageResolution() sets the image resolution.

+ +

The format of the MagickSetImageResolution method is:

+ +
+MagickBooleanType MagickSetImageResolution(MagickWand *wand,
+  const double x_resolution,const double y_resolution)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x_resolution
+
the image x resolution.
+ +
+
y_resolution
+
the image y resolution.
+ +
+
+

MagickSetImageScene

+ +

MagickSetImageScene() sets the image scene.

+ +

The format of the MagickSetImageScene method is:

+ +
+MagickBooleanType MagickSetImageScene(MagickWand *wand,
+  const size_t scene)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
delay
+
the image scene number.
+ +
+
+

MagickSetImageTicksPerSecond

+ +

MagickSetImageTicksPerSecond() sets the image ticks-per-second.

+ +

The format of the MagickSetImageTicksPerSecond method is:

+ +
+MagickBooleanType MagickSetImageTicksPerSecond(MagickWand *wand,
+  const ssize_t ticks_per-second)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
ticks_per_second
+
the units to use for the image delay.
+ +
+
+

MagickSetImageType

+ +

MagickSetImageType() sets the image type.

+ +

The format of the MagickSetImageType method is:

+ +
+MagickBooleanType MagickSetImageType(MagickWand *wand,
+  const ImageType image_type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
image_type
+
the image type: UndefinedType, BilevelType, GrayscaleType, GrayscaleAlphaType, PaletteType, PaletteAlphaType, TrueColorType, TrueColorAlphaType, ColorSeparationType, ColorSeparationAlphaType, or OptimizeType.
+ +
+
+

MagickSetImageUnits

+ +

MagickSetImageUnits() sets the image units of resolution.

+ +

The format of the MagickSetImageUnits method is:

+ +
+MagickBooleanType MagickSetImageUnits(MagickWand *wand,
+  const ResolutionType units)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
units
+
the image units of resolution : UndefinedResolution, PixelsPerInchResolution, or PixelsPerCentimeterResolution.
+ +
+
+

MagickSetImageVirtualPixelMethod

+ +

MagickSetImageVirtualPixelMethod() sets the image virtual pixel method.

+ +

The format of the MagickSetImageVirtualPixelMethod method is:

+ +
+VirtualPixelMethod MagickSetImageVirtualPixelMethod(MagickWand *wand,
+  const VirtualPixelMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the image virtual pixel method : UndefinedVirtualPixelMethod, ConstantVirtualPixelMethod, EdgeVirtualPixelMethod, MirrorVirtualPixelMethod, or TileVirtualPixelMethod.
+ +
+
+

MagickSetImageWhitePoint

+ +

MagickSetImageWhitePoint() sets the image chromaticity white point.

+ +

The format of the MagickSetImageWhitePoint method is:

+ +
+MagickBooleanType MagickSetImageWhitePoint(MagickWand *wand,
+  const double x,const double y,const double z)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the white x-point.
+ +
+
y
+
the white y-point.
+ +
+
z
+
the white z-point.
+ +
+
+

MagickShadeImage

+ +

MagickShadeImage() shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis.

+ +

The format of the MagickShadeImage method is:

+ +
+MagickBooleanType MagickShadeImage(MagickWand *wand,
+  const MagickBooleanType gray,const double azimuth,
+  const double elevation)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
gray
+
A value other than zero shades the intensity of each pixel.
+ +
+
azimuth, elevation
+
Define the light source direction.
+ +
+
+

MagickShadowImage

+ +

MagickShadowImage() simulates an image shadow.

+ +

The format of the MagickShadowImage method is:

+ +
+MagickBooleanType MagickShadowImage(MagickWand *wand,const double alpha,
+  const double sigma,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
alpha
+
percentage transparency.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
x
+
the shadow x-offset.
+ +
+
y
+
the shadow y-offset.
+ +
+
+

MagickSharpenImage

+ +

MagickSharpenImage() sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and MagickSharpenImage() selects a suitable radius for you.

+ +

The format of the MagickSharpenImage method is:

+ +
+MagickBooleanType MagickSharpenImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickShaveImage

+ +

MagickShaveImage() shaves pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the MagickShaveImage method is:

+ +
+MagickBooleanType MagickShaveImage(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+ +
+
+

MagickShearImage

+ +

MagickShearImage() slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

+ +

The format of the MagickShearImage method is:

+ +
+MagickBooleanType MagickShearImage(MagickWand *wand,
+  const PixelWand *background,const double x_shear,const double y_shear)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the background pixel wand.
+ +
+
x_shear
+
the number of degrees to shear the image.
+ +
+
y_shear
+
the number of degrees to shear the image.
+ +
+
+

MagickSigmoidalContrastImage

+ +

MagickSigmoidalContrastImage() adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to MagickTrue to increase the image contrast otherwise the contrast is reduced.

+ +

The format of the MagickSigmoidalContrastImage method is:

+ +
+MagickBooleanType MagickSigmoidalContrastImage(MagickWand *wand,
+  const MagickBooleanType sharpen,const double alpha,const double beta)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
sharpen
+
Increase or decrease image contrast.
+ +
+
alpha
+
strength of the contrast, the larger the number the more 'threshold-like' it becomes.
+ +
+
beta
+
midpoint of the function as a color value 0 to QuantumRange.
+ +
+
+

MagickSimilarityImage

+ +

MagickSimilarityImage() compares the reference image of the image and 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.

+ +

The format of the MagickSimilarityImage method is:

+ +
+MagickWand *MagickSimilarityImage(MagickWand *wand,
+  const MagickWand *reference,const MetricType metric,
+  const double similarity_threshold,RectangeInfo *offset,
+  double *similarity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
reference
+
the reference wand.
+ +
+
metric
+
the metric.
+ +
+
similarity_threshold
+
minimum distortion for (sub)image match.
+ +
+
offset
+
the best match offset of the reference image within the image.
+ +
+
similarity
+
the computed similarity between the images.
+ +
+
+

MagickSketchImage

+ +

MagickSketchImage() 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 blurring motion.

+ +

The format of the MagickSketchImage method is:

+ +
+MagickBooleanType MagickSketchImage(MagickWand *wand,
+  const double radius,const double sigma,const double angle)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
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.
+ +
+
+

MagickSmushImages

+ +

MagickSmushImages() takes all images from the current image pointer to the end of the image list and smushs them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

+ +

The format of the MagickSmushImages method is:

+ +
+MagickWand *MagickSmushImages(MagickWand *wand,
+  const MagickBooleanType stack,const ssize_t offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
stack
+
By default, images are stacked left-to-right. Set stack to MagickTrue to stack them top-to-bottom.
+ +
+
offset
+
minimum distance in pixels between images.
+ +
+
+

MagickSolarizeImage

+ +

MagickSolarizeImage() 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 MagickSolarizeImage method is:

+ +
+MagickBooleanType MagickSolarizeImage(MagickWand *wand,
+  const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
Define the extent of the solarization.
+ +
+
+

MagickSparseColorImage

+ +

MagickSparseColorImage(), given a set of coordinates, interpolates the colors found at those coordinates, across the whole image, using various methods.

+ +

The format of the MagickSparseColorImage method is:

+ +
+MagickBooleanType MagickSparseColorImage(MagickWand *wand,
+  const SparseColorMethod method,const size_t number_arguments,
+  const double *arguments)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be sparseed.
+ +
+
method
+
the method of image sparseion.
+ +
ArcSparseColorion will always ignore source image offset, and always 'bestfit' the destination image with the top left corner offset relative to the polar mapping center.
+ +
Bilinear has no simple inverse mapping so will not allow 'bestfit' style of image sparseion.
+ +
Affine, Perspective, and Bilinear, will do least squares fitting of the distrotion when more than the minimum number of control point pairs are provided.
+ +
Perspective, and Bilinear, will fall back to a Affine sparseion when less than 4 control point pairs are provided. While Affine sparseions will let you use any number of control point pairs, that is Zero pairs is a No-Op (viewport only) distrotion, one pair is a translation and two pairs of control points will do a scale-rotate-translate, without any shearing.
+ +
+
number_arguments
+
the number of arguments given for this sparseion method.
+ +
+
arguments
+
the arguments for this sparseion method.
+ +
+
+

MagickSpliceImage

+ +

MagickSpliceImage() splices a solid color into the image.

+ +

The format of the MagickSpliceImage method is:

+ +
+MagickBooleanType MagickSpliceImage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x offset.
+ +
+
y
+
the region y offset.
+ +
+
+

MagickSpreadImage

+ +

MagickSpreadImage() is a special effects method that randomly displaces each pixel in a block defined by the radius parameter.

+ +

The format of the MagickSpreadImage method is:

+ +
+MagickBooleanType MagickSpreadImage(MagickWand *wand,
+  const PixelInterpolateMethod method,const double radius)
+  
+  A description of each parameter follows:
+
+ +
wand
+

the magick wand.

+ +
method
+

intepolation method.

+ +
radius
+

Choose a random pixel in a neighborhood of this extent.

+ +

MagickStatisticImage

+ +

MagickStatisticImage() replace each pixel with corresponding statistic from the neighborhood of the specified width and height.

+ +

The format of the MagickStatisticImage method is:

+ +
+MagickBooleanType MagickStatisticImage(MagickWand *wand,
+  const StatisticType type,const double width,const size_t height)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
type
+
the statistic type (e.g. median, mode, etc.).
+ +
+
width
+
the width of the pixel neighborhood.
+ +
+
height
+
the height of the pixel neighborhood.
+ +
+
+

MagickSteganoImage

+ +

MagickSteganoImage() 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 MagickSteganoImage method is:

+ +
+MagickWand *MagickSteganoImage(MagickWand *wand,
+  const MagickWand *watermark_wand,const ssize_t offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
watermark_wand
+
the watermark wand.
+ +
+
offset
+
Start hiding at this offset into the image.
+ +
+
+

MagickStereoImage

+ +

MagickStereoImage() composites two images and produces a single image that is the composite of a left and right image of a stereo pair

+ +

The format of the MagickStereoImage method is:

+ +
+MagickWand *MagickStereoImage(MagickWand *wand,
+  const MagickWand *offset_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
offset_wand
+
Another image wand.
+ +
+
+

MagickStripImage

+ +

MagickStripImage() strips an image of all profiles and comments.

+ +

The format of the MagickStripImage method is:

+ +
+MagickBooleanType MagickStripImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickSwirlImage

+ +

MagickSwirlImage() 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 MagickSwirlImage method is:

+ +
+MagickBooleanType MagickSwirlImage(MagickWand *wand,const double degrees,
+  const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
degrees
+
Define the tightness of the swirling effect.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickTextureImage

+ +

MagickTextureImage() repeatedly tiles the texture image across and down the image canvas.

+ +

The format of the MagickTextureImage method is:

+ +
+MagickWand *MagickTextureImage(MagickWand *wand,
+  const MagickWand *texture_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
texture_wand
+
the texture wand
+ +
+
+

MagickThresholdImage

+ +

MagickThresholdImage() changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image.

+ +

The format of the MagickThresholdImage method is:

+ +
+MagickBooleanType MagickThresholdImage(MagickWand *wand,
+  const double threshold)
+MagickBooleanType MagickThresholdImageChannel(MagickWand *wand,
+  const ChannelType channel,const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
channel
+
the image channel(s).
+ +
+
threshold
+
Define the threshold value.
+ +
+
+

MagickThumbnailImage

+ +

MagickThumbnailImage() changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small low cost thumbnail images suited for display on the Web.

+ +

The format of the MagickThumbnailImage method is:

+ +
+MagickBooleanType MagickThumbnailImage(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
+

MagickTintImage

+ +

MagickTintImage() applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighting function is f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

+ +

The format of the MagickTintImage method is:

+ +
+MagickBooleanType MagickTintImage(MagickWand *wand,
+  const PixelWand *tint,const PixelWand *blend)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
tint
+
the tint pixel wand.
+ +
+
alpha
+
the alpha pixel wand.
+ +
+
+

MagickTransformImageColorspace

+ +

MagickTransformImageColorspace() transform the image colorspace, setting the images colorspace while transforming the images data to that colorspace.

+ +

The format of the MagickTransformImageColorspace method is:

+ +
+MagickBooleanType MagickTransformImageColorspace(MagickWand *wand,
+  const ColorspaceType colorspace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
colorspace
+
the image colorspace: UndefinedColorspace, sRGBColorspace, RGBColorspace, GRAYColorspace, OHTAColorspace, XYZColorspace, YCbCrColorspace, YCCColorspace, YIQColorspace, YPbPrColorspace, YPbPrColorspace, YUVColorspace, CMYKColorspace, HSLColorspace, HWBColorspace.
+ +
+
+

MagickTransparentPaintImage

+ +

MagickTransparentPaintImage() changes any pixel that matches color with the color defined by fill.

+ +

The format of the MagickTransparentPaintImage method is:

+ +
+MagickBooleanType MagickTransparentPaintImage(MagickWand *wand,
+  const PixelWand *target,const double alpha,const double fuzz,
+  const MagickBooleanType invert)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
target
+
Change this target color to specified alpha value within the image.
+ +
+
alpha
+
the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
+ +
+
fuzz
+
By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
+

MagickTransposeImage

+ +

MagickTransposeImage() creates a vertical mirror image by reflecting the pixels around the central x-axis while rotating them 90-degrees.

+ +

The format of the MagickTransposeImage method is:

+ +
+MagickBooleanType MagickTransposeImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickTransverseImage

+ +

MagickTransverseImage() creates a horizontal mirror image by reflecting the pixels around the central y-axis while rotating them 270-degrees.

+ +

The format of the MagickTransverseImage method is:

+ +
+MagickBooleanType MagickTransverseImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickTrimImage

+ +

MagickTrimImage() remove edges that are the background color from the image.

+ +

The format of the MagickTrimImage method is:

+ +
+MagickBooleanType MagickTrimImage(MagickWand *wand,const double fuzz)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
fuzz
+
By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
+ +
+
+

MagickUniqueImageColors

+ +

MagickUniqueImageColors() discards all but one of any pixel color.

+ +

The format of the MagickUniqueImageColors method is:

+ +
+MagickBooleanType MagickUniqueImageColors(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickUnsharpMaskImage

+ +

MagickUnsharpMaskImage() sharpens an image. 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 UnsharpMaskImage() selects a suitable radius for you.

+ +

The format of the MagickUnsharpMaskImage method is:

+ +
+MagickBooleanType MagickUnsharpMaskImage(MagickWand *wand,
+  const double radius,const double sigma,const double gain,
+  const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
gain
+
the percentage of the difference between the original and the blur image that is added back into the original.
+ +
+
threshold
+
the threshold in pixels needed to apply the diffence gain.
+ +
+
+

MagickVignetteImage

+ +

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

+ +

The format of the MagickVignetteImage method is:

+ +
+MagickBooleanType MagickVignetteImage(MagickWand *wand,
+  const double radius,const double sigma,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius.
+ +
+
sigma
+
the sigma.
+ +
+
x, y
+
Define the x and y ellipse offset.
+ +
+
+

MagickWaveImage

+ +

MagickWaveImage() 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 MagickWaveImage method is:

+ +
+MagickBooleanType MagickWaveImage(MagickWand *wand,
+  const double amplitude,const double wave_length,
+  const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
amplitude, wave_length
+
Define the amplitude and wave length of the sine wave.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickWhiteThresholdImage

+ +

MagickWhiteThresholdImage() is like ThresholdImage() but force all pixels above the threshold into white while leaving all pixels below the threshold unchanged.

+ +

The format of the MagickWhiteThresholdImage method is:

+ +
+MagickBooleanType MagickWhiteThresholdImage(MagickWand *wand,
+  const PixelWand *threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
the pixel wand.
+ +
+
+

MagickWriteImage

+ +

MagickWriteImage() writes an image to the specified filename. If the filename parameter is NULL, the image is written to the filename set by MagickReadImage() or MagickSetImageFilename().

+ +

The format of the MagickWriteImage method is:

+ +
+MagickBooleanType MagickWriteImage(MagickWand *wand,
+  const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+ +
+
+

MagickWriteImageFile

+ +

MagickWriteImageFile() writes an image to an open file descriptor.

+ +

The format of the MagickWriteImageFile method is:

+ +
+MagickBooleanType MagickWriteImageFile(MagickWand *wand,FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
file
+
the file descriptor.
+ +
+
+

MagickWriteImages

+ +

MagickWriteImages() writes an image or image sequence.

+ +

The format of the MagickWriteImages method is:

+ +
+MagickBooleanType MagickWriteImages(MagickWand *wand,
+  const char *filename,const MagickBooleanType adjoin)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
adjoin
+
join images into a single multi-image file.
+ +
+
+

MagickWriteImagesFile

+ +

MagickWriteImagesFile() writes an image sequence to an open file descriptor.

+ +

The format of the MagickWriteImagesFile method is:

+ +
+MagickBooleanType MagickWriteImagesFile(MagickWand *wand,FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
file
+
the file descriptor.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/magick-image.php b/share/doc/ImageMagick-7/www/api/magick-image.php new file mode 100644 index 0000000..a8e6cc2 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick-image.php @@ -0,0 +1,7789 @@ + + + + + + + + + ImageMagick: MagickWand, C API for ImageMagick: Image Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

GetImageFromMagickWandMagickAdaptiveBlurImageMagickAdaptiveResizeImageMagickAdaptiveSharpenImageMagickAdaptiveThresholdImageMagickAddImageMagickAddNoiseImageMagickAffineTransformImageMagickAnnotateImageMagickAnimateImagesMagickAppendImagesMagickAutoGammaImageMagickAutoLevelImageMagickAutoOrientImageMagickBlackThresholdImageMagickBlueShiftImageMagickBlurImageMagickBorderImageUse MagickBrightnessContrastImageMagickChannelFxImageMagickCharcoalImageMagickChopImageMagickClampImageMagickClipImageMagickClipImagePathMagickClutImageMagickCoalesceImagesMagickColorDecisionListImageMagickColorizeImageMagickColorMatrixImageMagickCombineImagesMagickCommentImageMagickCompareImagesLayersMagickCompareImagesMagickCompositeImageMagickCompositeImageGravityMagickCompositeLayersMagickContrastImageMagickContrastStretchImageMagickConvolveImageMagickCropImageMagickCycleColormapImageMagickConstituteImageMagickDecipherImageMagickDeconstructImagesMagickDeskewImageMagickDespeckleImageMagickDestroyImageMagickDisplayImageMagickDisplayImagesMagickDistortImageMagickDrawImageMagickEdgeImageMagickEmbossImageMagickEncipherImageMagickEnhanceImageMagickEqualizeImageMagickEvaluateImageMagickExportImagePixelsMagickExtentImageMagickFlipImageMagickFloodfillPaintImageMagickFlopImageMagickForwardFourierTransformImageMagickFrameImageMagickFunctionImageMagickFxImageMagickGammaImageMagickGaussianBlurImageMagickGetImageMagickGetImageAlphaChannelMagickGetImageMaskMagickGetImageBackgroundColorMagickGetImageBlobMagickGetImageBlobMagickGetImageBluePrimaryMagickGetImageBorderColorMagickGetImageFeaturesMagickGetImageKurtosisMagickGetImageMeanMagickGetImageRangeMagickGetImageStatisticsMagickGetImageColormapColorMagickGetImageColorsMagickGetImageColorspaceMagickGetImageComposeMagickGetImageCompressionMagickGetImageCompressionQualityMagickGetImageDelayMagickGetImageDepthMagickGetImageDisposeMagickGetImageDistortionMagickGetImageDistortionsMagickGetImageEndianMagickGetImageFilenameMagickGetImageFormatMagickGetImageFuzzMagickGetImageGammaMagickGetImageGravityMagickGetImageGreenPrimaryMagickGetImageHeightMagickGetImageHistogramMagickGetImageInterlaceSchemeMagickGetImageInterpolateMethodMagickGetImageIterationsMagickGetImageLengthMagickGetImageMatteColorMagickGetImageOrientationMagickGetImagePageMagickGetImagePixelColorMagickGetImageRedPrimaryMagickGetImageRegionMagickGetImageRenderingIntentMagickGetImageResolutionMagickGetImageSceneMagickGetImageSignatureMagickGetImageTicksPerSecondMagickGetImageTypeMagickGetImageUnitsMagickGetImageVirtualPixelMethodMagickGetImageWhitePointMagickGetImageWidthMagickGetNumberImagesMagickGetImageTotalInkDensityMagickHaldClutImageMagickHasNextImageMagickHasPreviousImageMagickIdentifyImageMagickIdentifyImageTypeMagickImplodeImageMagickImportImagePixelsMagickInterpolativeResizeImageMagickInverseFourierTransformImageMagickLabelImageMagickLevelImageMagickLinearStretchImageMagickLiquidRescaleImageMagickMagnifyImageMagickMergeImageLayersMagickMinifyImageMagickModulateImageMagickMontageImageMagickMorphImagesMagickMorphologyImageMagickMotionBlurImageMagickNegateImageMagickNewImageMagickNextImageMagickNormalizeImageMagickOilPaintImageMagickOpaquePaintImageMagickOptimizeImageLayersMagickOptimizeImageTransparencyMagickOrderedPosterizeImageMagickPingImageMagickPingImageBlobMagickPingImageFileMagickPolaroidImageMagickPosterizeImageMagickPreviewImagesMagickPreviousImageMagickQuantizeImageMagickQuantizeImagesMagickRotationalBlurImageMagickRaiseImageMagickRandomThresholdImageMagickReadImageMagickReadImageBlobMagickReadImageFileMagickRemapImageMagickRemoveImageMagickResampleImageMagickResetImagePageMagickResizeImageMagickRollImageMagickRotateImageMagickSampleImageMagickScaleImageMagickSegmentImageMagickSelectiveBlurImageMagickSeparateImageMagickSepiaToneImageMagickSetImageMagickSetImageAlphaChannelMagickSetImageBackgroundColorMagickSetImageBluePrimaryMagickSetImageBorderColorMagickSetImageChannelMaskMagickSetImageMaskMagickSetImageColorMagickSetImageColormapColorMagickSetImageColorspaceMagickSetImageComposeMagickSetImageCompressionMagickSetImageCompressionQualityMagickSetImageDelayMagickSetImageDepthMagickSetImageDisposeMagickSetImageEndianMagickSetImageExtentMagickSetImageFilenameMagickSetImageFormatMagickSetImageFuzzMagickSetImageGammaMagickSetImageGravityMagickSetImageGreenPrimaryMagickSetImageInterlaceSchemeMagickSetImagePixelInterpolateMethodMagickSetImageIterationsMagickSetImageMatteMagickSetImageMatteColorMagickSetImageAlphaMagickSetImageOrientationMagickSetImagePageMagickSetImageProgressMonitorMagickSetImageRedPrimaryMagickSetImageRenderingIntentMagickSetImageResolutionMagickSetImageSceneMagickSetImageTicksPerSecondMagickSetImageTypeMagickSetImageUnitsMagickSetImageVirtualPixelMethodMagickSetImageWhitePointMagickShadeImageMagickShadowImageMagickSharpenImageMagickShaveImageMagickShearImageMagickSigmoidalContrastImageMagickSimilarityImageMagickSketchImageMagickSmushImagesMagickSolarizeImageMagickSparseColorImageMagickSpliceImageMagickSpreadImageMagickStatisticImageMagickSteganoImageMagickStereoImageMagickStripImageMagickSwirlImageMagickTextureImageMagickThresholdImageMagickThumbnailImageMagickTintImageMagickTransformImageMagickTransformImageColorspaceMagickTransparentPaintImageMagickTransposeImageMagickTransverseImageMagickTrimImageMagickUniqueImageColorsMagickUnsharpMaskImageMagickVignetteImageMagickWaveImageMagickWhiteThresholdImageMagickWriteImageMagickWriteImageFileMagickWriteImagesMagickWriteImagesFile

+ +

GetImageFromMagickWand

+ +

GetImageFromMagickWand() returns the current image from the magick wand.

+ +

The format of the GetImageFromMagickWand method is:

+ +
+Image *GetImageFromMagickWand(const MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickAdaptiveBlurImage

+ +

MagickAdaptiveBlurImage() adaptively blurs the image by blurring less intensely near image edges and more intensely far from edges. We blur 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 MagickAdaptiveBlurImage() selects a suitable radius for you.

+ +

The format of the MagickAdaptiveBlurImage method is:

+ +
+MagickBooleanType MagickAdaptiveBlurImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickAdaptiveResizeImage

+ +

MagickAdaptiveResizeImage() adaptively resize image with data dependent triangulation.

+ +

MagickBooleanType MagickAdaptiveResizeImage(MagickWand *wand, const size_t columns,const size_t rows)

+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
+

MagickAdaptiveSharpenImage

+ +

MagickAdaptiveSharpenImage() adaptively sharpens the image by sharpening more intensely near image edges and less intensely far from edges. We sharpen 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 MagickAdaptiveSharpenImage() selects a suitable radius for you.

+ +

The format of the MagickAdaptiveSharpenImage method is:

+ +
+MagickBooleanType MagickAdaptiveSharpenImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickAdaptiveThresholdImage

+ +

MagickAdaptiveThresholdImage() selects an individual threshold for each pixel based on the range of intensity values in its local neighborhood. This allows for thresholding of an image whose global intensity histogram doesn't contain distinctive peaks.

+ +

The format of the AdaptiveThresholdImage method is:

+ +
+MagickBooleanType MagickAdaptiveThresholdImage(MagickWand *wand,
+  const size_t width,const size_t height,const double bias)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the width of the local neighborhood.
+ +
+
height
+
the height of the local neighborhood.
+ +
+
offset
+
the mean bias.
+ +
+
+

MagickAddImage

+ +

MagickAddImage() adds a clone of the images from the second wand and inserts them into the first wand.

+ +

Use MagickSetLastIterator(), to append new images into an existing wand, current image will be set to last image so later adds with also be appened to end of wand.

+ +

Use MagickSetFirstIterator() to prepend new images into wand, any more images added will also be prepended before other images in the wand. However the order of a list of new images will not change.

+ +

Otherwise the new images will be inserted just after the current image, and any later image will also be added after this current image but before the previously added images. Caution is advised when multiple image adds are inserted into the middle of the wand image list.

+ +

The format of the MagickAddImage method is:

+ +
+MagickBooleanType MagickAddImage(MagickWand *wand,
+  const MagickWand *add_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
add_wand
+
A wand that contains the image list to be added
+ +
+
+

MagickAddNoiseImage

+ +

MagickAddNoiseImage() adds random noise to the image.

+ +

The format of the MagickAddNoiseImage method is:

+ +
+MagickBooleanType MagickAddNoiseImage(MagickWand *wand,
+  const NoiseType noise_type,const double attenuate)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
noise_type
+
The type of noise: Uniform, Gaussian, Multiplicative, Impulse, Laplacian, or Poisson.
+ +
+
attenuate
+
attenuate the random distribution.
+ +
+
+

MagickAffineTransformImage

+ +

MagickAffineTransformImage() transforms an image as dictated by the affine matrix of the drawing wand.

+ +

The format of the MagickAffineTransformImage method is:

+ +
+MagickBooleanType MagickAffineTransformImage(MagickWand *wand,
+  const DrawingWand *drawing_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the draw wand.
+ +
+
+

MagickAnnotateImage

+ +

MagickAnnotateImage() annotates an image with text.

+ +

The format of the MagickAnnotateImage method is:

+ +
+MagickBooleanType MagickAnnotateImage(MagickWand *wand,
+  const DrawingWand *drawing_wand,const double x,const double y,
+  const double angle,const char *text)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the draw wand.
+ +
+
x
+
x ordinate to left of text
+ +
+
y
+
y ordinate to text baseline
+ +
+
angle
+
rotate text relative to this angle.
+ +
+
text
+
text to draw
+ +
+
+

MagickAnimateImages

+ +

MagickAnimateImages() animates an image or image sequence.

+ +

The format of the MagickAnimateImages method is:

+ +
+MagickBooleanType MagickAnimateImages(MagickWand *wand,
+  const char *server_name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
server_name
+
the X server name.
+ +
+
+

MagickAppendImages

+ +

MagickAppendImages() append the images in a wand from the current image onwards, creating a new wand with the single image result. This is affected by the gravity and background settings of the first image.

+ +

Typically you would call either MagickResetIterator() or MagickSetFirstImage() before calling this function to ensure that all the images in the wand's image list will be appended together.

+ +

The format of the MagickAppendImages method is:

+ +
+MagickWand *MagickAppendImages(MagickWand *wand,
+  const MagickBooleanType stack)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
stack
+
By default, images are stacked left-to-right. Set stack to MagickTrue to stack them top-to-bottom.
+ +
+
+

MagickAutoGammaImage

+ +

MagickAutoGammaImage() extracts the 'mean' from the image and adjust the image to try make set its gamma appropriatally.

+ +

The format of the MagickAutoGammaImage method is:

+ +
+MagickBooleanType MagickAutoGammaImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickAutoLevelImage

+ +

MagickAutoLevelImage() adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

+ +

The format of the MagickAutoLevelImage method is:

+ +
+MagickBooleanType MagickAutoLevelImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickAutoOrientImage

+ +

MagickAutoOrientImage() adjusts an image so that its orientation is suitable $ for viewing (i.e. top-left orientation).

+ +

The format of the MagickAutoOrientImage method is:

+ +
+MagickBooleanType MagickAutoOrientImage(MagickWand *image)
+
+ +

A description of each parameter follows:

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

MagickBlackThresholdImage

+ +

MagickBlackThresholdImage() is like MagickThresholdImage() but forces all pixels below the threshold into black while leaving all pixels above the threshold unchanged.

+ +

The format of the MagickBlackThresholdImage method is:

+ +
+MagickBooleanType MagickBlackThresholdImage(MagickWand *wand,
+  const PixelWand *threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
the pixel wand.
+ +
+
+

MagickBlueShiftImage

+ +

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

+ +

The format of the MagickBlueShiftImage method is:

+ +
+MagickBooleanType MagickBlueShiftImage(MagickWand *wand,
+  const double factor)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
factor
+
the blue shift factor (default 1.5)
+ +
+
+

MagickBlurImage

+ +

MagickBlurImage() blurs an image. We convolve the image with a gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and BlurImage() selects a suitable radius for you.

+ +

The format of the MagickBlurImage method is:

+ +
+MagickBooleanType MagickBlurImage(MagickWand *wand,const double radius,
+  const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the , in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the , in pixels.
+ +
+
+

MagickBorderImage

+ +

MagickBorderImage() surrounds the image with a border of the color defined by the bordercolor pixel wand.

+ +

The format of the MagickBorderImage method is:

+ +
+MagickBooleanType MagickBorderImage(MagickWand *wand,
+  const PixelWand *bordercolor,const size_t width,
+  const size_t height,const CompositeOperator compose)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
bordercolor
+
the border color pixel wand.
+ +
+
width
+
the border width.
+ +
+
height
+
the border height.
+ +
+
compose
+
the composite operator.
+ +
+
+

Use MagickBrightnessContrastImage

+ +

Use MagickBrightnessContrastImage() to change the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.

+ + +

The format of the MagickBrightnessContrastImage method is:

+ +
+MagickBooleanType MagickBrightnessContrastImage(MagickWand *wand,
+  const double brightness,const double contrast)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
brightness
+
the brightness percent (-100 .. 100).
+ +
+
contrast
+
the contrast percent (-100 .. 100).
+ +
+
+

MagickChannelFxImage

+ +

MagickChannelFxImage() applies a channel expression to the specified image. The expression consists of one or more channels, either mnemonic or numeric (e.g. red, 1), separated by actions as follows:

+ +
+
+ +
<=> exchange two channels (e.g. red<=>blue) => transfer a channel to another (e.g. red=>green) , separate channel operations (e.g. red, green) | read channels from next input image (e.g. red | green) ; write channels to next output image (e.g. red; green; blue)
+ +
A channel without a operation symbol implies extract. For example, to create 3 grayscale images from the red, green, and blue channels of an image, use:
+ +
+    -channel-fx "red; green; blue"
+
+ +

The format of the MagickChannelFxImage method is: + +

+MagickWand *MagickChannelFxImage(MagickWand *wand,const char *expression)
+
+ +

A description of each parameter follows: + +

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

MagickCharcoalImage

+ +

MagickCharcoalImage() simulates a charcoal drawing.

+ +

The format of the MagickCharcoalImage method is:

+ +
+MagickBooleanType MagickCharcoalImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickChopImage

+ +

MagickChopImage() removes a region of an image and collapses the image to occupy the removed portion

+ +

The format of the MagickChopImage method is:

+ +
+MagickBooleanType MagickChopImage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x offset.
+ +
+
y
+
the region y offset.
+ +
+ +
+
+

MagickClampImage

+ +

MagickClampImage() restricts the color range from 0 to the quantum depth.

+ +

The format of the MagickClampImage method is:

+ +
+MagickBooleanType MagickClampImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickClipImage

+ +

MagickClipImage() clips along the first path from the 8BIM profile, if present.

+ +

The format of the MagickClipImage method is:

+ +
+MagickBooleanType MagickClipImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickClipImagePath

+ +

MagickClipImagePath() clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. Id may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

+ +

The format of the MagickClipImagePath method is:

+ +
+MagickBooleanType MagickClipImagePath(MagickWand *wand,
+  const char *pathname,const MagickBooleanType inside)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pathname
+
name of clipping path resource. If name is preceded by #, use clipping path numbered by name.
+ +
+
inside
+
if non-zero, later operations take effect inside clipping path. Otherwise later operations take effect outside clipping path.
+ +
+
+

MagickClutImage

+ +

MagickClutImage() replaces colors in the image from a color lookup table.

+ +

The format of the MagickClutImage method is:

+ +
+MagickBooleanType MagickClutImage(MagickWand *wand,
+  const MagickWand *clut_wand,const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
clut_image
+
the clut image.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickCoalesceImages

+ +

MagickCoalesceImages() composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. MagickCoalesceImages() returns a new sequence where each image in the sequence is the same size as the first and composited with the next image in the sequence.

+ +

The format of the MagickCoalesceImages method is:

+ +
+MagickWand *MagickCoalesceImages(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickColorDecisionListImage

+ +

MagickColorDecisionListImage() accepts a lightweight Color Correction Collection (CCC) file which solely contains one or more color corrections and applies the color correction to the image. Here is a sample CCC file:

+ +
+    <ColorCorrectionCollection xmlns="urn:ASC:CDL:v1.2">
+    <ColorCorrection id="cc03345">
+          <SOPNode>
+               <Slope> 0.9 1.2 0.5 </Slope>
+               <Offset> 0.4 -0.5 0.6 </Offset>
+               <Power> 1.0 0.8 1.5 </Power>
+          </SOPNode>
+          <SATNode>
+               <Saturation> 0.85 </Saturation>
+          </SATNode>
+    </ColorCorrection>
+    </ColorCorrectionCollection>
+
+ +

which includes the offset, slope, and power for each of the RGB channels as well as the saturation.

+ +

The format of the MagickColorDecisionListImage method is:

+ +
+MagickBooleanType MagickColorDecisionListImage(MagickWand *wand,
+  const char *color_correction_collection)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
color_correction_collection
+
the color correction collection in XML.
+ +
+
+

MagickColorizeImage

+ +

MagickColorizeImage() blends the fill color with each pixel in the image.

+ +

The format of the MagickColorizeImage method is:

+ +
+MagickBooleanType MagickColorizeImage(MagickWand *wand,
+  const PixelWand *colorize,const PixelWand *blend)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
colorize
+
the colorize pixel wand.
+ +
+
alpha
+
the alpha pixel wand.
+ +
+
+

MagickColorMatrixImage

+ +

MagickColorMatrixImage() apply color transformation to an image. The 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 MagickColorMatrixImage method is:

+ +
+MagickBooleanType MagickColorMatrixImage(MagickWand *wand,
+  const KernelInfo *color_matrix)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
color_matrix
+
the color matrix.
+ +
+
+

MagickCombineImages

+ +

MagickCombineImages() combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified hannels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

+ +

The format of the MagickCombineImages method is:

+ +
+MagickWand *MagickCombineImages(MagickWand *wand,
+  const ColorspaceType colorspace)
+
+ +

A description of each parameter follows:

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

MagickCommentImage

+ +

MagickCommentImage() adds a comment to your image.

+ +

The format of the MagickCommentImage method is:

+ +
+MagickBooleanType MagickCommentImage(MagickWand *wand,
+  const char *comment)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
comment
+
the image comment.
+ +
+
+

MagickCompareImagesLayers

+ +

MagickCompareImagesLayers() compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

+ +

The format of the MagickCompareImagesLayers method is:

+ +
+MagickWand *MagickCompareImagesLayers(MagickWand *wand,
+  const LayerMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the compare method.
+ +
+
+

MagickCompareImages

+ +

MagickCompareImages() compares an image to a reconstructed image and returns the specified difference image.

+ +

The format of the MagickCompareImages method is:

+ +
+MagickWand *MagickCompareImages(MagickWand *wand,
+  const MagickWand *reference,const MetricType metric,
+  double *distortion)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
reference
+
the reference wand.
+ +
+
metric
+
the metric.
+ +
+
distortion
+
the computed distortion between the images.
+ +
+
+

MagickCompositeImage

+ +

MagickCompositeImage() composite one image onto another at the specified offset.

+ +

The format of the MagickCompositeImage method is:

+ +
+MagickBooleanType MagickCompositeImage(MagickWand *wand,
+  const MagickWand *source_wand,const CompositeOperator compose,
+  const MagickBooleanType clip_to_self,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand holding the destination images
+ +
+
source_image
+
the magick wand holding source image.
+ +
+
compose
+
This operator affects how the composite is applied to the image. The default is Over. These are some of the compose methods availble.
+ +
OverCompositeOp InCompositeOp OutCompositeOp AtopCompositeOp XorCompositeOp PlusCompositeOp MinusCompositeOp AddCompositeOp SubtractCompositeOp DifferenceCompositeOp BumpmapCompositeOp CopyCompositeOp DisplaceCompositeOp
+ +
+
clip_to_self
+
set to MagickTrue to limit composition to area composed.
+ +
+
x
+
the column offset of the composited image.
+ +
+
y
+
the row offset of the composited image.
+ +
+
+

MagickCompositeImageGravity

+ +

MagickCompositeImageGravity() composite one image onto another using the specified gravity.

+ +

The format of the MagickCompositeImageGravity method is:

+ +
+MagickBooleanType MagickCompositeImageGravity(MagickWand *wand,
+  const MagickWand *source_wand,const CompositeOperator compose,
+  const GravityType gravity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand holding the destination images
+ +
+
source_image
+
the magick wand holding source image.
+ +
+
compose
+
This operator affects how the composite is applied to the image. The default is Over. These are some of the compose methods availble.
+ +
OverCompositeOp InCompositeOp OutCompositeOp AtopCompositeOp XorCompositeOp PlusCompositeOp MinusCompositeOp AddCompositeOp SubtractCompositeOp DifferenceCompositeOp BumpmapCompositeOp CopyCompositeOp DisplaceCompositeOp
+ +
+
gravity
+
positioning gravity (NorthWestGravity, NorthGravity, NorthEastGravity, WestGravity, CenterGravity, EastGravity, SouthWestGravity, SouthGravity, SouthEastGravity)
+ +
+
+

MagickCompositeLayers

+ +

MagickCompositeLayers() composite the images in the source wand over the images in the destination wand in sequence, starting with the current image in both lists.

+ +

Each layer from the two image lists are composted together until the end of one of the image lists is reached. The offset of each composition is also adjusted to match the virtual canvas offsets of each layer. As such the given offset is relative to the virtual canvas, and not the actual image.

+ +

Composition uses given x and y offsets, as the 'origin' location of the source images virtual canvas (not the real image) allowing you to compose a list of 'layer images' into the destiantioni images. This makes it well sutiable for directly composing 'Clears Frame Animations' or 'Coaleased Animations' onto a static or other 'Coaleased Animation' destination image list. GIF disposal handling is not looked at.

+ +

Special case:- If one of the image sequences is the last image (just a single image remaining), that image is repeatally composed with all the images in the other image list. Either the source or destination lists may be the single image, for this situation.

+ +

In the case of a single destination image (or last image given), that image will ve cloned to match the number of images remaining in the source image list.

+ +

This is equivelent to the "-layer Composite" Shell API operator.

+ +

The format of the MagickCompositeLayers method is:

+ +
+MagickBooleanType MagickCompositeLayers(MagickWand *wand,
+  const MagickWand *source_wand, const CompositeOperator compose,
+  const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand holding destaintion images
+ +
+
source_wand
+
the wand holding the source images
+ +
+
compose, x, y
+
composition arguments
+ +
+
+

MagickContrastImage

+ +

MagickContrastImage() enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a value other than 0 to increase the image contrast otherwise the contrast is reduced.

+ +

The format of the MagickContrastImage method is:

+ +
+MagickBooleanType MagickContrastImage(MagickWand *wand,
+  const MagickBooleanType sharpen)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
sharpen
+
Increase or decrease image contrast.
+ +
+ +
+
+

MagickContrastStretchImage

+ +

MagickContrastStretchImage() enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available. You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickContrastStretchImage method is:

+ +
+MagickBooleanType MagickContrastStretchImage(MagickWand *wand,
+  const double black_point,const double white_point)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
black_point
+
the black point.
+ +
+
white_point
+
the white point.
+ +
+
+

MagickConvolveImage

+ +

MagickConvolveImage() applies a custom convolution kernel to the image.

+ +

The format of the MagickConvolveImage method is:

+ +
+MagickBooleanType MagickConvolveImage(MagickWand *wand,
+  const KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
kernel
+
An array of doubles representing the convolution kernel.
+ +
+
+

MagickCropImage

+ +

MagickCropImage() extracts a region of the image.

+ +

The format of the MagickCropImage method is:

+ +
+MagickBooleanType MagickCropImage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x-offset.
+ +
+
y
+
the region y-offset.
+ +
+
+

MagickCycleColormapImage

+ +

MagickCycleColormapImage() displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychodelic effect.

+ +

The format of the MagickCycleColormapImage method is:

+ +
+MagickBooleanType MagickCycleColormapImage(MagickWand *wand,
+  const ssize_t displace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pixel_wand
+
the pixel wand.
+ +
+
+

MagickConstituteImage

+ +

MagickConstituteImage() adds an image to the wand comprised of the pixel data you supply. The pixel data must be in scanline order top-to-bottom. The data can be char, short int, int, float, or double. Float and double require the pixels to be normalized [0..1], otherwise [0..Max], where Max is the maximum value the type can accomodate (e.g. 255 for char). For example, to create a 640x480 image from unsigned red-green-blue character data, use

+ +

MagickConstituteImage(wand,640,480,"RGB",CharPixel,pixels);

+ +

The format of the MagickConstituteImage method is:

+ +
+MagickBooleanType MagickConstituteImage(MagickWand *wand,
+  const size_t columns,const size_t rows,const char *map,
+  const StorageType storage,void *pixels)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
width in pixels of the image.
+ +
+
rows
+
height in pixels of the image.
+ +
+
map
+
This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = alpha (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
+ +
+
storage
+
Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, DoublePixel, FloatPixel, IntegerPixel, LongPixel, QuantumPixel, or ShortPixel.
+ +
+
pixels
+
This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
+ +
+ +
+
+

MagickDecipherImage

+ +

MagickDecipherImage() converts cipher pixels to plain pixels.

+ +

The format of the MagickDecipherImage method is:

+ +
+MagickBooleanType MagickDecipherImage(MagickWand *wand,
+  const char *passphrase)
+
+ +

A description of each parameter follows:

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

MagickDeconstructImages

+ +

MagickDeconstructImages() compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

+ +

The format of the MagickDeconstructImages method is:

+ +
+MagickWand *MagickDeconstructImages(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickDeskewImage

+ +

MagickDeskewImage() removes skew from the image. Skew is an artifact that occurs in scanned images because of the camera being misaligned, imperfections in the scanning or surface, or simply because the paper was not placed completely flat when scanned.

+ +

The format of the MagickDeskewImage method is:

+ +
+MagickBooleanType MagickDeskewImage(MagickWand *wand,
+  const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
separate background from foreground.
+ +
+
+

MagickDespeckleImage

+ +

MagickDespeckleImage() reduces the speckle noise in an image while perserving the edges of the original image.

+ +

The format of the MagickDespeckleImage method is:

+ +
+MagickBooleanType MagickDespeckleImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickDestroyImage

+ +

MagickDestroyImage() dereferences an image, deallocating memory associated with the image if the reference count becomes zero.

+ +

The format of the MagickDestroyImage method is:

+ +
+Image *MagickDestroyImage(Image *image)
+
+ +

A description of each parameter follows:

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

MagickDisplayImage

+ +

MagickDisplayImage() displays an image.

+ +

The format of the MagickDisplayImage method is:

+ +
+MagickBooleanType MagickDisplayImage(MagickWand *wand,
+  const char *server_name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
server_name
+
the X server name.
+ +
+
+

MagickDisplayImages

+ +

MagickDisplayImages() displays an image or image sequence.

+ +

The format of the MagickDisplayImages method is:

+ +
+MagickBooleanType MagickDisplayImages(MagickWand *wand,
+  const char *server_name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
server_name
+
the X server name.
+ +
+
+

MagickDistortImage

+ +

MagickDistortImage() distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usally of the same size as the source image, unless 'bestfit' is set to true.

+ +

If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping.

+ +

The format of the MagickDistortImage method is:

+ +
+MagickBooleanType MagickDistortImage(MagickWand *wand,
+  const DistortImageMethod method,const size_t number_arguments,
+  const double *arguments,const MagickBooleanType bestfit)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be distorted.
+ +
+
method
+
the method of image distortion.
+ +
ArcDistortion always ignores the source image offset, and always 'bestfit' the destination image with the top left corner offset relative to the polar mapping center.
+ +
Bilinear has no simple inverse mapping so it does not allow 'bestfit' style of image distortion.
+ +
Affine, Perspective, and Bilinear, do least squares fitting of the distortion when more than the minimum number of control point pairs are provided.
+ +
Perspective, and Bilinear, falls back to a Affine distortion when less that 4 control point pairs are provided. While Affine distortions let you use any number of control point pairs, that is Zero pairs is a no-Op (viewport only) distrotion, one pair is a translation and two pairs of control points do a scale-rotate-translate, without any shearing.
+ +
+
number_arguments
+
the number of arguments given for this distortion method.
+ +
+
arguments
+
the arguments for this distortion method.
+ +
+
bestfit
+
Attempt to resize destination to fit distorted source.
+ +
+
+

MagickDrawImage

+ +

MagickDrawImage() renders the drawing wand on the current image.

+ +

The format of the MagickDrawImage method is:

+ +
+MagickBooleanType MagickDrawImage(MagickWand *wand,
+  const DrawingWand *drawing_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the draw wand.
+ +
+
+

MagickEdgeImage

+ +

MagickEdgeImage() enhance edges within the image with a convolution filter of the given radius. Use a radius of 0 and Edge() selects a suitable radius for you.

+ +

The format of the MagickEdgeImage method is:

+ +
+MagickBooleanType MagickEdgeImage(MagickWand *wand,const double radius)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the pixel neighborhood.
+ +
+
+

MagickEmbossImage

+ +

MagickEmbossImage() returns a grayscale image with a three-dimensional effect. 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 Emboss() selects a suitable radius for you.

+ +

The format of the MagickEmbossImage method is:

+ +
+MagickBooleanType MagickEmbossImage(MagickWand *wand,const double radius,
+  const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickEncipherImage

+ +

MagickEncipherImage() converts plaint pixels to cipher pixels.

+ +

The format of the MagickEncipherImage method is:

+ +
+MagickBooleanType MagickEncipherImage(MagickWand *wand,
+  const char *passphrase)
+
+ +

A description of each parameter follows:

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

MagickEnhanceImage

+ +

MagickEnhanceImage() applies a digital filter that improves the quality of a noisy image.

+ +

The format of the MagickEnhanceImage method is:

+ +
+MagickBooleanType MagickEnhanceImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickEqualizeImage

+ +

MagickEqualizeImage() equalizes the image histogram.

+ +

The format of the MagickEqualizeImage method is:

+ +
+MagickBooleanType MagickEqualizeImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
channel
+
the image channel(s).
+ +
+
+

MagickEvaluateImage

+ +

MagickEvaluateImage() applys an arithmetic, relational, or logical expression to an image. Use these operators to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

+ +

The format of the MagickEvaluateImage method is:

+ +
+MagickBooleanType MagickEvaluateImage(MagickWand *wand,
+  const MagickEvaluateOperator operator,const double value)
+MagickBooleanType MagickEvaluateImages(MagickWand *wand,
+  const MagickEvaluateOperator operator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
op
+
A channel operator.
+ +
+
value
+
A value value.
+ +
+
+

MagickExportImagePixels

+ +

MagickExportImagePixels() extracts pixel data from an image and returns it to you. The method returns MagickTrue on success otherwise MagickFalse if an error is encountered. The data is returned as char, short int, int, ssize_t, float, or double in the order specified by map.

+ +

Suppose you want to extract the first scanline of a 640x480 image as character data in red-green-blue order:

+ +
+MagickExportImagePixels(wand,0,0,640,1,"RGB",CharPixel,pixels);
+
+ +

The format of the MagickExportImagePixels method is:

+ +
+MagickBooleanType MagickExportImagePixels(MagickWand *wand,
+  const ssize_t x,const ssize_t y,const size_t columns,
+  const size_t rows,const char *map,const StorageType storage,
+  void *pixels)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x, y, columns, rows
+
These values define the perimeter of a region of pixels you want to extract.
+ +
+
map
+
This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = alpha (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
+ +
+
storage
+
Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, DoublePixel, FloatPixel, IntegerPixel, LongPixel, QuantumPixel, or ShortPixel.
+ +
+
pixels
+
This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
+ +
+
+

MagickExtentImage

+ +

MagickExtentImage() extends the image as defined by the geometry, gravity, and wand background color. Set the (x,y) offset of the geometry to move the original wand relative to the extended wand.

+ +

The format of the MagickExtentImage method is:

+ +
+MagickBooleanType MagickExtentImage(MagickWand *wand,const size_t width,
+  const size_t height,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x offset.
+ +
+
y
+
the region y offset.
+ +
+
+

MagickFlipImage

+ +

MagickFlipImage() creates a vertical mirror image by reflecting the pixels around the central x-axis.

+ +

The format of the MagickFlipImage method is:

+ +
+MagickBooleanType MagickFlipImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickFloodfillPaintImage

+ +

MagickFloodfillPaintImage() changes the color value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the color value is changed for any neighbor pixel that does not match the bordercolor member of image.

+ +

The format of the MagickFloodfillPaintImage method is:

+ +
+MagickBooleanType MagickFloodfillPaintImage(MagickWand *wand,
+  const PixelWand *fill,const double fuzz,const PixelWand *bordercolor,
+  const ssize_t x,const ssize_t y,const MagickBooleanType invert)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
fill
+
the floodfill color pixel wand.
+ +
+
fuzz
+
By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
+ +
+
bordercolor
+
the border color pixel wand.
+ +
+
x,y
+
the starting location of the operation.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
+

MagickFlopImage

+ +

MagickFlopImage() creates a horizontal mirror image by reflecting the pixels around the central y-axis.

+ +

The format of the MagickFlopImage method is:

+ +
+MagickBooleanType MagickFlopImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickForwardFourierTransformImage

+ +

MagickForwardFourierTransformImage() implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

+ +

The format of the MagickForwardFourierTransformImage method is:

+ +
+MagickBooleanType MagickForwardFourierTransformImage(MagickWand *wand,
+  const MagickBooleanType magnitude)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
magnitude
+
if true, return as magnitude / phase pair otherwise a real / imaginary image pair.
+ +
+
+

MagickFrameImage

+ +

MagickFrameImage() adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

+ +

The format of the MagickFrameImage method is:

+ +
+MagickBooleanType MagickFrameImage(MagickWand *wand,
+  const PixelWand *matte_color,const size_t width,
+  const size_t height,const ssize_t inner_bevel,
+  const ssize_t outer_bevel,const CompositeOperator compose)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
matte_color
+
the frame color pixel wand.
+ +
+
width
+
the border width.
+ +
+
height
+
the border height.
+ +
+
inner_bevel
+
the inner bevel width.
+ +
+
outer_bevel
+
the outer bevel width.
+ +
+
compose
+
the composite operator.
+ +
+
+

MagickFunctionImage

+ +

MagickFunctionImage() applys an arithmetic, relational, or logical expression to an image. Use these operators to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

+ +

The format of the MagickFunctionImage method is:

+ +
+MagickBooleanType MagickFunctionImage(MagickWand *wand,
+  const MagickFunction function,const size_t number_arguments,
+  const double *arguments)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
function
+
the image function.
+ +
+
number_arguments
+
the number of function arguments.
+ +
+
arguments
+
the function arguments.
+ +
+
+

MagickFxImage

+ +

MagickFxImage() evaluate expression for each pixel in the image.

+ +

The format of the MagickFxImage method is:

+ +
+MagickWand *MagickFxImage(MagickWand *wand,const char *expression)
+
+ +

A description of each parameter follows:

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

MagickGammaImage

+ +

MagickGammaImage() gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickGammaImage method is:

+ +
+MagickBooleanType MagickGammaImage(MagickWand *wand,const double gamma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
level
+
Define the level of gamma correction.
+ +
+
+

MagickGaussianBlurImage

+ +

MagickGaussianBlurImage() blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and MagickGaussianBlurImage() selects a suitable radius for you.

+ +

The format of the MagickGaussianBlurImage method is:

+ +
+MagickBooleanType MagickGaussianBlurImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickGetImage

+ +

MagickGetImage() gets the image at the current image index.

+ +

The format of the MagickGetImage method is:

+ +
+MagickWand *MagickGetImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageAlphaChannel

+ +

MagickGetImageAlphaChannel() returns MagickFalse if the image alpha channel is not activated. That is, the image is RGB rather than RGBA or CMYK rather than CMYKA.

+ +

The format of the MagickGetImageAlphaChannel method is:

+ +
+MagickBooleanType MagickGetImageAlphaChannel(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageMask

+ +

MagickGetImageMask() gets the image clip mask at the current image index.

+ +

The format of the MagickGetImageMask method is:

+ +
+MagickWand *MagickGetImageMask(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageBackgroundColor

+ +

MagickGetImageBackgroundColor() returns the image background color.

+ +

The format of the MagickGetImageBackgroundColor method is:

+ +
+MagickBooleanType MagickGetImageBackgroundColor(MagickWand *wand,
+  PixelWand *background_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background_color
+
Return the background color.
+ +
+
+

MagickGetImageBlob

+ +

MagickGetImageBlob() implements direct to memory image formats. It returns the image as a blob (a formatted "file" in memory) and its length, starting from the current position in the image sequence. Use MagickSetImageFormat() to set the format to write to the blob (GIF, JPEG, PNG, etc.).

+ +

Utilize MagickResetIterator() to ensure the write is from the beginning of the image sequence.

+ +

Use MagickRelinquishMemory() to free the blob when you are done with it.

+ +

The format of the MagickGetImageBlob method is:

+ +
+unsigned char *MagickGetImageBlob(MagickWand *wand,size_t *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
length
+
the length of the blob.
+ +
+
+

MagickGetImageBlob

+ +

MagickGetImageBlob() implements direct to memory image formats. It returns the image sequence as a blob and its length. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use MagickSetImageFormat().

+ +

Note, some image formats do not permit multiple images to the same image stream (e.g. JPEG). in this instance, just the first image of the sequence is returned as a blob.

+ +

The format of the MagickGetImagesBlob method is:

+ +
+unsigned char *MagickGetImagesBlob(MagickWand *wand,size_t *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
length
+
the length of the blob.
+ +
+
+

MagickGetImageBluePrimary

+ +

MagickGetImageBluePrimary() returns the chromaticy blue primary point for the image.

+ +

The format of the MagickGetImageBluePrimary method is:

+ +
+MagickBooleanType MagickGetImageBluePrimary(MagickWand *wand,double *x,
+  double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the chromaticity blue primary x-point.
+ +
+
y
+
the chromaticity blue primary y-point.
+ +
+
+

MagickGetImageBorderColor

+ +

MagickGetImageBorderColor() returns the image border color.

+ +

The format of the MagickGetImageBorderColor method is:

+ +
+MagickBooleanType MagickGetImageBorderColor(MagickWand *wand,
+  PixelWand *border_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
border_color
+
Return the border color.
+ +
+
+

MagickGetImageFeatures

+ +

MagickGetImageFeatures() returns features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance. The features include the angular second moment, contrast, correlation, sum of squares: variance, inverse difference moment, sum average, sum varience, sum entropy, entropy, difference variance, difference entropy, information measures of correlation 1, information measures of correlation 2, and maximum correlation coefficient. You can access the red channel contrast, for example, like this:

+ +
+channel_features=MagickGetImageFeatures(wand,1);
+contrast=channel_features[RedPixelChannel].contrast[0];
+
+ +

Use MagickRelinquishMemory() to free the statistics buffer.

+ +

The format of the MagickGetImageFeatures method is:

+ +
+ChannelFeatures *MagickGetImageFeatures(MagickWand *wand,
+  const size_t distance)
+
+ +

A description of each parameter follows:

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

MagickGetImageKurtosis

+ +

MagickGetImageKurtosis() gets the kurtosis and skewness of one or more image channels.

+ +

The format of the MagickGetImageKurtosis method is:

+ +
+MagickBooleanType MagickGetImageKurtosis(MagickWand *wand,
+  double *kurtosis,double *skewness)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
kurtosis
+
The kurtosis for the specified channel(s).
+ +
+
skewness
+
The skewness for the specified channel(s).
+ +
+
+

MagickGetImageMean

+ +

MagickGetImageMean() gets the mean and standard deviation of one or more image channels.

+ +

The format of the MagickGetImageMean method is:

+ +
+MagickBooleanType MagickGetImageMean(MagickWand *wand,double *mean,
+  double *standard_deviation)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
channel
+
the image channel(s).
+ +
+
mean
+
The mean pixel value for the specified channel(s).
+ +
+
standard_deviation
+
The standard deviation for the specified channel(s).
+ +
+
+

MagickGetImageRange

+ +

MagickGetImageRange() gets the range for one or more image channels.

+ +

The format of the MagickGetImageRange method is:

+ +
+MagickBooleanType MagickGetImageRange(MagickWand *wand,double *minima,
+  double *maxima)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
minima
+
The minimum pixel value for the specified channel(s).
+ +
+
maxima
+
The maximum pixel value for the specified channel(s).
+ +
+
+

MagickGetImageStatistics

+ +

MagickGetImageStatistics() returns statistics for each channel in the image. The statistics include the channel depth, its minima and maxima, the mean, the standard deviation, the kurtosis and the skewness. You can access the red channel mean, for example, like this:

+ +
+channel_statistics=MagickGetImageStatistics(wand);
+red_mean=channel_statistics[RedPixelChannel].mean;
+
+ +

Use MagickRelinquishMemory() to free the statistics buffer.

+ +

The format of the MagickGetImageStatistics method is:

+ +
+ChannelStatistics *MagickGetImageStatistics(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageColormapColor

+ +

MagickGetImageColormapColor() returns the color of the specified colormap index.

+ +

The format of the MagickGetImageColormapColor method is:

+ +
+MagickBooleanType MagickGetImageColormapColor(MagickWand *wand,
+  const size_t index,PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
index
+
the offset into the image colormap.
+ +
+
color
+
Return the colormap color in this wand.
+ +
+
+

MagickGetImageColors

+ +

MagickGetImageColors() gets the number of unique colors in the image.

+ +

The format of the MagickGetImageColors method is:

+ +
+size_t MagickGetImageColors(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageColorspace

+ +

MagickGetImageColorspace() gets the image colorspace.

+ +

The format of the MagickGetImageColorspace method is:

+ +
+ColorspaceType MagickGetImageColorspace(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageCompose

+ +

MagickGetImageCompose() returns the composite operator associated with the image.

+ +

The format of the MagickGetImageCompose method is:

+ +
+CompositeOperator MagickGetImageCompose(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageCompression

+ +

MagickGetImageCompression() gets the image compression.

+ +

The format of the MagickGetImageCompression method is:

+ +
+CompressionType MagickGetImageCompression(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageCompressionQuality

+ +

MagickGetImageCompressionQuality() gets the image compression quality.

+ +

The format of the MagickGetImageCompressionQuality method is:

+ +
+size_t MagickGetImageCompressionQuality(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageDelay

+ +

MagickGetImageDelay() gets the image delay.

+ +

The format of the MagickGetImageDelay method is:

+ +
+size_t MagickGetImageDelay(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageDepth

+ +

MagickGetImageDepth() gets the image depth.

+ +

The format of the MagickGetImageDepth method is:

+ +
+size_t MagickGetImageDepth(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageDispose

+ +

MagickGetImageDispose() gets the image disposal method.

+ +

The format of the MagickGetImageDispose method is:

+ +
+DisposeType MagickGetImageDispose(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageDistortion

+ +

MagickGetImageDistortion() compares an image to a reconstructed image and returns the specified distortion metric.

+ +

The format of the MagickGetImageDistortion method is:

+ +
+MagickBooleanType MagickGetImageDistortion(MagickWand *wand,
+  const MagickWand *reference,const MetricType metric,
+  double *distortion)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
reference
+
the reference wand.
+ +
+
metric
+
the metric.
+ +
+
distortion
+
the computed distortion between the images.
+ +
+
+

MagickGetImageDistortions

+ +

MagickGetImageDistortions() compares one or more pixel channels of an image to a reconstructed image and returns the specified distortion metrics.

+ +

Use MagickRelinquishMemory() to free the metrics when you are done with them.

+ +

The format of the MagickGetImageDistortion method is:

+ +
+double *MagickGetImageDistortion(MagickWand *wand,
+  const MagickWand *reference,const MetricType metric)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
reference
+
the reference wand.
+ +
+
metric
+
the metric.
+ +
+
+

MagickGetImageEndian

+ +

MagickGetImageEndian() gets the image endian.

+ +

The format of the MagickGetImageEndian method is:

+ +
+EndianType MagickGetImageEndian(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageFilename

+ +

MagickGetImageFilename() returns the filename of a particular image in a sequence.

+ +

The format of the MagickGetImageFilename method is:

+ +
+char *MagickGetImageFilename(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageFormat

+ +

MagickGetImageFormat() returns the format of a particular image in a sequence.

+ +

The format of the MagickGetImageFormat method is:

+ +
+char *MagickGetImageFormat(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageFuzz

+ +

MagickGetImageFuzz() gets the image fuzz.

+ +

The format of the MagickGetImageFuzz method is:

+ +
+double MagickGetImageFuzz(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageGamma

+ +

MagickGetImageGamma() gets the image gamma.

+ +

The format of the MagickGetImageGamma method is:

+ +
+double MagickGetImageGamma(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageGravity

+ +

MagickGetImageGravity() gets the image gravity.

+ +

The format of the MagickGetImageGravity method is:

+ +
+GravityType MagickGetImageGravity(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageGreenPrimary

+ +

MagickGetImageGreenPrimary() returns the chromaticy green primary point.

+ +

The format of the MagickGetImageGreenPrimary method is:

+ +
+MagickBooleanType MagickGetImageGreenPrimary(MagickWand *wand,double *x,
+  double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the chromaticity green primary x-point.
+ +
+
y
+
the chromaticity green primary y-point.
+ +
+
+

MagickGetImageHeight

+ +

MagickGetImageHeight() returns the image height.

+ +

The format of the MagickGetImageHeight method is:

+ +
+size_t MagickGetImageHeight(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageHistogram

+ +

MagickGetImageHistogram() returns the image histogram as an array of PixelWand wands.

+ +

The format of the MagickGetImageHistogram method is:

+ +
+PixelWand **MagickGetImageHistogram(MagickWand *wand,
+  size_t *number_colors)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_colors
+
the number of unique colors in the image and the number of pixel wands returned.
+ +
+
+

MagickGetImageInterlaceScheme

+ +

MagickGetImageInterlaceScheme() gets the image interlace scheme.

+ +

The format of the MagickGetImageInterlaceScheme method is:

+ +
+InterlaceType MagickGetImageInterlaceScheme(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageInterpolateMethod

+ +

MagickGetImageInterpolateMethod() returns the interpolation method for the sepcified image.

+ +

The format of the MagickGetImageInterpolateMethod method is:

+ +
+PixelInterpolateMethod MagickGetImagePixelInterpolateMethod(
+  MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageIterations

+ +

MagickGetImageIterations() gets the image iterations.

+ +

The format of the MagickGetImageIterations method is:

+ +
+size_t MagickGetImageIterations(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageLength

+ +

MagickGetImageLength() returns the image length in bytes.

+ +

The format of the MagickGetImageLength method is:

+ +
+MagickBooleanType MagickGetImageLength(MagickWand *wand,
+  MagickSizeType *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
length
+
the image length in bytes.
+ +
+
+

MagickGetImageMatteColor

+ +

MagickGetImageMatteColor() returns the image matte color.

+ +

The format of the MagickGetImageMatteColor method is:

+ +
+MagickBooleanType MagickGetImagematteColor(MagickWand *wand,
+  PixelWand *matte_color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
matte_color
+
Return the matte color.
+ +
+
+

MagickGetImageOrientation

+ +

MagickGetImageOrientation() returns the image orientation.

+ +

The format of the MagickGetImageOrientation method is:

+ +
+OrientationType MagickGetImageOrientation(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImagePage

+ +

MagickGetImagePage() returns the page geometry associated with the image.

+ +

The format of the MagickGetImagePage method is:

+ +
+MagickBooleanType MagickGetImagePage(MagickWand *wand,
+  size_t *width,size_t *height,ssize_t *x,ssize_t *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the page width.
+ +
+
height
+
the page height.
+ +
+
x
+
the page x-offset.
+ +
+
y
+
the page y-offset.
+ +
+
+

MagickGetImagePixelColor

+ +

MagickGetImagePixelColor() returns the color of the specified pixel.

+ +

The format of the MagickGetImagePixelColor method is:

+ +
+MagickBooleanType MagickGetImagePixelColor(MagickWand *wand,
+  const ssize_t x,const ssize_t y,PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x,y
+
the pixel offset into the image.
+ +
+
color
+
Return the colormap color in this wand.
+ +
+
+

MagickGetImageRedPrimary

+ +

MagickGetImageRedPrimary() returns the chromaticy red primary point.

+ +

The format of the MagickGetImageRedPrimary method is:

+ +
+MagickBooleanType MagickGetImageRedPrimary(MagickWand *wand,double *x,
+  double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the chromaticity red primary x-point.
+ +
+
y
+
the chromaticity red primary y-point.
+ +
+
+

MagickGetImageRegion

+ +

MagickGetImageRegion() extracts a region of the image and returns it as a a new wand.

+ +

The format of the MagickGetImageRegion method is:

+ +
+MagickWand *MagickGetImageRegion(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x offset.
+ +
+
y
+
the region y offset.
+ +
+
+

MagickGetImageRenderingIntent

+ +

MagickGetImageRenderingIntent() gets the image rendering intent.

+ +

The format of the MagickGetImageRenderingIntent method is:

+ +
+RenderingIntent MagickGetImageRenderingIntent(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageResolution

+ +

MagickGetImageResolution() gets the image X and Y resolution.

+ +

The format of the MagickGetImageResolution method is:

+ +
+MagickBooleanType MagickGetImageResolution(MagickWand *wand,double *x,
+  double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the image x-resolution.
+ +
+
y
+
the image y-resolution.
+ +
+
+

MagickGetImageScene

+ +

MagickGetImageScene() gets the image scene.

+ +

The format of the MagickGetImageScene method is:

+ +
+size_t MagickGetImageScene(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageSignature

+ +

MagickGetImageSignature() generates an SHA-256 message digest for the image pixel stream.

+ +

The format of the MagickGetImageSignature method is:

+ +
+char *MagickGetImageSignature(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageTicksPerSecond

+ +

MagickGetImageTicksPerSecond() gets the image ticks-per-second.

+ +

The format of the MagickGetImageTicksPerSecond method is:

+ +
+size_t MagickGetImageTicksPerSecond(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageType

+ +

MagickGetImageType() gets the potential image type:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte

+ +

The format of the MagickGetImageType method is:

+ +
+ImageType MagickGetImageType(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageUnits

+ +

MagickGetImageUnits() gets the image units of resolution.

+ +

The format of the MagickGetImageUnits method is:

+ +
+ResolutionType MagickGetImageUnits(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageVirtualPixelMethod

+ +

MagickGetImageVirtualPixelMethod() returns the virtual pixel method for the sepcified image.

+ +

The format of the MagickGetImageVirtualPixelMethod method is:

+ +
+VirtualPixelMethod MagickGetImageVirtualPixelMethod(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageWhitePoint

+ +

MagickGetImageWhitePoint() returns the chromaticy white point.

+ +

The format of the MagickGetImageWhitePoint method is:

+ +
+MagickBooleanType MagickGetImageWhitePoint(MagickWand *wand,double *x,
+  double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the chromaticity white x-point.
+ +
+
y
+
the chromaticity white y-point.
+ +
+
+

MagickGetImageWidth

+ +

MagickGetImageWidth() returns the image width.

+ +

The format of the MagickGetImageWidth method is:

+ +
+size_t MagickGetImageWidth(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetNumberImages

+ +

MagickGetNumberImages() returns the number of images associated with a magick wand.

+ +

The format of the MagickGetNumberImages method is:

+ +
+size_t MagickGetNumberImages(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetImageTotalInkDensity

+ +

MagickGetImageTotalInkDensity() gets the image total ink density.

+ +

The format of the MagickGetImageTotalInkDensity method is:

+ +
+double MagickGetImageTotalInkDensity(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickHaldClutImage

+ +

MagickHaldClutImage() replaces colors in the image from a Hald color lookup table. A Hald color lookup table is a 3-dimensional color cube mapped to 2 dimensions. Create it with the HALD coder. You can apply any color transformation to the Hald image and then use this method to apply the transform to the image.

+ +

The format of the MagickHaldClutImage method is:

+ +
+MagickBooleanType MagickHaldClutImage(MagickWand *wand,
+  const MagickWand *hald_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
hald_image
+
the hald CLUT image.
+ +
+
+

MagickHasNextImage

+ +

MagickHasNextImage() returns MagickTrue if the wand has more images when traversing the list in the forward direction

+ +

The format of the MagickHasNextImage method is:

+ +
+MagickBooleanType MagickHasNextImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickHasPreviousImage

+ +

MagickHasPreviousImage() returns MagickTrue if the wand has more images when traversing the list in the reverse direction

+ +

The format of the MagickHasPreviousImage method is:

+ +
+MagickBooleanType MagickHasPreviousImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickIdentifyImage

+ +

MagickIdentifyImage() identifies an image by printing its attributes to the file. Attributes include the image width, height, size, and others.

+ +

The format of the MagickIdentifyImage method is:

+ +
+const char *MagickIdentifyImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickIdentifyImageType

+ +

MagickIdentifyImageType() gets the potential image type:

+ +

Bilevel Grayscale GrayscaleMatte Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte

+ +

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

+ +
+    (void) MagickSetImageType(wand,MagickIdentifyImageType(wand));
+
+ +

The format of the MagickIdentifyImageType method is:

+ +
+ImageType MagickIdentifyImageType(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickImplodeImage

+ +

MagickImplodeImage() 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 MagickImplodeImage method is:

+ +
+MagickBooleanType MagickImplodeImage(MagickWand *wand,
+  const double radius,const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
amount
+
Define the extent of the implosion.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickImportImagePixels

+ +

MagickImportImagePixels() accepts pixel datand stores it in the image at the location you specify. The method returns MagickFalse on success otherwise MagickTrue if an error is encountered. The pixel data can be either char, short int, int, ssize_t, float, or double in the order specified by map.

+ +

Suppose your want to upload the first scanline of a 640x480 image from character data in red-green-blue order:

+ +
+MagickImportImagePixels(wand,0,0,640,1,"RGB",CharPixel,pixels);
+
+ +

The format of the MagickImportImagePixels method is:

+ +
+MagickBooleanType MagickImportImagePixels(MagickWand *wand,
+  const ssize_t x,const ssize_t y,const size_t columns,
+  const size_t rows,const char *map,const StorageType storage,
+  const void *pixels)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x, y, columns, rows
+
These values define the perimeter of a region of pixels you want to define.
+ +
+
map
+
This string reflects the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = alpha (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
+ +
+
storage
+
Define the data type of the pixels. Float and double types are expected to be normalized [0..1] otherwise [0..QuantumRange]. Choose from these types: CharPixel, ShortPixel, IntegerPixel, LongPixel, FloatPixel, or DoublePixel.
+ +
+
pixels
+
This array of values contain the pixel components as defined by map and type. You must preallocate this array where the expected length varies depending on the values of width, height, map, and type.
+ +
+
+

MagickInterpolativeResizeImage

+ +

MagickInterpolativeResizeImage() resize image using a interpolative method.

+ +

MagickBooleanType MagickInterpolativeResizeImage(MagickWand *wand, const size_t columns,const size_t rows, const PixelInterpolateMethod method)

+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
interpolate
+
the pixel interpolation method.
+ +
+
+

MagickInverseFourierTransformImage

+ +

MagickInverseFourierTransformImage() implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

+ +

The format of the MagickInverseFourierTransformImage method is:

+ +
+MagickBooleanType MagickInverseFourierTransformImage(
+  MagickWand *magnitude_wand,MagickWand *phase_wand,
+  const MagickBooleanType magnitude)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
magnitude_wand
+
the magnitude or real wand.
+ +
+
phase_wand
+
the phase or imaginary wand.
+ +
+
magnitude
+
if true, return as magnitude / phase pair otherwise a real / imaginary image pair.
+ +
+
+

MagickLabelImage

+ +

MagickLabelImage() adds a label to your image.

+ +

The format of the MagickLabelImage method is:

+ +
+MagickBooleanType MagickLabelImage(MagickWand *wand,const char *label)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
label
+
the image label.
+ +
+
+

MagickLevelImage

+ +

MagickLevelImage() adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

+ +

The format of the MagickLevelImage method is:

+ +
+MagickBooleanType MagickLevelImage(MagickWand *wand,
+  const double black_point,const double gamma,const double white_point)
+MagickBooleanType MagickLevelImage(MagickWand *wand,
+  const ChannelType channel,const double black_point,const double gamma,
+  const double white_point)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
channel
+
Identify which channel to level: RedPixelChannel, GreenPixelChannel, etc.
+ +
+
black_point
+
the black point.
+ +
+
gamma
+
the gamma.
+ +
+
white_point
+
the white point.
+ +
+
+

MagickLinearStretchImage

+ +

MagickLinearStretchImage() stretches with saturation the image intensity.

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickLinearStretchImage method is:

+ +
+MagickBooleanType MagickLinearStretchImage(MagickWand *wand,
+  const double black_point,const double white_point)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
black_point
+
the black point.
+ +
+
white_point
+
the white point.
+ +
+
+

MagickLiquidRescaleImage

+ +

MagickLiquidRescaleImage() rescales image with seam carving.

+ +

MagickBooleanType MagickLiquidRescaleImage(MagickWand *wand, const size_t columns,const size_t rows, const double delta_x,const double rigidity)

+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
delta_x
+
maximum seam transversal step (0 means straight seams).
+ +
+
rigidity
+
introduce a bias for non-straight seams (typically 0).
+ +
+
+

MagickMagnifyImage

+ +

MagickMagnifyImage() is a convenience method that scales an image proportionally to twice its original size.

+ +

The format of the MagickMagnifyImage method is:

+ +
+MagickBooleanType MagickMagnifyImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickMergeImageLayers

+ +

MagickMergeImageLayers() composes all the image layers from the current given image onward to produce a single image of the merged layers.

+ +

The inital canvas's size depends on the given LayerMethod, and is initialized using the first images background color. The images are then compositied onto that image in sequence using the given composition that has been assigned to each individual image.

+ +

The format of the MagickMergeImageLayers method is:

+ +
+MagickWand *MagickMergeImageLayers(MagickWand *wand,
+  const LayerMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the method of selecting the size of the initial canvas.
+ +
MergeLayer: Merge all layers onto a canvas just large enough to hold all the actual images. The virtual canvas of the first image is preserved but otherwise ignored.
+ +
FlattenLayer: Use the virtual canvas size of first image. Images which fall outside this canvas is clipped. This can be used to 'fill out' a given virtual canvas.
+ +
MosaicLayer: Start with the virtual canvas of the first image, enlarging left and right edges to contain all images. Images with negative offsets will be clipped.
+ +
+
+

MagickMinifyImage

+ +

MagickMinifyImage() is a convenience method that scales an image proportionally to one-half its original size

+ +

The format of the MagickMinifyImage method is:

+ +
+MagickBooleanType MagickMinifyImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickModulateImage

+ +

MagickModulateImage() lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

+ +

To increase the color brightness by 20 and decrease the color saturation by 10 and leave the hue unchanged, use: 120,90,100.

+ +

The format of the MagickModulateImage method is:

+ +
+MagickBooleanType MagickModulateImage(MagickWand *wand,
+  const double brightness,const double saturation,const double hue)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
brightness
+
the percent change in brighness.
+ +
+
saturation
+
the percent change in saturation.
+ +
+
hue
+
the percent change in hue.
+ +
+
+

MagickMontageImage

+ +

MagickMontageImage() creates a composite image by combining several separate images. The images are tiled on the composite image with the name of the image optionally appearing just below the individual tile.

+ +

The format of the MagickMontageImage method is:

+ +
+MagickWand *MagickMontageImage(MagickWand *wand,
+  const DrawingWand drawing_wand,const char *tile_geometry,
+  const char *thumbnail_geometry,const MontageMode mode,
+  const char *frame)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the drawing wand. The font name, size, and color are obtained from this wand.
+ +
+
tile_geometry
+
the number of tiles per row and page (e.g. 6x4+0+0).
+ +
+
thumbnail_geometry
+
Preferred image size and border size of each thumbnail (e.g. 120x120+4+3>).
+ +
+
mode
+
Thumbnail framing mode: Frame, Unframe, or Concatenate.
+ +
+
frame
+
Surround the image with an ornamental border (e.g. 15x15+3+3). The frame color is that of the thumbnail's matte color.
+ +
+
+

MagickMorphImages

+ +

MagickMorphImages() method morphs a set of images. Both the image pixels and size are linearly interpolated to give the appearance of a meta-morphosis from one image to the next.

+ +

The format of the MagickMorphImages method is:

+ +
+MagickWand *MagickMorphImages(MagickWand *wand,
+  const size_t number_frames)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_frames
+
the number of in-between images to generate.
+ +
+
+

MagickMorphologyImage

+ +

MagickMorphologyImage() applies a user supplied kernel to the image according to the given mophology method.

+ +

The format of the MagickMorphologyImage method is:

+ +
+MagickBooleanType MagickMorphologyImage(MagickWand *wand,
+  MorphologyMethod method,const ssize_t iterations,KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the morphology method to be applied.
+ +
+
iterations
+
apply the operation this many times (or no change). A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.
+ +
+
kernel
+
An array of doubles representing the morphology kernel.
+ +
+
+

MagickMotionBlurImage

+ +

MagickMotionBlurImage() simulates motion blur. 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 MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

+ +

The format of the MagickMotionBlurImage method is:

+ +
+MagickBooleanType MagickMotionBlurImage(MagickWand *wand,
+  const double radius,const double sigma,const double angle)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
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.
+ +
+
+

MagickNegateImage

+ +

MagickNegateImage() negates the colors in the reference image. The Grayscale option means that only grayscale values within the image are negated.

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickNegateImage method is:

+ +
+MagickBooleanType MagickNegateImage(MagickWand *wand,
+  const MagickBooleanType gray)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
gray
+
If MagickTrue, only negate grayscale pixels within the image.
+ +
+
+

MagickNewImage

+ +

MagickNewImage() adds a blank image canvas of the specified size and background color to the wand.

+ +

The format of the MagickNewImage method is:

+ +
+MagickBooleanType MagickNewImage(MagickWand *wand,
+  const size_t columns,const size_t rows,
+  const PixelWand *background)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the image width.
+ +
+
height
+
the image height.
+ +
+
background
+
the image color.
+ +
+
+

MagickNextImage

+ +

MagickNextImage() sets the next image in the wand as the current image.

+ +

It is typically used after MagickResetIterator(), after which its first use will set the first image as the current image (unless the wand is empty).

+ +

It will return MagickFalse when no more images are left to be returned which happens when the wand is empty, or the current image is the last image.

+ +

When the above condition (end of image list) is reached, the iterator is automaticall set so that you can start using MagickPreviousImage() to again iterate over the images in the reverse direction, starting with the last image (again). You can jump to this condition immeditally using MagickSetLastIterator().

+ +

The format of the MagickNextImage method is:

+ +
+MagickBooleanType MagickNextImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickNormalizeImage

+ +

MagickNormalizeImage() enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available

+ +

You can also reduce the influence of a particular channel with a gamma value of 0.

+ +

The format of the MagickNormalizeImage method is:

+ +
+MagickBooleanType MagickNormalizeImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickOilPaintImage

+ +

MagickOilPaintImage() applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

+ +

The format of the MagickOilPaintImage method is:

+ +
+MagickBooleanType MagickOilPaintImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the circular neighborhood.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickOpaquePaintImage

+ +

MagickOpaquePaintImage() changes any pixel that matches color with the color defined by fill.

+ +

The format of the MagickOpaquePaintImage method is:

+ +
+MagickBooleanType MagickOpaquePaintImage(MagickWand *wand,
+  const PixelWand *target,const PixelWand *fill,const double fuzz,
+  const MagickBooleanType invert)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
target
+
Change this target color to the fill color within the image.
+ +
+
fill
+
the fill pixel wand.
+ +
+
fuzz
+
By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
+

MagickOptimizeImageLayers

+ +

MagickOptimizeImageLayers() compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the animation.

+ +

The format of the MagickOptimizeImageLayers method is:

+ +
+MagickWand *MagickOptimizeImageLayers(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickOptimizeImageTransparency

+ +

MagickOptimizeImageTransparency() takes a frame optimized GIF animation, and compares the overlayed pixels against the disposal image resulting from all the previous frames in the animation. Any pixel that does not change the disposal image (and thus does not effect the outcome of an overlay) is made transparent.

+ +

WARNING: This modifies the current images directly, rather than generate a new image sequence. The format of the MagickOptimizeImageTransparency method is:

+ +
+MagickBooleanType MagickOptimizeImageTransparency(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickOrderedPosterizeImage

+ +

MagickOrderedPosterizeImage() performs an ordered dither based on a number of pre-defined dithering threshold maps, but over multiple intensity levels, which can be different for different channels, according to the input arguments.

+ +

The format of the MagickOrderedPosterizeImage method is:

+ +
+MagickBooleanType MagickOrderedPosterizeImage(MagickWand *wand,
+  const char *threshold_map)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
threshold_map
+
A string containing the name of the threshold dither map to use, followed by zero or more numbers representing the number of color levels tho dither between.
+ +
Any level number less than 2 is equivalent to 2, and means only binary dithering will be applied to each color channel.
+ +
No numbers also means a 2 level (bitmap) dither will be applied to all channels, while a single number is the number of levels applied to each channel in sequence. More numbers will be applied in turn to each of the color channels.
+ +
For example: "o3x3,6" generates a 6 level posterization of the image with a ordered 3x3 diffused pixel dither being applied between each level. While checker,8,8,4 will produce a 332 colormaped image with only a single checkerboard hash pattern (50 grey) between each color level, to basically double the number of color levels with a bare minimim of dithering.
+ +
+
+

MagickPingImage

+ +

MagickPingImage() is the same as MagickReadImage() except the only valid information returned is the image width, height, size, and format. It is designed to efficiently obtain this information from a file without reading the entire image sequence into memory.

+ +

The format of the MagickPingImage method is:

+ +
+MagickBooleanType MagickPingImage(MagickWand *wand,const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
+

MagickPingImageBlob

+ +

MagickPingImageBlob() pings an image or image sequence from a blob.

+ +

The format of the MagickPingImageBlob method is:

+ +
+MagickBooleanType MagickPingImageBlob(MagickWand *wand,
+  const void *blob,const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
blob
+
the blob.
+ +
+
length
+
the blob length.
+ +
+
+

MagickPingImageFile

+ +

MagickPingImageFile() pings an image or image sequence from an open file descriptor.

+ +

The format of the MagickPingImageFile method is:

+ +
+MagickBooleanType MagickPingImageFile(MagickWand *wand,FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
file
+
the file descriptor.
+ +
+
+

MagickPolaroidImage

+ +

MagickPolaroidImage() simulates a Polaroid picture.

+ +

The format of the MagickPolaroidImage method is:

+ +
+MagickBooleanType MagickPolaroidImage(MagickWand *wand,
+  const DrawingWand *drawing_wand,const char *caption,const double angle,
+  const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
drawing_wand
+
the draw wand.
+ +
+
caption
+
the Polaroid caption.
+ +
+
angle
+
Apply the effect along this angle.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickPosterizeImage

+ +

MagickPosterizeImage() reduces the image to a limited number of color level.

+ +

The format of the MagickPosterizeImage method is:

+ +
+MagickBooleanType MagickPosterizeImage(MagickWand *wand,
+  const size_t levels,const DitherMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
levels
+
Number of color levels allowed in each channel. Very low values (2, 3, or 4) have the most visible effect.
+ +
+
method
+
choose the dither method: UndefinedDitherMethod, NoDitherMethod, RiemersmaDitherMethod, or FloydSteinbergDitherMethod.
+ +
+
+

MagickPreviewImages

+ +

MagickPreviewImages() tiles 9 thumbnails of the specified image with an image processing operation applied at varying strengths. This helpful to quickly pin-point an appropriate parameter for an image processing operation.

+ +

The format of the MagickPreviewImages method is:

+ +
+MagickWand *MagickPreviewImages(MagickWand *wand,
+  const PreviewType preview)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
preview
+
the preview type.
+ +
+
+

MagickPreviousImage

+ +

MagickPreviousImage() sets the previous image in the wand as the current image.

+ +

It is typically used after MagickSetLastIterator(), after which its first use will set the last image as the current image (unless the wand is empty).

+ +

It will return MagickFalse when no more images are left to be returned which happens when the wand is empty, or the current image is the first image. At that point the iterator is than reset to again process images in the forward direction, again starting with the first image in list. Images added at this point are prepended.

+ +

Also at that point any images added to the wand using MagickAddImages() or MagickReadImages() will be prepended before the first image. In this sense the condition is not quite exactly the same as MagickResetIterator().

+ +

The format of the MagickPreviousImage method is:

+ +
+MagickBooleanType MagickPreviousImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickQuantizeImage

+ +

MagickQuantizeImage() 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 MagickQuantizeImage method is:

+ +
+MagickBooleanType MagickQuantizeImage(MagickWand *wand,
+  const size_t number_colors,const ColorspaceType colorspace,
+  const size_t treedepth,const DitherMethod dither_method,
+  const MagickBooleanType measure_error)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_colors
+
the number of colors.
+ +
+
colorspace
+
Perform color reduction in this colorspace, typically RGBColorspace.
+ +
+
treedepth
+
Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors). A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.
+ +
+
dither_method
+
choose from UndefinedDitherMethod, NoDitherMethod, RiemersmaDitherMethod, FloydSteinbergDitherMethod.
+ +
+
measure_error
+
A value other than zero 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.
+ +
+
+

MagickQuantizeImages

+ +

MagickQuantizeImages() analyzes the colors within a sequence of images 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 MagickQuantizeImages method is:

+ +
+MagickBooleanType MagickQuantizeImages(MagickWand *wand,
+  const size_t number_colors,const ColorspaceType colorspace,
+  const size_t treedepth,const DitherMethod dither_method,
+  const MagickBooleanType measure_error)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_colors
+
the number of colors.
+ +
+
colorspace
+
Perform color reduction in this colorspace, typically RGBColorspace.
+ +
+
treedepth
+
Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors). A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.
+ +
+
dither_method
+
choose from these dither methods: NoDitherMethod, RiemersmaDitherMethod, or FloydSteinbergDitherMethod.
+ +
+
measure_error
+
A value other than zero 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.
+ +
+
+

MagickRotationalBlurImage

+ +

MagickRotationalBlurImage() rotational blurs an image.

+ +

The format of the MagickRotationalBlurImage method is:

+ +
+MagickBooleanType MagickRotationalBlurImage(MagickWand *wand,
+  const double angle)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
angle
+
the angle of the blur in degrees.
+ +
+
+

MagickRaiseImage

+ +

MagickRaiseImage() creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

+ +

The format of the MagickRaiseImage method is:

+ +
+MagickBooleanType MagickRaiseImage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y,const MagickBooleanType raise)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width,height,x,y
+
Define the dimensions of the area to raise.
+ +
+
raise
+
A value other than zero creates a 3-D raise effect, otherwise it has a lowered effect.
+ +
+
+

MagickRandomThresholdImage

+ +

MagickRandomThresholdImage() changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image.

+ +

The format of the MagickRandomThresholdImage method is:

+ +
+MagickBooleanType MagickRandomThresholdImage(MagickWand *wand,
+  const double low,const double high)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
low,high
+
Specify the high and low thresholds. These values range from 0 to QuantumRange.
+ +
+
+

MagickReadImage

+ +

MagickReadImage() reads an image or image sequence. The images are inserted jjust before the current image pointer position.

+ +

Use MagickSetFirstIterator(), to insert new images before all the current images in the wand, MagickSetLastIterator() to append add to the end, MagickSetIteratorIndex() to place images just after the given index.

+ +

The format of the MagickReadImage method is:

+ +
+MagickBooleanType MagickReadImage(MagickWand *wand,const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
+

MagickReadImageBlob

+ +

MagickReadImageBlob() reads an image or image sequence from a blob. In all other respects it is like MagickReadImage().

+ +

The format of the MagickReadImageBlob method is:

+ +
+MagickBooleanType MagickReadImageBlob(MagickWand *wand,
+  const void *blob,const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
blob
+
the blob.
+ +
+
length
+
the blob length.
+ +
+
+

MagickReadImageFile

+ +

MagickReadImageFile() reads an image or image sequence from an already opened file descriptor. Otherwise it is like MagickReadImage().

+ +

The format of the MagickReadImageFile method is:

+ +
+MagickBooleanType MagickReadImageFile(MagickWand *wand,FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
file
+
the file descriptor.
+ +
+
+

MagickRemapImage

+ +

MagickRemapImage() replaces the colors of an image with the closest color from a reference image.

+ +

The format of the MagickRemapImage method is:

+ +
+MagickBooleanType MagickRemapImage(MagickWand *wand,
+  const MagickWand *remap_wand,const DitherMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
affinity
+
the affinity wand.
+ +
+
method
+
choose from these dither methods: NoDitherMethod, RiemersmaDitherMethod, or FloydSteinbergDitherMethod.
+ +
+
+

MagickRemoveImage

+ +

MagickRemoveImage() removes an image from the image list.

+ +

The format of the MagickRemoveImage method is:

+ +
+MagickBooleanType MagickRemoveImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
insert
+
the splice wand.
+ +
+
+

MagickResampleImage

+ +

MagickResampleImage() resample image to desired resolution.

+ +

Bessel Blackman Box Catrom Cubic Gaussian Hanning Hermite Lanczos Mitchell Point Quandratic Sinc Triangle

+ +

Most of the filters are FIR (finite impulse response), however, Bessel, Gaussian, and Sinc are IIR (infinite impulse response). Bessel and Sinc are windowed (brought down to zero) with the Blackman filter.

+ +

The format of the MagickResampleImage method is:

+ +
+MagickBooleanType MagickResampleImage(MagickWand *wand,
+  const double x_resolution,const double y_resolution,
+  const FilterTypes filter)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x_resolution
+
the new image x resolution.
+ +
+
y_resolution
+
the new image y resolution.
+ +
+
filter
+
Image filter to use.
+ +
+
+

MagickResetImagePage

+ +

MagickResetImagePage() resets the Wand page canvas and position.

+ +

The format of the MagickResetImagePage method is:

+ +
+MagickBooleanType MagickResetImagePage(MagickWand *wand,
+  const char *page)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
page
+
the relative page specification.
+ +
+
+

MagickResizeImage

+ +

MagickResizeImage() scales an image to the desired dimensions with one of these filters:

+ +
+    Bessel   Blackman   Box
+    Catrom   CubicGaussian
+    Hanning  Hermite    Lanczos
+    Mitchell PointQuandratic
+    Sinc     Triangle
+
+ +

Most of the filters are FIR (finite impulse response), however, Bessel, Gaussian, and Sinc are IIR (infinite impulse response). Bessel and Sinc are windowed (brought down to zero) with the Blackman filter.

+ +

The format of the MagickResizeImage method is:

+ +
+MagickBooleanType MagickResizeImage(MagickWand *wand,
+  const size_t columns,const size_t rows,const FilterTypes filter)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
filter
+
Image filter to use.
+ +
+
+

MagickRollImage

+ +

MagickRollImage() offsets an image as defined by x and y.

+ +

The format of the MagickRollImage method is:

+ +
+MagickBooleanType MagickRollImage(MagickWand *wand,const ssize_t x,
+  const size_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the x offset.
+ +
+
y
+
the y offset.
+ +
+ +
+
+

MagickRotateImage

+ +

MagickRotateImage() rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

+ +

The format of the MagickRotateImage method is:

+ +
+MagickBooleanType MagickRotateImage(MagickWand *wand,
+  const PixelWand *background,const double degrees)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the background pixel wand.
+ +
+
degrees
+
the number of degrees to rotate the image.
+ +
+ +
+
+

MagickSampleImage

+ +

MagickSampleImage() scales an image to the desired dimensions with pixel sampling. Unlike other scaling methods, this method does not introduce any additional color into the scaled image.

+ +

The format of the MagickSampleImage method is:

+ +
+MagickBooleanType MagickSampleImage(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+ +
+
+

MagickScaleImage

+ +

MagickScaleImage() scales the size of an image to the given dimensions.

+ +

The format of the MagickScaleImage method is:

+ +
+MagickBooleanType MagickScaleImage(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+ +
+
+

MagickSegmentImage

+ +

MagickSegmentImage() segments an image by analyzing the histograms of the color components and identifying units that are homogeneous with the fuzzy C-means technique.

+ +

The format of the SegmentImage method is:

+ +
+MagickBooleanType MagickSegmentImage(MagickWand *wand,
+  const ColorspaceType colorspace,const MagickBooleanType verbose,
+  const double cluster_threshold,const double smooth_threshold)
+
+ +

A description of each parameter follows.

+ +
wand
+

the wand.

+ +
colorspace
+

the image colorspace.

+ +
verbose
+

Set to MagickTrue to print detailed information about the identified classes.

+ +
cluster_threshold
+

This represents the minimum number of pixels contained in a hexahedra before it can be considered valid (expressed as a percentage).

+ +
smooth_threshold
+

the smoothing threshold eliminates noise in the second derivative of the histogram. As the value is increased, you can expect a smoother second derivative.

+ +

MagickSelectiveBlurImage

+ +

MagickSelectiveBlurImage() selectively blur an image within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

+ +

The format of the MagickSelectiveBlurImage method is:

+ +
+MagickBooleanType MagickSelectiveBlurImage(MagickWand *wand,
+  const double radius,const double sigma,const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the gaussian, in pixels.
+ +
+
threshold
+
only pixels within this contrast threshold are included in the blur operation.
+ +
+
+

MagickSeparateImage

+ +

MagickSeparateImage() separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

+ +

The format of the MagickSeparateImage method is:

+ +
+MagickBooleanType MagickSeparateImage(MagickWand *wand,
+  const ChannelType channel)
+
+ +

A description of each parameter follows:

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

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 MagickSepiaToneImage method is:

+ +
+MagickBooleanType MagickSepiaToneImage(MagickWand *wand,
+  const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
Define the extent of the sepia toning.
+ +
+
+

MagickSetImage

+ +

MagickSetImage() replaces the last image returned by MagickSetIteratorIndex(), MagickNextImage(), MagickPreviousImage() with the images from the specified wand.

+ +

The format of the MagickSetImage method is:

+ +
+MagickBooleanType MagickSetImage(MagickWand *wand,
+  const MagickWand *set_wand)
+
+ +

A description of each parameter follows:

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

MagickSetImageAlphaChannel

+ +

MagickSetImageAlphaChannel() activates, deactivates, resets, or sets the alpha channel.

+ +

The format of the MagickSetImageAlphaChannel method is:

+ +
+MagickBooleanType MagickSetImageAlphaChannel(MagickWand *wand,
+  const AlphaChannelOption alpha_type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
alpha_type
+
the alpha channel type: ActivateAlphaChannel, DeactivateAlphaChannel, OpaqueAlphaChannel, or SetAlphaChannel.
+ +
+
+

MagickSetImageBackgroundColor

+ +

MagickSetImageBackgroundColor() sets the image background color.

+ +

The format of the MagickSetImageBackgroundColor method is:

+ +
+MagickBooleanType MagickSetImageBackgroundColor(MagickWand *wand,
+  const PixelWand *background)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the background pixel wand.
+ +
+
+

MagickSetImageBluePrimary

+ +

MagickSetImageBluePrimary() sets the image chromaticity blue primary point.

+ +

The format of the MagickSetImageBluePrimary method is:

+ +
+MagickBooleanType MagickSetImageBluePrimary(MagickWand *wand,
+  const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the blue primary x-point.
+ +
+
y
+
the blue primary y-point.
+ +
+
+

MagickSetImageBorderColor

+ +

MagickSetImageBorderColor() sets the image border color.

+ +

The format of the MagickSetImageBorderColor method is:

+ +
+MagickBooleanType MagickSetImageBorderColor(MagickWand *wand,
+  const PixelWand *border)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
border
+
the border pixel wand.
+ +
+
+

MagickSetImageChannelMask

+ +

MagickSetImageChannelMask() sets image channel mask.

+ +

The format of the MagickSetImageChannelMask method is:

+ +
+ChannelType MagickSetImageChannelMask(MagickWand *wand,
+  const ChannelType channel_mask)
+
+ +

A description of each parameter follows:

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

MagickSetImageMask

+ +

MagickSetImageMask() sets image clip mask.

+ +

The format of the MagickSetImageMask method is:

+ +
+MagickBooleanType MagickSetImageMask(MagickWand *wand,
+  const PixelMask type,const MagickWand *clip_mask)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
type
+
type of mask, ReadPixelMask or WritePixelMask.
+ +
+
clip_mask
+
the clip_mask wand.
+ +
+
+

MagickSetImageColor

+ +

MagickSetImageColor() set the entire wand canvas to the specified color.

+ +

The format of the MagickSetImageColor method is:

+ +
+MagickBooleanType MagickSetImageColor(MagickWand *wand,
+  const PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the image color.
+ +
+
+

MagickSetImageColormapColor

+ +

MagickSetImageColormapColor() sets the color of the specified colormap index.

+ +

The format of the MagickSetImageColormapColor method is:

+ +
+MagickBooleanType MagickSetImageColormapColor(MagickWand *wand,
+  const size_t index,const PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
index
+
the offset into the image colormap.
+ +
+
color
+
Return the colormap color in this wand.
+ +
+
+

MagickSetImageColorspace

+ +

MagickSetImageColorspace() sets the image colorspace. But does not modify the image data.

+ +

The format of the MagickSetImageColorspace method is:

+ +
+MagickBooleanType MagickSetImageColorspace(MagickWand *wand,
+  const ColorspaceType colorspace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
colorspace
+
the image colorspace: UndefinedColorspace, RGBColorspace, GRAYColorspace, TransparentColorspace, OHTAColorspace, XYZColorspace, YCbCrColorspace, YCCColorspace, YIQColorspace, YPbPrColorspace, YPbPrColorspace, YUVColorspace, CMYKColorspace, sRGBColorspace, HSLColorspace, or HWBColorspace.
+ +
+
+

MagickSetImageCompose

+ +

MagickSetImageCompose() sets the image composite operator, useful for specifying how to composite the image thumbnail when using the MagickMontageImage() method.

+ +

The format of the MagickSetImageCompose method is:

+ +
+MagickBooleanType MagickSetImageCompose(MagickWand *wand,
+  const CompositeOperator compose)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
compose
+
the image composite operator.
+ +
+
+

MagickSetImageCompression

+ +

MagickSetImageCompression() sets the image compression.

+ +

The format of the MagickSetImageCompression method is:

+ +
+MagickBooleanType MagickSetImageCompression(MagickWand *wand,
+  const CompressionType compression)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
compression
+
the image compression type.
+ +
+
+

MagickSetImageCompressionQuality

+ +

MagickSetImageCompressionQuality() sets the image compression quality.

+ +

The format of the MagickSetImageCompressionQuality method is:

+ +
+MagickBooleanType MagickSetImageCompressionQuality(MagickWand *wand,
+  const size_t quality)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
quality
+
the image compression tlityype.
+ +
+
+

MagickSetImageDelay

+ +

MagickSetImageDelay() sets the image delay.

+ +

The format of the MagickSetImageDelay method is:

+ +
+MagickBooleanType MagickSetImageDelay(MagickWand *wand,
+  const size_t delay)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
delay
+
the image delay in ticks-per-second units.
+ +
+
+

MagickSetImageDepth

+ +

MagickSetImageDepth() sets the image depth.

+ +

The format of the MagickSetImageDepth method is:

+ +
+MagickBooleanType MagickSetImageDepth(MagickWand *wand,
+  const size_t depth)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
depth
+
the image depth in bits: 8, 16, or 32.
+ +
+
+

MagickSetImageDispose

+ +

MagickSetImageDispose() sets the image disposal method.

+ +

The format of the MagickSetImageDispose method is:

+ +
+MagickBooleanType MagickSetImageDispose(MagickWand *wand,
+  const DisposeType dispose)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
dispose
+
the image disposeal type.
+ +
+
+

MagickSetImageEndian

+ +

MagickSetImageEndian() sets the image endian method.

+ +

The format of the MagickSetImageEndian method is:

+ +
+MagickBooleanType MagickSetImageEndian(MagickWand *wand,
+  const EndianType endian)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
endian
+
the image endian type.
+ +
+
+

MagickSetImageExtent

+ +

MagickSetImageExtent() sets the image size (i.e. columns & rows).

+ +

The format of the MagickSetImageExtent method is:

+ +
+MagickBooleanType MagickSetImageExtent(MagickWand *wand,
+  const size_t columns,const unsigned rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
The image width in pixels.
+ +
+
rows
+
The image height in pixels.
+ +
+
+

MagickSetImageFilename

+ +

MagickSetImageFilename() sets the filename of a particular image in a sequence.

+ +

The format of the MagickSetImageFilename method is:

+ +
+MagickBooleanType MagickSetImageFilename(MagickWand *wand,
+  const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
+

MagickSetImageFormat

+ +

MagickSetImageFormat() sets the format of a particular image in a sequence.

+ +

The format of the MagickSetImageFormat method is:

+ +
+MagickBooleanType MagickSetImageFormat(MagickWand *wand,
+  const char *format)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
format
+
the image format.
+ +
+
+

MagickSetImageFuzz

+ +

MagickSetImageFuzz() sets the image fuzz.

+ +

The format of the MagickSetImageFuzz method is:

+ +
+MagickBooleanType MagickSetImageFuzz(MagickWand *wand,
+  const double fuzz)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
fuzz
+
the image fuzz.
+ +
+
+

MagickSetImageGamma

+ +

MagickSetImageGamma() sets the image gamma.

+ +

The format of the MagickSetImageGamma method is:

+ +
+MagickBooleanType MagickSetImageGamma(MagickWand *wand,
+  const double gamma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
gamma
+
the image gamma.
+ +
+
+

MagickSetImageGravity

+ +

MagickSetImageGravity() sets the image gravity type.

+ +

The format of the MagickSetImageGravity method is:

+ +
+MagickBooleanType MagickSetImageGravity(MagickWand *wand,
+  const GravityType gravity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
gravity
+
positioning gravity (NorthWestGravity, NorthGravity, NorthEastGravity, WestGravity, CenterGravity, EastGravity, SouthWestGravity, SouthGravity, SouthEastGravity)
+ +
+
+

MagickSetImageGreenPrimary

+ +

MagickSetImageGreenPrimary() sets the image chromaticity green primary point.

+ +

The format of the MagickSetImageGreenPrimary method is:

+ +
+MagickBooleanType MagickSetImageGreenPrimary(MagickWand *wand,
+  const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the green primary x-point.
+ +
+
y
+
the green primary y-point.
+ +
+ +
+
+

MagickSetImageInterlaceScheme

+ +

MagickSetImageInterlaceScheme() sets the image interlace scheme.

+ +

The format of the MagickSetImageInterlaceScheme method is:

+ +
+MagickBooleanType MagickSetImageInterlaceScheme(MagickWand *wand,
+  const InterlaceType interlace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
interlace
+
the image interlace scheme: NoInterlace, LineInterlace, PlaneInterlace, PartitionInterlace.
+ +
+
+

MagickSetImagePixelInterpolateMethod

+ +

MagickSetImagePixelInterpolateMethod() sets the image interpolate pixel method.

+ +

The format of the MagickSetImagePixelInterpolateMethod method is:

+ +
+MagickBooleanType MagickSetImagePixelInterpolateMethod(MagickWand *wand,
+  const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the image interpole pixel methods: choose from Undefined, Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor.
+ +
+
+

MagickSetImageIterations

+ +

MagickSetImageIterations() sets the image iterations.

+ +

The format of the MagickSetImageIterations method is:

+ +
+MagickBooleanType MagickSetImageIterations(MagickWand *wand,
+  const size_t iterations)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
delay
+
the image delay in 1/100th of a second.
+ +
+
+

MagickSetImageMatte

+ +

MagickSetImageMatte() sets the image matte channel.

+ +

The format of the MagickSetImageMatteColor method is:

+ +
+MagickBooleanType MagickSetImageMatteColor(MagickWand *wand,
+  const MagickBooleanType *matte)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
matte
+
Set to MagickTrue to enable the image matte channel otherwise MagickFalse.
+ +
+
+

MagickSetImageMatteColor

+ +

MagickSetImageMatteColor() sets the image matte color.

+ +

The format of the MagickSetImageMatteColor method is:

+ +
+MagickBooleanType MagickSetImageMatteColor(MagickWand *wand,
+  const PixelWand *matte)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
matte
+
the matte pixel wand.
+ +
+
+

MagickSetImageAlpha

+ +

MagickSetImageAlpha() sets the image to the specified alpha level.

+ +

The format of the MagickSetImageAlpha method is:

+ +
+MagickBooleanType MagickSetImageAlpha(MagickWand *wand,
+  const double alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
alpha
+
the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
+ +
+
+

MagickSetImageOrientation

+ +

MagickSetImageOrientation() sets the image orientation.

+ +

The format of the MagickSetImageOrientation method is:

+ +
+MagickBooleanType MagickSetImageOrientation(MagickWand *wand,
+  const OrientationType orientation)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
orientation
+
the image orientation type.
+ +
+
+

MagickSetImagePage

+ +

MagickSetImagePage() sets the page geometry of the image.

+ +

The format of the MagickSetImagePage method is:

+ +
+MagickBooleanType MagickSetImagePage(MagickWand *wand,const size_t width,        const size_t height,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the page width.
+ +
+
height
+
the page height.
+ +
+
x
+
the page x-offset.
+ +
+
y
+
the page y-offset.
+ +
+
+

MagickSetImageProgressMonitor

+ +

MagickSetImageProgressMonitor() sets the wand image progress monitor to the specified method and returns the previous progress monitor if any. The progress monitor method looks like this:

+ +
+    MagickBooleanType MagickProgressMonitor(const char *text,
+const MagickOffsetType offset,const MagickSizeType span,
+void *client_data)
+
+ +

If the progress monitor returns MagickFalse, the current operation is interrupted.

+ +

The format of the MagickSetImageProgressMonitor method is:

+ +
+MagickProgressMonitor MagickSetImageProgressMonitor(MagickWand *wand
+  const MagickProgressMonitor progress_monitor,void *client_data)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
progress_monitor
+
Specifies a pointer to a method to monitor progress of an image operation.
+ +
+
client_data
+
Specifies a pointer to any client data.
+ +
+
+

MagickSetImageRedPrimary

+ +

MagickSetImageRedPrimary() sets the image chromaticity red primary point.

+ +

The format of the MagickSetImageRedPrimary method is:

+ +
+MagickBooleanType MagickSetImageRedPrimary(MagickWand *wand,
+  const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the red primary x-point.
+ +
+
y
+
the red primary y-point.
+ +
+
+

MagickSetImageRenderingIntent

+ +

MagickSetImageRenderingIntent() sets the image rendering intent.

+ +

The format of the MagickSetImageRenderingIntent method is:

+ +
+MagickBooleanType MagickSetImageRenderingIntent(MagickWand *wand,
+  const RenderingIntent rendering_intent)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
rendering_intent
+
the image rendering intent: UndefinedIntent, SaturationIntent, PerceptualIntent, AbsoluteIntent, or RelativeIntent.
+ +
+
+

MagickSetImageResolution

+ +

MagickSetImageResolution() sets the image resolution.

+ +

The format of the MagickSetImageResolution method is:

+ +
+MagickBooleanType MagickSetImageResolution(MagickWand *wand,
+  const double x_resolution,const double y_resolution)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x_resolution
+
the image x resolution.
+ +
+
y_resolution
+
the image y resolution.
+ +
+
+

MagickSetImageScene

+ +

MagickSetImageScene() sets the image scene.

+ +

The format of the MagickSetImageScene method is:

+ +
+MagickBooleanType MagickSetImageScene(MagickWand *wand,
+  const size_t scene)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
delay
+
the image scene number.
+ +
+
+

MagickSetImageTicksPerSecond

+ +

MagickSetImageTicksPerSecond() sets the image ticks-per-second.

+ +

The format of the MagickSetImageTicksPerSecond method is:

+ +
+MagickBooleanType MagickSetImageTicksPerSecond(MagickWand *wand,
+  const ssize_t ticks_per-second)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
ticks_per_second
+
the units to use for the image delay.
+ +
+
+

MagickSetImageType

+ +

MagickSetImageType() sets the image type.

+ +

The format of the MagickSetImageType method is:

+ +
+MagickBooleanType MagickSetImageType(MagickWand *wand,
+  const ImageType image_type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
image_type
+
the image type: UndefinedType, BilevelType, GrayscaleType, GrayscaleAlphaType, PaletteType, PaletteAlphaType, TrueColorType, TrueColorAlphaType, ColorSeparationType, ColorSeparationAlphaType, or OptimizeType.
+ +
+
+

MagickSetImageUnits

+ +

MagickSetImageUnits() sets the image units of resolution.

+ +

The format of the MagickSetImageUnits method is:

+ +
+MagickBooleanType MagickSetImageUnits(MagickWand *wand,
+  const ResolutionType units)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
units
+
the image units of resolution : UndefinedResolution, PixelsPerInchResolution, or PixelsPerCentimeterResolution.
+ +
+
+

MagickSetImageVirtualPixelMethod

+ +

MagickSetImageVirtualPixelMethod() sets the image virtual pixel method.

+ +

The format of the MagickSetImageVirtualPixelMethod method is:

+ +
+VirtualPixelMethod MagickSetImageVirtualPixelMethod(MagickWand *wand,
+  const VirtualPixelMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the image virtual pixel method : UndefinedVirtualPixelMethod, ConstantVirtualPixelMethod, EdgeVirtualPixelMethod, MirrorVirtualPixelMethod, or TileVirtualPixelMethod.
+ +
+
+

MagickSetImageWhitePoint

+ +

MagickSetImageWhitePoint() sets the image chromaticity white point.

+ +

The format of the MagickSetImageWhitePoint method is:

+ +
+MagickBooleanType MagickSetImageWhitePoint(MagickWand *wand,
+  const double x,const double y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the white x-point.
+ +
+
y
+
the white y-point.
+ +
+
+

MagickShadeImage

+ +

MagickShadeImage() shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis.

+ +

The format of the MagickShadeImage method is:

+ +
+MagickBooleanType MagickShadeImage(MagickWand *wand,
+  const MagickBooleanType gray,const double azimuth,
+  const double elevation)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
gray
+
A value other than zero shades the intensity of each pixel.
+ +
+
azimuth, elevation
+
Define the light source direction.
+ +
+
+

MagickShadowImage

+ +

MagickShadowImage() simulates an image shadow.

+ +

The format of the MagickShadowImage method is:

+ +
+MagickBooleanType MagickShadowImage(MagickWand *wand,const double alpha,
+  const double sigma,const ssize_t x,const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
alpha
+
percentage transparency.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
x
+
the shadow x-offset.
+ +
+
y
+
the shadow y-offset.
+ +
+
+

MagickSharpenImage

+ +

MagickSharpenImage() sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and MagickSharpenImage() selects a suitable radius for you.

+ +

The format of the MagickSharpenImage method is:

+ +
+MagickBooleanType MagickSharpenImage(MagickWand *wand,
+  const double radius,const double sigma)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
+

MagickShaveImage

+ +

MagickShaveImage() shaves pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the MagickShaveImage method is:

+ +
+MagickBooleanType MagickShaveImage(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+ +
+
+

MagickShearImage

+ +

MagickShearImage() slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

+ +

The format of the MagickShearImage method is:

+ +
+MagickBooleanType MagickShearImage(MagickWand *wand,
+  const PixelWand *background,const double x_shear,const double y_shear)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the background pixel wand.
+ +
+
x_shear
+
the number of degrees to shear the image.
+ +
+
y_shear
+
the number of degrees to shear the image.
+ +
+
+

MagickSigmoidalContrastImage

+ +

MagickSigmoidalContrastImage() adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to MagickTrue to increase the image contrast otherwise the contrast is reduced.

+ +

The format of the MagickSigmoidalContrastImage method is:

+ +
+MagickBooleanType MagickSigmoidalContrastImage(MagickWand *wand,
+  const MagickBooleanType sharpen,const double alpha,const double beta)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
sharpen
+
Increase or decrease image contrast.
+ +
+
alpha
+
strength of the contrast, the larger the number the more 'threshold-like' it becomes.
+ +
+
beta
+
midpoint of the function as a color value 0 to QuantumRange.
+ +
+
+

MagickSimilarityImage

+ +

MagickSimilarityImage() compares the reference image of the image and 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.

+ +

The format of the MagickSimilarityImage method is:

+ +
+MagickWand *MagickSimilarityImage(MagickWand *wand,
+  const MagickWand *reference,const MetricType metric,
+  const double similarity_threshold,RectangeInfo *offset,
+  double *similarity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
reference
+
the reference wand.
+ +
+
metric
+
the metric.
+ +
+
similarity_threshold
+
minimum distortion for (sub)image match.
+ +
+
offset
+
the best match offset of the reference image within the image.
+ +
+
similarity
+
the computed similarity between the images.
+ +
+
+

MagickSketchImage

+ +

MagickSketchImage() 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 blurring motion.

+ +

The format of the MagickSketchImage method is:

+ +
+MagickBooleanType MagickSketchImage(MagickWand *wand,
+  const double radius,const double sigma,const double angle)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
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.
+ +
+
+

MagickSmushImages

+ +

MagickSmushImages() takes all images from the current image pointer to the end of the image list and smushs them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

+ +

The format of the MagickSmushImages method is:

+ +
+MagickWand *MagickSmushImages(MagickWand *wand,
+  const MagickBooleanType stack,const ssize_t offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
stack
+
By default, images are stacked left-to-right. Set stack to MagickTrue to stack them top-to-bottom.
+ +
+
offset
+
minimum distance in pixels between images.
+ +
+
+

MagickSolarizeImage

+ +

MagickSolarizeImage() 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 MagickSolarizeImage method is:

+ +
+MagickBooleanType MagickSolarizeImage(MagickWand *wand,
+  const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
Define the extent of the solarization.
+ +
+
+

MagickSparseColorImage

+ +

MagickSparseColorImage(), given a set of coordinates, interpolates the colors found at those coordinates, across the whole image, using various methods.

+ +

The format of the MagickSparseColorImage method is:

+ +
+MagickBooleanType MagickSparseColorImage(MagickWand *wand,
+  const SparseColorMethod method,const size_t number_arguments,
+  const double *arguments)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be sparseed.
+ +
+
method
+
the method of image sparseion.
+ +
ArcSparseColorion will always ignore source image offset, and always 'bestfit' the destination image with the top left corner offset relative to the polar mapping center.
+ +
Bilinear has no simple inverse mapping so will not allow 'bestfit' style of image sparseion.
+ +
Affine, Perspective, and Bilinear, will do least squares fitting of the distrotion when more than the minimum number of control point pairs are provided.
+ +
Perspective, and Bilinear, will fall back to a Affine sparseion when less than 4 control point pairs are provided. While Affine sparseions will let you use any number of control point pairs, that is Zero pairs is a No-Op (viewport only) distrotion, one pair is a translation and two pairs of control points will do a scale-rotate-translate, without any shearing.
+ +
+
number_arguments
+
the number of arguments given for this sparseion method.
+ +
+
arguments
+
the arguments for this sparseion method.
+ +
+
+

MagickSpliceImage

+ +

MagickSpliceImage() splices a solid color into the image.

+ +

The format of the MagickSpliceImage method is:

+ +
+MagickBooleanType MagickSpliceImage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the region width.
+ +
+
height
+
the region height.
+ +
+
x
+
the region x offset.
+ +
+
y
+
the region y offset.
+ +
+
+

MagickSpreadImage

+ +

MagickSpreadImage() is a special effects method that randomly displaces each pixel in a block defined by the radius parameter.

+ +

The format of the MagickSpreadImage method is:

+ +
+MagickBooleanType MagickSpreadImage(MagickWand *wand,
+  const PixelInterpolateMethod method,const double radius)
+  
+  A description of each parameter follows:
+
+ +
wand
+

the magick wand.

+ +
method
+

intepolation method.

+ +
radius
+

Choose a random pixel in a neighborhood of this extent.

+ +

MagickStatisticImage

+ +

MagickStatisticImage() replace each pixel with corresponding statistic from the neighborhood of the specified width and height.

+ +

The format of the MagickStatisticImage method is:

+ +
+MagickBooleanType MagickStatisticImage(MagickWand *wand,
+  const StatisticType type,const double width,const size_t height)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
type
+
the statistic type (e.g. median, mode, etc.).
+ +
+
width
+
the width of the pixel neighborhood.
+ +
+
height
+
the height of the pixel neighborhood.
+ +
+
+

MagickSteganoImage

+ +

MagickSteganoImage() 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 MagickSteganoImage method is:

+ +
+MagickWand *MagickSteganoImage(MagickWand *wand,
+  const MagickWand *watermark_wand,const ssize_t offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
watermark_wand
+
the watermark wand.
+ +
+
offset
+
Start hiding at this offset into the image.
+ +
+
+

MagickStereoImage

+ +

MagickStereoImage() composites two images and produces a single image that is the composite of a left and right image of a stereo pair

+ +

The format of the MagickStereoImage method is:

+ +
+MagickWand *MagickStereoImage(MagickWand *wand,
+  const MagickWand *offset_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
offset_wand
+
Another image wand.
+ +
+
+

MagickStripImage

+ +

MagickStripImage() strips an image of all profiles and comments.

+ +

The format of the MagickStripImage method is:

+ +
+MagickBooleanType MagickStripImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickSwirlImage

+ +

MagickSwirlImage() 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 MagickSwirlImage method is:

+ +
+MagickBooleanType MagickSwirlImage(MagickWand *wand,const double degrees,
+  const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
degrees
+
Define the tightness of the swirling effect.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickTextureImage

+ +

MagickTextureImage() repeatedly tiles the texture image across and down the image canvas.

+ +

The format of the MagickTextureImage method is:

+ +
+MagickWand *MagickTextureImage(MagickWand *wand,
+  const MagickWand *texture_wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
texture_wand
+
the texture wand
+ +
+
+

MagickThresholdImage

+ +

MagickThresholdImage() changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image.

+ +

The format of the MagickThresholdImage method is:

+ +
+MagickBooleanType MagickThresholdImage(MagickWand *wand,
+  const double threshold)
+MagickBooleanType MagickThresholdImageChannel(MagickWand *wand,
+  const ChannelType channel,const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
channel
+
the image channel(s).
+ +
+
threshold
+
Define the threshold value.
+ +
+
+

MagickThumbnailImage

+ +

MagickThumbnailImage() changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small low cost thumbnail images suited for display on the Web.

+ +

The format of the MagickThumbnailImage method is:

+ +
+MagickBooleanType MagickThumbnailImage(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
+

MagickTintImage

+ +

MagickTintImage() applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighting function is f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

+ +

The format of the MagickTintImage method is:

+ +
+MagickBooleanType MagickTintImage(MagickWand *wand,
+  const PixelWand *tint,const PixelWand *blend)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
tint
+
the tint pixel wand.
+ +
+
alpha
+
the alpha pixel wand.
+ +
+
+

MagickTransformImage

+ +

MagickTransformImage() is a convenience method that behaves like MagickResizeImage() or MagickCropImage() but accepts scaling and/or cropping information as a region geometry specification. If the operation fails, a NULL image handle is returned.

+ +

The format of the MagickTransformImage method is:

+ +
+MagickWand *MagickTransformImage(MagickWand *wand,const char *crop,
+  const char *geometry)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
crop
+
A crop geometry string. This geometry defines a subregion of the image to crop.
+ +
+
geometry
+
An image geometry string. This geometry defines the final size of the image.
+ +
+
+

MagickTransformImageColorspace

+ +

MagickTransformImageColorspace() transform the image colorspace, setting the images colorspace while transforming the images data to that colorspace.

+ +

The format of the MagickTransformImageColorspace method is:

+ +
+MagickBooleanType MagickTransformImageColorspace(MagickWand *wand,
+  const ColorspaceType colorspace)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
colorspace
+
the image colorspace: UndefinedColorspace, sRGBColorspace, RGBColorspace, GRAYColorspace, OHTAColorspace, XYZColorspace, YCbCrColorspace, YCCColorspace, YIQColorspace, YPbPrColorspace, YPbPrColorspace, YUVColorspace, CMYKColorspace, HSLColorspace, HWBColorspace.
+ +
+
+

MagickTransparentPaintImage

+ +

MagickTransparentPaintImage() changes any pixel that matches color with the color defined by fill.

+ +

The format of the MagickTransparentPaintImage method is:

+ +
+MagickBooleanType MagickTransparentPaintImage(MagickWand *wand,
+  const PixelWand *target,const double alpha,const double fuzz,
+  const MagickBooleanType invert)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
target
+
Change this target color to specified alpha value within the image.
+ +
+
alpha
+
the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
+ +
+
fuzz
+
By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
+

MagickTransposeImage

+ +

MagickTransposeImage() creates a vertical mirror image by reflecting the pixels around the central x-axis while rotating them 90-degrees.

+ +

The format of the MagickTransposeImage method is:

+ +
+MagickBooleanType MagickTransposeImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickTransverseImage

+ +

MagickTransverseImage() creates a horizontal mirror image by reflecting the pixels around the central y-axis while rotating them 270-degrees.

+ +

The format of the MagickTransverseImage method is:

+ +
+MagickBooleanType MagickTransverseImage(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickTrimImage

+ +

MagickTrimImage() remove edges that are the background color from the image.

+ +

The format of the MagickTrimImage method is:

+ +
+MagickBooleanType MagickTrimImage(MagickWand *wand,const double fuzz)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
fuzz
+
By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.
+ +
+
+

MagickUniqueImageColors

+ +

MagickUniqueImageColors() discards all but one of any pixel color.

+ +

The format of the MagickUniqueImageColors method is:

+ +
+MagickBooleanType MagickUniqueImageColors(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickUnsharpMaskImage

+ +

MagickUnsharpMaskImage() sharpens an image. 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 UnsharpMaskImage() selects a suitable radius for you.

+ +

The format of the MagickUnsharpMaskImage method is:

+ +
+MagickBooleanType MagickUnsharpMaskImage(MagickWand *wand,
+  const double radius,const double sigma,const double gain,
+  const double threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius of the Gaussian, in pixels, not counting the center pixel.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
gain
+
the percentage of the difference between the original and the blur image that is added back into the original.
+ +
+
threshold
+
the threshold in pixels needed to apply the diffence gain.
+ +
+
+

MagickVignetteImage

+ +

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

+ +

The format of the MagickVignetteImage method is:

+ +
+MagickBooleanType MagickVignetteImage(MagickWand *wand,
+  const double radius,const double sigma,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
radius
+
the radius.
+ +
+
sigma
+
the sigma.
+ +
+
x, y
+
Define the x and y ellipse offset.
+ +
+
+

MagickWaveImage

+ +

MagickWaveImage() 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 MagickWaveImage method is:

+ +
+MagickBooleanType MagickWaveImage(MagickWand *wand,
+  const double amplitude,const double wave_length,
+  const PixelInterpolateMethod method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
amplitude, wave_length
+
Define the amplitude and wave length of the sine wave.
+ +
+
method
+
the pixel interpolation method.
+ +
+
+

MagickWhiteThresholdImage

+ +

MagickWhiteThresholdImage() is like ThresholdImage() but force all pixels above the threshold into white while leaving all pixels below the threshold unchanged.

+ +

The format of the MagickWhiteThresholdImage method is:

+ +
+MagickBooleanType MagickWhiteThresholdImage(MagickWand *wand,
+  const PixelWand *threshold)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
threshold
+
the pixel wand.
+ +
+
+

MagickWriteImage

+ +

MagickWriteImage() writes an image to the specified filename. If the filename parameter is NULL, the image is written to the filename set by MagickReadImage() or MagickSetImageFilename().

+ +

The format of the MagickWriteImage method is:

+ +
+MagickBooleanType MagickWriteImage(MagickWand *wand,
+  const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+ +
+
+

MagickWriteImageFile

+ +

MagickWriteImageFile() writes an image to an open file descriptor.

+ +

The format of the MagickWriteImageFile method is:

+ +
+MagickBooleanType MagickWriteImageFile(MagickWand *wand,FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
file
+
the file descriptor.
+ +
+
+

MagickWriteImages

+ +

MagickWriteImages() writes an image or image sequence.

+ +

The format of the MagickWriteImages method is:

+ +
+MagickBooleanType MagickWriteImages(MagickWand *wand,
+  const char *filename,const MagickBooleanType adjoin)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
adjoin
+
join images into a single multi-image file.
+ +
+
+

MagickWriteImagesFile

+ +

MagickWriteImagesFile() writes an image sequence to an open file descriptor.

+ +

The format of the MagickWriteImagesFile method is:

+ +
+MagickBooleanType MagickWriteImagesFile(MagickWand *wand,FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
file
+
the file descriptor.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/magick-property.html b/share/doc/ImageMagick-7/www/api/magick-property.html new file mode 100644 index 0000000..d9f724a --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick-property.html @@ -0,0 +1,1948 @@ + + + + + + + + + + MagickWand, C API: Property Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

MagickDeleteImageArtifactMagickDeleteImagePropertyMagickDeleteOptionMagickGetAntialiasMagickGetBackgroundColorMagickGetColorspaceMagickGetCompressionMagickGetCompressionQualityMagickGetCopyrightMagickGetFilenameMagickGetFontMagickGetFormatMagickGetGravityMagickGetHomeURLMagickGetImageArtifactMagickGetImageArtifactsMagickGetImageProfileMagickGetImageProfilesMagickGetImagePropertyMagickGetImagePropertiesMagickGetInterlaceSchemeMagickGetInterpolateMethodMagickGetOptionMagickGetOptionsMagickGetOrientationMagickGetPackageNameMagickGetPageMagickGetPointsizeMagickGetQuantumDepthMagickGetQuantumRangeMagickGetReleaseDateMagickGetResolutionMagickGetResourceMagickGetResourceLimitMagickGetSamplingFactorsMagickGetSizeMagickGetSizeOffsetMagickGetTypeMagickGetVersionMagickProfileImageMagickRemoveImageProfileMagickSetAntialiasMagickSetBackgroundColorMagickSetColorspaceMagickSetCompressionMagickSetCompressionQualityMagickSetDepthMagickSetExtractMagickSetFilenameMagickSetFontMagickSetFormatMagickSetGravityMagickSetImageArtifactMagickSetImageProfileMagickSetImagePropertyMagickSetInterlaceSchemeMagickSetInterpolateMethodMagickSetOptionMagickSetOrientationMagickSetPageMagickSetPassphraseMagickSetPointsizeMagickSetProgressMonitorMagickSetResourceLimitMagickSetResolutionMagickSetSamplingFactorsMagickSetSecurityPolicyMagickSetSizeMagickSetSizeOffsetMagickSetType

+ +

MagickDeleteImageArtifact

+ +

MagickDeleteImageArtifact() deletes a wand artifact.

+ +

The format of the MagickDeleteImageArtifact method is:

+ +
+MagickBooleanType MagickDeleteImageArtifact(MagickWand *wand,
+  const char *artifact)
+
+ +

A description of each parameter follows:

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

MagickDeleteImageProperty

+ +

MagickDeleteImageProperty() deletes a wand property.

+ +

The format of the MagickDeleteImageProperty method is:

+ +
+MagickBooleanType MagickDeleteImageProperty(MagickWand *wand,
+  const char *property)
+
+ +

A description of each parameter follows:

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

MagickDeleteOption

+ +

MagickDeleteOption() deletes a wand option.

+ +

The format of the MagickDeleteOption method is:

+ +
+MagickBooleanType MagickDeleteOption(MagickWand *wand,
+  const char *option)
+
+ +

A description of each parameter follows:

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

MagickGetAntialias

+ +

MagickGetAntialias() returns the antialias property associated with the wand.

+ +

The format of the MagickGetAntialias method is:

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

A description of each parameter follows:

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

MagickGetBackgroundColor

+ +

MagickGetBackgroundColor() returns the wand background color.

+ +

The format of the MagickGetBackgroundColor method is:

+ +
+PixelWand *MagickGetBackgroundColor(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetColorspace

+ +

MagickGetColorspace() gets the wand colorspace type.

+ +

The format of the MagickGetColorspace method is:

+ +
+ColorspaceType MagickGetColorspace(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetCompression

+ +

MagickGetCompression() gets the wand compression type.

+ +

The format of the MagickGetCompression method is:

+ +
+CompressionType MagickGetCompression(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetCompressionQuality

+ +

MagickGetCompressionQuality() gets the wand compression quality.

+ +

The format of the MagickGetCompressionQuality method is:

+ +
+size_t MagickGetCompressionQuality(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetCopyright

+ +

MagickGetCopyright() returns the ImageMagick API copyright as a string constant.

+ +

The format of the MagickGetCopyright method is:

+ +
+const char *MagickGetCopyright(void)
+
+ +

MagickGetFilename

+ +

MagickGetFilename() returns the filename associated with an image sequence.

+ +

The format of the MagickGetFilename method is:

+ +
+const char *MagickGetFilename(const MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetFont

+ +

MagickGetFont() returns the font associated with the MagickWand.

+ +

The format of the MagickGetFont method is:

+ +
+char *MagickGetFont(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetFormat

+ +

MagickGetFormat() returns the format of the magick wand.

+ +

The format of the MagickGetFormat method is:

+ +
+const char MagickGetFormat(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetGravity

+ +

MagickGetGravity() gets the wand gravity.

+ +

The format of the MagickGetGravity method is:

+ +
+GravityType MagickGetGravity(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetHomeURL

+ +

MagickGetHomeURL() returns the ImageMagick home URL.

+ +

The format of the MagickGetHomeURL method is:

+ +
+char *MagickGetHomeURL(void)
+
+ +

MagickGetImageArtifact

+ +

MagickGetImageArtifact() returns a value associated with the specified artifact. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageArtifact method is:

+ +
+char *MagickGetImageArtifact(MagickWand *wand,const char *artifact)
+
+ +

A description of each parameter follows:

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

MagickGetImageArtifacts

+ +

MagickGetImageArtifacts() returns all the artifact names that match the specified pattern associated with a wand. Use MagickGetImageProperty() to return the value of a particular artifact. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageArtifacts method is:

+ +
+char *MagickGetImageArtifacts(MagickWand *wand,
+  const char *pattern,size_t *number_artifacts)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_artifacts
+
the number artifacts associated with this wand.
+ +
+
+

MagickGetImageProfile

+ +

MagickGetImageProfile() returns the named image profile.

+ +

The format of the MagickGetImageProfile method is:

+ +
+unsigned char *MagickGetImageProfile(MagickWand *wand,const char *name,
+  size_t *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
name
+
Name of profile to return: ICC, IPTC, or generic profile.
+ +
+
length
+
the length of the profile.
+ +
+
+

MagickGetImageProfiles

+ +

MagickGetImageProfiles() returns all the profile names that match the specified pattern associated with a wand. Use MagickGetImageProfile() to return the value of a particular property. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageProfiles method is:

+ +
+char *MagickGetImageProfiles(MagickWand *wand,const char *pattern,
+  size_t *number_profiles)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_profiles
+
the number profiles associated with this wand.
+ +
+
+

MagickGetImageProperty

+ +

MagickGetImageProperty() returns a value associated with the specified property. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageProperty method is:

+ +
+char *MagickGetImageProperty(MagickWand *wand,const char *property)
+
+ +

A description of each parameter follows:

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

MagickGetImageProperties

+ +

MagickGetImageProperties() returns all the property names that match the specified pattern associated with a wand. Use MagickGetImageProperty() to return the value of a particular property. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageProperties method is:

+ +
+char *MagickGetImageProperties(MagickWand *wand,
+  const char *pattern,size_t *number_properties)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_properties
+
the number properties associated with this wand.
+ +
+
+

MagickGetInterlaceScheme

+ +

MagickGetInterlaceScheme() gets the wand interlace scheme.

+ +

The format of the MagickGetInterlaceScheme method is:

+ +
+InterlaceType MagickGetInterlaceScheme(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetInterpolateMethod

+ +

MagickGetInterpolateMethod() gets the wand compression.

+ +

The format of the MagickGetInterpolateMethod method is:

+ +
+PixelInterpolateMethod MagickGetInterpolateMethod(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetOption

+ +

MagickGetOption() returns a value associated with a wand and the specified key. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetOption method is:

+ +
+char *MagickGetOption(MagickWand *wand,const char *key)
+
+ +

A description of each parameter follows:

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

MagickGetOptions

+ +

MagickGetOptions() returns all the option names that match the specified pattern associated with a wand. Use MagickGetOption() to return the value of a particular option. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetOptions method is:

+ +
+char *MagickGetOptions(MagickWand *wand,const char *pattern,
+  size_t *number_options)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_options
+
the number options associated with this wand.
+ +
+
+

MagickGetOrientation

+ +

MagickGetOrientation() gets the wand orientation type.

+ +

The format of the MagickGetOrientation method is:

+ +
+OrientationType MagickGetOrientation(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetPackageName

+ +

MagickGetPackageName() returns the ImageMagick package name as a string constant.

+ +

The format of the MagickGetPackageName method is:

+ +
+const char *MagickGetPackageName(void)
+
+ + +

MagickGetPage

+ +

MagickGetPage() returns the page geometry associated with the magick wand.

+ +

The format of the MagickGetPage method is:

+ +
+MagickBooleanType MagickGetPage(const MagickWand *wand,
+  size_t *width,size_t *height,ssize_t *x,ssize_t *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the page width.
+ +
+
height
+
page height.
+ +
+
x
+
the page x-offset.
+ +
+
y
+
the page y-offset.
+ +
+
+

MagickGetPointsize

+ +

MagickGetPointsize() returns the font pointsize associated with the MagickWand.

+ +

The format of the MagickGetPointsize method is:

+ +
+double MagickGetPointsize(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetQuantumDepth

+ +

MagickGetQuantumDepth() returns the ImageMagick quantum depth as a string constant.

+ +

The format of the MagickGetQuantumDepth method is:

+ +
+const char *MagickGetQuantumDepth(size_t *depth)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
depth
+
the quantum depth is returned as a number.
+ +
+
+

MagickGetQuantumRange

+ +

MagickGetQuantumRange() returns the ImageMagick quantum range as a string constant.

+ +

The format of the MagickGetQuantumRange method is:

+ +
+const char *MagickGetQuantumRange(size_t *range)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
range
+
the quantum range is returned as a number.
+ +
+
+

MagickGetReleaseDate

+ +

MagickGetReleaseDate() returns the ImageMagick release date as a string constant.

+ +

The format of the MagickGetReleaseDate method is:

+ +
+const char *MagickGetReleaseDate(void)
+
+ +

MagickGetResolution

+ +

MagickGetResolution() gets the image X and Y resolution.

+ +

The format of the MagickGetResolution method is:

+ +
+MagickBooleanType MagickGetResolution(const MagickWand *wand,double *x,
+  double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the x-resolution.
+ +
+
y
+
the y-resolution.
+ +
+
+

MagickGetResource

+ +

MagickGetResource() returns the specified resource in megabytes.

+ +

The format of the MagickGetResource method is:

+ +
+MagickSizeType MagickGetResource(const ResourceType type)
+
+ +

A description of each parameter follows:

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

MagickGetResourceLimit

+ +

MagickGetResourceLimit() returns the specified resource limit in megabytes.

+ +

The format of the MagickGetResourceLimit method is:

+ +
+MagickSizeType MagickGetResourceLimit(const ResourceType type)
+
+ +

A description of each parameter follows:

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

MagickGetSamplingFactors

+ +

MagickGetSamplingFactors() gets the horizontal and vertical sampling factor.

+ +

The format of the MagickGetSamplingFactors method is:

+ +
+double *MagickGetSamplingFactor(MagickWand *wand,
+  size_t *number_factors)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_factors
+
the number of factors in the returned array.
+ +
+
+

MagickGetSize

+ +

MagickGetSize() returns the size associated with the magick wand.

+ +

The format of the MagickGetSize method is:

+ +
+MagickBooleanType MagickGetSize(const MagickWand *wand,
+  size_t *columns,size_t *rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the width in pixels.
+ +
+
height
+
the height in pixels.
+ +
+
+

MagickGetSizeOffset

+ +

MagickGetSizeOffset() returns the size offset associated with the magick wand.

+ +

The format of the MagickGetSizeOffset method is:

+ +
+MagickBooleanType MagickGetSizeOffset(const MagickWand *wand,
+  ssize_t *offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
offset
+
the image offset.
+ +
+
+

MagickGetType

+ +

MagickGetType() returns the wand type.

+ +

The format of the MagickGetType method is:

+ +
+ImageType MagickGetType(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetVersion

+ +

MagickGetVersion() returns the ImageMagick API version as a string constant and as a number.

+ +

The format of the MagickGetVersion method is:

+ +
+const char *MagickGetVersion(size_t *version)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
version
+
the ImageMagick version is returned as a number.
+ +
+
+

MagickProfileImage

+ +

MagickProfileImage() adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

+ +

The format of the MagickProfileImage method is:

+ +
+MagickBooleanType MagickProfileImage(MagickWand *wand,const char *name,
+  const void *profile,const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
name
+
Name of profile to add or remove: ICC, IPTC, or generic profile.
+ +
+
profile
+
the profile.
+ +
+
length
+
the length of the profile.
+ +
+
+

MagickRemoveImageProfile

+ +

MagickRemoveImageProfile() removes the named image profile and returns it.

+ +

The format of the MagickRemoveImageProfile method is:

+ +
+unsigned char *MagickRemoveImageProfile(MagickWand *wand,
+  const char *name,size_t *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
name
+
Name of profile to return: ICC, IPTC, or generic profile.
+ +
+
length
+
the length of the profile.
+ +
+
+

MagickSetAntialias

+ +

MagickSetAntialias() sets the antialias propery of the wand.

+ +

The format of the MagickSetAntialias method is:

+ +
+MagickBooleanType MagickSetAntialias(MagickWand *wand,
+  const MagickBooleanType antialias)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
antialias
+
the antialias property.
+ +
+
+

MagickSetBackgroundColor

+ +

MagickSetBackgroundColor() sets the wand background color.

+ +

The format of the MagickSetBackgroundColor method is:

+ +
+MagickBooleanType MagickSetBackgroundColor(MagickWand *wand,
+  const PixelWand *background)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the background pixel wand.
+ +
+
+

MagickSetColorspace

+ +

MagickSetColorspace() sets the wand colorspace type.

+ +

The format of the MagickSetColorspace method is:

+ +
+MagickBooleanType MagickSetColorspace(MagickWand *wand,
+  const ColorspaceType colorspace)
+
+ +

A description of each parameter follows:

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

MagickSetCompression

+ +

MagickSetCompression() sets the wand compression type.

+ +

The format of the MagickSetCompression method is:

+ +
+MagickBooleanType MagickSetCompression(MagickWand *wand,
+  const CompressionType compression)
+
+ +

A description of each parameter follows:

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

MagickSetCompressionQuality

+ +

MagickSetCompressionQuality() sets the wand compression quality.

+ +

The format of the MagickSetCompressionQuality method is:

+ +
+MagickBooleanType MagickSetCompressionQuality(MagickWand *wand,
+  const size_t quality)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
quality
+
the wand compression quality.
+ +
+
+

MagickSetDepth

+ +

MagickSetDepth() sets the wand pixel depth.

+ +

The format of the MagickSetDepth method is:

+ +
+MagickBooleanType MagickSetDepth(MagickWand *wand,
+  const size_t depth)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
depth
+
the wand pixel depth.
+ +
+
+

MagickSetExtract

+ +

MagickSetExtract() sets the extract geometry before you read or write an image file. Use it for inline cropping (e.g. 200x200+0+0) or resizing (e.g.200x200).

+ +

The format of the MagickSetExtract method is:

+ +
+MagickBooleanType MagickSetExtract(MagickWand *wand,
+  const char *geometry)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
geometry
+
the extract geometry.
+ +
+
+

MagickSetFilename

+ +

MagickSetFilename() sets the filename before you read or write an image file.

+ +

The format of the MagickSetFilename method is:

+ +
+MagickBooleanType MagickSetFilename(MagickWand *wand,
+  const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
+

MagickSetFont

+ +

MagickSetFont() sets the font associated with the MagickWand.

+ +

The format of the MagickSetFont method is:

+ +
+MagickBooleanType MagickSetFont(MagickWand *wand, const char *font)
+
+ +

A description of each parameter follows:

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

MagickSetFormat

+ +

MagickSetFormat() sets the format of the magick wand.

+ +

The format of the MagickSetFormat method is:

+ +
+MagickBooleanType MagickSetFormat(MagickWand *wand,const char *format)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
format
+
the image format.
+ +
+
+

MagickSetGravity

+ +

MagickSetGravity() sets the gravity type.

+ +

The format of the MagickSetGravity type is:

+ +
+MagickBooleanType MagickSetGravity(MagickWand *wand,
+  const GravityType type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
type
+
the gravity type.
+ +
+
+

MagickSetImageArtifact

+ +

MagickSetImageArtifact() associates a artifact with an image.

+ +

The format of the MagickSetImageArtifact method is:

+ +
+MagickBooleanType MagickSetImageArtifact(MagickWand *wand,
+  const char *artifact,const char *value)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
artifact
+
the artifact.
+ +
+
value
+
the value.
+ +
+
+

MagickSetImageProfile

+ +

MagickSetImageProfile() adds a named profile to the magick wand. If a profile with the same name already exists, it is replaced. This method differs from the MagickProfileImage() method in that it does not apply any CMS color profiles.

+ +

The format of the MagickSetImageProfile method is:

+ +
+MagickBooleanType MagickSetImageProfile(MagickWand *wand,
+  const char *name,const void *profile,const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
name
+
Name of profile to add or remove: ICC, IPTC, or generic profile.
+ +
+
profile
+
the profile.
+ +
+
length
+
the length of the profile.
+ +
+
+

MagickSetImageProperty

+ +

MagickSetImageProperty() associates a property with an image.

+ +

The format of the MagickSetImageProperty method is:

+ +
+MagickBooleanType MagickSetImageProperty(MagickWand *wand,
+  const char *property,const char *value)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
property
+
the property.
+ +
+
value
+
the value.
+ +
+
+

MagickSetInterlaceScheme

+ +

MagickSetInterlaceScheme() sets the image compression.

+ +

The format of the MagickSetInterlaceScheme method is:

+ +
+MagickBooleanType MagickSetInterlaceScheme(MagickWand *wand,
+  const InterlaceType interlace_scheme)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
interlace_scheme
+
the image interlace scheme: NoInterlace, LineInterlace, PlaneInterlace, PartitionInterlace.
+ +
+
+

MagickSetInterpolateMethod

+ +

MagickSetInterpolateMethod() sets the interpolate pixel method.

+ +

The format of the MagickSetInterpolateMethod method is:

+ +
+MagickBooleanType MagickSetInterpolateMethod(MagickWand *wand,
+  const InterpolateMethodPixel method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the interpolate pixel method.
+ +
+
+

MagickSetOption

+ +

MagickSetOption() associates one or options with the wand (.e.g MagickSetOption(wand,"jpeg:perserve","yes")).

+ +

The format of the MagickSetOption method is:

+ +
+MagickBooleanType MagickSetOption(MagickWand *wand,const char *key,
+  const char *value)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
key
+
The key.
+ +
+
value
+
The value.
+ +
+
+

MagickSetOrientation

+ +

MagickSetOrientation() sets the wand orientation type.

+ +

The format of the MagickSetOrientation method is:

+ +
+MagickBooleanType MagickSetOrientation(MagickWand *wand,
+  const OrientationType orientation)
+
+ +

A description of each parameter follows:

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

MagickSetPage

+ +

MagickSetPage() sets the page geometry of the magick wand.

+ +

The format of the MagickSetPage method is:

+ +
+MagickBooleanType MagickSetPage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the page width.
+ +
+
height
+
the page height.
+ +
+
x
+
the page x-offset.
+ +
+
y
+
the page y-offset.
+ +
+
+

MagickSetPassphrase

+ +

MagickSetPassphrase() sets the passphrase.

+ +

The format of the MagickSetPassphrase method is:

+ +
+MagickBooleanType MagickSetPassphrase(MagickWand *wand,
+  const char *passphrase)
+
+ +

A description of each parameter follows:

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

MagickSetPointsize

+ +

MagickSetPointsize() sets the font pointsize associated with the MagickWand.

+ +

The format of the MagickSetPointsize method is:

+ +
+MagickBooleanType MagickSetPointsize(MagickWand *wand,
+  const double pointsize)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pointsize
+
the size of the font
+ +
+
+

MagickSetProgressMonitor

+ +

MagickSetProgressMonitor() sets the wand progress monitor to the specified method and returns the previous progress monitor if any. The progress monitor method looks like this:

+ +
+    MagickBooleanType MagickProgressMonitor(const char *text,
+const MagickOffsetType offset,const MagickSizeType span,
+void *client_data)
+
+ +

If the progress monitor returns MagickFalse, the current operation is interrupted.

+ +

The format of the MagickSetProgressMonitor method is:

+ +
+MagickProgressMonitor MagickSetProgressMonitor(MagickWand *wand
+  const MagickProgressMonitor progress_monitor,void *client_data)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
progress_monitor
+
Specifies a pointer to a method to monitor progress of an image operation.
+ +
+
client_data
+
Specifies a pointer to any client data.
+ +
+
+

MagickSetResourceLimit

+ +

MagickSetResourceLimit() sets the limit for a particular resource in megabytes.

+ +

The format of the MagickSetResourceLimit method is:

+ +
+MagickBooleanType MagickSetResourceLimit(const ResourceType type,
+  const MagickSizeType limit)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type of resource: AreaResource, MemoryResource, MapResource, DiskResource, FileResource.
+ +
o The maximum limit for the resource.
+ +
+
+

MagickSetResolution

+ +

MagickSetResolution() sets the image resolution.

+ +

The format of the MagickSetResolution method is:

+ +
+MagickBooleanType MagickSetResolution(MagickWand *wand,
+  const double x_resolution,const double y_resolution)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x_resolution
+
the image x resolution.
+ +
+
y_resolution
+
the image y resolution.
+ +
+
+

MagickSetSamplingFactors

+ +

MagickSetSamplingFactors() sets the image sampling factors.

+ +

The format of the MagickSetSamplingFactors method is:

+ +
+MagickBooleanType MagickSetSamplingFactors(MagickWand *wand,
+  const size_t number_factors,const double *sampling_factors)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_factoes
+
the number of factors.
+ +
+
sampling_factors
+
An array of doubles representing the sampling factor for each color component (in RGB order).
+ +
+
+

MagickSetSecurityPolicy

+ +

MagickSetSecurityPolicy() sets the ImageMagick security policy. It returns MagickFalse if the policy is already set or if the policy does not parse.

+ +

The format of the MagickSetAntialias method is:

+ +
+MagickBooleanType MagickSetAntialias(MagickWand *wand,
+  const char *policy)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
policy
+
the security policy in the XML format.
+ +
+
+

MagickSetSize

+ +

MagickSetSize() sets the size of the magick wand. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

+ +

The format of the MagickSetSize method is:

+ +
+MagickBooleanType MagickSetSize(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the width in pixels.
+ +
+
rows
+
the rows in pixels.
+ +
+
+

MagickSetSizeOffset

+ +

MagickSetSizeOffset() sets the size and offset of the magick wand. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

+ +

The format of the MagickSetSizeOffset method is:

+ +
+MagickBooleanType MagickSetSizeOffset(MagickWand *wand,
+  const size_t columns,const size_t rows,
+  const ssize_t offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the image width in pixels.
+ +
+
rows
+
the image rows in pixels.
+ +
+
offset
+
the image offset.
+ +
+
+

MagickSetType

+ +

MagickSetType() sets the image type attribute.

+ +

The format of the MagickSetType method is:

+ +
+MagickBooleanType MagickSetType(MagickWand *wand,
+  const ImageType image_type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
image_type
+
the image type: UndefinedType, BilevelType, GrayscaleType, GrayscaleAlphaType, PaletteType, PaletteAlphaType, TrueColorType, TrueColorAlphaType, ColorSeparationType, ColorSeparationAlphaType, or OptimizeType.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/magick-property.php b/share/doc/ImageMagick-7/www/api/magick-property.php new file mode 100644 index 0000000..ec61599 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick-property.php @@ -0,0 +1,1887 @@ + + + + + + + + + ImageMagick: MagickWand, C API for ImageMagick: Property Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

MagickDeleteImageArtifactMagickDeleteImagePropertyMagickDeleteOptionMagickGetAntialiasMagickGetBackgroundColorMagickGetColorspaceMagickGetCompressionMagickGetCompressionQualityMagickGetCopyrightMagickGetFilenameMagickGetFontMagickGetFormatMagickGetGravityMagickGetHomeURLMagickGetImageArtifactMagickGetImageArtifactsMagickGetImageProfileMagickGetImageProfilesMagickGetImagePropertyMagickGetImagePropertiesMagickGetInterlaceSchemeMagickGetInterpolateMethodMagickGetOptionMagickGetOptionsMagickGetOrientationMagickGetPackageNameMagickGetPageMagickGetPointsizeMagickGetQuantumDepthMagickGetQuantumRangeMagickGetReleaseDateMagickGetResolutionMagickGetResourceMagickGetResourceLimitMagickGetSamplingFactorsMagickGetSizeMagickGetSizeOffsetMagickGetTypeMagickGetVersionMagickProfileImageMagickRemoveImageProfileMagickSetAntialiasMagickSetBackgroundColorMagickSetColorspaceMagickSetCompressionMagickSetCompressionQualityMagickSetDepthMagickSetExtractMagickSetFilenameMagickSetFontMagickSetFormatMagickSetGravityMagickSetImageArtifactMagickSetImageProfileMagickSetImagePropertyMagickSetInterlaceSchemeMagickSetInterpolateMethodMagickSetOptionMagickSetOrientationMagickSetPageMagickSetPassphraseMagickSetPointsizeMagickSetProgressMonitorMagickSetResourceLimitMagickSetResolutionMagickSetSamplingFactorsMagickSetSizeMagickSetSizeOffsetMagickSetType

+ +

MagickDeleteImageArtifact

+ +

MagickDeleteImageArtifact() deletes a wand artifact.

+ +

The format of the MagickDeleteImageArtifact method is:

+ +
+MagickBooleanType MagickDeleteImageArtifact(MagickWand *wand,
+  const char *artifact)
+
+ +

A description of each parameter follows:

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

MagickDeleteImageProperty

+ +

MagickDeleteImageProperty() deletes a wand property.

+ +

The format of the MagickDeleteImageProperty method is:

+ +
+MagickBooleanType MagickDeleteImageProperty(MagickWand *wand,
+  const char *property)
+
+ +

A description of each parameter follows:

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

MagickDeleteOption

+ +

MagickDeleteOption() deletes a wand option.

+ +

The format of the MagickDeleteOption method is:

+ +
+MagickBooleanType MagickDeleteOption(MagickWand *wand,
+  const char *option)
+
+ +

A description of each parameter follows:

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

MagickGetAntialias

+ +

MagickGetAntialias() returns the antialias property associated with the wand.

+ +

The format of the MagickGetAntialias method is:

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

A description of each parameter follows:

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

MagickGetBackgroundColor

+ +

MagickGetBackgroundColor() returns the wand background color.

+ +

The format of the MagickGetBackgroundColor method is:

+ +
+PixelWand *MagickGetBackgroundColor(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetColorspace

+ +

MagickGetColorspace() gets the wand colorspace type.

+ +

The format of the MagickGetColorspace method is:

+ +
+ColorspaceType MagickGetColorspace(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetCompression

+ +

MagickGetCompression() gets the wand compression type.

+ +

The format of the MagickGetCompression method is:

+ +
+CompressionType MagickGetCompression(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetCompressionQuality

+ +

MagickGetCompressionQuality() gets the wand compression quality.

+ +

The format of the MagickGetCompressionQuality method is:

+ +
+size_t MagickGetCompressionQuality(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetCopyright

+ +

MagickGetCopyright() returns the ImageMagick API copyright as a string constant.

+ +

The format of the MagickGetCopyright method is:

+ +
+const char *MagickGetCopyright(void)
+
+ +

MagickGetFilename

+ +

MagickGetFilename() returns the filename associated with an image sequence.

+ +

The format of the MagickGetFilename method is:

+ +
+const char *MagickGetFilename(const MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetFont

+ +

MagickGetFont() returns the font associated with the MagickWand.

+ +

The format of the MagickGetFont method is:

+ +
+char *MagickGetFont(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetFormat

+ +

MagickGetFormat() returns the format of the magick wand.

+ +

The format of the MagickGetFormat method is:

+ +
+const char MagickGetFormat(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetGravity

+ +

MagickGetGravity() gets the wand gravity.

+ +

The format of the MagickGetGravity method is:

+ +
+GravityType MagickGetGravity(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetHomeURL

+ +

MagickGetHomeURL() returns the ImageMagick home URL.

+ +

The format of the MagickGetHomeURL method is:

+ +
+char *MagickGetHomeURL(void)
+
+ +

MagickGetImageArtifact

+ +

MagickGetImageArtifact() returns a value associated with the specified artifact. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageArtifact method is:

+ +
+char *MagickGetImageArtifact(MagickWand *wand,const char *artifact)
+
+ +

A description of each parameter follows:

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

MagickGetImageArtifacts

+ +

MagickGetImageArtifacts() returns all the artifact names that match the specified pattern associated with a wand. Use MagickGetImageProperty() to return the value of a particular artifact. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageArtifacts method is:

+ +
+char *MagickGetImageArtifacts(MagickWand *wand,
+  const char *pattern,size_t *number_artifacts)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_artifacts
+
the number artifacts associated with this wand.
+ +
+
+

MagickGetImageProfile

+ +

MagickGetImageProfile() returns the named image profile.

+ +

The format of the MagickGetImageProfile method is:

+ +
+unsigned char *MagickGetImageProfile(MagickWand *wand,const char *name,
+  size_t *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
name
+
Name of profile to return: ICC, IPTC, or generic profile.
+ +
+
length
+
the length of the profile.
+ +
+
+

MagickGetImageProfiles

+ +

MagickGetImageProfiles() returns all the profile names that match the specified pattern associated with a wand. Use MagickGetImageProfile() to return the value of a particular property. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageProfiles method is:

+ +
+char *MagickGetImageProfiles(MagickWand *wand,const char *pattern,
+  size_t *number_profiles)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_profiles
+
the number profiles associated with this wand.
+ +
+
+

MagickGetImageProperty

+ +

MagickGetImageProperty() returns a value associated with the specified property. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageProperty method is:

+ +
+char *MagickGetImageProperty(MagickWand *wand,const char *property)
+
+ +

A description of each parameter follows:

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

MagickGetImageProperties

+ +

MagickGetImageProperties() returns all the property names that match the specified pattern associated with a wand. Use MagickGetImageProperty() to return the value of a particular property. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetImageProperties method is:

+ +
+char *MagickGetImageProperties(MagickWand *wand,
+  const char *pattern,size_t *number_properties)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_properties
+
the number properties associated with this wand.
+ +
+
+

MagickGetInterlaceScheme

+ +

MagickGetInterlaceScheme() gets the wand interlace scheme.

+ +

The format of the MagickGetInterlaceScheme method is:

+ +
+InterlaceType MagickGetInterlaceScheme(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetInterpolateMethod

+ +

MagickGetInterpolateMethod() gets the wand compression.

+ +

The format of the MagickGetInterpolateMethod method is:

+ +
+PixelInterpolateMethod MagickGetInterpolateMethod(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetOption

+ +

MagickGetOption() returns a value associated with a wand and the specified key. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetOption method is:

+ +
+char *MagickGetOption(MagickWand *wand,const char *key)
+
+ +

A description of each parameter follows:

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

MagickGetOptions

+ +

MagickGetOptions() returns all the option names that match the specified pattern associated with a wand. Use MagickGetOption() to return the value of a particular option. Use MagickRelinquishMemory() to free the value when you are finished with it.

+ +

The format of the MagickGetOptions method is:

+ +
+char *MagickGetOptions(MagickWand *wand,const char *pattern,
+  size_t *number_options)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_options
+
the number options associated with this wand.
+ +
+
+

MagickGetOrientation

+ +

MagickGetOrientation() gets the wand orientation type.

+ +

The format of the MagickGetOrientation method is:

+ +
+OrientationType MagickGetOrientation(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetPackageName

+ +

MagickGetPackageName() returns the ImageMagick package name as a string constant.

+ +

The format of the MagickGetPackageName method is:

+ +
+const char *MagickGetPackageName(void)
+
+ + +

MagickGetPage

+ +

MagickGetPage() returns the page geometry associated with the magick wand.

+ +

The format of the MagickGetPage method is:

+ +
+MagickBooleanType MagickGetPage(const MagickWand *wand,
+  size_t *width,size_t *height,ssize_t *x,ssize_t *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the page width.
+ +
+
height
+
page height.
+ +
+
x
+
the page x-offset.
+ +
+
y
+
the page y-offset.
+ +
+
+

MagickGetPointsize

+ +

MagickGetPointsize() returns the font pointsize associated with the MagickWand.

+ +

The format of the MagickGetPointsize method is:

+ +
+double MagickGetPointsize(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetQuantumDepth

+ +

MagickGetQuantumDepth() returns the ImageMagick quantum depth as a string constant.

+ +

The format of the MagickGetQuantumDepth method is:

+ +
+const char *MagickGetQuantumDepth(size_t *depth)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
depth
+
the quantum depth is returned as a number.
+ +
+
+

MagickGetQuantumRange

+ +

MagickGetQuantumRange() returns the ImageMagick quantum range as a string constant.

+ +

The format of the MagickGetQuantumRange method is:

+ +
+const char *MagickGetQuantumRange(size_t *range)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
range
+
the quantum range is returned as a number.
+ +
+
+

MagickGetReleaseDate

+ +

MagickGetReleaseDate() returns the ImageMagick release date as a string constant.

+ +

The format of the MagickGetReleaseDate method is:

+ +
+const char *MagickGetReleaseDate(void)
+
+ +

MagickGetResolution

+ +

MagickGetResolution() gets the image X and Y resolution.

+ +

The format of the MagickGetResolution method is:

+ +
+MagickBooleanType MagickGetResolution(const MagickWand *wand,double *x,
+  double *y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x
+
the x-resolution.
+ +
+
y
+
the y-resolution.
+ +
+
+

MagickGetResource

+ +

MagickGetResource() returns the specified resource in megabytes.

+ +

The format of the MagickGetResource method is:

+ +
+MagickSizeType MagickGetResource(const ResourceType type)
+
+ +

A description of each parameter follows:

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

MagickGetResourceLimit

+ +

MagickGetResourceLimit() returns the specified resource limit in megabytes.

+ +

The format of the MagickGetResourceLimit method is:

+ +
+MagickSizeType MagickGetResourceLimit(const ResourceType type)
+
+ +

A description of each parameter follows:

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

MagickGetSamplingFactors

+ +

MagickGetSamplingFactors() gets the horizontal and vertical sampling factor.

+ +

The format of the MagickGetSamplingFactors method is:

+ +
+double *MagickGetSamplingFactor(MagickWand *wand,
+  size_t *number_factors)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_factors
+
the number of factors in the returned array.
+ +
+
+

MagickGetSize

+ +

MagickGetSize() returns the size associated with the magick wand.

+ +

The format of the MagickGetSize method is:

+ +
+MagickBooleanType MagickGetSize(const MagickWand *wand,
+  size_t *columns,size_t *rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the width in pixels.
+ +
+
height
+
the height in pixels.
+ +
+
+

MagickGetSizeOffset

+ +

MagickGetSizeOffset() returns the size offset associated with the magick wand.

+ +

The format of the MagickGetSizeOffset method is:

+ +
+MagickBooleanType MagickGetSizeOffset(const MagickWand *wand,
+  ssize_t *offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
offset
+
the image offset.
+ +
+
+

MagickGetType

+ +

MagickGetType() returns the wand type.

+ +

The format of the MagickGetType method is:

+ +
+ImageType MagickGetType(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

MagickGetVersion

+ +

MagickGetVersion() returns the ImageMagick API version as a string constant and as a number.

+ +

The format of the MagickGetVersion method is:

+ +
+const char *MagickGetVersion(size_t *version)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
version
+
the ImageMagick version is returned as a number.
+ +
+
+

MagickProfileImage

+ +

MagickProfileImage() adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

+ +

The format of the MagickProfileImage method is:

+ +
+MagickBooleanType MagickProfileImage(MagickWand *wand,const char *name,
+  const void *profile,const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
name
+
Name of profile to add or remove: ICC, IPTC, or generic profile.
+ +
+
profile
+
the profile.
+ +
+
length
+
the length of the profile.
+ +
+
+

MagickRemoveImageProfile

+ +

MagickRemoveImageProfile() removes the named image profile and returns it.

+ +

The format of the MagickRemoveImageProfile method is:

+ +
+unsigned char *MagickRemoveImageProfile(MagickWand *wand,
+  const char *name,size_t *length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
name
+
Name of profile to return: ICC, IPTC, or generic profile.
+ +
+
length
+
the length of the profile.
+ +
+
+

MagickSetAntialias

+ +

MagickSetAntialias() sets the antialias propery of the wand.

+ +

The format of the MagickSetAntialias method is:

+ +
+MagickBooleanType MagickSetAntialias(MagickWand *wand,
+  const MagickBooleanType antialias)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
antialias
+
the antialias property.
+ +
+
+

MagickSetBackgroundColor

+ +

MagickSetBackgroundColor() sets the wand background color.

+ +

The format of the MagickSetBackgroundColor method is:

+ +
+MagickBooleanType MagickSetBackgroundColor(MagickWand *wand,
+  const PixelWand *background)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
background
+
the background pixel wand.
+ +
+
+

MagickSetColorspace

+ +

MagickSetColorspace() sets the wand colorspace type.

+ +

The format of the MagickSetColorspace method is:

+ +
+MagickBooleanType MagickSetColorspace(MagickWand *wand,
+  const ColorspaceType colorspace)
+
+ +

A description of each parameter follows:

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

MagickSetCompression

+ +

MagickSetCompression() sets the wand compression type.

+ +

The format of the MagickSetCompression method is:

+ +
+MagickBooleanType MagickSetCompression(MagickWand *wand,
+  const CompressionType compression)
+
+ +

A description of each parameter follows:

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

MagickSetCompressionQuality

+ +

MagickSetCompressionQuality() sets the wand compression quality.

+ +

The format of the MagickSetCompressionQuality method is:

+ +
+MagickBooleanType MagickSetCompressionQuality(MagickWand *wand,
+  const size_t quality)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
quality
+
the wand compression quality.
+ +
+
+

MagickSetDepth

+ +

MagickSetDepth() sets the wand pixel depth.

+ +

The format of the MagickSetDepth method is:

+ +
+MagickBooleanType MagickSetDepth(MagickWand *wand,
+  const size_t depth)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
depth
+
the wand pixel depth.
+ +
+
+

MagickSetExtract

+ +

MagickSetExtract() sets the extract geometry before you read or write an image file. Use it for inline cropping (e.g. 200x200+0+0) or resizing (e.g.200x200).

+ +

The format of the MagickSetExtract method is:

+ +
+MagickBooleanType MagickSetExtract(MagickWand *wand,
+  const char *geometry)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
geometry
+
the extract geometry.
+ +
+
+

MagickSetFilename

+ +

MagickSetFilename() sets the filename before you read or write an image file.

+ +

The format of the MagickSetFilename method is:

+ +
+MagickBooleanType MagickSetFilename(MagickWand *wand,
+  const char *filename)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
filename
+
the image filename.
+ +
+
+

MagickSetFont

+ +

MagickSetFont() sets the font associated with the MagickWand.

+ +

The format of the MagickSetFont method is:

+ +
+MagickBooleanType MagickSetFont(MagickWand *wand, const char *font)
+
+ +

A description of each parameter follows:

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

MagickSetFormat

+ +

MagickSetFormat() sets the format of the magick wand.

+ +

The format of the MagickSetFormat method is:

+ +
+MagickBooleanType MagickSetFormat(MagickWand *wand,const char *format)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
format
+
the image format.
+ +
+
+

MagickSetGravity

+ +

MagickSetGravity() sets the gravity type.

+ +

The format of the MagickSetGravity type is:

+ +
+MagickBooleanType MagickSetGravity(MagickWand *wand,
+  const GravityType type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
type
+
the gravity type.
+ +
+
+

MagickSetImageArtifact

+ +

MagickSetImageArtifact() associates a artifact with an image.

+ +

The format of the MagickSetImageArtifact method is:

+ +
+MagickBooleanType MagickSetImageArtifact(MagickWand *wand,
+  const char *artifact,const char *value)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
artifact
+
the artifact.
+ +
+
value
+
the value.
+ +
+
+

MagickSetImageProfile

+ +

MagickSetImageProfile() adds a named profile to the magick wand. If a profile with the same name already exists, it is replaced. This method differs from the MagickProfileImage() method in that it does not apply any CMS color profiles.

+ +

The format of the MagickSetImageProfile method is:

+ +
+MagickBooleanType MagickSetImageProfile(MagickWand *wand,
+  const char *name,const void *profile,const size_t length)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
name
+
Name of profile to add or remove: ICC, IPTC, or generic profile.
+ +
+
profile
+
the profile.
+ +
+
length
+
the length of the profile.
+ +
+
+

MagickSetImageProperty

+ +

MagickSetImageProperty() associates a property with an image.

+ +

The format of the MagickSetImageProperty method is:

+ +
+MagickBooleanType MagickSetImageProperty(MagickWand *wand,
+  const char *property,const char *value)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
property
+
the property.
+ +
+
value
+
the value.
+ +
+
+

MagickSetInterlaceScheme

+ +

MagickSetInterlaceScheme() sets the image compression.

+ +

The format of the MagickSetInterlaceScheme method is:

+ +
+MagickBooleanType MagickSetInterlaceScheme(MagickWand *wand,
+  const InterlaceType interlace_scheme)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
interlace_scheme
+
the image interlace scheme: NoInterlace, LineInterlace, PlaneInterlace, PartitionInterlace.
+ +
+
+

MagickSetInterpolateMethod

+ +

MagickSetInterpolateMethod() sets the interpolate pixel method.

+ +

The format of the MagickSetInterpolateMethod method is:

+ +
+MagickBooleanType MagickSetInterpolateMethod(MagickWand *wand,
+  const InterpolateMethodPixel method)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
method
+
the interpolate pixel method.
+ +
+
+

MagickSetOption

+ +

MagickSetOption() associates one or options with the wand (.e.g MagickSetOption(wand,"jpeg:perserve","yes")).

+ +

The format of the MagickSetOption method is:

+ +
+MagickBooleanType MagickSetOption(MagickWand *wand,const char *key,
+  const char *value)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
key
+
The key.
+ +
+
value
+
The value.
+ +
+
+

MagickSetOrientation

+ +

MagickSetOrientation() sets the wand orientation type.

+ +

The format of the MagickSetOrientation method is:

+ +
+MagickBooleanType MagickSetOrientation(MagickWand *wand,
+  const OrientationType orientation)
+
+ +

A description of each parameter follows:

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

MagickSetPage

+ +

MagickSetPage() sets the page geometry of the magick wand.

+ +

The format of the MagickSetPage method is:

+ +
+MagickBooleanType MagickSetPage(MagickWand *wand,
+  const size_t width,const size_t height,const ssize_t x,
+  const ssize_t y)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
width
+
the page width.
+ +
+
height
+
the page height.
+ +
+
x
+
the page x-offset.
+ +
+
y
+
the page y-offset.
+ +
+
+

MagickSetPassphrase

+ +

MagickSetPassphrase() sets the passphrase.

+ +

The format of the MagickSetPassphrase method is:

+ +
+MagickBooleanType MagickSetPassphrase(MagickWand *wand,
+  const char *passphrase)
+
+ +

A description of each parameter follows:

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

MagickSetPointsize

+ +

MagickSetPointsize() sets the font pointsize associated with the MagickWand.

+ +

The format of the MagickSetPointsize method is:

+ +
+MagickBooleanType MagickSetPointsize(MagickWand *wand,
+  const double pointsize)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
pointsize
+
the size of the font
+ +
+
+

MagickSetProgressMonitor

+ +

MagickSetProgressMonitor() sets the wand progress monitor to the specified method and returns the previous progress monitor if any. The progress monitor method looks like this:

+ +
+    MagickBooleanType MagickProgressMonitor(const char *text,
+const MagickOffsetType offset,const MagickSizeType span,
+void *client_data)
+
+ +

If the progress monitor returns MagickFalse, the current operation is interrupted.

+ +

The format of the MagickSetProgressMonitor method is:

+ +
+MagickProgressMonitor MagickSetProgressMonitor(MagickWand *wand
+  const MagickProgressMonitor progress_monitor,void *client_data)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
progress_monitor
+
Specifies a pointer to a method to monitor progress of an image operation.
+ +
+
client_data
+
Specifies a pointer to any client data.
+ +
+
+

MagickSetResourceLimit

+ +

MagickSetResourceLimit() sets the limit for a particular resource in megabytes.

+ +

The format of the MagickSetResourceLimit method is:

+ +
+MagickBooleanType MagickSetResourceLimit(const ResourceType type,
+  const MagickSizeType limit)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type of resource: AreaResource, MemoryResource, MapResource, DiskResource, FileResource.
+ +
o The maximum limit for the resource.
+ +
+
+

MagickSetResolution

+ +

MagickSetResolution() sets the image resolution.

+ +

The format of the MagickSetResolution method is:

+ +
+MagickBooleanType MagickSetResolution(MagickWand *wand,
+  const double x_resolution,const double y_resolution)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x_resolution
+
the image x resolution.
+ +
+
y_resolution
+
the image y resolution.
+ +
+
+

MagickSetSamplingFactors

+ +

MagickSetSamplingFactors() sets the image sampling factors.

+ +

The format of the MagickSetSamplingFactors method is:

+ +
+MagickBooleanType MagickSetSamplingFactors(MagickWand *wand,
+  const size_t number_factors,const double *sampling_factors)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
number_factoes
+
the number of factors.
+ +
+
sampling_factors
+
An array of doubles representing the sampling factor for each color component (in RGB order).
+ +
+
+

MagickSetSize

+ +

MagickSetSize() sets the size of the magick wand. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

+ +

The format of the MagickSetSize method is:

+ +
+MagickBooleanType MagickSetSize(MagickWand *wand,
+  const size_t columns,const size_t rows)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the width in pixels.
+ +
+
rows
+
the rows in pixels.
+ +
+
+

MagickSetSizeOffset

+ +

MagickSetSizeOffset() sets the size and offset of the magick wand. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

+ +

The format of the MagickSetSizeOffset method is:

+ +
+MagickBooleanType MagickSetSizeOffset(MagickWand *wand,
+  const size_t columns,const size_t rows,
+  const ssize_t offset)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
columns
+
the image width in pixels.
+ +
+
rows
+
the image rows in pixels.
+ +
+
offset
+
the image offset.
+ +
+
+

MagickSetType

+ +

MagickSetType() sets the image type attribute.

+ +

The format of the MagickSetType method is:

+ +
+MagickBooleanType MagickSetType(MagickWand *wand,
+  const ImageType image_type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
image_type
+
the image type: UndefinedType, BilevelType, GrayscaleType, GrayscaleAlphaType, PaletteType, PaletteAlphaType, TrueColorType, TrueColorAlphaType, ColorSeparationType, ColorSeparationAlphaType, or OptimizeType.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/magick-wand.html b/share/doc/ImageMagick-7/www/api/magick-wand.html new file mode 100644 index 0000000..60222f1 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick-wand.html @@ -0,0 +1,693 @@ + + + + + + + + + + MagickWand, C API: Wand Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

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)
+
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/magick-wand.php b/share/doc/ImageMagick-7/www/api/magick-wand.php new file mode 100644 index 0000000..dff9761 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick-wand.php @@ -0,0 +1,659 @@ + + + + + + + + + ImageMagick: MagickWand, C API for ImageMagick: Wand Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

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)
+
+ +
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/magick.html b/share/doc/ImageMagick-7/www/api/magick.html new file mode 100644 index 0000000..3f85ce8 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick.html @@ -0,0 +1,222 @@ + + + + + + + + + + MagickCore, C API: Read or List Image formats @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireMagickInfoGetMagickPrecisionIsMagickCoreInstantiatedMagickCoreGenesisMagickCoreTerminusSetMagickPrecision

+ +

AcquireMagickInfo

+ +

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

+ +

The format of the AcquireMagickInfo method is:

+ +
+MagickInfo *AcquireMagickInfo(const char *module, const char *name,)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
module
+
a character string that represents the module associated with the MagickInfo structure.
+ +
+
name
+
a character string that represents the image format associated with the MagickInfo structure.
+ +
+
description
+
a character string that represents the image format associated with the MagickInfo structure.
+ +
+
+

GetMagickPrecision

+ +

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

+ +

The format of the GetMagickPrecision method is:

+ +
+int GetMagickPrecision(void)
+
+ +

IsMagickCoreInstantiated

+ +

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.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/magick.php b/share/doc/ImageMagick-7/www/api/magick.php new file mode 100644 index 0000000..3694526 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/magick.php @@ -0,0 +1,75 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Read or List Image formats + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

+ +
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/memory.html b/share/doc/ImageMagick-7/www/api/memory.html new file mode 100644 index 0000000..a881255 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/memory.html @@ -0,0 +1,477 @@ + + + + + + + + + + MagickCore, C API: Memory Allocation @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireAlignedMemoryAcquireMagickMemoryAcquireQuantumMemoryAcquireVirtualMemoryCopyMagickMemoryGetMagickMemoryMethodsGetVirtualMemoryBlobRelinquishAlignedMemoryRelinquishMagickMemoryRelinquishVirtualMemoryResetMagickMemoryResizeMagickMemoryResizeQuantumMemorySetMagickMemoryMethods

+ +

AcquireAlignedMemory

+ +

AcquireAlignedMemory() returns a pointer to a block of memory at least size bytes whose address is aligned on a cache line or page boundary.

+ +

The format of the AcquireAlignedMemory method is:

+ +
+void *AcquireAlignedMemory(const size_t count,const size_t quantum)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
count
+
the number of quantum elements to allocate.
+ +
+
quantum
+
the number of bytes in each quantum.
+ +
+
+

AcquireMagickMemory

+ +

AcquireMagickMemory() returns a pointer to a block of memory at least size bytes suitably aligned for any use.

+ +

The format of the AcquireMagickMemory method is:

+ +
+void *AcquireMagickMemory(const size_t size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
size
+
the size of the memory in bytes to allocate.
+ +
+
+

AcquireQuantumMemory

+ +

AcquireQuantumMemory() returns a pointer to a block of memory at least count * quantum bytes suitably aligned for any use.

+ +

The format of the AcquireQuantumMemory method is:

+ +
+void *AcquireQuantumMemory(const size_t count,const size_t quantum)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
count
+
the number of quantum elements to allocate.
+ +
+
quantum
+
the number of bytes in each quantum.
+ +
+
+

AcquireVirtualMemory

+ +

AcquireVirtualMemory() allocates a pointer to a block of memory at least size bytes suitably aligned for any use. In addition to heap, it also supports memory-mapped and file-based memory-mapped memory requests.

+ +

The format of the AcquireVirtualMemory method is:

+ +
+MemoryInfo *AcquireVirtualMemory(const size_t count,const size_t quantum)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
count
+
the number of quantum elements to allocate.
+ +
+
quantum
+
the number of bytes in each quantum.
+ +
+
+

CopyMagickMemory

+ +

CopyMagickMemory() copies size bytes from memory area source to the destination. Copying between objects that overlap will take place correctly. It returns destination.

+ +

The format of the CopyMagickMemory method is:

+ +
+void *CopyMagickMemory(void *destination,const void *source,
+  const size_t size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
destination
+
the destination.
+ +
+
source
+
the source.
+ +
+
size
+
the size of the memory in bytes to allocate.
+ +
+
+

GetMagickMemoryMethods

+ +

GetMagickMemoryMethods() gets the methods to acquire, resize, and destroy memory.

+ +

The format of the GetMagickMemoryMethods() method is:

+ +
+void GetMagickMemoryMethods(AcquireMemoryHandler *acquire_memory_handler,
+  ResizeMemoryHandler *resize_memory_handler,
+  DestroyMemoryHandler *destroy_memory_handler)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
acquire_memory_handler
+
method to acquire memory (e.g. malloc).
+ +
+
resize_memory_handler
+
method to resize memory (e.g. realloc).
+ +
+
destroy_memory_handler
+
method to destroy memory (e.g. free).
+ +
+
+

GetVirtualMemoryBlob

+ +

GetVirtualMemoryBlob() returns the virtual memory blob associated with the specified MemoryInfo structure.

+ +

The format of the GetVirtualMemoryBlob method is:

+ +
+void *GetVirtualMemoryBlob(const MemoryInfo *memory_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory_info
+
The MemoryInfo structure.
+
+

RelinquishAlignedMemory

+ +

RelinquishAlignedMemory() frees memory acquired with AcquireAlignedMemory() or reuse.

+ +

The format of the RelinquishAlignedMemory method is:

+ +
+void *RelinquishAlignedMemory(void *memory)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
A pointer to a block of memory to free for reuse.
+ +
+
+

RelinquishMagickMemory

+ +

RelinquishMagickMemory() frees memory acquired with AcquireMagickMemory() or AcquireQuantumMemory() for reuse.

+ +

The format of the RelinquishMagickMemory method is:

+ +
+void *RelinquishMagickMemory(void *memory)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
A pointer to a block of memory to free for reuse.
+ +
+
+

RelinquishVirtualMemory

+ +

RelinquishVirtualMemory() frees memory acquired with AcquireVirtualMemory().

+ +

The format of the RelinquishVirtualMemory method is:

+ +
+MemoryInfo *RelinquishVirtualMemory(MemoryInfo *memory_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory_info
+
A pointer to a block of memory to free for reuse.
+ +
+
+

ResetMagickMemory

+ +

ResetMagickMemory() fills the first size bytes of the memory area pointed to by memory with the constant byte c.

+ +

The format of the ResetMagickMemory method is:

+ +
+void *ResetMagickMemory(void *memory,int byte,const size_t size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
a pointer to a memory allocation.
+ +
+
byte
+
set the memory to this value.
+ +
+
size
+
size of the memory to reset.
+ +
+
+

ResizeMagickMemory

+ +

ResizeMagickMemory() changes the size of the memory and returns a pointer to the (possibly moved) block. The contents will be unchanged up to the lesser of the new and old sizes.

+ +

The format of the ResizeMagickMemory method is:

+ +
+void *ResizeMagickMemory(void *memory,const size_t size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
A pointer to a memory allocation.
+ +
+
size
+
the new size of the allocated memory.
+ +
+
+

ResizeQuantumMemory

+ +

ResizeQuantumMemory() changes the size of the memory and returns a pointer to the (possibly moved) block. The contents will be unchanged up to the lesser of the new and old sizes.

+ +

The format of the ResizeQuantumMemory method is:

+ +
+void *ResizeQuantumMemory(void *memory,const size_t count,
+  const size_t quantum)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
A pointer to a memory allocation.
+ +
+
count
+
the number of quantum elements to allocate.
+ +
+
quantum
+
the number of bytes in each quantum.
+ +
+
+

SetMagickMemoryMethods

+ +

SetMagickMemoryMethods() sets the methods to acquire, resize, and destroy memory. Your custom memory methods must be set prior to the MagickCoreGenesis() method.

+ +

The format of the SetMagickMemoryMethods() method is:

+ +
+SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler,
+  ResizeMemoryHandler resize_memory_handler,
+  DestroyMemoryHandler destroy_memory_handler)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
acquire_memory_handler
+
method to acquire memory (e.g. malloc).
+ +
+
resize_memory_handler
+
method to resize memory (e.g. realloc).
+ +
+
destroy_memory_handler
+
method to destroy memory (e.g. free).
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/memory.php b/share/doc/ImageMagick-7/www/api/memory.php new file mode 100644 index 0000000..06253de --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/memory.php @@ -0,0 +1,443 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Memory Allocation + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AcquireAlignedMemoryAcquireMagickMemoryAcquireQuantumMemoryAcquireVirtualMemoryCopyMagickMemoryGetMagickMemoryMethodsGetVirtualMemoryBlobRelinquishAlignedMemoryRelinquishMagickMemoryRelinquishVirtualMemoryResetMagickMemoryResizeMagickMemoryResizeQuantumMemorySetMagickMemoryMethods

+ +

AcquireAlignedMemory

+ +

AcquireAlignedMemory() returns a pointer to a block of memory at least size bytes whose address is a multiple of 16*sizeof(void *).

+ +

The format of the AcquireAlignedMemory method is:

+ +
+void *AcquireAlignedMemory(const size_t count,const size_t quantum)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
count
+
the number of quantum elements to allocate.
+ +
+
quantum
+
the number of bytes in each quantum.
+ +
+
+

AcquireMagickMemory

+ +

AcquireMagickMemory() returns a pointer to a block of memory at least size bytes suitably aligned for any use.

+ +

The format of the AcquireMagickMemory method is:

+ +
+void *AcquireMagickMemory(const size_t size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
size
+
the size of the memory in bytes to allocate.
+ +
+
+

AcquireQuantumMemory

+ +

AcquireQuantumMemory() returns a pointer to a block of memory at least count * quantum bytes suitably aligned for any use.

+ +

The format of the AcquireQuantumMemory method is:

+ +
+void *AcquireQuantumMemory(const size_t count,const size_t quantum)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
count
+
the number of quantum elements to allocate.
+ +
+
quantum
+
the number of bytes in each quantum.
+ +
+
+

AcquireVirtualMemory

+ +

AcquireVirtualMemory() allocates a pointer to a block of memory at least size bytes suitably aligned for any use.

+ +

The format of the AcquireVirtualMemory method is:

+ +
+MemoryInfo *AcquireVirtualMemory(const size_t count,const size_t quantum)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
count
+
the number of quantum elements to allocate.
+ +
+
quantum
+
the number of bytes in each quantum.
+ +
+
+

CopyMagickMemory

+ +

CopyMagickMemory() copies size bytes from memory area source to the destination. Copying between objects that overlap will take place correctly. It returns destination.

+ +

The format of the CopyMagickMemory method is:

+ +
+void *CopyMagickMemory(void *destination,const void *source,
+  const size_t size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
destination
+
the destination.
+ +
+
source
+
the source.
+ +
+
size
+
the size of the memory in bytes to allocate.
+ +
+
+

GetMagickMemoryMethods

+ +

GetMagickMemoryMethods() gets the methods to acquire, resize, and destroy memory.

+ +

The format of the GetMagickMemoryMethods() method is:

+ +
+void GetMagickMemoryMethods(AcquireMemoryHandler *acquire_memory_handler,
+  ResizeMemoryHandler *resize_memory_handler,
+  DestroyMemoryHandler *destroy_memory_handler)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
acquire_memory_handler
+
method to acquire memory (e.g. malloc).
+ +
+
resize_memory_handler
+
method to resize memory (e.g. realloc).
+ +
+
destroy_memory_handler
+
method to destroy memory (e.g. free).
+ +
+
+

GetVirtualMemoryBlob

+ +

GetVirtualMemoryBlob() returns the virtual memory blob associated with the specified MemoryInfo structure.

+ +

The format of the GetVirtualMemoryBlob method is:

+ +
+void *GetVirtualMemoryBlob(const MemoryInfo *memory_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory_info
+
The MemoryInfo structure.
+
+

RelinquishAlignedMemory

+ +

RelinquishAlignedMemory() frees memory acquired with AcquireAlignedMemory() or reuse.

+ +

The format of the RelinquishAlignedMemory method is:

+ +
+void *RelinquishAlignedMemory(void *memory)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
A pointer to a block of memory to free for reuse.
+ +
+
+

RelinquishMagickMemory

+ +

RelinquishMagickMemory() frees memory acquired with AcquireMagickMemory() or AcquireQuantumMemory() for reuse.

+ +

The format of the RelinquishMagickMemory method is:

+ +
+void *RelinquishMagickMemory(void *memory)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
A pointer to a block of memory to free for reuse.
+ +
+
+

RelinquishVirtualMemory

+ +

RelinquishVirtualMemory() frees memory acquired with AcquireVirtualMemory().

+ +

The format of the RelinquishVirtualMemory method is:

+ +
+MemoryInfo *RelinquishVirtualMemory(MemoryInfo *memory_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory_info
+
A pointer to a block of memory to free for reuse.
+ +
+
+

ResetMagickMemory

+ +

ResetMagickMemory() fills the first size bytes of the memory area pointed to by memory with the constant byte c.

+ +

The format of the ResetMagickMemory method is:

+ +
+void *ResetMagickMemory(void *memory,int byte,const size_t size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
a pointer to a memory allocation.
+ +
+
byte
+
set the memory to this value.
+ +
+
size
+
size of the memory to reset.
+ +
+
+

ResizeMagickMemory

+ +

ResizeMagickMemory() changes the size of the memory and returns a pointer to the (possibly moved) block. The contents will be unchanged up to the lesser of the new and old sizes.

+ +

The format of the ResizeMagickMemory method is:

+ +
+void *ResizeMagickMemory(void *memory,const size_t size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
A pointer to a memory allocation.
+ +
+
size
+
the new size of the allocated memory.
+ +
+
+

ResizeQuantumMemory

+ +

ResizeQuantumMemory() changes the size of the memory and returns a pointer to the (possibly moved) block. The contents will be unchanged up to the lesser of the new and old sizes.

+ +

The format of the ResizeQuantumMemory method is:

+ +
+void *ResizeQuantumMemory(void *memory,const size_t count,
+  const size_t quantum)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
memory
+
A pointer to a memory allocation.
+ +
+
count
+
the number of quantum elements to allocate.
+ +
+
quantum
+
the number of bytes in each quantum.
+ +
+
+

SetMagickMemoryMethods

+ +

SetMagickMemoryMethods() sets the methods to acquire, resize, and destroy memory. Your custom memory methods must be set prior to the MagickCoreGenesis() method.

+ +

The format of the SetMagickMemoryMethods() method is:

+ +
+SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler,
+  ResizeMemoryHandler resize_memory_handler,
+  DestroyMemoryHandler destroy_memory_handler)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
acquire_memory_handler
+
method to acquire memory (e.g. malloc).
+ +
+
resize_memory_handler
+
method to resize memory (e.g. realloc).
+ +
+
destroy_memory_handler
+
method to destroy memory (e.g. free).
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/mime.html b/share/doc/ImageMagick-7/www/api/mime.html new file mode 100644 index 0000000..7b6f74c --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/mime.html @@ -0,0 +1,260 @@ + + + + + + + + + + MagickCore, C API: Mime Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireMimeCacheGetMimeInfoListGetMimeListGetMimeDescriptionGetMimeTypeListMimeInfo

+ +

AcquireMimeCache

+ +

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

+ +

The format of the AcquireMimeCache method is:

+ +
+LinkedListInfo *AcquireMimeCache(const char *filename,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
filename
+
the font file name.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetMimeInfoList

+ +

GetMimeInfoList() returns any image aliases that match the specified pattern.

+ +

The magic of the GetMimeInfoList function is:

+ +
+const MimeInfo **GetMimeInfoList(const char *pattern,
+  size_t *number_aliases,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_aliases
+
This integer returns the number of magics in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetMimeList

+ +

GetMimeList() returns any image format alias that matches the specified pattern.

+ +

The format of the GetMimeList function is:

+ +
+char **GetMimeList(const char *pattern,size_t *number_aliases,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_aliases
+
This integer returns the number of image format aliases in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetMimeDescription

+ +

GetMimeDescription() returns the mime type description.

+ +

The format of the GetMimeDescription method is:

+ +
+const char *GetMimeDescription(const MimeInfo *mime_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
mime_info
+
The magic info.
+ +
+
+

GetMimeType

+ +

GetMimeType() returns the mime type.

+ +

The format of the GetMimeType method is:

+ +
+const char *GetMimeType(const MimeInfo *mime_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
mime_info
+
The magic info.
+ +
+
+

ListMimeInfo

+ +

ListMimeInfo() lists the magic info to a file.

+ +

The format of the ListMimeInfo method is:

+ +
+MagickBooleanType ListMimeInfo(FILE *file,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
file
+

An pointer to a FILE.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/mime.php b/share/doc/ImageMagick-7/www/api/mime.php new file mode 100644 index 0000000..27d343d --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/mime.php @@ -0,0 +1,226 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Mime Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AcquireMimeCacheGetMimeInfoListGetMimeListGetMimeDescriptionGetMimeTypeListMimeInfo

+ +

AcquireMimeCache

+ +

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

+ +

The format of the AcquireMimeCache method is:

+ +
+LinkedListInfo *AcquireMimeCache(const char *filename,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
filename
+
the font file name.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetMimeInfoList

+ +

GetMimeInfoList() returns any image aliases that match the specified pattern.

+ +

The magic of the GetMimeInfoList function is:

+ +
+const MimeInfo **GetMimeInfoList(const char *pattern,
+  size_t *number_aliases,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_aliases
+
This integer returns the number of magics in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetMimeList

+ +

GetMimeList() returns any image format alias that matches the specified pattern.

+ +

The format of the GetMimeList function is:

+ +
+char **GetMimeList(const char *pattern,size_t *number_aliases,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_aliases
+
This integer returns the number of image format aliases in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetMimeDescription

+ +

GetMimeDescription() returns the mime type description.

+ +

The format of the GetMimeDescription method is:

+ +
+const char *GetMimeDescription(const MimeInfo *mime_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
mime_info
+
The magic info.
+ +
+
+

GetMimeType

+ +

GetMimeType() returns the mime type.

+ +

The format of the GetMimeType method is:

+ +
+const char *GetMimeType(const MimeInfo *mime_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
mime_info
+
The magic info.
+ +
+
+

ListMimeInfo

+ +

ListMimeInfo() lists the magic info to a file.

+ +

The format of the ListMimeInfo method is:

+ +
+MagickBooleanType ListMimeInfo(FILE *file,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
file
+

An pointer to a FILE.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/module.html b/share/doc/ImageMagick-7/www/api/module.html new file mode 100644 index 0000000..a9edc08 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/module.html @@ -0,0 +1,527 @@ + + + + + + + + + + MagickCore, C API: Loadable Modules @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

AcquireModuleInfoDestroyModuleListGetModuleInfoGetModuleInfoListGetModuleListGetMagickModulePathIsModuleTreeInstantiatedInvokeDynamicImageFilterListModuleInfoOpenModuleOpenModulesRegisterModuleTagToCoderModuleNameTagToFilterModuleNameTagToModuleNameUnregisterModule

+ +

AcquireModuleInfo

+ +

AcquireModuleInfo() allocates the ModuleInfo structure.

+ +

The format of the AcquireModuleInfo method is:

+ +
+ModuleInfo *AcquireModuleInfo(const char *path,const char *tag)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
path
+
the path associated with the tag.
+ +
+
tag
+
a character string that represents the image format we are looking for.
+ +
+
+

DestroyModuleList

+ +

DestroyModuleList() unregisters any previously loaded modules and exits the module loaded environment.

+ +

The format of the DestroyModuleList module is:

+ +
+void DestroyModuleList(void)
+
+ +

GetModuleInfo

+ +

GetModuleInfo() returns a pointer to a ModuleInfo structure that matches the specified tag. If tag is NULL, the head of the module list is returned. If no modules are loaded, or the requested module is not found, NULL is returned.

+ +

The format of the GetModuleInfo module is:

+ +
+ModuleInfo *GetModuleInfo(const char *tag,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
tag
+
a character string that represents the image format we are looking for.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetModuleInfoList

+ +

GetModuleInfoList() returns any modules that match the specified pattern.

+ +

The format of the GetModuleInfoList function is:

+ +
+const ModuleInfo **GetModuleInfoList(const char *pattern,
+  size_t *number_modules,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
number_modules
+
This integer returns the number of modules in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetModuleList

+ +

GetModuleList() returns any image format modules that match the specified pattern.

+ +

The format of the GetModuleList function is:

+ +
+char **GetModuleList(const char *pattern,const MagickModuleType type,
+  size_t *number_modules,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
pattern
+
Specifies a pointer to a text string containing a pattern.
+ +
+
type
+
choose from MagickImageCoderModule or MagickImageFilterModule.
+ +
+
number_modules
+
This integer returns the number of modules in the list.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetMagickModulePath

+ +

GetMagickModulePath() finds a module with the specified module type and filename.

+ +

The format of the GetMagickModulePath module is:

+ +
+MagickBooleanType GetMagickModulePath(const char *filename,
+  MagickModuleType module_type,char *path,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
filename
+
the module file name.
+ +
+
module_type
+
the module type: MagickImageCoderModule or MagickImageFilterModule.
+ +
+
path
+
the path associated with the filename.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

IsModuleTreeInstantiated

+ +

IsModuleTreeInstantiated() determines if the module tree is instantiated. If not, it instantiates the tree and returns it.

+ +

The format of the IsModuleTreeInstantiated() method is:

+ +
+IsModuleTreeInstantiated()
+
+ +

InvokeDynamicImageFilter

+ +

InvokeDynamicImageFilter() invokes a dynamic image filter.

+ +

The format of the InvokeDynamicImageFilter module is:

+ +
+MagickBooleanType InvokeDynamicImageFilter(const char *tag,Image **image,
+  const int argc,const char **argv,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
tag
+
a character string that represents the name of the particular module.
+ +
+
image
+
the image.
+ +
+
argc
+
a pointer to an integer describing the number of elements in the argument vector.
+ +
+
argv
+
a pointer to a text array containing the command line arguments.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ListModuleInfo

+ +

ListModuleInfo() lists the module info to a file.

+ +

The format of the ListModuleInfo module is:

+ +
+MagickBooleanType ListModuleInfo(FILE *file,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
file
+

An pointer to a FILE.

+ +
exception
+

return any errors or warnings in this structure.

+ +

OpenModule

+ +

OpenModule() loads a module, and invokes its registration module. It returns MagickTrue on success, and MagickFalse if there is an error.

+ +

The format of the OpenModule module is:

+ +
+MagickBooleanType OpenModule(const char *module,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
module
+
a character string that indicates the module to load.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

OpenModules

+ +

OpenModules() loads all available modules.

+ +

The format of the OpenModules module is:

+ +
+MagickBooleanType OpenModules(ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RegisterModule

+ +

RegisterModule() adds an entry to the module list. It returns a pointer to the registered entry on success.

+ +

The format of the RegisterModule module is:

+ +
+ModuleInfo *RegisterModule(const ModuleInfo *module_info,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
info
+
a pointer to the registered entry is returned.
+ +
+
module_info
+
a pointer to the ModuleInfo structure to register.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TagToCoderModuleName

+ +

TagToCoderModuleName() munges a module tag and obtains the filename of the corresponding module.

+ +

The format of the TagToCoderModuleName module is:

+ +
+char *TagToCoderModuleName(const char *tag,char *name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
tag
+
a character string representing the module tag.
+ +
+
name
+
return the module name here.
+ +
+
+

TagToFilterModuleName

+ +

TagToFilterModuleName() munges a module tag and returns the filename of the corresponding filter module.

+ +

The format of the TagToFilterModuleName module is:

+ +
+void TagToFilterModuleName(const char *tag,char name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
tag
+
a character string representing the module tag.
+ +
+
name
+
return the filter name here.
+ +
+
+

TagToModuleName

+ +

TagToModuleName() munges the module tag name and returns an upper-case tag name as the input string, and a user-provided format.

+ +

The format of the TagToModuleName module is:

+ +
+TagToModuleName(const char *tag,const char *format,char *module)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
tag
+
the module tag.
+ +
+
format
+
a sprintf-compatible format string containing s where the upper-case tag name is to be inserted.
+ +
+
module
+
pointer to a destination buffer for the formatted result.
+ +
+
+

UnregisterModule

+ +

UnregisterModule() unloads a module, and invokes its de-registration module. Returns MagickTrue on success, and MagickFalse if there is an error.

+ +

The format of the UnregisterModule module is:

+ +
+MagickBooleanType UnregisterModule(const ModuleInfo *module_info,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
module_info
+
the module info.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/mogrify.html b/share/doc/ImageMagick-7/www/api/mogrify.html new file mode 100644 index 0000000..f0132f9 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/mogrify.html @@ -0,0 +1,155 @@ + + + + + + + + + + MagickWand, C API: Command-line Interface @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

MagickCommandGenesis

+ +

MagickCommandGenesis

+ +

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

+ +

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.

+ +

The format of the MagickCommandGenesis method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
command
+
Choose from ConvertImageCommand, IdentifyImageCommand, MogrifyImageCommand, CompositeImageCommand, CompareImagesCommand, ConjureImageCommand, StreamImageCommand, ImportImageCommand, DisplayImageCommand, or AnimateImageCommand.
+ +
+
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.
+ +
+
metadata
+
any metadata is returned here.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/mogrify.php b/share/doc/ImageMagick-7/www/api/mogrify.php new file mode 100644 index 0000000..4ac00c2 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/mogrify.php @@ -0,0 +1,121 @@ + + + + + + + + + ImageMagick: MagickWand, C API for ImageMagick: Command-line Interface + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

MagickCommandGenesis

+ +

MagickCommandGenesis

+ +

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

+ +

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.

+ +

The format of the MagickCommandGenesis method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
command
+
Choose from ConvertImageCommand, IdentifyImageCommand, MogrifyImageCommand, CompositeImageCommand, CompareImagesCommand, ConjureImageCommand, StreamImageCommand, ImportImageCommand, DisplayImageCommand, or AnimateImageCommand.
+ +
+
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.
+ +
+
metadata
+
any metadata is returned here.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/monitor.html b/share/doc/ImageMagick-7/www/api/monitor.html new file mode 100644 index 0000000..027aa86 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/monitor.html @@ -0,0 +1,187 @@ + + + + + + + + + + MagickCore, C API: Monitor the Progress of an Image Operation @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

SetImageProgressMonitorSetImageInfoProgressMonitor

+ +

SetImageProgressMonitor

+ +

SetImageProgressMonitor() sets the image progress monitor to the specified method and returns the previous progress monitor if any. The progress monitor method looks like this:

+ +
+    MagickBooleanType MagickProgressMonitor(const char *text,
+const MagickOffsetType offset,const MagickSizeType extent,
+void *client_data)
+
+ +

If the progress monitor returns MagickFalse, the current operation is interrupted.

+ +

The format of the SetImageProgressMonitor method is:

+ +
+MagickProgressMonitor SetImageProgressMonitor(Image *image,
+  const MagickProgressMonitor progress_monitor,void *client_data)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
progress_monitor
+
Specifies a pointer to a method to monitor progress of an image operation.
+ +
+
client_data
+
Specifies a pointer to any client data.
+ +
+
+

SetImageInfoProgressMonitor

+ +

SetImageInfoProgressMonitor() sets the image_info progress monitor to the specified method and returns the previous progress monitor if any. The progress monitor method looks like this:

+ +
+    MagickBooleanType MagickProgressMonitor(const char *text,
+const MagickOffsetType offset,const MagickSizeType extent,
+void *client_data)
+
+ +

If the progress monitor returns MagickFalse, the current operation is interrupted.

+ +

The format of the SetImageInfoProgressMonitor method is:

+ +
+MagickProgressMonitor SetImageInfoProgressMonitor(ImageInfo *image_info,
+  const MagickProgressMonitor progress_monitor,void *client_data)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
progress_monitor
+
Specifies a pointer to a method to monitor progress of an image operation.
+ +
+
client_data
+
Specifies a pointer to any client data.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/monitor.php b/share/doc/ImageMagick-7/www/api/monitor.php new file mode 100644 index 0000000..06c52e8 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/monitor.php @@ -0,0 +1,153 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Monitor the Progress of an Image Operation + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

SetImageProgressMonitorSetImageInfoProgressMonitor

+ +

SetImageProgressMonitor

+ +

SetImageProgressMonitor() sets the image progress monitor to the specified method and returns the previous progress monitor if any. The progress monitor method looks like this:

+ +
+    MagickBooleanType MagickProgressMonitor(const char *text,
+const MagickOffsetType offset,const MagickSizeType extent,
+void *client_data)
+
+ +

If the progress monitor returns MagickFalse, the current operation is interrupted.

+ +

The format of the SetImageProgressMonitor method is:

+ +
+MagickProgressMonitor SetImageProgressMonitor(Image *image,
+  const MagickProgressMonitor progress_monitor,void *client_data)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
progress_monitor
+
Specifies a pointer to a method to monitor progress of an image operation.
+ +
+
client_data
+
Specifies a pointer to any client data.
+ +
+
+

SetImageInfoProgressMonitor

+ +

SetImageInfoProgressMonitor() sets the image_info progress monitor to the specified method and returns the previous progress monitor if any. The progress monitor method looks like this:

+ +
+    MagickBooleanType MagickProgressMonitor(const char *text,
+const MagickOffsetType offset,const MagickSizeType extent,
+void *client_data)
+
+ +

If the progress monitor returns MagickFalse, the current operation is interrupted.

+ +

The format of the SetImageInfoProgressMonitor method is:

+ +
+MagickProgressMonitor SetImageInfoProgressMonitor(ImageInfo *image_info,
+  const MagickProgressMonitor progress_monitor,void *client_data)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
progress_monitor
+
Specifies a pointer to a method to monitor progress of an image operation.
+ +
+
client_data
+
Specifies a pointer to any client data.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/montage.html b/share/doc/ImageMagick-7/www/api/montage.html new file mode 100644 index 0000000..500f135 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/montage.html @@ -0,0 +1,109 @@ + + + + + + + + + + MagickCore, C API: Create an Image Thumbnail @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/montage.php b/share/doc/ImageMagick-7/www/api/montage.php new file mode 100644 index 0000000..83eebeb --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/montage.php @@ -0,0 +1,189 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Create an Image Thumbnail + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

CloneMontageInfoDestroyMontageInfoGetMontageInfoMontageImageList

+ +

CloneMontageInfo

+ +

CloneMontageInfo() makes a copy of the given montage info structure. If NULL is specified, a new image info structure is created initialized to default values.

+ +

The format of the CloneMontageInfo method is:

+ +
+MontageInfo *CloneMontageInfo(const ImageInfo *image_info,
+  const MontageInfo *montage_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
montage_info
+
the montage info.
+ +
+
+

DestroyMontageInfo

+ +

DestroyMontageInfo() deallocates memory associated with montage_info.

+ +

The format of the DestroyMontageInfo method is:

+ +
+MontageInfo *DestroyMontageInfo(MontageInfo *montage_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
montage_info
+
Specifies a pointer to an MontageInfo structure.
+ +
+ +
+
+

GetMontageInfo

+ +

GetMontageInfo() initializes montage_info to default values.

+ +

The format of the GetMontageInfo method is:

+ +
+void GetMontageInfo(const ImageInfo *image_info,
+  MontageInfo *montage_info)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
a structure of type ImageInfo.
+ +
+
montage_info
+
Specifies a pointer to a MontageInfo structure.
+ +
+
+

MontageImageList

+ +

MontageImageList() is a layout manager that lets you tile one or more thumbnails across an image canvas.

+ +

The format of the MontageImageList method is:

+ +
+Image *MontageImageList(const ImageInfo *image_info,
+  const MontageInfo *montage_info,Image *images,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
montage_info
+
Specifies a pointer to a MontageInfo structure.
+ +
+
images
+
Specifies a pointer to an array of Image structures.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/morphology.html b/share/doc/ImageMagick-7/www/api/morphology.html new file mode 100644 index 0000000..acbecac --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/morphology.html @@ -0,0 +1,644 @@ + + + + + + + + + + MagickCore, C API: Morphological Erosions, Dilations, Openings, and Closings @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AcquireKernelInfoAcquireKernelBuiltInCloneKernelInfoDestroyKernelInfoMorphologyApplyThis is almost identical to the MorphologyPrimativeMorphologyImageScaleGeometryKernelInfoScaleKernelInfoShowKernelInfoUnityAddKernelInfoZeroKernelNans

+ +

AcquireKernelInfo

+ +

AcquireKernelInfo() takes the given string (generally supplied by the user) and converts it into a Morphology/Convolution Kernel. This allows users to specify a kernel from a number of pre-defined kernels, or to fully specify their own kernel for a specific Convolution or Morphology Operation.

+ +

The kernel so generated can be any rectangular array of floating point values (doubles) with the 'control point' or 'pixel being affected' anywhere within that array of values.

+ +

Previously IM was restricted to a square of odd size using the exact center as origin, this is no longer the case, and any rectangular kernel with any value being declared the origin. This in turn allows the use of highly asymmetrical kernels.

+ +

The floating point values in the kernel can also include a special value known as 'nan' or 'not a number' to indicate that this value is not part of the kernel array. This allows you to shaped the kernel within its rectangular area. That is 'nan' values provide a 'mask' for the kernel shape. However at least one non-nan value must be provided for correct working of a kernel.

+ +

The returned kernel should be freed using the DestroyKernelInfo() when you are finished with it. Do not free this memory yourself.

+ +

Input kernel defintion strings can consist of any of three types.

+ +

"name:args[[@><]" Select from one of the built in kernels, using the name and geometry arguments supplied. See AcquireKernelBuiltIn()

+ +

"WxH[+X+Y][@><]:num, num, num ..." a kernel of size W by H, with W*H floating point numbers following. the 'center' can be optionally be defined at +X+Y (such that +0+0 is top left corner). If not defined the pixel in the center, for odd sizes, or to the immediate top or left of center for even sizes is automatically selected.

+ +

"num, num, num, num, ..." list of floating point numbers defining an 'old style' odd sized square kernel. At least 9 values should be provided for a 3x3 square kernel, 25 for a 5x5 square kernel, 49 for 7x7, etc. Values can be space or comma separated. This is not recommended.

+ +

You can define a 'list of kernels' which can be used by some morphology operators A list is defined as a semi-colon separated list kernels.

+ +

" kernel ; kernel ; kernel ; "

+ +

Any extra ';' characters, at start, end or between kernel defintions are simply ignored.

+ +

The special flags will expand a single kernel, into a list of rotated kernels. A '@' flag will expand a 3x3 kernel into a list of 45-degree cyclic rotations, while a '>' will generate a list of 90-degree rotations. The '<' also exands using 90-degree rotates, but giving a 180-degree reflected kernel before the +/- 90-degree rotations, which can be important for Thinning operations.

+ +

Note that 'name' kernels will start with an alphabetic character while the new kernel specification has a ':' character in its specification string. If neither is the case, it is assumed an old style of a simple list of numbers generating a odd-sized square kernel has been given.

+ +

The format of the AcquireKernal method is:

+ +
+KernelInfo *AcquireKernelInfo(const char *kernel_string)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel_string
+
the Morphology/Convolution kernel wanted.
+ +
+
+

AcquireKernelBuiltIn

+ +

AcquireKernelBuiltIn() returned one of the 'named' built-in types of kernels used for special purposes such as gaussian blurring, skeleton pruning, and edge distance determination.

+ +

They take a KernelType, and a set of geometry style arguments, which were typically decoded from a user supplied string, or from a more complex Morphology Method that was requested.

+ +

The format of the AcquireKernalBuiltIn method is:

+ +
+KernelInfo *AcquireKernelBuiltIn(const KernelInfoType type,
+     const GeometryInfo args)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the pre-defined type of kernel wanted
+ +
+
args
+
arguments defining or modifying the kernel
+ +
Convolution Kernels
+ +
Unity The a No-Op or Scaling single element kernel.
+ +
Gaussian:{radius},{sigma} Generate a two-dimensional gaussian kernel, as used by -gaussian. The sigma for the curve is required. The resulting kernel is normalized,
+ +
If 'sigma' is zero, you get a single pixel on a field of zeros.
+ +
NOTE: that the 'radius' is optional, but if provided can limit (clip) the final size of the resulting kernel to a square 2*radius+1 in size. The radius should be at least 2 times that of the sigma value, or sever clipping and aliasing may result. If not given or set to 0 the radius will be determined so as to produce the best minimal error result, which is usally much larger than is normally needed.
+ +
LoG:{radius},{sigma} "Laplacian of a Gaussian" or "Mexician Hat" Kernel. The supposed ideal edge detection, zero-summing kernel.
+ +
An alturnative to this kernel is to use a "DoG" with a sigma ratio of approx 1.6 (according to wikipedia).
+ +
DoG:{radius},{sigma1},{sigma2} "Difference of Gaussians" Kernel. As "Gaussian" but with a gaussian produced by 'sigma2' subtracted from the gaussian produced by 'sigma1'. Typically sigma2 > sigma1. The result is a zero-summing kernel.
+ +
Blur:{radius},{sigma}[,{angle}] Generates a 1 dimensional or linear gaussian blur, at the angle given (current restricted to orthogonal angles). If a 'radius' is given the kernel is clipped to a width of 2*radius+1. Kernel can be rotated by a 90 degree angle.
+ +
If 'sigma' is zero, you get a single pixel on a field of zeros.
+ +
Note that two convolutions with two "Blur" kernels perpendicular to each other, is equivalent to a far larger "Gaussian" kernel with the same sigma value, However it is much faster to apply. This is how the "-blur" operator actually works.
+ +
Comet:{width},{sigma},{angle} Blur in one direction only, much like how a bright object leaves a comet like trail. The Kernel is actually half a gaussian curve, Adding two such blurs in opposite directions produces a Blur Kernel. Angle can be rotated in multiples of 90 degrees.
+ +
Note that the first argument is the width of the kernel and not the radius of the kernel.
+ +
Binomial:[{radius}] Generate a discrete kernel using a 2 dimentional Pascel's Triangle of values. Used for special forma of image filters.
+ +
# Still to be implemented... # # Filter2D # Filter1D # Set kernel values using a resize filter, and given scale (sigma) # Cylindrical or Linear. Is this possible with an image? #
+ +
Named Constant Convolution Kernels
+ +
All these are unscaled, zero-summing kernels by default. As such for non-HDRI version of ImageMagick some form of normalization, user scaling, and biasing the results is recommended, to prevent the resulting image being 'clipped'.
+ +
The 3x3 kernels (most of these) can be circularly rotated in multiples of 45 degrees to generate the 8 angled varients of each of the kernels.
+ +
Laplacian:{type} Discrete Lapacian Kernels, (without normalization) Type 0 : 3x3 with center:8 surounded by -1 (8 neighbourhood) Type 1 : 3x3 with center:4 edge:-1 corner:0 (4 neighbourhood) Type 2 : 3x3 with center:4 edge:1 corner:-2 Type 3 : 3x3 with center:4 edge:-2 corner:1 Type 5 : 5x5 laplacian Type 7 : 7x7 laplacian Type 15 : 5x5 LoG (sigma approx 1.4) Type 19 : 9x9 LoG (sigma approx 1.4)
+ +
Sobel:{angle} Sobel 'Edge' convolution kernel (3x3) | -1, 0, 1 | | -2, 0,-2 | | -1, 0, 1 |
+ +
Roberts:{angle} Roberts convolution kernel (3x3) | 0, 0, 0 | | -1, 1, 0 | | 0, 0, 0 |
+ +
Prewitt:{angle} Prewitt Edge convolution kernel (3x3) | -1, 0, 1 | | -1, 0, 1 | | -1, 0, 1 |
+ +
Compass:{angle} Prewitt's "Compass" convolution kernel (3x3) | -1, 1, 1 | | -1,-2, 1 | | -1, 1, 1 |
+ +
Kirsch:{angle} Kirsch's "Compass" convolution kernel (3x3) | -3,-3, 5 | | -3, 0, 5 | | -3,-3, 5 |
+ +
FreiChen:{angle} Frei-Chen Edge Detector is based on a kernel that is similar to the Sobel Kernel, but is designed to be isotropic. That is it takes into account the distance of the diagonal in the kernel.
+ +
| 1, 0, -1 | | sqrt(2), 0, -sqrt(2) | | 1, 0, -1 |
+ +
FreiChen:{type},{angle}
+ +
Frei-Chen Pre-weighted kernels...
+ +
Type 0: default un-nomalized version shown above.
+ +
Type 1: Orthogonal Kernel (same as type 11 below) | 1, 0, -1 | | sqrt(2), 0, -sqrt(2) | / 2*sqrt(2) | 1, 0, -1 |
+ +
Type 2: Diagonal form of Kernel... | 1, sqrt(2), 0 | | sqrt(2), 0, -sqrt(2) | / 2*sqrt(2) | 0, -sqrt(2) -1 |
+ +
However this kernel is als at the heart of the FreiChen Edge Detection Process which uses a set of 9 specially weighted kernel. These 9 kernels not be normalized, but directly applied to the image. The results is then added together, to produce the intensity of an edge in a specific direction. The square root of the pixel value can then be taken as the cosine of the edge, and at least 2 such runs at 90 degrees from each other, both the direction and the strength of the edge can be determined.
+ +
Type 10: All 9 of the following pre-weighted kernels...
+ +
Type 11: | 1, 0, -1 | | sqrt(2), 0, -sqrt(2) | / 2*sqrt(2) | 1, 0, -1 |
+ +
Type 12: | 1, sqrt(2), 1 | | 0, 0, 0 | / 2*sqrt(2) | 1, sqrt(2), 1 |
+ +
Type 13: | sqrt(2), -1, 0 | | -1, 0, 1 | / 2*sqrt(2) | 0, 1, -sqrt(2) |
+ +
Type 14: | 0, 1, -sqrt(2) | | -1, 0, 1 | / 2*sqrt(2) | sqrt(2), -1, 0 |
+ +
Type 15: | 0, -1, 0 | | 1, 0, 1 | / 2 | 0, -1, 0 |
+ +
Type 16: | 1, 0, -1 | | 0, 0, 0 | / 2 | -1, 0, 1 |
+ +
Type 17: | 1, -2, 1 | | -2, 4, -2 | / 6 | -1, -2, 1 |
+ +
Type 18: | -2, 1, -2 | | 1, 4, 1 | / 6 | -2, 1, -2 |
+ +
Type 19: | 1, 1, 1 | | 1, 1, 1 | / 3 | 1, 1, 1 |
+ +
The first 4 are for edge detection, the next 4 are for line detection and the last is to add a average component to the results.
+ +
Using a special type of '-1' will return all 9 pre-weighted kernels as a multi-kernel list, so that you can use them directly (without normalization) with the special "-set option:morphology:compose Plus" setting to apply the full FreiChen Edge Detection Technique.
+ +
If 'type' is large it will be taken to be an actual rotation angle for the default FreiChen (type 0) kernel. As such FreiChen:45 will look like a Sobel:45 but with 'sqrt(2)' instead of '2' values.
+ +
WARNING: The above was layed out as per http://www.math.tau.ac.il/~turkel/notes/edge_detectors.pdf But rotated 90 degrees so direction is from left rather than the top. I have yet to find any secondary confirmation of the above. The only other source found was actual source code at http://ltswww.epfl.ch/~courstiv/exos_labos/sol3.pdf Neigher paper defineds the kernels in a way that looks locical or correct when taken as a whole.
+ +
Boolean Kernels
+ +
Diamond:[{radius}[,{scale}]] Generate a diamond shaped kernel with given radius to the points. Kernel size will again be radius*2+1 square and defaults to radius 1, generating a 3x3 kernel that is slightly larger than a square.
+ +
Square:[{radius}[,{scale}]] Generate a square shaped kernel of size radius*2+1, and defaulting to a 3x3 (radius 1).
+ +
Octagon:[{radius}[,{scale}]] Generate octagonal shaped kernel of given radius and constant scale. Default radius is 3 producing a 7x7 kernel. A radius of 1 will result in "Diamond" kernel.
+ +
Disk:[{radius}[,{scale}]] Generate a binary disk, thresholded at the radius given, the radius may be a float-point value. Final Kernel size is floor(radius)*2+1 square. A radius of 5.3 is the default.
+ +
NOTE: That a low radii Disk kernels produce the same results as many of the previously defined kernels, but differ greatly at larger radii. Here is a table of equivalences... "Disk:1" => "Diamond", "Octagon:1", or "Cross:1" "Disk:1.5" => "Square" "Disk:2" => "Diamond:2" "Disk:2.5" => "Octagon" "Disk:2.9" => "Square:2" "Disk:3.5" => "Octagon:3" "Disk:4.5" => "Octagon:4" "Disk:5.4" => "Octagon:5" "Disk:6.4" => "Octagon:6" All other Disk shapes are unique to this kernel, but because a "Disk" is more circular when using a larger radius, using a larger radius is preferred over iterating the morphological operation.
+ +
Rectangle:{geometry} Simply generate a rectangle of 1's with the size given. You can also specify the location of the 'control point', otherwise the closest pixel to the center of the rectangle is selected.
+ +
Properly centered and odd sized rectangles work the best.
+ +
Symbol Dilation Kernels
+ +
These kernel is not a good general morphological kernel, but is used more for highlighting and marking any single pixels in an image using, a "Dilate" method as appropriate.
+ +
For the same reasons iterating these kernels does not produce the same result as using a larger radius for the symbol.
+ +
Plus:[{radius}[,{scale}]] Cross:[{radius}[,{scale}]] Generate a kernel in the shape of a 'plus' or a 'cross' with a each arm the length of the given radius (default 2).
+ +
NOTE: "plus:1" is equivalent to a "Diamond" kernel.
+ +
Ring:{radius1},{radius2}[,{scale}] A ring of the values given that falls between the two radii. Defaults to a ring of approximataly 3 radius in a 7x7 kernel. This is the 'edge' pixels of the default "Disk" kernel, More specifically, "Ring" -> "Ring:2.5,3.5,1.0"
+ +
Hit and Miss Kernels
+ +
Peak:radius1,radius2 Find any peak larger than the pixels the fall between the two radii. The default ring of pixels is as per "Ring". Edges Find flat orthogonal edges of a binary shape Corners Find 90 degree corners of a binary shape Diagonals:type A special kernel to thin the 'outside' of diagonals LineEnds:type Find end points of lines (for pruning a skeletion) Two types of lines ends (default to both) can be searched for Type 0: All line ends Type 1: single kernel for 4-conneected line ends Type 2: single kernel for simple line ends LineJunctions Find three line junctions (within a skeletion) Type 0: all line junctions Type 1: Y Junction kernel Type 2: Diagonal T Junction kernel Type 3: Orthogonal T Junction kernel Type 4: Diagonal X Junction kernel Type 5: Orthogonal + Junction kernel Ridges:type Find single pixel ridges or thin lines Type 1: Fine single pixel thick lines and ridges Type 2: Find two pixel thick lines and ridges ConvexHull Octagonal Thickening Kernel, to generate convex hulls of 45 degrees Skeleton:type Traditional skeleton generating kernels. Type 1: Tradional Skeleton kernel (4 connected skeleton) Type 2: HIPR2 Skeleton kernel (8 connected skeleton) Type 3: Thinning skeleton based on a ressearch paper by Dan S. Bloomberg (Default Type) ThinSE:type A huge variety of Thinning Kernels designed to preserve conectivity. many other kernel sets use these kernels as source definitions. Type numbers are 41-49, 81-89, 481, and 482 which are based on the super and sub notations used in the source research paper.
+ +
Distance Measuring Kernels
+ +
Different types of distance measuring methods, which are used with the a 'Distance' morphology method for generating a gradient based on distance from an edge of a binary shape, though there is a technique for handling a anti-aliased shape.
+ +
See the 'Distance' Morphological Method, for information of how it is applied.
+ +
Chebyshev:[{radius}][x{scale}[!]] Chebyshev Distance (also known as Tchebychev or Chessboard distance) is a value of one to any neighbour, orthogonal or diagonal. One why of thinking of it is the number of squares a 'King' or 'Queen' in chess needs to traverse reach any other position on a chess board. It results in a 'square' like distance function, but one where diagonals are given a value that is closer than expected.
+ +
Manhattan:[{radius}][x{scale}[!]] Manhattan Distance (also known as Rectilinear, City Block, or the Taxi Cab distance metric), it is the distance needed when you can only travel in horizontal or vertical directions only. It is the distance a 'Rook' in chess would have to travel, and results in a diamond like distances, where diagonals are further than expected.
+ +
Octagonal:[{radius}][x{scale}[!]] An interleving of Manhatten and Chebyshev metrics producing an increasing octagonally shaped distance. Distances matches those of the "Octagon" shaped kernel of the same radius. The minimum radius and default is 2, producing a 5x5 kernel.
+ +
Euclidean:[{radius}][x{scale}[!]] Euclidean distance is the 'direct' or 'as the crow flys' distance. However by default the kernel size only has a radius of 1, which limits the distance to 'Knight' like moves, with only orthogonal and diagonal measurements being correct. As such for the default kernel you will get octagonal like distance function.
+ +
However using a larger radius such as "Euclidean:4" you will get a much smoother distance gradient from the edge of the shape. Especially if the image is pre-processed to include any anti-aliasing pixels. Of course a larger kernel is slower to use, and not always needed.
+ +
The first three Distance Measuring Kernels will only generate distances of exact multiples of {scale} in binary images. As such you can use a scale of 1 without loosing any information. However you also need some scaling when handling non-binary anti-aliased shapes.
+ +
The "Euclidean" Distance Kernel however does generate a non-integer fractional results, and as such scaling is vital even for binary shapes.
+ +
+
+

CloneKernelInfo

+ +

CloneKernelInfo() creates a new clone of the given Kernel List so that its can be modified without effecting the original. The cloned kernel should be destroyed using DestoryKernelInfo() when no longer needed.

+ +

The format of the CloneKernelInfo method is:

+ +
+KernelInfo *CloneKernelInfo(const KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel to be cloned
+ +
+
+

DestroyKernelInfo

+ +

DestroyKernelInfo() frees the memory used by a Convolution/Morphology kernel.

+ +

The format of the DestroyKernelInfo method is:

+ +
+KernelInfo *DestroyKernelInfo(KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel to be destroyed
+ +
+
+

MorphologyApply

+ +

MorphologyApply() applies a morphological method, multiple times using a list of multiple kernels. This is the method that should be called by other 'operators' that internally use morphology operations as part of their processing.

+ +

It is basically equivalent to as MorphologyImage() (see below) but without any user controls. This allows internel programs to use this method to perform a specific task without possible interference by any API user supplied settings.

+ +

It is MorphologyImage() task to extract any such user controls, and pass them to this function for processing.

+ +

More specifically all given kernels should already be scaled, normalised, and blended appropriatally before being parred to this routine. The appropriate bias, and compose (typically 'UndefinedComposeOp') given.

+ +

The format of the MorphologyApply method is:

+ +
+Image *MorphologyApply(const Image *image,MorphologyMethod method,
+  const ssize_t iterations,const KernelInfo *kernel,
+  const CompositeMethod compose,const double bias,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the source image
+ +
+
method
+
the morphology method to be applied.
+ +
+
iterations
+
apply the operation this many times (or no change). A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.
+ +
+
channel
+
the channel type.
+ +
+
kernel
+
An array of double representing the morphology kernel.
+ +
+
compose
+
How to handle or merge multi-kernel results. If 'UndefinedCompositeOp' use default for the Morphology method. If 'NoCompositeOp' force image to be re-iterated by each kernel. Otherwise merge the results using the compose method given.
+ +
+
bias
+
Convolution Output Bias.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

This is almost identical to the MorphologyPrimative

+ +

This is almost identical to the MorphologyPrimative() function above, but applies the primitive directly to the actual image using two passes, once in each direction, with the results of the previous (and current) row being re-used.

+ +

That is after each row is 'Sync'ed' into the image, the next row makes use of those values as part of the calculation of the next row. It repeats, but going in the oppisite (bottom-up) direction.

+ +

Because of this 're-use of results' this function can not make use of multi- threaded, parellel processing.

+

MorphologyImage

+ +

MorphologyImage() applies a user supplied kernel to the image according to the given mophology method.

+ +

This function applies any and all user defined settings before calling the above internal function MorphologyApply().

+ +

User defined settings include... * Output Bias for Convolution and correlation ("-define convolve:bias=??") * Kernel Scale/normalize settings ("-define convolve:scale=??") This can also includes the addition of a scaled unity kernel. * Show Kernel being applied ("-define morphology:showkernel=1")

+ +

Other operators that do not want user supplied options interfering, especially "convolve:bias" and "morphology:showkernel" should use MorphologyApply() directly.

+ +

The format of the MorphologyImage method is:

+ +
+Image *MorphologyImage(const Image *image,MorphologyMethod method,
+  const ssize_t iterations,KernelInfo *kernel,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
method
+
the morphology method to be applied.
+ +
+
iterations
+
apply the operation this many times (or no change). A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.
+ +
+
kernel
+
An array of double representing the morphology kernel. Warning: kernel may be normalized for the Convolve method.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ScaleGeometryKernelInfo

+ +

ScaleGeometryKernelInfo() takes a geometry argument string, typically provided as a "-set option:convolve:scale {geometry}" user setting, and modifies the kernel according to the parsed arguments of that setting.

+ +

The first argument (and any normalization flags) are passed to ScaleKernelInfo() to scale/normalize the kernel. The second argument is then passed to UnityAddKernelInfo() to add a scled unity kernel into the scaled/normalized kernel.

+ +

The format of the ScaleGeometryKernelInfo method is:

+ +
+void ScaleGeometryKernelInfo(KernelInfo *kernel,
+  const double scaling_factor,const MagickStatusType normalize_flags)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel to modify
+ +
o geometry:
+ +
+       "-set option:convolve:scale {geometry}" setting.
+
+ +

+

+

ScaleKernelInfo

+ +

ScaleKernelInfo() scales the given kernel list by the given amount, with or without normalization of the sum of the kernel values (as per given flags).

+ +

By default (no flags given) the values within the kernel is scaled directly using given scaling factor without change.

+ +

If either of the two 'normalize_flags' are given the kernel will first be normalized and then further scaled by the scaling factor value given.

+ +

Kernel normalization ('normalize_flags' given) is designed to ensure that any use of the kernel scaling factor with 'Convolve' or 'Correlate' morphology methods will fall into -1.0 to +1.0 range. Note that for non-HDRI versions of IM this may cause images to have any negative results clipped, unless some 'bias' is used.

+ +

More specifically. Kernels which only contain positive values (such as a 'Gaussian' kernel) will be scaled so that those values sum to +1.0, ensuring a 0.0 to +1.0 output range for non-HDRI images.

+ +

For Kernels that contain some negative values, (such as 'Sharpen' kernels) the kernel will be scaled by the absolute of the sum of kernel values, so that it will generally fall within the +/- 1.0 range.

+ +

For kernels whose values sum to zero, (such as 'Laplician' kernels) kernel will be scaled by just the sum of the postive values, so that its output range will again fall into the +/- 1.0 range.

+ +

For special kernels designed for locating shapes using 'Correlate', (often only containing +1 and -1 values, representing foreground/brackground matching) a special normalization method is provided to scale the positive values separately to those of the negative values, so the kernel will be forced to become a zero-sum kernel better suited to such searches.

+ +

WARNING: Correct normalization of the kernel assumes that the '*_range' attributes within the kernel structure have been correctly set during the kernels creation.

+ +

NOTE: The values used for 'normalize_flags' have been selected specifically to match the use of geometry options, so that '!' means NormalizeValue, '^' means CorrelateNormalizeValue. All other GeometryFlags values are ignored.

+ +

The format of the ScaleKernelInfo method is:

+ +
+void ScaleKernelInfo(KernelInfo *kernel, const double scaling_factor,
+         const MagickStatusType normalize_flags )
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel
+ +
o scaling_factor:
+ +
+       zero.  If the kernel is normalized regardless of any flags.
+
+ +

o normalize_flags: + +

+       specifically: NormalizeValue, CorrelateNormalizeValue,
+                     and/or PercentValue
+
+ +

+

+

ShowKernelInfo

+ +

ShowKernelInfo() outputs the details of the given kernel defination to standard error, generally due to a users 'morphology:showkernel' option request.

+ +

The format of the ShowKernel method is:

+ +
+void ShowKernelInfo(const KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel
+ +
+
+

UnityAddKernelInfo

+ +

UnityAddKernelInfo() Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. This value is usually provided by the user as a percentage value in the 'convolve:scale' setting.

+ +

The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels.

+ +

The format of the UnityAdditionKernelInfo method is:

+ +
+void UnityAdditionKernelInfo(KernelInfo *kernel, const double scale )
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel
+ +
o scale:
+ +
+       the given kernel.
+
+ +

+

+

ZeroKernelNans

+ +

ZeroKernelNans() replaces any special 'nan' value that may be present in the kernel with a zero value. This is typically done when the kernel will be used in special hardware (GPU) convolution processors, to simply matters.

+ +

The format of the ZeroKernelNans method is:

+ +
+void ZeroKernelNans (KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/morphology.php b/share/doc/ImageMagick-7/www/api/morphology.php new file mode 100644 index 0000000..d48ec81 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/morphology.php @@ -0,0 +1,610 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Morphological Erosions, Dilations, Openings, and Closings + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AcquireKernelInfoAcquireKernelBuiltInCloneKernelInfoDestroyKernelInfoMorphologyApplyThis is almost identical to the MorphologyPrimativeMorphologyImageScaleGeometryKernelInfoScaleKernelInfoShowKernelInfoUnityAddKernelInfoZeroKernelNans

+ +

AcquireKernelInfo

+ +

AcquireKernelInfo() takes the given string (generally supplied by the user) and converts it into a Morphology/Convolution Kernel. This allows users to specify a kernel from a number of pre-defined kernels, or to fully specify their own kernel for a specific Convolution or Morphology Operation.

+ +

The kernel so generated can be any rectangular array of floating point values (doubles) with the 'control point' or 'pixel being affected' anywhere within that array of values.

+ +

Previously IM was restricted to a square of odd size using the exact center as origin, this is no longer the case, and any rectangular kernel with any value being declared the origin. This in turn allows the use of highly asymmetrical kernels.

+ +

The floating point values in the kernel can also include a special value known as 'nan' or 'not a number' to indicate that this value is not part of the kernel array. This allows you to shaped the kernel within its rectangular area. That is 'nan' values provide a 'mask' for the kernel shape. However at least one non-nan value must be provided for correct working of a kernel.

+ +

The returned kernel should be freed using the DestroyKernelInfo() when you are finished with it. Do not free this memory yourself.

+ +

Input kernel defintion strings can consist of any of three types.

+ +

"name:args[[@><]" Select from one of the built in kernels, using the name and geometry arguments supplied. See AcquireKernelBuiltIn()

+ +

"WxH[+X+Y][@><]:num, num, num ..." a kernel of size W by H, with W*H floating point numbers following. the 'center' can be optionally be defined at +X+Y (such that +0+0 is top left corner). If not defined the pixel in the center, for odd sizes, or to the immediate top or left of center for even sizes is automatically selected.

+ +

"num, num, num, num, ..." list of floating point numbers defining an 'old style' odd sized square kernel. At least 9 values should be provided for a 3x3 square kernel, 25 for a 5x5 square kernel, 49 for 7x7, etc. Values can be space or comma separated. This is not recommended.

+ +

You can define a 'list of kernels' which can be used by some morphology operators A list is defined as a semi-colon separated list kernels.

+ +

" kernel ; kernel ; kernel ; "

+ +

Any extra ';' characters, at start, end or between kernel defintions are simply ignored.

+ +

The special flags will expand a single kernel, into a list of rotated kernels. A '@' flag will expand a 3x3 kernel into a list of 45-degree cyclic rotations, while a '>' will generate a list of 90-degree rotations. The '<' also exands using 90-degree rotates, but giving a 180-degree reflected kernel before the +/- 90-degree rotations, which can be important for Thinning operations.

+ +

Note that 'name' kernels will start with an alphabetic character while the new kernel specification has a ':' character in its specification string. If neither is the case, it is assumed an old style of a simple list of numbers generating a odd-sized square kernel has been given.

+ +

The format of the AcquireKernal method is:

+ +
+KernelInfo *AcquireKernelInfo(const char *kernel_string)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel_string
+
the Morphology/Convolution kernel wanted.
+ +
+
+

AcquireKernelBuiltIn

+ +

AcquireKernelBuiltIn() returned one of the 'named' built-in types of kernels used for special purposes such as gaussian blurring, skeleton pruning, and edge distance determination.

+ +

They take a KernelType, and a set of geometry style arguments, which were typically decoded from a user supplied string, or from a more complex Morphology Method that was requested.

+ +

The format of the AcquireKernalBuiltIn method is:

+ +
+KernelInfo *AcquireKernelBuiltIn(const KernelInfoType type,
+     const GeometryInfo args)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the pre-defined type of kernel wanted
+ +
+
args
+
arguments defining or modifying the kernel
+ +
Convolution Kernels
+ +
Unity The a No-Op or Scaling single element kernel.
+ +
Gaussian:{radius},{sigma} Generate a two-dimensional gaussian kernel, as used by -gaussian. The sigma for the curve is required. The resulting kernel is normalized,
+ +
If 'sigma' is zero, you get a single pixel on a field of zeros.
+ +
NOTE: that the 'radius' is optional, but if provided can limit (clip) the final size of the resulting kernel to a square 2*radius+1 in size. The radius should be at least 2 times that of the sigma value, or sever clipping and aliasing may result. If not given or set to 0 the radius will be determined so as to produce the best minimal error result, which is usally much larger than is normally needed.
+ +
LoG:{radius},{sigma} "Laplacian of a Gaussian" or "Mexician Hat" Kernel. The supposed ideal edge detection, zero-summing kernel.
+ +
An alturnative to this kernel is to use a "DoG" with a sigma ratio of approx 1.6 (according to wikipedia).
+ +
DoG:{radius},{sigma1},{sigma2} "Difference of Gaussians" Kernel. As "Gaussian" but with a gaussian produced by 'sigma2' subtracted from the gaussian produced by 'sigma1'. Typically sigma2 > sigma1. The result is a zero-summing kernel.
+ +
Blur:{radius},{sigma}[,{angle}] Generates a 1 dimensional or linear gaussian blur, at the angle given (current restricted to orthogonal angles). If a 'radius' is given the kernel is clipped to a width of 2*radius+1. Kernel can be rotated by a 90 degree angle.
+ +
If 'sigma' is zero, you get a single pixel on a field of zeros.
+ +
Note that two convolutions with two "Blur" kernels perpendicular to each other, is equivalent to a far larger "Gaussian" kernel with the same sigma value, However it is much faster to apply. This is how the "-blur" operator actually works.
+ +
Comet:{width},{sigma},{angle} Blur in one direction only, much like how a bright object leaves a comet like trail. The Kernel is actually half a gaussian curve, Adding two such blurs in opposite directions produces a Blur Kernel. Angle can be rotated in multiples of 90 degrees.
+ +
Note that the first argument is the width of the kernel and not the radius of the kernel.
+ +
Binomial:[{radius}] Generate a discrete kernel using a 2 dimentional Pascel's Triangle of values. Used for special forma of image filters.
+ +
# Still to be implemented... # # Filter2D # Filter1D # Set kernel values using a resize filter, and given scale (sigma) # Cylindrical or Linear. Is this possible with an image? #
+ +
Named Constant Convolution Kernels
+ +
All these are unscaled, zero-summing kernels by default. As such for non-HDRI version of ImageMagick some form of normalization, user scaling, and biasing the results is recommended, to prevent the resulting image being 'clipped'.
+ +
The 3x3 kernels (most of these) can be circularly rotated in multiples of 45 degrees to generate the 8 angled varients of each of the kernels.
+ +
Laplacian:{type} Discrete Lapacian Kernels, (without normalization) Type 0 : 3x3 with center:8 surounded by -1 (8 neighbourhood) Type 1 : 3x3 with center:4 edge:-1 corner:0 (4 neighbourhood) Type 2 : 3x3 with center:4 edge:1 corner:-2 Type 3 : 3x3 with center:4 edge:-2 corner:1 Type 5 : 5x5 laplacian Type 7 : 7x7 laplacian Type 15 : 5x5 LoG (sigma approx 1.4) Type 19 : 9x9 LoG (sigma approx 1.4)
+ +
Sobel:{angle} Sobel 'Edge' convolution kernel (3x3) | -1, 0, 1 | | -2, 0,-2 | | -1, 0, 1 |
+ +
Roberts:{angle} Roberts convolution kernel (3x3) | 0, 0, 0 | | -1, 1, 0 | | 0, 0, 0 |
+ +
Prewitt:{angle} Prewitt Edge convolution kernel (3x3) | -1, 0, 1 | | -1, 0, 1 | | -1, 0, 1 |
+ +
Compass:{angle} Prewitt's "Compass" convolution kernel (3x3) | -1, 1, 1 | | -1,-2, 1 | | -1, 1, 1 |
+ +
Kirsch:{angle} Kirsch's "Compass" convolution kernel (3x3) | -3,-3, 5 | | -3, 0, 5 | | -3,-3, 5 |
+ +
FreiChen:{angle} Frei-Chen Edge Detector is based on a kernel that is similar to the Sobel Kernel, but is designed to be isotropic. That is it takes into account the distance of the diagonal in the kernel.
+ +
| 1, 0, -1 | | sqrt(2), 0, -sqrt(2) | | 1, 0, -1 |
+ +
FreiChen:{type},{angle}
+ +
Frei-Chen Pre-weighted kernels...
+ +
Type 0: default un-nomalized version shown above.
+ +
Type 1: Orthogonal Kernel (same as type 11 below) | 1, 0, -1 | | sqrt(2), 0, -sqrt(2) | / 2*sqrt(2) | 1, 0, -1 |
+ +
Type 2: Diagonal form of Kernel... | 1, sqrt(2), 0 | | sqrt(2), 0, -sqrt(2) | / 2*sqrt(2) | 0, -sqrt(2) -1 |
+ +
However this kernel is als at the heart of the FreiChen Edge Detection Process which uses a set of 9 specially weighted kernel. These 9 kernels not be normalized, but directly applied to the image. The results is then added together, to produce the intensity of an edge in a specific direction. The square root of the pixel value can then be taken as the cosine of the edge, and at least 2 such runs at 90 degrees from each other, both the direction and the strength of the edge can be determined.
+ +
Type 10: All 9 of the following pre-weighted kernels...
+ +
Type 11: | 1, 0, -1 | | sqrt(2), 0, -sqrt(2) | / 2*sqrt(2) | 1, 0, -1 |
+ +
Type 12: | 1, sqrt(2), 1 | | 0, 0, 0 | / 2*sqrt(2) | 1, sqrt(2), 1 |
+ +
Type 13: | sqrt(2), -1, 0 | | -1, 0, 1 | / 2*sqrt(2) | 0, 1, -sqrt(2) |
+ +
Type 14: | 0, 1, -sqrt(2) | | -1, 0, 1 | / 2*sqrt(2) | sqrt(2), -1, 0 |
+ +
Type 15: | 0, -1, 0 | | 1, 0, 1 | / 2 | 0, -1, 0 |
+ +
Type 16: | 1, 0, -1 | | 0, 0, 0 | / 2 | -1, 0, 1 |
+ +
Type 17: | 1, -2, 1 | | -2, 4, -2 | / 6 | -1, -2, 1 |
+ +
Type 18: | -2, 1, -2 | | 1, 4, 1 | / 6 | -2, 1, -2 |
+ +
Type 19: | 1, 1, 1 | | 1, 1, 1 | / 3 | 1, 1, 1 |
+ +
The first 4 are for edge detection, the next 4 are for line detection and the last is to add a average component to the results.
+ +
Using a special type of '-1' will return all 9 pre-weighted kernels as a multi-kernel list, so that you can use them directly (without normalization) with the special "-set option:morphology:compose Plus" setting to apply the full FreiChen Edge Detection Technique.
+ +
If 'type' is large it will be taken to be an actual rotation angle for the default FreiChen (type 0) kernel. As such FreiChen:45 will look like a Sobel:45 but with 'sqrt(2)' instead of '2' values.
+ +
WARNING: The above was layed out as per http://www.math.tau.ac.il/~turkel/notes/edge_detectors.pdf But rotated 90 degrees so direction is from left rather than the top. I have yet to find any secondary confirmation of the above. The only other source found was actual source code at http://ltswww.epfl.ch/~courstiv/exos_labos/sol3.pdf Neigher paper defineds the kernels in a way that looks locical or correct when taken as a whole.
+ +
Boolean Kernels
+ +
Diamond:[{radius}[,{scale}]] Generate a diamond shaped kernel with given radius to the points. Kernel size will again be radius*2+1 square and defaults to radius 1, generating a 3x3 kernel that is slightly larger than a square.
+ +
Square:[{radius}[,{scale}]] Generate a square shaped kernel of size radius*2+1, and defaulting to a 3x3 (radius 1).
+ +
Octagon:[{radius}[,{scale}]] Generate octagonal shaped kernel of given radius and constant scale. Default radius is 3 producing a 7x7 kernel. A radius of 1 will result in "Diamond" kernel.
+ +
Disk:[{radius}[,{scale}]] Generate a binary disk, thresholded at the radius given, the radius may be a float-point value. Final Kernel size is floor(radius)*2+1 square. A radius of 5.3 is the default.
+ +
NOTE: That a low radii Disk kernels produce the same results as many of the previously defined kernels, but differ greatly at larger radii. Here is a table of equivalences... "Disk:1" => "Diamond", "Octagon:1", or "Cross:1" "Disk:1.5" => "Square" "Disk:2" => "Diamond:2" "Disk:2.5" => "Octagon" "Disk:2.9" => "Square:2" "Disk:3.5" => "Octagon:3" "Disk:4.5" => "Octagon:4" "Disk:5.4" => "Octagon:5" "Disk:6.4" => "Octagon:6" All other Disk shapes are unique to this kernel, but because a "Disk" is more circular when using a larger radius, using a larger radius is preferred over iterating the morphological operation.
+ +
Rectangle:{geometry} Simply generate a rectangle of 1's with the size given. You can also specify the location of the 'control point', otherwise the closest pixel to the center of the rectangle is selected.
+ +
Properly centered and odd sized rectangles work the best.
+ +
Symbol Dilation Kernels
+ +
These kernel is not a good general morphological kernel, but is used more for highlighting and marking any single pixels in an image using, a "Dilate" method as appropriate.
+ +
For the same reasons iterating these kernels does not produce the same result as using a larger radius for the symbol.
+ +
Plus:[{radius}[,{scale}]] Cross:[{radius}[,{scale}]] Generate a kernel in the shape of a 'plus' or a 'cross' with a each arm the length of the given radius (default 2).
+ +
NOTE: "plus:1" is equivalent to a "Diamond" kernel.
+ +
Ring:{radius1},{radius2}[,{scale}] A ring of the values given that falls between the two radii. Defaults to a ring of approximataly 3 radius in a 7x7 kernel. This is the 'edge' pixels of the default "Disk" kernel, More specifically, "Ring" -> "Ring:2.5,3.5,1.0"
+ +
Hit and Miss Kernels
+ +
Peak:radius1,radius2 Find any peak larger than the pixels the fall between the two radii. The default ring of pixels is as per "Ring". Edges Find flat orthogonal edges of a binary shape Corners Find 90 degree corners of a binary shape Diagonals:type A special kernel to thin the 'outside' of diagonals LineEnds:type Find end points of lines (for pruning a skeletion) Two types of lines ends (default to both) can be searched for Type 0: All line ends Type 1: single kernel for 4-conneected line ends Type 2: single kernel for simple line ends LineJunctions Find three line junctions (within a skeletion) Type 0: all line junctions Type 1: Y Junction kernel Type 2: Diagonal T Junction kernel Type 3: Orthogonal T Junction kernel Type 4: Diagonal X Junction kernel Type 5: Orthogonal + Junction kernel Ridges:type Find single pixel ridges or thin lines Type 1: Fine single pixel thick lines and ridges Type 2: Find two pixel thick lines and ridges ConvexHull Octagonal Thickening Kernel, to generate convex hulls of 45 degrees Skeleton:type Traditional skeleton generating kernels. Type 1: Tradional Skeleton kernel (4 connected skeleton) Type 2: HIPR2 Skeleton kernel (8 connected skeleton) Type 3: Thinning skeleton based on a ressearch paper by Dan S. Bloomberg (Default Type) ThinSE:type A huge variety of Thinning Kernels designed to preserve conectivity. many other kernel sets use these kernels as source definitions. Type numbers are 41-49, 81-89, 481, and 482 which are based on the super and sub notations used in the source research paper.
+ +
Distance Measuring Kernels
+ +
Different types of distance measuring methods, which are used with the a 'Distance' morphology method for generating a gradient based on distance from an edge of a binary shape, though there is a technique for handling a anti-aliased shape.
+ +
See the 'Distance' Morphological Method, for information of how it is applied.
+ +
Chebyshev:[{radius}][x{scale}[!]] Chebyshev Distance (also known as Tchebychev or Chessboard distance) is a value of one to any neighbour, orthogonal or diagonal. One why of thinking of it is the number of squares a 'King' or 'Queen' in chess needs to traverse reach any other position on a chess board. It results in a 'square' like distance function, but one where diagonals are given a value that is closer than expected.
+ +
Manhattan:[{radius}][x{scale}[!]] Manhattan Distance (also known as Rectilinear, City Block, or the Taxi Cab distance metric), it is the distance needed when you can only travel in horizontal or vertical directions only. It is the distance a 'Rook' in chess would have to travel, and results in a diamond like distances, where diagonals are further than expected.
+ +
Octagonal:[{radius}][x{scale}[!]] An interleving of Manhatten and Chebyshev metrics producing an increasing octagonally shaped distance. Distances matches those of the "Octagon" shaped kernel of the same radius. The minimum radius and default is 2, producing a 5x5 kernel.
+ +
Euclidean:[{radius}][x{scale}[!]] Euclidean distance is the 'direct' or 'as the crow flys' distance. However by default the kernel size only has a radius of 1, which limits the distance to 'Knight' like moves, with only orthogonal and diagonal measurements being correct. As such for the default kernel you will get octagonal like distance function.
+ +
However using a larger radius such as "Euclidean:4" you will get a much smoother distance gradient from the edge of the shape. Especially if the image is pre-processed to include any anti-aliasing pixels. Of course a larger kernel is slower to use, and not always needed.
+ +
The first three Distance Measuring Kernels will only generate distances of exact multiples of {scale} in binary images. As such you can use a scale of 1 without loosing any information. However you also need some scaling when handling non-binary anti-aliased shapes.
+ +
The "Euclidean" Distance Kernel however does generate a non-integer fractional results, and as such scaling is vital even for binary shapes.
+ +
+
+

CloneKernelInfo

+ +

CloneKernelInfo() creates a new clone of the given Kernel List so that its can be modified without effecting the original. The cloned kernel should be destroyed using DestoryKernelInfo() when no longer needed.

+ +

The format of the CloneKernelInfo method is:

+ +
+KernelInfo *CloneKernelInfo(const KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel to be cloned
+ +
+
+

DestroyKernelInfo

+ +

DestroyKernelInfo() frees the memory used by a Convolution/Morphology kernel.

+ +

The format of the DestroyKernelInfo method is:

+ +
+KernelInfo *DestroyKernelInfo(KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel to be destroyed
+ +
+
+

MorphologyApply

+ +

MorphologyApply() applies a morphological method, multiple times using a list of multiple kernels. This is the method that should be called by other 'operators' that internally use morphology operations as part of their processing.

+ +

It is basically equivalent to as MorphologyImage() (see below) but without any user controls. This allows internel programs to use this method to perform a specific task without possible interference by any API user supplied settings.

+ +

It is MorphologyImage() task to extract any such user controls, and pass them to this function for processing.

+ +

More specifically all given kernels should already be scaled, normalised, and blended appropriatally before being parred to this routine. The appropriate bias, and compose (typically 'UndefinedComposeOp') given.

+ +

The format of the MorphologyApply method is:

+ +
+Image *MorphologyApply(const Image *image,MorphologyMethod method,
+  const ssize_t iterations,const KernelInfo *kernel,
+  const CompositeMethod compose,const double bias,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the source image
+ +
+
method
+
the morphology method to be applied.
+ +
+
iterations
+
apply the operation this many times (or no change). A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.
+ +
+
channel
+
the channel type.
+ +
+
kernel
+
An array of double representing the morphology kernel.
+ +
+
compose
+
How to handle or merge multi-kernel results. If 'UndefinedCompositeOp' use default for the Morphology method. If 'NoCompositeOp' force image to be re-iterated by each kernel. Otherwise merge the results using the compose method given.
+ +
+
bias
+
Convolution Output Bias.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

This is almost identical to the MorphologyPrimative

+ +

This is almost identical to the MorphologyPrimative() function above, but applies the primitive directly to the actual image using two passes, once in each direction, with the results of the previous (and current) row being re-used.

+ +

That is after each row is 'Sync'ed' into the image, the next row makes use of those values as part of the calculation of the next row. It repeats, but going in the oppisite (bottom-up) direction.

+ +

Because of this 're-use of results' this function can not make use of multi- threaded, parellel processing.

+

MorphologyImage

+ +

MorphologyImage() applies a user supplied kernel to the image according to the given mophology method.

+ +

This function applies any and all user defined settings before calling the above internal function MorphologyApply().

+ +

User defined settings include... * Output Bias for Convolution and correlation ("-define convolve:bias=??") * Kernel Scale/normalize settings ("-define convolve:scale=??") This can also includes the addition of a scaled unity kernel. * Show Kernel being applied ("-define morphology:showkernel=1")

+ +

Other operators that do not want user supplied options interfering, especially "convolve:bias" and "morphology:showkernel" should use MorphologyApply() directly.

+ +

The format of the MorphologyImage method is:

+ +
+Image *MorphologyImage(const Image *image,MorphologyMethod method,
+  const ssize_t iterations,KernelInfo *kernel,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
method
+
the morphology method to be applied.
+ +
+
iterations
+
apply the operation this many times (or no change). A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.
+ +
+
kernel
+
An array of double representing the morphology kernel. Warning: kernel may be normalized for the Convolve method.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ScaleGeometryKernelInfo

+ +

ScaleGeometryKernelInfo() takes a geometry argument string, typically provided as a "-set option:convolve:scale {geometry}" user setting, and modifies the kernel according to the parsed arguments of that setting.

+ +

The first argument (and any normalization flags) are passed to ScaleKernelInfo() to scale/normalize the kernel. The second argument is then passed to UnityAddKernelInfo() to add a scled unity kernel into the scaled/normalized kernel.

+ +

The format of the ScaleGeometryKernelInfo method is:

+ +
+void ScaleGeometryKernelInfo(KernelInfo *kernel,
+  const double scaling_factor,const MagickStatusType normalize_flags)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel to modify
+ +
o geometry:
+ +
+       "-set option:convolve:scale {geometry}" setting.
+
+ +

+

+

ScaleKernelInfo

+ +

ScaleKernelInfo() scales the given kernel list by the given amount, with or without normalization of the sum of the kernel values (as per given flags).

+ +

By default (no flags given) the values within the kernel is scaled directly using given scaling factor without change.

+ +

If either of the two 'normalize_flags' are given the kernel will first be normalized and then further scaled by the scaling factor value given.

+ +

Kernel normalization ('normalize_flags' given) is designed to ensure that any use of the kernel scaling factor with 'Convolve' or 'Correlate' morphology methods will fall into -1.0 to +1.0 range. Note that for non-HDRI versions of IM this may cause images to have any negative results clipped, unless some 'bias' is used.

+ +

More specifically. Kernels which only contain positive values (such as a 'Gaussian' kernel) will be scaled so that those values sum to +1.0, ensuring a 0.0 to +1.0 output range for non-HDRI images.

+ +

For Kernels that contain some negative values, (such as 'Sharpen' kernels) the kernel will be scaled by the absolute of the sum of kernel values, so that it will generally fall within the +/- 1.0 range.

+ +

For kernels whose values sum to zero, (such as 'Laplician' kernels) kernel will be scaled by just the sum of the postive values, so that its output range will again fall into the +/- 1.0 range.

+ +

For special kernels designed for locating shapes using 'Correlate', (often only containing +1 and -1 values, representing foreground/brackground matching) a special normalization method is provided to scale the positive values separately to those of the negative values, so the kernel will be forced to become a zero-sum kernel better suited to such searches.

+ +

WARNING: Correct normalization of the kernel assumes that the '*_range' attributes within the kernel structure have been correctly set during the kernels creation.

+ +

NOTE: The values used for 'normalize_flags' have been selected specifically to match the use of geometry options, so that '!' means NormalizeValue, '^' means CorrelateNormalizeValue. All other GeometryFlags values are ignored.

+ +

The format of the ScaleKernelInfo method is:

+ +
+void ScaleKernelInfo(KernelInfo *kernel, const double scaling_factor,
+         const MagickStatusType normalize_flags )
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel
+ +
o scaling_factor:
+ +
+       zero.  If the kernel is normalized regardless of any flags.
+
+ +

o normalize_flags: + +

+       specifically: NormalizeValue, CorrelateNormalizeValue,
+                     and/or PercentValue
+
+ +

+

+

ShowKernelInfo

+ +

ShowKernelInfo() outputs the details of the given kernel defination to standard error, generally due to a users 'morphology:showkernel' option request.

+ +

The format of the ShowKernel method is:

+ +
+void ShowKernelInfo(const KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel
+ +
+
+

UnityAddKernelInfo

+ +

UnityAddKernelInfo() Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. This value is usually provided by the user as a percentage value in the 'convolve:scale' setting.

+ +

The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels.

+ +

The format of the UnityAdditionKernelInfo method is:

+ +
+void UnityAdditionKernelInfo(KernelInfo *kernel, const double scale )
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel
+ +
o scale:
+ +
+       the given kernel.
+
+ +

+

+

ZeroKernelNans

+ +

ZeroKernelNans() replaces any special 'nan' value that may be present in the kernel with a zero value. This is typically done when the kernel will be used in special hardware (GPU) convolution processors, to simply matters.

+ +

The format of the ZeroKernelNans method is:

+ +
+void ZeroKernelNans (KernelInfo *kernel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
kernel
+
the Morphology/Convolution kernel
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/paint.html b/share/doc/ImageMagick-7/www/api/paint.html new file mode 100644 index 0000000..7f85e2b --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/paint.html @@ -0,0 +1,321 @@ + + + + + + + + + + MagickCore, C API: Paint on an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

FloodfillPaintImageOilPaintImageOpaquePaintImageTransparentPaintImageTransparentPaintImageChroma

+ +

FloodfillPaintImage

+ +

FloodfillPaintImage() changes the color value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the color value is changed for any neighbor pixel that does not match the bordercolor member of image.

+ +

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

+ +

The format of the FloodfillPaintImage method is:

+ +
+MagickBooleanType FloodfillPaintImage(Image *image,
+  const DrawInfo *draw_info,const PixelInfo target,
+  const ssize_t x_offset,const ssize_t y_offset,
+  const MagickBooleanType invert,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
target
+
the RGB value of the target color.
+ +
+
x_offset,y_offset
+
the starting location of the operation.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

OilPaintImage

+ +

OilPaintImage() applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

+ +

The format of the OilPaintImage method is:

+ +
+Image *OilPaintImage(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 circular neighborhood.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

OpaquePaintImage

+ +

OpaquePaintImage() changes any pixel that matches color with the color defined by fill argument.

+ +

By default color must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. Fuzz defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.

+ +

The format of the OpaquePaintImage method is:

+ +
+MagickBooleanType OpaquePaintImage(Image *image,const PixelInfo *target,
+  const PixelInfo *fill,const MagickBooleanType invert,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
target
+
the RGB value of the target color.
+ +
+
fill
+
the replacement color.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TransparentPaintImage

+ +

TransparentPaintImage() changes the opacity value associated with any pixel that matches color to the value defined by opacity.

+ +

By default color must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. Fuzz defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.

+ +

The format of the TransparentPaintImage method is:

+ +
+MagickBooleanType TransparentPaintImage(Image *image,
+  const PixelInfo *target,const Quantum opacity,
+  const MagickBooleanType invert,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
target
+
the target color.
+ +
+
opacity
+
the replacement opacity value.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TransparentPaintImageChroma

+ +

TransparentPaintImageChroma() changes the opacity value associated with any pixel that matches color to the value defined by opacity.

+ +

As there is one fuzz value for the all the channels, TransparentPaintImage() is not suitable for the operations like chroma, where the tolerance for similarity of two color component (RGB) can be different. Thus we define this method to take two target pixels (one low and one high) and all the pixels of an image which are lying between these two pixels are made transparent.

+ +

The format of the TransparentPaintImageChroma method is:

+ +
+MagickBooleanType TransparentPaintImageChroma(Image *image,
+  const PixelInfo *low,const PixelInfo *high,const Quantum opacity,
+  const MagickBooleanType invert,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
low
+
the low target color.
+ +
+
high
+
the high target color.
+ +
+
opacity
+
the replacement opacity value.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/paint.php b/share/doc/ImageMagick-7/www/api/paint.php new file mode 100644 index 0000000..aa30e39 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/paint.php @@ -0,0 +1,287 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Paint on an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

FloodfillPaintImageOilPaintImageOpaquePaintImageTransparentPaintImageTransparentPaintImageChroma

+ +

FloodfillPaintImage

+ +

FloodfillPaintImage() changes the color value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the color value is changed for any neighbor pixel that does not match the bordercolor member of image.

+ +

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

+ +

The format of the FloodfillPaintImage method is:

+ +
+MagickBooleanType FloodfillPaintImage(Image *image,
+  const DrawInfo *draw_info,const PixelInfo target,
+  const ssize_t x_offset,const ssize_t y_offset,
+  const MagickBooleanType invert,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
draw_info
+
the draw info.
+ +
+
target
+
the RGB value of the target color.
+ +
+
x_offset,y_offset
+
the starting location of the operation.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

OilPaintImage

+ +

OilPaintImage() applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

+ +

The format of the OilPaintImage method is:

+ +
+Image *OilPaintImage(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 circular neighborhood.
+ +
+
sigma
+
the standard deviation of the Gaussian, in pixels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

OpaquePaintImage

+ +

OpaquePaintImage() changes any pixel that matches color with the color defined by fill argument.

+ +

By default color must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. Fuzz defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.

+ +

The format of the OpaquePaintImage method is:

+ +
+MagickBooleanType OpaquePaintImage(Image *image,const PixelInfo *target,
+  const PixelInfo *fill,const MagickBooleanType invert,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
target
+
the RGB value of the target color.
+ +
+
fill
+
the replacement color.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TransparentPaintImage

+ +

TransparentPaintImage() changes the opacity value associated with any pixel that matches color to the value defined by opacity.

+ +

By default color must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. Fuzz defines how much tolerance is acceptable to consider two colors as the same. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.

+ +

The format of the TransparentPaintImage method is:

+ +
+MagickBooleanType TransparentPaintImage(Image *image,
+  const PixelInfo *target,const Quantum opacity,
+  const MagickBooleanType invert,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
target
+
the target color.
+ +
+
opacity
+
the replacement opacity value.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TransparentPaintImageChroma

+ +

TransparentPaintImageChroma() changes the opacity value associated with any pixel that matches color to the value defined by opacity.

+ +

As there is one fuzz value for the all the channels, TransparentPaintImage() is not suitable for the operations like chroma, where the tolerance for similarity of two color component (RGB) can be different. Thus we define this method to take two target pixels (one low and one high) and all the pixels of an image which are lying between these two pixels are made transparent.

+ +

The format of the TransparentPaintImageChroma method is:

+ +
+MagickBooleanType TransparentPaintImageChroma(Image *image,
+  const PixelInfo *low,const PixelInfo *high,const Quantum opacity,
+  const MagickBooleanType invert,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
low
+
the low target color.
+ +
+
high
+
the high target color.
+ +
+
opacity
+
the replacement opacity value.
+ +
+
invert
+
paint any pixel that does not match the target color.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/pixel-iterator.html b/share/doc/ImageMagick-7/www/api/pixel-iterator.html new file mode 100644 index 0000000..16809fe --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/pixel-iterator.html @@ -0,0 +1,532 @@ + + + + + + + + + + MagickWand, C API: Pixel Iterator Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

ClearPixelIteratorClonePixelIteratorDestroyPixelIteratorIsPixelIteratorNewPixelIteratorPixelClearIteratorExceptionNewPixelRegionIteratorPixelGetCurrentIteratorRowPixelGetIteratorExceptionPixelGetIteratorExceptionTypePixelGetIteratorRowPixelGetNextIteratorRowPixelGetPreviousIteratorRowPixelResetIteratorPixelSetFirstIteratorRowPixelSetIteratorRowPixelSetLastIteratorRowPixelSyncIterator

+ +

ClearPixelIterator

+ +

ClearPixelIterator() clear resources associated with a PixelIterator.

+ +

The format of the ClearPixelIterator method is:

+ +
+void ClearPixelIterator(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

ClonePixelIterator

+ +

ClonePixelIterator() makes an exact copy of the specified iterator.

+ +

The format of the ClonePixelIterator method is:

+ +
+PixelIterator *ClonePixelIterator(const PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the magick iterator.
+ +
+
+

DestroyPixelIterator

+ +

DestroyPixelIterator() deallocates resources associated with a PixelIterator.

+ +

The format of the DestroyPixelIterator method is:

+ +
+PixelIterator *DestroyPixelIterator(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

IsPixelIterator

+ +

IsPixelIterator() returns MagickTrue if the iterator is verified as a pixel iterator.

+ +

The format of the IsPixelIterator method is:

+ +
+MagickBooleanType IsPixelIterator(const PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the magick iterator.
+ +
+
+

NewPixelIterator

+ +

NewPixelIterator() returns a new pixel iterator.

+ +

The format of the NewPixelIterator method is:

+ +
+PixelIterator *NewPixelIterator(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

PixelClearIteratorException

+ +

PixelClearIteratorException() clear any exceptions associated with the iterator.

+ +

The format of the PixelClearIteratorException method is:

+ +
+MagickBooleanType PixelClearIteratorException(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

NewPixelRegionIterator

+ +

NewPixelRegionIterator() returns a new pixel iterator.

+ +

The format of the NewPixelRegionIterator method is:

+ +
+PixelIterator *NewPixelRegionIterator(MagickWand *wand,const ssize_t x,
+  const ssize_t y,const size_t width,const size_t height)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a region of pixels.
+ +
+
+

PixelGetCurrentIteratorRow

+ +

PixelGetCurrentIteratorRow() returns the current row as an array of pixel wands from the pixel iterator.

+ +

The format of the PixelGetCurrentIteratorRow method is:

+ +
+PixelWand **PixelGetCurrentIteratorRow(PixelIterator *iterator,
+  size_t *number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
number_wands
+
the number of pixel wands.
+ +
+
+

PixelGetIteratorException

+ +

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

+ +

The format of the PixelGetIteratorException method is:

+ +
+char *PixelGetIteratorException(const PixelIterator *iterator,
+  ExceptionType *severity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
severity
+
the severity of the error is returned here.
+ +
+
+

PixelGetIteratorExceptionType

+ +

PixelGetIteratorExceptionType() the exception type associated with the iterator. If no exception has occurred, UndefinedExceptionType is returned.

+ +

The format of the PixelGetIteratorExceptionType method is:

+ +
+ExceptionType PixelGetIteratorExceptionType(
+  const PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

PixelGetIteratorRow

+ +

PixelGetIteratorRow() returns the current pixel iterator row.

+ +

The format of the PixelGetIteratorRow method is:

+ +
+MagickBooleanType PixelGetIteratorRow(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

PixelGetNextIteratorRow

+ +

PixelGetNextIteratorRow() returns the next row as an array of pixel wands from the pixel iterator.

+ +

The format of the PixelGetNextIteratorRow method is:

+ +
+PixelWand **PixelGetNextIteratorRow(PixelIterator *iterator,
+  size_t *number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
number_wands
+
the number of pixel wands.
+ +
+
+

PixelGetPreviousIteratorRow

+ +

PixelGetPreviousIteratorRow() returns the previous row as an array of pixel wands from the pixel iterator.

+ +

The format of the PixelGetPreviousIteratorRow method is:

+ +
+PixelWand **PixelGetPreviousIteratorRow(PixelIterator *iterator,
+  size_t *number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
number_wands
+
the number of pixel wands.
+ +
+
+

PixelResetIterator

+ +

PixelResetIterator() resets the pixel iterator. Use it in conjunction with PixelGetNextIteratorRow() to iterate over all the pixels in a pixel container.

+ +

The format of the PixelResetIterator method is:

+ +
+void PixelResetIterator(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

PixelSetFirstIteratorRow

+ +

PixelSetFirstIteratorRow() sets the pixel iterator to the first pixel row.

+ +

The format of the PixelSetFirstIteratorRow method is:

+ +
+void PixelSetFirstIteratorRow(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the magick iterator.
+ +
+
+

PixelSetIteratorRow

+ +

PixelSetIteratorRow() set the pixel iterator row.

+ +

The format of the PixelSetIteratorRow method is:

+ +
+MagickBooleanType PixelSetIteratorRow(PixelIterator *iterator,
+  const ssize_t row)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

PixelSetLastIteratorRow

+ +

PixelSetLastIteratorRow() sets the pixel iterator to the last pixel row.

+ +

The format of the PixelSetLastIteratorRow method is:

+ +
+void PixelSetLastIteratorRow(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the magick iterator.
+ +
+
+

PixelSyncIterator

+ +

PixelSyncIterator() syncs the pixel iterator.

+ +

The format of the PixelSyncIterator method is:

+ +
+MagickBooleanType PixelSyncIterator(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/pixel-iterator.php b/share/doc/ImageMagick-7/www/api/pixel-iterator.php new file mode 100644 index 0000000..2ebd898 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/pixel-iterator.php @@ -0,0 +1,498 @@ + + + + + + + + + ImageMagick: MagickWand, C API for ImageMagick: Pixel Iterator Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

ClearPixelIteratorClonePixelIteratorDestroyPixelIteratorIsPixelIteratorNewPixelIteratorPixelClearIteratorExceptionNewPixelRegionIteratorPixelGetCurrentIteratorRowPixelGetIteratorExceptionPixelGetIteratorExceptionTypePixelGetIteratorRowPixelGetNextIteratorRowPixelGetPreviousIteratorRowPixelResetIteratorPixelSetFirstIteratorRowPixelSetIteratorRowPixelSetLastIteratorRowPixelSyncIterator

+ +

ClearPixelIterator

+ +

ClearPixelIterator() clear resources associated with a PixelIterator.

+ +

The format of the ClearPixelIterator method is:

+ +
+void ClearPixelIterator(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

ClonePixelIterator

+ +

ClonePixelIterator() makes an exact copy of the specified iterator.

+ +

The format of the ClonePixelIterator method is:

+ +
+PixelIterator *ClonePixelIterator(const PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the magick iterator.
+ +
+
+

DestroyPixelIterator

+ +

DestroyPixelIterator() deallocates resources associated with a PixelIterator.

+ +

The format of the DestroyPixelIterator method is:

+ +
+PixelIterator *DestroyPixelIterator(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

IsPixelIterator

+ +

IsPixelIterator() returns MagickTrue if the iterator is verified as a pixel iterator.

+ +

The format of the IsPixelIterator method is:

+ +
+MagickBooleanType IsPixelIterator(const PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the magick iterator.
+ +
+
+

NewPixelIterator

+ +

NewPixelIterator() returns a new pixel iterator.

+ +

The format of the NewPixelIterator method is:

+ +
+PixelIterator *NewPixelIterator(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

PixelClearIteratorException

+ +

PixelClearIteratorException() clear any exceptions associated with the iterator.

+ +

The format of the PixelClearIteratorException method is:

+ +
+MagickBooleanType PixelClearIteratorException(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

NewPixelRegionIterator

+ +

NewPixelRegionIterator() returns a new pixel iterator.

+ +

The format of the NewPixelRegionIterator method is:

+ +
+PixelIterator *NewPixelRegionIterator(MagickWand *wand,const ssize_t x,
+  const ssize_t y,const size_t width,const size_t height)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a region of pixels.
+ +
+
+

PixelGetCurrentIteratorRow

+ +

PixelGetCurrentIteratorRow() returns the current row as an array of pixel wands from the pixel iterator.

+ +

The format of the PixelGetCurrentIteratorRow method is:

+ +
+PixelWand **PixelGetCurrentIteratorRow(PixelIterator *iterator,
+  size_t *number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
number_wands
+
the number of pixel wands.
+ +
+
+

PixelGetIteratorException

+ +

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

+ +

The format of the PixelGetIteratorException method is:

+ +
+char *PixelGetIteratorException(const PixelIterator *iterator,
+  ExceptionType *severity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
severity
+
the severity of the error is returned here.
+ +
+
+

PixelGetIteratorExceptionType

+ +

PixelGetIteratorExceptionType() the exception type associated with the iterator. If no exception has occurred, UndefinedExceptionType is returned.

+ +

The format of the PixelGetIteratorExceptionType method is:

+ +
+ExceptionType PixelGetIteratorExceptionType(
+  const PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

PixelGetIteratorRow

+ +

PixelGetIteratorRow() returns the current pixel iterator row.

+ +

The format of the PixelGetIteratorRow method is:

+ +
+MagickBooleanType PixelGetIteratorRow(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

PixelGetNextIteratorRow

+ +

PixelGetNextIteratorRow() returns the next row as an array of pixel wands from the pixel iterator.

+ +

The format of the PixelGetNextIteratorRow method is:

+ +
+PixelWand **PixelGetNextIteratorRow(PixelIterator *iterator,
+  size_t *number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
number_wands
+
the number of pixel wands.
+ +
+
+

PixelGetPreviousIteratorRow

+ +

PixelGetPreviousIteratorRow() returns the previous row as an array of pixel wands from the pixel iterator.

+ +

The format of the PixelGetPreviousIteratorRow method is:

+ +
+PixelWand **PixelGetPreviousIteratorRow(PixelIterator *iterator,
+  size_t *number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
number_wands
+
the number of pixel wands.
+ +
+
+

PixelResetIterator

+ +

PixelResetIterator() resets the pixel iterator. Use it in conjunction with PixelGetNextIteratorRow() to iterate over all the pixels in a pixel container.

+ +

The format of the PixelResetIterator method is:

+ +
+void PixelResetIterator(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

PixelSetFirstIteratorRow

+ +

PixelSetFirstIteratorRow() sets the pixel iterator to the first pixel row.

+ +

The format of the PixelSetFirstIteratorRow method is:

+ +
+void PixelSetFirstIteratorRow(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the magick iterator.
+ +
+
+

PixelSetIteratorRow

+ +

PixelSetIteratorRow() set the pixel iterator row.

+ +

The format of the PixelSetIteratorRow method is:

+ +
+MagickBooleanType PixelSetIteratorRow(PixelIterator *iterator,
+  const ssize_t row)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+

PixelSetLastIteratorRow

+ +

PixelSetLastIteratorRow() sets the pixel iterator to the last pixel row.

+ +

The format of the PixelSetLastIteratorRow method is:

+ +
+void PixelSetLastIteratorRow(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the magick iterator.
+ +
+
+

PixelSyncIterator

+ +

PixelSyncIterator() syncs the pixel iterator.

+ +

The format of the PixelSyncIterator method is:

+ +
+MagickBooleanType PixelSyncIterator(PixelIterator *iterator)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
iterator
+
the pixel iterator.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/pixel-wand.html b/share/doc/ImageMagick-7/www/api/pixel-wand.html new file mode 100644 index 0000000..d2b4e88 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/pixel-wand.html @@ -0,0 +1,1601 @@ + + + + + + + + + + MagickWand, C API: Pixel Wand Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

ClearPixelWandClonePixelWandClonePixelWandsDestroyPixelWandDestroyPixelWandsIsPixelWandSimilarIsPixelWandNewPixelWandNewPixelWandsPixelClearExceptionPixelGetAlphaPixelGetAlphaQuantumPixelGetBlackPixelGetBlackQuantumPixelGetBluePixelGetBlueQuantumPixelGetColorAsStringPixelGetColorAsNormalizedStringPixelGetColorCountPixelGetCyanPixelGetCyanQuantumPixelGetExceptionPixelGetExceptionTypePixelGetFuzzPixelGetGreenPixelGetGreenQuantumPixelGetHSLPixelGetIndexPixelGetMagentaPixelGetMagentaQuantumPixelGetMagickColorPixelGetPixelPixelGetQuantumPacketPixelGetQuantumPixelPixelGetRedPixelGetRedQuantumPixelGetYellowPixelGetYellowQuantumPixelSetAlphaPixelSetAlphaQuantumPixelSetBlackPixelSetBlackQuantumPixelSetBluePixelSetBlueQuantumPixelSetColorPixelSetColorCountPixelSetColorFromWandPixelSetCyanPixelSetCyanQuantumPixelSetFuzzPixelSetGreenPixelSetGreenQuantumPixelSetHSLPixelSetIndexPixelSetMagentaPixelSetMagentaQuantumPixelSetPixelColorPixelSetQuantumPixelPixelSetRedPixelSetRedQuantumPixelSetYellowPixelSetYellowQuantum

+ +

ClearPixelWand

+ +

ClearPixelWand() clears resources associated with the wand.

+ +

The format of the ClearPixelWand method is:

+ +
+void ClearPixelWand(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

ClonePixelWand

+ +

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

+ +

The format of the ClonePixelWand method is:

+ +
+PixelWand *ClonePixelWand(const PixelWand *wand)
+
+ +

A description of each parameter follows:

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

ClonePixelWands

+ +

ClonePixelWands() makes an exact copy of the specified wands.

+ +

The format of the ClonePixelWands method is:

+ +
+PixelWand **ClonePixelWands(const PixelWand **wands,
+  const size_t number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wands
+
the magick wands.
+ +
+
number_wands
+
the number of wands.
+ +
+
+

DestroyPixelWand

+ +

DestroyPixelWand() deallocates resources associated with a PixelWand.

+ +

The format of the DestroyPixelWand method is:

+ +
+PixelWand *DestroyPixelWand(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

DestroyPixelWands

+ +

DestroyPixelWands() deallocates resources associated with an array of pixel wands.

+ +

The format of the DestroyPixelWands method is:

+ +
+PixelWand **DestroyPixelWands(PixelWand **wand,
+  const size_t number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
number_wands
+
the number of wands.
+ +
+
+

IsPixelWandSimilar

+ +

IsPixelWandSimilar() returns MagickTrue if the distance between two colors is less than the specified distance.

+ +

The format of the IsPixelWandSimilar method is:

+ +
+MagickBooleanType IsPixelWandSimilar(PixelWand *p,PixelWand *q,
+  const double fuzz)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
p
+
the pixel wand.
+ +
+
q
+
the pixel wand.
+ +
+
fuzz
+
any two colors that are less than or equal to this distance squared are consider similar.
+ +
+
+

IsPixelWand

+ +

IsPixelWand() returns MagickTrue if the wand is verified as a pixel wand.

+ +

The format of the IsPixelWand method is:

+ +
+MagickBooleanType IsPixelWand(const PixelWand *wand)
+
+ +

A description of each parameter follows:

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

NewPixelWand

+ +

NewPixelWand() returns a new pixel wand.

+ +

The format of the NewPixelWand method is:

+ +
+PixelWand *NewPixelWand(void)
+
+ +

NewPixelWands

+ +

NewPixelWands() returns an array of pixel wands.

+ +

The format of the NewPixelWands method is:

+ +
+PixelWand **NewPixelWands(const size_t number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
number_wands
+
the number of wands.
+ +
+
+

PixelClearException

+ +

PixelClearException() clear any exceptions associated with the iterator.

+ +

The format of the PixelClearException method is:

+ +
+MagickBooleanType PixelClearException(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetAlpha

+ +

PixelGetAlpha() returns the normalized alpha value of the pixel wand.

+ +

The format of the PixelGetAlpha method is:

+ +
+double PixelGetAlpha(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetAlphaQuantum

+ +

PixelGetAlphaQuantum() returns the alpha value of the pixel wand.

+ +

The format of the PixelGetAlphaQuantum method is:

+ +
+Quantum PixelGetAlphaQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetBlack

+ +

PixelGetBlack() returns the normalized black color of the pixel wand.

+ +

The format of the PixelGetBlack method is:

+ +
+double PixelGetBlack(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetBlackQuantum

+ +

PixelGetBlackQuantum() returns the black color of the pixel wand.

+ +

The format of the PixelGetBlackQuantum method is:

+ +
+Quantum PixelGetBlackQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetBlue

+ +

PixelGetBlue() returns the normalized blue color of the pixel wand.

+ +

The format of the PixelGetBlue method is:

+ +
+double PixelGetBlue(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetBlueQuantum

+ +

PixelGetBlueQuantum() returns the blue color of the pixel wand.

+ +

The format of the PixelGetBlueQuantum method is:

+ +
+Quantum PixelGetBlueQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetColorAsString

+ +

PixelGetColorAsString() returnsd the color of the pixel wand as a string.

+ +

The format of the PixelGetColorAsString method is:

+ +
+char *PixelGetColorAsString(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetColorAsNormalizedString

+ +

PixelGetColorAsNormalizedString() returns the normalized color of the pixel wand as a string.

+ +

The format of the PixelGetColorAsNormalizedString method is:

+ +
+char *PixelGetColorAsNormalizedString(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetColorCount

+ +

PixelGetColorCount() returns the color count associated with this color.

+ +

The format of the PixelGetColorCount method is:

+ +
+size_t PixelGetColorCount(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetCyan

+ +

PixelGetCyan() returns the normalized cyan color of the pixel wand.

+ +

The format of the PixelGetCyan method is:

+ +
+double PixelGetCyan(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetCyanQuantum

+ +

PixelGetCyanQuantum() returns the cyan color of the pixel wand.

+ +

The format of the PixelGetCyanQuantum method is:

+ +
+Quantum PixelGetCyanQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetException

+ +

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

+ +

The format of the PixelGetException method is:

+ +
+char *PixelGetException(const PixelWand *wand,ExceptionType *severity)
+
+ +

A description of each parameter follows:

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

PixelGetExceptionType

+ +

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

+ +

The format of the PixelGetExceptionType method is:

+ +
+ExceptionType PixelGetExceptionType(const PixelWand *wand)
+
+ +

A description of each parameter follows:

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

PixelGetFuzz

+ +

PixelGetFuzz() returns the normalized fuzz value of the pixel wand.

+ +

The format of the PixelGetFuzz method is:

+ +
+double PixelGetFuzz(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetGreen

+ +

PixelGetGreen() returns the normalized green color of the pixel wand.

+ +

The format of the PixelGetGreen method is:

+ +
+double PixelGetGreen(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetGreenQuantum

+ +

PixelGetGreenQuantum() returns the green color of the pixel wand.

+ +

The format of the PixelGetGreenQuantum method is:

+ +
+Quantum PixelGetGreenQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetHSL

+ +

PixelGetHSL() returns the normalized HSL color of the pixel wand.

+ +

The format of the PixelGetHSL method is:

+ +
+void PixelGetHSL(const PixelWand *wand,double *hue,double *saturation,
+  double *lightness)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
hue,saturation,lightness
+
Return the pixel hue, saturation, and brightness.
+ +
+
+

PixelGetIndex

+ +

PixelGetIndex() returns the colormap index from the pixel wand.

+ +

The format of the PixelGetIndex method is:

+ +
+Quantum PixelGetIndex(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetMagenta

+ +

PixelGetMagenta() returns the normalized magenta color of the pixel wand.

+ +

The format of the PixelGetMagenta method is:

+ +
+double PixelGetMagenta(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetMagentaQuantum

+ +

PixelGetMagentaQuantum() returns the magenta color of the pixel wand.

+ +

The format of the PixelGetMagentaQuantum method is:

+ +
+Quantum PixelGetMagentaQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetMagickColor

+ +

PixelGetMagickColor() gets the magick color of the pixel wand.

+ +

The format of the PixelGetMagickColor method is:

+ +
+void PixelGetMagickColor(PixelWand *wand,PixelInfo *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
color
+
The pixel wand color is returned here.
+ +
+
+

PixelGetPixel

+ +

PixelGetPixel() returns the pixel wand pixel.

+ +

The format of the PixelGetPixel method is:

+ +
+PixelInfo PixelGetPixel(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetQuantumPacket

+ +

PixelGetQuantumPacket() gets the packet of the pixel wand as a PixelInfo.

+ +

The format of the PixelGetQuantumPacket method is:

+ +
+void PixelGetQuantumPacket(PixelWand *wand,PixelInfo *packet)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
packet
+
The pixel wand packet is returned here.
+ +
+
+

PixelGetQuantumPixel

+ +

PixelGetQuantumPixel() gets the pixel of the pixel wand as a PixelInfo.

+ +

The format of the PixelGetQuantumPixel method is:

+ +
+void PixelGetQuantumPixel(const Image *image,const PixelWand *wand,
+  Quantum *pixel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
pixel
+
The pixel wand pixel is returned here.
+ +
+
+

PixelGetRed

+ +

PixelGetRed() returns the normalized red color of the pixel wand.

+ +

The format of the PixelGetRed method is:

+ +
+double PixelGetRed(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetRedQuantum

+ +

PixelGetRedQuantum() returns the red color of the pixel wand.

+ +

The format of the PixelGetRedQuantum method is:

+ +
+Quantum PixelGetRedQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetYellow

+ +

PixelGetYellow() returns the normalized yellow color of the pixel wand.

+ +

The format of the PixelGetYellow method is:

+ +
+double PixelGetYellow(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetYellowQuantum

+ +

PixelGetYellowQuantum() returns the yellow color of the pixel wand.

+ +

The format of the PixelGetYellowQuantum method is:

+ +
+Quantum PixelGetYellowQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelSetAlpha

+ +

PixelSetAlpha() sets the normalized alpha value of the pixel wand.

+ +

The format of the PixelSetAlpha method is:

+ +
+void PixelSetAlpha(PixelWand *wand,const double alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
alpha
+
the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
+ +
+
+

PixelSetAlphaQuantum

+ +

PixelSetAlphaQuantum() sets the alpha value of the pixel wand.

+ +

The format of the PixelSetAlphaQuantum method is:

+ +
+void PixelSetAlphaQuantum(PixelWand *wand,const Quantum alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
alpha
+
the alpha value.
+ +
+
+

PixelSetBlack

+ +

PixelSetBlack() sets the normalized black color of the pixel wand.

+ +

The format of the PixelSetBlack method is:

+ +
+void PixelSetBlack(PixelWand *wand,const double black)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
black
+
the black color.
+ +
+
+

PixelSetBlackQuantum

+ +

PixelSetBlackQuantum() sets the black color of the pixel wand.

+ +

The format of the PixelSetBlackQuantum method is:

+ +
+void PixelSetBlackQuantum(PixelWand *wand,const Quantum black)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
black
+
the black color.
+ +
+
+

PixelSetBlue

+ +

PixelSetBlue() sets the normalized blue color of the pixel wand.

+ +

The format of the PixelSetBlue method is:

+ +
+void PixelSetBlue(PixelWand *wand,const double blue)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
blue
+
the blue color.
+ +
+
+

PixelSetBlueQuantum

+ +

PixelSetBlueQuantum() sets the blue color of the pixel wand.

+ +

The format of the PixelSetBlueQuantum method is:

+ +
+void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
blue
+
the blue color.
+ +
+
+

PixelSetColor

+ +

PixelSetColor() sets the color of the pixel wand with a string (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

+ +

The format of the PixelSetColor method is:

+ +
+MagickBooleanType PixelSetColor(PixelWand *wand,const char *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
color
+
the pixel wand color.
+ +
+
+

PixelSetColorCount

+ +

PixelSetColorCount() sets the color count of the pixel wand.

+ +

The format of the PixelSetColorCount method is:

+ +
+void PixelSetColorCount(PixelWand *wand,const size_t count)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
count
+
the number of this particular color.
+ +
+
+

PixelSetColorFromWand

+ +

PixelSetColorFromWand() sets the color of the pixel wand.

+ +

The format of the PixelSetColorFromWand method is:

+ +
+void PixelSetColorFromWand(PixelWand *wand,const PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
color
+
set the pixel wand color here.
+ +
+
+

PixelSetCyan

+ +

PixelSetCyan() sets the normalized cyan color of the pixel wand.

+ +

The format of the PixelSetCyan method is:

+ +
+void PixelSetCyan(PixelWand *wand,const double cyan)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
cyan
+
the cyan color.
+ +
+
+

PixelSetCyanQuantum

+ +

PixelSetCyanQuantum() sets the cyan color of the pixel wand.

+ +

The format of the PixelSetCyanQuantum method is:

+ +
+void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
cyan
+
the cyan color.
+ +
+
+

PixelSetFuzz

+ +

PixelSetFuzz() sets the fuzz value of the pixel wand.

+ +

The format of the PixelSetFuzz method is:

+ +
+void PixelSetFuzz(PixelWand *wand,const double fuzz)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
fuzz
+
the fuzz value.
+ +
+
+

PixelSetGreen

+ +

PixelSetGreen() sets the normalized green color of the pixel wand.

+ +

The format of the PixelSetGreen method is:

+ +
+void PixelSetGreen(PixelWand *wand,const double green)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
green
+
the green color.
+ +
+
+

PixelSetGreenQuantum

+ +

PixelSetGreenQuantum() sets the green color of the pixel wand.

+ +

The format of the PixelSetGreenQuantum method is:

+ +
+void PixelSetGreenQuantum(PixelWand *wand,const Quantum green)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
green
+
the green color.
+ +
+
+

PixelSetHSL

+ +

PixelSetHSL() sets the normalized HSL color of the pixel wand.

+ +

The format of the PixelSetHSL method is:

+ +
+void PixelSetHSL(PixelWand *wand,const double hue,
+  const double saturation,const double lightness)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
hue,saturation,lightness
+
Return the pixel hue, saturation, and brightness.
+ +
+
+

PixelSetIndex

+ +

PixelSetIndex() sets the colormap index of the pixel wand.

+ +

The format of the PixelSetIndex method is:

+ +
+void PixelSetIndex(PixelWand *wand,const Quantum index)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
index
+
the colormap index.
+ +
+
+

PixelSetMagenta

+ +

PixelSetMagenta() sets the normalized magenta color of the pixel wand.

+ +

The format of the PixelSetMagenta method is:

+ +
+void PixelSetMagenta(PixelWand *wand,const double magenta)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
magenta
+
the magenta color.
+ +
+
+

PixelSetMagentaQuantum

+ +

PixelSetMagentaQuantum() sets the magenta color of the pixel wand.

+ +

The format of the PixelSetMagentaQuantum method is:

+ +
+void PixelSetMagentaQuantum(PixelWand *wand,
+  const Quantum magenta)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
magenta
+
the green magenta.
+ +
+
+

PixelSetPixelColor

+ +

PixelSetPixelColor() sets the color of the pixel wand.

+ +

The format of the PixelSetPixelColor method is:

+ +
+void PixelSetPixelColor(PixelWand *wand,const PixelInfo *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
color
+
the pixel wand color.
+ +
+
+

PixelSetQuantumPixel

+ +

PixelSetQuantumPixel() sets the pixel of the pixel wand.

+ +

The format of the PixelSetQuantumPixel method is:

+ +
+void PixelSetQuantumPixel(const Image *image,const Quantum *pixel,
+  PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
pixel
+
the pixel wand pixel.
+ +
+
+

PixelSetRed

+ +

PixelSetRed() sets the normalized red color of the pixel wand.

+ +

The format of the PixelSetRed method is:

+ +
+void PixelSetRed(PixelWand *wand,const double red)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
red
+
the red color.
+ +
+
+

PixelSetRedQuantum

+ +

PixelSetRedQuantum() sets the red color of the pixel wand.

+ +

The format of the PixelSetRedQuantum method is:

+ +
+void PixelSetRedQuantum(PixelWand *wand,const Quantum red)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
red
+
the red color.
+ +
+
+

PixelSetYellow

+ +

PixelSetYellow() sets the normalized yellow color of the pixel wand.

+ +

The format of the PixelSetYellow method is:

+ +
+void PixelSetYellow(PixelWand *wand,const double yellow)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
yellow
+
the yellow color.
+ +
+
+

PixelSetYellowQuantum

+ +

PixelSetYellowQuantum() sets the yellow color of the pixel wand.

+ +

The format of the PixelSetYellowQuantum method is:

+ +
+void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
yellow
+
the yellow color.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/pixel-wand.php b/share/doc/ImageMagick-7/www/api/pixel-wand.php new file mode 100644 index 0000000..0f4f9d1 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/pixel-wand.php @@ -0,0 +1,1567 @@ + + + + + + + + + ImageMagick: MagickWand, C API for ImageMagick: Pixel Wand Methods + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

ClearPixelWandClonePixelWandClonePixelWandsDestroyPixelWandDestroyPixelWandsIsPixelWandSimilarIsPixelWandNewPixelWandNewPixelWandsPixelClearExceptionPixelGetAlphaPixelGetAlphaQuantumPixelGetBlackPixelGetBlackQuantumPixelGetBluePixelGetBlueQuantumPixelGetColorAsStringPixelGetColorAsNormalizedStringPixelGetColorCountPixelGetCyanPixelGetCyanQuantumPixelGetExceptionPixelGetExceptionTypePixelGetFuzzPixelGetGreenPixelGetGreenQuantumPixelGetHSLPixelGetIndexPixelGetMagentaPixelGetMagentaQuantumPixelGetMagickColorPixelGetPixelPixelGetQuantumPacketPixelGetQuantumPixelPixelGetRedPixelGetRedQuantumPixelGetYellowPixelGetYellowQuantumPixelSetAlphaPixelSetAlphaQuantumPixelSetBlackPixelSetBlackQuantumPixelSetBluePixelSetBlueQuantumPixelSetColorPixelSetColorCountPixelSetColorFromWandPixelSetCyanPixelSetCyanQuantumPixelSetFuzzPixelSetGreenPixelSetGreenQuantumPixelSetHSLPixelSetIndexPixelSetMagentaPixelSetMagentaQuantumPixelSetPixelColorPixelSetQuantumPixelPixelSetRedPixelSetRedQuantumPixelSetYellowPixelSetYellowQuantum

+ +

ClearPixelWand

+ +

ClearPixelWand() clears resources associated with the wand.

+ +

The format of the ClearPixelWand method is:

+ +
+void ClearPixelWand(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

ClonePixelWand

+ +

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

+ +

The format of the ClonePixelWand method is:

+ +
+PixelWand *ClonePixelWand(const PixelWand *wand)
+
+ +

A description of each parameter follows:

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

ClonePixelWands

+ +

ClonePixelWands() makes an exact copy of the specified wands.

+ +

The format of the ClonePixelWands method is:

+ +
+PixelWand **ClonePixelWands(const PixelWand **wands,
+  const size_t number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wands
+
the magick wands.
+ +
+
number_wands
+
the number of wands.
+ +
+
+

DestroyPixelWand

+ +

DestroyPixelWand() deallocates resources associated with a PixelWand.

+ +

The format of the DestroyPixelWand method is:

+ +
+PixelWand *DestroyPixelWand(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

DestroyPixelWands

+ +

DestroyPixelWands() deallocates resources associated with an array of pixel wands.

+ +

The format of the DestroyPixelWands method is:

+ +
+PixelWand **DestroyPixelWands(PixelWand **wand,
+  const size_t number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
number_wands
+
the number of wands.
+ +
+
+

IsPixelWandSimilar

+ +

IsPixelWandSimilar() returns MagickTrue if the distance between two colors is less than the specified distance.

+ +

The format of the IsPixelWandSimilar method is:

+ +
+MagickBooleanType IsPixelWandSimilar(PixelWand *p,PixelWand *q,
+  const double fuzz)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
p
+
the pixel wand.
+ +
+
q
+
the pixel wand.
+ +
+
fuzz
+
any two colors that are less than or equal to this distance squared are consider similar.
+ +
+
+

IsPixelWand

+ +

IsPixelWand() returns MagickTrue if the wand is verified as a pixel wand.

+ +

The format of the IsPixelWand method is:

+ +
+MagickBooleanType IsPixelWand(const PixelWand *wand)
+
+ +

A description of each parameter follows:

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

NewPixelWand

+ +

NewPixelWand() returns a new pixel wand.

+ +

The format of the NewPixelWand method is:

+ +
+PixelWand *NewPixelWand(void)
+
+ +

NewPixelWands

+ +

NewPixelWands() returns an array of pixel wands.

+ +

The format of the NewPixelWands method is:

+ +
+PixelWand **NewPixelWands(const size_t number_wands)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
number_wands
+
the number of wands.
+ +
+
+

PixelClearException

+ +

PixelClearException() clear any exceptions associated with the iterator.

+ +

The format of the PixelClearException method is:

+ +
+MagickBooleanType PixelClearException(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetAlpha

+ +

PixelGetAlpha() returns the normalized alpha value of the pixel wand.

+ +

The format of the PixelGetAlpha method is:

+ +
+double PixelGetAlpha(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetAlphaQuantum

+ +

PixelGetAlphaQuantum() returns the alpha value of the pixel wand.

+ +

The format of the PixelGetAlphaQuantum method is:

+ +
+Quantum PixelGetAlphaQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetBlack

+ +

PixelGetBlack() returns the normalized black color of the pixel wand.

+ +

The format of the PixelGetBlack method is:

+ +
+double PixelGetBlack(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetBlackQuantum

+ +

PixelGetBlackQuantum() returns the black color of the pixel wand.

+ +

The format of the PixelGetBlackQuantum method is:

+ +
+Quantum PixelGetBlackQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetBlue

+ +

PixelGetBlue() returns the normalized blue color of the pixel wand.

+ +

The format of the PixelGetBlue method is:

+ +
+double PixelGetBlue(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetBlueQuantum

+ +

PixelGetBlueQuantum() returns the blue color of the pixel wand.

+ +

The format of the PixelGetBlueQuantum method is:

+ +
+Quantum PixelGetBlueQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetColorAsString

+ +

PixelGetColorAsString() returnsd the color of the pixel wand as a string.

+ +

The format of the PixelGetColorAsString method is:

+ +
+char *PixelGetColorAsString(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetColorAsNormalizedString

+ +

PixelGetColorAsNormalizedString() returns the normalized color of the pixel wand as a string.

+ +

The format of the PixelGetColorAsNormalizedString method is:

+ +
+char *PixelGetColorAsNormalizedString(PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetColorCount

+ +

PixelGetColorCount() returns the color count associated with this color.

+ +

The format of the PixelGetColorCount method is:

+ +
+size_t PixelGetColorCount(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetCyan

+ +

PixelGetCyan() returns the normalized cyan color of the pixel wand.

+ +

The format of the PixelGetCyan method is:

+ +
+double PixelGetCyan(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetCyanQuantum

+ +

PixelGetCyanQuantum() returns the cyan color of the pixel wand.

+ +

The format of the PixelGetCyanQuantum method is:

+ +
+Quantum PixelGetCyanQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetException

+ +

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

+ +

The format of the PixelGetException method is:

+ +
+char *PixelGetException(const PixelWand *wand,ExceptionType *severity)
+
+ +

A description of each parameter follows:

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

PixelGetExceptionType

+ +

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

+ +

The format of the PixelGetExceptionType method is:

+ +
+ExceptionType PixelGetExceptionType(const PixelWand *wand)
+
+ +

A description of each parameter follows:

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

PixelGetFuzz

+ +

PixelGetFuzz() returns the normalized fuzz value of the pixel wand.

+ +

The format of the PixelGetFuzz method is:

+ +
+double PixelGetFuzz(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetGreen

+ +

PixelGetGreen() returns the normalized green color of the pixel wand.

+ +

The format of the PixelGetGreen method is:

+ +
+double PixelGetGreen(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetGreenQuantum

+ +

PixelGetGreenQuantum() returns the green color of the pixel wand.

+ +

The format of the PixelGetGreenQuantum method is:

+ +
+Quantum PixelGetGreenQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetHSL

+ +

PixelGetHSL() returns the normalized HSL color of the pixel wand.

+ +

The format of the PixelGetHSL method is:

+ +
+void PixelGetHSL(const PixelWand *wand,double *hue,double *saturation,
+  double *lightness)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
hue,saturation,lightness
+
Return the pixel hue, saturation, and brightness.
+ +
+
+

PixelGetIndex

+ +

PixelGetIndex() returns the colormap index from the pixel wand.

+ +

The format of the PixelGetIndex method is:

+ +
+Quantum PixelGetIndex(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetMagenta

+ +

PixelGetMagenta() returns the normalized magenta color of the pixel wand.

+ +

The format of the PixelGetMagenta method is:

+ +
+double PixelGetMagenta(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetMagentaQuantum

+ +

PixelGetMagentaQuantum() returns the magenta color of the pixel wand.

+ +

The format of the PixelGetMagentaQuantum method is:

+ +
+Quantum PixelGetMagentaQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetMagickColor

+ +

PixelGetMagickColor() gets the magick color of the pixel wand.

+ +

The format of the PixelGetMagickColor method is:

+ +
+void PixelGetMagickColor(PixelWand *wand,PixelInfo *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
color
+
The pixel wand color is returned here.
+ +
+
+

PixelGetPixel

+ +

PixelGetPixel() returns the pixel wand pixel.

+ +

The format of the PixelGetPixel method is:

+ +
+PixelInfo PixelGetPixel(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetQuantumPacket

+ +

PixelGetQuantumPacket() gets the packet of the pixel wand as a PixelInfo.

+ +

The format of the PixelGetQuantumPacket method is:

+ +
+void PixelGetQuantumPacket(PixelWand *wand,PixelInfo *packet)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
packet
+
The pixel wand packet is returned here.
+ +
+
+

PixelGetQuantumPixel

+ +

PixelGetQuantumPixel() gets the pixel of the pixel wand as a PixelInfo.

+ +

The format of the PixelGetQuantumPixel method is:

+ +
+void PixelGetQuantumPixel(const Image *image,const PixelWand *wand,
+  Quantum *pixel)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
pixel
+
The pixel wand pixel is returned here.
+ +
+
+

PixelGetRed

+ +

PixelGetRed() returns the normalized red color of the pixel wand.

+ +

The format of the PixelGetRed method is:

+ +
+double PixelGetRed(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetRedQuantum

+ +

PixelGetRedQuantum() returns the red color of the pixel wand.

+ +

The format of the PixelGetRedQuantum method is:

+ +
+Quantum PixelGetRedQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetYellow

+ +

PixelGetYellow() returns the normalized yellow color of the pixel wand.

+ +

The format of the PixelGetYellow method is:

+ +
+double PixelGetYellow(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelGetYellowQuantum

+ +

PixelGetYellowQuantum() returns the yellow color of the pixel wand.

+ +

The format of the PixelGetYellowQuantum method is:

+ +
+Quantum PixelGetYellowQuantum(const PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
+

PixelSetAlpha

+ +

PixelSetAlpha() sets the normalized alpha value of the pixel wand.

+ +

The format of the PixelSetAlpha method is:

+ +
+void PixelSetAlpha(PixelWand *wand,const double alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
alpha
+
the level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
+ +
+
+

PixelSetAlphaQuantum

+ +

PixelSetAlphaQuantum() sets the alpha value of the pixel wand.

+ +

The format of the PixelSetAlphaQuantum method is:

+ +
+void PixelSetAlphaQuantum(PixelWand *wand,const Quantum alpha)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
alpha
+
the alpha value.
+ +
+
+

PixelSetBlack

+ +

PixelSetBlack() sets the normalized black color of the pixel wand.

+ +

The format of the PixelSetBlack method is:

+ +
+void PixelSetBlack(PixelWand *wand,const double black)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
black
+
the black color.
+ +
+
+

PixelSetBlackQuantum

+ +

PixelSetBlackQuantum() sets the black color of the pixel wand.

+ +

The format of the PixelSetBlackQuantum method is:

+ +
+void PixelSetBlackQuantum(PixelWand *wand,const Quantum black)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
black
+
the black color.
+ +
+
+

PixelSetBlue

+ +

PixelSetBlue() sets the normalized blue color of the pixel wand.

+ +

The format of the PixelSetBlue method is:

+ +
+void PixelSetBlue(PixelWand *wand,const double blue)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
blue
+
the blue color.
+ +
+
+

PixelSetBlueQuantum

+ +

PixelSetBlueQuantum() sets the blue color of the pixel wand.

+ +

The format of the PixelSetBlueQuantum method is:

+ +
+void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
blue
+
the blue color.
+ +
+
+

PixelSetColor

+ +

PixelSetColor() sets the color of the pixel wand with a string (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

+ +

The format of the PixelSetColor method is:

+ +
+MagickBooleanType PixelSetColor(PixelWand *wand,const char *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
color
+
the pixel wand color.
+ +
+
+

PixelSetColorCount

+ +

PixelSetColorCount() sets the color count of the pixel wand.

+ +

The format of the PixelSetColorCount method is:

+ +
+void PixelSetColorCount(PixelWand *wand,const size_t count)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
count
+
the number of this particular color.
+ +
+
+

PixelSetColorFromWand

+ +

PixelSetColorFromWand() sets the color of the pixel wand.

+ +

The format of the PixelSetColorFromWand method is:

+ +
+void PixelSetColorFromWand(PixelWand *wand,const PixelWand *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
color
+
set the pixel wand color here.
+ +
+
+

PixelSetCyan

+ +

PixelSetCyan() sets the normalized cyan color of the pixel wand.

+ +

The format of the PixelSetCyan method is:

+ +
+void PixelSetCyan(PixelWand *wand,const double cyan)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
cyan
+
the cyan color.
+ +
+
+

PixelSetCyanQuantum

+ +

PixelSetCyanQuantum() sets the cyan color of the pixel wand.

+ +

The format of the PixelSetCyanQuantum method is:

+ +
+void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
cyan
+
the cyan color.
+ +
+
+

PixelSetFuzz

+ +

PixelSetFuzz() sets the fuzz value of the pixel wand.

+ +

The format of the PixelSetFuzz method is:

+ +
+void PixelSetFuzz(PixelWand *wand,const double fuzz)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
fuzz
+
the fuzz value.
+ +
+
+

PixelSetGreen

+ +

PixelSetGreen() sets the normalized green color of the pixel wand.

+ +

The format of the PixelSetGreen method is:

+ +
+void PixelSetGreen(PixelWand *wand,const double green)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
green
+
the green color.
+ +
+
+

PixelSetGreenQuantum

+ +

PixelSetGreenQuantum() sets the green color of the pixel wand.

+ +

The format of the PixelSetGreenQuantum method is:

+ +
+void PixelSetGreenQuantum(PixelWand *wand,const Quantum green)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
green
+
the green color.
+ +
+
+

PixelSetHSL

+ +

PixelSetHSL() sets the normalized HSL color of the pixel wand.

+ +

The format of the PixelSetHSL method is:

+ +
+void PixelSetHSL(PixelWand *wand,const double hue,
+  const double saturation,const double lightness)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
hue,saturation,lightness
+
Return the pixel hue, saturation, and brightness.
+ +
+
+

PixelSetIndex

+ +

PixelSetIndex() sets the colormap index of the pixel wand.

+ +

The format of the PixelSetIndex method is:

+ +
+void PixelSetIndex(PixelWand *wand,const Quantum index)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
index
+
the colormap index.
+ +
+
+

PixelSetMagenta

+ +

PixelSetMagenta() sets the normalized magenta color of the pixel wand.

+ +

The format of the PixelSetMagenta method is:

+ +
+void PixelSetMagenta(PixelWand *wand,const double magenta)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
magenta
+
the magenta color.
+ +
+
+

PixelSetMagentaQuantum

+ +

PixelSetMagentaQuantum() sets the magenta color of the pixel wand.

+ +

The format of the PixelSetMagentaQuantum method is:

+ +
+void PixelSetMagentaQuantum(PixelWand *wand,
+  const Quantum magenta)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
magenta
+
the green magenta.
+ +
+
+

PixelSetPixelColor

+ +

PixelSetPixelColor() sets the color of the pixel wand.

+ +

The format of the PixelSetPixelColor method is:

+ +
+void PixelSetPixelColor(PixelWand *wand,const PixelInfo *color)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
color
+
the pixel wand color.
+ +
+
+

PixelSetQuantumPixel

+ +

PixelSetQuantumPixel() sets the pixel of the pixel wand.

+ +

The format of the PixelSetQuantumPixel method is:

+ +
+void PixelSetQuantumPixel(const Image *image,const Quantum *pixel,
+  PixelWand *wand)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
pixel
+
the pixel wand pixel.
+ +
+
+

PixelSetRed

+ +

PixelSetRed() sets the normalized red color of the pixel wand.

+ +

The format of the PixelSetRed method is:

+ +
+void PixelSetRed(PixelWand *wand,const double red)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
red
+
the red color.
+ +
+
+

PixelSetRedQuantum

+ +

PixelSetRedQuantum() sets the red color of the pixel wand.

+ +

The format of the PixelSetRedQuantum method is:

+ +
+void PixelSetRedQuantum(PixelWand *wand,const Quantum red)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
red
+
the red color.
+ +
+
+

PixelSetYellow

+ +

PixelSetYellow() sets the normalized yellow color of the pixel wand.

+ +

The format of the PixelSetYellow method is:

+ +
+void PixelSetYellow(PixelWand *wand,const double yellow)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
yellow
+
the yellow color.
+ +
+
+

PixelSetYellowQuantum

+ +

PixelSetYellowQuantum() sets the yellow color of the pixel wand.

+ +

The format of the PixelSetYellowQuantum method is:

+ +
+void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the pixel wand.
+ +
+
yellow
+
the yellow color.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/profile.html b/share/doc/ImageMagick-7/www/api/profile.html new file mode 100644 index 0000000..36f38a7 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/profile.html @@ -0,0 +1,374 @@ + + + + + + + + + + MagickCore, C API: Dealing with Image Profiles @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

CloneImageProfilesDeleteImageProfileDestroyImageProfilesGetImageProfileGetNextImageProfileProfileImageRemoveImageProfileResetImageProfileIteratorSetImageProfileSyncImageProfiles

+ +

CloneImageProfiles

+ +

CloneImageProfiles() clones one or more image profiles.

+ +

The format of the CloneImageProfiles method is:

+ +
+MagickBooleanType CloneImageProfiles(Image *image,
+  const Image *clone_image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
clone_image
+
the clone image.
+ +
+
+

DeleteImageProfile

+ +

DeleteImageProfile() deletes a profile from the image by its name.

+ +

The format of the DeleteImageProfile method is:

+ +
+MagickBooleanTyupe DeleteImageProfile(Image *image,const char *name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
name
+
the profile name.
+ +
+
+

DestroyImageProfiles

+ +

DestroyImageProfiles() releases memory associated with an image profile map.

+ +

The format of the DestroyProfiles method is:

+ +
+void DestroyImageProfiles(Image *image)
+
+ +

A description of each parameter follows:

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

GetImageProfile

+ +

GetImageProfile() gets a profile associated with an image by name.

+ +

The format of the GetImageProfile method is:

+ +
+const StringInfo *GetImageProfile(const Image *image,const char *name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
name
+
the profile name.
+ +
+
+

GetNextImageProfile

+ +

GetNextImageProfile() gets the next profile name for an image.

+ +

The format of the GetNextImageProfile method is:

+ +
+char *GetNextImageProfile(const Image *image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
hash_info
+
the hash info.
+ +
+
+

ProfileImage

+ +

ProfileImage() associates, applies, or removes an ICM, IPTC, or generic profile with / to / from an image. If the profile is NULL, it is removed from the image otherwise added or applied. Use a name of '*' and a profile of NULL to remove all profiles from the image.

+ +

ICC and ICM profiles are handled as follows: If the image does not have an associated color profile, the one you provide is associated with the image and the image pixels are not transformed. Otherwise, the colorspace transform defined by the existing and new profile are applied to the image pixels and the new profile is associated with the image.

+ +

The format of the ProfileImage method is:

+ +
+MagickBooleanType ProfileImage(Image *image,const char *name,
+  const void *datum,const size_t length,const MagickBooleanType clone)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
name
+
Name of profile to add or remove: ICC, IPTC, or generic profile.
+ +
+
datum
+
the profile data.
+ +
+
length
+
the length of the profile.
+ +
+
clone
+
should be MagickFalse.
+ +
+
+

RemoveImageProfile

+ +

RemoveImageProfile() removes a named profile from the image and returns its value.

+ +

The format of the RemoveImageProfile method is:

+ +
+void *RemoveImageProfile(Image *image,const char *name)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
name
+
the profile name.
+ +
+
+

ResetImageProfileIterator

+ +

ResetImageProfileIterator() resets the image profile iterator. Use it in conjunction with GetNextImageProfile() to iterate over all the profiles associated with an image.

+ +

The format of the ResetImageProfileIterator method is:

+ +
+ResetImageProfileIterator(Image *image)
+
+ +

A description of each parameter follows:

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

SetImageProfile

+ +

SetImageProfile() adds a named profile to the image. If a profile with the same name already exists, it is replaced. This method differs from the ProfileImage() method in that it does not apply CMS color profiles.

+ +

The format of the SetImageProfile method is:

+ +
+MagickBooleanType SetImageProfile(Image *image,const char *name,
+  const StringInfo *profile)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
name
+
the profile name, for example icc, exif, and 8bim (8bim is the Photoshop wrapper for iptc profiles).
+ +
+
profile
+
A StringInfo structure that contains the named profile.
+ +
+
+

SyncImageProfiles

+ +

SyncImageProfiles() synchronizes image properties with the image profiles. Currently we only support updating the EXIF resolution and orientation.

+ +

The format of the SyncImageProfiles method is:

+ +
+MagickBooleanType SyncImageProfiles(Image *image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/property.html b/share/doc/ImageMagick-7/www/api/property.html new file mode 100644 index 0000000..ea7dc8f --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/property.html @@ -0,0 +1,426 @@ + + + + + + + + + + MagickCore, C API: Get/Set Image Properties @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

CloneImagePropertiesDefineImagePropertyDeleteImagePropertyDestroyImagePropertiesFormatImagePropertyGetImagePropertyGetNextImagePropertyInterpretImagePropertiesRemoveImagePropertyResetImagePropertyIteratorSetImageProperty

+ +

CloneImageProperties

+ +

CloneImageProperties() clones all the image properties to another image.

+ +

The format of the CloneImageProperties method is:

+ +
+MagickBooleanType CloneImageProperties(Image *image,
+  const Image *clone_image)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
clone_image
+
the clone image.
+ +
+
+

DefineImageProperty

+ +

DefineImageProperty() associates an assignment string of the form "key=value" with an artifact or options. It is equivelent to SetImageProperty().

+ +

The format of the DefineImageProperty method is:

+ +
+MagickBooleanType DefineImageProperty(Image *image,const char *property,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

DeleteImageProperty

+ +

DeleteImageProperty() deletes an image property.

+ +

The format of the DeleteImageProperty method is:

+ +
+MagickBooleanType DeleteImageProperty(Image *image,const char *property)
+
+ +

A description of each parameter follows:

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

DestroyImageProperties

+ +

DestroyImageProperties() destroys all properties and associated memory attached to the given image.

+ +

The format of the DestroyDefines method is:

+ +
+void DestroyImageProperties(Image *image)
+
+ +

A description of each parameter follows:

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

FormatImageProperty

+ +

FormatImageProperty() permits formatted property/value pairs to be saved as an image property.

+ +

The format of the FormatImageProperty method is:

+ +
+MagickBooleanType FormatImageProperty(Image *image,const char *property,
+  const char *format,...)
+
+ +

A description of each parameter follows.

+ +
image
+

The image.

+ +
property
+

The attribute property.

+ +
format
+

A string describing the format to use to write the remaining arguments.

+ +

GetImageProperty

+ +

GetImageProperty() gets a value associated with an image property.

+ +

This includes, profile prefixes, such as "exif:", "iptc:" and "8bim:" It does not handle non-prifile prefixes, such as "fx:", "option:", or "artifact:".

+ +

The returned string is stored as a properity of the same name for faster lookup later. It should NOT be freed by the caller.

+ +

The format of the GetImageProperty method is:

+ +
+const char *GetImageProperty(const Image *image,const char *key,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetNextImageProperty

+ +

GetNextImageProperty() gets the next free-form string property name.

+ +

The format of the GetNextImageProperty method is:

+ +
+char *GetNextImageProperty(const Image *image)
+
+ +

A description of each parameter follows:

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

InterpretImageProperties

+ +

InterpretImageProperties() replaces any embedded formatting characters with the appropriate image property and returns the interpreted text.

+ +

This searches for and replaces \n \r \ replaced by newline, return, and percent resp. &lt; &gt; &amp; replaced by '<', '>', '&' resp. replaced by percent

+ +

x [x] where 'x' is a single letter properity, case sensitive). [type:name] where 'type' a is special and known prefix. [name] where 'name' is a specifically known attribute, calculated value, or a per-image property string name, or a per-image 'artifact' (as generated from a global option). It may contain ':' as long as the prefix is not special.

+ +

Single letter substitutions will only happen if the character before the percent is NOT a number. But braced substitutions will always be performed. This prevents the typical usage of percent in a interpreted geometry argument from being substituted when the percent is a geometry flag.

+ +

If 'glob-expresions' ('*' or '?' characters) is used for 'name' it may be used as a search pattern to print multiple lines of "name=value\n" pairs of the associacted set of properties.

+ +

The returned string must be freed using DestoryString() by the caller.

+ +

The format of the InterpretImageProperties method is:

+ +
+char *InterpretImageProperties(ImageInfo *image_info,
+  Image *image,const char *embed_text,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info. (required)
+ +
+
image
+
the image. (optional)
+ +
+
embed_text
+
the address of a character string containing the embedded formatting characters.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

RemoveImageProperty

+ +

RemoveImageProperty() removes a property from the image and returns its value.

+ +

In this case the ConstantString() value returned should be freed by the caller when finished.

+ +

The format of the RemoveImageProperty method is:

+ +
+char *RemoveImageProperty(Image *image,const char *property)
+
+ +

A description of each parameter follows:

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

ResetImagePropertyIterator

+ +

ResetImagePropertyIterator() resets the image properties iterator. Use it in conjunction with GetNextImageProperty() to iterate over all the values associated with an image property.

+ +

The format of the ResetImagePropertyIterator method is:

+ +
+ResetImagePropertyIterator(Image *image)
+
+ +

A description of each parameter follows:

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

SetImageProperty

+ +

SetImageProperty() saves the given string value either to specific known attribute or to a freeform property string.

+ +

Attempting to set a property that is normally calculated will produce an exception.

+ +

The format of the SetImageProperty method is:

+ +
+MagickBooleanType SetImageProperty(Image *image,const char *property,
+  const char *value,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
property
+
the image property.
+ +
+
values
+
the image property values.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/quantize.html b/share/doc/ImageMagick-7/www/api/quantize.html new file mode 100644 index 0000000..d5c28bc --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/quantize.html @@ -0,0 +1,513 @@ + + + + + + + + + + MagickCore, C API: Reduce the Number of Unique Colors in an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

QuantizeImageAcquireQuantizeInfoCloneQuantizeInfoCompressImageColormapDestroyQuantizeInfoGetImageQuantizeErrorGetQuantizeInfoPosterizeImageQuantizeImageQuantizeImagesRemapImageRemapImagesSetGrayscaleImage

+ +

QuantizeImage

+ +

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

+ +

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

+ +

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

+ +

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:

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

+ +

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:

+ +
+
+ +
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
+ +
This has the effect of minimizing any quantization error when merging two nodes together.
+ +
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

+ +

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

+ +

The format of the CloneQuantizeInfo method is:

+ +
+QuantizeInfo *CloneQuantizeInfo(const QuantizeInfo *quantize_info)
+
+ +

A description of each parameter follows:

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

CompressImageColormap

+ +

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

+ +

The format of the CompressImageColormap method is:

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

A description of each parameter follows:

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

DestroyQuantizeInfo

+ +

DestroyQuantizeInfo() deallocates memory associated with an QuantizeInfo structure.

+ +

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

+ +

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:

+ +
+    o mean_error_per_pixel:  This value is the mean error for any single
+pixel in the image.
+
+ +
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.

+ +
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.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/quantize.php b/share/doc/ImageMagick-7/www/api/quantize.php new file mode 100644 index 0000000..790faae --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/quantize.php @@ -0,0 +1,479 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Reduce the Number of Unique Colors in an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

QuantizeImageAcquireQuantizeInfoCloneQuantizeInfoCompressImageColormapDestroyQuantizeInfoGetImageQuantizeErrorGetQuantizeInfoPosterizeImageQuantizeImageQuantizeImagesRemapImageRemapImagesSetGrayscaleImage

+ +

QuantizeImage

+ +

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

+ +

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

+ +

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

+ +

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:

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

+ +

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:

+ +
+
+ +
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
+ +
This has the effect of minimizing any quantization error when merging two nodes together.
+ +
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

+ +

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

+ +

The format of the CloneQuantizeInfo method is:

+ +
+QuantizeInfo *CloneQuantizeInfo(const QuantizeInfo *quantize_info)
+
+ +

A description of each parameter follows:

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

CompressImageColormap

+ +

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

+ +

The format of the CompressImageColormap method is:

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

A description of each parameter follows:

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

DestroyQuantizeInfo

+ +

DestroyQuantizeInfo() deallocates memory associated with an QuantizeInfo structure.

+ +

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

+ +

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:

+ +
+    o mean_error_per_pixel:  This value is the mean error for any single
+pixel in the image.
+
+ +
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.

+ +
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.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/registry.html b/share/doc/ImageMagick-7/www/api/registry.html new file mode 100644 index 0000000..e971ffb --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/registry.html @@ -0,0 +1,280 @@ + + + + + + + + + + MagickCore, C API: The Image Registry @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

DefineImageRegistryDeleteImageRegistryGetImageRegistryGetNextImageRegistryRegistryComponentTerminusRemoveImageRegistryResetImageRegistryIteratorSetImageRegistry

+ +

DefineImageRegistry

+ +

DefineImageRegistry() associates a key/value pair with the image registry.

+ +

The format of the DefineImageRegistry method is:

+ +
+MagickBooleanType DefineImageRegistry(const RegistryType type,
+  const char *option,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type.
+ +
+
option
+
the option.
+ +
+
exception
+
the exception.
+ +
+
+

DeleteImageRegistry

+ +

DeleteImageRegistry() deletes a key from the image registry.

+ +

The format of the DeleteImageRegistry method is:

+ +
+MagickBooleanType DeleteImageRegistry(const char *key)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
key
+
the registry.
+ +
+
+

GetImageRegistry

+ +

GetImageRegistry() returns a value associated with an image registry key.

+ +

The format of the GetImageRegistry method is:

+ +
+void *GetImageRegistry(const RegistryType type,const char *key,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type.
+ +
+
key
+
the key.
+ +
+
exception
+
the exception.
+ +
+
+

GetNextImageRegistry

+ +

GetNextImageRegistry() gets the next image registry value.

+ +

The format of the GetNextImageRegistry method is:

+ +
+char *GetNextImageRegistry(void)
+
+ +

RegistryComponentTerminus

+ +

RegistryComponentTerminus() destroys the registry component.

+ +

The format of the DestroyDefines method is:

+ +
+void RegistryComponentTerminus(void)
+
+ +

RemoveImageRegistry

+ +

RemoveImageRegistry() removes a key from the image registry and returns its value.

+ +

The format of the RemoveImageRegistry method is:

+ +
+void *RemoveImageRegistry(const char *key)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
key
+
the registry.
+ +
+
+

ResetImageRegistryIterator

+ +

ResetImageRegistryIterator() resets the registry iterator. Use it in conjunction with GetNextImageRegistry() to iterate over all the values in the image registry.

+ +

The format of the ResetImageRegistryIterator method is:

+ +
+ResetImageRegistryIterator(void)
+
+ +

SetImageRegistry

+ +

SetImageRegistry() associates a value with an image registry key.

+ +

The format of the SetImageRegistry method is:

+ +
+MagickBooleanType SetImageRegistry(const RegistryType type,
+  const char *key,const void *value,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type.
+ +
+
key
+
the key.
+ +
+
value
+
the value.
+ +
+
exception
+
the exception.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/registry.php b/share/doc/ImageMagick-7/www/api/registry.php new file mode 100644 index 0000000..44022af --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/registry.php @@ -0,0 +1,246 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: The Image Registry + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

DefineImageRegistryDeleteImageRegistryGetImageRegistryGetNextImageRegistryRegistryComponentTerminusRemoveImageRegistryResetImageRegistryIteratorSetImageRegistry

+ +

DefineImageRegistry

+ +

DefineImageRegistry() associates a key/value pair with the image registry.

+ +

The format of the DefineImageRegistry method is:

+ +
+MagickBooleanType DefineImageRegistry(const RegistryType type,
+  const char *option,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type.
+ +
+
option
+
the option.
+ +
+
exception
+
the exception.
+ +
+
+

DeleteImageRegistry

+ +

DeleteImageRegistry() deletes a key from the image registry.

+ +

The format of the DeleteImageRegistry method is:

+ +
+MagickBooleanType DeleteImageRegistry(const char *key)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
key
+
the registry.
+ +
+
+

GetImageRegistry

+ +

GetImageRegistry() returns a value associated with an image registry key.

+ +

The format of the GetImageRegistry method is:

+ +
+void *GetImageRegistry(const RegistryType type,const char *key,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type.
+ +
+
key
+
the key.
+ +
+
exception
+
the exception.
+ +
+
+

GetNextImageRegistry

+ +

GetNextImageRegistry() gets the next image registry value.

+ +

The format of the GetNextImageRegistry method is:

+ +
+char *GetNextImageRegistry(void)
+
+ +

RegistryComponentTerminus

+ +

RegistryComponentTerminus() destroys the registry component.

+ +

The format of the DestroyDefines method is:

+ +
+void RegistryComponentTerminus(void)
+
+ +

RemoveImageRegistry

+ +

RemoveImageRegistry() removes a key from the image registry and returns its value.

+ +

The format of the RemoveImageRegistry method is:

+ +
+void *RemoveImageRegistry(const char *key)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
key
+
the registry.
+ +
+
+

ResetImageRegistryIterator

+ +

ResetImageRegistryIterator() resets the registry iterator. Use it in conjunction with GetNextImageRegistry() to iterate over all the values in the image registry.

+ +

The format of the ResetImageRegistryIterator method is:

+ +
+ResetImageRegistryIterator(void)
+
+ +

SetImageRegistry

+ +

SetImageRegistry() associates a value with an image registry key.

+ +

The format of the SetImageRegistry method is:

+ +
+MagickBooleanType SetImageRegistry(const RegistryType type,
+  const char *key,const void *value,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type.
+ +
+
key
+
the key.
+ +
+
value
+
the value.
+ +
+
exception
+
the exception.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/resize.html b/share/doc/ImageMagick-7/www/api/resize.html new file mode 100644 index 0000000..563801b --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/resize.html @@ -0,0 +1,470 @@ + + + + + + + + + + MagickCore, C API: Resize an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AdaptiveResizeImageInterpolativeResizeImageLiquidRescaleImageMagnifyImageMinifyImageResampleImageResizeImageSampleImageScaleImageThumbnailImage

+ +

AdaptiveResizeImage

+ +

AdaptiveResizeImage() adaptively resize image with pixel resampling.

+ +

This is shortcut function for a fast interpolative resize using mesh interpolation. It works well for small resizes of less than +/- 50 of the original image size. For larger resizing on images a full filtered and slower resize function should be used instead.

+ +

The format of the AdaptiveResizeImage method is:

+ +
+Image *AdaptiveResizeImage(const Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the resized image.
+ +
+
rows
+
the number of rows in the resized image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

InterpolativeResizeImage

+ +

InterpolativeResizeImage() resizes an image using the specified interpolation method.

+ +

The format of the InterpolativeResizeImage method is:

+ +
+Image *InterpolativeResizeImage(const Image *image,const size_t columns,
+  const size_t rows,const PixelInterpolateMethod method,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the resized image.
+ +
+
rows
+
the number of rows in the resized image.
+ +
+
method
+
the pixel interpolation method.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LiquidRescaleImage

+ +

LiquidRescaleImage() rescales image with seam carving.

+ +

The format of the LiquidRescaleImage method is:

+ +
+Image *LiquidRescaleImage(const Image *image,const size_t columns,
+  const size_t rows,const double delta_x,const double rigidity,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the rescaled image.
+ +
+
rows
+
the number of rows in the rescaled image.
+ +
+
delta_x
+
maximum seam transversal step (0 means straight seams).
+ +
+
rigidity
+
introduce a bias for non-straight seams (typically 0).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

MagnifyImage

+ +

MagnifyImage() doubles the size of the image with a pixel art scaling algorithm.

+ +

The format of the MagnifyImage method is:

+ +
+Image *MagnifyImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

MinifyImage

+ +

MinifyImage() is a convenience method that scales an image proportionally to half its size.

+ +

The format of the MinifyImage method is:

+ +
+Image *MinifyImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

ResampleImage

+ +

ResampleImage() resize image in terms of its pixel size, so that when displayed at the given resolution it will be the same size in terms of real world units as the original image at the original resolution.

+ +

The format of the ResampleImage method is:

+ +
+Image *ResampleImage(Image *image,const double x_resolution,
+  const double y_resolution,const FilterType filter,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be resized to fit the given resolution.
+ +
+
x_resolution
+
the new image x resolution.
+ +
+
y_resolution
+
the new image y resolution.
+ +
+
filter
+
Image filter to use.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ResizeImage

+ +

ResizeImage() scales an image to the desired dimensions, using the given filter (see AcquireFilterInfo()).

+ +

If an undefined filter is given the filter defaults to Mitchell for a colormapped image, a image with a matte channel, or if the image is enlarged. Otherwise the filter defaults to a Lanczos.

+ +

ResizeImage() was inspired by Paul Heckbert's "zoom" program.

+ +

The format of the ResizeImage method is:

+ +
+Image *ResizeImage(Image *image,const size_t columns,const size_t rows,
+  const FilterType filter,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
filter
+
Image filter to use.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SampleImage

+ +

SampleImage() scales an image to the desired dimensions with pixel sampling. Unlike other scaling methods, this method does not introduce any additional color into the scaled image.

+ +

The format of the SampleImage method is:

+ +
+Image *SampleImage(const Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the sampled image.
+ +
+
rows
+
the number of rows in the sampled image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ScaleImage

+ +

ScaleImage() changes the size of an image to the given dimensions.

+ +

The format of the ScaleImage method is:

+ +
+Image *ScaleImage(const Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ThumbnailImage

+ +

ThumbnailImage() changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small low cost thumbnail images suited for display on the Web.

+ +

The format of the ThumbnailImage method is:

+ +
+Image *ThumbnailImage(const Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/resize.php b/share/doc/ImageMagick-7/www/api/resize.php new file mode 100644 index 0000000..1da896b --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/resize.php @@ -0,0 +1,436 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Resize an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AdaptiveResizeImageInterpolativeResizeImageLiquidRescaleImageMagnifyImageMinifyImageResampleImageResizeImageSampleImageScaleImageThumbnailImage

+ +

AdaptiveResizeImage

+ +

AdaptiveResizeImage() adaptively resize image with pixel resampling.

+ +

This is shortcut function for a fast interpolative resize using mesh interpolation. It works well for small resizes of less than +/- 50 of the original image size. For larger resizing on images a full filtered and slower resize function should be used instead.

+ +

The format of the AdaptiveResizeImage method is:

+ +
+Image *AdaptiveResizeImage(const Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the resized image.
+ +
+
rows
+
the number of rows in the resized image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

InterpolativeResizeImage

+ +

InterpolativeResizeImage() resizes an image using the specified interpolation method.

+ +

The format of the InterpolativeResizeImage method is:

+ +
+Image *InterpolativeResizeImage(const Image *image,const size_t columns,
+  const size_t rows,const PixelInterpolateMethod method,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the resized image.
+ +
+
rows
+
the number of rows in the resized image.
+ +
+
method
+
the pixel interpolation method.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

LiquidRescaleImage

+ +

LiquidRescaleImage() rescales image with seam carving.

+ +

The format of the LiquidRescaleImage method is:

+ +
+Image *LiquidRescaleImage(const Image *image,const size_t columns,
+  const size_t rows,const double delta_x,const double rigidity,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the rescaled image.
+ +
+
rows
+
the number of rows in the rescaled image.
+ +
+
delta_x
+
maximum seam transversal step (0 means straight seams).
+ +
+
rigidity
+
introduce a bias for non-straight seams (typically 0).
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

MagnifyImage

+ +

MagnifyImage() doubles the size of the image with a pixel art scaling algorithm.

+ +

The format of the MagnifyImage method is:

+ +
+Image *MagnifyImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

MinifyImage

+ +

MinifyImage() is a convenience method that scales an image proportionally to half its size.

+ +

The format of the MinifyImage method is:

+ +
+Image *MinifyImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

ResampleImage

+ +

ResampleImage() resize image in terms of its pixel size, so that when displayed at the given resolution it will be the same size in terms of real world units as the original image at the original resolution.

+ +

The format of the ResampleImage method is:

+ +
+Image *ResampleImage(Image *image,const double x_resolution,
+  const double y_resolution,const FilterTypes filter,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image to be resized to fit the given resolution.
+ +
+
x_resolution
+
the new image x resolution.
+ +
+
y_resolution
+
the new image y resolution.
+ +
+
filter
+
Image filter to use.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ResizeImage

+ +

ResizeImage() scales an image to the desired dimensions, using the given filter (see AcquireFilterInfo()).

+ +

If an undefined filter is given the filter defaults to Mitchell for a colormapped image, a image with a matte channel, or if the image is enlarged. Otherwise the filter defaults to a Lanczos.

+ +

ResizeImage() was inspired by Paul Heckbert's "zoom" program.

+ +

The format of the ResizeImage method is:

+ +
+Image *ResizeImage(Image *image,const size_t columns,const size_t rows,
+  const FilterTypes filter,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
filter
+
Image filter to use.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SampleImage

+ +

SampleImage() scales an image to the desired dimensions with pixel sampling. Unlike other scaling methods, this method does not introduce any additional color into the scaled image.

+ +

The format of the SampleImage method is:

+ +
+Image *SampleImage(const Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the sampled image.
+ +
+
rows
+
the number of rows in the sampled image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ScaleImage

+ +

ScaleImage() changes the size of an image to the given dimensions.

+ +

The format of the ScaleImage method is:

+ +
+Image *ScaleImage(const Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ThumbnailImage

+ +

ThumbnailImage() changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small low cost thumbnail images suited for display on the Web.

+ +

The format of the ThumbnailImage method is:

+ +
+Image *ThumbnailImage(const Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
columns
+
the number of columns in the scaled image.
+ +
+
rows
+
the number of rows in the scaled image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/resource.html b/share/doc/ImageMagick-7/www/api/resource.html new file mode 100644 index 0000000..7a92db6 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/resource.html @@ -0,0 +1,297 @@ + + + + + + + + + + MagickCore, C API: Monitor or Limit Resource Consumption @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

AcquireMagickResourceAcquireUniqueFileResourceGetMagickResourceGetMagickResourceLimitListMagickResourceInfoRelinquishMagickResourceRelinquishUniqueFileResourceSetMagickResourceLimit

+ +

AcquireMagickResource

+ +

AcquireMagickResource() acquires resources of the specified type. MagickFalse is returned if the specified resource is exhausted otherwise MagickTrue.

+ +

The format of the AcquireMagickResource() method is:

+ +
+MagickBooleanType AcquireMagickResource(const ResourceType type,
+  const MagickSizeType size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type of resource.
+ +
+
size
+
the number of bytes needed from for this resource.
+ +
+
+

AcquireUniqueFileResource

+ +

AcquireUniqueFileResource() returns a unique file name, and returns a file descriptor for the file open for reading and writing.

+ +

The format of the AcquireUniqueFileResource() method is:

+ +
+int AcquireUniqueFileResource(char *path)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
path
+
Specifies a pointer to an array of characters. The unique path name is returned in this array.
+ +
+
+

GetMagickResource

+ +

GetMagickResource() returns the specified resource.

+ +

The format of the GetMagickResource() method is:

+ +
+MagickSizeType GetMagickResource(const ResourceType type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type of resource.
+ +
+
+

GetMagickResourceLimit

+ +

GetMagickResourceLimit() returns the specified resource limit.

+ +

The format of the GetMagickResourceLimit() method is:

+ +
+MagickSizeType GetMagickResourceLimit(const ResourceType type)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type of resource.
+ +
+
+

ListMagickResourceInfo

+ +

ListMagickResourceInfo() lists the resource info to a file.

+ +

The format of the ListMagickResourceInfo method is:

+ +
+MagickBooleanType ListMagickResourceInfo(FILE *file,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
file
+

An pointer to a FILE.

+ +
exception
+

return any errors or warnings in this structure.

+ +

RelinquishMagickResource

+ +

RelinquishMagickResource() relinquishes resources of the specified type.

+ +

The format of the RelinquishMagickResource() method is:

+ +
+void RelinquishMagickResource(const ResourceType type,
+  const MagickSizeType size)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type of resource.
+ +
+
size
+
the size of the resource.
+ +
+
+

RelinquishUniqueFileResource

+ +

RelinquishUniqueFileResource() relinquishes a unique file resource.

+ +

The format of the RelinquishUniqueFileResource() method is:

+ +
+MagickBooleanType RelinquishUniqueFileResource(const char *path)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
name
+
the name of the temporary resource.
+ +
+
+

SetMagickResourceLimit

+ +

SetMagickResourceLimit() sets the limit for a particular resource.

+ +

The format of the SetMagickResourceLimit() method is:

+ +
+MagickBooleanType SetMagickResourceLimit(const ResourceType type,
+  const MagickSizeType limit)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
type
+
the type of resource.
+ +
+
limit
+
the maximum limit for the resource.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/segment.html b/share/doc/ImageMagick-7/www/api/segment.html new file mode 100644 index 0000000..db6ace7 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/segment.html @@ -0,0 +1,142 @@ + + + + + + + + + + MagickCore, C API: Segment an Image with Thresholding Fuzzy c-Means @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

SegmentImage

+ +

SegmentImage

+ +

SegmentImage() segment an image by analyzing the histograms of the color components and identifying units that are homogeneous with the fuzzy C-means technique.

+ +

The format of the SegmentImage method is:

+ +
+MagickBooleanType SegmentImage(Image *image,
+  const ColorspaceType colorspace,const MagickBooleanType verbose,
+  const double cluster_threshold,const double smooth_threshold,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
colorspace
+

Indicate the colorspace.

+ +
verbose
+

Set to MagickTrue to print detailed information about the identified classes.

+ +
cluster_threshold
+

This represents the minimum number of pixels contained in a hexahedra before it can be considered valid (expressed as a percentage).

+ +
smooth_threshold
+

the smoothing threshold eliminates noise in the second derivative of the histogram. As the value is increased, you can expect a smoother second derivative.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/segment.php b/share/doc/ImageMagick-7/www/api/segment.php new file mode 100644 index 0000000..6354b15 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/segment.php @@ -0,0 +1,108 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Segment an Image with Thresholding Fuzzy c-Means + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

SegmentImage

+ +

SegmentImage

+ +

SegmentImage() segment an image by analyzing the histograms of the color components and identifying units that are homogeneous with the fuzzy C-means technique.

+ +

The format of the SegmentImage method is:

+ +
+MagickBooleanType SegmentImage(Image *image,
+  const ColorspaceType colorspace,const MagickBooleanType verbose,
+  const double cluster_threshold,const double smooth_threshold,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
colorspace
+

Indicate the colorspace.

+ +
verbose
+

Set to MagickTrue to print detailed information about the identified classes.

+ +
cluster_threshold
+

This represents the minimum number of pixels contained in a hexahedra before it can be considered valid (expressed as a percentage).

+ +
smooth_threshold
+

the smoothing threshold eliminates noise in the second derivative of the histogram. As the value is increased, you can expect a smoother second derivative.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/shear.html b/share/doc/ImageMagick-7/www/api/shear.html new file mode 100644 index 0000000..5a05bfd --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/shear.html @@ -0,0 +1,213 @@ + + + + + + + + + + MagickCore, C API: Shear or Rotate an Image by an Arbitrary Angle @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

The XShearImageDeskewImageIntegralRotateImageShearImageShearRotateImage

+ +

The XShearImage

+ +

The XShearImage() and YShearImage() methods are based on the paper "A Fast Algorithm for General Raster Rotation" by Alan W. Paeth, Graphics Interface '86 (Vancouver). ShearRotateImage() is adapted from a similar method based on the Paeth paper written by Michael Halle of the Spatial Imaging Group, MIT Media Lab.

+ +

DeskewImage

+ +

DeskewImage() removes skew from the image. Skew is an artifact that occurs in scanned images because of the camera being misaligned, imperfections in the scanning or surface, or simply because the paper was not placed completely flat when scanned.

+ +

The result will be auto-croped if the artifact "deskew:auto-crop" is defined, while the amount the image is to be deskewed, in degrees is also saved as the artifact "deskew:angle".

+ +

The format of the DeskewImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
threshold
+
separate background from foreground.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

IntegralRotateImage

+ +

IntegralRotateImage() rotates the image an integral of 90 degrees. It allocates the memory necessary for the new Image structure and returns a pointer to the rotated image.

+ +

The format of the IntegralRotateImage method is:

+ +
+Image *IntegralRotateImage(const Image *image,size_t rotations,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
rotations
+

Specifies the number of 90 degree rotations.

+ +

ShearImage

+ +

ShearImage() creates a new image that is a shear_image copy of an existing one. Shearing slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color defined by member 'background_color' of the image.. ShearImage() allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

ShearImage() is based on the paper "A Fast Algorithm for General Raster Rotatation" by Alan W. Paeth.

+ +

The format of the ShearImage method is:

+ +
+Image *ShearImage(const Image *image,const double x_shear,
+  const double y_shear,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
x_shear, y_shear
+

Specifies the number of degrees to shear the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

ShearRotateImage

+ +

ShearRotateImage() creates a new image that is a rotated copy of an existing one. Positive angles rotate counter-clockwise (right-hand rule), while negative angles rotate clockwise. Rotated images are usually larger than the originals and have 'empty' triangular corners. X axis. Empty triangles left over from shearing the image are filled with the background color defined by member 'background_color' of the image. ShearRotateImage allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

ShearRotateImage() is based on the paper "A Fast Algorithm for General Raster Rotatation" by Alan W. Paeth. ShearRotateImage is adapted from a similar method based on the Paeth paper written by Michael Halle of the Spatial Imaging Group, MIT Media Lab.

+ +

The format of the ShearRotateImage method is:

+ +
+Image *ShearRotateImage(const Image *image,const double degrees,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
degrees
+

Specifies the number of degrees to rotate the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/shear.php b/share/doc/ImageMagick-7/www/api/shear.php new file mode 100644 index 0000000..5c71b7a --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/shear.php @@ -0,0 +1,181 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Shear or Rotate an Image by an Arbitrary Angle + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

The XShearImageDeskewImageIntegralRotateImageShearImageShearRotateImage

+ +

The XShearImage

+ +

The XShearImage() and YShearImage() methods are based on the paper "A Fast Algorithm for General Raster Rotatation" by Alan W. Paeth, Graphics Interface '86 (Vancouver). ShearRotateImage() is adapted from a similar method based on the Paeth paper written by Michael Halle of the Spatial Imaging Group, MIT Media Lab.

+ +

DeskewImage

+ +

DeskewImage() removes skew from the image. Skew is an artifact that occurs in scanned images because of the camera being misaligned, imperfections in the scanning or surface, or simply because the paper was not placed completely flat when scanned.

+ +

The result will be auto-croped if the artifact "deskew:auto-crop" is defined, while the amount the image is to be deskewed, in degrees is also saved as the artifact "deskew:angle".

+ +

If the artifact "deskew:auto-crop" is given the image will be automatically cropped of the excess background. The value is the border width of all pixels around the edge that will be used to determine an average border color for the automatic trim.

+ +

The format of the DeskewImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
threshold
+
separate background from foreground.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

IntegralRotateImage

+ +

IntegralRotateImage() rotates the image an integral of 90 degrees. It allocates the memory necessary for the new Image structure and returns a pointer to the rotated image.

+ +

The format of the IntegralRotateImage method is:

+ +
+Image *IntegralRotateImage(const Image *image,size_t rotations,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
rotations
+

Specifies the number of 90 degree rotations.

+ +

ShearImage

+ +

ShearImage() creates a new image that is a shear_image copy of an existing one. Shearing slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color defined by member 'background_color' of the image.. ShearImage() allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

ShearImage() is based on the paper "A Fast Algorithm for General Raster Rotatation" by Alan W. Paeth.

+ +

The format of the ShearImage method is:

+ +
+Image *ShearImage(const Image *image,const double x_shear,
+  const double y_shear,ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
x_shear, y_shear
+

Specifies the number of degrees to shear the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +

ShearRotateImage

+ +

ShearRotateImage() creates a new image that is a rotated copy of an existing one. Positive angles rotate counter-clockwise (right-hand rule), while negative angles rotate clockwise. Rotated images are usually larger than the originals and have 'empty' triangular corners. X axis. Empty triangles left over from shearing the image are filled with the background color defined by member 'background_color' of the image. ShearRotateImage allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

ShearRotateImage() is based on the paper "A Fast Algorithm for General Raster Rotatation" by Alan W. Paeth. ShearRotateImage is adapted from a similar method based on the Paeth paper written by Michael Halle of the Spatial Imaging Group, MIT Media Lab.

+ +

The format of the ShearRotateImage method is:

+ +
+Image *ShearRotateImage(const Image *image,const double degrees,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows.

+ +
image
+

the image.

+ +
degrees
+

Specifies the number of degrees to rotate the image.

+ +
exception
+

return any errors or warnings in this structure.

+ +
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/signature.html b/share/doc/ImageMagick-7/www/api/signature.html new file mode 100644 index 0000000..48daa2e --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/signature.html @@ -0,0 +1,135 @@ + + + + + + + + + + MagickCore, C API: Compute a Message Digest for an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

SignatureImage

+ +

SignatureImage

+ +

SignatureImage() computes a message digest from an image pixel stream with an implementation of the NIST SHA-256 Message Digest algorithm. This signature uniquely identifies the image and is convenient for determining if an image has been modified or whether two images are identical.

+ +

The format of the SignatureImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/signature.php b/share/doc/ImageMagick-7/www/api/signature.php new file mode 100644 index 0000000..477c488 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/signature.php @@ -0,0 +1,101 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Compute a Message Digest for an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

SignatureImage

+ +

SignatureImage

+ +

SignatureImage() computes a message digest from an image pixel stream with an implementation of the NIST SHA-256 Message Digest algorithm. This signature uniquely identifies the image and is convenient for determining if an image has been modified or whether two images are identical.

+ +

The format of the SignatureImage method is:

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

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/statistic.html b/share/doc/ImageMagick-7/www/api/statistic.html new file mode 100644 index 0000000..b05c056 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/statistic.html @@ -0,0 +1,517 @@ + + + + + + + + + + MagickCore, C API: Image Statistics @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

EvaluateImageFunctionImageGetImageEntropyGetImageExtremaGetImageKurtosisGetImageMeanGetImageMomentsGetImagePerceptualHashGetImageRangeGetImageStatisticsPolynomialImageStatisticImage

+ +

EvaluateImage

+ +

EvaluateImage() applies a value to the image with an arithmetic, relational, or logical operator to an image. Use these operations to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

+ +

The format of the EvaluateImage method is:

+ +
+MagickBooleanType EvaluateImage(Image *image,
+  const MagickEvaluateOperator op,const double value,
+  ExceptionInfo *exception)
+MagickBooleanType EvaluateImages(Image *images,
+  const MagickEvaluateOperator op,const double value,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
op
+
A channel op.
+ +
+
value
+
A value value.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

FunctionImage

+ +

FunctionImage() applies a value to the image with an arithmetic, relational, or logical operator to an image. Use these operations to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

+ +

The format of the FunctionImage method is:

+ +
+MagickBooleanType FunctionImage(Image *image,
+  const MagickFunction function,const ssize_t number_parameters,
+  const double *parameters,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
function
+
A channel function.
+ +
+
parameters
+
one or more parameters.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageEntropy

+ +

GetImageEntropy() returns the entropy of one or more image channels.

+ +

The format of the GetImageEntropy method is:

+ +
+MagickBooleanType GetImageEntropy(const Image *image,double *entropy,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
entropy
+
the average entropy of the selected channels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageExtrema

+ +

GetImageExtrema() returns the extrema of one or more image channels.

+ +

The format of the GetImageExtrema method is:

+ +
+MagickBooleanType GetImageExtrema(const Image *image,size_t *minima,
+  size_t *maxima,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
minima
+
the minimum value in the channel.
+ +
+
maxima
+
the maximum value in the channel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageKurtosis

+ +

GetImageKurtosis() returns the kurtosis and skewness of one or more image channels.

+ +

The format of the GetImageKurtosis method is:

+ +
+MagickBooleanType GetImageKurtosis(const Image *image,double *kurtosis,
+  double *skewness,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
kurtosis
+
the kurtosis of the channel.
+ +
+
skewness
+
the skewness of the channel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageMean

+ +

GetImageMean() returns the mean and standard deviation of one or more image channels.

+ +

The format of the GetImageMean method is:

+ +
+MagickBooleanType GetImageMean(const Image *image,double *mean,
+  double *standard_deviation,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
mean
+
the average value in the channel.
+ +
+
standard_deviation
+
the standard deviation of the channel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageMoments

+ +

GetImageMoments() returns the normalized moments of one or more image channels.

+ +

The format of the GetImageMoments method is:

+ +
+ChannelMoments *GetImageMoments(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetImagePerceptualHash

+ +

GetImagePerceptualHash() returns the perceptual hash of one or more image channels.

+ +

The format of the GetImagePerceptualHash method is:

+ +
+ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetImageRange

+ +

GetImageRange() returns the range of one or more image channels.

+ +

The format of the GetImageRange method is:

+ +
+MagickBooleanType GetImageRange(const Image *image,double *minima,
+  double *maxima,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
minima
+
the minimum value in the channel.
+ +
+
maxima
+
the maximum value in the channel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageStatistics

+ +

GetImageStatistics() returns statistics for each channel in the image. The statistics include the channel depth, its minima, maxima, mean, standard deviation, kurtosis and skewness. You can access the red channel mean, for example, like this:

+ +
+channel_statistics=GetImageStatistics(image,exception);
+red_mean=channel_statistics[RedPixelChannel].mean;
+
+ +

Use MagickRelinquishMemory() to free the statistics buffer.

+ +

The format of the GetImageStatistics method is:

+ +
+ChannelStatistics *GetImageStatistics(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

PolynomialImage

+ +

PolynomialImage() returns a new image where each pixel is the sum of the pixels in the image sequence after applying its corresponding terms (coefficient and degree pairs).

+ +

The format of the PolynomialImage method is:

+ +
+Image *PolynomialImage(const Image *images,const size_t number_terms,
+  const double *terms,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
number_terms
+
the number of terms in the list. The actual list length is 2 x number_terms + 1 (the constant).
+ +
+
terms
+
the list of polynomial coefficients and degree pairs and a constant.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

StatisticImage

+ +

StatisticImage() makes each pixel the min / max / median / mode / etc. of the neighborhood of the specified width and height.

+ +

The format of the StatisticImage method is:

+ +
+Image *StatisticImage(const Image *image,const StatisticType type,
+  const size_t width,const size_t height,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
type
+
the statistic type (median, mode, etc.).
+ +
+
width
+
the width of the pixel neighborhood.
+ +
+
height
+
the height of the pixel neighborhood.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/statistic.php b/share/doc/ImageMagick-7/www/api/statistic.php new file mode 100644 index 0000000..e380abf --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/statistic.php @@ -0,0 +1,483 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Image Statistics + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

EvaluateImageFunctionImageGetImageEntropyGetImageExtremaGetImageKurtosisGetImageMeanGetImageMomentsGetImagePerceptualHashGetImageRangeGetImageStatisticsPolynomialImageStatisticImage

+ +

EvaluateImage

+ +

EvaluateImage() applies a value to the image with an arithmetic, relational, or logical operator to an image. Use these operations to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

+ +

The format of the EvaluateImage method is:

+ +
+MagickBooleanType EvaluateImage(Image *image,
+  const MagickEvaluateOperator op,const double value,
+  ExceptionInfo *exception)
+MagickBooleanType EvaluateImages(Image *images,
+  const MagickEvaluateOperator op,const double value,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
op
+
A channel op.
+ +
+
value
+
A value value.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

FunctionImage

+ +

FunctionImage() applies a value to the image with an arithmetic, relational, or logical operator to an image. Use these operations to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

+ +

The format of the FunctionImage method is:

+ +
+MagickBooleanType FunctionImage(Image *image,
+  const MagickFunction function,const ssize_t number_parameters,
+  const double *parameters,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
function
+
A channel function.
+ +
+
parameters
+
one or more parameters.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageEntropy

+ +

GetImageEntropy() returns the entropy of one or more image channels.

+ +

The format of the GetImageEntropy method is:

+ +
+MagickBooleanType GetImageEntropy(const Image *image,double *entropy,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
entropy
+
the average entropy of the selected channels.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageExtrema

+ +

GetImageExtrema() returns the extrema of one or more image channels.

+ +

The format of the GetImageExtrema method is:

+ +
+MagickBooleanType GetImageExtrema(const Image *image,size_t *minima,
+  size_t *maxima,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
minima
+
the minimum value in the channel.
+ +
+
maxima
+
the maximum value in the channel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageKurtosis

+ +

GetImageKurtosis() returns the kurtosis and skewness of one or more image channels.

+ +

The format of the GetImageKurtosis method is:

+ +
+MagickBooleanType GetImageKurtosis(const Image *image,double *kurtosis,
+  double *skewness,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
kurtosis
+
the kurtosis of the channel.
+ +
+
skewness
+
the skewness of the channel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageMean

+ +

GetImageMean() returns the mean and standard deviation of one or more image channels.

+ +

The format of the GetImageMean method is:

+ +
+MagickBooleanType GetImageMean(const Image *image,double *mean,
+  double *standard_deviation,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
mean
+
the average value in the channel.
+ +
+
standard_deviation
+
the standard deviation of the channel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageMoments

+ +

GetImageMoments() returns the normalized moments of one or more image channels.

+ +

The format of the GetImageMoments method is:

+ +
+ChannelMoments *GetImageMoments(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetImagePerceptualHash

+ +

GetImagePerceptualHash() returns the perceptual hash of one or more image channels.

+ +

The format of the GetImagePerceptualHash method is:

+ +
+ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

GetImageRange

+ +

GetImageRange() returns the range of one or more image channels.

+ +

The format of the GetImageRange method is:

+ +
+MagickBooleanType GetImageRange(const Image *image,double *minima,
+  double *maxima,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
minima
+
the minimum value in the channel.
+ +
+
maxima
+
the maximum value in the channel.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

GetImageStatistics

+ +

GetImageStatistics() returns statistics for each channel in the image. The statistics include the channel depth, its minima, maxima, mean, standard deviation, kurtosis and skewness. You can access the red channel mean, for example, like this:

+ +
+channel_statistics=GetImageStatistics(image,exception);
+red_mean=channel_statistics[RedPixelChannel].mean;
+
+ +

Use MagickRelinquishMemory() to free the statistics buffer.

+ +

The format of the GetImageStatistics method is:

+ +
+ChannelStatistics *GetImageStatistics(const Image *image,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

PolynomialImage

+ +

PolynomialImage() returns a new image where each pixel is the sum of the pixels in the image sequence after applying its corresponding terms (coefficient and degree pairs).

+ +

The format of the PolynomialImage method is:

+ +
+Image *PolynomialImage(const Image *images,const size_t number_terms,
+  const double *terms,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
images
+
the image sequence.
+ +
+
number_terms
+
the number of terms in the list. The actual list length is 2 x number_terms + 1 (the constant).
+ +
+
terms
+
the list of polynomial coefficients and degree pairs and a constant.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

StatisticImage

+ +

StatisticImage() makes each pixel the min / max / median / mode / etc. of the neighborhood of the specified width and height.

+ +

The format of the StatisticImage method is:

+ +
+Image *StatisticImage(const Image *image,const StatisticType type,
+  const size_t width,const size_t height,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
type
+
the statistic type (median, mode, etc.).
+ +
+
width
+
the width of the pixel neighborhood.
+ +
+
height
+
the height of the pixel neighborhood.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/stream.html b/share/doc/ImageMagick-7/www/api/stream.html new file mode 100644 index 0000000..7ac1094 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/stream.html @@ -0,0 +1,148 @@ + + + + + + + + + + MagickCore, C API: The Pixel FIFO @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

StreamImageCommand

+ +

StreamImageCommand

+ +

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.

+ +

The format of the StreamImageCommand method is:

+ +
+MagickBooleanType StreamImageCommand(ImageInfo *image_info,int argc,
+  char **argv,char **metadata,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image_info
+
the image info.
+ +
+
argc
+
the number of elements in the argument vector.
+ +
+
argv
+
A text array containing the command line arguments.
+ +
+
metadata
+
any metadata is returned here.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/transform.html b/share/doc/ImageMagick-7/www/api/transform.html new file mode 100644 index 0000000..fdeaa4d --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/transform.html @@ -0,0 +1,564 @@ + + + + + + + + + + MagickCore, C API: Transform an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

AutoOrientImageChopImageCropImageCropImageToTilesExcerptImageExtentImageFlipImageFlopImageRollImageShaveImageSpliceImageTransformImageTransposeImageTransverseImageTrimImage

+ +

AutoOrientImage

+ +

AutoOrientImage() adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).

+ +

The format of the AutoOrientImage method is:

+ +
+Image *AutoOrientImage(const Image *image,
+  const OrientationType orientation,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
The image.
+ +
+
orientation
+
Current image orientation.
+ +
+
exception
+
Return any errors or warnings in this structure.
+ +
+
+

ChopImage

+ +

ChopImage() removes a region of an image and collapses the image to occupy the removed portion.

+ +

The format of the ChopImage method is:

+ +
+Image *ChopImage(const Image *image,const RectangleInfo *chop_info)
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
chop_info
+
Define the region of the image to chop.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CropImage

+ +

CropImage() extracts a region of the image starting at the offset defined by geometry. Region must be fully defined, and no special handling of geometry flags is performed.

+ +

The format of the CropImage method is:

+ +
+Image *CropImage(const Image *image,const RectangleInfo *geometry,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
geometry
+
Define the region of the image to crop with members x, y, width, and height.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CropImageToTiles

+ +

CropImageToTiles() crops a single image, into a possible list of tiles. This may include a single sub-region of the image. This basically applies all the normal geometry flags for Crop.

+ +

Image *CropImageToTiles(const Image *image, const RectangleInfo *crop_geometry, ExceptionInfo *exception)

+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image The transformed image is returned as this parameter.
+ +
+
crop_geometry
+
A crop geometry string.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ExcerptImage

+ +

ExcerptImage() returns a excerpt of the image as defined by the geometry.

+ +

The format of the ExcerptImage method is:

+ +
+Image *ExcerptImage(const Image *image,const RectangleInfo *geometry,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
geometry
+
Define the region of the image to extend with members x, y, width, and height.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ExtentImage

+ +

ExtentImage() extends the image as defined by the geometry, gravity, and image background color. Set the (x,y) offset of the geometry to move the original image relative to the extended image.

+ +

The format of the ExtentImage method is:

+ +
+Image *ExtentImage(const Image *image,const RectangleInfo *geometry,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
geometry
+
Define the region of the image to extend with members x, y, width, and height.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

FlipImage

+ +

FlipImage() creates a vertical mirror image by reflecting the pixels around the central x-axis.

+ +

The format of the FlipImage method is:

+ +
+Image *FlipImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

FlopImage

+ +

FlopImage() creates a horizontal mirror image by reflecting the pixels around the central y-axis.

+ +

The format of the FlopImage method is:

+ +
+Image *FlopImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RollImage

+ +

RollImage() offsets an image as defined by x_offset and y_offset.

+ +

The format of the RollImage method is:

+ +
+Image *RollImage(const Image *image,const ssize_t x_offset,
+  const ssize_t y_offset,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
x_offset
+
the number of columns to roll in the horizontal direction.
+ +
+
y_offset
+
the number of rows to roll in the vertical direction.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ShaveImage

+ +

ShaveImage() shaves pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the ShaveImage method is:

+ +
+Image *ShaveImage(const Image *image,const RectangleInfo *shave_info,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
shave_image
+
Method ShaveImage returns a pointer to the shaved image. A null image is returned if there is a memory shortage or if the image width or height is zero.
+ +
+
image
+
the image.
+ +
+
shave_info
+
Specifies a pointer to a RectangleInfo which defines the region of the image to crop.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SpliceImage

+ +

SpliceImage() splices a solid color into the image as defined by the geometry.

+ +

The format of the SpliceImage method is:

+ +
+Image *SpliceImage(const Image *image,const RectangleInfo *geometry,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
geometry
+
Define the region of the image to splice with members x, y, width, and height.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TransformImage

+ +

TransformImage() is a convenience method that behaves like ResizeImage() or CropImage() but accepts scaling and/or cropping information as a region geometry specification. If the operation fails, the original image handle is left as is.

+ +

This should only be used for single images.

+ +

This function destroys what it assumes to be a single image list. If the input image is part of a larger list, all other images in that list will be simply 'lost', not destroyed.

+ +

Also if the crop generates a list of images only the first image is resized. And finally if the crop succeeds and the resize failed, you will get a cropped image, as well as a 'false' or 'failed' report.

+ +

This function and should probably be deprecated in favor of direct calls to CropImageToTiles() or ResizeImage(), as appropriate.

+ +

The format of the TransformImage method is:

+ +
+MagickBooleanType TransformImage(Image **image,const char *crop_geometry,
+  const char *image_geometry,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image The transformed image is returned as this parameter.
+ +
+
crop_geometry
+
A crop geometry string. This geometry defines a subregion of the image to crop.
+ +
+
image_geometry
+
An image geometry string. This geometry defines the final size of the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TransposeImage

+ +

TransposeImage() creates a horizontal mirror image by reflecting the pixels around the central y-axis while rotating them by 90 degrees.

+ +

The format of the TransposeImage method is:

+ +
+Image *TransposeImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

TransverseImage

+ +

TransverseImage() creates a vertical mirror image by reflecting the pixels around the central x-axis while rotating them by 270 degrees.

+ +

The format of the TransverseImage method is:

+ +
+Image *TransverseImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

TrimImage

+ +

TrimImage() trims pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the TrimImage method is:

+ +
+Image *TrimImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/transform.php b/share/doc/ImageMagick-7/www/api/transform.php new file mode 100644 index 0000000..2ab517b --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/transform.php @@ -0,0 +1,566 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Transform an Image + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

AutoOrientImageChopImageCropImageCropImageToTilesExcerptImageExtentImageFlipImageFlopImageRollImageShaveImageSpliceImageTransformImageTransformImagesTransposeImageTransverseImageTrimImage

+ +

AutoOrientImage

+ +

AutoOrientImage() adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).

+ +

The format of the AutoOrientImage method is:

+ +
+Image *AutoOrientImage(const Image *image,
+  const OrientationType orientation,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
The image.
+ +
+
orientation
+
Current image orientation.
+ +
+
exception
+
Return any errors or warnings in this structure.
+ +
+
+

ChopImage

+ +

ChopImage() removes a region of an image and collapses the image to occupy the removed portion.

+ +

The format of the ChopImage method is:

+ +
+Image *ChopImage(const Image *image,const RectangleInfo *chop_info)
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
chop_info
+
Define the region of the image to chop.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CropImage

+ +

CropImage() extracts a region of the image starting at the offset defined by geometry. Region must be fully defined, and no special handling of geometry flags is performed.

+ +

The format of the CropImage method is:

+ +
+Image *CropImage(const Image *image,const RectangleInfo *geometry,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
geometry
+
Define the region of the image to crop with members x, y, width, and height.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

CropImageToTiles

+ +

CropImageToTiles() crops a single image, into a possible list of tiles. This may include a single sub-region of the image. This basically applies all the normal geometry flags for Crop.

+ +

Image *CropImageToTiles(const Image *image, const RectangleInfo *crop_geometry, ExceptionInfo *exception)

+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image The transformed image is returned as this parameter.
+ +
+
crop_geometry
+
A crop geometry string.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ExcerptImage

+ +

ExcerptImage() returns a excerpt of the image as defined by the geometry.

+ +

The format of the ExcerptImage method is:

+ +
+Image *ExcerptImage(const Image *image,const RectangleInfo *geometry,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
geometry
+
Define the region of the image to extend with members x, y, width, and height.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ExtentImage

+ +

ExtentImage() extends the image as defined by the geometry, gravity, and image background color. Set the (x,y) offset of the geometry to move the original image relative to the extended image.

+ +

The format of the ExtentImage method is:

+ +
+Image *ExtentImage(const Image *image,const RectangleInfo *geometry,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
geometry
+
Define the region of the image to extend with members x, y, width, and height.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

FlipImage

+ +

FlipImage() creates a vertical mirror image by reflecting the pixels around the central x-axis.

+ +

The format of the FlipImage method is:

+ +
+Image *FlipImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

FlopImage

+ +

FlopImage() creates a horizontal mirror image by reflecting the pixels around the central y-axis.

+ +

The format of the FlopImage method is:

+ +
+Image *FlopImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

RollImage

+ +

RollImage() offsets an image as defined by x_offset and y_offset.

+ +

The format of the RollImage method is:

+ +
+Image *RollImage(const Image *image,const ssize_t x_offset,
+  const ssize_t y_offset,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
x_offset
+
the number of columns to roll in the horizontal direction.
+ +
+
y_offset
+
the number of rows to roll in the vertical direction.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

ShaveImage

+ +

ShaveImage() shaves pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the ShaveImage method is:

+ +
+Image *ShaveImage(const Image *image,const RectangleInfo *shave_info,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
shave_image
+
Method ShaveImage returns a pointer to the shaved image. A null image is returned if there is a memory shortage or if the image width or height is zero.
+ +
+
image
+
the image.
+ +
+
shave_info
+
Specifies a pointer to a RectangleInfo which defines the region of the image to crop.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

SpliceImage

+ +

SpliceImage() splices a solid color into the image as defined by the geometry.

+ +

The format of the SpliceImage method is:

+ +
+Image *SpliceImage(const Image *image,const RectangleInfo *geometry,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
geometry
+
Define the region of the image to splice with members x, y, width, and height.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TransformImage

+ +

TransformImage() is a convenience method that behaves like ResizeImage() or CropImage() but accepts scaling and/or cropping information as a region geometry specification. If the operation fails, the original image handle is left as is.

+ +

This should only be used for single images.

+ +

This function destroys what it assumes to be a single image list. If the input image is part of a larger list, all other images in that list will be simply 'lost', not destroyed.

+ +

Also if the crop generates a list of images only the first image is resized. And finally if the crop succeeds and the resize failed, you will get a cropped image, as well as a 'false' or 'failed' report.

+ +

This function and should probably be deprecated in favor of direct calls to CropImageToTiles() or ResizeImage(), as appropriate.

+ +

The format of the TransformImage method is:

+ +
+MagickBooleanType TransformImage(Image **image,const char *crop_geometry,
+  const char *image_geometry,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image The transformed image is returned as this parameter.
+ +
+
crop_geometry
+
A crop geometry string. This geometry defines a subregion of the image to crop.
+ +
+
image_geometry
+
An image geometry string. This geometry defines the final size of the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TransformImages

+ +

TransformImages() calls TransformImage() on each image of a sequence.

+ +

The format of the TransformImage method is:

+ +
+MagickBooleanType TransformImages(Image **image,
+  const char *crop_geometry,const char *image_geometry,
+  ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image The transformed image is returned as this parameter.
+ +
+
crop_geometry
+
A crop geometry string. This geometry defines a subregion of the image to crop.
+ +
+
image_geometry
+
An image geometry string. This geometry defines the final size of the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+

TransposeImage

+ +

TransposeImage() creates a horizontal mirror image by reflecting the pixels around the central y-axis while rotating them by 90 degrees.

+ +

The format of the TransposeImage method is:

+ +
+Image *TransposeImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

TransverseImage

+ +

TransverseImage() creates a vertical mirror image by reflecting the pixels around the central x-axis while rotating them by 270 degrees.

+ +

The format of the TransverseImage method is:

+ +
+Image *TransverseImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

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

TrimImage

+ +

TrimImage() trims pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

+ +

The format of the TrimImage method is:

+ +
+Image *TrimImage(const Image *image,ExceptionInfo *exception)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
image
+
the image.
+ +
+
exception
+
return any errors or warnings in this structure.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/version.html b/share/doc/ImageMagick-7/www/api/version.html new file mode 100644 index 0000000..0adeea0 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/version.html @@ -0,0 +1,297 @@ + + + + + + + + + + MagickCore, C API: Get the Version and Copyrights @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

GetMagickCopyrightGetMagickDelegatesGetMagickFeaturesGetMagickHomeURLGetMagickLicenseGetMagickPackageNameGetMagickQuantumDepthGetMagickQuantumRangeGetMagickReleaseDateGetMagickSignatureGetMagickVersionListMagickVersion

+ +

GetMagickCopyright

+ +

GetMagickCopyright() returns the ImageMagick API copyright as a string.

+ +

The format of the GetMagickCopyright method is:

+ +
+const char *GetMagickCopyright(void)
+
+ +

GetMagickDelegates

+ +

GetMagickDelegates() returns the ImageMagick delegate libraries.

+ +

The format of the GetMagickDelegates method is:

+ +
+const char *GetMagickDelegates(void)
+
+ +

No parameters are required.

+ +

GetMagickFeatures

+ +

GetMagickFeatures() returns the ImageMagick features.

+ +

The format of the GetMagickFeatures method is:

+ +
+const char *GetMagickFeatures(void)
+
+ +

No parameters are required.

+ +

GetMagickHomeURL

+ +

GetMagickHomeURL() returns the ImageMagick home URL.

+ +

The format of the GetMagickHomeURL method is:

+ +
+char *GetMagickHomeURL(void)
+
+ +

GetMagickLicense

+ +

GetMagickLicense() returns the ImageMagick API license as a string.

+ +

The format of the GetMagickLicense method is:

+ +
+const char *GetMagickLicense(void)
+
+ +

GetMagickPackageName

+ +

GetMagickPackageName() returns the ImageMagick package name.

+ +

The format of the GetMagickName method is:

+ +
+const char *GetMagickName(void)
+
+ +

No parameters are required.

+ +

GetMagickQuantumDepth

+ +

GetMagickQuantumDepth() returns the ImageMagick quantum depth.

+ +

The format of the GetMagickQuantumDepth method is:

+ +
+const char *GetMagickQuantumDepth(size_t *depth)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
depth
+
the quantum depth is returned as a number.
+ +
+
+

GetMagickQuantumRange

+ +

GetMagickQuantumRange() returns the ImageMagick quantum range.

+ +

The format of the GetMagickQuantumRange method is:

+ +
+const char *GetMagickQuantumRange(size_t *range)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
range
+
the quantum range is returned as a number.
+ +
+
+

GetMagickReleaseDate

+ +

GetMagickReleaseDate() returns the ImageMagick release date.

+ +

The format of the GetMagickReleaseDate method is:

+ +
+const char *GetMagickReleaseDate(void)
+
+ +

No parameters are required.

+ +

GetMagickSignature

+ +

GetMagickSignature() returns a signature that uniquely encodes the MagickCore libary version, quantum depth, HDRI status, OS word size, and endianness.

+ +

The format of the GetMagickSignature method is:

+ +
+unsigned int GetMagickSignature(const StringInfo *nonce)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
nonce
+
arbitrary data.
+ +
+
+

GetMagickVersion

+ +

GetMagickVersion() returns the ImageMagick API version as a string and as a number.

+ +

The format of the GetMagickVersion method is:

+ +
+const char *GetMagickVersion(size_t *version)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
version
+
the ImageMagick version is returned as a number.
+ +
+
+

ListMagickVersion

+ +

ListMagickVersion() identifies the ImageMagick version by printing its attributes to the file. Attributes include the copyright, features, and delegates.

+ +

The format of the ListMagickVersion method is:

+ +
+void ListMagickVersion(FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
file
+
the file, typically stdout.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/api/version.php b/share/doc/ImageMagick-7/www/api/version.php new file mode 100644 index 0000000..ca390e9 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/version.php @@ -0,0 +1,263 @@ + + + + + + + + + ImageMagick: MagickCore, C API for ImageMagick: Get the Version and Copyrights + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

GetMagickCopyrightGetMagickDelegatesGetMagickFeaturesGetMagickHomeURLGetMagickLicenseGetMagickPackageNameGetMagickQuantumDepthGetMagickQuantumRangeGetMagickReleaseDateGetMagickSignatureGetMagickVersionListMagickVersion

+ +

GetMagickCopyright

+ +

GetMagickCopyright() returns the ImageMagick API copyright as a string.

+ +

The format of the GetMagickCopyright method is:

+ +
+const char *GetMagickCopyright(void)
+
+ +

GetMagickDelegates

+ +

GetMagickDelegates() returns the ImageMagick delegate libraries.

+ +

The format of the GetMagickDelegates method is:

+ +
+const char *GetMagickDelegates(void)
+
+ +

No parameters are required.

+ +

GetMagickFeatures

+ +

GetMagickFeatures() returns the ImageMagick features.

+ +

The format of the GetMagickFeatures method is:

+ +
+const char *GetMagickFeatures(void)
+
+ +

No parameters are required.

+ +

GetMagickHomeURL

+ +

GetMagickHomeURL() returns the ImageMagick home URL.

+ +

The format of the GetMagickHomeURL method is:

+ +
+char *GetMagickHomeURL(void)
+
+ +

GetMagickLicense

+ +

GetMagickLicense() returns the ImageMagick API license as a string.

+ +

The format of the GetMagickLicense method is:

+ +
+const char *GetMagickLicense(void)
+
+ +

GetMagickPackageName

+ +

GetMagickPackageName() returns the ImageMagick package name.

+ +

The format of the GetMagickName method is:

+ +
+const char *GetMagickName(void)
+
+ +

No parameters are required.

+ +

GetMagickQuantumDepth

+ +

GetMagickQuantumDepth() returns the ImageMagick quantum depth.

+ +

The format of the GetMagickQuantumDepth method is:

+ +
+const char *GetMagickQuantumDepth(size_t *depth)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
depth
+
the quantum depth is returned as a number.
+ +
+
+

GetMagickQuantumRange

+ +

GetMagickQuantumRange() returns the ImageMagick quantum range.

+ +

The format of the GetMagickQuantumRange method is:

+ +
+const char *GetMagickQuantumRange(size_t *range)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
range
+
the quantum range is returned as a number.
+ +
+
+

GetMagickReleaseDate

+ +

GetMagickReleaseDate() returns the ImageMagick release date.

+ +

The format of the GetMagickReleaseDate method is:

+ +
+const char *GetMagickReleaseDate(void)
+
+ +

No parameters are required.

+ +

GetMagickSignature

+ +

GetMagickSignature() returns a signature that uniquely encodes the MagickCore libary version, quantum depth, HDRI status, OS word size, and endianness.

+ +

The format of the GetMagickSignature method is:

+ +
+unsigned int GetMagickSignature(const StringInfo *nonce)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
nonce
+
arbitrary data.
+ +
+
+

GetMagickVersion

+ +

GetMagickVersion() returns the ImageMagick API version as a string and as a number.

+ +

The format of the GetMagickVersion method is:

+ +
+const char *GetMagickVersion(size_t *version)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
version
+
the ImageMagick version is returned as a number.
+ +
+
+

ListMagickVersion

+ +

ListMagickVersion() identifies the ImageMagick version by printing its attributes to the file. Attributes include the copyright, features, and delegates.

+ +

The format of the ListMagickVersion method is:

+ +
+void ListMagickVersion(FILE *file)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
file
+
the file, typically stdout.
+ +
+
+
+ +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/api/wand-view.html b/share/doc/ImageMagick-7/www/api/wand-view.html new file mode 100644 index 0000000..9ce6c13 --- /dev/null +++ b/share/doc/ImageMagick-7/www/api/wand-view.html @@ -0,0 +1,588 @@ + + + + + + + + + + MagickWand, C API: Wand View Methods @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+
+

CloneWandViewDestroyWandViewDuplexTransferWandViewIteratorGetWandViewExceptionGetWandViewExtentGetWandViewIteratorGetWandViewPixelsGetWandViewWandIsWandViewNewWandViewNewWandViewExtentSetWandViewDescriptionSetWandViewIteratorTransferWandViewIteratorUpdateWandViewIterator

+ +

CloneWandView

+ +

CloneWandView() makes a copy of the specified wand view.

+ +

The format of the CloneWandView method is:

+ +
+WandView *CloneWandView(const WandView *wand_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand_view
+
the wand view.
+ +
+
+

DestroyWandView

+ +

DestroyWandView() deallocates memory associated with a wand view.

+ +

The format of the DestroyWandView method is:

+ +
+WandView *DestroyWandView(WandView *wand_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand_view
+
the wand view.
+ +
+
+

DuplexTransferWandViewIterator

+ +

DuplexTransferWandViewIterator() iterates over three wand views in parallel and calls your transfer method for each scanline of the view. The source and duplex pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination wand view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

+ +

The callback signature is:

+ +
+MagickBooleanType DuplexTransferImageViewMethod(const WandView *source,
+  const WandView *duplex,WandView *destination,const ssize_t y,
+  const int thread_id,void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback transfer method that must be executed by a single thread at a time.

+ +

The format of the DuplexTransferWandViewIterator method is:

+ +
+MagickBooleanType DuplexTransferWandViewIterator(WandView *source,
+  WandView *duplex,WandView *destination,
+  DuplexTransferWandViewMethod transfer,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
source
+
the source wand view.
+ +
+
duplex
+
the duplex wand view.
+ +
+
destination
+
the destination wand view.
+ +
+
transfer
+
the transfer callback method.
+ +
+
context
+
the user defined context.
+ +
+
+

GetWandViewException

+ +

GetWandViewException() returns the severity, reason, and description of any error that occurs when utilizing a wand view.

+ +

The format of the GetWandViewException method is:

+ +
+char *GetWandViewException(const WandView *wand_view,
+  ExceptionType *severity)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand_view
+
the pixel wand_view.
+ +
+
severity
+
the severity of the error is returned here.
+ +
+
+

GetWandViewExtent

+ +

GetWandViewExtent() returns the wand view extent.

+ +

The format of the GetWandViewExtent method is:

+ +
+RectangleInfo GetWandViewExtent(const WandView *wand_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand_view
+
the wand view.
+ +
+
+

GetWandViewIterator

+ +

GetWandViewIterator() iterates over the wand view in parallel and calls your get method for each scanline of the view. The pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. Any updates to the pixels in your callback are ignored.

+ +

The callback signature is:

+ +
+MagickBooleanType GetImageViewMethod(const WandView *source,
+  const ssize_t y,const int thread_id,void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback get method that must be executed by a single thread at a time.

+ +

The format of the GetWandViewIterator method is:

+ +
+MagickBooleanType GetWandViewIterator(WandView *source,
+  GetWandViewMethod get,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
source
+
the source wand view.
+ +
+
get
+
the get callback method.
+ +
+
context
+
the user defined context.
+ +
+
+

GetWandViewPixels

+ +

GetWandViewPixels() returns the wand view pixel_wands.

+ +

The format of the GetWandViewPixels method is:

+ +
+PixelWand *GetWandViewPixels(const WandView *wand_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand_view
+
the wand view.
+ +
+
+

GetWandViewWand

+ +

GetWandViewWand() returns the magick wand associated with the wand view.

+ +

The format of the GetWandViewWand method is:

+ +
+MagickWand *GetWandViewWand(const WandView *wand_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand_view
+
the wand view.
+ +
+
+

IsWandView

+ +

IsWandView() returns MagickTrue if the the parameter is verified as a wand view object.

+ +

The format of the IsWandView method is:

+ +
+MagickBooleanType IsWandView(const WandView *wand_view)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand_view
+
the wand view.
+ +
+
+

NewWandView

+ +

NewWandView() returns a wand view required for all other methods in the Wand View API.

+ +

The format of the NewWandView method is:

+ +
+WandView *NewWandView(MagickWand *wand)
+
+ +

A description of each parameter follows:

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

NewWandViewExtent

+ +

NewWandViewExtent() returns a wand view required for all other methods in the Wand View API.

+ +

The format of the NewWandViewExtent method is:

+ +
+WandView *NewWandViewExtent(MagickWand *wand,const ssize_t x,
+  const ssize_t y,const size_t width,const size_t height)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand
+
the magick wand.
+ +
+
x,y,columns,rows
+
These values define the perimeter of a extent of pixel_wands view.
+ +
+
+

SetWandViewDescription

+ +

SetWandViewDescription() associates a description with an image view.

+ +

The format of the SetWandViewDescription method is:

+ +
+void SetWandViewDescription(WandView *image_view,const char *description)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
wand_view
+
the wand view.
+ +
+
description
+
the wand view description.
+ +
+
+

SetWandViewIterator

+ +

SetWandViewIterator() iterates over the wand view in parallel and calls your set method for each scanline of the view. The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension. The pixels are initiallly undefined and any settings you make in the callback method are automagically synced back to your image.

+ +

The callback signature is:

+ +
+MagickBooleanType SetImageViewMethod(ImageView *destination,
+  const ssize_t y,const int thread_id,void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback set method that must be executed by a single thread at a time.

+ +

The format of the SetWandViewIterator method is:

+ +
+MagickBooleanType SetWandViewIterator(WandView *destination,
+  SetWandViewMethod set,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
destination
+
the wand view.
+ +
+
set
+
the set callback method.
+ +
+
context
+
the user defined context.
+ +
+
+

TransferWandViewIterator

+ +

TransferWandViewIterator() iterates over two wand views in parallel and calls your transfer method for each scanline of the view. The source pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination wand view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.

+ +

The callback signature is:

+ +
+MagickBooleanType TransferImageViewMethod(const WandView *source,
+  WandView *destination,const ssize_t y,const int thread_id,
+  void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback transfer method that must be executed by a single thread at a time.

+ +

The format of the TransferWandViewIterator method is:

+ +
+MagickBooleanType TransferWandViewIterator(WandView *source,
+  WandView *destination,TransferWandViewMethod transfer,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
source
+
the source wand view.
+ +
+
destination
+
the destination wand view.
+ +
+
transfer
+
the transfer callback method.
+ +
+
context
+
the user defined context.
+ +
+
+

UpdateWandViewIterator

+ +

UpdateWandViewIterator() iterates over the wand view in parallel and calls your update method for each scanline of the view. The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted. Updates to pixels in your callback are automagically synced back to the image.

+ +

The callback signature is:

+ +
+MagickBooleanType UpdateImageViewMethod(WandView *source,const ssize_t y,
+  const int thread_id,void *context)
+
+ +

Use this pragma if the view is not single threaded:

+ +
+    #pragma omp critical
+
+ +

to define a section of code in your callback update method that must be executed by a single thread at a time.

+ +

The format of the UpdateWandViewIterator method is:

+ +
+MagickBooleanType UpdateWandViewIterator(WandView *source,
+  UpdateWandViewMethod update,void *context)
+
+ +

A description of each parameter follows:

+ +
+
+ +
+
+
source
+
the source wand view.
+ +
+
update
+
the update callback method.
+ +
+
context
+
the user defined context.
+ +
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/architecture.html b/share/doc/ImageMagick-7/www/architecture.html new file mode 100644 index 0000000..7582c69 --- /dev/null +++ b/share/doc/ImageMagick-7/www/architecture.html @@ -0,0 +1,1482 @@ + + + + + + + + + + Architecture @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+

The Pixel Cache • Streaming Pixels • Image Properties and Profiles • Large Image Support • Threads of Execution • Heterogeneous Distributed Processing • Custom Image Coders • Custom Image Filters

+ +

The citizens of Oz were quite content with their benefactor, the all-powerful Wizard. They accepted his wisdom and benevolence without ever questioning the who, why, and where of his power. Like the citizens of Oz, if you feel comfortable that ImageMagick can help you convert, edit, or compose your images without knowing what goes on behind the curtain, feel free to skip this section. However, if you want to know more about the software and algorithms behind ImageMagick, read on. To fully benefit from this discussion, you should be comfortable with image nomenclature and be familiar with computer programming.

+ +

Architecture Overview

+ +

An image typically consists of a rectangular region of pixels and metadata. To convert, edit, or compose an image in an efficient manner, we need convenient access to any pixel anywhere within the region (and sometimes outside the region). And in the case of an image sequence, we need access to any pixel of any region of any image in the sequence. However, there are hundreds of image formats such JPEG, TIFF, PNG, GIF, etc., that makes it difficult to access pixels on demand. Within these formats we find differences in:

+ +
    +
  • colorspace (e.g sRGB, linear RGB, linear GRAY, CMYK, YUV, Lab, etc.)
  • +
  • bit depth (.e.g 1, 4, 8, 12, 16, etc.)
  • +
  • storage format (e.g. unsigned, signed, float, double, etc.)
  • +
  • compression (e.g. uncompressed, RLE, Zip, BZip, etc.)
  • +
  • orientation (i.e. top-to-bottom, right-to-left, etc.),
  • +
  • layout (.e.g. raw, interspersed with opcodes, etc.)
  • +
+ +

In addition, some image pixels may require attenuation, some formats permit more than one frame, and some formats contain vector graphics that must first be rasterized (converted from vector to pixels).

+ +

An efficient implementation of an image processing algorithm may require we get or set:

+ +
    +
  • one pixel a time (e.g. pixel at location 10,3)
  • +
  • a single scanline (e.g. all pixels from row 4)
  • +
  • a few scanlines at once (e.g. pixel rows 4-7)
  • +
  • a single column or columns of pixels (e.g. all pixels from column 11)
  • +
  • an arbitrary region of pixels from the image (e.g. pixels defined at 10,7 to 10,19)
  • +
  • a pixel in random order (e.g. pixel at 14,15 and 640,480)
  • +
  • pixels from two different images (e.g. pixel at 5,1 from image 1 and pixel at 5,1 from image 2)
  • +
  • pixels outside the boundaries of the image (e.g. pixel at -1,-3)
  • +
  • a pixel component that is unsigned (65311) or in a floating-point representation (e.g. 0.17836)
  • +
  • a high-dynamic range pixel that can include negative values (e.g. -0.00716) as well as values that exceed the quantum depth (e.g. 65931)
  • +
  • one or more pixels simultaneously in different threads of execution
  • +
  • all the pixels in memory to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors
  • +
+ +

Some images include a clip mask that define which pixels are eligible to be updated. Pixels outside the area defined by the clip mask remain untouched.

+ +

Given the varied image formats and image processing requirements, we implemented the ImageMagick pixel cache to provide convenient sequential or parallel access to any pixel on demand anywhere inside the image region (i.e. authentic pixels) and from any image in a sequence. In addition, the pixel cache permits access to pixels outside the boundaries defined by the image (i.e. virtual pixels).

+ +

In addition to pixels, images have a plethora of image properties and profiles. Properties include the well known attributes such as width, height, depth, and colorspace. An image may have optional properties which might include the image author, a comment, a create date, and others. Some images also include profiles for color management, or EXIF, IPTC, 8BIM, or XMP informational profiles. ImageMagick provides command line options and programming methods to get, set, or view image properties or profiles or apply profiles.

+ +

ImageMagick consists of nearly a half million lines of C code and optionally depends on several million lines of code in dependent libraries (e.g. JPEG, PNG, TIFF libraries). Given that, one might expect a huge architecture document. However, a great majority of image processing is simply accessing pixels and its metadata and our simple, elegant, and efficient implementation makes this easy for the ImageMagick developer. We discuss the implementation of the pixel cache and getting and setting image properties and profiles in the next few sections. Next, we discuss using ImageMagick within a thread of execution. In the final sections, we discuss image coders to read or write a particular image format followed by a few words on creating a filter to access or update pixels based on your custom requirements.

+ +

The Pixel Cache

+ +

The ImageMagick pixel cache is a repository for image pixels with up to 32 channels. The channels are stored contiguously at the depth specified when ImageMagick was built. The channel depths are 8 bits-per-pixel component for the Q8 version of ImageMagick, 16 bits-per-pixel component for the Q16 version, and 32 bits-per-pixel component for the Q32 version. By default pixel components are 32-bit floating-bit high dynamic-range quantities. The channels can hold any value but typically contain red, green, blue, and alpha intensities or cyan, magenta, yellow, alpha intensities. A channel might contain the colormap indexes for colormapped images or the black channel for CMYK images. The pixel cache storage may be heap memory, disk-backed memory mapped, or on disk. The pixel cache is reference-counted. Only the cache properties are copied when the cache is cloned. The cache pixels are subsequently copied only when you signal your intention to update any of the pixels.

+ +

Create the Pixel Cache

+ +

The pixel cache is associated with an image when it is created and it is initialized when you try to get or put pixels. Here are three common methods to associate a pixel cache with an image:

+ +
+
Create an image canvas initialized to the background color:

+
image=AllocateImage(image_info);
+if (SetImageExtent(image,640,480) == MagickFalse)
+  { /* an exception was thrown */ }
+(void) QueryMagickColor("red",&image->background_color,&image->exception);
+SetImageBackgroundColor(image);
+
+ +
Create an image from a JPEG image on disk:

+
(void) strcpy(image_info->filename,"image.jpg"):
+image=ReadImage(image_info,exception);
+if (image == (Image *) NULL)
+  { /* an exception was thrown */ }
+
+
Create an image from a memory based image:

+
image=BlobToImage(blob_info,blob,extent,exception);
+if (image == (Image *) NULL)
+  { /* an exception was thrown */ }
+
+
+ +

In our discussion of the pixel cache, we use the MagickCore API to illustrate our points, however, the principles are the same for other program interfaces to ImageMagick.

+ +

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

+ +

Once the pixel cache is associated with an image, you typically want to get, update, or put pixels into it. We refer to pixels inside the image region as authentic pixels and outside the region as virtual pixels. Use these methods to access the pixels in the cache:

+ + +

Here is a typical MagickCore code snippet for manipulating pixels in the pixel cache. In our example, we copy pixels from the input image to the output image and decrease the intensity by 10%:

+ +
const Quantum
+  *p;
+
+Quantum
+  *q;
+
+ssize_t
+  x,
+  y;
+
+destination=CloneImage(source,source->columns,source->rows,MagickTrue,
+  exception);
+if (destination == (Image *) NULL)
+  { /* an exception was thrown */ }
+for (y=0; y < (ssize_t) source->rows; y++)
+{
+  p=GetVirtualPixels(source,0,y,source->columns,1,exception);
+  q=GetAuthenticPixels(destination,0,y,destination->columns,1,exception);
+  if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL)
+    break;
+  for (x=0; x < (ssize_t) source->columns; x++)
+  {
+    SetPixelRed(image,90*p->red/100,q);
+    SetPixelGreen(image,90*p->green/100,q);
+    SetPixelBlue(image,90*p->blue/100,q);
+    SetPixelAlpha(image,90*p->opacity/100,q);
+    p+=GetPixelChannels(source);
+    q+=GetPixelChannels(destination);
+  }
+  if (SyncAuthenticPixels(destination,exception) == MagickFalse)
+    break;
+}
+if (y < (ssize_t) source->rows)
+  { /* an exception was thrown */ }
+
+ +

When we first create the destination image by cloning the source image, the pixel cache pixels are not copied. They are only copied when you signal your intentions to modify or set the pixel cache by calling GetAuthenticPixels() or QueueAuthenticPixels(). Use QueueAuthenticPixels() if you want to set new pixel values rather than update existing ones. You could use GetAuthenticPixels() to set pixel values but it is slightly more efficient to use QueueAuthenticPixels() instead. Finally, use SyncAuthenticPixels() to ensure any updated pixels are pushed to the pixel cache.

+ +

You can associate arbitrary content with each pixel, called meta content. Use GetVirtualMetacontent() (to read the content) or GetAuthenticMetacontent() (to update the content) to gain access to this content. For example, to print the metacontent, use:

+ +
const void
+  *metacontent;
+
+for (y=0; y < (ssize_t) source->rows; y++)
+{
+  p=GetVirtualPixels(source,0,y,source->columns,1);
+  if (p == (const Quantum *) NULL)
+    break;
+  metacontent=GetVirtualMetacontent(source);
+  /* print meta content here */
+}
+if (y < (ssize_t) source->rows)
+  /* an exception was thrown */
+
+ +

The pixel cache manager decides whether to give you direct or indirect access to the image pixels. In some cases the pixels are staged to an intermediate buffer-- and that is why you must call SyncAuthenticPixels() to ensure this buffer is pushed out to the pixel cache to guarantee the corresponding pixels in the cache are updated. For this reason we recommend that you only read or update a scanline or a few scanlines of pixels at a time. However, you can get any rectangular region of pixels you want. GetAuthenticPixels() requires that the region you request is within the bounds of the image area. For a 640 by 480 image, you can get a scanline of 640 pixels at row 479 but if you ask for a scanline at row 480, an exception is returned (rows are numbered starting at 0). GetVirtualPixels() does not have this constraint. For example,

+ +
p=GetVirtualPixels(source,-3,-3,source->columns+3,6,exception);
+
+ +

gives you the pixels you asked for without complaint, even though some are not within the confines of the image region.

+ +

Virtual Pixels

+ +

There are a plethora of image processing algorithms that require a neighborhood of pixels about a pixel of interest. The algorithm typically includes a caveat concerning how to handle pixels around the image boundaries, known as edge pixels. With virtual pixels, you do not need to concern yourself about special edge processing other than choosing which virtual pixel method is most appropriate for your algorithm.

+

Access to the virtual pixels are controlled by the SetImageVirtualPixelMethod() method from the MagickCore API or the ‑virtual‑pixel option from the command line. The methods include:

+ +
+
background
+
the area surrounding the image is the background color
+
black
+
the area surrounding the image is black
+
checker-tile
+
alternate squares with image and background color
+
dither
+
non-random 32x32 dithered pattern
+
edge
+
extend the edge pixel toward infinity (default)
+
gray
+
the area surrounding the image is gray
+
horizontal-tile
+
horizontally tile the image, background color above/below
+
horizontal-tile-edge
+
horizontally tile the image and replicate the side edge pixels
+
mirror
+
mirror tile the image
+
random
+
choose a random pixel from the image
+
tile
+
tile the image
+
transparent
+
the area surrounding the image is transparent blackness
+
vertical-tile
+
vertically tile the image, sides are background color
+
vertical-tile-edge
+
vertically tile the image and replicate the side edge pixels
+
white
+
the area surrounding the image is white
+
+ + +

Cache Storage and Resource Requirements

+ +

Recall that this simple and elegant design of the ImageMagick pixel cache comes at a cost in terms of storage and processing speed. The pixel cache storage requirements scales with the area of the image and the bit depth of the pixel components. For example, if we have a 640 by 480 image and we are using the non-HDRI Q16 version of ImageMagick, the pixel cache consumes image width * height * bit-depth / 8 * channels bytes or approximately 2.3 mebibytes (i.e. 640 * 480 * 2 * 4). Not too bad, but what if your image is 25000 by 25000 pixels? The pixel cache requires approximately 4.7 gibibytes of storage. Ouch. ImageMagick accounts for possible huge storage requirements by caching large images to disk rather than memory. Typically the pixel cache is stored in memory using heap memory. If heap memory is exhausted, we create the pixel cache on disk and attempt to memory-map it. If memory-map memory is exhausted, we simply use standard disk I/O. Disk storage is cheap but it is also very slow, upwards of 1000 times slower than memory. We can get some speed improvements, up to 5 times, if we use memory mapping to the disk-based cache. These decisions about storage are made automagically by the pixel cache manager negotiating with the operating system. However, you can influence how the pixel cache manager allocates the pixel cache with cache resource limits. The limits include:

+ +
+
width
+
maximum width of an image. Exceed this limit and an exception is thrown and processing stops.
+
height
+
maximum height of an image. Exceed this limit and an exception is thrown and processing stops.
+
area
+
maximum area in bytes of any one image that can reside in the pixel cache memory. If this limit is exceeded, the image is automagically cached to disk and optionally memory-mapped.
+
memory
+
maximum amount of memory in bytes to allocate for the pixel cache from the heap.
+
map
+
maximum amount of memory map in bytes to allocate for the pixel cache.
+
disk
+
maximum amount of disk space in bytes permitted for use by the pixel cache. If this limit is exceeded, the pixel cache is not created and a fatal exception is thrown.
+
files
+
maximum number of open pixel cache files. When this limit is exceeded, any subsequent pixels cached to disk are closed and reopened on demand. This behavior permits a large number of images to be accessed simultaneously on disk, but without a speed penalty due to repeated open/close calls.
+
thread
+
maximum number of threads that are permitted to run in parallel.
+
time
+
maximum number of seconds that the process is permitted to execute. Exceed this limit and an exception is thrown and processing stops.
+
+ +

Note, these limits pertain to the ImageMagick pixel cache. Certain algorithms within ImageMagick do not respect these limits nor does any of the external delegate libraries (e.g. JPEG, TIFF, etc.).

+ +

To determine the current setting of these limits, use this command:

+
-> identify -list resource
+Resource limits:
+  Width: 100MP
+  Height: 100MP
+  Area: 25.181GB
+  Memory: 11.726GiB
+  Map: 23.452GiB
+  Disk: unlimited
+  File: 768
+  Thread: 12
+  Throttle: 0
+  Time: unlimited
+
+ +

You can set these limits either as a security policy (see policy.xml), with an environment variable, with the -limit command line option, or with the SetMagickResourceLimit() MagickCore API method. As an example, our online web interface to ImageMagick, ImageMagick Studio, includes these policy limits to help prevent a denial-of-service:

+
<policymap>
+  <policy domain="resource" name="temporary-path" value="/tmp"/>
+  <policy domain="resource" name="memory" value="256MiB"/>
+  <policy domain="resource" name="map" value="512MiB"/>
+  <policy domain="resource" name="width" value="8KP"/>
+  <policy domain="resource" name="height" value="8KP"/>
+  <policy domain="resource" name="area" value="128MB"/>
+  <policy domain="resource" name="disk" value="1GiB"/>
+  <policy domain="resource" name="file" value="768"/>
+  <policy domain="resource" name="thread" value="2"/>
+  <policy domain="resource" name="throttle" value="0"/>
+  <policy domain="resource" name="time" value="120"/>
+  <policy domain="system" name="precision" value="6"/>
+  <policy domain="cache" name="shared-secret" value="replace with your secret phrase" stealth="true"/>
+  <policy domain="delegate" rights="none" pattern="HTTPS" />
+  <policy domain="path" rights="none" pattern="@*"/>  <!-- indirect reads not permitted -->
+</policymap>
+
+

Since we process multiple simultaneous sessions, we don't 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 you can prevent the use of any delegate or all delegates (set the pattern to "*"). Note, prior to this release, use a domain of "coder" to prevent delegate usage (e.g. domain="coder" rights="none" pattern="HTTPS"). 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 remove this policy.

+ +

Note, the cache limits are global to each invocation of ImageMagick, meaning if you create several images, the combined resource requirements are compared to the limit to determine the pixel cache storage disposition.

+ +

To determine which type and how much resources are consumed by the pixel cache, add the -debug cache option to the command-line:

+
-> convert -debug cache logo: -sharpen 3x2 null:
+2016-12-17T13:33:42-05:00 0:00.000 0.000u 7.0.0 Cache convert: cache.c/DestroyPixelCache/1275/Cache
+  destroy 
+2016-12-17T13:33:42-05:00 0:00.000 0.000u 7.0.0 Cache convert: cache.c/OpenPixelCache/3834/Cache
+  open LOGO[0] (Heap Memory, 640x480x4 4.688MiB)
+2016-12-17T13:33:42-05:00 0:00.010 0.000u 7.0.0 Cache convert: cache.c/OpenPixelCache/3834/Cache
+  open LOGO[0] (Heap Memory, 640x480x3 3.516MiB)
+2016-12-17T13:33:42-05:00 0:00.010 0.000u 7.0.0 Cache convert: cache.c/ClonePixelCachePixels/1044/Cache
+  Memory => Memory
+2016-12-17T13:33:42-05:00 0:00.020 0.010u 7.0.0 Cache convert: cache.c/ClonePixelCachePixels/1044/Cache
+  Memory => Memory
+2016-12-17T13:33:42-05:00 0:00.020 0.010u 7.0.0 Cache convert: cache.c/OpenPixelCache/3834/Cache
+  open LOGO[0] (Heap Memory, 640x480x3 3.516MiB)
+2016-12-17T13:33:42-05:00 0:00.050 0.100u 7.0.0 Cache convert: cache.c/DestroyPixelCache/1275/Cache
+  destroy LOGO[0]
+2016-12-17T13:33:42-05:00 0:00.050 0.100u 7.0.0 Cache convert: cache.c/DestroyPixelCache/1275/Cache
+  destroy LOGO[0]
+
+

This command utilizes a pixel cache in memory. The logo consumed 4.688MiB and after it was sharpened, 3.516MiB.

+ + +

Distributed Pixel Cache

+

A distributed pixel cache is an extension of the traditional pixel cache available on a single host. The distributed pixel cache may span multiple servers so that it can grow in size and transactional capacity to support very large images. Start up the pixel cache server on one or more machines. When you read or operate on an image and the local pixel cache resources are exhausted, ImageMagick contacts one or more of these remote pixel servers to store or retrieve pixels. The distributed pixel cache relies on network bandwidth to marshal pixels to and from the remote server. As such, it will likely be significantly slower than a pixel cache utilizing local storage (e.g. memory, disk, etc.).

+
convert -distribute-cache 6668 &  // start on 192.168.100.50
+convert -define registry:cache:hosts=192.168.100.50:6668 myimage.jpg -sharpen 5x2 mimage.png
+
+ +

Cache Views

+ +

GetVirtualPixels(), GetAuthenticPixels(), QueueAuthenticPixels(), and SyncAuthenticPixels(), from the MagickCore API, can only deal with one pixel cache area per image at a time. Suppose you want to access the first and last scanline from the same image at the same time? The solution is to use a cache view. A cache view permits you to access as many areas simultaneously in the pixel cache as you require. The cache view methods are analogous to the previous methods except you must first open a view and close it when you are finished with it. Here is a snippet of MagickCore code that permits us to access the first and last pixel row of the image simultaneously:

+
CacheView
+  *view_1,
+  *view_2;
+
+view_1=AcquireVirtualCacheView(source,exception);
+view_2=AcquireVirtualCacheView(source,exception);
+for (y=0; y < (ssize_t) source->rows; y++)
+{
+  u=GetCacheViewVirtualPixels(view_1,0,y,source->columns,1,exception);
+  v=GetCacheViewVirtualPixels(view_2,0,source->rows-y-1,source->columns,1,exception);
+  if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL))
+    break;
+  for (x=0; x < (ssize_t) source->columns; x++)
+  {
+    /* do something with u & v here */
+  }
+}
+view_2=DestroyCacheView(view_2);
+view_1=DestroyCacheView(view_1);
+if (y < (ssize_t) source->rows)
+  { /* an exception was thrown */ }
+
+ +

Magick Persistent Cache Format

+ +

Recall that each image format is decoded by ImageMagick and the pixels are deposited in the pixel cache. If you write an image, the pixels are read from the pixel cache and encoded as required by the format you are writing (e.g. GIF, PNG, etc.). The Magick Persistent Cache (MPC) format is designed to eliminate the overhead of decoding and encoding pixels to and from an image format. MPC writes two files. One, with the extension .mpc, retains all the properties associated with the image or image sequence (e.g. width, height, colorspace, etc.) and the second, with the extension .cache, is the pixel cache in the native raw format. When reading an MPC image file, ImageMagick reads the image properties and memory maps the pixel cache on disk eliminating the need for decoding the image pixels. The tradeoff is in disk space. MPC is generally larger in file size than most other image formats.

+

The most efficient use of MPC image files is a write-once, read-many-times pattern. For example, your workflow requires extracting random blocks of pixels from the source image. Rather than re-reading and possibly decompressing the source image each time, we use MPC and map the image directly to memory.

+ +

Best Practices

+ +

Although you can request any pixel from the pixel cache, any block of pixels, any scanline, multiple scanlines, any row, or multiple rows with the GetVirtualPixels(), GetAuthenticPixels(), QueueAuthenticPixels, GetCacheViewVirtualPixels(), GetCacheViewAuthenticPixels(), and QueueCacheViewAuthenticPixels() methods, ImageMagick is optimized to return a few pixels or a few pixels rows at time. There are additional optimizations if you request a single scanline or a few scanlines at a time. These methods also permit random access to the pixel cache, however, ImageMagick is optimized for sequential access. Although you can access scanlines of pixels sequentially from the last row of the image to the first, you may get a performance boost if you access scanlines from the first row of the image to the last, in sequential order.

+ +

You can get, modify, or set pixels in row or column order. However, it is more efficient to access the pixels by row rather than by column.

+ +

If you update pixels returned from GetAuthenticPixels() or GetCacheViewAuthenticPixels(), don't forget to call SyncAuthenticPixels() or SyncCacheViewAuthenticPixels() respectively to ensure your changes are synchronized with the pixel cache.

+ +

Use QueueAuthenticPixels() or QueueCacheViewAuthenticPixels() if you are setting an initial pixel value. The GetAuthenticPixels() or GetCacheViewAuthenticPixels() method reads pixels from the cache and if you are setting an initial pixel value, this read is unnecessary. Don't forget to call SyncAuthenticPixels() or SyncCacheViewAuthenticPixels() respectively to push any pixel changes to the pixel cache.

+ +

GetVirtualPixels(), GetAuthenticPixels(), QueueAuthenticPixels(), and SyncAuthenticPixels() are slightly more efficient than their cache view counter-parts. However, cache views are required if you need access to more than one region of the image simultaneously or if more than one thread of execution is accessing the image.

+ +

You can request pixels outside the bounds of the image with GetVirtualPixels() or GetCacheViewVirtualPixels(), however, it is more efficient to request pixels within the confines of the image region.

+ +

Although you can force the pixel cache to disk using appropriate resource limits, disk access can be upwards of 1000 times slower than memory access. For fast, efficient, access to the pixel cache, try to keep the pixel cache in heap memory.

+ +

The ImageMagick Q16 version of ImageMagick permits you to read and write 16 bit images without scaling but the pixel cache consumes twice as many resources as the Q8 version. If your system has constrained memory or disk resources, consider the Q8 version of ImageMagick. In addition, the Q8 version typically executes faster than the Q16 version.

+ +

A great majority of image formats and algorithms restrict themselves to a fixed range of pixel values from 0 to some maximum value, for example, the Q16 version of ImageMagick permit intensities from 0 to 65535. High dynamic-range imaging (HDRI), however, permits a far greater dynamic range of exposures (i.e. a large difference between light and dark areas) than standard digital imaging techniques. HDRI accurately represents the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows. Enable HDRI at ImageMagick build time to deal with high dynamic-range images, but be mindful that each pixel component is a 32-bit floating point value. In addition, pixel values are not clamped by default so some algorithms may have unexpected results due to out-of-band pixel values than the non-HDRI version.

+ +

If you are dealing with large images, make sure the pixel cache is written to a disk area with plenty of free space. Under Unix, this is typically /tmp and for Windows, c:/temp. You can tell ImageMagick to write the pixel cache to an alternate location and conserve memory with these options:

+
convert -limit memory 2GB -limit map 4GB -define registry:temporary-path=/data/tmp ...
+
+ +

Set global resource limits for your environment in the policy.xml configuration file.

+ +

If you plan on processing the same image many times, consider the MPC format. Reading a MPC image has near-zero overhead because its in the native pixel cache format eliminating the need for decoding the image pixels. Here is an example:

+
convert image.tif image.mpc
+convert image.mpc -crop 100x100+0+0 +repage 1.png
+convert image.mpc -crop 100x100+100+0 +repage 2.png
+convert image.mpc -crop 100x100+200+0 +repage 3.png
+
+ +

MPC is ideal for web sites. It reduces the overhead of reading and writing an image. We use it exclusively at our online image studio.

+ +

Streaming Pixels

+ +

ImageMagick provides for streaming pixels as they are read from or written to an image. This has several advantages over the pixel cache. The time and resources consumed by the pixel cache scale with the area of an image, whereas the pixel stream resources scale with the width of an image. The disadvantage is the pixels must be consumed as they are streamed so there is no persistence.

+ +

Use ReadStream() or WriteStream() with an appropriate callback method in your MagickCore program to consume the pixels as they are streaming. Here's an abbreviated example of using ReadStream:

+
static size_t StreamPixels(const Image *image,const void *pixels,const size_t columns)
+{
+  register const Quantum
+    *p;
+
+  MyData
+    *my_data;
+
+  my_data=(MyData *) image->client_data;
+  p=(Quantum *) pixels;
+  if (p != (const Quantum *) NULL)
+    {
+      /* process pixels here */
+    }
+  return(columns);
+}
+
+...
+
+/* invoke the pixel stream here */
+image_info->client_data=(void *) MyData;
+image=ReadStream(image_info,&StreamPixels,exception);
+
+ +

We also provide a lightweight tool, stream, 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. A majority of the image formats stream pixels (red, green, and blue) from left to right and top to bottom. However, a few formats do not support this common ordering (e.g. the PSD format).

+ +

Image Properties and Profiles

+ +

Images have metadata associated with them in the form of properties (e.g. width, height, description, etc.) and profiles (e.g. EXIF, IPTC, color management). ImageMagick provides convenient methods to get, set, or update image properties and get, set, update, or apply profiles. Some of the more popular image properties are associated with the Image structure in the MagickCore API. For example:

+
(void) printf("image width: %lu, height: %lu\n",image->columns,image->rows);
+
+ +

For a great majority of image properties, such as an image comment or description, we use the GetImageProperty() and SetImageProperty() methods. Here we set a property and fetch it right back:

+
const char
+  *comment;
+
+(void) SetImageProperty(image,"comment","This space for rent");
+comment=GetImageProperty(image,"comment");
+if (comment == (const char *) NULL)
+  (void) printf("Image comment: %s\n",comment);
+
+ +

ImageMagick supports artifacts with the GetImageArtifact() and SetImageArtifact() methods. Artifacts are stealth properties that are not exported to image formats (e.g. PNG).

+ +

Image profiles are handled with GetImageProfile(), SetImageProfile(), and ProfileImage() methods. Here we set a profile and fetch it right back:

+
StringInfo
+  *profile;
+
+profile=AcquireStringInfo(length);
+SetStringInfoDatum(profile,my_exif_profile);
+(void) SetImageProfile(image,"EXIF",profile);
+DestroyStringInfo(profile);
+profile=GetImageProfile(image,"EXIF");
+if (profile != (StringInfo *) NULL)
+  (void) PrintStringInfo(stdout,"EXIF",profile);
+
+ +

Large Image Support

+

ImageMagick can read, process, or write mega-, giga-, or tera-pixel image sizes. An image width or height can range from 1 to 2 giga-pixels on a 32 bit OS and up to 9 exa-pixels on a 64-bit OS. Note, that some image formats have restrictions on image size. For example, Photoshop images are limited to 300,000 pixels for width or height. Here we resize an image to a quarter million pixels square:

+
convert logo: -resize 250000x250000 logo.miff
+
+ +

For large images, ImageMagick will likely create a pixel cache on disk. Make sure you have plenty of temporary disk space. If your default temporary disk partition is too small, tell ImageMagick to use another partition with plenty of free space. For example:

+
convert -define registry:temporary-path=/data/tmp logo:  \ 
-resize 250000x250000 logo.miff +
+ +

To ensure large images do not consume all the memory on your system, force the image pixels to memory-mapped disk with resource limits:

+
convert -define registry:temporary-path=/data/tmp -limit memory 16mb \
+  logo: -resize 250000x250000 logo.miff
+
+ +

Here we force all image pixels to disk:

+
convert -define registry:temporary-path=/data/tmp -limit area 0 \
+  logo: -resize 250000x250000 logo.miff
+
+ +

Caching pixels to disk is about 1000 times slower than memory. Expect long run times when processing large images on disk with ImageMagick. You can monitor progress with this command:

+
convert -monitor -limit memory 2GiB -limit map 4GiB -define registry:temporary-path=/data/tmp \
+  logo: -resize 250000x250000 logo.miff
+
+ +

For really large images, or if there is limited resources on your host, you can utilize a distributed pixel cache on one or more remote hosts:

+
convert -distribute-cache 6668 &  // start on 192.168.100.50
+convert -distribute-cache 6668 &  // start on 192.168.100.51
+convert -limit memory 2mb -limit map 2mb -limit disk 2gb \
+  -define registry:cache:hosts=192.168.100.50:6668,192.168.100.51:6668 \
+  myhugeimage.jpg -sharpen 5x2 myhugeimage.png
+
+ +

Threads of Execution

+ +

Many of ImageMagick's internal algorithms are threaded to take advantage of speed-ups offered by the multicore processor chips. However, you are welcome to use ImageMagick algorithms in your threads of execution with the exception of the MagickCore's GetVirtualPixels(), GetAuthenticPixels(), QueueAuthenticPixels(), or SyncAuthenticPixels() pixel cache methods. These methods are intended for one thread of execution only with the exception of an OpenMP parallel section. To access the pixel cache with more than one thread of execution, use a cache view. We do this for the CompositeImage() method, for example. Suppose we want to composite a single image over a different image in each thread of execution. If we use GetVirtualPixels(), the results are unpredictable because multiple threads would likely be asking for different areas of the pixel cache simultaneously. Instead we use GetCacheViewVirtualPixels() which creates a unique view for each thread of execution ensuring our program behaves properly regardless of how many threads are invoked. The other program interfaces, such as the MagickWand API, are completely thread safe so there are no special precautions for threads of execution.

+ +

Here is an MagickCore code snippet that takes advantage of threads of execution with the OpenMP programming paradigm:

+
CacheView
+  *image_view;
+
+MagickBooleanType
+  status;
+
+ssize_t
+  y;
+
+status=MagickTrue;
+image_view=AcquireVirtualCacheView(image,exception);
+#pragma omp parallel for schedule(dynamic,4) shared(status)
+for (y=0; y < (ssize_t) image->rows; y++)
+{
+  register Quantum
+    *q;
+
+  register ssize_t
+    x;
+
+  register void
+    *metacontent;
+
+  if (status == MagickFalse)
+    continue;
+  q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
+  if (q == (Quantum *) NULL)
+    {
+      status=MagickFalse;
+      continue;
+    }
+  metacontent=GetCacheViewAuthenticMetacontent(image_view);
+  for (x=0; x < (ssize_t) image->columns; x++)
+  {
+    SetPixelRed(image,...,q);
+    SetPixelGreen(image,...,q);
+    SetPixelBlue(image,...,q);
+    SetPixelAlpha(image,...,q);
+    if (metacontent != NULL)
+      metacontent[indexes+x]=...;
+    q+=GetPixelChannels(image);
+  }
+  if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
+    status=MagickFalse;
+}
+image_view=DestroyCacheView(image_view);
+if (status == MagickFalse)
+  perror("something went wrong");
+
+ +

This code snippet converts an uncompressed Windows bitmap to a Magick++ image:

+
#include "Magick++.h"
+#include <assert.h>
+#include "omp.h"
+
+void ConvertBMPToImage(const BITMAPINFOHEADER *bmp_info,
+  const unsigned char *restrict pixels,Magick::Image *image)
+{
+  /*
+    Prepare the image so that we can modify the pixels directly.
+  */
+  assert(bmp_info->biCompression == BI_RGB);
+  assert(bmp_info->biWidth == image->columns());
+  assert(abs(bmp_info->biHeight) == image->rows());
+  image->modifyImage();
+  if (bmp_info->biBitCount == 24)
+    image->type(MagickCore::TrueColorType);
+  else
+    image->type(MagickCore::TrueColorMatteType);
+  register unsigned int bytes_per_row=bmp_info->biWidth*bmp_info->biBitCount/8;
+  if (bytes_per_row % 4 != 0) {
+    bytes_per_row=bytes_per_row+(4-bytes_per_row % 4);  // divisible by 4.
+  }
+  /*
+    Copy all pixel data, row by row.
+  */
+  #pragma omp parallel for
+  for (int y=0; y < int(image->rows()); y++)
+  {
+    int
+      row;
+
+    register const unsigned char
+      *restrict p;
+
+    register MagickCore::Quantum
+      *restrict q;
+
+    row=(bmp_info->biHeight > 0) ? (image->rows()-y-1) : y;
+    p=pixels+row*bytes_per_row;
+    q=image->setPixels(0,y,image->columns(),1);
+    for (int x=0; x < int(image->columns()); x++)
+    {
+      SetPixelBlue(image,p[0],q);
+      SetPixelGreen(image,p[1],q);
+      SetPixelRed(image,p[2],q);
+      if (bmp_info->biBitCount == 32) {
+        SetPixelAlpha(image,p[3],q);
+      }
+      q+=GetPixelChannels(image);
+      p+=bmp_info->biBitCount/8;
+    }
+    image->syncPixels();  // sync pixels to pixel cache.
+  }
+  return;
+}
+ +

If you call the ImageMagick API from your OpenMP-enabled application and you intend to dynamically increase the number of threads available in subsequent parallel regions, be sure to perform the increase before you call the API otherwise ImageMagick may fault.

+ +

MagickWand supports wand views. A view iterates over the entire, or portion, of the image in parallel and for each row of pixels, it invokes a callback method you provide. This limits most of your parallel programming activity to just that one module. There are similar methods in MagickCore. For an example, see the same sigmoidal contrast algorithm implemented in both MagickWand and MagickCore.

+ +

In most circumstances, the default number of threads is set to the number of processor cores on your system for optimal performance. However, if your system is hyperthreaded or if you are running on a virtual host and only a subset of the processors are available to your server instance, you might get an increase in performance by setting the thread policy or the MAGICK_THREAD_LIMIT environment variable. For example, your virtual host has 8 processors but only 2 are assigned to your server instance. The default of 8 threads can cause severe performance problems. One solution is to limit the number of threads to the available processors in your policy.xml configuration file:

+
<policy domain="resource" name="thread" value="2"/>
+
+ +

Or suppose your 12 core hyperthreaded computer defaults to 24 threads. Set the MAGICK_THREAD_LIMIT environment variable and you will likely get improved performance:

+
export MAGICK_THREAD_LIMIT=12
+
+ +

The OpenMP committee has not defined the behavior of mixing OpenMP with other threading models such as Posix threads. However, using modern releases of Linux, OpenMP and Posix threads appear to interoperate without complaint. If you want to use Posix threads from a program module that calls one of the ImageMagick application programming interfaces (e.g. MagickCore, MagickWand, Magick++, etc.) from Mac OS X or an older Linux release, you may need to disable OpenMP support within ImageMagick. Add the --disable-openmp option to the configure script command line and rebuild and reinstall ImageMagick.

+ +

Threading Performance

+

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

+
-> convert -bench 10 model.png -sharpen 5x2 null:
+Performance[1]: 10i 1.135ips 1.000e 8.760u 0:08.810
+Performance[2]: 10i 2.020ips 0.640e 9.190u 0:04.950
+Performance[3]: 10i 2.786ips 0.710e 9.400u 0:03.590
+Performance[4]: 10i 3.378ips 0.749e 9.580u 0:02.960
+Performance[5]: 10i 4.032ips 0.780e 9.580u 0:02.480
+Performance[6]: 10i 4.566ips 0.801e 9.640u 0:02.190
+Performance[7]: 10i 3.788ips 0.769e 10.980u 0:02.640
+Performance[8]: 10i 4.115ips 0.784e 12.030u 0:02.430
+Performance[9]: 10i 4.484ips 0.798e 12.860u 0:02.230
+Performance[10]: 10i 4.274ips 0.790e 14.830u 0:02.340
+Performance[11]: 10i 4.348ips 0.793e 16.500u 0:02.300
+Performance[12]: 10i 4.525ips 0.799e 18.320u 0:02.210
+
+

The sweet spot for this example is 6 threads. This makes sense since there are 6 physical cores. The other 6 are hyperthreads. It appears that sharpening does not benefit from hyperthreading.

+

In certain cases, it might be optimal to set the number of threads to 1 or to disable OpenMP completely with the MAGICK_THREAD_LIMIT environment variable, -limit command line option, or the policy.xml configuration file.

+ +

Heterogeneous Distributed Processing

+

ImageMagick includes support for heterogeneous distributed processing with the OpenCL framework. OpenCL kernels within ImageMagick permit image processing algorithms to execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. Depending on your platform, speed-ups can be an order of magnitude faster than the traditional single CPU.

+ +

First verify that your version of ImageMagick includes support for the OpenCL feature:

+
identify -version
+Features: DPC Cipher Modules OpenCL OpenMP
+
+ +

If so, run this command to realize a significant speed-up for image convolution:

+ +
convert image.png -convolve '-1, -1, -1, -1, 9, -1, -1, -1, -1' convolve.png
+
+ +

If an accelerator is not available or if the accelerator fails to respond, ImageMagick reverts to the non-accelerated convolution algorithm.

+ +

Here is an example OpenCL kernel that convolves an image:

+
static inline long ClampToCanvas(const long offset,const ulong range)
+{
+  if (offset < 0L)
+    return(0L);
+  if (offset >= range)
+    return((long) (range-1L));
+  return(offset);
+}
+
+static inline CLQuantum ClampToQuantum(const float value)
+{
+  if (value < 0.0)
+    return((CLQuantum) 0);
+  if (value >= (float) QuantumRange)
+    return((CLQuantum) QuantumRange);
+  return((CLQuantum) (value+0.5));
+}
+
+__kernel void Convolve(const __global CLPixelType *source,__constant float *filter,
+  const ulong width,const ulong height,__global CLPixelType *destination)
+{
+  const ulong columns = get_global_size(0);
+  const ulong rows = get_global_size(1);
+
+  const long x = get_global_id(0);
+  const long y = get_global_id(1);
+
+  const float scale = (1.0/QuantumRange);
+  const long mid_width = (width-1)/2;
+  const long mid_height = (height-1)/2;
+  float4 sum = { 0.0, 0.0, 0.0, 0.0 };
+  float gamma = 0.0;
+  register ulong i = 0;
+
+  for (long v=(-mid_height); v <= mid_height; v++)
+  {
+    for (long u=(-mid_width); u <= mid_width; u++)
+    {
+      register const ulong index=ClampToCanvas(y+v,rows)*columns+ClampToCanvas(x+u,
+        columns);
+      const float alpha=scale*(QuantumRange-source[index].w);
+      sum.x+=alpha*filter[i]*source[index].x;
+      sum.y+=alpha*filter[i]*source[index].y;
+      sum.z+=alpha*filter[i]*source[index].z;
+      sum.w+=filter[i]*source[index].w;
+      gamma+=alpha*filter[i];
+      i++;
+    }
+  }
+
+  gamma=1.0/(fabs(gamma) <= MagickEpsilon ? 1.0 : gamma);
+  const ulong index=y*columns+x;
+  destination[index].x=ClampToQuantum(gamma*sum.x);
+  destination[index].y=ClampToQuantum(gamma*sum.y);
+  destination[index].z=ClampToQuantum(gamma*sum.z);
+  destination[index].w=ClampToQuantum(sum.w);
+};
+ +

See magick/accelerate.c for a complete implementation of image convolution with an OpenCL kernel.

+ +

Note, that under Windows, you might have an issue with TDR (Timeout Detection and Recovery of GPUs). Its purpose is to detect runaway tasks hanging the GPU by using an execution time threshold. For some older low-end GPUs running the OpenCL filters in ImageMagick, longer execution times might trigger the TDR mechanism and pre-empt the GPU image filter. When this happens, ImageMagick automatically falls back to the CPU code path and returns the expected results. To avoid pre-emption, increase the TdrDelay registry key.

+ +

Custom Image Coders

+ +

An image coder (i.e. encoder / decoder) is responsible for registering, optionally classifying, optionally reading, optionally writing, and unregistering one image format (e.g. PNG, GIF, JPEG, etc.). Registering an image coder alerts ImageMagick a particular format is available to read or write. While unregistering tells ImageMagick the format is no longer available. The classifying method looks at the first few bytes of an image and determines if the image is in the expected format. The reader sets the image size, colorspace, and other properties and loads the pixel cache with the pixels. The reader returns a single image or an image sequence (if the format supports multiple images per file), or if an error occurs, an exception and a null image. The writer does the reverse. It takes the image properties and unloads the pixel cache and writes them as required by the image format.

+ +

Here is a listing of a sample custom coder. It reads and writes images in the MGK image format which is simply an ID followed by the image width and height followed by the RGB pixel values.

+
#include <MagickCore/studio.h>
+#include <MagickCore/blob.h>
+#include <MagickCore/cache.h>
+#include <MagickCore/colorspace.h>
+#include <MagickCore/exception.h>
+#include <MagickCore/image.h>
+#include <MagickCore/list.h>
+#include <MagickCore/magick.h>
+#include <MagickCore/memory_.h>
+#include <MagickCore/monitor.h>
+#include <MagickCore/pixel-accessor.h>
+#include <MagickCore/string_.h>
+#include <MagickCore/module.h>
+#include "filter/blob-private.h"
+#include "filter/exception-private.h"
+#include "filter/image-private.h"
+#include "filter/monitor-private.h"
+#include "filter/quantum-private.h"
+
+/*
+  Forward declarations.
+*/
+static MagickBooleanType
+  WriteMGKImage(const ImageInfo *,Image *,ExceptionInfo *);
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   I s M G K                                                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  IsMGK() returns MagickTrue if the image format type, identified by the
+%  magick string, is MGK.
+%
+%  The format of the IsMGK method is:
+%
+%      MagickBooleanType IsMGK(const unsigned char *magick,const size_t length)
+%
+%  A description of each parameter follows:
+%
+%    o magick: This string is generally the first few bytes of an image file
+%      or blob.
+%
+%    o length: Specifies the length of the magick string.
+%
+*/
+static MagickBooleanType IsMGK(const unsigned char *magick,const size_t length)
+{
+  if (length < 7)
+    return(MagickFalse);
+  if (LocaleNCompare((char *) magick,"id=mgk",7) == 0)
+    return(MagickTrue);
+  return(MagickFalse);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   R e a d M G K I m a g e                                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ReadMGKImage() reads a MGK image file and returns it.  It allocates the
+%  memory necessary for the new Image structure and returns a pointer to the
+%  new image.
+%
+%  The format of the ReadMGKImage method is:
+%
+%      Image *ReadMGKImage(const ImageInfo *image_info,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image_info: the image info.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+static Image *ReadMGKImage(const ImageInfo *image_info,ExceptionInfo *exception)
+{
+  char
+    buffer[MaxTextExtent];
+
+  Image
+    *image;
+
+  long
+    y;
+
+  MagickBooleanType
+    status;
+
+  register long
+    x;
+
+  register Quantum
+    *q;
+
+  register unsigned char
+    *p;
+
+  ssize_t
+    count;
+
+  unsigned char
+    *pixels;
+
+  unsigned long
+    columns,
+    rows;
+
+  /*
+    Open image file.
+  */
+  assert(image_info != (const ImageInfo *) NULL);
+  assert(image_info->signature == MagickCoreSignature);
+  if (image_info->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+      image_info->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  image=AcquireImage(image_info,exception);
+  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+  if (status == MagickFalse)
+    {
+      image=DestroyImageList(image);
+      return((Image *) NULL);
+    }
+  /*
+    Read MGK image.
+  */
+  (void) ReadBlobString(image,buffer);  /* read magic number */
+  if (IsMGK(buffer,7) == MagickFalse)
+    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  (void) ReadBlobString(image,buffer);
+  count=(ssize_t) sscanf(buffer,"%lu %lu\n",&columns,&rows);
+  if (count <= 0)
+    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  do
+  {
+    /*
+      Initialize image structure.
+    */
+    image->columns=columns;
+    image->rows=rows;
+    image->depth=8;
+    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+        break;
+    /*
+      Convert MGK raster image to pixel packets.
+    */
+    if (SetImageExtent(image,image->columns,image->rows,exception) == MagickFalse)
+      return(DestroyImageList(image));
+    pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns,
+      3UL*sizeof(*pixels));
+    if (pixels == (unsigned char *) NULL)
+      ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+    for (y=0; y < (long) image->rows; y++)
+    {
+      count=(ssize_t) ReadBlob(image,(size_t) (3*image->columns),pixels);
+      if (count != (ssize_t) (3*image->columns))
+        ThrowReaderException(CorruptImageError,"UnableToReadImageData");
+      p=pixels;
+      q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+      if (q == (Quantum *) NULL)
+        break;
+      for (x=0; x < (long) image->columns; x++)
+      {
+        SetPixelRed(image,ScaleCharToQuantum(*p++),q);
+        SetPixelGreen(image,ScaleCharToQuantum(*p++),q);
+        SetPixelBlue(image,ScaleCharToQuantum(*p++),q);
+        q+=GetPixelChannels(image);
+      }
+      if (SyncAuthenticPixels(image,exception) == MagickFalse)
+        break;
+      if (image->previous == (Image *) NULL)
+        if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
+            (QuantumTick(y,image->rows) != MagickFalse))
+          {
+            status=image->progress_monitor(LoadImageTag,y,image->rows,
+              image->client_data);
+            if (status == MagickFalse)
+              break;
+          }
+    }
+    pixels=(unsigned char *) RelinquishMagickMemory(pixels);
+    if (EOFBlob(image) != MagickFalse)
+      {
+        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+          image->filename);
+        break;
+      }
+    /*
+      Proceed to next image.
+    */
+    if (image_info->number_scenes != 0)
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+        break;
+    *buffer='\0';
+    (void) ReadBlobString(image,buffer);
+    count=(ssize_t) sscanf(buffer,"%lu %lu\n",&columns,&rows);
+    if (count > 0)
+      {
+        /*
+          Allocate next image structure.
+        */
+        AcquireNextImage(image_info,image,exception);
+        if (GetNextImageInList(image) == (Image *) NULL)
+          {
+            image=DestroyImageList(image);
+            return((Image *) NULL);
+          }
+        image=SyncNextImageInList(image);
+        if (image->progress_monitor != (MagickProgressMonitor) NULL)
+          {
+            status=SetImageProgress(image,LoadImageTag,TellBlob(image),
+              GetBlobSize(image));
+            if (status == MagickFalse)
+              break;
+          }
+      }
+  } while (count > 0);
+  (void) CloseBlob(image);
+  return(GetFirstImageInList(image));
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   R e g i s t e r M G K I m a g e                                           %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  RegisterMGKImage() adds attributes for the MGK image format to
+%  the list of supported formats.  The attributes include the image format
+%  tag, a method to read and/or write the format, whether the format
+%  supports the saving of more than one frame to the same file or blob,
+%  whether the format supports native in-memory I/O, and a brief
+%  description of the format.
+%
+%  The format of the RegisterMGKImage method is:
+%
+%      unsigned long RegisterMGKImage(void)
+%
+*/
+ModuleExport unsigned long RegisterMGKImage(void)
+{
+  MagickInfo
+    *entry;
+
+  entry=AcquireMagickInfo("MGK","MGK","MGK image");
+  entry->decoder=(DecodeImageHandler *) ReadMGKImage;
+  entry->encoder=(EncodeImageHandler *) WriteMGKImage;
+  entry->magick=(IsImageFormatHandler *) IsMGK;
+  (void) RegisterMagickInfo(entry);
+  return(MagickImageCoderSignature);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   U n r e g i s t e r M G K I m a g e                                       %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  UnregisterMGKImage() removes format registrations made by the
+%  MGK module from the list of supported formats.
+%
+%  The format of the UnregisterMGKImage method is:
+%
+%      UnregisterMGKImage(void)
+%
+*/
+ModuleExport void UnregisterMGKImage(void)
+{
+  (void) UnregisterMagickInfo("MGK");
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   W r i t e M G K I m a g e                                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  WriteMGKImage() writes an image to a file in red, green, and blue MGK
+%  rasterfile format.
+%
+%  The format of the WriteMGKImage method is:
+%
+%      MagickBooleanType WriteMGKImage(const ImageInfo *image_info,
+%        Image *image)
+%
+%  A description of each parameter follows.
+%
+%    o image_info: the image info.
+%
+%    o image:  The image.
+%
+%    o exception:  return any errors or warnings in this structure.
+%
+*/
+static MagickBooleanType WriteMGKImage(const ImageInfo *image_info,Image *image,
+  ExceptionInfo *exception)
+{
+  char
+    buffer[MaxTextExtent];
+
+  long
+    y;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    scene;
+
+  register const Quantum
+    *p;
+
+  register long
+    x;
+
+  register unsigned char
+    *q;
+
+  unsigned char
+    *pixels;
+
+  /*
+    Open output image file.
+  */
+  assert(image_info != (const ImageInfo *) NULL);
+  assert(image_info->signature == MagickCoreSignature);
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
+  if (status == MagickFalse)
+    return(status);
+  scene=0;
+  do
+  {
+    /*
+      Allocate memory for pixels.
+    */
+    if (image->colorspace != RGBColorspace)
+      (void) SetImageColorspace(image,RGBColorspace,exception);
+    pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns,
+      3UL*sizeof(*pixels));
+    if (pixels == (unsigned char *) NULL)
+      ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+    /*
+      Initialize raster file header.
+    */
+    (void) WriteBlobString(image,"id=mgk\n");
+    (void) FormatLocaleString(buffer,MaxTextExtent,"%lu %lu\n",image->columns,
+       image->rows);
+    (void) WriteBlobString(image,buffer);
+    for (y=0; y < (long) image->rows; y++)
+    {
+      p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+      if (p == (const Quantum *) NULL)
+        break;
+      q=pixels;
+      for (x=0; x < (long) image->columns; x++)
+      {
+        *q++=ScaleQuantumToChar(GetPixelRed(image,p));
+        *q++=ScaleQuantumToChar(GetPixelGreen(image,p));
+        *q++=ScaleQuantumToChar(GetPixelBlue(image,p));
+        p+=GetPixelChannels(image);
+      }
+      (void) WriteBlob(image,(size_t) (q-pixels),pixels);
+      if (image->previous == (Image *) NULL)
+        if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
+            (QuantumTick(y,image->rows) != MagickFalse))
+          {
+            status=image->progress_monitor(SaveImageTag,y,image->rows,
+              image->client_data);
+            if (status == MagickFalse)
+              break;
+          }
+    }
+    pixels=(unsigned char *) RelinquishMagickMemory(pixels);
+    if (GetNextImageInList(image) == (Image *) NULL)
+      break;
+    image=SyncNextImageInList(image);
+    status=SetImageProgress(image,SaveImagesTag,scene,
+      GetImageListLength(image));
+    if (status == MagickFalse)
+      break;
+    scene++;
+  } while (image_info->adjoin != MagickFalse);
+  (void) CloseBlob(image);
+  return(MagickTrue);
+}
+ +

To invoke the custom coder from the command line, use these commands:

+
convert logo: logo.mgk
+display logo.mgk
+
+ +

We provide the Magick Coder Kit to help you get started writing your own custom coder.

+ +

Custom Image Filters

+ +

ImageMagick provides a convenient mechanism for adding your own custom image processing algorithms. We call these image filters and they are invoked from the command line with the -process option or from the MagickCore API method ExecuteModuleProcess().

+ +

Here is a listing of a sample custom image filter. It computes a few statistics such as the pixel brightness and saturation mean and standard-deviation.

+
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <assert.h>
+#include <math.h>
+#include <MagickCore/MagickCore.h>
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   a n a l y z e I m a g e                                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  analyzeImage() computes the brightness and saturation mean,  standard
+%  deviation, kurtosis and skewness and stores these values as attributes 
+%  of the image.
+%
+%  The format of the analyzeImage method is:
+%
+%      size_t analyzeImage(Image *images,const int argc,char **argv,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the address of a structure of type Image.
+%
+%    o argc: Specifies a pointer to an integer describing the number of
+%      elements in the argument vector.
+%
+%    o argv: Specifies a pointer to a text array containing the command line
+%      arguments.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+
+static void ConvertRGBToHSB(const double red,const double green,
+  const double blue,double *hue,double *saturation,double *brightness)
+{
+  double
+    delta,
+    max,
+    min;
+
+  /*
+    Convert RGB to HSB colorspace.
+  */
+  assert(hue != (double *) NULL);
+  assert(saturation != (double *) NULL);
+  assert(brightness != (double *) NULL);
+  *hue=0.0;
+  *saturation=0.0;
+  *brightness=0.0;
+  min=red < green ? red : green;
+  if (blue < min)
+    min=blue;
+  max=red > green ? red : green;
+  if (blue > max)
+    max=blue;
+  if (fabs(max) < MagickEpsilon)
+    return;
+  delta=max-min;
+  *saturation=delta/max;
+  *brightness=QuantumScale*max;
+  if (fabs(delta) < MagickEpsilon)
+    return;
+  if (fabs(red-max) < MagickEpsilon)
+    *hue=(green-blue)/delta;
+  else
+    if (fabs(green-max) < MagickEpsilon)
+      *hue=2.0+(blue-red)/delta;
+    else
+      *hue=4.0+(red-green)/delta;
+  *hue/=6.0;
+  if (*hue < 0.0)
+    *hue+=1.0;
+}
+
+ModuleExport size_t analyzeImage(Image **images,const int argc,
+  const char **argv,ExceptionInfo *exception)
+{
+  char
+    text[MaxTextExtent];
+
+  double
+    area,
+    brightness,
+    brightness_mean,
+    brightness_standard_deviation,
+    brightness_kurtosis,
+    brightness_skewness,
+    brightness_sum_x,
+    brightness_sum_x2,
+    brightness_sum_x3,
+    brightness_sum_x4,
+    hue,
+    saturation,
+    saturation_mean,
+    saturation_standard_deviation,
+    saturation_kurtosis,
+    saturation_skewness,
+    saturation_sum_x,
+    saturation_sum_x2,
+    saturation_sum_x3,
+    saturation_sum_x4;
+
+  Image
+    *image;
+
+  assert(images != (Image **) NULL);
+  assert(*images != (Image *) NULL);
+  assert((*images)->signature == MagickCoreSignature);
+  (void) argc;
+  (void) argv;
+  image=(*images);
+  for ( ; image != (Image *) NULL; image=GetNextImageInList(image))
+  {
+    CacheView
+      *image_view;
+
+    long
+      y;
+
+    MagickBooleanType
+      status;
+
+    brightness_sum_x=0.0;
+    brightness_sum_x2=0.0;
+    brightness_sum_x3=0.0;
+    brightness_sum_x4=0.0;
+    brightness_mean=0.0;
+    brightness_standard_deviation=0.0;
+    brightness_kurtosis=0.0;
+    brightness_skewness=0.0;
+    saturation_sum_x=0.0;
+    saturation_sum_x2=0.0;
+    saturation_sum_x3=0.0;
+    saturation_sum_x4=0.0;
+    saturation_mean=0.0;
+    saturation_standard_deviation=0.0;
+    saturation_kurtosis=0.0;
+    saturation_skewness=0.0;
+    area=0.0;
+    status=MagickTrue;
+    image_view=AcquireVirtualCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+    #pragma omp parallel for schedule(dynamic,4) shared(status)
+#endif
+    for (y=0; y < (long) image->rows; y++)
+    {
+      register const Quantum
+        *p;
+
+      register long
+        x;
+
+      if (status == MagickFalse)
+        continue;
+      p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
+      if (p == (const Quantum *) NULL)
+        {
+          status=MagickFalse;
+          continue;
+        }
+      for (x=0; x < (long) image->columns; x++)
+      {
+        ConvertRGBToHSB(GetPixelRed(image,p),GetPixelGreen(image,p),
+          GetPixelBlue(image,p),&hue,&saturation,&brightness);
+        brightness*=QuantumRange;
+        brightness_sum_x+=brightness;
+        brightness_sum_x2+=brightness*brightness;
+        brightness_sum_x3+=brightness*brightness*brightness;
+        brightness_sum_x4+=brightness*brightness*brightness*brightness;
+        saturation*=QuantumRange;
+        saturation_sum_x+=saturation;
+        saturation_sum_x2+=saturation*saturation;
+        saturation_sum_x3+=saturation*saturation*saturation;
+        saturation_sum_x4+=saturation*saturation*saturation*saturation;
+        area++;
+        p+=GetPixelChannels(image);
+      }
+    }
+    image_view=DestroyCacheView(image_view);
+    if (area <= 0.0)
+      break;
+    brightness_mean=brightness_sum_x/area;
+    (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_mean);
+    (void) SetImageProperty(image,"filter:brightness:mean",text,exception);
+    brightness_standard_deviation=sqrt(brightness_sum_x2/area-(brightness_sum_x/
+      area*brightness_sum_x/area));
+    (void) FormatLocaleString(text,MaxTextExtent,"%g",
+      brightness_standard_deviation);
+    (void) SetImageProperty(image,"filter:brightness:standard-deviation",text,
+      exception);
+    if (brightness_standard_deviation != 0)
+      brightness_kurtosis=(brightness_sum_x4/area-4.0*brightness_mean*
+        brightness_sum_x3/area+6.0*brightness_mean*brightness_mean*
+        brightness_sum_x2/area-3.0*brightness_mean*brightness_mean*
+        brightness_mean*brightness_mean)/(brightness_standard_deviation*
+        brightness_standard_deviation*brightness_standard_deviation*
+        brightness_standard_deviation)-3.0;
+    (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_kurtosis);
+    (void) SetImageProperty(image,"filter:brightness:kurtosis",text,
+      exception);
+    if (brightness_standard_deviation != 0)
+      brightness_skewness=(brightness_sum_x3/area-3.0*brightness_mean*
+        brightness_sum_x2/area+2.0*brightness_mean*brightness_mean*
+        brightness_mean)/(brightness_standard_deviation*
+        brightness_standard_deviation*brightness_standard_deviation);
+    (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_skewness);
+    (void) SetImageProperty(image,"filter:brightness:skewness",text,exception);
+    saturation_mean=saturation_sum_x/area;
+    (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_mean);
+    (void) SetImageProperty(image,"filter:saturation:mean",text,exception);
+    saturation_standard_deviation=sqrt(saturation_sum_x2/area-(saturation_sum_x/
+      area*saturation_sum_x/area));
+    (void) FormatLocaleString(text,MaxTextExtent,"%g",
+      saturation_standard_deviation);
+    (void) SetImageProperty(image,"filter:saturation:standard-deviation",text,
+      exception);
+    if (saturation_standard_deviation != 0)
+      saturation_kurtosis=(saturation_sum_x4/area-4.0*saturation_mean*
+        saturation_sum_x3/area+6.0*saturation_mean*saturation_mean*
+        saturation_sum_x2/area-3.0*saturation_mean*saturation_mean*
+        saturation_mean*saturation_mean)/(saturation_standard_deviation*
+        saturation_standard_deviation*saturation_standard_deviation*
+        saturation_standard_deviation)-3.0;
+    (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_kurtosis);
+    (void) SetImageProperty(image,"filter:saturation:kurtosis",text,exception);
+    if (saturation_standard_deviation != 0)
+      saturation_skewness=(saturation_sum_x3/area-3.0*saturation_mean*
+        saturation_sum_x2/area+2.0*saturation_mean*saturation_mean*
+        saturation_mean)/(saturation_standard_deviation*
+        saturation_standard_deviation*saturation_standard_deviation);
+    (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_skewness);
+    (void) SetImageProperty(image,"filter:saturation:skewness",text,exception);
+  }
+  return(MagickImageFilterSignature);
+}
+
+ +

To invoke the custom filter from the command line, use this command:

+ +
convert logo: -process \"analyze\" -verbose info:
+  Image: logo:
+    Format: LOGO (ImageMagick Logo)
+    Class: PseudoClass
+    Geometry: 640x480
+    ...
+    filter:brightness:kurtosis: 8.17947
+    filter:brightness:mean: 60632.1
+    filter:brightness:skewness: -2.97118
+    filter:brightness:standard-deviation: 13742.1
+    filter:saturation:kurtosis: 4.33554
+    filter:saturation:mean: 5951.55
+    filter:saturation:skewness: 2.42848
+    filter:saturation:standard-deviation: 15575.9
+
+ + +

We provide the Magick Filter Kit to help you get started writing your own custom image filter.

+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/assets/magick.css b/share/doc/ImageMagick-7/www/assets/magick.css new file mode 100644 index 0000000..1409e64 --- /dev/null +++ b/share/doc/ImageMagick-7/www/assets/magick.css @@ -0,0 +1,108 @@ +/*! + * Bootstrap v4.1.1 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-appearance:none;appearance:none}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-appearance:none;appearance:none}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;appearance:none}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ +/* + ImageMagick template. +*/ + +@media (min-width: 48em) { +} + +body { + font-family: Georgia, "Times New Roman", Times, serif; + color: #555; + padding-top: 3.5rem; +} + +.container { + max-width: 60rem; +} + +.magick-template { + padding: 1.5rem 1.5rem; +} + +.magick-header { + padding-bottom: 1.25rem; + margin-bottom: 2rem; + border-bottom: .05rem solid #eee; +} +.magick-title { + margin-bottom: 0; + font-size: 2rem; + font-weight: normal; +} +.magick-description { + font-size: 1.1rem; + color: #999; +} + +.magick-footer { + padding: 2.5rem 0; + color: #999; + text-align: center; + background-color: #f9f9f9; + border-top: .05rem solid #e5e5e5; +} + +.magick-footer p:last-child { + margin-bottom: 0; +} + +.magick-list-unstyled { + padding-left: 40px; + padding-right: 40px; + list-style: none; +} + +.magick-icon { + float: left; + margin: 5px; +} + +fieldset { + padding: .5em; + background: white; + border: 1px dotted #aaaa77; + margin-left: 20px; + margin-right: 20px; + margin-top: .5em; +} + +fieldset legend { + color: #fff; + background-color: #aaaa77; + font-size: smaller; + padding: .1ex .5ex; + border-right: 1px solid gray; + border-bottom: 1px solid gray; + font-weight: bold; +} + +.highlight { + padding:1rem; + margin:1rem 0px; + background-color:#f7f7f9 +} + +h1, .h1, +h2, .h2, +h3, .h3, +h4, .h4, +h5, .h5, +h6, .h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 400; + color: #333; +} + +a.anchor { + display: block; + position: relative; + top: -4.5rem; + visibility: hidden; +} diff --git a/share/doc/ImageMagick-7/www/assets/magick.js b/share/doc/ImageMagick-7/www/assets/magick.js new file mode 100644 index 0000000..cd3cce6 --- /dev/null +++ b/share/doc/ImageMagick-7/www/assets/magick.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.1.1 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,c){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!(_e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(de={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},pe="out",ve={HIDE:"hide"+he,HIDDEN:"hidden"+he,SHOW:(me="show")+he,SHOWN:"shown"+he,INSERTED:"inserted"+he,CLICK:"click"+he,FOCUSIN:"focusin"+he,FOCUSOUT:"focusout"+he,MOUSEENTER:"mouseenter"+he,MOUSELEAVE:"mouseleave"+he},Ee="fade",ye="show",Te=".tooltip-inner",Ce=".arrow",Ie="hover",Ae="focus",De="click",be="manual",Se=function(){function i(t,e){if("undefined"==typeof c)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=oe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(oe(this.getTipElement()).hasClass(ye))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),oe.removeData(this.element,this.constructor.DATA_KEY),oe(this.element).off(this.constructor.EVENT_KEY),oe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&oe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===oe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=oe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){oe(this.element).trigger(t);var n=oe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Cn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&oe(i).addClass(Ee);var s="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(s);this.addAttachmentClass(o);var a=!1===this.config.container?document.body:oe(this.config.container);oe(i).data(this.constructor.DATA_KEY,this),oe.contains(this.element.ownerDocument.documentElement,this.tip)||oe(i).appendTo(a),oe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new c(this.element,i,{placement:o,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Ce},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),oe(i).addClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().on("mouseover",null,oe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,oe(e.element).trigger(e.constructor.Event.SHOWN),t===pe&&e._leave(null,e)};if(oe(this.tip).hasClass(Ee)){var h=Cn.getTransitionDurationFromElement(this.tip);oe(this.tip).one(Cn.TRANSITION_END,l).emulateTransitionEnd(h)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=oe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==me&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),oe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(oe(this.element).trigger(i),!i.isDefaultPrevented()){if(oe(n).removeClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().off("mouseover",null,oe.noop),this._activeTrigger[De]=!1,this._activeTrigger[Ae]=!1,this._activeTrigger[Ie]=!1,oe(this.tip).hasClass(Ee)){var s=Cn.getTransitionDurationFromElement(n);oe(n).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){oe(this.getTipElement()).addClass(ue+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||oe(this.config.template)[0],this.tip},t.setContent=function(){var t=oe(this.getTipElement());this.setElementContent(t.find(Te),this.getTitle()),t.removeClass(Ee+" "+ye)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?oe(e).parent().is(t)||t.empty().append(e):t.text(oe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return _e[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)oe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==be){var e=t===Ie?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Ie?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;oe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}oe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ae:Ie]=!0),oe(e.getTipElement()).hasClass(ye)||e._hoverState===me?e._hoverState=me:(clearTimeout(e._timeout),e._hoverState=me,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===me&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ae:Ie]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=pe,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===pe&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=h({},this.constructor.Default,oe(this.element).data(),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Cn.typeCheckConfig(ae,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=oe(this.getTipElement()),e=t.attr("class").match(fe);null!==e&&0

'}),He=h({},Nn.DefaultType,{content:"(string|element|function)"}),We="fade",xe=".popover-header",Ue=".popover-body",Ke={HIDE:"hide"+ke,HIDDEN:"hidden"+ke,SHOW:(Me="show")+ke,SHOWN:"shown"+ke,INSERTED:"inserted"+ke,CLICK:"click"+ke,FOCUSIN:"focusin"+ke,FOCUSOUT:"focusout"+ke,MOUSEENTER:"mouseenter"+ke,MOUSELEAVE:"mouseleave"+ke},Fe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){we(this.getTipElement()).addClass(Le+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||we(this.config.template)[0],this.tip},r.setContent=function(){var t=we(this.getTipElement());this.setElementContent(t.find(xe),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ue),e),t.removeClass(We+" "+Me)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=we(this.getTipElement()),e=t.attr("class").match(je);null!==e&&0=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t + + + + ImageMagick: Install from Binary Distribution + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+
+

Unix Binary Release • Mac OS X Binary Release • iOS Binary Release • Windows Binary Release

+ +

You can install ImageMagick from source. However, if don't have a proper development environment or if you're anxious to get started, download a ready-to-run Unix or Windows executable. Before you download, you may want to review recent changes to the ImageMagick distribution.

+ +

Unix Binary Release

+ +

These are the Unix variations that we support. If your system is not on the list, try installing from source. Although ImageMagick runs fine on a single core computer, it automagically runs in parallel on dual and quad-core systems reducing run times considerably.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersionHTTPFTPDescription
ImageMagick-7.0.0-0.x86_64.rpmdownloaddownloadRedhat / CentOS 7.1 x86_64 RPM
ImageMagick-7.0.0-0.i386.rpmdownloaddownloadRedhat / CentOS 5.11 i386 RPM
ImageMagick RPM'sdownloaddownloadDevelopment, Perl, C++, and documentation RPM's.
ImageMagick-sparc-sun-solaris2.10.tar.gzdownloaddownloadSolaris Sparc 2.10
ImageMagick-i686-pc-cygwin.tar.gzdownloaddownloadCygwin
ImageMagick-i686-pc-mingw32.tar.gzdownloaddownloadMinGW
+ +

Verify its message digest.

+ +

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

+ +
 rpm -Uvh ImageMagick-7.0.0-0.i386.rpm
+

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

+ +
+cd $HOME
+
+ +

Next, extract the contents of the package. For example:

+ +
+tar xvzf ImageMagick.tar.gz
+
+ +

Set the MAGICK_HOME environment variable to the path where you extracted the ImageMagick files. For example:

+ +
 export MAGICK_HOME="$HOME/ImageMagick-7.0.0"
+

If the bin subdirectory of the extracted package is not already in your executable search path, add it to your PATH environment variable. For example:

+ +
+export PATH="$MAGICK_HOME/bin:$PATH
+
+ + +

On Linux and Solaris machines add $MAGICK_HOME/lib to the LD_LIBRARY_PATH environment variable:

+ +
+LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$MAGICK_HOME/lib
+export LD_LIBRARY_PATH
+
+ +

Finally, to verify ImageMagick is working properly, type the following on the command line:

+ +
+convert logo: logo.gif
+identify logo.gif
+display logo.gif
+
+ +

Congratulations, you have a working ImageMagick distribution under Unix or Linux and you are ready to use ImageMagick to convert, compose, or edit your images or perhaps you'll want to use one of the Application Program Interfaces for C, C++, Perl, and others.

+ +

Mac OS X Binary Release

+ +

We recommend MacPorts which custom builds ImageMagick in your environment (some users prefer Homebrew). Download MacPorts and type:

+ +
+sudo port install ImageMagick
+
+ +

The port command downloads ImageMagick and many of its delegate libraries (e.g. JPEG, PNG, Freetype, etc.) and configures, builds, and installs ImageMagick automagically. Alternatively, you can download the ImageMagick Mac OS X distribution we provide:

+ +
+ + + + + + + + + + + + + + + +
VersionHTTPFTPDescription
ImageMagick-x86_64-apple-darwin15.2.0.tar.gzdownloaddownloadMac OS X El Capitan
+ +

Verify its message digest.

+ +

Create (or choose) a directory to install the package into and change to that directory, for example:

+ +
+cd $HOME
+
+ +

Next, extract the contents of the package. For example:

+ +
+tar xvzf ImageMagick-x86_64-apple-darwin15.2.0.tar.gz
+
+ +

Set the MAGICK_HOME environment variable to the path where you extracted the ImageMagick files. For example:

+ +
 export MAGICK_HOME="$HOME/ImageMagick-7.0.0"
+

If the bin subdirectory of the extracted package is not already in your executable search path, add it to your PATH environment variable. For example:

+ +
+export PATH="$MAGICK_HOME/bin:$PATH"
+
+ + +

Set the DYLD_LIBRARY_PATH environment variable:

+ +
+export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"
+
+ +

Finally, to verify ImageMagick is working properly, type the following on the command line:

+ +
+convert logo: logo.gif
+identify logo.gif
+display logo.gif
+
+ +

Note, the display program requires the X11 server available on your Mac OS X installation DVD. Once that is installed, you will also need to export DISPLAY=:0.

+ +

The best way to deal with all the exports is to put them at the end of your .profile file

+ +

Congratulations, you have a working ImageMagick distribution under Mac OS X and you are ready to use ImageMagick to convert, compose, or edit your images or perhaps you'll want to use one of the Application Program Interfaces for C, C++, Perl, and others.

+ +

iOS Binary Release

+ +

~Claudio provides iOS builds of ImageMagick.

+ +

Download iOS Distribution

+ +

You can download the iOS distribution directly from ImageMagick's repository.

+ +

There are always 2 packages for the compiled ImageMagick:

+ +
    +
  • iOSMagick-VERSION-libs.zip
  • +
  • iOSMagick-VERSION.zip
  • +
+ +

The first one includes headers and compiled libraries that have been used to compile ImageMagick. Most users would need this one.

+ +

ImageMagick compiling script for iOS OS and iOS Simulator

+ +

To run the script:

+
+./imagemagick_compile.sh VERSION
+
+

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

+ +

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

+
    +
  • png
  • +
  • jpeg
  • +
  • tiff
  • +
+ +

Upon successful compilation a folder called IMPORT_ME is created on your ~/Desktop. You can import it into your XCode project.

+ +
XCode project settings
+ +

After including everything into XCode please also make sure to have these settings (Build tab of the project information):

+
    +
  • Other Linker Flags: -lMagickCore-Q16 -lMagickWand-Q16 -ljpeg -lpng -lbz2 -lz
  • +
  • Header Search Paths: $(SRCROOT) - make it Recursive
  • +
  • Library Search Paths: $(SRCROOT) - make it Recursive
  • +
+ +

On the lower left click on the small-wheel and select: Add User-Defined Setting

+
    +
  • Key: OTHER_CFLAGS
  • +
  • Value: -Dmacintosh=1
  • +
+ +
Sample project
+ +

A sample project is available for download. It is not updated too often, but it does give an idea of all the settings and some ways to play around with ImageMagick in an iOS application.

+ +

Windows Binary Release

+ +

ImageMagick runs on Windows 8 (x86 & x64), Windows 7 (x86 & x64), Windows Server 2012, Windows XP (x86) with Service Pack 3, Windows Vista (x86 & x64) with Service Pack 2, Windows Server 2003 (x86 & x64) with Service Pack 2 (verify MSXML6 is present), Windows Server 2003 R2 (x86 & x64), Windows Server 2008 (x86 & x64) with Service Pack 2, and Windows Server 2008 R2 (x64).

+ +

The amount of memory can be an important factor, especially if you intend to work on large images. A minimum of 512 MB of RAM is recommended, but the more RAM the better. Although ImageMagick runs well on a single core computer, it automagically runs in parallel on multi-core systems reducing run times considerably.

+ +

The Windows version of ImageMagick is self-installing. Simply click on the appropriate version below and it will launch itself and ask you a few installation questions. Versions with Q8 in the name are 8 bits-per-pixel component (e.g. 8-bit red, 8-bit green, etc.), whereas, Q16 in the filename are 16 bits-per-pixel component. A Q16 version permits you to read or write 16-bit images without losing precision but requires twice as much resources as the Q8 version. Versions with dll in the filename include ImageMagick libraries as dynamic link libraries. Unless you have a Windows 32-bit OS, we recommend this version of ImageMagick for 64-bit Windows:

+ +
+ + + + + + + + + + + + + + + +
VersionHTTPFTPDescription
ImageMagick-7.0.0-0-Q16-x64-dll.exedownloaddownloadWin64 dynamic at 16 bits-per-pixel
+ +

Or choose from these alternate Windows binary distributions:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersionHTTPFTPDescription
ImageMagick-7.0.0-0-Q16-x64-static.exedownloaddownloadWin64 static at 16 bits-per-pixel
ImageMagick-7.0.0-0-Q8-x64-dll.exedownloaddownloadWin64 dynamic at 8 bits-per-pixel
ImageMagick-7.0.0-0-Q8-x64-static.exedownloaddownloadWin64 static at 8 bits-per-pixel
ImageMagick-7.0.0-0-Q16-HDRI-x64-dll.exedownloaddownloadWin64 dynamic at 16 bits-per-pixel with high dynamic-range imaging enabled
ImageMagick-7.0.0-0-Q16-HDRI-x64-static.exedownloaddownloadWin64 static at 16 bits-per-pixel with high dynamic-range imaging enabled
ImageMagick-7.0.0-0-Q16-x86-dll.exedownloaddownloadWin32 dynamic at 16 bits-per-pixel
ImageMagick-7.0.0-0-Q16-x86-static.exedownloaddownloadWin32 static at 16 bits-per-pixel
ImageMagick-7.0.0-0-Q8-x86-dll.exedownloaddownloadWin32 dynamic at 8 bits-per-pixel
ImageMagick-7.0.0-0-Q8-x86-static.exedownloaddownloadWin32 static at 8 bits-per-pixel
ImageMagick-7.0.0-0-Q16-HDRI-x86-dll.exedownloaddownloadWin32 dynamic at 16 bits-per-pixel with high dynamic-range imaging enabled
ImageMagick-7.0.0-0-Q16-HDRI-x86-static.exedownloaddownloadWin32 static at 16 bits-per-pixel with high dynamic-range imaging enabled
ImageMagick-7.0.0-0-portable-Q16-x86.zipdownloaddownloadPortable Win32 static at 16 bits-per-pixel. Just copy to your host and run (no installer, no Windows registry entries).
ImageMagick-7.0.0-0-portable-Q16-x64.zipdownloaddownloadPortable Win64 static at 16 bits-per-pixel. Just copy to your host and run (no installer, no Windows registry entries).
+ +

Verify its message digest.

+ +

To verify ImageMagick is working properly, type the following in an Command Prompt window:

+ +
+convert logo: logo.gif
+identify logo.gif
+imdisplay
+
+ +

If you have any problems, you likely need vcomp120.dll. To install it, download Visual C++ 2013 Redistributable Package.

+ +

Note, use a double quote (") rather than a single quote (') for the ImageMagick command line under Windows:

+ +
+convert "e:/myimages/image.png" "e:/myimages/image.jpg"
+
+

Use two double quotes for VBScript scripts:

+
+Set objShell = wscript.createobject("wscript.shell")
+objShell.Exec("convert ""e:/myimages/image.png"" ""e:/myimages/image.jpg""")
+
+ +

Congratulations, you have a working ImageMagick distribution under Windows and you are ready to use ImageMagick to convert, compose, or edit your images or perhaps you'll want to use one of the Application Program Interfaces for C, C++, Perl, and others.

+ +
+ + +
+ + + +
+ + diff --git a/share/doc/ImageMagick-7/www/changelog.html b/share/doc/ImageMagick-7/www/changelog.html new file mode 100644 index 0000000..2ebdf19 --- /dev/null +++ b/share/doc/ImageMagick-7/www/changelog.html @@ -0,0 +1,644 @@ + + + + + + + + + + Changelog @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
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).
  • +
    2017-12-26 7.0.7-17 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-17, GIT revision 22093:9caea323b:20171227.
  • +
    2017-12-26 7.0.7-17 Cristy <quetzlzacatenango@image...>
    +
  • Fix heap use after free error (reference https://github.com/ImageMagick/ImageMagick/issues/918).
  • +
    2017-12-24 7.0.7-16 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-16, GIT revision 22038:e55dc7626:20171225.
  • +
    2017-12-18 7.0.7-16 Cristy <quetzlzacatenango@image...>
    +
  • Fix error reading multi-layer XCF image file.
  • +
  • Fix possible stack overflow in WEBP reader (reference https://github.com/ImageMagick/ImageMagick/issues/907)
  • +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
    2017-12-16 7.0.7-15 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-15, GIT revision 21924:30cb31746:20171216.
  • +
    2017-12-08 7.0.7-15 Cristy <quetzlzacatenango@image...>
    +
  • Overall standard deviation is the average of each pixel channel (reference https://www.imagemagick.org/discourse-server///viewforum.html?f=3).
  • +
  • Update to the latest ImageMagick documentation.
  • +
    2017-12-05 7.0.7-14 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-14, GIT revision 21855:dc73b2aba:20171205.
  • +
    2017-11-30 7.0.7-14 Cristy <quetzlzacatenango@image...>
    +
  • Support Stereo composite operator.
  • +
  • Fix build failure with --without-modules (reference https://github.com/ImageMagick/ImageMagick/issues/890).
  • +
    2017-11-30 7.0.7-13 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-13, GIT revision 21823:72cb0fd0c:20171130.
  • +
    2017-11-30 7.0.7-13 Cristy <quetzlzacatenango@image...>
    +
  • Fix build failure with libraw 0.14.8 (reference https://github.com/ImageMagick/ImageMagick/issues/888).
  • +
    2017-11-29 7.0.7-12 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-12, GIT revision 21814:5ef2c5a67:20171129.
  • +
    2017-11-12 7.0.7-12 Cristy <quetzlzacatenango@image...>
    +
  • The -tint option no longer munges the alpha channel (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=1&t=33070).
  • +
  • Don't delete in-memory blob when reading an image (reference https://github.com/ImageMagick/ImageMagick/issues/886).
  • +
  • Support HDRI color profile management.
  • +
    2017-11-11 7.0.7-11 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-11, GIT revision 21635:0447c6b46:20171111.
  • +
    2017-11-05 7.0.7-10 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-10, GIT revision 21612:36e2aabfd:20171105.
  • +
    2017-11-03 7.0.7-10 Dirk Lemstra <dirk@lem.....org>
    +
  • Fixed a problem with resource bookkeeping in AcquireMatrixInfo().
  • +
    2017-10-30 7.0.7-9 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-9, GIT revision 21580:2682a311e:20171031.
  • +
    2017-10-20 7.0.7-9 Cristy <quetzlzacatenango@image...>
    +
  • Encode JSON control characters (reference https://github.com/ImageMagick/ImageMagick/issues/848).
  • +
    2017-10-27 7.0.7-9 Dirk Lemstra <dirk@lem.....org>
    +
  • Added support for reading mipmaps in dds images (reference https://github.com/ImageMagick/ImageMagick/issues/845).
  • +
    2017-10-15 7.0.7-8 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-8, GIT revision 21507:63ffc9878:20171015.
  • +
    2017-10-08 7.0.7-8 Cristy <quetzlzacatenango@image...>
    +
  • Return expected results for a percent 0 -chop option argument (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=32806).
  • +
  • Tweaks to OpenMP support within ImageMagick.
  • +
    2017-10-07 7.0.7-7 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-7, GIT revision 21432:29003eeed:20171007.
  • +
    2017-10-06 7.0.7-7 Cristy <quetzlzacatenango@image...>
    +
  • Correct handling of GIF transparency (reference https://github.com/ImageMagick/ImageMagick/issues/831).
  • +
    2017-10-04 7.0.7-6 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-6, GIT revision 21426:0a1cb507b:20171004.
  • +
    2017-10-03 7.0.7-6 Cristy <quetzlzacatenango@image...>
    +
  • Reset the magick_list_initialized boolean when needed (reference https://github.com/ImageMagick/ImageMagick/pull/826).
  • +
    2017-10-01 7.0.7-5 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-5, GIT revision 21382:3846f9d97:20171001.
  • +
    2017-09-28 7.0.7-5 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
  • Support URW-base35 fonts.
  • +
    2017-09-26 7.0.7-5 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Removed "ping_preserve_iCCP=MagickTrue;" statement that was inadvertently added to coders/png.c (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=32771).
  • +
    2017-09-23 7.0.7-4 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-4, GIT revision 21265:bdbc14590:20170923.
  • +
    2017-09-23 7.0.7-4 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/pull/763).
  • +
    2017-09-17 7.0.7-3 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-3, GIT revision 21202:6e6907ac7:20170917.
  • +
    2017-09-17 7.0.7-3 ADLab of Venustech
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/pull/763).
  • +
    2017-09-15 7.0.7-3 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Stop potential leaks in the JNG decoder (reference: https://github.com/ImageMagick/ImageMagick/issues/760).
  • +
  • Maximum valid hour is 23, not 24, in the PNG tIME chunk, and maximum valid minute is 59, not 60.
  • +
    2017-09-12 7.0.7-2 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-2, GIT revision 21089:4e46ad9dd:20170912.
  • +
    2017-09-11 7.0.7-2 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Use signed integer arithmetic to calculate timezone corrections (reference https://github.com/ImageMagick/ImageMagick/issues/685).
  • +
    2017-09-09 7.0.7-1 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-1, GIT revision 21065:ab2194121:20170909.
  • +
    2017-09-09 7.0.7-1 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
    2017-09-05 7.0.7-1 Dirk Lemstra <dirk@lem.....org>
    +
  • Added -define tiff:write-layers=true to add support for writing layered tiff files.
  • +
    2017-09-03 7.0.7-0 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.7-0, GIT revision 20996:2f8ac2203:20170903.
  • +
    2017-08-28 7.0.7-0 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
  • Don't overwrite symbolic links when the shred policy is enabled.
  • +
    2017-08-27 7.0.6-10 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-10, GIT revision 20920:9940c367a:20170827.
  • +
    2017-08-27 7.0.6-10 Cristy <quetzlzacatenango@image...>
    +
  • Support -metric ssim, structual similarity index.
  • +
    2017-08-26 7.0.6-10 Dirk Lemstra <dirk@lem.....org>
    +
  • Fixed thread safety issue inside the pango and librsvg decoder (reference: https://github.com/dlemstra/Magick.NET/issues/91).
  • +
    2017-08-20 7.0.6-9 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-9, GIT revision 20860:3f307d8ad:20170820.
  • +
    2017-08-18 7.0.6-9 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Fixed bug with writing tIME chunk when timezone has a negative offset (reference: https://github.com/ImageMagick/ImageMagick/issues/685)
  • +
    2017-08-18 7.0.6-8 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-8, GIT revision 20838:e2eb79427:20170818.
  • +
    2017-08-14 7.0.6-7 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
  • Support CubicSpline resize filter. Define the lobes with the -define filter:lobes={2,3,4} (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=2&t=32506).
  • +
  • Prevent assertion failure when creating PDF thumbnail (reference https://github.com/ImageMagick/ImageMagick/issues/674).
  • +
    2017-08-12 7.0.6-7 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-7, GIT revision 20799:0db4d8a16:20170812.
  • +
    2017-08-12 7.0.6-7 Cristy <quetzlzacatenango@image...>
    +
  • Improve EPS aliasing (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=32497).
  • +
    2017-08-11 7.0.6-7 Dirk Lemstra <dirk@lem.....org>
    +
  • Added a new option called 'dds:fast-mipmaps' (reference https://github.com/ImageMagick/ImageMagick/issues/558)
  • +
  • The mipmaps of a dds image can now be created from a list of images with -define dds:mipmaps=fromlist (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=2&t=30236).
  • +
    2017-08-10 7.0.6-6 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-6, GIT revision 20775:061d0fa25:20170810.
  • +
    2017-08-10 7.0.6-6 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
    2017-08-10 7.0.6-6 Glenn Randers-Pehrson <glennrp@image...>
    +
  • tests/validate.c: Show the reason for failures in the test logs, if available.
  • +
    2017-08-03 7.0.6-6 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Put UTC time in the PNG tIME chunk instead of local time (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=32447).
  • +
    2017-08-02 7.0.6-5 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-5, GIT revision 20715:26b28d50a:20170802.
  • +
    2017-08-01 7.0.6-5 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
    2017-07-29 7.0.6-5 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Properly set image->colorspace in the PNG decoder (previously it was setting image->gamma, but only setting image->colorspace for grayscale and gray-alpha images. Reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=32418).
  • +
  • Fix improper use of NULL in the JNG decoder (CVE-2017-11750, Reference https://github.com/ImageMagick/ImageMagick/issues/632).
  • +
  • Added "-define png:ignore-crc" option to PNG decoder. 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".
  • +
    2017-07-29 7.0.6-5 Cristy <quetzlzacatenango@image...>
    +
  • Off by one error for gradient coder (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=32416), https://github.com/ImageMagick/ImageMagick/issues/612).
  • +
    2017-07-28 7.0.6-4 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-4, GIT revision 20657:4e81160d6:20170728.
  • +
    2017-07-24 7.0.6-4 Cristy <quetzlzacatenango@image...>
    +
  • YUV coder no longer renders streaks (reference https://github.com/ImageMagick/ImageMagick/issues/612).
  • +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues) including https://github.com/ImageMagick/ImageMagick/issues/618 (CVE-2017-12676).
  • +
  • coders/png.c: Initialized quantum_scanline and quantum_info to prevent a bad free (reference https://github.com/ImageMagick/ImageMagick/issues/621).
  • +
    2017-07-25 7.0.6-4 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Removed write_chunk_from_profile() from coders/png.c because it has not worked at least since version 6.7.6.
  • +
  • Removed many redundant checks before RelinquishMagickMemory(), which is safe to call with a NULL argument.
  • +
  • Added experimental PNG orNT chunk, to store image->orientation.
  • +
  • Removed vpAg chunk write support (we are now writing caNv instead).
  • +
    2017-07-24 7.0.6-3 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-3, GIT revision 20598:cc9c43b44:20170724.
  • +
    2017-07-23 7.0.6-3 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
    2017-07-23 7.0.6-3 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Fix memory leaks when reading a malformed JNG image: https://github.com/ImageMagick/ImageMagick/issues/600 (CVE-2017-13141), https://github.com/ImageMagick/ImageMagick/issues/602 (CVE-2017-12565).
  • +
    2017-07-21 7.0.6-2 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-2, GIT revision 20549:62fcf3d96:20170721.
  • +
    2017-07-19 7.0.6-2 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
  • The -monochrome option no longer returns a blank canvas (reference https://github.com/ImageMagick/ImageMagick/issues/594).
  • +
  • coders/png.c: fixed memory leak of quantum_info (CVE-2017-11539, reference https://github.com/ImageMagick/ImageMagick/issues/582
  • +
  • coders/png.c: fixed NULL dereference when trying to write an empty MNG (CVE-2017-11522, reference https://github.com/ImageMagick/ImageMagick/issues/586).
  • +
    2017-07-15 7.0.6-2 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Added caNv, eXIf, and pHYs to the list of PNG chunks to be removed by the "-strip" option.
  • +
    2017-07-15 7.0.6-1 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-1, GIT revision 20447:c2a315e10:20170715.
  • +
    2017-07-13 7.0.6-1 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Implemented PNG eXIf chunk support.
  • +
    2017-07-08 7.0.6-1 Cristy <quetzlzacatenango@image...>
    +
  • Support new -auto-threshold option. OTSU and Triangle methods are currently supported. Look for the Kapur method in the next release.
  • +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
  • Don't use variable float_t / double_t, bump SO (reference https://github.com/ImageMagick/ImageMagick/issues/510).
  • +
  • Support DNG images with libraw delegate library.
  • +
    2017-07-02 7.0.6-1 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Reject PNG file that is too small (under 60 bytes) to contain a valid image.
  • +
  • Reject JPEG file that is too small (under 107 bytes) to contain a valid image.
  • +
  • Reject JNG file that is too small (under 147 bytes) to contain a valid image.
  • +
    2017-06-22 7.0.6-1 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Stop a memory leak in read_user_chunk_callback() (reference https://github.com/ImageMagick/ImageMagick/issues/517, CVE 2017-11310).
  • +
    2017-06-10 7.0.6-0 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-0, GIT revision 20194:b0c0d00:20170611.
  • +
    2017-06-10 7.0.6-0 Glenn Randers-Pehrson <glennrp@image...>
    +
  • coders/png.c: Accept exIf chunks whose data segment erroneously begins with "Exif\0\0".
  • +
    2017-06-10 7.0.6-0 Cristy <quetzlzacatenango@image...>
    +
  • Introduce SetMagickSecurityPolicy() (MagickCore) and MagickSetSecurityPolicy() (MagickWand) to set the ImageMagick security policy (reference https://github.com/ImageMagick/ImageMagick/issues/407).
  • +
    2017-06-02 7.0.5-10 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-10, GIT revision 20155:38ebc02:20170602.
  • +
    2017-06-01 7.0.5-10 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Removed experimental PNG zxIF chunk support; the proposal is dead.
  • +
    2017-06-01 7.0.5-10 Cristy <quetzlzacatenango@image...>
    +
  • Fix choppy bitmap font rendering (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=32071).
  • +
  • The +opaque option is not longer a noop (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=32081).
  • +
  • Add support for 'hex:' property.
  • +
    2017-05-28 7.0.5-9 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-9, GIT revision 20113:8b67333:20170528.
  • +
    2017-05-28 7.0.5-9 Cristy <quetzlzacatenango@image...>
    +
  • Transient error validating the JPEG-2000 image format (reference https://github.com/ImageMagick/ImageMagick/issues/501).
  • +
  • Properly allocate DCM image colormap (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=32063).
  • +
    2017-05-26 7.0.5-8 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-8, GIT revision 20099:870a016:20170526.
  • +
    2017-05-23 7.0.5-8 Cristy <quetzlzacatenango@image...>
    +
  • Improper allocation of memory for IM instances without threads (reference https://github.com/ImageMagick/ImageMagick/issues/497).
  • +
  • Delete corrupt image from list (reference https://github.com/ImageMagick/ImageMagick/issues/500).
  • +
    2017-05-19 7.0.5-7 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-6, GIT revision 20078:7ce2d38:20170519.
  • +
    2017-05-15 7.0.5-7 Cristy <quetzlzacatenango@image...>
    +
  • Support various image operators for the compare utility (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=2&t=31938).
  • + 2017-05-12 7.0.5-6 Cristy <quetzlzacatenango@image...> +
  • Release ImageMagick version 7.0.5-6, GIT revision 20039:9371904:20170512.
  • +
    2017-05-10 7.0.5-6 John Cupitt <jcupitt@gmail.com>
    +
  • Revise DICOM window and rescale handling (reference https://github.com/ImageMagick/ImageMagick/pull/484)
  • +
    2017-05-06 7.0.5-6 Cristy <quetzlzacatenango@image...>
    +
  • Restore the -alpha Shape option (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31879).
  • +
  • Fix transient PDF bug (reference https://github.com/ImageMagick/ImageMagick/issues/463).
  • +
  • The +opaque option now works on all channels (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31862).
  • +
  • Ensure backwards compatibility for the -combine option (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31855).
  • +
  • Check for EOF conditions for RLE image format.
  • +
  • Reset histogram page geometry (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31920).
  • +
    2017-04-24 7.0.5-5 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-5, GIT revision 19915:12eec43:20170424.
  • +
    2017-03-26 7.0.5-5 Cristy <quetzlzacatenango@image...>
    +
  • Minimize buffer copies to improve OpenCL performance.
  • +
  • Morphology thinning is no longer a no-op (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31650).
  • +
  • Patch two PCD writer problems, corrupt output and dark pixels (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=3164).
  • +
  • Support ICC based PDF's (reference https://github.com/ImageMagick/ImageMagick/issues/417).
  • +
  • Fix improper EPS clip path rendering (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31722).
  • +
    2017-03-24 7.0.5-4 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-4, GIT revision 19754:350fff3:20170324.
  • +
    2017-03-21 7.0.5-4 Cristy <quetzlzacatenango@image...>
    +
  • Respect -loop option for animate -window (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31619).
  • +
    2017-03-17 7.0.5-3 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-3, GIT revision 19741:070c3fb:20170317.
  • +
    2017-03-14 7.0.5-3 Cristy <quetzlzacatenango@image...>
    +
  • Support namespaces for the security policy.
  • +
  • Support the -authenticate option for PDF (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31530).
  • +
    2017-03-11 7.0.5-2 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-2, GIT revision 19696:da91a7c:20170311.
  • +
    2017-03-06 7.0.5-2 Cristy <quetzlzacatenango@image...>
    +
  • Respect throttle policy (reference https://github.com/ImageMagick/ImageMagick/issues/393).
  • +
  • Return proper minima / maxima (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31377).
  • +
    2017-03-03 7.0.5-1 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-1, GIT revision 19662:b7f455a:20170303.
  • +
    2017-02-21 7.0.5-1 Cristy <quetzlzacatenango@image...>
    +
  • Fix Spurious memory allocation message (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31438).
  • +
  • Identical images should return inf for PSNR (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31487).
  • +
    2017-02-20 7.0.5-0 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.5-0, GIT revision 19616:505fea9:20170220.
  • +
    2017-02-20 7.0.5-0 Cristy <quetzlzacatenango@image...>
    +
  • Fix transient bug with -separate option (reference https://github.com/ImageMagick/ImageMagick/issues/385).
  • +
    2017-02-18 7.0.4-10 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-10, GIT revision 19608:fe757a2:20170218.
  • +
    2017-02-18 7.0.4-10 Dirk Lemstra <dirk@lem.....org>
    +
  • Fixed fd leak for webp coder (reference https://github.com/ImageMagick/ImageMagick/pull/382)
  • +
    2017-02-15 7.0.4-10 Cristy <quetzlzacatenango@image...>
    +
  • Prevent random pixel data for corrupt JPEG image (bug report from Hirokazu Moriguchi, Sony).
  • +
  • Restore -mattecolor option.
  • +
  • Support pixel-cache and shred security policies.
  • +
  • Bump Magick++ SO. Previously a global replace changed matteColor to alphaColor.
  • +
    2017-02-14 7.0.4-9 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-9, GIT revision 19580:d474b37:20170214.
  • +
    2017-02-14 7.0.4-9 Cristy <quetzlzacatenango@image...>
    +
  • Revert patch that did not set update trait on alpha channel.
  • +
    2017-02-13 7.0.4-8 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-8, GIT revision 19574:7642384:20170213.
  • +
    2017-02-09 7.0.4-8 Dirk Lemstra <dirk@lem.....org>
    +
  • Fixed memory leak when creating nested exceptions in Magick++ (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=23&p=142634)
  • +
    2017-02-09 7.0.4-8 Cristy <quetzlzacatenango@image...>
    +
  • Unbreak build without JPEG support (reference https://github.com/ImageMagick/ImageMagick/pull/373).
  • +
  • Document behavior change in the security policy (thanks to yoya @ https://blog.awm.jp/2017/02/09/imagemagick-en/).
  • +
  • Return unbiased standard deviation for image statistics (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31377).
  • +
  • Don't set update trait on alpha channel (private e-mail concerning -levels-colors option).
  • +
    2017-02-04 7.0.4-7 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-7, GIT revision 19513:5783e57:20170204.
  • +
    2017-01-28 7.0.4-7 Cristy <quetzlzacatenango@image...>
    +
  • Sanitize comments that include braces for the MIFF image format (reference https://github.com/ImageMagick/ImageMagick/issues/368).
  • +
    2017-01-27 7.0.4-7 Glenn Randers-Pehrson <glennrp@image...>
    +
  • coders/png.c: Added support for a proposed new PNG chunk (zxIf, read-only) that is currently being discussed on the png-mng-misc at lists.sourceforge.net mailing list. Enable exIf and zxIf with CPPFLAGS="-DexIf_SUPPORTED -DxzIf_SUPPORTED". If exIf is enabled, only the uncompressed exIF chunk will be written and the hex-encoded zTXt chunk containing the raw Exif profile won't be written.
  • +
    2017-01-27 7.0.4-6 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-6, GIT revision 19442:4747de9:20170127.
  • +
    2017-01-27 7.0.4-6 Cristy <quetzlzacatenango@image...>
    +
  • Uninitialized data in MAT image format (reference https://github.com/ImageMagick/ImageMagick/issues/362).
  • +
  • Properly auto-fit caption (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30887).
  • +
  • Correction to composite Over operator (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31282).
  • +
  • Respect gravity option (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31284).
  • +
    2017-01-22 7.0.4-6 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Renamed read_vpag_chunk_callback() function to png_user_chunk_callback() in coders/png.c
  • +
  • Implemented a private PNG caNv (canvas) chunk for remembering the original dimensions and offsets when an image is cropped. Previously we used the oFFs and vpAg chunks for this purpose, but this had potential conflicts with other applications that also use the oFFs chunk.
  • +
  • coders/png.c: Added support for a proposed new PNG chunk (exIf read-write, eXIf read-only) that is currently being discussed on the png-mng-misc at lists.sourceforge.net mailing list.
  • +
    2017-01-22 7.0.4-6 Dirk Lemstra <dirk@lem.....org>
    +
  • Replaced CoderSeekableStreamFlag with CoderDecoderSeekableStreamFlag and CoderEncoderSeekableStreamFlag.
  • +
    2017-01-21 7.0.4-5 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-5, GIT revision 19381:7ae396f:20170121.
  • +
    2017-01-18 7.0.4-5 Cristy <quetzlzacatenango@image...>
    +
  • Don't set background for transparent tiled images (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31210).
  • +
    2017-01-14 7.0.4-4 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-4, GIT revision 19361:a12953c:20170114.
  • +
    2017-01-14 7.0.4-4 Dirk Lemstra <dirk@lem.....org>
    +
  • Added support for RGB555, RGB565, ARGB4444 and ARGB1555 to the BMP encoder (reference https://github.com/ImageMagick/ImageMagick/issues/344).
  • +
    2017-01-10 7.0.4-4 Cristy <quetzlzacatenango@image...>
    +
  • Recognize XML policy closing tags (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31182).
  • +
  • Fix memory leak in the MPC format.
  • +
    2017-01-07 7.0.4-3 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-3, GIT revision 19329:930ca78:20170107.
  • +
    2017-01-04 7.0.4-3 Cristy <quetzlzacatenango@image...>
    +
  • Increase memory allocation for TIFF pixels (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31161).
  • +
    2017-01-03 7.0.4-2 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-2, GIT revision 19318:8766311:20170103.
  • +
    2017-01-02 7.0.4-2 Cristy <quetzlzacatenango@image...>
    +
  • Validation unit test for MNG works again.
  • +
    2016-12-31 7.0.4-1 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-1, GIT revision 19292:c5ccfa8:20161231.
  • +
    2016-12-26 7.0.4-1 Cristy <quetzlzacatenango@image...>
    +
  • Initialize draw_info alpha member to OpaqueAlpha.
  • +
  • Monochrome images no longer have inverted colors (reference https://github.com/ImageMagick/ImageMagick/issues/332).
  • +
    2016-12-18 7.0.4-0 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.4-0, GIT revision 19221:d5e8abc:20161218.
  • +
    2016-12-14 7.0.4-0 Cristy <quetzlzacatenango@image...>
    +
  • Do not close path for linejoins of round (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31039).
  • +
    2016-12-10 7.0.3-10 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-10, GIT revision 19191:338f088:20161210.
  • +
    2016-12-07 7.0.3-10 Cristy <quetzlzacatenango@image...>
    +
  • Set colorspace to sRGB if -append has non-homogenous colorspaces (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=29105).
  • +
  • Respect connected-components:area-threshold define (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31006).
  • +
  • Enable alpha channel if background color is non-opaque (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31016).
  • +
  • Return correct offset for negative index for -fx option (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31019).
  • +
  • Fixed improper scaling of certain FITS images (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31028).
  • +
  • Properly center text label (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=31027).
  • +
    2016-12-05 7.0.3-9 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-9, GIT revision 19139:6fed3f1:20161205.
  • +
    2016-11-26 7.0.3-9 Cristy <quetzlzacatenango@image...>
    +
  • Support the compare -read-mask option.
  • +
  • Support read-masks for the -modulate option.
  • +
  • Prevent buffer overflow when streaming an image (reference https://github.com/ImageMagick/ImageMagick/issues/312).
  • +
  • Fix possible buffer overflow when writing compressed TIFFS (vulnerability report from Cisco Talos, CVE-2016-8707).
  • +
    2016-11-15 7.0.3-8 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-8, GIT revision 19067:5aceded:20161125.
  • +
    2016-11-18 7.0.3-8 Cristy <quetzlzacatenango@image...>
    +
  • Support the phash:colorspaces and phash:normalize options.
  • +
  • If a convenient line break is not found, force it for caption: (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30887).
  • +
  • Set alpha member of draw structure to OpaqueAlpha (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30894).
  • +
  • Off by 1 error when computing the standard deviation (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=2&t=30866).
  • +
  • Apply Debian patches, (reference https://github.com/ImageMagick/ImageMagick/issues/304).
  • +
  • Permit EPT images with just a TIFF or EPS image, not both (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30921).
  • +
  • The -clone option no longer leaks memory.
  • +
  • Render to clip mask rather than image for clip-path MVG graphics primitive.
  • +
    2016-11-15 7.0.3-7 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-7, GIT revision 19024:87aca83:20161115.
  • +
    2016-11-10 7.0.3-7 Cristy <quetzlzacatenango@image...>
    +
  • Web pages were broken when we moved to HTTPS protocol.
  • +
    2016-11-08 7.0.3-6 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-6, GIT revision 19001:4cff747:20161108.
  • +
    2016-11-01 7.0.3-6 Cristy <quetzlzacatenango@image...>
    +
  • Off by one memory allocation (reference https://github.com/ImageMagick/ImageMagick/issues/296).
  • +
  • The -extent option now matches the results of IMv6 (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=1&t=30779).
  • +
  • Prevent fault in MSL interpreter (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30797).
  • +
  • Mask composite produces proper results for the convert utility (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=29675).
  • +
    2016-10-10 7.0.3-5 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-5, GIT revision 18975:a8174a2:20161030.
  • +
    2016-10-16 7.0.3-5 Dirk Lemstra <dirk@lem.....org>
    +
  • Added layer RLE compression to the PSD encoder.
  • +
    2016-10-10 7.0.3-4 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-4, GIT revision 18937:83da034:20161010.
  • +
    2016-10-10 7.0.3-4 Dirk Lemstra <dirk@lem.....org>
    +
  • Fixed incorrect parsing with ordered dither. (reference https://github.com/ImageMagick/ImageMagick/issues/254)
  • +
    2016-10-10 7.0.3-4 Cristy <quetzlzacatenango@image...>
    +
  • Unit test pass again after small SUN image patch.
  • +
    2016-10-08 7.0.3-3 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-3, GIT revision 18924:d6614e7:20161008.
  • +
    2016-10-07 7.0.3-3 Dirk Lemstra <dirk@lem.....org>
    +
  • Fixed incorrect RLE decoding when reading a DCM image that contains multiple segments.
  • +
    2016-10-02 7.0.3-2 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-2, GIT revision 18887:6b27c5b:20161002.
  • +
    2016-09-27 7.0.3-2 Dirk Lemstra <dirk@lem.....org>
    +
  • Fixed incorrect RLE decoding when reading an SGI image (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30514)
  • +
    2016-09-20 7.0.3-1 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-1, GIT revision 18851:ad91ea8:20160920.
  • +
    2016-09-16 7.0.3-1 Dirk Lemstra <dirk@lem.....org>
    +
  • Added layer RLE compression to the PSD encoder.
  • +
  • Added define 'psd:preserve-opacity-mask' to preserve the opacity mask in a PSD file.
  • +
  • Fixed issue where the display window was used instead of the data window when reading EXR files (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&p=137849).
  • +
    2016-09-05 7.0.3-0 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.3-0, GIT revision 18786:10aa64c:20160905.
  • +
    2016-08-29 7.0.3-0 Dirk Lemstra <dirk@lem.....org>
    +
  • Fixed reading DXT1 images with an alpha channel.
  • +
  • Fixed incorrect padding calculation in PSD encoder.
  • +
    2016-08-27 7.0.2-10 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-10, GIT revision 18750:e3335b3:20160827.
  • +
    2016-08-27 7.0.2-10 Dirk Lemstra <dirk@lem.....org>
    +
  • Added define 'psd:additional-info' to preserve the additional information in a PSD file.
  • +
    2016-08-15 7.0.2-10 Cristy <quetzlzacatenango@image...>
    +
  • Prevent buffer overflow in BMP & SGI coders (bug report from pwchen&rayzhong of tencent).
  • +
  • Prevent buffer overflow and other problems in SIXEL, PDB, MAP, TIFF and CALS coders (bug report from Donghai Zhu).
  • +
  • The -stream option now increments the pixel pointer properly (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30327).
  • +
    2016-08-14 7.0.2-9 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-9, GIT revision 18707:2c02f09:20160814.
  • +
    2016-08-14 7.0.2-9 Cristy <quetzlzacatenango@image...>
    +
  • Fix compile error in opencl.c (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30289).
  • +
  • Eliminate compiler warning.
  • +
    2016-08-14 7.0.2-8 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-8, GIT revision 18698:74b1d5d:20160814.
  • +
    2016-08-07 7.0.2-8 Cristy <quetzlzacatenango@image...>
    +
  • Prevent spurious removal of MPC cache files (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30256).
  • +
  • Note alpha channel when combining 4 or more images (reference https://github.com/ImageMagick/ImageMagick/issues/250).
  • +
    2016-08-06 7.0.2-7 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-7, GIT revision 10980:ecc03a2:20160806.
  • +
    2016-08-01 7.0.2-7 Cristy <quetzlzacatenango@image...>
    +
  • Evaluate lazy pixel cache morphology to prevent buffer overflow (bug report from Ibrahim M. El-Sayed).
  • +
  • Prevent buffer overflow (bug report from Max Thrane).
  • +
  • Prevent memory use after free (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=30245).
  • +
    2016-07-30 7.0.2-6 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-6, GIT revision 18651:df24175:20160729.
  • +
    2016-07-29 7.0.2-6 Cristy <quetzlzacatenango@image...>
    +
  • Support -region option (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=1&t=29692).
  • +
    2016-07-21 7.0.2-5 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-5, GIT revision 18627:2b5ddbd:20160721.
  • +
    2016-07-13 7.0.2-5 Cristy <quetzlzacatenango@image...>
    +
  • Fix MVG stroke-opacity (reference https://github.com/ImageMagick/ImageMagick/issues/229).
  • +
  • Prevent possible buffer overflow when reading TIFF images (bug report from Shi Pu of MS509 Team).
  • +
  • Initialize index channel to get expected results from the stegano coder.
  • +
    2016-07-11 7.0.2-4 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-4, GIT revision 18591:50debe5:20160710.
  • +
    2016-07-10 7.0.2-4 Cristy <quetzlzacatenango@image...>
    +
  • To comply with the SVG standard, use stroke-opacity for transparent strokes.
  • +
  • Define CompositeChannels mask to Red, Green, Blue, Alpha, and Black.
  • +
    2016-07-09 7.0.2-3 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-3, GIT revision 18572:28560fc:20160709.
  • +
    2016-07-01 7.0.2-3 Cristy <quetzlzacatenango@image...>
    +
  • Patch so -kuwahara option can preserve colormapped edges.
  • +
  • The histogram coder now returns the correct extent.
  • +
  • Use CopyMagickString() rather than CopyMagickMemory() for strings.
  • +
    2016-06-26 7.0.2-2 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-2, GIT revision 18514:a7b5b46:20160626.
  • +
    2016-06-23 7.0.2-2 Cristy <quetzlzacatenango@image...>
    +
  • Correct for numerical instability (reference https://github.com/ImageMagick/ImageMagick/issues/218).
    +
  • 2016-06-21 7.0.2-1 Cristy <quetzlzacatenango@image...>
  • +
  • Release ImageMagick version 7.0.2-1, GIT revision 18479:931319b:20160622.
  • +
    2016-06-17 7.0.2-1 Dirk Lemstra <dirk@lem.....org>
    +
  • Added support for GROUP4 compression to the FAX coder.
  • +
    2016-06-12 7.0.2-1 Cristy <quetzlzacatenango@image...>
    +
  • Distort no longer converts grayscale image to sRGB (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=1&t=29895).
  • +
  • Don't return a zero bounding box for QueryMultilineFontMetrics() (reference https://github.com/ImageMagick/ImageMagick/issues/222).
  • +
    2016-06-12 7.0.2-0 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.2-0, GIT revision 10884:f0e15e8:20160612.
  • +
    2016-06-09 7.0.2-0 Cristy <quetzlzacatenango@image...>
    +
  • Backoff finite precision epsilon (reference https://github.com/ImageMagick/ImageMagick/issues/215).
  • +
  • Fix drawing glitch for stroke widths greater than 2 (reference https://github.com/ImageMagick/ImageMagick/issues/218).
  • +
    2016-06-05 7.0.1-10 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.1-10, GIT revision 18406:ba4ad2d:20160607.
  • +
    2016-06-04 7.0.1-10 Cristy <quetzlzacatenango@image...>
    +
  • Deny indirect reads by policy, remove policy to permit, e.g., convert caption:@mytext.txt ...
  • +
  • RLE check for pixel offset less than 0 (heap overflow report from Craig Young).
  • +
  • Properly initialze PES blocks (reference https://github.com/ImageMagick/ImageMagick/issues/213).
  • +
    2016-06-03 7.0.1-9 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.1-9, GIT revision 10847:339f803:20160602.
  • +
    2016-06-02 7.0.1-9 Cristy <quetzlzacatenango@image...>
    +
  • Fix small memory leak (patch provided by Ðндрей Черный).
  • +
  • Coder path traversal is not authorized (bug report provided by Masaaki Chida).
  • +
  • Turn off alpha channel for the compare difference image (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=29828).
  • +
    2016-05-31 7.0.1-8 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.1-8, GIT revision 18334:97775b5:20160531.
  • +
    2016-05-31 7.0.1-8 Cristy <quetzlzacatenango@image...>
    +
  • Support configure script --enable-pipes option to enable pipes (|) in filenames.
  • +
  • Support configure script --enable-indirect-reads option to enable indirect reads (@) in filenames.
  • +
    2016-05-30 7.0.1-7 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.1-7, GIT revision 18321:5511ef5:20160530.
  • +
    2016-05-25 7.0.1-7 Cristy <quetzlzacatenango@image...>
    +
  • Security improvements to TEXT coder broke it (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=29754).
  • +
  • Fix stroke offset problem for -annotate (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=29626).
  • +
  • Don't interpret -fx option arguments (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=29774);
  • +
  • Add additional checks to DCM reader to prevent data-driven faults (bug report from Hanno Böck).
  • +
    2016-05-21 7.0.1-6 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.1-6, GIT revision 18241:d4f277c:20160521.
  • +
    2016-05-20 7.0.1-6 Cristy <quetzlzacatenango@image...>
    +
  • Fixed proper placement of text annotation for east / west gravity.
  • +
    2016-05-18 7.0.1-5 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.1-5, GIT revision 10789:f7c2e89:20160518,
  • +
    2016-05-18 7.0.1-5 Cristy <quetzlzacatenango@image...>
    +
  • Process channels independently for -channel -equalize (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=3&t=29708).
  • +
  • Fix pixel cache on disk regression (reference https://github.com/ImageMagick/ImageMagick/issues/202).
  • +
    2016-05-15 7.0.1-4 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.1-4, GIT revision 10778:52dae14:20160516.
  • +
    2016-05-10 7.0.1-4 Cristy <quetzlzacatenango@image...>
    +
  • Prevent possible shell command injection vulnerability through the authenticate parameter of the PDF, PCL and XPS coders (report from Erez Turjeman).
  • +
  • Quote passwords when passed to a delegate program.
  • +
  • Iterate channels over source image rather than destination (bug report from Hanno Böck).
  • +
  • Can read geo-related EXIF metdata once-again (reference https://github.com/ImageMagick/ImageMagick/issues/198).
  • +
  • Sanitize all delegate emedded formatting characters.
  • +
  • Don't sync pixel cache in AcquireAuthenticCacheView() (bug report from Hanno Böck).
  • +
    2016-05-09 7.0.1-3 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.1-3, GIT revision 10755:d540dda:20160509.
  • +
    2016-05-07 7.0.1-3 Cristy <quetzlzacatenango@image...>
    +
  • Remove https delegate.
  • +
    2016-05-06 7.0.1-2 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.1-2, GIT revision 10741:5746147:20160507.
  • +
    2016-05-04 7.0.1-2 Cristy <quetzlzacatenango@image...>
    +
  • Check for buffer overflow in magick/draw.c/DrawStrokePolygon().
  • +
  • Replace show delegate title with image filename rather than label.
  • +
  • Fix GetNextToken() off by one error.
  • +
  • Remove support for internal ephemeral coder.
  • +
    2016-05-03 7.0.1-1 Cristy <quetzlzacatenango@image...>
    +
  • New version 7.0.1-1, GIT revision 10723:9fc8a0c:20160503.
  • +
    2016-05-03 7.0.1-1 Cristy <quetzlzacatenango@image...>
    +
  • Sanitize input filename for http / https delegates (improved patch).
  • +
  • Fix for possible security vulnerabilities (reference https://www.imagemagick.org/discourse-server///viewtopic.html?f=4&t=29588).
  • +
    2016-04-30 7.0.1-0 Cristy <quetzlzacatenango@image...>
    +
  • New version 7.0.1-0, GIT revision 10716:b527bce:20160430.
  • +
    2016-01-30 7.0.0-0 Fahad-Alsaidi & ShamsaHamed
    +
  • Add support for languages that require complex text layout (reference https://github.com/ImageMagick/ImageMagick/pull/88).
  • +
    2012-04-27 7.0.0-0 Anthony thyssen <A.Thyssen@griffith...>
    +
  • Allow the use of set and escapes when no images in memory (unless you attempt to access per-image meta-data) Currently does not include %[fx:...] and %[pixel:...]
  • +
    2012-10-05 7.0.0-0 Anthony thyssen <A.Thyssen@griffith...>
    +
  • Rather than replicate 'options' into 'artifacts' make a link from image to image_info and lookup a global option if no artifact is defined.
  • +
    2012-09-11 7.0.0-0 Nicolas Robidoux <nicolas.robidoux@gmail...>
    +
  • sigmoidal-contrast:
  • +
  • Remove unnecessary initial ClampToQuantum.
  • +
    2012-09-10 7.0.0-0 Nicolas Robidoux <nicolas.robidoux@gmail...>
    +
  • sigmoidal-contrast:
  • +
  • Direct computation, without LUT;
  • +
  • Fix re-declaration of i (at the top, and inside a conditional).
  • +
    2012-09-04 7.0.0-0 Nicolas Robidoux <nicolas.robidoux@gmail...>
    +
  • Add tanh/atanh clone of legacy sigmoidal map (faster & more accurate).
  • +
    2012-08-08 7.0.0-0 Nicolas Robidoux <nicolas.robidoux@gmail...>
    +
  • Add final ClampToQuantum in sigmoidal colormap loop.
  • +
  • Remove OpenMP calls from colormap update loops.
  • +
    2011-08-01 7.0.0-0 Cristy <quetzlzacatenango@image...>
    +
  • New version 7.0.0-0.
  • +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/cipher.html b/share/doc/ImageMagick-7/www/cipher.html new file mode 100644 index 0000000..ab68ad8 --- /dev/null +++ b/share/doc/ImageMagick-7/www/cipher.html @@ -0,0 +1,167 @@ + + + + + + + + + + Encipher or Decipher an Image @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

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

    + +

    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.

    + +

    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.

    + +

    Encipher an Image

    + +

    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:

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

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

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

    Decipher an Image

    + +

    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:

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

    Encipher and Decipher Caveats

    + +

    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.

    + +

    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.

    + +

    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.

    + +

    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.

    + +

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

    + +

    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.

    + +

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

    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/color-management.html b/share/doc/ImageMagick-7/www/color-management.html new file mode 100644 index 0000000..eccec50 --- /dev/null +++ b/share/doc/ImageMagick-7/www/color-management.html @@ -0,0 +1,165 @@ + + + + + + + + + + Color Management @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    Due to the standardization of sRGB on the Internet, most image formats use SRGB as the default working color space. If the color space of an image is unknown and it is an 8- to 16-bit image format, assuming it is in the sRGB color space is a safe choice. This extends to grayscale as well. We assume non-linear grayscale. These assumptions are overridden if a particular image format includes color space and / or gamma metadata. ImageMagick assumes linear color if the color space is RGB instead of sRGB. You can also override the default color space assumptions with color profiles or the -set option.

    + +

    ImageMagick supports color profiles, however, for images without a profile or a declaration of colorspace, ImageMagick assumes non-linear sRGB. Most image processing algorithms assume a linear colorspace, therefore it might be prudent to convert to linear color or remove the gamma function before certain image processing algorithms are applied. For example,

    + +
    magick myimage.jpg -colorspace RGB -resize 200% -colorspace sRGB mybigimage.jpg
    + +

    To declare that an image is linear RGB rather than sRGB, you can use the set option:

    + +
    magick myimage.png -set colorspace RGB myRGBimage.png
    + +

    Note that declaring an image as linear is not the same as converting the image to linear. Declaring it is linear only sets the meta data and does not change the pixel data. Whereas converting to linear actually changes the pixel data as described in more detail below.

    + +

    Afterwards, the verbose information for the output file lists the colorspace as RGB. This only works on image types containing meta data that distinguishes between linear RGB and non-linear sRGB, such as PNG and GIF. Therefore, if the above command is run with a JPG or TIF output format, the verbose information for the colorspace still shows sRGB. In order to properly have the JPG output know that it is linear RGB, include an appropriate color profile.

    + + +

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

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

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

    + +

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

    + +
    magick myimage.png -colorspace RGB -separate myimage_channels_%d.png
    + +

    When separating and recombining channels, with potential intermediate processing, it is important to identify the colorspace used, especially during the recombination. For example,

    + +
    magick myimage.png -separate myimage_channels_%d.png
    +magick myimage_channels_*.png -combine myimage2.png
    + +

    In the above example, the separated channels are non-linear and the default for -combine is to assume non-linear channels. So the result is the same as the input.

    + +If one desires to separate to linear grayscale channels, recombine them later back to non-linear color, perhaps after some processing, then use the same concept as above for maintaining linear grayscale:

    + +
    magick myimage.png -set colorspace RGB -separate myimage_channels_%d.png
    +magick myimage_channels_*.png -set colorspace RGB -combine -colorspace sRGB myimage2.png
    +
    + +

    When converting to another colorspace and back, such as between sRGB and HSL, the following two commands handle the first case of non-linear channels and the second case of linear channels:

    + +
    magick myimage.png -colorspace HSL -separate myimage_channels_%d.png
    +magick myimage_channels_*.png -set colorspace HSL -combine -colorspace sRGB myimage2.png
    + +
    magick myimage.png -set colorspace RGB -colorspace HSL -separate myimage_channels_%d.png
    +magick myimage_channels_*.png -set colorspace HSL -combine -colorspace RGB -set colorspace sRGB myimage2.png
    + +

    A majority of the image formats assume an sRGB colorspace (e.g. JPEG, PNG, etc.). A few support only linear RGB (e.g. EXR, DPX, CIN, HDR) or only linear GRAY (e.g. PGM). A few formats support CMYK. For example JPG does, but PNG does not. Then there is the occasional format that also supports LAB (that is CieLAB) (e.g. TIFF, PSD, JPG, JP2). For additional information, see the Colorspace and Supported Formats pages.

    + +

    When specifying individual colors as rgb(...) or hex, these colors will still be interpreted as non-linear, that is, as sRGB colors. However if one wants to create linear colors, use icc-color(rgb,r,g,b)", where r, g, and b are in the range 0 to 1. See the Color page.

    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/color.html b/share/doc/ImageMagick-7/www/color.html new file mode 100644 index 0000000..cb300b8 --- /dev/null +++ b/share/doc/ImageMagick-7/www/color.html @@ -0,0 +1,4971 @@ + + + + + + + + + + Color Names @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Example Usage • Color Model Specification • List of Color Names

    + +

    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.

    + +

    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.

    + +

    Example Usage

    + +

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

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

    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

    + +

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

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

    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.

    + +

    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.

    + +

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

    + +

    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:

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

    + +

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

    + +

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

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

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

    + +

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

    + +

    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.

    + +

    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.

    + +

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

    + +

    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.

    + +

    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.

    + +

    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%

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

    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%

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

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

    + +

    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:

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

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

    + +

    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%)
    +
    +-> magick -size 100x100 xc:"cielab(91.1131%,-18.8571%,-5.5436%)" -colorspace sRGB cyan.png
    + +

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

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

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

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

    List of Color Names

    + +

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

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    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
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/command-line-options.html b/share/doc/ImageMagick-7/www/command-line-options.html new file mode 100644 index 0000000..1319b15 --- /dev/null +++ b/share/doc/ImageMagick-7/www/command-line-options.html @@ -0,0 +1,8074 @@ + + + + + + + + + + Command-line Options @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    ‑adaptive‑blur • ‑adaptive‑resize • ‑adaptive‑sharpen • ‑adjoin • ‑affine • ‑alpha • ‑annotate • ‑antialias • ‑append • ‑attenuate • ‑authenticate • ‑auto‑gamma • ‑auto‑level • ‑auto‑orient • ‑auto‑threshold • ‑backdrop • ‑background • ‑bench • ‑bias • ‑black‑point‑compensation • ‑black‑threshold • ‑blend • ‑blue‑primary • ‑blue‑shift • ‑blur • ‑border • ‑bordercolor • ‑borderwidth • ‑brightness‑contrast • ‑cache • ‑canny • ‑caption • ‑cdl • ‑channel • ‑charcoal • ‑channel‑fx • ‑chop • ‑clamp • ‑clip • ‑clip‑mask • ‑clip‑path • ‑clone • ‑clut • ‑coalesce • ‑colorize • ‑colormap • ‑color‑matrix • ‑colors • ‑colorspace • ‑combine • ‑comment • ‑compare • ‑complex • ‑compose • ‑composite • ‑compress • ‑connected‑components • ‑contrast • ‑contrast‑stretch • ‑convolve • ‑copy • ‑crop • ‑cycle • ‑debug • ‑decipher • ‑deconstruct • ‑define • ‑delay • ‑delete • ‑density • ‑depth • ‑descend • ‑deskew • ‑despeckle • ‑direction • ‑displace • ‑display • ‑dispose • ‑dissimilarity‑threshold • ‑dissolve • ‑distort • ‑distribute‑cache • ‑dither • ‑draw • ‑duplicate • ‑edge • ‑emboss • ‑encipher • ‑encoding • ‑endian • ‑enhance • ‑equalize • ‑evaluate • ‑evaluate‑sequence • ‑extent • ‑extract • ‑family • ‑features • ‑fft • ‑fill • ‑filter • ‑flatten • ‑flip • ‑floodfill • ‑flop • ‑font • ‑foreground • ‑format • ‑format[identify] • ‑frame • ‑frame[import] • ‑function • ‑fuzz • ‑fx • ‑gamma • ‑gaussian‑blur • ‑geometry • ‑gravity • ‑grayscale • ‑green‑primary • ‑hald‑clut • ‑help • ‑highlight‑color • ‑hough‑lines • ‑iconGeometry • ‑iconic • ‑identify • ‑ift • ‑immutable • ‑implode • ‑insert • ‑intensity • ‑intent • ‑interlace • ‑interpolate • ‑interline‑spacing • ‑interword‑spacing • ‑kerning • ‑kuwahara • ‑label • ‑lat • ‑layers • ‑level • ‑level‑colors • ‑limit • ‑linear‑stretch • ‑linewidth • ‑liquid‑rescale • ‑list • ‑log • ‑loop • ‑lowlight‑color • ‑magnify • ‑map • ‑map[stream] • ‑mattecolor • ‑median • ‑mean‑shift • ‑metric • ‑mode • ‑modulate • ‑moments • ‑monitor • ‑monochrome • ‑morph • ‑morphology • ‑mosaic • ‑motion‑blur • ‑name • ‑negate • ‑noise • ‑normalize • ‑opaque • ‑ordered‑dither • ‑orient • ‑page • ‑paint • ‑path • ‑pause[animate] • ‑pause[import] • ‑perceptible • ‑ping • ‑pointsize • ‑polaroid • ‑poly • ‑posterize • ‑precision • ‑preview • ‑print • ‑process • ‑profile • ‑quality • ‑quantize • ‑quiet • ‑radial‑blur • ‑raise • ‑random‑threshold • ‑read‑mask • ‑red‑primary • ‑regard‑warnings • ‑region • ‑remap • ‑remote • ‑render • ‑repage • ‑resample • ‑resize • ‑respect‑parentheses • ‑reverse • ‑roll • ‑rotate • ‑sample • ‑sampling‑factor • ‑scale • ‑scene • ‑screen • ‑seed • ‑segment • ‑selective‑blur • ‑separate • ‑sepia‑tone • ‑set • ‑shade • ‑shadow • ‑shared‑memory • ‑sharpen • ‑shave • ‑shear • ‑sigmoidal‑contrast • ‑silent • ‑similarity‑threshold • ‑size • ‑sketch • ‑smush • ‑snaps • ‑solarize • ‑sparse‑color • ‑splice • ‑spread • ‑statistic • ‑stegano • ‑stereo • ‑storage‑type • ‑stretch • ‑strip • ‑stroke • ‑strokewidth • ‑style • ‑subimage‑search • ‑swap • ‑swirl • ‑synchronize • ‑taint • ‑text‑font • ‑texture • ‑threshold • ‑thumbnail • ‑tile • ‑tile‑offset • ‑tint • ‑title • ‑transform • ‑transparent • ‑transparent‑color • ‑transpose • ‑transverse • ‑treedepth • ‑trim • ‑type • ‑undercolor • ‑unique‑colors • ‑units • ‑unsharp • ‑update • ‑verbose • ‑version • ‑view • ‑vignette • ‑virtual‑pixel • ‑visual • ‑watermark • ‑wave • ‑wavelet‑denoise • ‑weight • ‑white‑point • ‑white‑threshold • ‑window • ‑window‑group • ‑write • ‑write‑mask

    +

    Below is list of command-line options recognized by the ImageMagick command-line tools. If you want a description of a particular option, click on the option name in the navigation bar above and you will go right to it. Unless otherwise noted, each option is recognized by the commands: convert and mogrify.

    + +
    +

    -adaptive-blur radius[xsigma]

    +
    + +

    Adaptively blur pixels, with decreasing effect near edges.

    + +

    A Gaussian operator of the given radius and standard deviation (sigma) is used. If sigma is not given it +defaults to 1.

    + +
    +

    -adaptive-resize geometry

    +
    + +

    Resize the image using data-dependent triangulation.

    + +

    See Image Geometry for complete details about the geometry argument. The -adaptive-resize +option defaults to data-dependent triangulation. Use the -filter to choose a different resampling algorithm. +Offsets, if present in the geometry string, are ignored, and the -gravity option has no effect.

    + +
    +

    -adaptive-sharpen radius[xsigma]

    +
    + +

    Adaptively sharpen pixels, with increasing effect near edges.

    + +

    A Gaussian operator of the given radius and standard deviation +(sigma) is used. If sigma is not given it +defaults to 1.

    + +
    +

    -adjoin

    +
    + +

    Join images into a single multi-image file.

    + +

    This option is enabled by default. An attempt is made to save all images of +an image sequence into the given output file. However, some formats, such as +JPEG and PNG, do not support more than one image per file, and in that case +ImageMagick is forced to write each image as a separate file. As such, if +more than one image needs to be written, the filename given is modified by +adding a -scene number before the suffix, in order to +make distinct names for each image.

    + +

    Use +adjoin to force each image to be written to +separate files, whether or not the file format allows multiple images per file +(for example, GIF, MIFF, and TIFF).

    + +

    Including a C-style integer format string in the output filename will +automagically enable +adjoin and are used to specify +where the -scene number is placed in the filenames. These +strings, such as '%d' or '%03d', are familiar to those +who have used the standard printf()' C-library function. As an +example, the command

    + +
    convert logo: rose: -morph 15 my%02dmorph.jpg
    +
    + +

    will create a sequence of 17 images (the two given plus 15 more created by +-morph), named: my00morph.jpg, my01morph.jpg, +my02morph.jpg, ..., my16morph.jpg.

    + +

    In summary, ImageMagick tries to write all images to one file, but will +save to multiple files, if any of the following conditions exist...

    +
      +
    1. the output image's file format does not allow multi-image files,
    2. +
    3. the +adjoin option is given, or
    4. +
    5. a printf() integer format string (eg: "%d") is present in the output + filename.
    6. +
    + + +
    +

    -affine + sx,rx,ry,sy[,tx,ty]

    +
    + +

    Set the drawing transformation matrix for combined rotating and scaling.

    + +

    This option sets a transformation matrix, for use by subsequent -draw or -transform options.

    + +

    The matrix entries are entered as comma-separated numeric values either in +quotes or without spaces.

    + +

    Internally, the transformation matrix has 3x3 elements, but three of them +are omitted from the input because they are constant. The new (transformed) +coordinates (x', y') of a pixel at +position (x, y) in the original +image are calculated using the following matrix equation.

    + +

    affine transformation

    + +

    The size of the resulting image is that of the smallest rectangle that +contains the transformed source image. The parameters +tx and ty +subsequently shift the image pixels so that those that are moved out of the +image area are cut off.

    + +

    The transformation matrix complies with the left-handed pixel coordinate +system: positive x and y directions +are rightward and downward, resp.; positive rotation is clockwise.

    + +

    If the translation coefficients tx and +ty are omitted they default to 0,0. Therefore, +four parameters suffice for rotation and scaling without translation.

    + +

    Scaling by the factors sx and +sy in the x and y directions, +respectively, is accomplished with the following.

    + +

    See -transform, and the -distort method 'Affineprojection for more +information

    + + +
    -affine sx,0,0,sy
    +
    + +

    Translation by a displacement (tx, ty) is accomplished like so:

    + +
    -affine 1,0,0,1,tx,ty
    +
    + +

    Rotate clockwise about the origin (the upper left-hand corner) by an angle +a by letting c = cos(a), s += sin(a), and using the following.

    + +
    -affine c,s,-s,c
    +
    + +

    The cumulative effect of a sequence of -affine +transformations can be accomplished by instead by a single -affine operation using the matrix equal to the product of the matrices +of the individual transformations.

    + +

    An attempt is made to detect near-singular transformation matrices. If the +matrix determinant has a sufficiently small absolute value it is rejected.

    + +
    +

    -alpha type

    +
    + +

    Gives control of the alpha/matte channel of an image.

    + +

    Used to set a flag on an image indicating whether or not to use existing alpha +channel data, to create an alpha channel, or to perform other operations on the alpha channel. Choose the argument type from the list below.

    + +
    +
    Activate
    +
    + Enable the image's transparency channel. Note normally Set + should be used instead of this, unless you specifically need to + preserve existing (but specifically turned Off) transparency + channel.
    + +
    Associate
    +
    + associate the alpha channel with the image.
    + +
    Deactivate
    +
    + Disables the image's transparency channel. Does not delete or change the + existing data, just turns off the use of that data.
    + +
    Disassociate
    +
    + disassociate the alpha channel from the image.
    + +
    Set
    +
    + Activates the alpha/matte channel. If it was previously turned off + then it also resets the channel to opaque. If the image already had + the alpha channel turned on, it will have no effect.
    + +
    Opaque
    +
    + Enables the alpha/matte channel and forces it to be fully opaque. +
    + +
    Transparent
    +
    + Activates the alpha/matte channel and forces it to be fully + transparent. This effectively creates a fully transparent image the + same size as the original and with all its original RGB data still + intact, but fully transparent.
    + +
    Extract
    +
    + Copies the alpha channel values into all the color channels and turns + 'Off' the the image's transparency, so as to generate + a grayscale mask of the image's shape. The alpha channel data is left + intact just deactivated. This is the inverse of 'Copy'. +
    + +
    Copy
    +
    + Turns 'On' the alpha/matte channel, then copies the + grayscale intensity of the image, into the alpha channel, converting + a grayscale mask into a transparent shaped mask ready to be colored + appropriately. The color channels are not modified.
    + +
    Shape
    +
    + As per 'Copy' but also colors the resulting shape mask with + the current background color. That is the RGB color channels is + replaced, with appropriate alpha shape. +
    + +
    Remove
    +
    + Composite the image over the background color. +
    + +
    Background
    +
    + Set any fully-transparent pixel to the background color, while leaving + it fully-transparent. This can make some image file formats, such as + PNG, smaller as the RGB values of transparent pixels are more uniform, + and thus can compress better. +
    +
    + +

    Note that while the obsolete +matte operation was the +same as "-alpha Off", the +>-matte operation was the same as "-alpha +Set" and not "-alpha On".

    + +
    +

    + -annotate degrees text
    + -annotate XdegreesxYdegrees text
    -annotate XdegreesxYdegrees {+-}tx{+-}ty text
    -annotate {+-}tx{+-}ty text

    +
    + +

    Annotate an image with text

    + +

    This is a convenience for annotating an image with text. For more precise +control over text annotations, use -draw.

    + + +

    The values Xdegrees and Ydegrees +control the shears applied to the text, while tx and ty are offsets that give the location of the text relative any -gravity setting and defaults to the upper left corner of the image.

    + +

    Using -annotate degrees +or -annotate degreesxdegrees produces an unsheared rotation of the text. The +direction of the rotation is positive, which means a clockwise rotation if degrees is positive. (This conforms to the usual mathematical +convention once it is realized that the positive y–direction is +conventionally considered to be downward for images.)

    + +

    The new (transformed) coordinates (x', y') of a pixel at position (x, y) in the image are calculated using the following matrix +equation.

    + +

    annotate transformation

    + +

    If tx and ty are omitted, they default to 0. This makes the +bottom-left of the text becomes the upper-left corner of the image, which is +probably undesirable. Adding a -gravity option in this +case leads to nice results.

    + +

    Text is any UTF-8 encoded character sequence. If text +is of the form '@mytext.txt', the text is read from the file +mytext.txt. Text in a file is taken literally; no embedded +formatting characters are recognized.

    + +
    +

    -antialias

    +
    + +

    Enable/Disable of the rendering of anti-aliasing pixels when drawing fonts and lines.

    + +

    By default, objects (e.g. text, lines, polygons, etc.) are antialiased when +drawn. Use +antialias to disable the addition of +antialiasing edge pixels. This will then reduce the number of colors added to +an image to just the colors being directly drawn. That is, no mixed colors +are added when drawing such objects.

    + +
    +

    -append

    +
    + +

    Join current images vertically or horizontally.

    + +

    This option creates a single longer image, by joining all the current +images in sequence top-to-bottom. Use +append to +stack images left-to-right.

    + +

    If they are not of the same width, narrower images are padded with the +current -background color setting, and their +position relative to each other can be controlled by the current -gravity setting.

    + + +
    +

    -attenuate value

    +
    + +

    Lessen (or intensify) when adding noise to an image.

    + +

    If unset the value is equivalent to 1.0, or a maximum noise addition

    + +
    +

    -authenticate password

    +
    + +

    Decrypt a PDF with a password.

    + +

    Use this option to supply a password for decrypting +a PDF that has been encrypted using Microsoft Crypto API (MSC API). The +encrypting using the MSC API is not supported.

    + +

    For a different encryption method, see -encipher +and -decipher.

    + + +
    +

    -auto-gamma

    +
    + +

    Automagically adjust gamma level of image.

    + +

    This calculates the mean values of an image, then applies a calculated -gamma adjustment so that the mean color in the +image will get a value of 50%.

    + +

    This means that any solid 'gray' image becomes 50% gray.

    + +

    This works well for real-life images with little or no extreme dark and +light areas, but tend to fail for images with large amounts of bright sky or +dark shadows. It also does not work well for diagrams or cartoon like images. +

    + +

    It uses the -channel setting, (including the +'sync' flag for channel synchronization), to determine which color +values is used and modified. As the default -channel setting is 'RGB,sync', channels are modified +together by the same gamma value, preserving colors.

    + + + +
    +

    -auto-level

    +
    + +

    Automagically adjust color levels of image.

    + +

    This is a 'perfect' image normalization operator. It finds the exact +minimum and maximum color values in the image and then applies a -level operator to stretch the values to the full range of +values.

    + +

    The operator is not typically used for real-life images, image scans, or +JPEG format images, as a single 'out-rider' pixel can set a bad min/max values +for the -level operation. On the other hand it is the +right operator to use for color stretching gradient images being used to +generate Color lookup tables, distortion maps, or other 'mathematically' +defined images.

    + +

    The operator is very similar to the -normalize, -contrast-stretch, and -linear-stretch operators, but without 'histogram binning' or 'clipping' +problems that these operators may have. That is -auto-level is the perfect or ideal version these operators.

    + +

    It uses the -channel setting, (including the +special 'sync' flag for channel synchronization), to determine +which color values are used and modified. As the default +channel setting is 'RGB,sync', the +'sync' ensures that the color channels will are modified +together by the same gamma value, preserving colors, and ignoring +transparency.

    + + +
    +

    -auto-orient

    +
    + +

    adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).

    + +

    This operator reads and resets the EXIF image profile setting 'Orientation' +and then performs the appropriate 90 degree rotation on the image to orient +the image, for correct viewing.

    + +

    This EXIF profile setting is usually set using a gravity sensor in digital +camera, however photos taken directly downward or upward may not have an +appropriate value. Also images that have been orientation 'corrected' without +reseting this setting, may be 'corrected' again resulting in a incorrect +result. If the EXIF profile was previously stripped, the -auto-orient operator will do nothing.

    + +
    +

    -auto-threshold method

    +
    + +

    automatically perform image thresholding.

    + +

    Here are the valid methods:

    + +
    +
    Undefined
    0: No method specified (equivalent to 'OTSU').
    +
    Kapur
    maximum entropy thresholding.
    +
    OTSU
    cluster-based image thresholding.
    +
    Triangle
    a geometric thresholding method.
    +
    + +

    The computed threshold is returned as the auto-threshold:threshold image property.

    + +
    +

    -average

    +
    + +

    Average a set of images.

    + +

    An error results if the images are not identically sized.

    + + +
    +

    -backdrop

    +
    + +

    Display the image centered on a backdrop.

    + +

    This backdrop covers the entire workstation screen and is useful for hiding +other X window activity while viewing the image. The color of the backdrop is +specified as the background color. The color is specified using the format +described under the -fill option.

    + +
    +

    -background color

    +
    + +

    Set the background color.

    + +

    The color is specified using the format described under the -fill option. The default background color (if none is +specified or found in the image) is white.

    + +
    +

    -bench iterations

    +
    + +

    Measure performance.

    + +

    Repeat the entire command for the given number of iterations and report the user-time and elapsed time. For instance, +consider the following command and its output. Modify the benchmark with the +-duration to run the benchmark for a fixed number of seconds and -concurrent +to run the benchmark in parallel (requires the OpenMP feature).

    + +
    -> convert logo: -resize 200% -bench 5 logo.png
    +Performance[1]: 5i 1.344ips 1.000e 3.710u 0:03.720
    +Performance[2]: 5i 1.634ips 0.549e 3.890u 0:03.060
    +Performance[3]: 5i 2.174ips 0.618e 3.190u 0:02.300
    +Performance[4]: 5i 1.678ips 0.555e 3.810u 0:02.980
    +Performance[4]: 5i 0.875657ips 6.880u 0:05.710
    +
    + +

    In this example, 5 iterations were completed at 2.174 iterations per +second, using 3 threads and 3.190 seconds of the user allotted time, for +a total elapsed time of 2.300 seconds.

    + +
    +

    -bias value{%}

    +
    + +

    Add bias when convolving an image.

    + +

    This option shifts the output of ‑convolve so that +positive and negative results are relative to the specified bias value.

    + +

    This is important for non-HDRI compilations of ImageMagick when dealing +with convolutions that contain negative as well as positive values. This is +especially the case with convolutions involving high pass filters or edge +detection. Without an output bias, the negative values are clipped at +zero.

    + +

    When using an ImageMagick with the HDRI compile-time setting, ‑bias is not needed, as ImageMagick is able to store/handle any +negative results without clipping to the color value range +(0..QuantumRange).

    + +

    See the discussion on HDRI implementations of ImageMagick on the page High Dynamic-Range Images. For more +about HDRI go the ImageMagick Usage pages or this +Wikipedia +entry.

    + +
    +

    -black-point-compensation

    +
    + +

    Use black point compensation.

    + +
    +

    -black-threshold value{%}

    +
    + +

    Force to black all pixels below the threshold while leaving all pixels at or above the threshold unchanged.

    + +

    The threshold value can be given as a percentage or as an absolute integer +value within [0, QuantumRange] corresponding to the +desired ‑channel value. See ‑thresholdfor more details on thresholds and resulting values.

    + + +
    +

    -blend geometry

    +
    + +

    blend an image into another by the given absolute value or percent.

    + +

    Blend will average the images together ('plus') according to the +percentages given and each pixels transparency. If only a single percentage +value is given it sets the weight of the composite or 'source' image, while +the background image is weighted by the exact opposite amount. That is a +-blend 30% merges 30% of the 'source' image with 70% of the +'destination' image. Thus it is equivalent to -blend 30x70%.

    + + +
    +

    -blue-primary x,y

    +
    + +

    Set the blue chromaticity primary point.

    + +
    +

    -blue-shift factor

    +
    + +

    simulate a scene at nighttime in the moonlight. Start with a factor of 1.5

    + +
    + +
    +

    -blur radius
    -blur radiusxsigma

    +
    + +

    Reduce image noise and reduce detail levels.

    + +

    Convolve the image with a Gaussian or normal distribution using the given +Sigma value. The formula is:

    + +

    gaussian distribution

    + +

    The Sigma value is the important argument, and +determines the actual amount of blurring that will take place.

    + +

    The Radius is only used to determine the size of the +array which will hold the calculated Gaussian distribution. It should be an +integer. If not given, or set to zero, IM will calculate the largest possible +radius that will provide meaningful results for the Gaussian distribution. +

    + +

    The larger the Radius the slower the +operation is. However too small a Radius, and severe +aliasing effects may result. As a guideline, Radius +should be at least twice the Sigma value, though three +times will produce a more accurate result.

    + +

    This option differs from -gaussian-blur simply +by taking advantage of the separability properties of the distribution. Here +we apply a single-dimensional Gaussian matrix in the horizontal direction, +then repeat the process in the vertical direction.

    + +

    The -virtual-pixel setting will determine how +pixels which are outside the image proper are blurred into the final result. +

    + + +
    +

    -border geometry

    +
    + +

    Surround the image with a border of color.

    + +

    Set the width and height using the size portion of the +geometry argument. See Image Geometry for complete details about the geometry argument. Offsets are +ignored.

    + +

    As of IM 6.7.8-8, the geometry arguments behave as follows:

    + +
    +
    value
    +
    value is added to both left/right and top/bottom
    +
    value-xx
    +
    value-x is added only to left/right and top/bottom are unchanged
    +
    xvalue-y
    +
    value-y is added only to top/bottom and left/right are unchanged
    +
    value-xxvalue-y
    +
    value-x is added to left/right and value-y added to top/bottom
    +
    value-xx0
    +
    value-x is added only to left/right and top/bottom are unchanged
    +
    0xvalue-y
    +
    value-y is added only to top/bottom and left/right are unchanged
    +
    value%
    +
    value % of width is added to left/right and value % of height is added to top/bottom
    +
    value-xx%
    +
    value-x % of width is added to left/right and to top/bottom
    +
    xvalue-y%
    +
    value-y % of height is added to top/bottom and to left/right
    +
    value-x%xvalue-y%
    +
    value-x % of width is added to left/right and value-y % of height is added to top/bottom
    +
    value-x%x0%
    +
    value-x % of width is added to left/right and top/bottom are unchanged
    +
    0%xvalue-y%
    +
    value-y % of height is added to top/bottom and left/right are unchanged
    +
    + +

    Set the border color by preceding with the -bordercolor setting.

    + +

    The -border operation is affected by the current -compose setting and assumes that this is using the default +'Over' composition method. It generates an image of the appropriate +size colors by the current -bordercolor before +overlaying the original image in the center of this net image. This means that +with the default compose method of 'Over' any transparent parts may +be replaced by the current -bordercolor setting.

    +

    See also the -frame option, which has more +functionality.

    + +
    +

    -bordercolor color

    +
    + +

    Set the border color.

    + +

    The color is specified using the format described under the -fill option.

    + +

    The default border color is #DFDFDF, this shade of gray.

    + +
    +

    -borderwidth geometry

    +
    + +

    Set the border width.

    + +
    +

    -brightness-contrast brightness
    -brightness-contrast brightness{xcontrast}{%}

    +
    + +

    Adjust the brightness and/or contrast of the image.

    + +

    Brightness and Contrast values apply changes to the input image. They are +not absolute settings. A brightness or contrast value of zero means no change. +The range of values is -100 to +100 on each. Positive values increase the +brightness or contrast and negative values decrease the brightness or contrast. +To control only contrast, set the brightness=0. To control only brightness, +set contrast=0 or just leave it off.

    + +

    You may also use -channel to control which channels to +apply the brightness and/or contrast change. The default is to apply the same +transformation to all channels.

    + +

    Brightness and Contrast arguments are converted to offset and slope of a +linear transform and applied +using -function polynomial "slope,offset".

    + +

    The slope varies from 0 at contrast=-100 to almost vertical at +contrast=+100. For brightness=0 and contrast=-100, the result are totally +midgray. For brightness=0 and contrast=+100, the result will approach but +not quite reach a threshold at midgray; that is the linear transformation +is a very steep vertical line at mid gray.

    + +

    Negative slopes, i.e. negating the image, are not possible with this +function. All achievable slopes are zero or positive.

    + +

    The offset varies from -0.5 at brightness=-100 to 0 at brightness=0 to +0.5 +at brightness=+100. Thus, when contrast=0 and brightness=100, the result is +totally white. Similarly, when contrast=0 and brightness=-100, the result is +totally black.

    + +

    As the range of values for the arguments are -100 to +100, adding the '%' +symbol is no different than leaving it off.

    + +
    +

    -cache threshold

    +
    + +

    (This option has been replaced by the -limit option).

    + +
    +

    -canny radius
    -canny radiusxsigma{+lower-percent}{+upper-percent}

    +
    + +

    Canny edge detector uses a multi-stage algorithm to detect a wide range of edges in the image.

    + +

    The thresholds range from 0 to 100% (e.g. -canny 0x1+10%+30%) with {+lower-percent} < {+upper-percent}. If {+upper-percent} is increased but {+lower-percent} remains the same, lesser edge components will be detected, but their lengths will be the same. If {+lower-percent} is increased but {+upper-percent} is the same, the same number of edge components will be detected but their lengths will be shorter. The default thresholds are shown. The radiusxsigma controls a gaussian blur applied to the input image to reduce noise and smooth the edges.

    + +
    +

    -caption string

    +
    + +

    Assign a caption to an image.

    + +

    This option sets the caption meta-data of an image read in after this +option has been given. To modify a caption of images already in memory use +"-set caption".

    + +

    The caption can contain special format characters listed in the Format and +Print Image Properties. These attributes are expanded when the caption +is finally assigned to the individual images.

    + +

    If the first character of string is @, the image caption is read from a file titled by the +remaining characters in the string. Comments read in from a file are literal; +no embedded formatting characters are recognized.

    + +

    Caption meta-data is not visible on the image itself. To do that use the +-annotate or -draw options +instead.

    + +

    For example,

    + +
    -caption "%m:%f %wx%h"  bird.miff
    +
    + +

    produces an image caption of MIFF:bird.miff 512x480 (assuming +that the image bird.miff has a width of 512 and a height of +480.

    + + +
    +

    -cdl filename

    +
    + +

    color correct with a color decision list.

    + +

    Here is an example color correction collection:

    + +
    <?xml version="1.0" encoding="UTF-8"?>
    +<ColorCorrectionCollection xmlns="urn:ASC:CDL:v1.2">
    +  <ColorCorrection id="cc06668">
    +    <SOPNode>
    +      <Slope> 0.9 1.2 0.5 </Slope>
    +      <Offset> 0.4 -0.5 0.6 </Offset>
    +      <Power> 1.0 0.8 1.5 </Power>
    +    </SOPNode>
    +    <SATNode>
    +      <Saturation> 0.85 </Saturation>
    +    </SATNode>
    +  </ColorCorrection>
    +</ColorCorrectionCollection>
    +
    + +
    +

    -channel type

    +
    + +

    Specify those image color channels to which subsequent operators are limited.

    + +

    Choose from: Red, Green, Blue, +Alpha, Gray, Cyan, Magenta, +Yellow, Black, Opacity, +Index, RGB, RGBA, CMYK, or +CMYKA.

    + +

    The channels above can also be specified as a comma-separated list or can be +abbreviated as a concatenation of the letters 'R', 'G', +'B', 'A', 'O', 'C', +'M', 'Y', 'K'.

    + +

    The numerals 0 to 31 may also be used to specify channels, where 0 to 5 are:
    +'0' equals Red or Cyan
    +'1' equals Green or Magenta
    +'2' equals Blue or Yellow
    +'3' equals Black
    +'4' equals Alpha or Opacity
    +'5' equals Index

    + +

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

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

    All the channels that are present in an image can be specified using the +special channel type All. Not all operators are 'channel capable', +but generally any operators that are generally 'grey-scale' image operators, +will understand this setting. See individual operator documentation.

    + +
    + +

    On top of the normal channel selection an extra flag can be specified, +'Sync'. This is turned on by default and if set means that +operators that understand this flag should perform: cross-channel +synchronization of the channels. If not specified, then most grey-scale +operators will apply their image processing operations to each individual +channel (as specified by the rest of the -channel +setting) completely independently from each other.

    + +

    For example for operators such as -auto-level and +-auto-gamma the color channels are modified +together in exactly the same way so that colors will remain in-sync. Without +it being set, then each channel is modified separately and +independently, which may produce color distortion.

    + +

    The -morphology 'Convolve' method +and the -compose mathematical methods, also understands +the 'Sync' flag to modify the behavior of pixel colors according +to the alpha channel (if present). That is to say it will modify the image +processing with the understanding that fully-transparent colors should not +contribute to the final result.

    + +

    Basically, by default, operators work with color channels in synchronous, and +treats transparency as special, unless the -channel +setting is modified so as to remove the effect of the 'Sync' flag. +How each operator does this depends on that operators current implementation. +Not all operators understands this flag at this time, but that is changing. +

    + +

    To print a complete list of channel types, use -list +channel.

    + +

    By default, ImageMagick sets -channel to the value +'RGBK,sync', which specifies that operators act on all color +channels except the transparency channel, and that all the color channels are +to be modified in exactly the same way, with an understanding of transparency +(depending on the operation being applied). The 'plus' form +channel will reset the value back to this default.

    + +

    Options that are affected by the -channel setting +include the following. + +-auto-gamma, +-auto-level, +-black-threshold, +-blur, +-clamp, +-clut, +-combine, +-composite (Mathematical compose methods only), +-convolve, +-contrast-stretch, +-evaluate, +-function, +-fx, +-gaussian-blur, +-hald-clut, +-motion-blur, +-morphology, +-negate, +-normalize, +-ordered-dither, +-radial-blur, +-random-threshold, +-separate, +-threshold, and +-white-threshold. +

    + +

    Warning, some operators behave differently when the +channel default setting is in effect, verses ANY user defined -channel setting (including the equivalent of the +default). These operators have yet to be made to understand the newer 'Sync' +flag.

    + +

    For example -threshold will by default grayscale +the image before thresholding, if no -channel setting +has been defined. This is not 'Sync flag controlled, yet.

    + +

    Also some operators such as -blur, -gaussian-blur, will modify their handling of the +color channels if the 'alpha' channel is also enabled by -channel. Generally this done to ensure that +fully-transparent colors are treated as being fully-transparent, and thus any +underlying 'hidden' color has no effect on the final results. Typically +resulting in 'halo' effects. The newer -morphology +convolution equivalents however does have a understanding of the 'Sync' flag +and will thus handle transparency correctly by default.

    + +

    As a alpha channel is optional within images, some operators will read the +color channels of an image as a greyscale alpha mask, when the image has no +alpha channel present, and the -channel setting tells +the operator to apply the operation using alpha channels. The -clut operator is a good example of this.

    + +
    +

    -channel-fx expression

    +
    + +

    exchange, extract, or copy one or more image channels.

    + +

    The expression consists of one or more channels, either mnemonic or numeric (e.g. red or 0, green or 1, etc.), separated by certain operation symbols as follows:

    + +
    <=>  exchange two channels (e.g. red<=>blue)
    +=>   copy one channel to another channel (e.g. red=>green)
    +=    assign a constant value to a channel (e.g. red=50%)
    +,    write new image with channels in the specified order (e.g. red, green)
    +;    add a new output image for the next set of channel operations (e.g. red; green; blue)
    +|    move to the next input image for the source of channel data (e.g. | gray=>alpha)
    +
    + +

    For example, to create 3 grayscale images from the red, green, and blue channels of an image, use:

    + +
    -channel-fx "red; green; blue"
    +
    + +

    A channel without an operation symbol implies separate (i.e, semicolon).

    + +

    Here we take an sRGB image and a grayscale image and inject the grayscale image into the alpha channel:

    +
    convert wizard.png mask.pgm -channel-fx '| gray=>alpha' wizard-alpha.png
    +
    +

    Use a similar command to define a read mask:

    +
    convert wizard.png mask.pgm -channel-fx '| gray=>read-mask' wizard-mask.png
    +
    + +

    Add -debug pixel prior to the -channel-fx option to track the channel morphology.

    + +
    +

    -charcoal factor

    +
    + +

    Simulate a charcoal drawing.

    + + +
    +

    -chop geometry

    +
    + +

    Remove pixels from the interior of an image.

    + +

    See Image Geometry for complete details about the geometry argument. The width +and height given in the of the size +portion of the geometry argument give the number of +columns and rows to remove. The offset portion of +the geometry argument is influenced by +a -gravity setting, if present.

    + +

    The -chop option removes entire rows and columns, +and moves the remaining corner blocks leftward and upward to close the gaps.

    + +

    While it can remove internal rows and columns of pixels, it is more +typically used with as -gravity setting and zero +offsets so as to remove a single edge from an image. Compare this to -shave which removes equal numbers of pixels from opposite +sides of the image.

    + +

    Using -chop effectively undoes the results of a -splice that was given the same geometry and -gravity settings.

    + +
    +

    -clamp

    +
    + +

    set 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

    +
    + +

    Apply the clipping path if one is present.

    + +

    If a clipping path is present, it is applied to subsequent operations.

    + +

    For example, in the command

    + +
    convert cockatoo.tif -clip -negate negated.tif
    +
    + +

    only the pixels within the clipping path are negated.

    + +

    The -clip feature requires SVG support. If the SVG +delegate library is not present, the option is ignored.

    + +

    Use +clip to disable clipping for subsequent operations.

    + +
    +

    -clip-mask

    +
    + +

    Clip the image as defined by this mask.

    + +

    Use the alpha channel of the current image as a mask. Any areas that is +white is not modified by any of the 'image processing operators' that follow, +until the mask is removed. Pixels in the black areas of the clip mask are +modified per the requirements of the operator.

    + +

    In some ways this is similar to (though not the same) as defining +a rectangular -region, or using the negative of the +mask (third) image in a three image -composite, +operation.

    + +

    Use +clip-mask to disable clipping for subsequent operations.

    + +
    +

    -clip-path id

    +
    + +

    Clip along a named path from the 8BIM profile.

    + +

    This is identical to -clip except choose a specific clip path in the event the image has more than one path available.

    + +

    Use +clip-path to disable clipping for subsequent operations.

    + +
    +

    -clone index(s)

    +
    + +

    make a clone of an image (or images).

    + +

    Inside parenthesis (where the operator is normally used) it will make a +clone of the images from the last 'pushed' image sequence, and adds them to +the end of the current image sequence. Outside parenthesis +(not recommended) it clones the images from the current image sequence.

    + +

    Specify the image by its index in the sequence. The first image is index +0. Negative indexes are relative to the end of the sequence; for +example, −1 +represents the last image of the sequence. Specify a range of images with a +dash (e.g. 0−4). Separate multiple indexes with commas but no +spaces (e.g. 0,2,5). A value of '0−−1 will +effectively clone all the images.

    + +

    The +clone will simply make a copy of the last image +in the image sequence, and is thus equivalent to using a argument of +'−1'.

    + +
    +

    -clut

    +
    + +

    Replace the channel values in the first image using each corresponding channel in the second image as a color lookup table.

    + +

    The second (LUT) image is ordinarily a gradient image containing the +histogram mapping of how each channel should be modified. Typically it is a +either a single row or column image of replacement color values. If larger +than a single row or column, values are taken from a diagonal line from +top-left to bottom-right corners.

    + +

    The lookup is further controlled by the -interpolate setting, which is especially handy for an +LUT which is not the full length needed by the ImageMagick installed Quality +(Q) level. Good settings for this are the 'bilinear' and +'bicubic' interpolation settings, which give smooth color +gradients, and the 'integer' setting for a direct, unsmoothed +lookup of color values.

    + +

    This operator is especially suited to replacing a grayscale image with a +specific color gradient from the CLUT image.

    + +

    Only the channel values defined by the -channel +setting will have their values replaced. In particular, since the default -channel setting is RGB, this means that +transparency (alpha/matte channel) is not affected, unless the -channel setting is modified. When the alpha channel is +set, it is treated by the -clut operator in the same way +as the other channels, implying that alpha/matte values are replaced using the +alpha/matte values of the original image.

    + +

    If either the image being modified, or the lookup image, contains no +transparency (i.e. -alpha is turned 'off') but the -channel setting includes alpha replacement, then it is +assumed that image represents a grayscale gradient which is used for the +replacement alpha values. That is you can use a grayscale CLUT image to +adjust a existing images alpha channel, or you can color a grayscale image +using colors form CLUT containing the desired colors, including transparency. +

    + +

    See also -hald-clut which replaces colors +according to the lookup of the full color RGB value from a 2D representation +of a 3D color cube.

    + + +
    +

    -coalesce

    +
    + +

    Fully define the look of each frame of an GIF animation sequence, to form a 'film strip' animation.

    + +

    Overlay each image in an image sequence according to +its -dispose meta-data, to reproduce the look of +an animation at each point in the animation sequence. All images should be +the same size, and are assigned appropriate GIF disposal settings for the +animation to continue working as expected as a GIF animation. Such frames +are more easily viewed and processed than the highly optimized GIF overlay +images.

    + +

    The animation can be re-optimized after processing using +the -layers method 'optimize', although +there is no guarantee that the restored GIF animation optimization is +better than the original.

    + + +
    +

    -colorize value

    +
    + +

    Colorize the image by an amount specified by value using the color specified by the most recent -fill setting.

    + +

    Specify the amount of colorization as a percentage. Separate colorization +values can be applied to the red, green, and blue channels of the image with +a comma-delimited list of colorization +values (e.g., -colorize 0,0,50).

    + +
    +

    -colormap type

    +
    + +

    Define the colormap type.

    + +

    The type can be shared or private.

    + +

    This option only applies when the default X server visual +is PseudoColor or GrayScale. Refer +to -visual for more details. By default, +a shared colormap is allocated. The image shares colors with +other X clients. Some image colors could be approximated, +therefore your image may look very different than intended. +If private is chosen, the image colors appear exactly +as they are defined. However, other clients may go technicolor +when the image colormap is installed.

    + +
    +

    -colors value

    +
    + +

    Set the preferred number of colors in the image.

    + +

    The actual number of colors in the image may be less than your request, +but never more. Note that this a color reduction option. Images with fewer +unique colors than specified by value will have any +duplicate or unused colors removed. The ordering of an existing color +palette may be altered. When converting an image from color to grayscale, +it is more efficient to convert the image to the gray colorspace before +reducing the number of colors. Refer to +the +color reduction algorithm for more details.

    + +
    +

    -color-matrix matrix

    +
    + +

    apply color correction to the image.

    + +

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

    + +

    As an example, to add contrast to an image with offsets, try this command:

    + +
    convert kittens.jpg -color-matrix \
    +  " 1.5 0.0 0.0 0.0, 0.0, -0.157 \
    +    0.0 1.5 0.0 0.0, 0.0, -0.157 \
    +    0.0 0.0 1.5 0.0, 0.0, -0.157 \
    +    0.0 0.0 0.0 1.0, 0.0,  0.0 \
    +    0.0 0.0 0.0 0.0, 1.0,  0.0 \
    +    0.0 0.0 0.0 0.0, 0.0,  1.0" kittens.png
    +
    +
    +

    -colorspace value

    +
    + +

    Set the image colorspace.

    + +

    Choices are:

    + +
    CMY          CMYK         Gray         HCL
    +HCLp         HSB          HSI          HSL
    +HSV          HWB          Lab          LCHab
    +LCHuv        LMS          Log          Luv
    +OHTA         Rec601YCbCr  Rec709YCbCr  RGB
    +scRGB        sRGB         Transparent  xyY
    +XYZ          YCbCr        YCC          YDbDr
    +YIQ          YPbPr        YUV          Undefined
    +
    + +

    To print a complete list of colorspaces, use -list colorspace.

    + +

    For a more accurate color conversion to or from the linear RGB, CMYK, or grayscale colorspaces, use the -profile option. Note, ImageMagick assumes the sRGB colorspace if the image format does not indicate otherwise. For colorspace conversion, the gamma function is first removed to produce linear RGB.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Conversion of RGB to Other Color Spaces
    CMY
    C=QuantumRange−R
    M=QuantumRange−G
    Y=QuantumRange−B
    CMYK — starts with CMY from above
    K=min(C,Y,M)
    C=QuantumRange*(C−K)/(QuantumRange−K)
    M=QuantumRange*(M−K)/(QuantumRange−K)
    Y=QuantumRange*(Y−K)/(QuantumRange−K)
    Gray
    Gray = 0.212656*R+0.715158*G+0.072186*B
    HSB — Hue, Saturation, Brightness; like a cone peak downward
    H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green
    S=distance from axis outward
    B=distance along axis from bottom upward; B=max(R,G,B); intensity-like
    HSL — Hue, Saturation, Lightness; like a double cone end-to-end with peaks at very top and bottom
    H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green
    S=distance from axis outward
    L=distance along axis from bottom upward; L=0.5*max(R,G,B) + 0.5*min(R,G,B); intensity-like
    HWB — Hue, Whiteness, Blackness
    Hue (complicated equation)
    Whiteness (complicated equation)
    Blackness (complicated equation)
    LAB
    L (complicated equation relating X,Y,Z)
    A (complicated equation relating X,Y,Z)
    B (complicated equation relating X,Y,Z)
    LinearGray
    LinearGray = 0.298839*R+0.586811*G+0.114350*B
    LOG
    I1 (complicated equation involving logarithm of R)
    I2 (complicated equation involving logarithm of G)
    I3 (complicated equation involving logarithm of B)
    OHTA — approximates principal components transformation
    I1=0.33333*R+0.33334*G+0.33333*B; intensity-like
    I2=(0.50000*R+0.00000*G−0.50000*B)*(QuantumRange+1)/2
    I3=(−0.25000*R+0.50000*G−0.25000*B)*(QuantumRange+1)/2
    Rec601Luma
    Gray = 0.298839*R+0.586811*G+0.114350*B
    Rec601YCbCr
    Y=0.2988390*R+0.5868110*G+0.1143500*B; intensity-like
    Cb=(−0.168736*R-0.331264*G+0.500000*B)*(QuantumRange+1)/2
    Cr=(0.500000*R−0.418688*G−0.081312*B)*(QuantumRange+1)/2
    Rec709Luma
    Gray=0.212656*R+0.715158*G+0.072186*B
    Rec709YCbCr
    Y=0.212656*R+0.715158*G+0.072186*B; intensity-like
    Cb=(−0.114572*R−0.385428*G+0.500000*B)+(QuantumRange+1)/2
    Cr=(0.500000*R−0.454153*G−0.045847*B)+(QuantumRange+1)/2
    sRGB
    if R ≤ .0.0031308 then Rs=R/12.92 else Rs=1.055 R ^ (1.0 / 2.4) ? 0.055
    if G ≤ .0.0031308 then Gs=B/12.92 else Gs=1.055 R ^ (1.0 / 2.4) ? 0.055
    if B ≤ .0.0031308 then Bs=B/12.92 else Bs=1.055 R ^ (1.0 / 2.4) ? 0.055
    XYZ
    X=0.4124564*R+0.3575761*G+0.1804375*B
    Y=0.2126729*R+0.7151522*G+0.0721750*B
    Z=0.0193339*R+0.1191920*G+0.9503041*B
    YCC
    Y=(0.298839*R+0.586811*G+0.114350*B) (with complicated scaling); intensity-like
    C1=(−0.298839*R−0.586811*G+0.88600*B) (with complicated scaling)
    C2=(0.70100*R−0.586811*G−0.114350*B) (with complicated scaling)
    YCbCr
    Y=0.2988390*R+0.5868110*G+0.1143500*B; intensity-like
    Cb=(−0.168736*R−0.331264*G+0.500000*B)*(QuantumRange+1)/2
    Cr=(0.500000*R−0.418688*G−0.081312*B)*(QuantumRange+1)/2
    YIQ
    Y=0.298839*R+0.586811*G+0.114350*B; intensity-like
    I=(0.59600*R−0.27400*G−0.32200*B)*(QuantumRange+1)/2
    Q=(0.21100*R−0.52300*G+0.31200*B)*(QuantumRange+1)/2
    YPbPr
    Y=0.2988390*R+0.5868110*G+0.1143500*B; intensity-like
    Pb=(−0.168736*R−0.331264*G+0.500000*B)*(QuantumRange+1)/2
    Pr=(0.500000*R−0.418688*G−0.081312*B)*(QuantumRange+1)/2
    YUV
    Y=0.298839*R+0.586811*G+0.114350*B; intensity-like
    U=(−0.14740*R−0.28950*G+0.43690*B)*(QuantumRange+1)/2
    V=(0.61500*R−0.51500*G−0.10000*B)*(QuantumRange+1)/2
    + +

    Note the scRGB colorspace requires HDRI support otherwise it behaves just like linear RGB.

    + +

    Use the Undefined colorspace to identify multi-spectral images.

    + +
    +

    -combine

    +

    +combine colorspace

    +
    + +

    Combine one or more images into a single image.

    + +

    The channels (previously set by -channel) of the +combined image are taken from the grayscale values of each image in the +sequence, in order. For the default -channel setting of RGB, this +means the first image is assigned to the Red channel, the second +to the Green channel, the third to the Blue.

    + +

    This option can be thought of as the inverse to -separate, so long as the channel settings are the same. +Thus, in the following example, the final image should be a copy of the +original.

    + +
    convert original.png -channel RGB -separate sepimage.png
    +convert sepimage-0.png sepimage-1.png sepimage-2.png -channel RGB \
    +  -combine imagecopy.png
    +
    + +
    +

    -comment string

    +
    + +

    Embed a comment in an image.

    + +

    This option sets the comment meta-data of an image read in after this +option has been given. To modify a comment of images already in memory use +"-set comment".

    + +

    The comment can contain special format characters listed in the Format and +Print Image Properties. These attributes are expanded when the comment +is finally assigned to the individual images.

    + +

    If the first character of string is @, the image comment is read from a file titled by the +remaining characters in the string. Comments read in from a file are literal; +no embedded formatting characters are recognized.

    + +

    Comment meta-data are not visible on the image itself. To do that use the +-annotate or -draw options +instead.

    + +

    For example,

    + +
    -comment "%m:%f %wx%h"  bird.miff
    +
    + +

    produces an image comment of MIFF:bird.miff 512x480 (assuming +that the image bird.miff has a width of 512 and a height of +480.

    + +
    +

    -compare

    +
    + +

    mathematically and visually annotate the difference between an image and its reconstruction

    + +

    This is a convert version of "compare" for two same sized images. The syntax is as follows, but other metrics are allowed.

    + +
    convert image.png reference.png -metric RMSE -compare \ 
    difference.png +
    + +

    To get the metric value use the string format "%[distortion]".

    + +
    convert image.png reference.png -metric RMSE -compare -format \
    +   "%[distortion]" info:
    +
    + +
    +

    -complex operator

    +
    + +

    perform complex mathematics on an image sequence

    + +Choose from these operators: + +
    add
    +conjugate
    +divide
    +magnitude-phase
    +multiply
    +real-imaginary
    +subtract
    +
    + +

    Optionally specify the divide operator SNR with -define complex:snr=float.

    + +
    +

    -compose operator

    +
    + +

    Set the type of image composition.

    + +

    See Alpha Compositing for +a detailed discussion of alpha compositing.

    + +

    This setting affects image processing operators that merge two (or more) +images together in some way. This includes the operators, +-compare, +-composite, +-layers composite, +-flatten, +-mosaic, +-layers merge, +-border, +-frame, +and -extent.

    + +

    It is also one of the primary options for the "composite" +command.

    + + +
    +

    -composite

    +
    + +

    Perform alpha composition on two images and an optional mask

    + +

    Take the first image 'destination' and overlay the second 'source' image +according to the current -compose setting. The location +of the 'source' or 'overlay' image is controlled according to -gravity, and -geometry +settings.

    + +

    If a third image is given this is treated as a grayscale blending 'mask' image +relative to the first 'destination' image. This mask is blended with the +source image. However for the 'displace' compose method, the +mask is used to provide a separate Y-displacement image instead.

    + +

    If a -compose method requires extra numerical +arguments or flags these can be provided by setting the -set 'option:compose:args' +appropriately for the compose method.

    + +

    Some -compose methods can modify the 'destination' +image outside the overlay area. You can disable this by setting the special -set 'option:compose:outside-overlay' +to 'false'.

    + +

    The SVG compositing specification requires that color and opacity values range between zero and QuantumRange inclusive. You can permit values outside this range with this option: -set 'option:compose:clamp=false

    + + +
    +

    -compress type

    +
    + +

    Use pixel compression specified by type when writing the image.

    + +

    Choices are: None, BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE or Zip.

    + +

    To print a complete list of compression types, use -list +compress.

    + +

    Specify +compress to store the binary image in an +uncompressed format. The default is the compression type of the specified +image file.

    + +

    If LZW compression is specified but LZW compression has not been +enabled, the image data is written in an uncompressed LZW format that can be +read by LZW decoders. This may result in larger-than-expected GIF files.

    + +

    Lossless refers to lossless JPEG, which is only available if the +JPEG library has been patched to support it. Use of lossless JPEG is generally +not recommended.

    + +

    +When writing an ICO file, you may request that the images be encoded in +PNG format, by specifying Zip compression.

    + +

    +When writing a JNG file, specify Zip compression to request that +the alpha channel be encoded in PNG "IDAT" format, or JPEG +to request that it be encoded in JPG "JDAA" format.

    + +

    Use the -quality option to set the compression level +to be used by JPEG, PNG, MIFF, and MPEG encoders. +Use the -sampling-factor option to set the +sampling factor to be used by JPEG, MPEG, and YUV encoders for down-sampling +the chroma channels.

    + +
    +

    -connected-components connectivity

    +
    + +

    connected-components labeling detects connected regions in an image, choose from 4 or 8 way connectivity.

    + +

    Use -define connected-components:verbose=true to output statistics associated with each unique label.

    + +
    +

    -contrast

    +
    + +

    Enhance or reduce the image contrast.

    + +

    This option enhances the intensity differences between the lighter and +darker elements of the image. Use -contrast to enhance +the image or +contrast to reduce the image +contrast.

    + +

    For a more pronounced effect you can repeat the option:

    + +
    convert rose: -contrast -contrast rose_c2.png
    +
    + +
    +

    -contrast-stretch black-point
    -contrast-stretch black-point{xwhite-point}{%}

    +
    + +

    Increase the contrast in an image by stretching the range of intensity values.

    + +

    While performing the stretch, black-out at most black-point pixels and white-out at most white-point pixels. Or, if percent is used, black-out at most +black-point % pixels and white-out at most white-point % pixels.

    + +

    Prior to ImageMagick 6.4.7-0, -contrast-stretch will black-out at most black-point pixels and white-out at most total pixels +minus white-point pixels. Or, if percent is used, black-out at most black-point % pixels and white-out at most 100% minus white-point % pixels.

    + +

    Note that -contrast-stretch 0 will modify the image such that +the image's min and max values are stretched to 0 and QuantumRange, respectively, without any loss of data due to burn-out or +clipping at either end. This is not the same as -normalize, which is equivalent to -contrast-stretch 0.15x0.05% (or +prior to ImageMagick 6.4.7-0, -contrast-stretch 2%x99%).

    + +

    Internally operator works by creating a histogram bin, and then uses that +bin to modify the image. As such some colors may be merged together when they +originally fell into the same 'bin'.

    + +

    All the channels are normalized in concert by the same amount so as to +preserve color integrity, when the default +channel +setting is in use. Specifying any other -channel +setting will normalize the RGB channels independently.

    + +

    See also -auto-level for a 'perfect' +normalization of mathematical images.

    + +

    This operator is under review for re-development.

    + + +
    +

    -convolve kernel

    +
    + +

    Convolve an image with a user-supplied convolution kernel.

    + +

    The kernel is a matrix specified as +a comma-separated list of integers (with no spaces), ordered left-to right, +starting with the top row. Presently, only odd-dimensioned kernels are +supported, and therefore the number of entries in the specified kernel must be 32=9, 52=25, +72=49, etc.

    + +

    Note that the ‑convolve operator supports the ‑bias setting. This option shifts the convolution so that +positive and negative results are relative to a user-specified bias value. +This is important for non-HDRI compilations of ImageMagick when dealing with +convolutions that contain negative as well as positive values. This is +especially the case with convolutions involving high pass filters or edge +detection. Without an output bias, the negative values is clipped at zero. +

    + +

    When using an ImageMagick with the HDRI compile-time setting, ‑bias is not needed, as ImageMagick is able to store/handle any +negative results without clipping to the color value range (0..QuantumRange). +See the discussion on HDRI implementations of ImageMagick on the page High +Dynamic-Range Images. For more about HDRI go the ImageMagick Usage pages or this +Wikipedia +entry.

    + + +
    +

    -copy geometry offset

    +
    + +

    copy pixels from one area of an image to another.

    + +
    +

    -crop geometry{@}{!}

    +
    + +

    Cut out one or more rectangular regions of the image.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +

    The width and height of the geometry argument give the size of the image that remains +after cropping, and x and y in the +offset (if present) gives the location of the top left +corner of the cropped image with respect to the original image. To specify the +amount to be removed, use -shave instead.

    + +

    If the x and y offsets are +present, a single image is generated, consisting of the pixels from the +cropping region. The offsets specify the location of the upper left corner of +the cropping region measured downward and rightward with respect to the upper +left corner of the image. If the -gravity option is +present with NorthEast, East, or SouthEast +gravity, it gives the distance leftward from the right edge of the image to +the right edge of the cropping region. Similarly, if the -gravity option is present with SouthWest, +South, or SouthEast gravity, the distance is measured +upward between the bottom edges.

    + +

    If the x and y offsets are +omitted, a set of tiles of the specified geometry, covering the entire input +image, is generated. The rightmost tiles and the bottom tiles are smaller if +the specified geometry extends beyond the dimensions of the input image.

    + +

    You can add the @ to the geometry argument to equally divide the image into the number of tiles generated.

    + +

    By adding a exclamation character flag to the geometry argument, the +cropped images virtual canvas page size and offset is set as if the +geometry argument was a viewport or window. This means the canvas page size +is set to exactly the same size you specified, the image offset set +relative top left corner of the region cropped.

    + +

    If the cropped image 'missed' the actual image on its virtual canvas, a +special single pixel transparent 'missed' image is returned, and a 'crop +missed' warning given.

    + +

    It might be necessary to +repage the image prior to +cropping the image to ensure the crop coordinate frame is relocated to the +upper-left corner of the visible image. + +Similarly you may want to use +repage after cropping to +remove the page offset that will be left behind. This is especially true when +you are going to write to an image format such as PNG that supports an image +offset.

    + +
    +

    -cycle amount

    +
    + +

    displace image colormap by amount.

    + +

    Amount defines the number of positions each +colormap entry is shifted.

    + + +
    +

    -debug events

    +
    + +

    enable debug printout.

    + +

    The events parameter specifies which events are to be logged. It +can be either None, All, Trace, or +a comma-separated list consisting of one or more of the following domains: +Accelerate, Annotate, Blob, Cache, +Coder, Configure, Deprecate, +Exception, Locale, Render, +Resource, Security, TemporaryFile, +Transform, X11, or User.

    + + +

    For example, to log cache and blob events, use.

    + +
    convert -debug "Cache,Blob" rose: rose.png
    +
    + +

    The User domain is normally empty, but developers can log user +events in their private copy of ImageMagick.

    + +

    To print the complete list of debug methods, use -list +debug.

    + +

    Use the -log option to specify the format for debugging +output.

    + +

    Use +debug to turn off all logging.

    + +

    Debugging may also be set using the MAGICK_DEBUG environment variable. The allowed values for the MAGICK_DEBUG +environment variable are the same as for the -debug +option.

    + + +
    +

    -decipher filename

    +
    + +

    Decipher and restore pixels that were previously transformed by -encipher.

    + +

    Get the passphrase from the file specified by filename.

    + +

    For more information, see the webpage, ImageMagick: Encipher or +Decipher an Image.

    + + +
    +

    -deconstruct

    +
    + +

    find areas that has changed between images

    + +

    Given a sequence of images all the same size, such as produced by -coalesce, replace the second and later images, with +a smaller image of just the area that changed relative to the previous image. +

    + +

    The resulting sequence of images can be used to optimize an animation +sequence, though will not work correctly for GIF animations when parts of the +animation can go from opaque to transparent.

    + +

    This option is actually equivalent to the -layers +method 'compare-any'.

    + + +
    +

    -define key{=value}...

    +
    + +

    add specific global settings generally used to control coders and image processing operations.

    + +

    This option creates one or more definitions for coders and decoders to use +while reading and writing image data. Definitions are generally used to +control image file format coder modules, and image processing operations, +beyond what is provided by normal means. Defined settings are listed in -verbose information ("info:" output format) +as "Artifacts".

    + +

    If value is missing for a definition, an empty-valued +definition of a flag is created with that name. This used to control on/off +options. Use +define key to remove definitions +previously created. Use +define "*" to remove all +existing definitions.

    + +

    The same 'artifact' settings can also be defined using the -set "option:key" "value" option, which also allows the use of Format and Print Image +Properties in the defined value.

    + +

    The option and key are case-independent (they are +converted to lowercase for use within the decoders) while the value +is case-dependent.

    + +

    Such settings are global in scope, and affect all images and operations.

    + +

    The following definitions are just some of the artifacts that are +available:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    bmp3:alpha=true|falseinclude any alpha channel when writing in the BMP image format.
    bmp:format=value valid values are bmp2, bmp3, + and bmp4. This option can be useful when the + method of prepending "BMP2:" to the output filename is inconvenient or + is not available, such as when using the mogrify utility.
    bmp:subtype=RGB555|RGB565|ARGB4444|ARGB1555BMP channel depth subtypes. Only support in BMP (BMP4). BMP3 and BMP2 do not + contain header fields to support these options.
    colorspace:auto-grayscale=on|offprevent automatic conversion to grayscale inside coders that support + grayscale. This should be accompanied by -type truecolor. PNG and TIF do + not need this define. With PNG, just use PNG24:image. With TIF, just use + -type truecolor. JPG and PSD will need this define.
    complex:snr=valueSet the divide SNR constant-complex
    compose:args=argumentsSets certain compose argument values when using convert ... -compose ... + -composite. See Image Composition
    compose:clamp=on|offset 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. Define supported in + ImageMagick 6.9.1-3 and above.
    connected-components:area-threshold=valueMerges any region with area smaller than value into its surrounding region or largest neighbor.
    connected-components:keep=list-of-idsComma and/or hyphenated list of id values to keep in the output. + Supported in Imagemagick 6.9.3-0.
    connected-components:mean-color=trueChanges the output image from id values to mean color values. Supported + in Imagemagick 6.9.2-8.
    connected-components:remove=list-of-idsComma and/or hyphenated list of id values to remove from the output. + Supported in Imagemagick 6.9.2-9.
    connected-components:verbose=trueLists id, bounding box, centroid, area, mean color for each region.
    convolve:scale={kernel_scale}[!^] [,{origin_addition}] [%]Defines the kernel scaling. The special flag ! automatically scales to + full dynamic range. The ! flag can be used in combination with a factor or + percent. The factor or percent is then applied after the automatic scaling. + An example is 50%!. This produces a result 50% darker than full dynamic + range scaling. The ^ flag assures the kernel is 'zero-summing', for + example when some values are positive and some are negative as in edge + detection kernels. The origin addition adds that value to the center + pixel of the kernel. This produces an effect that is like adding the image + that many times to the result of the filtered image. The typical value + is 1 so that the original image is added to the result of the convolution. + The default is 0.
    convolve:showkernel=1Outputs (to 'standard error') all the information about a specified -morphology convolve kernel.
    dcm:display-range=resetSets the display range to the minimum and maximum pixel values for the + DCM image format.
    dds:cluster-fit=true|falseEnables the dds cluster-fit.
    dds:compression=dxt1|dxt5|noneSets the dds compression.
    dds:mipmaps=valueSets the dds number of mipmaps.
    dds:weight-by-alpha=true|falseEnables the dds alpha weighting.
    deskew:auto-crop=trueauto crop the image after deskewing.
    delegate:bimodal=trueSpecifies direct conversion from Postscript to PDF.
    distort:scale=valueSets the output scaling factor for use with -distort
    distort:viewport=WxH+X+YSets the viewport for use with -distort
    dot:layout-engine=valueSpecifies the layout engine for the DOT image format (e.g. + neato).
    exr:color-type=valueSpecifies the color type for the EXR format: RGB, RGBA, YC, YCA, Y, YA, R, G, B, A).
    filter:option=valueSet a filter option for use with -resize. + See -filter for details.
    fourier:normalize=inverseSets the location for the FFT/IFT normalization as use by + +-fft and +-ift. The default is + forward.
    h:format=valueSet the image encoding format use when writing a C-style header. + format can be any output format supported by ImageMagick + except for h and magick. If this + option is omitted, the default is GIF for PseudoClass + images and PNM for DirectClass images. +
    icon:auto-resizeAutomatically stores multiple sizes when writing an ico image + (requires a 256x256 input image).
    identify:locate=minimum|maximumLocates the coordinates of one or more image minimum or maximum
    identify:limit=numberLocates the coordinates for the number of minima or maxima specified
    jp2:layer-number=valueSets the maximum number of quality layers to decode. Same for JPT, JC2, + and J2K
    jp2:number-resolutions=valueSets the number of resolutions to encode.Same for JPT, JC2, and + J2K
    jp2:progression-order=valuechoose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and + J2K
    jp2:quality=value,value...Sets the quality layer PSNR, given in dB. The order is from left to + right in ascending order. The default is a single lossless quality layer. + Same for JPT, JC2, and J2K
    jp2:rate=valueSpecify the compression factor to use while writing JPEG-2000 files. + The compression factor is the reciprocal of the compression ratio. The + valid range is 0.0 to 1.0, with 1.0 indicating lossless compression. If + defined, this value overrides the -quality setting. A quality setting + of 75 results in a rate value of 0.06641. Same for JPT, JC2, and J2K
    jp2:reduce-factor=valueSets the number of highest resolution levels to be discarded.Same for + JPT, JC2, and J2K
    jpeg:block-smoothing=on|off
    jpeg:colors=valueSet the desired number of colors and let the JPEG encoder do the + quantizing.
    jpeg:dct-method=valueChoose from default, fastest, + float, ifast, and islow.
    jpeg:extent=valueRestrict the maximum JPEG file size, for example -define + jpeg:extent=400KB. The JPEG encoder will search for the highest + compression quality level that results in an output file that does not + exceed the value. The -quality option also will be respected + starting with version 6.9.2-5. Between 6.9.1-0 and 6.9.2-4, add -quality + 100 in order for the jpeg:extent to work properly. Prior to 6.9.1-0, the + -quality setting was ignored.
    jpeg:fancy-upsampling=on|off
    jpeg:optimize-coding=on|off
    jpeg:q-table=table
    jpeg:sampling-factor=sampling-factor-string
    jpeg:size=geometrySet the size hint of a JPEG image, for + example, -define jpeg:size=128x128. + It is most useful for increasing performance and reducing the memory + requirements when reducing the size of a large JPEG image.
    json:featuresincludes features in verbose information
    json:limit
    json:locate
    json:momentsincludes image moments in verbose information
    magick:format=valueSet the image encoding format use when writing a C-style header. + This is the same as "h:format=format" described above.
    mng:need-cacheoffturn playback caching off for streaming MNG.
    morphology:compose=compose-methodSpecifies how to merge results generated by multiple-morphology kernel. The default is none. One + typical value is 'lighten' as used, for example, with the sobel edge + kernels.
    morphology:showkernel=1Outputs (to 'standard error') all the information about a generated -morphology kernel.
    pcl:fit-to-page=true
    pdf:fit-page=geometry geometry specifies the scaling dimensions for resizing when the PDF is + being read. The geometry is either WxH{%} or page size. No offsets are + allowed. (introduced in IM 6.8.8-8)
    pdf:fit-to-page=true
    pdf:use-cropbox=true
    pdf:use-trimbox=true
    pdf:stop-on-error=true
    pdf:pdf:page-direction=right-to-left
    phash:colorspaces=colorspace,colorspace,...the perceptual hash defaults to the sRGB and HCLp colorspaces. When + using this define, you can specify up to six alternative colorspaces. (as + of IM 7.0.3-8)
    phash:normalize=truenormalizes the phash metric by dividing by the number of channels + specified by -define phash:colorspaces when using compare + -metric phash. (as of IM 7.0.3-8)
    png:bit-depth=value
    png:color-type=valuedesired bit-depth and color-type for PNG output. You can force the PNG + encoder to use a different bit-depth and color-type than it would have + normally selected, but only if this does not cause any loss of image + quality. Any attempt to reduce image quality is treated as an error and no + PNG file is written. E.g., if you have a 1-bit black-and-white image, you + can use these "defines" to cause it to be written as an 8-bit grayscale, + indexed, or even a 64-bit RGBA. But if you have a 16-million color image, + you cannot force it to be written as a grayscale or indexed PNG. If you + wish to do this, you must use the appropriate -depth, + -colors, or -type directives to + reduce the image quality prior to using the PNG encoder. Note that in + indexed PNG files, "bit-depth" refers to the number of bits per index, + which can be 1, 2, 4, or 8. In such files, the color samples always have + 8-bit depth.
    png:compression-filter=value valid values are 0 through 9. 0-4 are the corresponding PNG filters, + 5 means adaptive filtering except for images with a colormap, 6 means + adaptive filtering for all images, 7 means MNG "loco" compression, 8 means + Z_RLE strategy with adaptive filtering, and 9 means Z_RLE strategy with no + filtering.
    png:compression-level=value valid values are 0 through 9, with 0 providing the least but fastest + compression and 9 usually providing the best and always the slowest.
    png:compression-strategy=value valid values are 0 through 4, meaning default, filtered, huffman_only, + rle, and fixed ZLIB compression strategy. If you are using an old zlib + that does not support Z_RLE (before 1.2.0) or Z_FIXED (before 1.2.2.2), + values 3 and 4, respectively, will use the zlib default strategy + instead.
    png:format=value valid values are png8, png24, + png32, png48, + png64, and png00. + This property can be useful for specifying + the specific PNG format to be used, when the usual method of prepending the + format name to the output filename is inconvenient, such as when writing + a PNG-encoded ICO file or when using mogrify. + Value = png8 reduces the number of colors to 256, + only one of which may be fully transparent, if necessary. The other + values do not force any reduction of quality; it is an error to request + a format that cannot represent the image data without loss (except that + it is allowed to reduce the bit-depth from 16 to 8 for all formats). + Value = png24 and png48 + allow transparency, only if a single color is fully transparent and that + color does not also appear in an opaque pixel; such transparency is + written in a PNG tRNS chunk. + Value = png00 causes the image to inherit its + color-type and bit-depth from the input image, if the input was also + a PNG.
    png:exclude-chunk=value
    png:include-chunk=valueancillary chunks to be excluded from or included in PNG output. + +

    The value can be the name of a PNG chunk-type such + as bKGD, a comma-separated list of chunk-names + (which can include the word date, the word + all, or the word none). + Although PNG chunk-names are case-dependent, you can use all lowercase + names if you prefer.

    + +

    The "include-chunk" and "exclude-chunk" lists only affect the behavior + of the PNG encoder and have no effect on the PNG decoder.

    + +

    As a special case, if the sRGB chunk is excluded and + the gAMA chunk is included, the gAMA chunk will + only be written if gamma is not 1/2.2, since most decoders assume + sRGB and gamma=1/2.2 when no colorspace information is included in + the PNG file. Because the list is processed from left to right, you + can achieve this with a single define:

    + +
    -define png:include-chunk=none,gAMA
    +
    + +

    As a special case, if the sRGB chunk is not excluded and + the PNG encoder recognizes that the image contains the sRGB ICC profile, + the PNG encoder will write the sRGB chunk instead of the + entire ICC profile. To force the PNG encoder to write the sRGB + profile as an iCCP chunk in the output PNG instead of the + sRGB chunk, exclude the sRGB chunk.

    + +

    The critical PNG chunks IHDR, PLTE, + IDAT, and IEND cannot be excluded. Any such + entries appearing in the list will be ignored.

    + +

    If the ancillary PNG tRNS chunk is excluded and the + image has transparency, the PNG colortype is forced to be 4 or 6 + (GRAY_ALPHA or RGBA). If the image is not transparent, then the + tRNS chunk isn't written anyhow, and there is no effect + on the PNG colortype of the output image.

    + +

    The -strip option does the equivalent of the + following for PNG output:

    + +
    -define png:exclude-chunk=EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date
    +
    + +

    The default behavior is to include all known PNG ancillary chunks + plus ImageMagick's private vpAg ("virtual page") chunk, + and to exclude all PNG chunks that are unknown to ImageMagick, + regardless of their PNG "copy-safe" status as described in the + PNG specification.

    + +

    Any chunk names that are not known to ImageMagick are ignored + if they appear in either the "include-chunk" or "exclude-chunk" list. + The ancillary chunks currently known to ImageMagick are + bKGD, cHRM, gAMA, iCCP, + oFFs, pHYs, sRGB, tEXt, + tRNS, vpAg, and zTXt.

    + +

    You can also put date in the list to include or exclude + the "Date:create" and "Date:modify" text chunks that ImageMagick normally + 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 + try to optimize the palette, eliminating unused entries and putting + the transparent colors first. If this flag is set, that behavior + is suppressed.
    png:preserve-iCCP[=true]By default, the PNG decoder and encoder examine any ICC profile + that is present, either from an iCCP chunk in the PNG + input or supplied via an option, and if the profile is recognized + to be the sRGB profile, converts it to the sRGB chunk. + You can use -define png:preserve-iCCP to prevent + this from happening; in such cases the iCCP chunk + will be read or written and no sRGB chunk will be + written. There are some ICC profiles that claim to be sRGB but + have various errors that cause them to be rejected by libpng16; such + profiles are recognized anyhow and converted to the sRGB + chunk, but are rejected if the -define png:preserve-iCCP + is present. Note that not all "sRGB" ICC profiles are recognized + yet; we will add them to the list as we encounter them.
    png:swap-bytes[=true]The PNG specification requires that any multi-byte integers be stored in + network byte order (MSB-LSB endian). This option allows you to + fix any invalid PNG files that have 16-bit samples stored incorrectly + in little-endian order (LSB-MSB). The "-define png:swap-bytes" option + must appear before the input filename on the commandline. The swapping + is done during the libpng decoding operation.
    profile:skip=name1,name2,...Skip the named profile[s] when reading the image. Use skip="*" to + skip all named profiles in the image. Many named profiles exist, + including ICC, EXIF, APP1, IPTC, XMP, and others.
    ps:imagemaskIf the ps:imagemask flag is defined, the PS3 and EPS3 coders will + create Postscript files that render bilevel images with the Postscript + imagemask operator instead of the image operator.
    psd:additional-info=all|selectiveThis option should only be used when converting from a PSD file to + another PSD file. This should be placed after the image is read. The two + options are 'all' and 'selective'. The 'selective' option will preserve + all additional information that is not related to the geometry of the + image. The 'all' option should only be used when the geometry of the + image has not been changed. This option is helpful when transferring + non-simple layers, such as adjustment layers from the input PSD file to + the output PSD file. If this option is not used, the additional + information will not be preserved. This define is available as of + Imagemagick version 6.9.5-8. +
    psd:alpha-unblend=offDisables new automatic un-blending of transparency with the base image + for the flattened layer 0 before adding the alpha channel to the output + image. This define must be placed before the input psd image. (Available + as of IM 6.9.2.5). The automatic un-blending is new to IM 6.9.2.5 and + prevents the transparency from being applied twice in the output + image. This option should be set before reading the image.
    psd:preserve-opacity-mask=trueThis option should only be used when converting from a PSD file to + another PSD file. It will preserve the opacity mask of a layer and add it + back to the layer when the image is saved. Setting this to 'true' will + enable this feature. This define is available as of Imagemagick version + 6.9.5-10. +
    preserve-timestamp={True, False}Preserve file timestamp (mogrify only).
    quantum:format=typeSet the type to floating-point to specify a floating-point + format for raw files (e.g. GRAY:) or for MIFF and TIFF images in HDRI mode + to preserve negative values. If -depth 16 is + included, the result is a single precision floating point format. + If -depth 32 is included, the result is + double precision floating point format.
    quantum:polarity=photometric-interpretationSet the photometric-interpretation of an image (typically for TIFF + image file format) to either min-is-black (default) or + min-is-white.
    sample:offset=geometryLocation of the sampling point within the sub-region being sampled, + expressed as percentages (see -sample).
    showkernel=1Outputs (to 'standard error') all the information about a generated -morphology kernel.
    stream:buffer-size=valueSet the stream buffer size. Select 0 for unbuffered I/O.
    tiff:alpha=associated|unassociated|unspecifiedSpecify the alpha extra samples as associated, unassociated or + unspecified
    tiff:endian=msb|lsb
    tiff:exif-properties=trueEnables reading the EXIF properties.
    tiff:fill-order=msb|lsb
    tiff:ignore-layers=trueIgnores the photoshop layers.
    tiff:ignore-tags=comma-separate-list-of-tag-IDsAllows one or more tag ID values to be ignored.
    tiff:rows-per-strip=valueSets the number of rows per strip
    tiff:tile-geometry=WxHSets the tile size for pyramid tiffs. Requires the suffix + PTIF: before the outputname
    type:features=string
    type:hinting=off
    txt:compliance=cssThe first argument of a hsl() color is integer, not percentage
    x:screen=trueObtains the image from the root window
    x:silent=trueTurns off the beep when importing an image
    + +

    For example, to create a postscript file that will render only the black +pixels of a bilevel image, use:

    + +
    convert bilevel.tif -define ps:imagemask eps3:stencil.ps
    +
    + +

    Set attributes of the image registry by prefixing the value with +registry:. For example, to set a temporary path to put work files, +use:

    + +
    -define registry:temporary-path=/data/tmp
    +
    + +
    +

    -delay ticks
    -delay ticksxticks-per-second {<} {>}

    +
    + +

    display the next image after pausing.

    + +

    This option is useful for regulating the animation of image sequences +ticks/ticks-per-second seconds must expire before the display of the +next image. The default is no delay between each showing of the image +sequence. The default ticks-per-second is 100.

    + +

    Use > to change the image delay only if its current +value exceeds the given delay. < changes the image delay +only if current value is less than the given delay. For example, if +you specify 30> and the image delay is 20, the image delay does +not change. However, if the image delay is 40 or 50, the delay it is changed +to 30. Enclose the given delay in quotation marks to prevent the +< or > from being interpreted by your shell as +a file redirection.

    + + +
    +

    -delete indexes

    +
    + +

    delete the images specified by index, from the image sequence.

    + +

    Specify the image by its index in the sequence. The first image is index +0. Negative indexes are relative to the end of the sequence, for example, -1 +represents the last image of the sequence. Specify a range of images with +a dash (e.g. 0-4). Separate indexes with a comma (e.g. 0,2). Use ++delete to delete the last image in the current image sequence. Use -delete 0--1 to delete the entire image sequence.

    + + +
    +

    -density width
    -density widthxheight

    +
    + +

    Set the horizontal and vertical resolution of an image for rendering to devices.

    + +

    This option specifies the image resolution to store while encoding a raster +image or the canvas resolution while rendering (reading) vector formats such +as Postscript, PDF, WMF, and SVG into a raster image. Image resolution +provides the unit of measure to apply when rendering to an output device or +raster image. The default unit of measure is in dots per inch (DPI). The -units option may be used to select dots per centimeter +instead.

    + +

    The default resolution is 72 dots per inch, which is equivalent to one +point per pixel (Macintosh and Postscript standard). Computer screens are +normally 72 or 96 dots per inch, while printers typically support 150, 300, +600, or 1200 dots per inch. To determine the resolution of your display, use +a ruler to measure the width of your screen in inches, and divide by the +number of horizontal pixels (1024 on a 1024x768 display).

    + +

    If the file format supports it, this option may be used to update the +stored image resolution. Note that Photoshop stores and obtains image +resolution from a proprietary embedded profile. If this profile is not +stripped from the image, then Photoshop will continue to treat the image using +its former resolution, ignoring the image resolution specified in the standard +file header.

    + +

    The -density option sets an attribute and +does not alter the underlying raster image. It may be used to adjust the +rendered size for desktop publishing purposes by adjusting the scale applied +to the pixels. To resize the image so that it is the same size at a different +resolution, use the -resample option.

    + +
    +

    -depth value

    +
    + +

    depth of the image.

    + +

    This the number of bits in a color sample within a pixel. Use this option +to specify the depth of raw images whose depth is unknown such as GRAY, RGB, +or CMYK, or to change the depth of any image after it has been read.

    + +
    +

    -descend

    +
    + +

    obtain image by descending window hierarchy.

    + +
    +

    -deskew threshold{%}

    +
    + +

    straighten an image. A threshold of 40% works for most images.

    + +

    Use -set option:deskew:auto-crop +true | false to auto crop the image.

    + +
    +

    -despeckle

    +
    + +

    reduce the speckles within an image.

    + +
    +

    -direction type

    +
    + +

    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{%}{!}

    +
    + +

    shift image pixels as defined by a displacement map.

    + +

    With this option, the 'overlay' image, and optionally the 'mask' image, +is used as a displacement map, which is used to displace the lookup of +what part of the 'background' image is seen at each point of the overlaid +area. Much like the displacement map is a 'lens' that redirects light shining +through it so as to present a distorted view the original 'background' image +behind it.

    + +

    Any perfect grey areas of the displacement map produce a zero +displacement of the image. Black areas produce the given maximum negative +displacement of the lookup point, while white produce a maximum positive +displacement of the lookup.

    + +

    Note that it is the lookup of the 'background' that is displaced, not a +displacement of the image itself. As such an area of the displacement map +containing 'white' will have the lookup point 'shifted' by a positive amount, +and thus generating a copy of the destination image to the right/downward from +the correct position. That is the image will look like it may have been +'shifted' in a negative left/upward direction. Understanding this is a very +important in understanding how displacement maps work.

    + +

    The given arguments define the maximum amount of displacement in pixels +that a particular map can produce. If the displacement scale is large enough +it is also possible to lookup parts of the 'background' image that lie well +outside the bounds of the displacement map itself. That is you could very +easily copy a section of the original image from outside the overlay area +into the overlay area.

    + +

    The '%' flag makes the displacement scale relative to the size of the +overlay image (100% = half width/height of image). Using '!' switches +percentage arguments to refer to the destination image size instead. +these flags were added as of IM v6.5.3-5.

    + +

    Normally a single grayscale displacement map is provided, which with the +given scaling values will determine a single direction (vector) in which +displacements can occur (positively or negatively). However, if you also +specify a third image which is normally used as a mask, +the composite image is used for horizontal X +displacement, while the mask image is used for vertical Y +displacement. This allows you to define completely different displacement +values for the X and Y directions, and allowing you to lookup any point within +the scale bounds. In other words each pixel can lookup +any other nearby pixel, producing complex 2 dimensional displacements, rather +than a simple 1 dimensional vector displacements.

    + +

    Alternatively rather than supplying two separate images, as of IM v6.4.4-0, +you can use the 'red' channel of the overlay image to specify the horizontal +or X displacement, and the 'green' channel for the vertical or Y displacement. +

    + +

    As of IM v6.5.3-5 any alpha channel in the overlay image is used as a +mask the transparency of the destination image. However areas outside the +overlaid areas will not be affected.

    + + +
    +

    -display host:display[.screen]

    +
    + +

    Specifies the X server to contact.

    + +

    This option is used with convert for obtaining image or font from this +X server. See X(1).

    + +
    +

    -dispose method

    +
    + +

    define the GIF disposal image setting for images that are being created or read in.

    + +

    The layer disposal method defines the way each the displayed image is to be +modified after the current 'frame' of an animation has finished being +displayed (after its 'delay' period), but before the next frame on an +animation is to be overlaid onto the display.

    + +

    Here are the valid methods:

    + +
    +
    Undefined
    0: No disposal specified (equivalent to 'none').
    +
    None
    1: Do not dispose, just overlay next frame image.
    +
    Background
    2: Clear the frame area with the background color.
    +
    Previous
    3: Clear to the image prior to this frames overlay.
    +
    + +

    You can also use the numbers given above, which is what the GIF format +uses internally to represent the above settings.

    + +

    To print a complete list of dispose methods, use -list dispose.

    + +

    Use +dispose, turn off the setting and prevent +resetting the layer disposal methods of images being read in.

    + +

    Use -set 'dispose' method to set the image +disposal method for images already in memory.

    + +
    +

    -dissimilarity-threshold value

    +
    + +

    maximum RMSE for subimage match (default 0.2).

    + + +
    +

    -dissolve src_percent[xdst_percent]

    +
    + +

    dissolve an image into another by the given percent.

    + +

    The opacity of the composite image is multiplied by the given percent, then +it is composited 'over' the main image. If src_percent +is greater than 100, start dissolving the main image so it becomes +transparent at a value of '200'. If both percentages +are given, each image are dissolved to the percentages given.

    + +

    Note that dissolve percentages do not add, two opaque images dissolved +'50,50', produce a 75% transparency. For a 50% + 50% blending of the two +images, you would need to use dissolve values of '50,100'.

    + +
    +

    -distort method arguments

    +
    + +

    distort an image, using the given method and its required arguments.

    + +

    The arguments is a single string containing a list +of floating point numbers separated by commas or spaces. The number of +and meaning of the floating point values depends on the distortion method being used.

    + +

    Choose from these distortion types:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodDescription
    ScaleRotateTranslate
    SRT
    + Distort image by first scaling and rotating about a given 'center', + before translating that 'center' to the new location, in that order. It + is an alternative method of specifying a 'Affine' type of + distortion, but without shearing effects. It also provides a good way + of rotating and displacing a smaller image for tiling onto a larger + background (IE 2-dimensional animations).
    + + The number of arguments determine the specific meaning of each + argument for the scales, rotation, and translation operations.
    + +
    +
    2:
    Scale Angle
    +
    3:
    X,Y Angle
    +
    4:
    X,Y Scale Angle
    +
    5:
    X,Y ScaleX,ScaleY Angle
    +
    6:
    X,Y Scale Angle NewX,NewY
    +
    7:
    X,Y ScaleX,ScaleY Angle NewX,NewY
    +
    + + This is actually an alternative way of specifying a 2 dimensional linear + 'Affine' or 'AffineProjection' distortion.
    Affine + Distort the image linearly by moving a list of at least 3 or more sets + of control points (as defined below). Ideally 3 sets or 12 floating + point values are given allowing the image to be linearly scaled, + rotated, sheared, and translated, according to those three points. See + also the related 'AffineProjection' and 'SRT' + distortions.
    + + More than 3 sets given control point pairs (12 numbers) is least + squares fitted to best match a linear affine distortion. If only 2 + control point pairs (8 numbers) are given a two point image translation + rotation and scaling is performed, without any possible shearing, + flipping or changes in aspect ratio to the resulting image. If only one + control point pair is provides the image is only translated, (which may + be a floating point non-integer translation).
    + + This distortion does not include any form of perspective distortion. +
    AffineProjection + Linearly distort an image using the given Affine Matrix of 6 + pre-calculated coefficients forming a set of Affine Equations to map + the source image to the destination image. + +

    + sx, rx, + ry, sy, + tx, ty +

    + + See -affine setting for more detail, and + meanings of these coefficients.
    + + The distortions 'Affine' and 'SRT' provide + alternative methods of defining this distortion, with ImageMagick doing + the calculations needed to generate the required coefficients. You can + see the internally generated coefficients, by using a -verbose setting with those other variants.
    BilinearForward
    + BilinearReverse
    + Bilinear Distortion, given a minimum of 4 sets of coordinate pairs, or + 16 values (see below). Not that lines may not appear straight after + distortion, though the distance between coordinates will remain + consistent.
    + + The 'BilinearForward' is used to map rectangles to any + quadrilateral, while the 'BilinearReverse' form maps any + quadrilateral to a rectangle, while preserving the straight line edges + in each case.
    + + Note that 'BilinearForward' can generate invalid pixels + which will be colored using the -mattecolor + color setting. Also if the quadrilateral becomes 'flipped' the image + may disappear.
    + + There are future plans to produce a true Bilinear distortion that will + attempt to map any quadrilateral to any other quadrilateral, while + preserving edges (and edge distance ratios). + +
    Perspective + Perspective distort the images, using a list of 4 or more sets of + control points (as defined below). More that 4 sets (16 numbers) of + control points provide least squares fitting for more accurate + distortions (for the purposes of image registration and panorama + effects). Less than 4 sets will fall back to a 'Affine' + linear distortion.
    + + Perspective Distorted images ensures that straight lines remain + straight, but the scale of the distorted image will vary. The horizon + is anti-aliased, and the 'sky' color may be set using the + -mattecolor setting.
    PerspectiveProjection + Do a 'Perspective' distortion biased on a set of 8 + pre-calculated coefficients. You can get these coefficients by looking + at the -verbose output of a + 'Perspective' distortion, or by calculating them yourself. + If the last two perspective scaling coefficients are zero, the + remaining 6 represents a transposed 'Affine Matrix'.
    Arc + Arc the image (variation of polar mapping) over the angle given around + a circle. + +
    +
    arc_angle
    +
    The angle over which to arc the image side-to-side
    +
    rotate_angle
    +
    Angle to rotate resulting image from vertical center
    +
    top_radius
    +
    Set top edge of source image at this radius
    +
    bottom_radius
    +
    Set bottom edge to this radius (radial scaling)
    +
    + + The resulting image is always resized to best fit the resulting image, + (as if using +distort) while attempting to + preserve scale and aspect ratio of the original image as much as + possible with the arguments given by the user. All four arguments will + be needed to change the overall aspect ratio of an 'Arc'ed image.
    + + This a variation of a polar distortion designed to try to preserve the + aspect ratio of the image rather than direct Cartesian to Polar + conversion.
    Polar + Like 'Arc' but do a complete Cartesian to Polar mapping of + the image. that is the height of the input image is mapped to the + radius limits, while the width is wrapped around between the + angle limits.
    + + Arguments: Rmax,Rmin CenterX,CenterY, start,end_angle
    + + All arguments are optional. With Rmin defaulting to zero, the + center to the center of the image, and the angles going from -180 (top) + to +180 (top). If Rmax is given the special value of + '0', the the distance from the center to the nearest edge + is used for the radius of the output image, which will ensure the whole + image is visible (though scaled smaller). However a special value of + '-1' will use the distance from the center to the furthest + corner, This may 'clip' the corners from the input rectangular image, + but will generate the exact reverse of a 'DePolar' with + the same arguments.
    + + If the plus form of distort (+distort) is used + output image center will default to 0,0 of the virtual + canvas, and the image size adjusted to ensure the whole input image is + made visible in the output image on the virtual canvas.
    DePolar + Uses the same arguments and meanings as a 'Polar' distortion + but generates the reverse Polar to Cartesian distortion.
    + + The special Rmax setting of '0' may however clip + the corners of the input image. However using the special + Rmax setting of '-1' (maximum center to corner + distance) will ensure the whole distorted image is preserved in the + generated result, so that the same argument to 'Polar' will + reverse the distortion re-producing the original. + + Note that as this distortion requires the area resampling of a circular + arc, which can not be handled by the builtin EWA resampling function. + As such the normal EWA filters are turned off. It is recommended some + form of 'super-sampling' image processing technique be used to produce + a high quality result.
    Barrel + Given the four coefficients (A,B,C,D) as defined by Helmut + Dersch, perform a barrel or pin-cushion distortion appropriate to + correct radial lens distortions. That is in photographs, make straight + lines straight again.
    + +

    Arguments: A B C [ D [ + X , Y ] ]
    + or Ax Bx Cx Dx + Ay By Cy Dy + [ X , Y ]

    + So that it forms the function +

    Rsrc = r * ( A*r3 + B*r2 + + C*r + D )

    + + Where X,Y is the optional center of the distortion + (defaulting to the center of the image).
    + The second form is typically used to distort images, rather than + correct lens distortions.
    +
    BarrelInverse + This is very similar to 'Barrel' with the same set of + arguments, and argument handling. However it uses the inverse + of the radial polynomial, + so that it forms the function +

    Rsrc = r / ( A*r3 + B*r2 + + C*r + D )

    + Note that this is not the reverse of the 'Barrel' + distortion, just a different barrel-like radial distortion method. + +
    Shepards + Distort the given list control points (any number) using an Inverse + Squared Distance Interpolation Method (Shepards + Method). The control points in effect do 'localized' displacement + of the image around the given control point (preserving the look and + the rotation of the area near the control points. For best results + extra control points should be added to 'lock' the positions of the + corners, edges and other unchanging parts of the image, to prevent + their movement.
    + + The distortion has been likened to 'taffy pulling' using nails, or + pins' stuck in a block of 'jelly' which is then moved to the new + position, distorting the surface of the jelly.
    + + Internally it is equivalent to generating a displacement map (see -displace) for source image color look-up using + the -sparse-color method of the same name. + +
    + +

    To print a complete list of distortion methods, use -list +distort.

    + +

    Many of the above distortion methods such as 'Affine', +'Perspective', and 'Shepards' use a list control points +defining how these points in the given image should be distorted in the +destination image. Each set of four floating point values represent a source +image coordinate, followed immediately by the destination image coordinate. +This produces a list of values such as...

    +

    + U1,V1 X1,Y1 + U2,V2 X2,Y2 + U3,V3 X3,Y3 + ... + Un,Vn Xn,Yn +

    +

    where U,V on the source image is mapped to X,Y on the +destination image.

    + +

    For example, to warp an image using 'perspective' distortion, +needs a list of at least 4 sets of coordinates, or 16 numbers. Here is the +perspective distortion of the built-in "rose:" image. Note how spaces were +used to group the 4 sets of coordinate pairs, to make it easier to read and +understand.

    + +
    convert rose:  -virtual-pixel black \
    +  -distort Perspective '0,0,0,0  0,45,0,45  69,0,60,10  69,45,60,35' \
    +   rose_3d_rotated.gif"
    +
    + +

    If more that the required number of coordinate pairs are given for +a distortion, the distortion method is 'least squares' fitted to produce the +best result for all the coordinate pairs given. If less than the ideal number +of points are given, the distort will generally fall back to a simpler form of +distortion that can handles the smaller number of coordinates (usually a linear +'Affine' distortion).

    + +

    By using more coordinates you can make use of image registration tool to +find matching coordinate pairs in overlapping images, so as to improve the +'fit' of the distortion. Of course a bad coordinate pair can also make the +'fit' worse. Caution is always advised.

    + +

    Colors are acquired from the source image according to a cylindrical +resampling -filter, using a special technique known as +EWA resampling. This produces very high quality results, especially when +images become smaller (minified) in the output, which is very common when +using 'perspective' distortion. For example here we view +a infinitely tiled 'plane' all the way to the horizon.

    + +
    convert -size 90x90 pattern:checkerboard -normalize -virtual-pixel tile \
    +  -distort perspective  '0,0,5,45  89,0,45,46  0,89,0,89  89,89,89,89' \
    +   checks_tiled.jpg
    +
    + +

    Note that a infinitely tiled perspective images involving the horizon can +be very slow, because of the number of pixels that are compressed to generate +each individual pixel close to the 'horizon'. You can turn off EWA +resampling, by specifying the special -filter setting of +'point' (recommended if you plan to use super-sampling instead). +

    + +

    If an image generates invalid pixels, such as the 'sky' in the last +example, -distort will use the current -mattecolor setting for these pixels. If you do not +what these pixels to be visible, set the color to match the rest of the +ground.

    + +

    The output image size will by default be the same as the input image. This +means that if the part of the distorted image falls outside the viewed area of +the 'distorted space', those parts is clipped and lost. However if you use +the plus form of the operator (+distort) the operator +will attempt (if possible) to show the whole of the distorted image, while +retaining a correct 'virtual canvas' offset, for image layering. This offset +may need to be removed using +repage, to remove if it +is unwanted.

    + +

    Setting -verbose setting, will cause -distort to attempt to output the internal coefficients, +and the -fx equivalent to the distortion, for expert study, +and debugging purposes. This many not be available for all distorts.

    + +

    You can alternatively specify a special "-define distort:viewport={geometry_string}" setting which will +specify the size and the offset of the generated 'viewport' image of the +distorted image space.

    + +

    Setting a "-define +distort:scale=scale_factor" will scale the output image (viewport or +otherwise) by that factor without changing the viewed contents of the +distorted image. This can be used either for 'super-sampling' the image for +a higher quality result, or for panning and zooming around the image (with +appropriate viewport changes, or post-distort cropping and resizing).

    + +

    Setting "-define resample:verbose=1" +will output the cylindrical filter lookup table created by the EWA (Elliptical +Weighted Average) resampling algorithm. Note this table uses a squared radius +lookup value. This is typically only used for debugging EWA resampling.

    + + +
    +

    -distribute-cache port

    +
    + +

    launch a distributed pixel cache server.

    + +
    +

    -dither method

    +
    + +

    Apply a Riemersma or Floyd-Steinberg error diffusion dither to +images when general color reduction is applied via an option, or automagically +when saving to specific formats. This enabled by default.

    + +

    Dithering places two or more colors in neighboring pixels so that to the +eye a closer approximation of the images original color is reproduced. This +reduces the number of colors needed to reproduce the image but at the cost of +a lower level pattern of colors. Error diffusion dithers can use any set of +colors (generated or user defined) to an image.

    + +

    Dithering is turned on by default, to turn it off use the plus form of the +setting, +dither. This will also also render PostScript +without text or graphic aliasing. Disabling dithering often (but not always) +leads to faster process, a smaller number of colors, but more cartoon like +image coloring. Generally resulting in 'color banding' effects in areas with +color gradients.

    + +

    The color reduction operators -colors, -monochrome, -remap, and -posterize, apply dithering to images using the reduced +color set they created. These operators are also used as part of automatic +color reduction when saving images to formats with limited color support, such +as GIF:, XBM:, and others, so dithering may also be used +in these cases.

    + +

    Alternatively you can use -random-threshold +to generate purely random dither. Or use -ordered-dither to apply threshold mapped dither +patterns, using uniform color maps, rather than specific color maps.

    + + +
    +

    -draw string

    +
    + +

    Annotate an image with one or more graphic primitives.

    + +

    Use this option to annotate or decorate an image with one or more graphic +primitives. The primitives include shapes, text, transformations, and pixel +operations.

    + +

    The shape primitives:

    + +
    +
    point
    x,y
    +
    line
    x0,y0 x1,y1
    +
    rectangle
    x0,y0 x1,y1
    +
    roundRectangle
    x0,y0 x1,y1 wc,hc
    +
    arc
    x0,y0 x1,y1 a0,a1
    +
    ellipse
    x0,y0 rx,ry a0,a1
    +
    circle
    x0,y0 x1,y1
    +
    polyline
    x0,y0 ... xn,yn
    +
    polygon
    x0,y0 ... xn,yn
    +
    bezier
    x0,y0 ... xn,yn
    +
    path
    specification
    +
    image
    operator x0,y0 w,h filename
    +
    + +

    The text primitive:

    + +
    +
    text
    x0,y0 string
    +
    +

    The text gravity primitive:

    + +
    +
    gravity
    NorthWest, North, NorthEast, West, Center, East, SouthWest, South, or SouthEast
    +
    + +

    The text gravity primitive only affects the placement of text and does not +interact with the other primitives. It is equivalent to using the -gravity command-line option, except that it is limited in +scope to the -draw option in which it appears.

    + +

    The transformation primitives:

    + +
    +
    rotate
    degrees
    +
    translate
    dx,dy
    +
    scale
    sx,sy
    +
    skewX
    degrees
    +
    skewY
    degrees
    +
    + +

    The pixel operation primitives:

    + +
    +
    color
    x0,y0 method
    +
    matte
    x0,y0 method
    +
    + +

    The shape primitives are drawn in the color specified by the preceding -fill setting. For unfilled shapes, use -fill none. You can optionally control the stroke (the +"outline" of a shape) with the -stroke and -strokewidth settings.

    + +

    A point primitive is specified by a single point in the +pixel plane, that is, by an ordered pair of integer coordinates, +x,y. (As it involves only a single pixel, a point +primitive is not affected by -stroke or -strokewidth.)

    + +

    A line primitive requires a start point and end point.

    + +

    A rectangle primitive is specified by the pair of points at the +upper left and lower right corners.

    + +

    A roundRectangle primitive takes the same corner points as +a rectangle followed by the width and height of the rounded corners +to be removed.

    + +

    The circle primitive makes a disk (filled) or circle (unfilled). +Give the center and any point on the perimeter (boundary).

    + +

    The arc primitive is used to inscribe an elliptical segment in +to a given rectangle. An arc requires the two corners used for +rectangle (see above) followed by the start and end angles of the +arc of the segment segment (e.g. 130,30 200,100 45,90). The start and end +points produced are then joined with a line segment and the resulting segment +of an ellipse is filled.

    + +

    Use ellipse to draw a partial (or whole) ellipse. Give the +center point, the horizontal and vertical "radii" (the semi-axes of +the ellipse) and start and end angles in degrees (e.g. 100,100 100,150 +0,360).

    + +

    The polyline and polygon primitives require three or +more points to define their perimeters. A polyline is simply +a polygon in which the final point is not stroked to the start +point. When unfilled, this is a polygonal line. If the -stroke setting is none (the default), then +a polyline is identical to a polygon.

    + +

    A coordinate is a pair of integers separated by a space or +optional comma.

    + +

    As an example, to define a circle centered at 100,100 that extends to +150,150 use:

    + +
    -draw 'circle 100,100 150,150'
    +
    + +

    The Bezier primitive creates a spline curve and requires three +or points to define its shape. The first and last points are the +knots and these points are attained by the curve, while any +intermediate coordinates are control points. If two control points +are specified, the line between each end knot and its sequentially respective +control point determines the tangent direction of the curve at that end. If +one control point is specified, the lines from the end knots to the one +control point determines the tangent directions of the curve at each end. If +more than two control points are specified, then the additional control points +act in combination to determine the intermediate shape of the curve. In order +to draw complex curves, it is highly recommended either to use the +path primitive or to draw multiple four-point bezier segments with +the start and end knots of each successive segment repeated. For example:

    + +
    -draw 'bezier 20,50 45,100 45,0 70,50'
    +-draw 'bezier 70,50 95,100 95,0 120,50'
    +
    + +

    A path represents an outline of an object, defined in terms of +moveto (set a new current point), lineto (draw a straight line), curveto (draw +a Bezier curve), arc (elliptical or circular arc) and closepath (close the +current shape by drawing a line to the last moveto) elements. Compound paths +(i.e., a path with subpaths, each consisting of a single moveto followed by +one or more line or curve operations) are possible to allow effects such as +donut holes in objects. (See Paths.)

    + +

    Use image to composite an image with another image. Follow the +image keyword with the composite operator, image location, image size, and +filename:

    + +
    -draw 'image SrcOver 100,100 225,225 image.jpg'
    +
    + +

    You can use 0,0 for the image size, which means to use the actual +dimensions found in the image header. Otherwise, it is scaled to the given +dimensions. See Alpha Compositing for +a detailed discussion of alpha composition methods that are available.

    + +

    The "special augmented compose operators" such as "dissolve" that require +arguments cannot be used at present with the -draw image option. +

    + +

    Use text to annotate an image with text. Follow the text +coordinates with a string. If the string has embedded spaces, enclose it in +single or double quotes.

    + +

    For example, the following annotates the image with Works like +magick! for an image titled bird.miff.

    + +
    -draw "text 100,100 'Works like magick!' "
    +
    + +

    See the -annotate option for another convenient way +to annotate an image with text.

    + +

    The rotate primitive rotates subsequent shape primitives and +text primitives about the origin of the main image.

    + +

    The translate primitive translates subsequent shape and text +primitives.

    + +

    The scale primitive scales them.

    + +

    The skewX and skewY primitives skew them with respect +to the origin of the main image or the region.

    + +

    The transformations modify the current affine matrix, which is initialized +from the initial affine matrix defined by the -affine +option. Transformations are cumulative within the -draw +option. The initial affine matrix is not affected; that matrix is only changed +by the appearance of another -affine option. If another +-draw option appears, the current affine matrix is +reinitialized from the initial affine matrix.

    + +

    Use the color primitive to change the color of a pixel to the +fill color (see -fill). Follow the pixel coordinate with +a method:

    + +
    point
    +replace
    +floodfill
    +filltoborder
    +reset
    +
    + +

    Consider the target pixel as that specified by your coordinate. The +point method recolors the target pixel. The replace +method recolors any pixel that matches the color of the target pixel. +Floodfill recolors any pixel that matches the color of the target +pixel and is a neighbor, whereas filltoborder recolors any neighbor +pixel that is not the border color. Finally, reset recolors all +pixels.

    + +

    Use matte to the change the pixel matte value to transparent. +Follow the pixel coordinate with a method (see the color primitive +for a description of methods). The point method changes the matte +value of the target pixel. The replace method changes the matte +value of any pixel that matches the color of the target pixel. +Floodfill changes the matte value of any pixel that matches the +color of the target pixel and is a neighbor, whereas filltoborder +changes the matte value of any neighbor pixel that is not the border color (-bordercolor). Finally reset changes the +matte value of all pixels.

    + +

    You can set the primitive color, font, and font bounding box color with -fill, -font, and -box +respectively. Options are processed in command line order so be sure to use +these options before the -draw option.

    + +

    Strings that begin with a number must be quoted (e.g. use '1.png' rather +than 1.png).

    + +

    Drawing primitives conform to the Magick +Vector Graphics format.

    + + +
    +

    -duplicate count,indexes

    +
    + +

    duplicate an image one or more times.

    + +

    Specify the count and the image to duplicate by its index in the sequence. +The first image is index 0. Negative indexes are relative to the end of the +sequence, for example, -1 represents the last image of the sequence. Specify +a range of images with a dash (e.g. 0-4). Separate indexes with a comma (e.g. +0,2). Use +duplicate to duplicate the last image in the current +image sequence.

    + +
    +

    -edge radius

    +
    + +

    detect edges within an image.

    + +
    +

    -emboss radius

    +
    + +

    emboss an image.

    + +
    +

    -encipher filename

    +
    + +

    Encipher pixels for later deciphering by -decipher.

    + +

    Get the passphrase from the file specified by filename.

    + +

    For more information, see the webpage, ImageMagick: Encipher or +Decipher an Image.

    + + + +
    +

    -encoding type

    +
    + +

    specify the text encoding.

    + +

    Choose from

    + +
    AdobeCustom     AdobeExpert
    +AdobeStandard   AppleRoman
    +BIG5            GB2312
    +Latin 2         None
    +SJIScode        Symbol
    +Unicode         Wansung
    +
    + +
    +

    -endian type

    +
    + +

    Specify endianness (MSB or LSB) of the image.

    + +

    To print a complete list of endian types, use the -list endian option.

    + +

    Use +endian to revert to unspecified endianness.

    + + +
    +

    -enhance

    +
    + +

    Apply a digital filter to enhance a noisy image.

    + + +
    +

    -equalize

    +
    + +

    perform histogram equalization on the image channel-by-channel.

    + +

    To perform histogram equalization on all channels in concert, transform the +image into some other color space, such as HSL, OHTA, YIQ or YUV, then +equalize the appropriate intensity-like channel, then convert back to RGB.

    + +

    For example using HSL, we have: ... -colorspace HSL -channel lightness +-equalize -colorspace RGB ...

    + +

    For YIQ, YUV and OHTA use the red channel. For example, OHTA is a principal +components transformation that puts most of the information in the first +channel. Here we have ... -colorspace OHTA -channel red -equalize +-colorspace RGB ...

    + +
    +

    -evaluate operator value

    +
    + +

    Alter channel pixels by evaluating an arithmetic, relational, or logical expression.

    + +

    (See the -function operator for some +multi-parameter functions. See the -fx operator if more +elaborate calculations are needed.)

    + +

    The behaviors of each operator are summarized in the +following list. For brevity, the numerical value of a "pixel" referred to +below is the value of the corresponding channel of that pixel, while +a "normalized pixel" is that number divided by the maximum +(installation-dependent) value QuantumRange. (If +normalized pixels are used, they are restored, following the other +calculations, to the full range by multiplying by QuantumRange.)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    operatorSummary (see further below for details)
    Abs Add value to pixels and return absolute value.
    Add Add value to pixels.
    AddModulus Add value to pixels modulo QuantumRange.
    And Binary AND of pixels with value.
    Cos, Cosine Apply cosine to pixels with frequency value with 50% bias added.
    Divide Divide pixels by value.
    Exp base-e exponential function
    Exponential base-e exponential function
    LeftShift Shift the pixel values left by value bits (i.e., multiply pixels by 2value).
    Log Apply scaled logarithm to normalized pixels.
    Max Set pixels to maximum of value and current pixel value (i.e. set any pixels currently less than value to value).
    Mean Add the value and divide by 2.
    Median Choose the median value from an image sequence.
    Min Set pixels to minimum of value and current pixel value (i.e. set any pixels currently greater than value to value).
    Multiply Multiply pixels by value.
    Or Binary OR of pixels with value.
    Pow Raise normalized pixels to the power value.
    RightShift Shift the pixel values right by value bits (i.e., divide pixels by 2value).
    RMS Square the pixel and add the value.
    RootMeanSquare Square the pixel and add the value.
    Set Set pixel equal to value.
    Sin, Sine Apply sine to pixels with frequency value with 50% bias added.
    Subtract Subtract value from pixels.
    Xor Binary XOR of pixels with value.
    Gaussian-noise
    Impulse-noise
    Laplacian-noise
    Multiplicative-noise (These are equivalent to the corresponding -noise operators.)
    PoissonNoise
    Uniform-noise
    Threshold Threshold pixels larger than value.
    ThresholdBlack Threshold pixels to zero values equal to or below value.
    ThresholdWhite Threshold pixels to maximum values above value.
    + +

    The specified functions are applied only to each previously set -channel in the image. If necessary, the results of the +calculations are truncated (clipped) to fit in the interval [0, QuantumRange]. The transparency channel of the image is +represented as a 'alpha' values (0 = fully transparent), so, for example, a +Divide by 2 of the alpha channel will make the image +semi-transparent. Append the percent symbol '%' to specify a value +as a percentage of the QuantumRange.

    + +

    To print a complete list of -evaluate operators, use +-list evaluate.

    + +

    The results of the Add, Subtract and +Multiply methods can also be achieved using either the -level or the +level operator, with +appropriate argument, to linearly modify the overall range of color values. +Please note, however, that -level treats transparency as +'matte' values (0 = opaque), while -evaluate works with +'alpha' values.

    + +

    AddModulus has been added as of ImageMagick 6.4.8-4 and provides +addition modulo the QuantumRange. It is therefore +equivalent to Add unless the resulting pixel value is outside the +interval [0, QuantumRange].

    + +

    Exp or Exponential has been added as of ImageMagick 6.6.5-1 and +works on normalized pixel values. The value used with +Exp should be negative so as to produce a decaying exponential +function. Non-negative values will always produce results larger unity and +thus outside the interval [0, QuantumRange]. The +formula is expressed below.

    + +

    +exp(value × u) +

    + +

    If the input image is squared, for example, using -function polynomial "2 0 0", then a decaying Gaussian function will be +the result.

    + +

    Log has been added as of ImageMagick 6.4.2-1 and works on +normalized pixel values. This a scaled log function. The value used with Log provides a scaling +factor that adjusts the curvature in the graph of the log function. The +formula applied to a normalized value u is below.

    + +

    +log(value × u + 1) / log(value + 1) +

    + +

    Pow has been added as of ImageMagick 6.4.1-9, and works on +normalized pixel values. Note that Pow is related to the -gamma operator. For example, -gamma 2 is equivalent +to -evaluate pow 0.5, i.e., a 'square root' function. The value used +with -gamma is simply the reciprocal of the value used +with Pow.

    + +

    Cosine and Sine was added as of IM v6.4.8-8 and +converts the image values into a value according to a (co)sine wave function. +The synonyms Cos and Sin may also be used. The output +is biased 50% and normalized by 50% so as to fit in the respective color value +range. The value scaling of the period of the +function (its frequency), and thus determines the number of 'waves' that will +be generated over the input color range. For example, if the value is 1, the effective period is simply the QuantumRange; but if the value is 2, +then the effective period is the half the QuantumRange.

    + +

    +0.5 + 0.5 × cos(2 π u × value). +

    + +

    See also the -function operator, which is a +multi-value version of evaluate.

    + +
    +

    -evaluate-sequence operator

    +
    + +

    Alter channel pixels by evaluating an arithmetic, relational, or logical expression over a sequence of images. Ensure all the images in the sequence are in the same colorspace, otherwise you may get unexpected results, e.g. add -colorspace sRGB to your command-line.

    + +

    To print a complete list of -evaluate-sequence operators, use -list evaluate.

    + +
    +

    -extent geometry

    +
    + +

    Set the image size and offset.

    + +

    If the image is enlarged, unfilled areas are set to the background color. +To position the image, use offsets in the geometry +specification or precede with a -gravity setting. To +specify how to compose the image with the background, use -compose.

    + +

    This command reduces or expands a JPEG image to fit on an 800x600 +display. If the aspect ratio of the input image isn't exactly 4:3, then the +image is centered on an 800x600 black canvas:

    + +
    convert input.jpg -resize 800x600 -background black -compose Copy \ 
    +  -gravity center -extent 800x600 -quality 92 output.jpg
    +
    + +

    See Image Geometry for complete details about the geometry argument.

    + +
    +

    -extract geometry

    +
    + +

    Extract the specified area from image.

    + +

    This option is most useful for extracting a subregion of a very large raw +image. Note that these two commands are equivalent:

    + +
    convert -size 16000x16000 -depth 8 -extract 640x480+1280+960 \ 
    +  image.rgb image.png",
    +convert -size 16000x16000 -depth 8 'image.rgb[640x480+1280+960]' \
    +  image.rgb image.png"
    +
    + +

    If you omit the offsets, as in

    + +
    convert -size 16000x16000 -depth 8 -extract 640x480 \ 
    +  image.rgb image.png
    +
    + +

    the image is resized to the specified dimensions instead, +equivalent to:

    + +
    convert -size 16000x16000 -depth 8 -resize 640x480 image.rgb image.png
    +
    + +

    See Image Geometry for complete details about the geometry argument.

    + +
    +

    -family fontFamily

    +
    + +

    Set a font family for text.

    + +

    This setting suggests a font family that ImageMagick should try to use for +rendering text. If the family can be found it is used; if not, a default font +(e.g., "Arial") or a family known to be similar is substituted (e.g., +"Courier" might be used if "System" is requested but not found).

    + +

    For other settings that affect fonts, see the options -font, -stretch, -style, and -weight.

    + +
    +

    -features distance

    +
    + +

    display (co-occurrence matrix) texture measure features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance.

    + +
    Angular Second Moment       Sum Entropy
    +Contrast                    Entropy
    +Correlation                 Difference Variance
    +Sum of Squares Variance     Difference Entropy
    +Inverse Difference Moment   Information Measure of Correlation 1
    +Sum Average                 Information Measure of Correlation 2
    +Sum Variance                Maximum Correlation Coefficient
    +
    + +
    +

    -fft

    +
    + +

    implements the forward discrete Fourier transform (DFT).

    + +

    This option is new as of ImageMagick 6.5.4-3 (and now working for Windows +users in ImageMagick 6.6.0-9). It transforms an image from the normal +(spatial) domain to the frequency domain. In the frequency domain, an image is +represented as a superposition of complex sinusoidal waves of varying +amplitudes. The image x and y coordinates are the possible frequencies along +the x and y directions, respectively, and the pixel intensity values are +complex numbers that correspond to the sinusoidal wave amplitudes. See for +example, Fourier +Transform, Discrete Fourier +Transform and Fast Fourier +Transform.

    + +

    A single image name is provided as output for this option. However, the +output result will have two components. It is either a two-frame image or two +separate images, depending upon whether the image format specified supports +multi-frame images. The reason that we get a dual output result is because the +frequency domain represents an image using complex numbers, which cannot be +visualized directly. Therefore, the complex values are automagically separated +into a two-component image representation. The first component is the +magnitude of the complex number and the second is the phase of the complex +number. See for example, Complex Numbers.

    + +

    The magnitude and phase component images must be specified using image +formats that do not limit the color or compress the image. Thus, MIFF, TIF, +PFM, EXR and PNG are the recommended image formats to use. All of these +formats, except PNG support multi-frame images. So for example,

    + +
    convert image.png -fft fft_image.miff
    +
    + +

    generates a magnitude image as fft_image.miff[0] and a phase +image as fft_image.miff[1]. Similarly,

    + +
    convert image.png -fft fft_image.png
    +
    + +

    generates a magnitude image as fft_image-0.png and a phase image +as fft_image-1.png. If you prefer this representation, then you can +force any of the other formats to produce two output images by including +adjoin following -fft in the command line.

    + +

    The input image can be any size, but if not square and even-dimensioned, it +is padded automagically to the larger of the width or height of the input +image and to an even number of pixels. The padding will occur at the bottom +and/or right sides of the input image. The resulting output magnitude and +phase images is square at this size. The kind of padding relies on the -virtual-pixel setting.

    + +

    Both output components will have dynamic ranges that fit within +[0, QuantumRange], so that HDRI need not be enabled. +Phase values nominally range from 0 to 2*Ï€, but is scaled to span the full +dynamic range. (The first few releases had non-HDRI scaled but HDRI not +scaled). The magnitude image is not scaled and thus generally will contain +very small values. As such, the image normally will appear totally black. In +order to view any detail, the magnitude image typically is enhanced with a log +function into what is usually called the spectrum. A log function is used to +enhance the darker values more in comparison to the lighter values. This can +be done, for example, as follows:

    + +
    convert fft_image.miff[0] -contrast-stretch 0 \
    +  -evaluate log 1000 fft_image_spectrum.png"
    +
    + +

    where either -contrast-stretch 0 or -auto-level is used to scale the image to full dynamic +range, first. The argument to the -evaluate log +typically is specified between 100 and 10,000, depending upon the amount of +detail that one wants to bring out in the spectrum. Larger values produce more +visible detail. Too much detail, however, may hide the important features.

    + +

    The FFTW delegate library is required to +use -fft.

    + +

    Use +fft to produce two output images that are the real +and imaginary components of the complex valued Fourier transform.

    + +

    However, as the real and imaginary components can contain negative values, +this requires that IM be configured with HDRI enabled. In this case, you must +use either MIFF, TIF, PFM or MPC formats for the real and imaginary component +results, since they are formats that preserve both negative and fractional +values without clipping them or truncating the fractional part. With either +MIFF or TIF, one should add -define quantum:format=32, to allow those image +types to work properly in HDRI mode without clipping.

    + +

    The real and imaginary component images resulting from +fft are also square, even dimensioned images due to the same +padding that was discussed above for the magnitude and phase component +images.

    + +

    See the discussion on HDRI implementations of ImageMagick on the page High Dynamic-Range Images. For more +about HDRI go the ImageMagick Usage pages, Fred's Fourier Processing With ImageMagick page or this Wikipedia + entry.

    + +

    By default the FFT is normalized (and the IFT is not). Use "-define fourier:normalize=forward to explicitly normalize the FFT and unnormalize the IFT.

    + + +
    +

    -fill color

    +
    + +

    color to use when filling a graphic primitive.

    + +

    This option accepts a color name, a hex color, or a numerical RGB, RGBA, +HSL, HSLA, CMYK, or CMYKA specification. See Color Names for +a description of how to properly specify the color argument.

    + +

    Enclose the color specification in quotation marks to prevent the "#" or +the parentheses from being interpreted by your shell.

    + +

    For example,

    + +
    -fill blue
    +-fill "#ddddff"
    +-fill "rgb(255,255,255)"
    +
    + +

    See -draw for further details.

    + +

    To print a complete list of color names, use the -list color option.

    + +
    +

    -filter type

    +
    + +

    Use this type of filter when resizing or distorting an image.

    + +

    Use this option to affect the resizing operation of an image during +operations such as -resize and -distort. For example you can use a simple resize filter such as:

    + +
    Point       Hermite       Cubic
    +Box         Gaussian      Catrom
    +Triangle    Quadratic     Mitchell
    +CubicSpline
    +
    + +

    Use -define filter:lobes={2,3,4} to specify the support size for filtering for the CubicSpline filter.

    + +

    The Bessel and Sinc filter is also provided (as well +as a faster SincFast equivalent form). However these filters are +generally useless on their own as they are infinite filters that are being +clipped to the filters support size. Their direct use is not recommended +except via expert settings (see below).

    + +

    Instead these special filter functions are typically windowed by a windowing +function that the -filter setting defines. That is +using these functions will define a 'Windowed' filter, appropriate to the +operator involved. Windowed filters include:

    + +
    Lanczos       Hamming       Parzen
    +Blackman      Kaiser        Welsh
    +Hanning       Bartlett      Bohman
    +
    + +

    Also one special self-windowing filter is also provided +Lagrange, which will automagically re-adjust its function depending +on the current 'support' or 'lobes' expert settings (see below).

    + +

    If you do not select a filter with this option, the filter defaults to +Mitchell for a colormapped image, an image with a matte channel, or +if the image is enlarged. Otherwise the filter default to +Lanczos.

    + +

    To print a complete list of resize filters, use the -list +filter option.

    + +

    You can modify how the filter behaves as it scales your image through the +use of these expert settings (see also -define and -set):-

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -define filter:blur=factorScale the X axis of the filter (and its window). Use > 1.0 for + blurry or < 1.0 for sharp. This should only be used with Gaussian and + Gaussian-like filters simple filters, or you may not get the expected + results.
    -define filter:support=radiusSet the filter support radius. Defines how large the filter should be and + thus directly defines how slow the filtered resampling process is. All + filters have a default 'preferred' support size. Some filters like + Lagrange and windowed filters adjust themselves depending on + this value. With simple filters this value either does nothing (but slow + the resampling), or will clip the filter function in a detrimental way. +
    -define filter:lobes=countSet the number of lobes to use for the Sinc/Bessel filter. This an + alternative way of specifying the 'support' range of the filter, that is + designed to be more suited to windowed filters, especially when used for + image distorts.
    -define filter:sigma=valueThe 'sigma' value used to define the Gaussian filter. Default + sigma value is '0.5'. It only affects Gaussian but + does not shrink (but may enlarge) the filter's 'support'. It can be used + to generate very small blurs but without the filter 'missing' pixels due + to using a small support setting. A larger value of '0.707' + (a value of '1/sqrt(2)') is another common setting.
    -define filter:b=b-spline_factor
    -define filter:c=keys_alpha_factorRedefine the values used for cubic filters such as Cubic, + Catrom, Mitchel, and Hermite, as well as + the Parzen cubic windowing function. If only one of the values + are defined, the other is set so as to generate a 'Cubic-Keys' filter. + The values meaning was defined by a research paper by + Mitchell-Netravali.
    -define filter:kaiser-beta=valueThe 'alpha' value used to as part of the Kaiser Windowing function. + Default value is '6.5'. It only affects Kaiser windowing function, and + does not affect any other attributes. + Before ImageMagick v6.7.6-10, this option was known as "filter:alpha", (an + inheritance from the very old "zoom" program). It was changed to bring the + function in line with more modern academic research usage, and better + assign it be more definitive.
    -define filter:kaiser-alpha=valueThis value when multiplied by 'PI' is equivalent to "kaiser-beta", and + will override that setting. It only affects Kaiser windowing function, + and does not affect any other attributes.
    -define filter:filter=filter_functionUse this function directly as the weighting filter. This will allow + you to directly use a windowing function such as Blackman, + as a resampling filter, rather than as its normal usage as a windowing + function. If defined, no windowing function also defined, the window function is set + to Box). Directly specifying Sinc or Jinc + as a filter will also do this.
    -define filter:window=filter_functionThe IIR (infinite impulse response) filters Sinc and + Jinc are windowed (brought down to zero over the defined + support range) with the given filter. This allows you to specify a filter + function to be used as a windowing function for these IIR filters. + Many of the defined filters are actually windowing functions for these IIR + filters. A typical choices is Box, (which effectively turns + off the windowing function).
    -define filter:win-support=radiusScale windowing function to this size instead. This causes the windowing + (or self-windowing Lagrange filter) to act is if the support window is + larger than what is actually supplied to the calling operator. The filter + however is still clipped to the real support size given. If unset this + will equal the normal filter support size.
    -define filter:verbose=1This causes IM to print information on the final internal filter + selection to standard output. This includes a commented header on the + filter settings being used, and data allowing the filter weights to be + easily graphed. Note however that some filters are internally defined in terms of other filters. The Lanczos filter for example is defined in terms of + a SincFast windowed SincFast filter, while + Mitchell is defined as a general Cubic family filter + with specific 'B' and 'C' settings.
    + +

    For example, to get a 8 lobe jinc windowed sinc filter (Genseng filter?):

    + +
    convert image.png \
    +  -filter sinc \
    +  -set filter:window=jinc \
    +  -set filter:lobes=8 \
    +  -resize 150% image.jpg"
    +
    + +

    Or a raw un-windowed Sinc filter with 4 lobes:

    + +
    convert image.png \
    +  -set filter:filter=sinc \
    +  -set filter:lobes=4 \
    +  -resize 150% image.jpg"
    +
    + +

    To extract the data for a raw windowing function, combine it with +a 'Box' filter. For example the 'Welch parabolic +windowing function.

    + +
    convert null: -define filter:filter=Box \
    +  -define filter:window=Welch \
    +  -define filter:support=1.0 \
    +  -define filter:verbose=1 \
    +  -resize 2 null: > window_welch.dat
    +gnuplot
    +  set grid
    +  plot \"window_welch.dat\" with lines
    +
    + +

    Note that the use of expert options is provided for image processing experts +who have studied and understand how resize filters work. Without this +knowledge, and an understanding of the definition of the actual filters +involved, using expert settings are more likely to be detrimental to your image +resizing.

    + + +
    +

    -flatten

    +
    + +

    This is a simple alias for the -layers method "flatten".

    + + +
    +

    -flip

    +
    + +

    create a mirror image

    + +

    reflect the scanlines in the vertical direction. The image will be mirrored +upside-down.

    + + +
    +

    -floodfill {+-}x{+-}y color

    +
    + +

    floodfill the image with color at the specified offset.

    + +

    Flood fill starts from the given 'seed point' which is not gravity affected. +Any color that matches within -fuzz color distance of the +given color argument, connected to that 'seed point' +will be replaced with the current -fill color.

    + +

    Note that if the pixel at the 'seed point' does not itself match the given +color (according to -fuzz), then no +action will be taken.

    + +

    This operator works more like the -opaque option, than +a more general flood fill that reads the matching color directly at the 'seed +point'. For this form of flood fill, look at -draw and +its 'color floodfill' drawing method.

    + + +
    +

    -flop

    +
    + +

    create a mirror image.

    + +

    Reflect the scanlines in the horizontal direction, just like the image in +a vertical mirror.

    + + +
    +

    -font name

    +
    + +

    set the font to use when annotating images with text, or creating labels.

    + +

    To print a complete list of fonts, use the -list font +option (for versions prior to 6.3.6, use 'type' instead of 'font').

    + +

    In addition to the fonts specified by the above pre-defined list, you can +also specify a font from a specific source. For example Arial.ttf +is a TrueType font file, ps:helvetica is PostScript font, and +x:fixed is X11 font.

    + +

    For other settings that affect fonts, see the options -family, -stretch, -style, and -weight.

    + + +
    +

    -foreground color

    +
    + +

    Define the foreground color for menus.", "display

    + +

    The color is specified using the format described under the -fill option.

    + +

    The default foreground color is black.

    + +
    +

    -format type

    +
    + +

    the image format type.

    + +

    When used with the mogrify utility, this option converts any +image to the image format you specify. +For a list of image format types supported by ImageMagick, use -list format.

    + +

    By default the file is written to its original name. However, if the +filename extension matches a supported format, the extension is replaced with +the image format type specified with -format. For +example, if you specify tiff as the format type and the +input image filename is image.gif, the output image +filename becomes image.tiff.

    + +
    +

    -format string

    +
    + +

    output formatted image characteristics.

    + +

    See Format and Print Image +Properties for an explanation on how to specify the argument to this +option.

    + +
    +

    -frame geometry

    +
    + +

    Surround the image with a border or beveled frame.

    + +

    The color of the border is specified with the -mattecolor command line option.

    + +

    See Image Geometry for complete details about the geometry argument. The size portion of the geometry argument indicates the amount of extra width and +height that is added to the dimensions of the image. If no offsets are given +in the geometry argument, then the border added is +a solid color. Offsets x and y, if present, specify that +the width and height of the border is partitioned to form an outer bevel of +thickness x pixels and an inner bevel of thickness +y pixels. Negative offsets make no sense as frame arguments. +

    + +

    The -frame option is affected by the current -compose setting and assumes that this is using the default +'Over' composition method. It generates an image of the appropriate +size with the current -bordercolor setting, and then +draws the frame of four distinct colors close to the current -mattecolor. The original image is then overlaid onto +center of this image. This means that with the default compose method of +'Over' any transparent parts may be replaced by the current -bordercolor setting.

    + +

    The image composition is not +affected by the -gravity option.

    + + +
    +

    -frame

    +
    + +

    include the X window frame in the imported image.

    +
    +

    -function function parameters

    +
    + +

    Apply a function to channel values.

    + +

    This operator performs calculations based on the given arguments to modify +each of the color values for each previously set -channel in the image. See -evaluate for details concerning how the results of the +calculations are handled.

    + +

    This is can be considered a multi-argument version of the -evaluate operator. (Added in +ImageMagick 6.4.8−8.)

    + +

    Here, parameters is a comma-separated list of +numerical values. The number of values varies depending on which function is selected. Choose the function from:

    + +
    Polynomial
    +Sinusoid
    +Arcsin
    +Arctan
    +
    + +

    To print a complete list of -function operators, +use -list function. Descriptions follow.

    + +
    +
    Polynomial
    +

    The Polynomial function takes an arbitrary number of parameters, +these being the coefficients of a polynomial, in decreasing order of degree. +That is, entering

    + +
    -function Polynomial an,an-1,...a1,a0
    +
    + +

    will invoke a polynomial function given by

    + +
    an un + an-1 un-1 + ··· a1 u + a0,
    +
    + +

    where u is pixel's original normalized channel value.

    + +

    The Polynomial function can be used in place of Set +(the constant polynomial) and Add, Divide, +Multiply, and Subtract (some linear +polynomials) of the -evaluate operator. The -level operator also affects channels linearly. Some +correspondences follow.

    + + + + + + + + + + + + + + + + + + + + + + + + +
    -evaluate Set value -function Polynomial value(Constant functions; set value×100% gray when channels are RGB.)
    -evaluate Add value -function Polynomial 1,value
    -evaluate Subtract value -function Polynomial 1,−value
    -evaluate Multiply value -function Polynomial value,0
    +level black% x white%-function Polynomial A,B(Reduce contrast. Here, A=(white-black)/100 and B=black/100.)
    + +

    The Polynomial function gives great versatility, since +polynomials can be used to fit any continuous curve to any degree of accuracy +desired.

    + +
    +
    Sinusoid
    +
    +

    The Sinusoid function can be used to vary the channel values +sinusoidally by setting frequency, phase shift, amplitude, and a bias. These +values are given as one to four parameters, as follows,

    + +
    -function Sinusoid freq,[phase,[amp,[bias]]]
    +
    + +

    where phase is in degrees. (The domain [0,1] of the function +corresponds to 0 through freq×360 degrees.) +The result is that if a pixel's normalized channel value is originally +u, its resulting normalized value is given by

    + +
    amp * sin(2*Ï€* (freq * u + phase / 360)) + bias
    +
    + +

    For example, the following generates a curve that starts and ends at 0.9 +(when u=0 and 1, resp.), oscillating three times between +.7−.2=.5 and .7+.2=.9.

    + +
    -function Sinusoid 3,-90,.2,.7
    +
    + +

    The default values of amp and bias are both .5. The default for phase +is 0.

    + +

    The Sinusoid function generalizes Sin and +Cos of the -evaluate operator by allowing +varying amplitude, phase and bias. The correspondence is as follows.

    + + + + + + + + + + +
    -evaluate Sin freq -function Sinusoid freq,0
    -evaluate Cos freq -function Sinusoid freq,90
    +
    +
    ArcSin
    +
    +

    The ArcSin function generates the inverse curve of a Sinusoid, +and can be used to generate cylindrical distortion and displacement maps. +The curve can be adjusted relative to both the input values and output range +of values.

    + +
    -function ArcSin width,[center,[range,[bias]]]
    +
    + +

    with all values given in terms of normalized color values (0.0 for black, +1.0 for white). Defaulting to values covering the full range from 0.0 to 1.0 +for bout input (width), and output (width) values. '1.0,0.5,1.0,0.5'

    + +
    range/Ï€ * asin( 2/width * ( u - center ) ) + bias
    +
    + +
    +
    ArcTan
    +
    +

    The ArcTan function generates a curve that smooth crosses from +limit values at infinities, though a center using the given slope value. +All these values can be adjusted via the arguments.

    + +
    -function ArcTan slope,[center,[range,[bias]]]
    +
    + +

    Defaulting to '1.0,0.5,1.0,0.5'. +

    + +
    range/Ï€ * atan( slope*Ï€ * ( u - center ) ) + bias
    +
    +
    +
    + + + +
    +

    -fuzz distance{%}

    +
    + +

    Colors within this distance are considered equal.

    + +

    A number of algorithms search for a target color. By default the color must +be exact. Use this option to match colors that are close to the target color +in RGB space. For example, if you want to automagically trim the edges of an +image with -trim but the image was scanned and the target +background color may differ by a small amount. This option can account for +these differences.

    + +

    The distance can be in absolute intensity units or, by +appending % as a percentage of the maximum possible intensity (255, +65535, or 4294967295).

    + +

    Use +fuzz to reset the fuzz value to 0.

    + + +
    +

    -fx expression

    +
    + +

    apply a mathematical expression to an image or image channels.

    + +

    If the first character of expression is @, +the expression is read from a file titled by the remaining characters in the +string.

    + +

    See FX, +The Special Effects Image Operator for a detailed discussion of this +option.

    + + +
    +

    -gamma value

    +
    + +

    level of gamma correction.

    + +

    The same color image displayed on two different workstations may look +different due to differences in the display monitor. Use gamma correction to +adjust for this color difference. Reasonable values extend from +0.8 to 2.3. Gamma less than 1.0 darkens the image and +gamma greater than 1.0 lightens it. Large adjustments to image gamma may +result in the loss of some image information if the pixel quantum size is only +eight bits (quantum range 0 to 255).

    + +

    Gamma adjusts the image's channel values pixel-by-pixel according to +a power law, namely, pow(pixel,1/gamma) or pixel^(1/gamma), where pixel is the +normalized or 0 to 1 color value. For example, using a value of gamma=2 is the +same as taking the square root of the image.

    + +

    Use +gamma value to set the +image gamma level without actually adjusting the image pixels. This option +is useful if the image is of a known gamma but not set as an image attribute +(e.g. PNG images). Write the "file gamma" which is the reciprocal of the +display gamma; e.g., if your image is sRGB and you want to write a PNG gAMA +chunk, use

    + +
    convert input.png +gamma .45455 output.png
    +
    + +

    (0.45455 is 1/2.2)

    + +

    Note that gamma adjustments are also available via the -level operator.

    + +
    +

    -gaussian-blur radius
    -gaussian-blur radiusxsigma

    +
    + +

    Blur the image with a Gaussian operator.

    + +

    Convolve the image with a Gaussian or normal distribution using the given +Sigma value. The formula is:

    + +

    gaussian distribution

    + +

    The Sigma value is the important argument, and +determines the actual amount of blurring that will take place.

    + +

    The Radius is only used to determine the size of the +array which will hold the calculated Gaussian distribution. It should be an +integer. If not given, or set to zero, IM will calculate the largest possible +radius that will provide meaningful results for the Gaussian distribution. +

    + +

    The larger the Radius the radius the slower the +operation is. However too small a Radius, and severe +aliasing effects may result. As a guideline, Radius +should be at least twice the Sigma value, though three +times will produce a more accurate result.

    + +

    This differs from the faster -blur operator in that a +full 2-dimensional convolution is used to generate the weighted average of the +neighboring pixels.

    + +

    The -virtual-pixel setting will determine how +pixels which are outside the image proper are blurred into the final result. +

    + + +
    +

    -geometry geometry

    +
    + +

    Set the preferred size and location of the image.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +
    +

    -gravity type

    +
    + +

    Sets the current gravity suggestion for various other settings and options.

    + +

    Choices include: NorthWest, North, +NorthEast, West, Center, East, +SouthWest, South, SouthEast. Use -list gravity to get a complete list of -gravity settings available in your ImageMagick +installation.

    + +

    The direction you choose specifies where to position text or subimages. For +example, a gravity of Center forces the text to be centered within +the image. By default, the image gravity is undefined. See -draw for more details about graphic primitives. Only the +text primitive of -draw is affected by the -gravity option.

    + +

    The -gravity option is also used in concert with the +-geometry setting and other settings or options that +take geometry as an argument, such as the -crop option.

    + +

    If a -gravity setting occurs before another option +or setting having a geometry argument that specifies an +offset, the offset is usually applied to the point within the image suggested +by the -gravity argument. Thus, in the following +command, for example, suppose the file image.png has dimensions +200x100. The offset specified by the argument to -region +is (−40,+20). The argument to -gravity is +Center, which suggests the midpoint of the image, at the point +(100,50). The offset (−40,20) is applied to that point, giving +(100−40,50+20)=(60,70), so the specified 10x10 region is located at +that point. (In addition, the -gravity affects the +region itself, which is centered at the pixel +coordinate (60,70). (See Image Geometry for complete details about the geometry argument.)

    + +
    convert image.png -gravity Center -region 10x10-40+20 \
    +  -negate output.png
    +
    + +

    When used as an option to composite, -gravity gives the direction that the image gravitates +within the composite.

    + +

    When used as an option to montage, -gravity gives the direction that an image gravitates +within a tile. The default gravity is Center for this purpose.

    + + +
    +

    -grayscale method

    +
    + +

    convert image to grayscale.

    + +

    This will use one of the -intensity methods to +convert the given image into a grayscale image.

    + +

    For example, to convert an image to (linear) Rec709Luminance grayscale, type:

    + +
    convert in.png -grayscale Rec709Luminance out.png
    +
    + +

    which is equivalent to:

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

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

    + +

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

    + +
    convert in.png -grayscale Rec709Luma out.png
    +
    + +

    which is equivalent to:

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

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

    + +

    While this operation uses an -intensity method, +it does not use or set the -intensity setting, so +will not affect other operations that may use that setting.

    + + +
    +

    -green-primary x,y

    +
    + +

    green chromaticity primary point.

    + + +
    +

    -hald-clut

    +
    + +

    apply a Hald color lookup table to the image.

    + +

    A Hald color lookup table is a 3-dimensional color cube mapped to 2 +dimensions. Create it with the HALD: prefix (e.g. HALD:8). You +can apply any color transformation to the Hald image and then use this option +to apply the transform to the image.

    + +
    convert image.png hald.png -hald-clut transform.png
    +
    + +

    This option provides a convenient method for you to use Gimp or Photoshop +to make color corrections to the Hald CLUT image and subsequently apply them +to multiple images using an ImageMagick script.

    + +

    Note that the representation is only of the normal RGB color space and that +the whole color value triplet is used for the interpolated lookup of the +represented Hald color cube image. Because of this the operation is not -channel setting affected, nor can it adjust or modify an +images transparency or alpha/matte channel.

    + +

    See also -clut which provides color value replacement +of the individual color channels, usually involving a simpler grayscale +image. E.g: grayscale to color replacement, or modification by a histogram +mapping.

    + + +
    +

    -help

    +
    + +

    print usage instructions.

    + +
    +

    -highlight-color color

    +
    + +

    when comparing images, emphasize pixel differences with this color.

    + +
    +

    -hough-lines widthxheight{+threshold}

    +
    + +

    identify straight lines in the image (e.g. -hough-lines 9x9+195).

    + +

    Use the Hough line detector with any binary edge extracted image to locate and draw any straight lines that it finds.

    + +

    The process accumulates counts for every white pixel in the binary edge image for every possible orientation (for angles from 0 to 179 in 1 deg increments) and distance from the center of the image to the corners (in 1 px increments). It stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator will be 180x(diagonal/2). Next it searches the accumulator for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. The algorithm uses slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are drawn from the given endpoints. The counts are a measure of the length of the lines.

    . + +

    The WxH arguments specify the filter size for locating the peaks in the Hough accumulator. The threshold excludes lines whose counts are less than the threshold value.

    + +

    Use -background to specify the color of the background onto which the lines will be drawn. The default is black.

    + +

    Use -fill to specify the color of the lines. The default is black.

    + +

    Use -stroke and -strokewidth to specify the thickness of the lines. The default is black and no strokewidth.

    + +

    A text file listing the endpoints and counts may be created by using the suffix, .mvg, for the output image.

    + +

    Use -define hough-lines:accumulator=true to return the accumulator image in addition to the lines image.

    + +
    +

    -iconGeometry geometry

    +
    + +

    specify the icon geometry.

    + +

    Offsets, if present in the geometry specification, are handled in the same +manner as the -geometry option, using X11 style to +handle negative offsets.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +
    +

    -iconic

    +
    + +

    start in icon mode in X Windows", 'animate', 'display

    + +
    +

    -identify

    +
    + +

    identify the format and characteristics of the image.

    + +

    This information is printed: image scene number; image name; image size; +the image class (DirectClass or PseudoClass); the total number of unique colors; and the +number of seconds to read and transform the image. Refer to MIFF for +a description of the image class.

    + +

    If -colors is also specified, the total unique colors +in the image and color reduction error values are printed. Refer to color +reduction algorithm for a description of these values.

    + +

    If -verbose precedes this option, copious +amounts of image properties are displayed including image statistics, profiles, +image histogram, and others.

    + +
    +

    -ift

    +
    + +

    implements the inverse discrete Fourier transform (DFT).

    + +

    This option is new as of ImageMagick 6.5.4-3 (and now working for Windows +users in ImageMagick 6.6.0-9). It transforms a pair of magnitude and phase +images from the frequency domain to a single image in the normal or spatial +domain. See for example, Fourier Transform, +Discrete Fourier Transform and +Fast Fourier Transform.

    + +

    For example, depending upon the image format used to store the result of +the -fft, one would use either

    + +
    convert fft_image.miff -ift fft_image_ift.png
    +
    + +

    or

    + +
    convert fft_image-0.png fft_image-1.png -ift fft_image_ift.png
    +
    + +

    The resulting image may need to be cropped due to padding introduced when +the original image, prior to the -fft or +fft, was not square or even dimensioned. Any padding is at +the right and/or bottom sides of the image.

    + +

    The FFTW delegate library is required to +use -ift.

    + +

    Use +ift (with HDRI enabled) to transform a pair of real +and imaginary images from the frequency domain to a single image in the normal +(spatial) domain.

    + +

    By default the IFT is not normalized (and the FFT is). Use "-define fourier:normalize=inverse to explicitly normalize the IFT and unnormalize the FFT.

    + +
    +

    -immutable

    +
    + +

    make image immutable.

    + +
    +

    -implode factor

    +
    + +

    implode image pixels about the center.

    + +
    +

    -insert index

    +
    + +

    insert the last image into the image sequence.

    + +

    This option takes last image in the current image sequence and inserts it +at the given index. If a negative index is used, the insert position is +calculated before the last image is removed from the sequence. As such +-insert -1 will result in no change to the image sequence.

    + +

    The +insert option is equivalent to -insert -1. In +other words, insert the last image, at the end of the current image sequence. +Consequently this has no effect on the image sequence order.

    + +
    +

    -intensity method

    +
    + +

    method to generate intensity value from pixel.

    + +

    ImageMagick provides a number of methods used in situations where an +operator needs to determine a single grayscale value for some purpose, from +an image with red, green, and blue pixel components. Typically the +Rec709Luma formula is used, which is the same formula used when converting images to -colorspace gray.

    + +

    The following formulas are currently provided, and will first convert +the pixel values to linear-RGB or non-linear sRGB colorspace before +being applied to calculate the final greyscale value.

    + +
    +
    Rec601Luma
    0.298839R' + 0.586811G'+ 0.114350B'
    +
    Rec601Luminance
    0.298839R + 0.586811G + 0.114350B
    +
    Rec709Luma
    0.212656R' + 0.715158G' + 0.072186B'
    +
    Rec709Luminance
    0.212656R + 0.715158G + 0.072186B
    +
    Brightness
    max(R', G', B')
    +
    Lightness
    (min(R', G', B') + max(R', G', B')) / 2.0
    +
    + +

    Note that the above R,G,B values is the image's linear-RGB values, while +R',G',B' are sRGB non-linear values.

    + +

    These intensity methods are mathematical in nature and will use the +current value in the images respective R,G,B channel regardless of +what that is, or what colorspace the image is currently using.

    + +
    +
    Average
    (R' + G' + B') / 3.0
    +
    MS
    (R'^2 + G'^2 + B'^2) / 3.0
    +
    RMS
    sqrt( (R'^2 + G'^2 + B'^2) / 3.0 )
    +
    + +

    These methods are often used for other purposes, such as generating a +grayscale difference image between two color images (using -compose 'Difference' composition.

    + +

    For example The 'MS' (Mean Squared) setting is good for minimizing color +error comparisions. While... The method 'RMS' (Root Mean Squared) for +example is appropriate for calculating color vector distance, from a color +difference image. This is equivalent to the color only component of the -fuzz factor color compare setting.

    + +

    See also -grayscale which applies one of the above +grayscaling formula directly to an image without setting the -intensity setting.

    + +

    The -colorspace gray image conversion also uses +the current intensity setting, but will always convert the image to the +appropriate sRGB or linear-RGB colorspace before appling the above +function.

    + +

    To print a complete list of possible pixel intensity setting methods, use -list intensity.

    + +

    Operators affected by the -intensity setting include:

    + +
    -adaptive-blur
    +-adaptive-sharpen
    +-black-threshold
    +-clut (when mapping greyscale CLUT image to alpha channel if set by -channels)
    +-colors for gray colorspace
    +-compose {LightenIntensity, DarkenIntensity, CopyOpacity, CopyBlack}
    +-contrast-stretch
    +-distort {ErodeIntensity, DilateIntensity}
    +-normalize
    +-random-threshold
    +-selective-blur
    +-shade
    +-threshold
    +-tint
    +-white-threshold
    +
    + +
    +

    -intent type

    +
    + +

    use this type of rendering intent when managing the image color.

    + +

    Use this option to affect the color management operation of an image (see +-profile). Choose from these intents: Absolute, +Perceptual, Relative, Saturation.

    + +

    The default intent is Perceptual for the sRGB colorspace and undefined for the RGB and gray colorspaces.

    + +

    To print a complete list of rendering intents, use -list intent.

    + +
    +

    -interlace type

    +
    + +

    the type of interlacing scheme.

    + +

    Choose from:

    + +
    none
    +line
    +plane
    +partition
    +JPEG
    +GIF
    +PNG
    +
    + +

    This option is used to specify the type of interlacing scheme for raw image +formats such as RGB or YUV.

    + +

    None means do not interlace (RGBRGBRGBRGBRGBRGB...),

    + +

    Line uses scanline interlacing (RRR...GGG...BBB...RRR...GGG...BBB...), and.

    + +

    Plane uses plane interlacing (RRRRRR...GGGGGG...BBBBBB...).

    + +

    Partition is like plane except the different planes are saved to +individual files (e.g. image.R, image.G, and image.B).

    + +

    Use Line or Plane to create an interlaced +PNG or GIF or progressive JPEG image.

    + +

    To print a complete list of interlacing schemes, use -list +interlace.

    + +
    +

    -interpolate type

    +
    + +

    Set the pixel color interpolation method to use when looking up a color based on a floating point or real value.

    + +

    When looking up the color of a pixel using a non-integer floating point +value, you typically fall in between the pixel colors defined by the source +image. This setting determines how the color is determined from the colors of +the pixels surrounding that point. That is how to determine the color of a +point that falls between two, or even four different colored pixels.

    + +
    +
    average
    +
    The average color of the surrounding four pixels
    +
    average4
    +
    The average color of the surrounding four pixels
    +
    average9
    +
    The average color of the surrounding nine pixels
    +
    average16
    +
    The average color of the surrounding sixteen pixels
    +
    background
    +
    +
    bilinear
    +
    A double linear interpolation of pixels (the default)
    +
    blend
    +
    +
    catrom
    +
    Fitted bicubic-spines of surrounding 16 pixels
    +
    integer
    +
    The color of the top-left pixel (floor function)
    +
    mesh
    +
    Divide area into two flat triangular interpolations
    +
    nearest-neighbor
    +
    The nearest pixel to the lookup point (rounded function)
    +
    spline
    +
    Direct spline curves (colors are blurred)
    +
    + +

    This most important for distortion operators such as -distort, -implode, -transform and -fx.

    + +

    To print a complete list of interpolation methods, use -list interpolate.

    + +

    See also -virtual-pixel, for control of the +lookup for positions outside the boundaries of the image.

    + + +
    +

    -interline-spacing value

    +
    + +

    the space between two text lines.

    + +
    +

    -interword-spacing value

    +
    + +

    the space between two words.

    + +
    +

    -kerning value

    +
    + +

    the space between two letters.

    + +
    +

    -kuwahara radius
    -kuwahara radiusxsigma

    +
    + +

    edge preserving noise reduction filter.

    + +

    The radius is more important than the sigma. If sigma is left off, it will be computed automatically from the radius as sigma=radius-0.5. The sigma provides a bit of additional smoothing control.

    + + +
    +

    -label name

    +
    + +

    assign a label to an image.

    + +

    Use this option to assign a specific label to the image, as it is read in +or created. You can use the -set operation to re-assign +a the labels of images already read in. Image formats such as TIFF, PNG, +MIFF, supports saving the label information with the image.

    + +

    When saving an image to a PostScript file, any label +assigned to an image is used as a header string to print above the postscript +image.

    + +

    You can include the image filename, type, width, height, or other image +attribute by embedding special format character. See Format and Print Image +Properties for details of the percent escape codes.

    + +

    For example,

    + +
    -label "%m:%f %wx%h"  bird.miff
    +
    + +

    assigns an image label of MIFF:bird.miff 512x480 to the +"bird.miff" image and whose width is 512 and height is 480, as it +is read in. If a +label option was used instead, any +existing label present in the image would be used. You can remove all labels +from an image by assigning the empty string.

    + +

    A label is not drawn on the image, but is embedded in the image datastream +via Label tag or similar mechanism. If you want the label to be +visible on the image itself, use the -draw option, or +during the final processing in the creation of an image montage.

    + +

    If the first character of string is @, the image label is read from a file titled by the +remaining characters in the string. Labels in a file are literal, no embedded +formatting characters are recognized.

    + + +
    +

    -lat width
    -lat widthxheight{+-}offset{%}

    +
    + +

    perform local adaptive threshold.

    + +

    Adaptively threshold each pixel based on the value of pixels in a +surrounding window. If the current pixel is lighter than this average plus +the optional offset, then it is made white, otherwise it is made +black. Small variations in pixel values such as found in scanned documents +can be ignored if offset is positive. A negative offset will make it more +sensitive to those small variations.

    + +

    This is commonly used to threshold images with an uneven background. It is +based on the assumption that average color of the small window is the +the local background color, from which to separate the foreground color.

    + + +
    +

    -layers method

    +
    + +

    handle multiple images forming a set of image layers or animation frames.

    + +

    Perform various image operation methods to a ordered sequence of images +which may represent either a set of overlaid 'image layers', a GIF disposal +animation, or a fully-'coalesced' animation sequence.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodDescription
    compare-anyCrop the second and later frames to the smallest rectangle + that contains all the differences between the two images. No GIF -dispose methods are taken into account.
    This exactly the same as the -deconstruct operator, and does not preserve animations normal + working, especially when animation used layer disposal methods such as + 'Previous' or 'Background'.
    compare-clearAs 'compare-any' but crop to the bounds of any + opaque pixels which become transparent in the second frame. That is the + smallest image needed to mask or erase pixels for the next frame.
    compare-overlayAs 'compare-any' but crop to pixels that add + extra color to the next image, as a result of overlaying color pixels. + That is the smallest single overlaid image to add or change colors.
    This can be used with the -compose alpha + composition method 'change-mask', to reduce the image to + just the pixels that need to be overlaid.
    coalesceEquivalent to a call to the -coalesce operator. Apply the layer disposal methods set in the + current image sequence to form a fully defined animation sequence, as + it should be displayed. Effectively converting a GIF animation into a + 'film strip'-like animation.
    compositeAlpha Composition of two image lists, separated by a + "null:" image, with the destination image list first, and + the source images last. An image from each list are composited + together until one list is finished. The separator image and source + image lists are removed.
    The -geometry offset is adjusted according + to -gravity in accordance of the virtual + canvas size of the first image in each list. Unlike a normal -composite operation, the canvas offset is also + added to the final composite positioning of each image.
    If one of the image lists only contains one image, that image is + applied to all the images in the other image list, regardless of which + list it is. In this case it is the image meta-data of the list which + preserved.
    disposeThis like 'coalesce' but shows the look of + the animation after the layer disposal method has been applied, before + the next sub-frame image is overlaid. That is the 'dispose' image that + results from the application of the GIF -dispose method. This allows you to check what + is going wrong with a particular animation you may be developing. +
    flattenCreate a canvas the size of the first images virtual + canvas using the current -background color, + and -compose each image in turn onto that + canvas. Images falling outside that canvas is clipped. Final + image will have a zero virtual canvas offset.
    This usually used as one of the final 'image layering' operations + overlaying all the prepared image layers into a final image.
    For a single image this method can also be used to fillout a virtual + canvas with real pixels, or to underlay an opaque color to remove + transparency from an image.
    mergeAs 'flatten' method but merging all the given image + layers to create a new layer image just large enough to hold all the + image without clipping or extra space. The new images virtual offset + will preserve the position of the new layer, even if this offset is + negative. The virtual canvas size of the first image is preserved. +
    Caution is advised when handling image layers with + negative offsets as few image file formats handle them correctly. + Following this operation method with +repage + will remove the layer offset, and create an image in which all the + overlaid image positions relative to each other is preserved, though + not necessarily exactly where you specified them. +
    See also 'trim-bounds' below which is closely related but + without doing the'flatten' to merge the images together.
    mosaicAs 'flatten' method but expanding the initial canvas size + of the first image in a positive direction only so as to hold all the + image layers. However as a virtual canvas is 'locked' to the origin, + by its own definition, image layers with a negative offsets will still + become clipped by the top and left edges. See 'merge' or 'trim-bounds' + if this could be a problem.
    This method is commonly used to layout individual image + using various offset but without knowing the final canvas size. The + resulting image will, like 'flatten' not have any virtual offset, so + can be saved to any image file format.
    optimizeOptimize a coalesced animation, into GIF animation using + a number of general techniques. This currently a short cut to + apply both the 'optimize-frame', and + 'optimize-transparency' methods but may be expanded to + include other optimization methods as they are developed.
    optimize-frameOptimize a coalesced animation, into GIF animation by + reducing the number of pixels per frame as much as possible by + attempting to pick the best layer disposal method to use, while ensuring + the result will continue to animate properly.
    There is no guarantee that the best optimization is found. + But then no reasonably fast GIF optimization algorithm can do this. + However this does seem to do better than most other GIF frame + optimizers seen.
    optimize-plusAs 'optimize-frame' but attempt to improve the + overall optimization by adding extra frames to the animation, without + changing the final look or timing of the animation. The frames are + added to attempt to separate the clearing of pixels from the + overlaying of new additional pixels from one animation frame to the + next. If this does not improve the optimization (for the next frame + only), it will fall back to the results of the previous normal + 'optimize-frame' technique.
    There is the possibility that the change in the disposal + style will result in a worsening in the optimization of later frames, + though this is unlikely. In other words there no guarantee that it is + better than the normal 'optimize-frame' technique. For some + animations however you can get a vast improvement in the final + animation size.
    optimize-transparencyGiven a GIF animation, replace any pixel in the sub-frame + overlay images with transparency, if it does not change the resulting + animation by more than the current -fuzz factor. +
    This should allow a existing frame optimized GIF animation + to compress into a smaller file size due to larger areas of one + (transparent) color rather than a pattern of multiple colors repeating + the current disposed image of the last frame.
    remove-dupsRemove (and merge time delays) of duplicate consecutive + images, so as to simplify layer overlays of coalesced animations. +
    Usually this a result of using a constant time delay + across the whole animation, or after a larger animation was split into + smaller sub-animations. The duplicate frames could also have been + used as part of some frame optimization methods.
    remove-zeroRemove any image with a zero time delay, unless ALL the + images have a zero time delay (and is not a proper timed animation, a + warning is then issued).
    In a GIF animation, such images are usually frames which + provide partial intermediary updates between the frames that are + actually displayed to users. These frames are usually added for + improved frame optimization in GIF animations.
    trim-boundsFind the bounds of all the images in the current + image sequence, then adjust the offsets so all images are contained on + a minimal positive canvas. None of the image data is modified or + merged, only the individual image virtual canvas size and offset. + All the images is given the same canvas size, and and will have + a positive offset, but will remain in the same position relative to + each other. As a result of the minimal canvas size at least one image + will touch every edge of that canvas. The image data touching those + edges however may be transparent.
    The result is much like if you used 'merge' followed by a + +repage option, except that all the images + have been kept separate. If 'flatten' is used after using + 'trim-bounds' you will get the same result.
    + +

    To print a complete list of layer types, use -list layers.

    + +

    The operators -coalesce, -deconstruct, -flatten, and -mosaic are only aliases for the above methods and may be depreciated in +the future. Also see -page, -repage operators, the -compose setting, and the +GIF -dispose and -delay +settings.

    + + +
    +

    -level black_point{,white_point}{%}{,gamma}

    +
    + +

    adjust the level of image channels.

    + +

    Given one, two or three values delimited with commas: black-point, +white-point, gamma (for example: 10,250,1.0 or 2%,98%,0.5). The black and +white points range from 0 to QuantumRange, or from 0 to +100%; if the white point is omitted it is set to (QuantumRange - black_point), so as to center contrast changes. +If a % sign is present anywhere in the string, both black and white +points are percentages of the full color range. Gamma will do a -gamma adjustment of the values. If it is omitted, the +default of 1.0 (no gamma correction) is assumed.

    + +

    In normal usage (-level) the image values are stretched so that +the given 'black_point' value in the original image is set to zero +(or black), while the given 'white_point' value is set to QuantumRange (or white). This provides you with direct +contrast adjustments to the image. The 'gamma' of the resulting +image will then be adjusted.

    + +

    From ImageMagick v6.4.1-9 using the plus form of the operator +(+level) or adding the special '!' flag anywhere in the argument +list, will cause the operator to do the reverse of the level adjustment. That +is a zero, or QuantumRange value (black, and white, resp.) +in the original image, is adjusted to the given level values, allowing you to +de-contrast, or compress the channel values within the image. The +'gamma' is adjusted before the level adjustment to de-contrast the +image is made.

    + +

    Only the channels defined by the current -channel +setting are adjusted (defaults to RGB color channels only), allowing you to +limit the effect of this operator.

    + +

    Please note that the transparency channel is treated as 'matte' +values (0 is opaque) and not as 'alpha' values (0 is transparent).

    + + +
    +

    -level-colors {black_color}{,}{white_color}

    +
    + +

    adjust the level of an image using the provided dash separated colors.

    + +

    This function is exactly like -level, except that the +value value for each color channel is determined by the +'black_color' and 'white_color' colors given (as +described under the -fill option).

    + +

    This effectively means the colors provided to -level-colors +is mapped to become 'black' and 'white' respectively, with all the other +colors linearly adjusted (or clipped) to match that change. Each channel is +adjusted separately using the channel values of the colors specified.

    + +

    On the other hand the plus form of the operator (+level-colors) +will map the image color 'black' and 'white' to the given colors +respectively, resulting in a gradient (de-contrasting) tint of the image to +those colors. This can also be used to convert a plain grayscale image into a +one using the gradient of colors specified.

    + +

    By supplying a single color with a comma separator either before or after +that color, will just replace the respective 'black' or 'white' point +respectively. But if no comma separator is provided, the given color is +used for both the black and white color points, making the operator either +threshold the images around that color (- form) or set all colors to that +color (+ form).

    + + +
    +

    -limit type value

    +
    + +

    Set the pixel cache resource limit.

    + +

    Choose from: width, height, area, memory, map, disk, file, thread, throttle, or time.

    + +

    The value for file is in number of files. The other limits are +in bytes. Define arguments for the memory, map, area, and disk resource limits +with SI prefixes (.e.g 100MB).

    + +

    By default the limits are 768 files, 3GB of image area, 1.5GiB memory, 3GiB +memory map, and 18.45EB of disk. These limits are adjusted relative to the +available resources on your computer if this information is available. When +any limit is reached, ImageMagick fails in some fashion but attempts to take +compensating actions, if possible. For example, the following limits +memory:

    + +
    -limit memory 32MiB -limit map 64MiB
    +
    + +

    Use -list resource to list the current limits. For example, our system shows these limits:

    + +
    -> identify -list resource
    +Resource limits:
    +  Width: 100MP
    +  Height: 100MP
    +  Area: 25.181GB
    +  Memory: 11.726GiB
    +  Map: 23.452GiB
    +  Disk: unlimited
    +  File: 768
    +  Thread: 12
    +  Throttle: 0
    +  Time: unlimited
    +
    + +

    Requests for pixel storage to keep intermediate images are satisfied by one +of three resource categories: in-memory pool, memory-mapped files pool, and +disk pool (in that order) depending on the ‑limit settings +and whether the system honors a resource request. If the total size of +allocated pixel storage in the given pool reaches the corresponding limit, the +request is passed to the next pool. Additionally, requests that exceed the +area limit automagically are allocated on disk.

    + +

    To illustrate how ImageMagick utilizes resource limits, consider a typical +image resource request. First, ImageMagick tries to allocate the pixels in +memory. The request might be denied if the resource request exceeds the +memory limit or if the system does not honor the request. If +a memory request is not honored, the pixels are allocated to disk and the file +is memory-mapped. However, if the allocation request exceeds the +map limit, the resource allocation goes to disk. In all cases, if +the resource request exceeds the area limit, the pixels are +automagically cached to disk. If the disk has a hard limit, the program +fails.

    + +

    In most cases you simply do not need to concern yourself with resource +limits. ImageMagick chooses reasonable defaults and most images do not tax +your computer resources. Where limits do come in handy is when you process +images that are large or on shared systems where ImageMagick can consume all +or most of the available memory. In this case, the ImageMagick workflow slows +other processes or, in extreme cases, brings the system to a halt. Under +these circumstances, setting limits give some assurances that the ImageMagick +workflow will not interfere with other concurrent uses of the computer. For +example, assume you have a web interface that processes images uploaded from +the Internet. To assure ImageMagick does not exceed 10MiB of memory you can +simply set the area limit to 10MiB:

    + +
    -limit area 10MB
    +
    + +

    Now whenever a large image is processed, the pixels are automagically +cached to disk instead of memory. This of course implies that large images +typically process very slowly, simply because pixel processing in memory can +be an order of magnitude faster than on disk. Because your web site users +might inadvertently upload a huge image to process, you should set a disk +limit as well:

    + +
    -limit area 10MB -limit disk 500MB
    +
    + +

    Here ImageMagick stops processing if an image requires more than 500MB of disk storage.

    + +

    In addition to command-line resource limit option, resources can be set +with environment variables. Set the +environment variables MAGICK_AREA_LIMIT, +MAGICK_DISK_LIMIT, MAGICK_FILE_LIMIT, +MAGICK_MEMORY_LIMIT, MAGICK_MAP_LIMIT, +MAGICK_THREAD_LIMIT, MAGICK_TIME_LIMIT for limits of +image area, disk space, open files, heap memory, memory map, number of threads +of execution, and maximum elapsed time in seconds respectively.

    + +

    Inquisitive users can try adding -debug cache to +their commands and then scouring the generated output for references to the +pixel cache, in order to determine how the pixel cache was allocated and how +resources were consumed. Advanced Unix/Linux users can pipe that output +through grep memory|open|destroy|disk for more readable sifting. +

    + +

    For more about ImageMagick's use of resources, see the section Cache +Storage and Resource Requirements on the Architecture page.

    + +
    +

    -linear-stretch black-point
    -linear-stretch black-point{xwhite-point}{%}

    +
    + +

    Linear with saturation stretch.

    + +

    This is very similar to -contrast-stretch, +and uses a 'histogram bin' to determine the range of color values that needs to +be stretched. However it then stretches those colors using the -level operator.

    + +

    As such while the initial determination may have 'binning' round off +effects, the image colors are stretched mathematically, rather than using the +histogram bins. This makes the operator more accurate.

    + +

    note however that a -linear-stretch of +'0' does nothing, while a value of '1' does a near +perfect stretch of the color range.

    + +

    See also -auto-level for a 'perfect' +normalization of mathematical images.

    + +

    This operator is under review for re-development.

    + + +
    +

    -linewidth

    +
    + +

    the line width for subsequent draw operations.

    + +
    +

    -liquid-rescale geometry

    +
    + +

    rescale image with seam-carving.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +
    +

    -list type

    +
    + +

    Print a list of supported arguments for various options or settings. Choose from these list types:

    + +
    
    +Align
    +Alpha
    +Boolean
    +Cache
    +Channel
    +Class
    +ClipPath
    +Coder
    +Color
    +Colorspace
    +Command
    +Complex
    +Compose
    +Compress
    +Configure
    +DataType
    +Debug
    +Decoration
    +Delegate
    +Direction
    +Dispose
    +Distort
    +Dither
    +Endian
    +Evaluate
    +FillRule
    +Filter
    +Font
    +Format
    +Function
    +Gravity
    +Intensity
    +Intent
    +Interlace
    +Interpolate
    +Kernel
    +Layers
    +LineCap
    +LineJoin
    +List
    +Locale
    +LogEvent
    +Log
    +Magic
    +Method
    +Metric
    +Mime
    +Mode
    +Morphology
    +Module
    +Noise
    +Orientation
    +PixelIntensity
    +Policy
    +PolicyDomain
    +PolicyRights
    +Preview
    +Primitive
    +QuantumFormat
    +Resource
    +SparseColor
    +Statistic
    +Storage
    +Stretch
    +Style
    +Threshold
    +Type
    +Units
    +Validate
    +VirtualPixel
    +
    + +

    These lists vary depending on your version of ImageMagick. Use "-list +list" to get a complete listing of all the "-list" arguments +available:

    + +
    identify -list list
    +
    + +
    +

    -log string

    +
    + +

    Specify format for debug log.

    + +

    This option specifies the format for the log printed when the -debug option is active.

    + +

    You can display the following components by embedding special format +characters:

    + +
    +
    %d
    domain
    +
    %e
    event
    +
    %f
    function
    +
    %l
    line
    +
    %m
    module
    +
    %p
    process ID
    +
    %r
    real CPU time
    +
    %t
    wall clock time
    +
    %u
    user CPU time
    +
    %%
    percent sign
    +
    \n
    newline
    +
    \r
    carriage return
    +
    + +

    For example:

    + +
    convert -debug coders -log "%u %m:%l %e" in.gif out.png
    +
    + +

    The default behavior is to print all of the components.

    + +
    +

    -loop iterations

    +
    + +

    add Netscape loop extension to your GIF animation.

    + +

    Set iterations to zero to repeat the animation an infinite number of times, +otherwise the animation repeats itself up to iterations +times.

    + +
    +

    -lowlight-color color

    +
    + +

    when comparing images, de-emphasize pixel differences with this color.

    + +
    +

    -magnify

    +
    + +

    double the size of the image with pixel art scaling.

    + + +
    +

    -map type

    +
    + +

    Display image using this type.

    + +

    Choose from these Standard Colormap types:

    + +
    best
    +default
    +gray
    +red
    +green
    +blue
    +
    + +

    The X server must support the Standard +Colormap you choose, otherwise an error occurs. Use list as +the type and display searches the list of colormap types in +top-to-bottom order until one is located. See xstdcmap(1) for one way of creating Standard Colormaps.

    + + +
    +

    -map components

    +
    + +

    pixel map.

    + +

    Here are the valid components of a map:

    + +
    +
    r
    red pixel component
    +
    g
    green pixel component
    +
    b
    blue pixel component
    +
    a
    alpha pixel component (0 is transparent)
    +
    o
    opacity pixel component (0 is opaque)
    +
    i
    grayscale intensity pixel component
    +
    c
    cyan pixel component
    +
    m
    magenta pixel component
    +
    y
    yellow pixel component
    +
    k
    black pixel component
    +
    p
    pad component (always 0)
    +
    + +

    You can specify as many of these components as needed in any order (e.g. +bgr). The components can repeat as well (e.g. rgbr).

    + + +
    +

    -mattecolor color

    +
    + +

    Specify the color to be used with the -frame option.

    + +

    The color is specified using the format described under the -fill option.

    + +

    The default matte color is #BDBDBD, this shade of gray.

    + +
    +

    -maximum

    +
    + +

    return the maximum intensity of an image sequence.

    + +

    Select the 'maximum' value from all the surrounding pixels.

    + +

    This is legacy option from the method of the same +name.

    + +
    +

    -median geometry

    +
    + +

    apply a median filter to the image.

    + +

    Select the 'middle' value from all the surrounding pixels.

    + +

    This is legacy option from the method of the same +name.

    + +
    +

    -mean-shift widthxheight{+distance{%}

    +
    + +

    image noise removal and color reduction/segmentation (e.g. -mean-shift 7x7+10%).

    + +

    widthxheight is the window size and distance is the color distance measured in the range 0 to 1 or 0 to 100%

    + +

    The mean shift algorithm is iterative and thus slower the larger the window size. For each pixel, it gets all the pixels in the window centered at the pixel and excludes those that are outside the radius=sqrt((width-1)(height-1)/4) surrounding the pixel. From those pixels, it finds which of them are within the specified squared color distance from the current mean. It then computes a new x,y centroid from those coordinates and a new mean. This new x,y centroid is used as the center for a new window. This process is iterated until it converges and the final mean is then used to replace the original pixel value. It repeats this process for the next pixel, etc, until it processes all pixels in the image. Results are better when using other colorspaces rather than RGB. Recommend YIQ, YUV or YCbCr, which seem to give equivalent results.

    + +
    +

    -metric type

    +
    + +

    Output to STDERR a measure of the differences between images according to the type given metric.

    + +

    Choose from:

    + +
    +
    AE
    absolute error count, number of different pixels (-fuzz affected)
    +
    DSSIM
    structural dissimilarity index
    +
    FUZZ
    mean color distance
    +
    MAE
    mean absolute error (normalized), average channel error distance
    +
    MEPP
    mean error per pixel (normalized mean error, normalized peak error)
    +
    MSE
    mean error squared, average of the channel error squared
    +
    NCC
    normalized cross correlation
    +
    PAE
    peak absolute (normalized peak absolute)
    +
    PHASH
    perceptual hash for the sRGB and HCLp colorspaces. Specify an alternative colorspace with -define phash:colorspaces=colorspace,colorspace,...
    +
    PSNR
    peak signal to noise ratio
    +
    RMSE
    root mean squared (normalized root mean squared)
    +
    SSIM
    structural similarity index
    +
    + +

    Control the 'AE', or absolute count of pixels that are different, +with the -fuzz factor (ignore pixels which +only changed by a small amount). Use 'PAE' to find the +size of the -fuzz factor needed to make all pixels +'similar', while 'MAE' determines the factor needed +for about half the pixels to be similar.

    + +

    The MEPP metric returns three different metrics +('MAE', 'MAE' normalized, and 'PAE' +normalized) from a single comparison run.

    + +

    The SSIM and DSSIM metrics respect these defines: +-define compare:ssim-radius, -define compare:ssim-sigma, +-define compare:ssim-k1, and -define compare:ssim-k2.

    + +

    To print a complete list of metrics, use the -list +metric option.

    + + +
    +

    -minimum

    +
    + +

    return the minimum intensity of an image sequence.

    + +

    Select the 'minimal' value from all the surrounding pixels.

    + +

    This is legacy option from the method of the same +name.

    + + + +
    +

    -mode geometry

    +
    + +

    make each pixel the \'predominant color\' of the neighborhood.'

    + +
    +

    -mode value

    +
    + +

    Mode of operation.

    + +

    Choose the value from these styles: Frame, +Unframe, or Concatenate

    + +

    Use the -list option with a 'Mode' argument +for a list of -mode arguments available in your +ImageMagick installation.

    + + +
    +

    -modulate brightness[,saturation,hue]

    +
    + +

    Vary the brightness, saturation, and hue of an image.

    + +

    The arguments are given as a percentages of variation. A value of 100 means +no change, and any missing values are taken to mean 100.

    + +

    The brightness is a multiplier of the overall +brightness of the image, so 0 means pure black, 50 is half as bright, 200 is +twice as bright. To invert its meaning -negate the image +before and after.

    + +

    The saturation controls the amount of color in an +image. For example, 0 produce a grayscale image, while a large value such as +200 produce a very colorful, 'cartoonish' color.

    + +

    The hue argument causes a "rotation" of the colors +within the image by the amount specified. For example, 50 results in +a counter-clockwise rotation of 90, mapping red shades to purple, and so on. +A value of either 0 or 200 results in a complete 180 degree rotation of the +image. Using a value of 300 is a 360 degree rotation resulting in no change to +the original image.

    + +

    For example, to increase the color brightness by 20% and decrease the color +saturation by 10% and leave the hue unchanged, use -modulate 120,90.

    + +

    Use -set attribute of 'option:modulate:colorspace' to specify which colorspace to +modulate. Choose from HCL, HCLp, HSB, HSI, HSL (the default), HSV, HWB, or LCH (LCHuv). For example,

    + +
    convert image.png -set option:modulate:colorspace hsb -modulate 120,90 modulate.png
    +
    + +
    +

    -moments

    +
    + +

    report image moments and perceptual hash.

    + + +
    +

    -monitor

    +
    + +

    monitor progress.

    + + +
    +

    -monochrome

    +
    + +

    transform the image to black and white.

    + +
    +

    -morph frames

    +
    + +

    morphs an image sequence.

    + +

    Both the image pixels and size are linearly interpolated to give the +appearance of a metamorphosis from one image to the next, over all the images +in the current image list. The added images are the equivalent of a -blend composition. The frames +argument determine how many images to interpolate between each image.

    + + +
    +

    -morphology

    +

    -morphology method kernel

    +
    + +

    apply a morphology method to the image.

    + +

    Until I get around to writing an option summary for this, see IM Usage Examples, +Morphology.

    + + +
    +

    -mosaic

    +
    + +

    an simple alias for the -layers method "mosaic"

    + + +
    +

    -motion-blur radius
    -motion-blur radiusxsigma+angle

    +
    + +

    simulate motion blur.

    + +

    Blur with the given radius, standard deviation (sigma), and angle. The +angle given is the angle toward which the image is blurred. That is the +direction people would consider the object is coming from.

    + +

    Note that the blur is not uniform distribution, giving the motion a +definite sense of direction of movement.

    + +

    The -virtual-pixel setting will determine how +pixels which are outside the image proper are blurred into the final result. +

    + +
    +

    -name

    +
    + +

    name an image.

    +
    +

    -negate

    +
    + +

    replace each pixel with its complementary color.

    + +

    The red, green, and blue intensities of an image are negated. White becomes +black, yellow becomes blue, etc. Use +negate to only +negate the grayscale pixels of the image.

    + +
    +

    -noise geometry
    + +noise type

    +
    + +

    Add or reduce noise in an image.

    + +

    The principal function of noise peak elimination filter is to smooth the +objects within an image without losing edge information and without creating +undesired structures. The central idea of the algorithm is to replace a pixel +with its next neighbor in value within a pixel window, if this pixel has been +found to be noise. A pixel is defined as noise if and only if this pixel is +a maximum or minimum within the pixel window.

    + +

    Use -noise radius to +specify the width of the neighborhood when reducing noise. This is equivalent +to using a -statistic NonPeak operation, +which should be used in preference.

    + +

    Use +noise followed by a noise type to add noise to an image. Choose from these noise +types:

    + +
    Gaussian
    +Impulse
    +Laplacian
    +Multiplicative
    +Poisson
    +Random
    +Uniform
    +
    + +

    The amount of noise added can be controlled by the -attenuate setting. If unset the value is +equivalent to 1.0, or a maximum noise addition.

    + +

    Note that Random will replace the image with noise rather than add noise to the image. Use Uniform, if you wish to add random noise to the image.

    + +

    To print a complete list of noises, use the -list noise option.

    + +

    Also see the -evaluate noise functions that allows +the use of a controlling value to specify the amount of noise that should be +added to an image.

    + + +
    +

    -normalize

    +
    + +

    Increase the contrast in an image by stretching the range of intensity values.

    + +

    The intensity values are stretched to cover the entire range of possible +values. While doing so, black-out at most 2% of the pixels and +white-out at most 1% of the pixels.

    + +

    Note that as of ImageMagick 6.4.7-0, -normalize +is equivalent to -contrast-stretch 2%x1%. +(Before this version, it was equivalent to -contrast-stretch 2%x99%).

    + +

    All the channels are normalized in concert by the same amount so as to +preserve color integrity, when the default +channel +setting is in use. Specifying any other -channel +setting will normalize the RGB channels independently.

    + +

    See -contrast-stretch for more details. +Also see -auto-level for a 'perfect' normalization +that is better suited to mathematically generated images.

    + +

    This operator is under review for re-development.

    + + +
    +

    -opaque color

    +
    + +

    change this color to the fill color within the image.

    + +

    The color argument is defined using the format +described under the -fill option. The -fuzz setting can be used to match and replace colors similar to the one +given.

    + +

    Use +opaque to paint any pixel that does not match +the target color.

    + +

    The -transparent operator is exactly the same +as -opaque but replaces the matching color with +transparency rather than the current -fill color setting. +To ensure that it can do this it also ensures that the image has an alpha +channel enabled, as per "-alpha set", for +the new transparent colors, and does not require you to modify the -channel to enable alpha channel handling.

    + + +
    +

    -ordered-dither threshold_map{,level...}

    +
    + +

    dither the image using a pre-defined ordered dither threshold map specified, and a uniform color map with the +given number of levels per color channel.

    + +

    You can choose from these standard threshold maps:

    + +
    
    +threshold   1x1   Threshold 1x1 (non-dither)
    +checks      2x1   Checkerboard 2x1 (dither)
    +o2x2        2x2   Ordered 2x2 (dispersed)
    +o3x3        3x3   Ordered 3x3 (dispersed)
    +o4x4        4x4   Ordered 4x4 (dispersed)
    +o8x8        8x8   Ordered 8x8 (dispersed)
    +h3x4a       4x1   Halftone 4x4 (angled)
    +h6x6a       6x1   Halftone 6x6 (angled)
    +h8x8a       8x1   Halftone 8x8 (angled)
    +h3x4o             Halftone 4x4 (orthogonal)
    +h6x6o             Halftone 6x6 (orthogonal)
    +h8x8o             Halftone 8x8 (orthogonal)
    +h36x16o           Halftone 16x16 (orthogonal)
    +c5x5b       c5x5  Circles 5x5 (black)
    +c5x5w             Circles 5x5 (white)
    +c6x6b       c6x6  Circles 6x6 (black)
    +c6x6w             Circles 6x6 (white)
    +c7x7b       c7x7  Circles 7x7 (black)
    +c7x7w             Circles 7x7 (white)
    +
    + +

    The threshold generated a simple 50% threshold of the image. +This could be used with level to do the equivalent of -posterize to reduce an image to basic primary colors. +

    + +

    The checks pattern produces a 3 level checkerboard dither +pattern. That is a grayscale will become a pattern of solid black, solid +white, and mid-tone colors into a checkerboard pattern of black and white. +

    + +

    You can define your own threshold map for ordered +dithering and halftoning your images, in either personal or system +thresholds.xml XML file. See Resources +for more details of configuration files.

    + +

    To print a complete list of the thresholds that have been defined, use the +-list threshold option.

    + +

    Note that at this time the same threshold dithering map is used for all +color channels, no attempt is made to offset or rotate the map for different +channels is made, to create an offset printing effect. Also as the maps are +simple threshold levels, the halftone and circle maps will create incomplete +circles along the edges of a colored area. Also all the effects are purely +on/off boolean effects, without anti-aliasing to make the circles smooth +looking. Large dots can be made to look better with a small amount of blurring +after being created.

    + + +
    +

    -orient image orientation

    +
    + +

    specify orientation of a digital camera image.

    + +

    Choose from these orientations:

    + +
    bottom-left    right-top
    +bottom-right   top-left
    +left-bottom    top-right
    +left-top       undefined
    +right-bottom
    +
    + +

    To print a complete list of orientations, use the -list +orientation option.

    + + +
    +

    -page geometry
    + -page media[offset][{^!<>}]
    + +page +

    +
    + +

    Set the size and location of an image on the larger virtual canvas.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +

    For convenience you can specify the page size using media (see below). Offsets can then be added as with other +geometry arguments (e.g. -page Letter+43+43).

    + +

    Use media as shorthand to specify the dimensions (widthxheight) of the PostScript page in dots per inch or a TEXT page in pixels. +The choices for a PostScript page are:

    + +
    +
    11x17
    792 x 1224
    +
    Ledger
    1224 x 792
    +
    Legal
    612 x 1008
    +
    Letter
    612 x 792
    +
    LetterSmall
    612 x 792
    +
    ArchE
    2592 x 3456
    +
    ArchD
    1728 x 2592
    +
    ArchC
    1296 x 1728
    +
    ArchB
    864 x 1296
    +
    ArchA
    648 x 864
    +
    A0
    2380 x 3368
    +
    A1
    1684 x 2380
    +
    A2
    1190 x 1684
    +
    A3
    842 x 1190
    +
    A4
    595 x 842
    +
    A4Small
    595 x 842
    +
    A5
    421 x 595
    +
    A6
    297 x 421
    +
    A7
    210 x 297
    +
    A8
    148 x 210
    +
    A9
    105 x 148
    +
    A10
    74 x 105
    +
    B0
    2836 x 4008
    +
    B1
    2004 x 2836
    +
    B2
    1418 x 2004
    +
    B3
    1002 x 1418
    +
    B4
    709 x 1002
    +
    B5
    501 x 709
    +
    C0
    2600 x 3677
    +
    C1
    1837 x 2600
    +
    C2
    1298 x 1837
    +
    C3
    918 x 1298
    +
    C4
    649 x 918
    +
    C5
    459 x 649
    +
    C6
    323 x 459
    +
    Flsa
    612 x 936
    +
    Flse
    612 x 936
    +
    HalfLetter
    396 x 612
    +
    + +

    This option is also used to place subimages when writing to a multi-image +format that supports offsets, such as GIF89 and MNG. When used for this +purpose the offsets are always measured from the top left corner of the canvas +and are not affected by the -gravity option. To +position a GIF or MNG image, use -page{+-}x{+-}y (e.g. -page +100+200). When writing to a MNG +file, a -page option appearing ahead of the first image in +the sequence with nonzero width and height defines the width and height values +that are written in the MHDR chunk. Otherwise, the MNG width and +height are computed from the bounding box that contains all images in the +sequence. When writing a GIF89 file, only the bounding box method is used to +determine its dimensions.

    + +

    For a PostScript page, the image is sized as in -geometry but positioned relative to the lower +left-hand corner of the page by {+-}xoffset{+-}y offset. Use -page 612x792, for example, to center the image within the +page. If the image size exceeds the PostScript page, it is reduced to fit the +page. The default gravity for the -page option is NorthWest, i.e., positive x and y offset are measured rightward and downward from the top left +corner of the page, unless the -gravity option is +present with a value other than NorthWest.

    + +

    The default page dimensions for a TEXT image is 612x792.

    + +

    This option is used in concert with -density.

    + +

    Use +page to remove the page settings for an image.

    + +
    +

    -paint radius

    +
    + +

    simulate an oil painting.

    + +

    Each pixel is replaced by the most frequent color in a circular +neighborhood whose width is specified with radius.

    + +
    +

    -path path

    + +

    write images to this path on disk.

    + +
    +

    -pause seconds

    +
    + +

    Pause between animation loops

    + +

    Pause for the specified number of seconds before repeating the animation.

    + +
    +

    -pause seconds

    +
    + +

    Pause between snapshots.

    + +

    Pause for the specified number of seconds before taking the next snapshot.

    + +
    +

    -perceptible epsilon

    +
    + +

    set each pixel whose value is less than |epsilon| to -epsilon or epsilon (whichever is closer) otherwise the pixel value remains unchanged.

    + +
    +

    -ping

    +
    + +

    efficiently determine image characteristics.

    + +
    +

    -pointsize value

    +
    + +

    pointsize of the PostScript, OPTION1, or TrueType font.

    + +
    +

    -polaroid angle

    +
    + +

    simulate a Polaroid picture.

    + +

    Use +polaroid to rotate the image at a random angle between -15 and +15 degrees.

    + +
    +

    -poly "wt,exp ..."

    +
    + +

    combines multiple images according to a weighted sum of polynomials; one floating point weight (coefficient) and one floating point polynomial exponent (power) for each image expressed as comma separated pairs.

    + +

    The weights should typically be fractions between -1 and 1. But the sum of weights should be 1 or at least between 0 and 1 to avoid clamping in non-hdri mode at black and white.

    + +

    The exponents may be positive, negative or zero. A negative exponent is equivalent to 1 divided by the image raised to the corresponding positive exponent. A zero exponent always produces 1 scaled by quantumrange to white, i.e. wt*white, no matter what the image.

    + +

    The format is: output = wt1*image1^exp1 + wt2*image2^exp2 ...

    + +

    Some simple uses are:

    +
      +
    • A weighted sum of each image provided all weights add to unity and all exponents=1. If the the weights are all equal to 1/(number of images), then this is equivalent to -evaluate-sequence mean.
    • +
    • The sum of squares of two or more images, provided the weights are equal (and sum to 1 to avoid clamping) and the exponents equal 2.
    • +
    + +

    Note that one may add a constant color to the expression simply by using xc:somecolor for one of the images and specifying the desired weight and exponent equal to 0.

    + +

    Similarly one may add white to the expression by simply using null: (or xc:white) for one of the images with the appropriate weight and exponent equal to 0.

    + + +
    +

    -posterize levels

    +
    + +

    reduce the image to a limited number of color levels per channel.

    + +

    Very low values of levels, e.g., 2, 3, 4, have the most +visible effect.

    + +
    +

    -precision value

    +
    + +

    set the maximum number of significant digits to be printed.

    + +
    +

    -preview type

    +
    + +

    image preview type.

    + +

    Use this option to affect the preview operation of an image (e.g. +convert file.png -preview Gamma Preview:gamma.png). Choose from +these previews:

    + +
    
    +AddNoise
    +Blur
    +Brightness
    +Charcoal
    +Despeckle
    +Dull
    +EdgeDetect
    +Gamma
    +Grayscale
    +Hue
    +Implode
    +JPEG
    +OilPaint
    +Quantize
    +Raise
    +ReduceNoise
    +Roll
    +Rotate
    +Saturation
    +Segment
    +Shade
    +Sharpen
    +Shear
    +Solarize
    +Spiff
    +Spread
    +Swirl
    +Threshold
    +Wave
    +
    + +

    To print a complete list of previews, use the -list preview option.

    + +

    The default preview is JPEG.

    + +
    +

    -print string

    +
    + +

    interpret string and print to console.

    + +
    +

    -process command

    +
    + +

    process the image with a custom image filter.

    + +

    The command arguments has the form "module arg1 arg2 arg3 ... +argN" where module is the name of the module to invoke (e.g. +"Analyze") and arg1 arg2 arg3 ... argN are an arbitrary number of arguments to +pass to the process module.

    + +
    +

    -profile filename
    + +profile profile_name

    +
    + +

    Manage ICM, IPTC, or generic profiles in an image.

    + +

    Using -profile filename adds an +ICM (ICC color management), IPTC (newswire information), or a generic profile +to the image.

    + +

    Use +profile profile_name to +remove the indicated profile. ImageMagick uses standard filename globbing, so +wildcard expressions may be used to remove more than one profile. Here we +remove all profiles from the image except for the XMP profile: +profile +"!xmp,*".

    + +

    Use identify -verbose to find out which profiles are in the +image file. Use -strip to remove all profiles (and +comments).

    + +

    To extract a profile, the -profile option is not +used. Instead, simply write the file to an image format such as APP1, 8BIM, ICM, or IPTC.

    + +

    For example, to extract the Exif data (which is stored in JPEG files in the +APP1 profile), use.

    + +
    convert cockatoo.jpg profile.exif
    +
    + +

    It is important to note that results may depend on whether or not the +original image already has an included profile. Also, keep in mind that -profile is an "operator" (as opposed to a "setting") and +therefore a conversion is made each time it is encountered, in order, in the +command-line. For instance, in the following example, if the original image is +CMYK with profile, a CMYK-CMYK-RGB conversion results.

    + +
    convert CMYK.tif -profile "CMYK.icc" -profile "RGB.icc" RGB.tiff
    +
    + +

    Furthermore, since ICC profiles are not necessarily symmetric, extra +conversion steps can yield unwanted results. CMYK profiles are often very +asymmetric since they involve 3−>4 and 4−>3 channel mapping. +

    + +
    +

    -quality value

    +
    + +

    JPEG/MIFF/PNG compression level.

    + +

    For the JPEG and MPEG image formats, quality is 1 (lowest image quality and +highest compression) to 100 (best quality but least effective compression). +The default is to use the estimated quality of your input image if it can +be determined, otherwise 92. When the quality is greater than 90, then the +chroma channels are not downsampled. +Use the -sampling-factor option to specify the +factors for chroma downsampling.

    + +

    For the JPEG-2000 image format, quality is mapped using a non-linear +equation to the compression ratio required by the Jasper library. This +non-linear equation is intended to loosely approximate the quality provided by +the JPEG v1 format. The default quality value 100, a request for non-lossy +compression. A quality of 75 results in a request for 16:1 compression.

    + +

    For the MNG and PNG image formats, the quality value sets the zlib +compression level (quality / 10) and filter-type (quality % 10). The default +PNG "quality" is 75, which means compression level 7 with adaptive PNG +filtering, unless the image has a color map, in which case it means +compression level 7 with no PNG filtering.

    + +

    For compression level 0 (quality value less than 10), the Huffman-only +strategy is used, which is fastest but not necessarily the worst +compression.

    + +

    If filter-type is 4 or less, the specified PNG filter-type is used for +all scanlines:

    + +
    +
    0
    none
    +
    1
    sub
    +
    2
    up
    +
    3
    average
    +
    4
    Paeth
    +
    + +

    If filter-type is 5, adaptive filtering is used when quality is greater +than 50 and the image does not have a color map, otherwise no filtering is +used.

    + +

    If filter-type is 6, adaptive filtering +with minimum-sum-of-absolute-values is used.

    + +

    Only if the output is MNG, if filter-type is 7, the LOCO color +transformation (intrapixel differencing) and adaptive filtering +with minimum-sum-of-absolute-values are used.

    + +

    If the filter-type is 8 the zlib Z_RLE compression strategy (or the +Z_HUFFMAN_ONLY strategy, when compression level is 0) is used with +adaptive PNG filtering.

    + +

    If the filter-type is 9 the zlib Z_RLE compression strategy (or the +Z_HUFFMAN_ONLY strategy, when compression level is 0) is used with +no PNG filtering.

    + +

    The quality setting has no effect on the appearance or signature of PNG +and MNG images, since the compression is always lossless.

    + +

    Not all combinations of compression level, strategy, and PNG filter type +can be obtained using the -quality option. For more precise control, +you can use the PNG:compression-level=N, PNG:compression-strategy=N, and +PNG:compression-filter=N defines, respectively, instead. +See -define. Values from the defines take precedence +over values from the -quality option.

    + +

    For further information, see +the PNG specification.

    + +

    For the MIFF and TIFF image formats, quality/10 is the Zip/BZip compression level, which is 0 (worst but fastest compression) to 9 (best but slowest). It has no effect on the image appearance, since the compression is always lossless.

    + +

    For the BPG image format, quality/2 is the actual BPG compression level (range from 0 to 51).

    + +
    +

    -quantize colorspace

    +
    + +

    reduce colors using this colorspace.

    + +

    This setting defines the colorspace used to sort out and reduce the number +of colors needed by an image (for later dithering) by operators such as -colors, Note that color reduction also happens +automatically when saving images to color-limited image file formats, such as +GIF, and PNG8.

    + + +
    +

    -quiet

    +
    + +

    suppress all warning messages. Error messages are still reported.

    + +
    +

    -radial-blur angle

    +
    + +

    Blur around the center of the image.

    + +

    Note that this is actually a rotational blur rather than a radial and as +such actually mis-named.

    + +

    The -virtual-pixel setting will determine how +pixels which are outside the image proper are blurred into the final result. +

    + + +
    +

    -raise thickness

    +
    + +

    Lighten or darken image edges.

    + +

    This will create a 3-D effect. Use -raise to create +a raised effect, otherwise use +raise.

    + +

    Unlike the similar -frame option, -raise does not alter the dimensions of the image.

    + +
    +

    -random-threshold lowxhigh

    +
    + +

    Apply a random threshold to the image.

    + +
    +

    -read-mask +filename

    +
    + +

    Prevent updates to image pixels specified by the mask.

    + +

    This the same as using a mask used for composite masking operations, with +grayscale values causing blended updates of the image the mask is attached to. +

    + +

    Use +read-mask to remove the mask from images.

    + +

    Also see -clip-mask which work in the same way, +but with strict boolean masking.

    + +
    +

    -red-primary x,y

    +
    + +

    Set the red chromaticity primary point.

    + +
    +

    -regard-warnings

    +
    + +

    Pay attention to warning messages.

    + +

    This option causes some warnings in some image formats to be treated +as errors.

    + +
    +

    -remap filename

    +
    + +

    Reduce the number of colors in an image to the colors used by this image.

    + +

    If the -dither setting is enabled (the default) then +the given colors are dithered over the image as necessary, otherwise the closest +color (in RGB colorspace) is selected to replace that pixel in the image.

    + +

    As a side effect of applying a -remap of colors across all +images in the current image sequence, all the images will have the same color +table. That means that when saved to a file format such as GIF, it will use +that color table as a single common or global color table, for all the images, +without requiring extra local color tables.

    + +

    Use +remap to reduce all images in the current image +sequence to use a common color map over all the images. This equivalent to +appending all the images together (without extra background colors) and color +reducing those images using -colors with a 256 color +limit, then -remap those colors over the original list of +images. This ensures all the images follow a single color map.

    + +

    If the number of colors over all the images is less than 256, then +remap should not perform any color reduction or dithering, as +no color changes are needed. In that case, its only effect is to force the use +of a global color table. This recommended after using either -colors or -ordered-dither to +reduce the number of colors in an animated image sequence.

    + +

    Note, the remap image colormap has at most 8-bits of precision. Deeper color maps are automagically coalesced with other colors to meet this requirement.

    + +
    +

    -region geometry

    +
    + +

    Set a region in which subsequent operations apply.

    + +

    The x and y offsets are treated +in the same manner as in -crop.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +

    Use +region to remove any previously set regions.

    + +
    +

    -remote

    +
    + +

    perform a remote operation.

    + +

    The only command recognized is the name of an image file to load.

    + +

    If you have more than one display application +running simultaneously, use the window option to +specify which application to control.

    + +
    +

    -render

    +
    + +

    render vector operations.

    + +

    Use +render to turn off rendering vector operations. +This useful when saving the result to vector formats such as MVG or SVG.

    + +
    +

    -repage geometry

    +
    + +

    Adjust the canvas and offset information of the image.

    + +

    This option is like -page but acts as an image operator +rather than a setting. You can separately set the canvas size or the offset +of the image on that canvas by only providing those components.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +

    If a ! flag is given the offset given is added to the existing +offset to move the image relative to its previous position. This useful for +animation sequences.

    + +

    A given a canvas size of zero such as '0x0' forces it to +recalculate the canvas size so the image (at its current offset) will appear +completely on that canvas (unless it has a negative offset).

    + +

    Use +repage to completely remove/reset the virtual +canvas meta-data from the images.

    + +

    The -set 'page' option can be used to +directly assign virtual canvas meta-data.

    + + +
    +

    -resample horizontalxvertical

    +
    + +

    Resample image to specified horizontal and vertical resolution.

    + +

    Resize the image so that its rendered size remains the same as the original +at the specified target resolution. For example, if a 300 DPI image renders at +3 inches by 2 inches on a 300 DPI device, when the image has been resampled to +72 DPI, it will render at 3 inches by 2 inches on a 72 DPI device. Note that +only a small number of image formats (e.g. JPEG, PNG, and TIFF) are capable of +storing the image resolution. For formats which do not support an image +resolution, the original resolution of the image must be specified via -density on the command line prior to specifying the +resample resolution.

    + +

    Note that Photoshop stores and obtains image resolution from a proprietary +embedded profile. If this profile exists in the image, then Photoshop will +continue to treat the image using its former resolution, ignoring the image +resolution specified in the standard file header.

    + +
    +

    -resize geometry

    +
    + +

    Resize an image.

    + +

    See Image Geometry for complete details about the geometry argument. Offsets, if present in the geometry string, are +ignored, and the -gravity option has no effect.

    + +

    If the -filter option +or -define filter:option=value precedes the -resize option, the image is resized with the specified +filter.

    + +

    Many image processing algorithms assume your image is in a linear-light +coding. If your image is gamma-corrected, you can remove the nonlinear gamma +correction, apply the transform, then restore it like this:

    + +
    convert portrait.jpg -gamma .45455 -resize 25% -gamma 2.2  \
    +  -quality 92 passport.jpg
    +
    + +
    +

    -respect-parentheses

    +
    + +

    settings remain in effect until parenthesis boundary.

    + +
    +

    -reverse

    +
    + +

    Reverse the order of images in the current image list.

    + + +
    +

    -roll {+-}x{+-}y

    +
    + +

    roll an image vertically or horizontally by the amount given.

    + +

    A negative x offset rolls the image right-to-left. +A negative y offset rolls the image bottom-to-top.

    + + +
    +

    -rotate degrees{<}{>}

    +
    + +

    Apply Paeth image rotation (using shear operations) to the image.

    + +

    Use > to rotate the image only if its width exceeds the +height. < rotates the image only if its width is less +than the height. For example, if you specify -rotate "-90>" and +the image size is 480x640, the image is not rotated. However, if the image is +640x480, it is rotated by -90 degrees. If you use > or +<, enclose it in quotation marks to prevent it from being +misinterpreted as a file redirection.

    + +

    Empty triangles in the corners, left over from rotating the image, are +filled with the background color.

    + +

    See also the -distort operator and specifically the +'ScaleRotateTranslate' distort method.

    + + +
    +

    -sample geometry

    +
    + +

    minify / magnify the image with pixel subsampling and pixel replication, respectively.

    + +

    Change the image size simply by directly sampling the pixels original +from the image. When magnifying, pixels are replicated in blocks. When +minifying, pixels are sub-sampled (i.e., some rows and columns are skipped +over).

    + +

    The results are thus equivalent to using -resize with +a -filter setting of point (nearest +neighbor), though -sample is a lot faster, as it +avoids all the filter processing of the image. As such it completely ignores +the current -filter setting.

    + +

    The key feature of the -sample is that no new colors +will be added to the resulting image, though some colors may disappear.

    + +

    See Image Geometry for complete details about the geometry argument. Offsets, if present in the geometry string, are +ignored, unlike -resize.

    + + +

    The actual sampling point is the middle of the sub-region being sampled. +As such a single pixel sampling of an image will take the middle pixel, (or +top-left-middle if image has even dimensions). However the -define 'sample:offset' can be set to modify +this position some other location within each sub-region being sampled, as +a percentage offset.

    + +

    By default this value is '50' for the midpoint, but could be set +to '0' for top-left, '100' for bottom-right, or with +separate X and Y offsets such as '0x50' for left-middle edge of +sampling sub-region.

    + + +
    +

    -sampling-factor horizontal-factorxvertical-factor

    +
    + +

    sampling factors used by JPEG or MPEG-2 encoder and YUV decoder/encoder.

    + +

    This option specifies the sampling factors to be used by the JPEG encoder +for chroma downsampling. If this option is omitted, the JPEG library will use +its own default values. When reading or writing the YUV format and when +writing the M2V (MPEG-2) format, use -sampling-factor 2x1 or -sampling-factor 4:2:2 to specify the 4:2:2 +downsampling method.

    + +
    +

    -scale geometry

    +
    + +

    minify / magnify the image with pixel block averaging and pixel replication, respectively.

    + +

    Change the image size simply by replacing pixels by averaging pixels +together when minifying, or replacing pixels when magnifying.

    + +

    The results are thus equivalent to using -resize with +a -filter setting of box. Though it is a lot +faster, as it avoids all the filter processing of the image. As such it +completely ignores the current -filter setting.

    + +

    If when shrinking (minifying) images the original image is some integer +multiple of the new image size, the number of pixels averaged together to +produce the new pixel color is the same across the whole image. This is +a special case known as 'binning' and is often used as a method of reducing +noise in image such as those generated by digital cameras, especially in low +light conditions.

    + + +
    +

    -scene value

    +
    + +

    set scene number.

    + +

    This option sets the scene number of an image or the first image in an image sequence.

    + +
    +

    -screen

    +
    + +

    specify the screen to capture.

    + +

    This option indicates that the GetImage request used to obtain the image +should be done on the root window, rather than directly on the specified +window. In this way, you can obtain pieces of other windows that overlap the +specified window, and more importantly, you can capture menus or other popups +that are independent windows but appear over the specified window.

    + +
    +

    -seed

    +
    + +

    seed a new sequence of pseudo-random numbers

    + +
    +

    -segment cluster-thresholdxsmoothing-threshold

    +
    + +

    segment the colors of an image.

    + +

    Segment an image by analyzing the histograms of the color components and +identifying units that are homogeneous with the fuzzy c-means technique. This +is part of the ImageMagick color quantization routines.

    + +

    Specify cluster threshold as the number of pixels in +each cluster that must exceed the cluster threshold to be considered valid. +Smoothing threshold eliminates noise in the second +derivative of the histogram. As the value is increased, you can expect +a smoother second derivative. The default is 1.5.

    + +

    If the -verbose setting is defined, a detailed report +of the color clusters is returned.

    + + +
    +

    -selective-blur radius
    -selective-blur radiusxsigma{+threshold}

    +
    + +

    Selectively blur pixels within a contrast threshold.

    + +

    Blurs those pixels that are less than or equal to the threshold in +contrast. The threshold may be expressed as a fraction of QuantumRange or as a percentage.

    + +
    +

    -separate

    +
    + +

    separate an image channel into a grayscale image. Specify the channel with -channel.

    + +
    +

    -sepia-tone percent-threshold

    +
    + +

    simulate a sepia-toned photo.

    + +

    Specify threshold as the percent threshold of the intensity (0 - 99.9%).

    + +

    This option 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.

    + + + +
    +

    -set key value

    +

    +set key

    +
    + +

    sets image attributes and properties for images in the current image sequence.

    + +

    This will assign (or modify) specific settings attached to all the images +in the current image sequence. Using the +set form of the +option will either remove, or reset that setting to a default state, as +appropriate.

    + +

    For example, it will modify specific well known image meta-data +'attributes' such as those normally overridden by: the options -delay, -dispose, and -page, -colorspace; generally +assigned before the image is read in, by using a key of +the same name.

    + +

    If the given key does not match a specific known +'attribute ', such as shown above, the setting is stored as a a free form +'property' string. Such settings are listed in -verbose information ("info:" output format) as "Properties". +

    + +

    This includes string 'properties' that are set by and assigned to images +using the options -comment, -label, -caption. These options actually assign +a global 'artifact' which are automatically assigned (and any Format Percent +Escapes expanded) to images as they are read in. For example:

    + +
    -> convert rose: -set comment 'Rose is a rose is a rose is a rose' rose.png
    +identify -format %c rose.png
    +Rose is a rose is a rose is a rose
    +
    + +

    The set value can also make use of Format and Print Image +Properties in the defined value. For example:

    + +
    -> convert rose: -set origsize '%wx%h' -resize 50% \
    +  -format 'Old size = %[origsize]  New size = %wx%h' info:
    +Old size = 70x46  New size = 35x23
    +
    + +

    Other well known 'properties' that are available include: +'date:create' and 'date:modify' and +'signature'.

    + +

    The -repage operator will also allow you to modify +the 'page' attribute of an image for images already in memory (also +see -page). However it is designed to provide a finer +control of the sub-parts of this 'attribute'. The -set page +option will only provide a direct, unmodified assignment of 'page' +attribute.

    + +

    This option can also associate a colorspace or profile with your image. +For example,

    + +
    convert image.psd -set profile ISOcoated_v2_eci.icc image-icc.psd
    +
    + +

    Some 'properties' must be defined in a specific way to be used. For +example only 'properties' prefixed with "filename:" can be used to +modify the output filename of an image. For example

    + +
    convert rose: -set filename:mysize '%wx%h' 'rose_%[filename:mysize].png'
    +
    + +

    If the setting value is prefixed with "option:" the setting will +be saved as a global "Artifact" exactly as if it was set using the -define option. As such settings are global in scope, they +can be used to pass 'attributes' and 'properties' of one specific image, +in a way that allows you to use them in a completely different image, even if +the original image has long since been modified or destroyed. For example:

    + +
    convert rose:  -set option:rosesize '%wx%h' -delete 0 \
    +  label:'%[rosesize]'   label_size_of_rose.gif"
    +
    + +

    Note that Format Percent Escapes will only match +a 'artifact' if the given key does not match an existing +'attribute' or 'property'.

    + +

    You can set the attributes of the image registry by prefixing the value +with registry:.

    + +

    The -set profile option can also be used to inject +previously-formatted ancillary chunks into the output PNG file, using +the commandline option as shown below or by setting the profile via a +programming interface:

    + +
    convert in.png -set profile PNG-chunk-x:<filename> out.png
    +
    + +

    where x is a location flag and +filename is a file containing the chunk +name in the first 4 bytes, then a colon (":"), followed by the chunk data. +This encoder will compute the chunk length and CRC, so those must not +be included in the file.

    + +

    "x" can be "b" (before PLTE), "m" (middle, i.e., between PLTE and IDAT), +or "e" (end, i.e., after IDAT). If you want to write multiple chunks +of the same type, then add a short unique string after the "x" to prevent +subsequent profiles from overwriting the preceding ones, e.g.,

    + + +
    convert in.png -set profile PNG-chunk-b01:file01 \
    +  -profile PNG-chunk-b02:file02 out.png
    +
    + +
    +

    -shade azimuthxelevation

    +
    + +

    shade the image using a distant light source.

    + +

    Specify azimuth and elevation as +the position of the light source. Use +shade to return +the shading results as a grayscale image.

    + +
    +

    -shadow percent-opacity{xsigma}{+-}x{+-}y{%}

    +
    + +

    simulate an image shadow.

    + +
    +

    -shared-memory

    +
    + +

    use shared memory.

    + +

    This option specifies whether the utility should attempt to use shared +memory for pixmaps. ImageMagick must be compiled with shared memory support, +and the display must support the MIT-SHM extension. +Otherwise, this option is ignored. The default is True.

    + +
    +

    -sharpen radius
    -sharpen radiusxsigma

    +
    + +

    sharpen the image.

    + +

    Use a Gaussian operator of the given radius and standard deviation (sigma).

    + +
    +

    -shave geometry

    +
    + +

    Shave pixels from the image edges.

    + +

    The size portion of the geometry +argument specifies the width of the region to be removed from both sides of +the image and the height of the regions to be removed from top and bottom. +Offsets are ignored.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +
    +

    -shear Xdegrees[xYdegrees]

    +
    + +

    Shear the image along the x-axis and/or y-axis.

    + +

    The shear angles may be positive, negative, or zero. When Ydegrees is omitted it defaults to 0. When both angles are +given, the horizontal component of the shear is performed before the vertical +component.

    + +

    Shearing slides one edge of an image along the x-axis or y-axis (i.e., +horizontally or vertically, respectively),creating a parallelogram. The amount +of each is controlled by the respective shear angle. For horizontal shears, +Xdegrees is measured clockwise relative to "up" (the +negative y-axis), sliding the top edge to the right when 0°<Xdegrees<90° and to the left when 90°<Xdegrees<180°. For vertical shears Ydegrees is measured clockwise relative to "right" (the +positive x-axis), sliding the right edge down when 0°<Ydegrees<90° and up when 90°<Ydegrees<180°.

    + +

    Empty triangles left over from shearing the image are filled with the color +defined by the -background option. The color is specified +using the format described under the -fill option.

    + +

    The horizontal shear is performed before the vertical part. This is +important to note, since horizontal and vertical shears do not +commute, i.e., the order matters in a sequence of shears. For +example, the following two commands are not equivalent.

    + +
    convert logo: -shear 20x0 -shear 0x60 logo-sheared.png
    +convert logo: -shear 0x60 -shear 20x0 logo-sheared.png
    +
    + +

    The first of the two commands above is equivalent to the following, except +for the amount of empty space created; the command that follows generates +a smaller image, and so is a better choice in terms of time and space.

    + +
    convert logo: -shear 20x60 logo-sheared.png
    +
    + +
    +

    -sigmoidal-contrast contrastxmid-point

    +
    + +

    increase the contrast without saturating highlights or shadows.

    + +

    Increase the contrast of the image using a sigmoidal transfer function +without saturating highlights or shadows. Contrast +indicates how much to increase the contrast. For example, 0 is none, 3 is +typical and 20 is a lot. +

    + +

    The mid-point indicates where the maximum change +'slope' in contrast should fall in the resultant image (0 is white; 50% is +middle-gray; 100% is black).

    + +

    By default the image contrast is increased, use +sigmoidal-contrast to decrease the contrast.

    + +

    To achieve the equivalent of a sigmoidal brightness change (similar to +a gamma adjustment), you would use -sigmoidal-contrast +{brightness}x0% to increase brightness and +sigmoidal-contrast {brightness}x0% to decrease brightness. +Note the use of '0' fo rthe mid-point of the sigmoidal curve.

    + +

    Using a very high contrast will produce a sort of +'smoothed thresholding' of the image. Not as sharp (with high aliasing +effects) of a true threshold, but with tapered gray-levels around the threshold +mid-point.

    + +
    +

    -silent

    + + +
    + +

    operate silently. This option is only used +by the import tool.

    + +
    +

    -similarity-threshold value

    +
    + +

    minimum RMSE for subimage match.

    + +

    If this setting is used, then the search will stop as soon as it finds a match whose metric is less than or equal to the value. A partially filled second output image will result. Using a value of zero, will cause the search to stop at the first perfect match it finds. If this setting is left off, then the search will proceed to completion or as limited by -dissimilarity-threshold.

    + +
    +

    -size width[xheight][+offset]

    +
    + +

    set the width and height of the image.

    + +

    Use this option to specify the width and height of raw images whose +dimensions are unknown such as GRAY, RGB, or +CMYK. In addition to width and height, use -size with an offset to skip any header information in the +image or tell the number of colors in a MAP image file, (e.g. -size +640x512+256).

    + +

    For Photo CD images, choose from these sizes:

    + +
    192x128
    +384x256
    +768x512
    +1536x1024
    +3072x2048
    +
    + +
    +

    -sketch radius
    -sketch radiusxsigma+angle

    +
    + +

    simulate a pencil sketch.

    + +

    Sketch with the given radius, standard deviation (sigma), and angle. The +angle given is the angle toward which the image is sketched. That is the +direction people would consider the object is coming from.

    + +
    +

    -smush offset

    +
    + +

    appends an image sequence together ignoring transparency.

    + +

    Smush is a more flexible version of -append, joining the images in the sequence top-to-bottom (-smush) or left-to-right (+smush), with a gap between images according to the specified offset.

    + +

    If the offset is negative, images will overlap by that amount.

    + +

    -smush respects -gravity. Any empty space will be filled with the -background color.

    + +

    For zero offset and transparent images, the non-transparent parts of the two images will be aligned as close as possible without overlapping.

    + +
    +

    -snaps value

    +
    + +

    Set the number of screen snapshots.

    + +

    Use this option to grab more than one image from the X server screen, to create an animation sequence.

    + +
    +

    -solarize percent-threshold

    +
    + +

    negate all pixels above the threshold level.

    + +

    Specify factor as the percent threshold of the intensity (0 - 99.9%).

    + +

    This option produces a solarization effect seen when +exposing a photographic film to light during the development process.

    + +
    +

    -sparse-color method 'x,y color ...'

    +
    + +

    color the given image using the specified points of color, and filling the other intervening colors using the given methods.

    + + +
    +
    barycentric
    +
    three point triangle of color given 3 points. + Giving only 2 points will form a linear gradient between those points. + The gradient generated extends beyond the triangle created by those + 3 points.
    +
    bilinear
    +
    Like barycentric but for 4 points. Less than 4 points + fall back to barycentric.
    +
    voronoi
    +
    Simply map each pixel to the to nearest color point + given. The result are polygonal 'cells' of solid color.
    +
    manhattan
    +
    Like voronoi, but resulting polygonal 'cells' are mapped to a fixed coordinate system.
    +
    shepards
    +
    Colors points biased on the ratio of inverse distance + squared. Generating spots of color in a sea of the average of + colors.
    +
    inverse
    +
    Colors points biased on the ratio of inverse distance. + This generates sharper points of color rather than rounded spots of + 'shepards' Generating spots of color in a sea of the + average of colors.
    +
    + +

    The points are placed according to the images location on the virtual +canvas (-page or -repage +offset), and do not actually have to exist on the given image, but may be +some point beyond the edge of the image. All points are floating point values. +

    + +

    Only the color channels defined by the -channel are +modified, which means that by default matte/alpha transparency channel is not +affected. Typically transparency channel is turned off either before or after +the operation.

    + +

    Of course if some color points are transparent to generate a transparent +gradient, then the image also requires transparency enabled to store the +values.

    + +

    All the above methods when given a single point of color will replace all +the colors in the image with the color given, regardless of the point. This is +logical, and provides an alternative technique to recolor an image to some +default value.

    + + +
    +

    -splice geometry

    +
    + +

    Splice the current background color into the image.

    + +

    This will add rows and columns of the current -background color into the given image according to the +given -gravity geometry setting. See Image Geometry for complete details about the geometry argument. Essentially -splice will divide the +image into four quadrants, separating them by the inserted rows and columns. +

    + +

    If a dimension of geometry is zero no rows or columns will be added for that +dimension. Similarly using a zero offset with the appropriate -gravity setting will add rows and columns to the edges of +the image, padding the image only along that one edge. Edge padding is what -splice is most commonly used for.

    + +

    If the exact same geometry and -gravity is later used with -chop the +added added all splices removed.

    + +
    +

    -spread amount

    +
    + +

    displace image pixels by a random amount.

    + +

    The argument amount defines the size of the +neighborhood around each pixel from which to choose a candidate pixel to +blend.

    + +

    The lookup is controlled by the -interpolate setting.

    + +
    +

    -statistic type geometry

    +
    + +

    replace each pixel with corresponding statistic from the neighborhood.

    + +

    Choose from these statistic types:

    +
    +
    Gradient
    maximum difference (max - min) value in neighborhood
    +
    Maximum
    maximum value per channel in neighborhood
    +
    Minimum
    minimum value per channel in neighborhood
    +
    Mean
    average value per channel in neighborhood
    +
    Median
    median value per channel in neighborhood
    +
    Mode
    mode (most frequent) value per channel in neighborhood
    +
    Nonpeak
    value just before or after the median value per channel in neighborhood
    +
    RMS
    root mean square value per channel in neighborhood
    +
    StandardDeviation
    standard deviation value per channel in neighborhood
    +
    + +
    +

    -stegano offset

    +
    + +

    hide watermark within an image.

    + +

    Use an offset to start the image hiding some number of pixels from the +beginning of the image. Note this offset and the image size. You will need +this information to recover the steganographic image (e.g. display -size +320x256+35 stegano:image.png).

    + +
    +

    -stereo +x{+y}

    +
    + +

    composite two images to create a red / cyan stereo anaglyph.

    + +

    The left side of the stereo pair (second image) is saved as the red channel of the output image. The right side (first image) is saved as the green and blue channels. Red-green stereo glasses are required to properly view the stereo image.

    + +
    +

    -storage-type type

    +
    + +

    pixel storage type. Here are the valid types:

    + +
    +
    char
    unsigned characters
    +
    double
    doubles
    +
    float
    floats
    +
    integer
    integers
    +
    long
    longs
    +
    quantum
    pixels in the native depth of your ImageMagick distribution
    +
    short
    unsigned shorts
    +
    + +

    Float and double types are normalized from 0.0 to 1.0 otherwise the pixels +values range from 0 to the maximum value the storage type can support.

    + +
    +

    -stretch fontStretch

    +
    + +

    Set a type of stretch style for fonts.

    + +

    This setting suggests a type of stretch that ImageMagick should try to +apply to the currently selected font family. Select fontStretch from the following.

    + +
    Any
    +Condensed
    +Expanded
    +ExtraCondensed
    +ExtraExpanded
    +Normal
    +SemiCondensed
    +SemiExpanded
    +UltraCondensed
    +UltraExpanded
    +
    + +

    To print a complete list of stretch types, use -list +stretch.

    + +

    For other settings that affect fonts, see the options -font, -family, -style, and -weight.

    + +
    +

    -strip

    +
    + +

    strip the image of any profiles, comments or these PNG chunks: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.

    + +
    +

    -stroke color

    +
    + +

    color to use when stroking a graphic primitive.

    + +

    The color is specified using the format described under the -fill option.

    + +

    See -draw for further details.

    + +
    +

    -strokewidth value

    +
    + +

    set the stroke width.

    + +

    See -draw for further details.

    + +
    +

    -style fontStyle

    +
    + +

    Set a font style for text.

    + +

    This setting suggests a font style that ImageMagick should try to apply to +the currently selected font family. Select fontStyle from +the following.

    + +
    Any
    +Italic
    +Normal
    +Oblique
    +
    + +

    For other settings that affect fonts, see the options -font, -family, -stretch, and -weight.

    + +
    +

    -subimage-search

    +
    + +

    search for subimage.

    + +

    This option is required to have compare search for the best match location +of a small image within a larger image. This search will produce two images +(or two frames). The first is the "difference" image and the second will +be the "match score" image.

    + +

    The "match-score" image is smaller containing a pixel for ever possible +position of the top-left corner of the given sub-image. that is its size will +be the size of the larger_image - sub_image + 1. The brightest location in +this image is the location s the locate on the best match that is also +reported. Note that this may or may not be a perfect match, and the actual +brightness will reflect this. Other bright 'peaks' can be used to locate other +possible matching locations.

    + +

    Note that the search will try to compare the sub-image at every possible +location in the larger image, as such it can be very slow. The smaller the +sub-image the faster this search is.

    + + +
    +

    -swap index,index

    +
    + +

    Swap the positions of two images in the image sequence.

    + +

    For example, -swap 0,2 swaps the first and the third +images in the current image sequence. Use +swap to switch +the last two images in the sequence.

    + +
    +

    -swirl degrees

    +
    + +

    swirl image pixels about the center.

    + +

    Degrees defines the tightness of the swirl.

    + +
    +

    -synchronize

    +
    + +

    synchronize image to storage device.

    + +

    Set to "true" to ensure all image data is fully flushed and synchronized +to disk. There is a performance penalty, but the benefits include ensuring a +valid image file in the event of a system crash and early reporting if there +is not enough disk space for the image pixel cache.

    + +
    +

    -taint

    +
    + +

    Mark the image as modified.

    + +
    +

    -text-font name

    +
    + +

    font for writing fixed-width text.

    + +

    Specifies the name of the preferred font to use in fixed (typewriter style) +formatted text. The default is 14 point Courier.

    + +

    You can tag a font to specify whether it is a PostScript, TrueType, or +OPTION1 font. For example, Courier.ttf is a TrueType font and +x:fixed is OPTION1.

    + +
    +

    -texture filename

    +
    + +

    name of texture to tile onto the image background.

    + +
    +

    -threshold value{%}

    +
    + + + +

    Apply simultaneous black/white threshold to the image.

    + +

    Any pixel values (more specifically, those channels set using ‑channel) that exceed the specified threshold are reassigned the +maximum channel value, while all other values are assigned the minimum.

    + +

    The threshold value can be given as a percentage or as an absolute integer +value corresponding to the desired channel value. When given as an integer, +the minimum attainable value is 0 (corresponding to black when all channels +are affected), but the maximum value (corresponding to white) is that of the +quantum depth of the particular build of ImageMagick, and is +therefore dependent on the installation. For that reason, a reasonable +recommendation for most applications is to specify the threshold values as +a percentage.

    + +

    The following would force pixels with red values above 50% to have 100% +red values, while those at or below 50% red would be set to 0 in the red +channel. The green, blue, and alpha channels (if present) would be unchanged. +

    + +
    convert in.png -channel red -threshold 50% out.png
    +
    + +

    As (possibly) impractical but instructive examples, the following would +generate an all-black and an all-white image with the same dimensions as the +input image.

    + + +
    convert in.png -threshold 100% black.png
    +convert in.png -threshold -1 white.png
    +
    + +

    Note that the values of the transparency channel is treated as 'matte' +values (0 is opaque) and not as 'alpha' values (0 is transparent).

    + +

    See also ‑black‑threshold and ‑white‑threshold. +

    + +
    +

    -thumbnail geometry

    +
    + +

    Create a thumbnail of the image.

    + +

    This is similar to -resize, except it is optimized +for speed and any image profile, other than a color profile, is removed to +reduce the thumbnail size. To strip the color profiles as well, add -strip just before of after this option.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +
    +

    -tile filename

    +
    + +

    Set the tile image used for filling a subsequent graphic primitive.

    + +
    +

    -tile geometry

    +
    + +

    Specify the layout of images.

    + +

    See Image Geometry for complete details about the geometry argument.

    + +
    +

    -tile

    +
    + +

    Specifies that a subsequent composite operation is repeated across and down image.

    + +
    +

    -tile-offset {+-}x{+-}y

    +
    + +

    Specify the offset for tile images, relative to the background image it is tiled on.

    + +

    This should be set before the tiling image is set by -tile or -texture, or directly applied for +creating a tiled canvas using TILE: or PATTERN: input +formats.

    + +

    Internally ImageMagick does a -roll of the tile image +by the arguments given when the tile image is set.

    + +
    +

    -tint value

    +
    + +

    Tint the image with the fill color.

    + +

    Tint the image with the fill color.

    + +

    Specify the amount of tinting as a percentage. Pure colors like black, +white red, yellow, will not be affected by -tint. Only mid-range colors such +as the various shades of grey.

    + +
    +

    -title string

    +
    + +

    Assign a title to displayed image.", "animate", "display", "montage

    + +

    Use this option to assign a specific title to the image. This assigned to +the image window and is typically displayed in the window title bar. +Optionally you can include the image filename, type, width, height, Exif data, +or other image attribute by embedding special format characters described +under the -format option.

    + +

    For example,

    + +
    -title "%m:%f %wx%h"
    +
    + +

    produces an image title of MIFF:bird.miff 512x480 for an image +titled bird.miff and whose width is 512 and height is 480.

    + + +
    +

    -transform

    +
    + +

    transform the image.

    + +

    This option applies the transformation matrix from a previous -affine option.

    + +
    convert -affine 2,2,-2,2,0,0 -transform bird.ppm bird.jpg
    +
    + + +

    This operator has been now been superseded by the -distort 'AffineProjection' method.

    + + +
    +

    -transparent color

    +
    + +

    Make this color transparent within the image.

    + +

    The color argument is defined using the format +described under the -fill option. The -fuzz setting can be used to match and replace colors similar to the one +given.

    + +

    Use +transparent to invert the pixels matched. +that is make all non-matching colors transparent.

    + +

    The -opaque operator is exactly the same as -transparent but replaces the matching color with the +current -fill color setting, rather than transparent. +However the -transparent operator also ensures +that the image has an alpha channel enabled, as per "-alpha set", and does not require you to modify the -channel to enable alpha channel handling.

    + +

    Note that this does not define the color as being the 'transparency color' +used for color-mapped image formats, such as GIF. For that use -transparent-color

    + + +
    +

    -transparent-color color

    +
    + +

    Set the transparent color.

    + +

    Sometimes this is used for saving to image formats such as +GIF and PNG8 which uses this color to represent boolean transparency. This +does not make a color transparent, it only defines what color the transparent +color is in the color palette of the saved image. Use -transparent to make an opaque color transparent.

    + +

    This option allows you to have both an opaque visible color, as well as a +transparent color of the same color value without conflict. That is, you can +use the same color for both the transparent and opaque color areas within an +image. This, in turn, frees to you to select a transparent color that is +appropriate when an image is displayed by an application that does not handle a +transparent color index, while allowing ImageMagick to correctly handle images of this +type.

    + +

    The default transparent color is #00000000, which is fully transparent black.

    + +
    +

    -transpose

    +
    + +

    Mirror the image along the top-left to bottom-right diagonal.

    + +

    This option mathematically transposes the pixel array. It is equivalent to the sequence -flip -rotate 90. +

    + +
    +

    -transverse

    +
    + +

    Mirror the image along the images bottom-left top-right diagonal. Equivalent to the operations -flop -rotate 90.

    + + +
    +

    -treedepth value

    +
    + +

    tree depth for the color reduction algorithm.

    + +

    Normally, this integer value is zero or one. A value of zero or one causes +the use of an optimal tree depth for the color reduction algorithm.

    + +

    An optimal 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. To assure the +best representation, try values between 2 and 8 for this parameter. Refer to +the color reduction algorithm for more details.

    + +

    The -colors or -monochrome +option, or writing to an image format which requires color reduction, is +required for this option to take effect.

    + +
    +

    -trim

    +
    + +

    trim an image.

    + +

    This option removes any edges that are exactly the same color as the corner +pixels. Use -fuzz to make -trim remove +edges that are nearly the same color as the corner pixels.

    + +

    The page or virtual canvas information of the image is preserved allowing +you to extract the result of the -trim operation from the +image. Use a +repage to remove the virtual canvas page +information if it is unwanted.

    + +

    If the trimmed image 'disappears' an warning is produced, and a special +single pixel transparent 'missed' image is returned, in the same way as when a +-crop operation 'misses' the image proper.

    + + +
    +

    -type type

    +
    + +

    the image type.

    Choose from: Bilevel, +Grayscale, GrayscaleMatte, Palette, +PaletteMatte, TrueColor, TrueColorMatte, +ColorSeparation, or ColorSeparationMatte.

    + +

    Normally, when a format supports different subformats such as grayscale and +truecolor, the encoder will try to choose an efficient subformat. The -type option can be used to override this behavior. For +example, to prevent a JPEG from being written in grayscale format even though +only gray pixels are present, use.

    + +
    convert bird.png -type TrueColor bird.jpg
    +
    + +

    Similarly, use -type TrueColorMatte to force the +encoder to write an alpha channel even though the image is opaque, if the +output format supports transparency.

    + +

    Use -type optimize to ensure the image is written in the smallest possible file size.

    + +
    +

    -undercolor color

    +
    + +

    set the color of the annotation bounding box.

    + +

    The color is specified using the format described under the -fill option.

    + +

    See -draw for further details.

    + + +
    +

    -update seconds

    +
    + +

    detect when image file is modified and redisplay.

    + +

    Suppose that while you are displaying an image the file that is currently +displayed is over-written. display will automagically detect that +the input file has been changed and update the displayed image +accordingly.

    + + +
    +

    -unique-colors

    +
    + +

    discard all but one of any pixel color.

    + + +
    +

    -units type

    +
    + +

    the units of image resolution.

    + +

    Choose from: Undefined, PixelsPerInch, or +PixelsPerCentimeter. This option is normally used in conjunction +with the -density option.

    + + +
    +

    -unsharp radius
    -unsharp radiusxsigma{+gain}{+threshold}

    +
    + +

    sharpen the image with an unsharp mask operator.

    + +

    The -unsharp option sharpens an image. The image is +convolved 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 to have the method select a suitable radius.

    + +

    The parameters are:

    + +
    +
    radius
    +
    The radius of the Gaussian, in pixels, not counting the center pixel (default 0).
    +
    sigma
    +
    The standard deviation of the Gaussian, in pixels (default 1.0).
    +
    gain
    +
    The fraction of the difference between the original and the blur image that is added back into the original (default 1.0).
    +
    threshold
    +
    The threshold, as a fraction of QuantumRange, needed to apply the difference amount (default 0.05).
    +
    + +
    +

    -verbose

    +
    + +

    print detailed information about the image when this option precedes the -identify option or info:.

    + + +
    +

    -version

    +
    + +

    print ImageMagick version string and exit.

    + + +
    +

    -view string

    +
    + +

    FlashPix viewing parameters.

    + + +
    +

    -vignette radius{xsigma}{+-}x{+-}y{%}

    +
    + +

    soften the edges of the image in vignette style.

    + +

    The vignette effect rolloff is controlled by radiusxsigma. For nominal rolloff, this would be set to 0xsigma. A value of 0x0 will produce a circle/ellipse with no rolloff. The arguments x and y control the size of the circle. Larger values decrease the radii and smaller values increase the radii. Values of +0+0 will generate a circle/ellipse the same size as the image. The default values for x and y are 10% of the corresponding image dimension. Thus, the radii will be decreased by 10%, i.e., the diameters of the circle/ellipse will be 80% of the corresponding image dimension.

    + +
    +

    -virtual-pixel method

    +
    + +

    Specify contents of virtual pixels.

    + +

    This option defines what color source should be used if and when a color +lookup completely 'misses' the source image. The color(s) that appear to +surround the source image. Generally this color is derived from the source +image, but could also be set to a specify background color.

    + +

    Choose from these methods:

    + +
    +
    background
    the area surrounding the image is the background color
    +
    black
    the area surrounding the image is black
    +
    checker-tile
    alternate squares with image and background color
    +
    dither
    non-random 32x32 dithered pattern
    +
    edge
    extend the edge pixel toward infinity
    +
    gray
    the area surrounding the image is gray
    +
    horizontal-tile
    horizontally tile the image, background color above/below
    +
    horizontal-tile-edge
    horizontally tile the image and replicate the side edge pixels
    +
    mirror
    mirror tile the image
    +
    random
    choose a random pixel from the image
    +
    tile
    tile the image (default)
    +
    transparent
    the area surrounding the image is transparent blackness
    +
    vertical-tile
    vertically tile the image, sides are background color
    +
    vertical-tile-edge
    vertically tile the image and replicate the side edge pixels
    +
    white
    the area surrounding the image is white
    +
    + +

    The default value is "edge".

    + +

    This most important for distortion operators such as -distort, -implode, and -fx. +However it also affects operations that may access pixels just outside the +image proper, such as -convolve, -blur, and -sharpen.

    + +

    To print a complete list of virtual pixel types, use the -list virtual-pixel option.

    + + +
    +

    -visual type

    +
    + +

    Animate images using this X visual type.", 'animate', 'display'

    + +

    Choose from these visual classes:

    + +
    StaticGray    TrueColor
    +GrayScale     DirectColor
    +StaticColor   default
    +PseudoColor   visual id
    +
    + +

    The X server must support the visual you choose, otherwise an error occurs. +If a visual is not specified, the visual class that can display the most +simultaneous colors on the default screen is chosen.

    + + +
    +

    -watermark brightnessxsaturation

    +
    + +

    Watermark an image using the given percentages of brightness and saturation.

    + +

    Take a grayscale image (with alpha mask) and modify the destination image's +brightness according to watermark image's grayscale value and the +brightness percentage. The destinations color saturation +attribute is just direct modified by the saturation +percentage, which defaults to 100 percent (no color change).

    + + +
    +

    -wave amplitude
    -wave amplitudexwavelength

    +
    + +

    Shear the columns of an image into a sine wave.

    + +
    +

    -wavelet-denoise threshold
    -wavelet-denoise thresholdxsoftness

    +
    + +

    removes noise from the image using a wavelet transform. The threshold is the value below which everything is considered noise and ranges from 0.0 (none) to QuantumRange or use percent (e.g. 5%). Softness attenuates the threshold and typically ranges from 0.0 (none) to 1.0. The higher the value the more noise that remains in the image.

    + +
    +

    -weight fontWeight

    +
    + +

    Set a font weight for text.

    + +

    This setting suggests a font weight that ImageMagick should try to apply to +the currently selected font family. Use a positive integer for +fontWeight or select from the following.

    + +
    +
    Thin
    +
    Same as fontWeight = 100.
    +
    ExtraLight
    +
    Same as fontWeight = 200.
    +
    Light
    +
    Same as fontWeight = 300.
    +
    Normal
    +
    Same as fontWeight = 400.
    +
    Medium
    +
    Same as fontWeight = 500.
    +
    DemiBold
    +
    Same as fontWeight = 600.
    +
    Bold
    +
    Same as fontWeight = 700.
    +
    ExtraBold
    +
    Same as fontWeight = 800.
    +
    Heavy
    +
    Same as fontWeight = 900.
    +
    +
    + +

    To print a complete list of weight types, use -list weight.

    + +

    For other settings that affect fonts, see the options -font, -family, -stretch, and -style.

    + +
    +

    -white-point x,y

    +
    + +

    chromaticity white point.

    + +
    +

    -white-threshold value{%}

    +
    + +

    Force to white all pixels above the threshold while leaving all pixels at or below the threshold unchanged.

    + +

    The threshold value can be given as a percentage or as an absolute integer +value within [0, QuantumRange] corresponding to the +desired ‑channel value. See ‑thresholdfor more details on thresholds and resulting values.

    + +
    +

    -window id

    +
    + +

    Make the image the background of a window.", 'animate', 'display'

    + +

    id can be a window id or name. Specify root +to select X's root window as the target window.

    + +

    By default the image is tiled onto the background of the target window. If +backdrop or -resize are specified, the +image is surrounded by the background color. Refer to X RESOURCES +for details.

    + +

    The image will not display on the root window if the image has more unique +colors than the target window colormap allows. Use -colors to reduce the number of colors.

    + +
    +

    -window-group

    +
    + +

    specify the window group.

    + +
    +

    -write filename

    +
    + +

    write an image sequence.

    + +

    The image sequence preceding the -write filename option is written out, and processing continues with the same image in its current state if there are additional options. To restore the image to its original state after writing it, use the +write filename option.

    + +

    Use -compress to specify the type of image compression.

    + +
    +

    -write-mask filename

    +
    + +

    Prevent updates to image pixels specified by the mask.

    + +

    This the same as using a mask used for composite masking operations, with +grayscale values causing blended updates of the image the mask is attached to. +

    + +

    Use +write-mask to remove the mask from images.

    + +

    Also see -clip-mask which work in the same way, +but with strict boolean masking.

    +
    +
    + + + +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/command-line-processing.html b/share/doc/ImageMagick-7/www/command-line-processing.html new file mode 100644 index 0000000..8236fce --- /dev/null +++ b/share/doc/ImageMagick-7/www/command-line-processing.html @@ -0,0 +1,642 @@ + + + + + + + + + + Command-line Processing @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    The Anatomy of the Command-line • Input Filename • Command-line Options • Output Filename

    + +

    The ImageMagick command-line tools can be as simple as this:

    + +
    magick image.jpg image.png 
    + +

    Or it can be complex with a plethora of options, as in the following:

    + +
    magick label.gif +matte \
    +  \( +clone  -shade 110x90 -normalize -negate +clone  -compose Plus -composite \) \
    +  \( -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.

    + +

    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:

    + + + + +

    Here we show percent completion of a task as a shaded cylinder:

    + +
      + Shaded Cylinder +
    + +

    Given the complexity of the rendering, you might be surprised it is accomplished by a single command-line:

    + +
    magick -size 320x90 canvas:none -stroke snow4 -size 1x90 -tile gradient:white-snow4 \
    +  -draw 'roundrectangle 16, 5, 304, 85 20,40' +tile -fill snow \
    +  -draw 'roundrectangle 264, 5, 304, 85  20,40' -tile gradient:chartreuse-green \
    +  -draw 'roundrectangle 16,  5, 180, 85  20,40' -tile gradient:chartreuse1-chartreuse3 \
    +  -draw 'roundrectangle 140, 5, 180, 85  20,40' +tile -fill none \
    +  -draw 'roundrectangle 264, 5, 304, 85 20,40' -strokewidth 2 \
    +  -draw 'roundrectangle 16, 5, 304, 85 20,40' \( +clone -background snow4 \
    +  -shadow 80x3+3+3 \) +swap -background none -layers merge \( +size -font Helvetica \
    +  -pointsize 90 -strokewidth 1 -fill red label:'50 %' -trim +repage \( +clone \
    +  -background firebrick3 -shadow 80x3+3+3 \) +swap -background none -layers merge \) \
    +  -insert 0 -gravity center -append -background white -gravity center -extent 320x200 \
    +  cylinder_shaded.png
    + +

    In the next sections we dissect the anatomy of the ImageMagick command-line. Hopefully, after carefully reading and better understanding how the command-line works, you should be able to accomplish complex image-processing tasks without resorting to the sometimes daunting program interfaces.

    + +

    See Examples of ImageMagick Usage for additional help when using ImageMagick from the command-line.

    + +

    The Anatomy of the Command-line

    +

    The ImageMagick command-line consists of

    + +
      +
    1. one or more required input filenames.
    2. +
    3. zero, one, or more image settings.
    4. +
    5. zero, one, or more image operators.
    6. +
    7. zero, one, or more image sequence operators.
    8. +
    9. zero, one, or more image stacks.
    10. +
    11. zero or one output image filenames (required by +convert, +composite, +montage, +compare, +import, +conjure). +
    12. +
    + +

    You can find a detailed explanation of each of the constituent parts of the command-line in the sections that follow.

    + +

    Input Filename

    + +

    ImageMagick extends the concept of an input filename to include:

    +
      +
    • filename globbing
    • +
    • an explicit image format
    • +
    • using built-in images and patterns
    • +
    • STDIN, STDOUT, and file descriptors
    • +
    • selecting certain frames from an image
    • +
    • selecting a region of an image
    • +
    • forcing an inline image resize
    • +
    • forcing an inline image crop
    • +
    • using filename references
    • +
    + +

    These extensions are explained in the next few paragraphs.

    + +

    Filename Globbing

    +

    In Unix shells, certain characters such as the asterisk (*) and question mark (?) automagically cause lists of filenames to be generated based on pattern matches. This feature is known as globbing. ImageMagick supports filename globbing for systems, such as Windows, that does not natively support it. For example, suppose you want to convert 1.jpg, 2.jpg, 3.jpg, 4.jpg, and 5.jpg in your current directory to a GIF animation. You can conveniently refer to all of the JPEG files with this command: +

    + +
    magick *.jpg images.gif
    + +

    Explicit Image Format

    +

    Images are stored in a myriad of image formats including +the better known JPEG, PNG, TIFF and others. ImageMagick must know the format +of the image before it can be read and processed. Most formats have a +signature within the image that uniquely identifies the format. Failing +that, ImageMagick leverages the filename extension to determine the format. +For example, image.jpg or image.JPG tells ImageMagick +it is reading an image in the JPEG format.

    + +

    In some cases the image may not contain a signature +and/or the filename does not identify the image format. In these cases an +explicit image format must be specified. For example, suppose our image +is named image and contains raw red, green, and blue intensity +values. ImageMagick has no way to automagically determine the image format +so we explicitly set one: +

    + +
    magick -size 640x480 -depth 8 rgb:image image.png
    + +

    Built-in Images and Patterns

    + +

    ImageMagick has a number of built-in images and patterns. To utilize the checkerboard pattern, for example, use: +

    + +
    magick -size 640x480 pattern:checkerboard checkerboard.png
    + +

    STDIN, STDOUT, and file descriptors

    +

    Unix and Windows permit the output of one command to be piped to the input of another. ImageMagick permits image data to be read and written from the standard streams STDIN (standard in) and STDOUT (standard out), respectively, using a pseudo-filename of -. In this example we pipe the output of + convert to the display program: +

    + +
    magick logo: gif:- | display gif:-
    + +

    The second explicit format "gif:" is optional in the preceding example. The GIF image format has a unique signature within the image so ImageMagick's display command can readily recognize the format as GIF. The convert program also accepts STDIN as input in this way: +

    + +
    magick rose: gif:- | magick - -resize "200%" bigrose.jpg'
    + +

    Other pipes can be accessed via their file descriptors (as of version 6.4.9-3). The file descriptors 0, 1, and 2 are reserved for the standard streams STDIN, STDOUT, and STDERR, respectively, but a pipe associated with a file descriptor number N>2 can be accessed using the pseudonym fd:N. (The pseudonyms fd:0 and fd:1 can be used for STDIN and STDOUT.) The next example shows how to append image data piped from files with descriptors 3 and 4 and direct the result to the file with descriptor number 5. +

    + +
    magick fd:3 fd:4 -append fd:5
    + +

    When needed, explicit image formats can be given as mentioned earlier, as in the following. +

    + +
    magick gif:fd:3 jpg:fd:4 -append tif:fd:5
    + +

    Selecting Frames

    +

    Some images formats contain more than one image frame. Perhaps you only want the first image, or the last, or some number of images in-between. You can specify which image frames to read by appending the image filename with the frame range enclosed in brackets. Here our image (an animated GIF) contains more than one frame but we only want the first: +

    + +
    magick 'images.gif[0]' image.png
    + +

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

    + +

    You can read more than one image from a sequence with a frame range. For example, you can extract the first four frames of an image sequence: +

    + +
    magick 'images.gif[0-3]' images.mng
    + +

    Finally, you can read more than one image from a sequence, out-of-order. The next command gets the third image in the sequence, followed by the second, and then the fourth: +

    + +
    magick 'images.gif[3,2,4]' images.mng
    + +

    Notice that in the last two commands, a single image is written. The output in this case, where the image type is MNG, is a multi-frame file because the MNG format supports multiple frames. Had the output format been JPG, which only supports single frames, the output would have consisted of separate frames. More about that below, in the section about the Output Filename. +

    + +

    Selecting an Image Region

    +

    Raw images are a sequence of color intensities without additional meta information such as width, height, or image signature. With raw image formats, you must specify the image width and height but you can also specify a region of the image to read. In our example, the image is in the raw 8-bit RGB format and is 6000 pixels wide and 4000 pixels high. However, we only want a region of 600 by 400 near the center of the image: +

    + +
    magick -size 6000x4000 -depth 8 'rgb:image[600x400+1900+2900]' image.jpg
    + +

    + You can get the same results with the ‑extract option: +

    + +
    magick -size 6000x4000 -depth 8 -extract 600x400+1900+2900 rgb:image image.jpg
    + +

    Inline Image Resize

    +

    It is sometimes convenient to resize an image as they are read. Suppose you have hundreds of large JPEG images you want to convert to a sequence of PNG thumbails: +

    + +
    magick '*.jpg' -resize 120x120 thumbnail%03d.png
    + +

    Here all the images are read and subsequently +resized. It is faster and less resource intensive to resize each image it +is read: +

    + +
    magick '*.jpg[120x120]' thumbnail%03d.png
    + +

    Inline Image Crop

    +

    It is sometimes convenient to crop an image as they are read. Suppose you have hundreds of large JPEG images you want to convert to a sequence of PNG thumbails: +

    + +
    magick '*.jpg' -crop 120x120+10+5 thumbnail%03d.png
    + +

    Here all the images are read and subsequently cropped. It is faster and less resource-intensive to crop each image as it is read: +

    + +
    magick '*.jpg[120x120+10+5]' thumbnail%03d.png
    + + +

    Filename References

    + +

    There are two methods to use a filename to reference other image filenames. +The first is with '@' which reads image filenames separated by white space from the specified file. Assume the file myimages.txt consists of a list of filenames, like so: +

    + +
    frame001.jpg
    +frame002.jpg
    +frame003.jpg
    + +

    We then expect this command:

    + +
    magick @myimages.txt mymovie.gif
    + +

    to read the images frame001.jpg, frame002.jpg, and frame003.jpg and convert them to a GIF image sequence.

    +

    If the image path includes one or more spaces, enclose the path in quotes:

    +
    'my title.jpg'
    + + +

    Some ImageMagick command-line options may exceed the capabilities of +your command-line processor. Windows, for example, limits command-lines +to 8192 characters. If, for example, you have a draw option with polygon +points that exceed the command-line length limit, put the draw option instead +in a file and reference the file with +the @ (e.g. @mypoly.txt).

    + +

    Another method of referring to other image files is by +embedding a formatting character in the filename with a scene range. Consider +the filename image-%d.jpg[1-5]. The command

    + +
    magick image-%d.jpg[1-5]
    + +

    causes ImageMagick to attempt to read images with these filenames: +

    + +
    image-1.jpg
    +image-2.jpg
    +image-3.jpg
    +image-4.jpg
    +image-5.jpg
    + +

    Stream Buffering

    +

    By default, the input stream is buffered. To ensure information on the source file or terminal is read as soon as its available, set the buffer size to 0:

    + +
    magick logo: gif:- | display -define stream:buffer-size=0 gif:-
    + +

    Command-line Options

    + +

    You can direct the behavior of ImageMagick utilities with these command-line options. The behavior of an option falls into one of these categories:

    + + + +

    Image Setting

    + +

    An image setting persists as it appears on the command-line and may affect +subsequent processing such as reading an image, an image operator, or when +writing an image as appropriate. An image setting stays in effect until it +is reset or the command-line terminates. The image settings include:

    + + + +

    In this example, -channel applies to each of the images, since, as we mentioned, settings persist: +

    + +
    magick -channel RGB wand.png wizard.png images.png
    + +

    Image Operator

    + +

    An image operator differs from a setting in that it affects the image +immediately as it appears on the command-line. An operator is +any command-line option not listed as a +image setting or +image sequence operator. Unlike an +image setting, which persists until the command-line terminates, +an operator is applied to an image and forgotten. The image operators +include:

    + + + +

    In this example, -negate negates the wand image but not the wizard:

    + +
    magick wand.png -negate wizard.png images.png
    + +

    Image Channel Operator

    +

    Operate directly on image channels:

    + + +

    Image Sequence Operator

    + +

    An image sequence operator differs from a setting in that it affects an +image sequence immediately as it appears on the command-line. Choose from +these image sequence operators:

    + + +

    In this example, -append appends three images into one:

    + +
    magick mikayla.png picnic.png beach.png -append vacation.png
    + +

    Image Geometry

    + +

    Many command-line options take a geometry argument +to specify such things as the desired width and height of an image and other +dimensional quantities. Because users want so many variations on the resulting +dimensions, sizes, and positions of images (and because ImageMagick wants to +provide them), the geometry argument can take many +forms. We describe many of these in this section.

    + +

    The image options and settings that take some form of +a geometry argument include the following. +Keep in mind that some of these parse their arguments in slightly +different ways. See the documentation for the individual option or +setting for more specifics.

    + + + +

    The geometry argument might take any of the forms listed in the table below. These will described in more detail in the subsections following the table. The usual form is size[offset], meaning size is required and offset is optional. Occasionally, [size]offset is possible. In no cases are spaces permitted within the geometry argument.

    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    sizeGeneral description (actual behavior can vary for different options and settings)
    scale%Height and width both scaled by specified percentage.
    scale-x%xscale-y%Height and width individually scaled by specified percentages. (Only one % symbol needed.)
    widthWidth given, height automagically selected to preserve aspect ratio.
    xheightHeight given, width automagically selected to preserve aspect ratio.
    widthxheightMaximum values of height and width given, aspect ratio preserved.
    widthxheight^Minimum values of width and height given, aspect ratio preserved.
    widthxheight!Width and height emphatically given, original aspect ratio ignored.
    widthxheight>Shrinks an image with dimension(s) larger than the corresponding width and/or height argument(s).
    widthxheight<Enlarges an image with dimension(s) smaller than the corresponding width and/or height argument(s).
    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}Specifying the offset (default is +0+0). Below, {size} refers to any of the forms above.
    {size}{+-}x{+-}yHorizontal and vertical offsets x and y, specified in pixels. Signs are required for both. Offsets are affected by ‑gravity setting. Offsets are not affected by % or other size operators.
    + + +

    Basic adjustments to width and height; the operators %, ^, and !

    +

    Here, just below, are a few simple examples of geometry, showing how it might be used as an argument to the ‑resize option. We'll use the internal image logo: for our input image. + +This fine image is 640 pixels wide and 480 pixels high. We say its dimensions are 640x480. When we give dimensions of an image, the width (the horizontal dimension) always precedes the height (the vertical dimension). This will be true when we speak of coordinates or offsets into an image, which will always be x–value followed by y. Just think of your high school algebra classes and the xy–plane. (Well, almost: our y–axis will always go downward!) +

    + +
    magick logo: -resize '200%' bigWiz.png
    +magick logo: -resize '200x50%' longShortWiz.png
    +magick logo: -resize '100x200' notThinWiz.png
    +magick logo: -resize '100x200^' biggerNotThinWiz.png
    +magick logo: -resize '100x200!' dochThinWiz.png
    + +

    The first of the four commands is simple—it stretches both the width and height of the input image by 200% in each direction; it magnifies the whole thing by a factor of two. The second command specifies different percentages for each direction, stretching the width to 200% and squashing the height to 50%. The resulting image (in this example) has dimensions 1280x240. Notice that the percent symbol needn't be repeated; the following are equivalent: 200x50%, 200%x50, 200%x50%. +

    + +

    By default, the width and height given in a geometry argument are maximum values unless a percentage is specified. That is, the image is expanded or contracted to fit the specified width and height value while maintaining the aspect ratio (the ratio of its height to its width) of the image. For instance, the third command above "tries" to set the dimensions to 100x200. Imagine gradually shrinking the original image (which is 640x480), keeping is aspect ratio constant, until it just fits into a 100x200 rectangle. Since the image is longer than it is tall, it will fit when its width shrinks to 100 pixels. To preserve the aspect ratio, the height will therefore have to be (480/640)×100 pixels=75 pixels, so the final dimensions will be 100x75.

    + +

    Notice that in the previous example, at least one of the specified dimensions will be attained (in this case, the width, 100 pixels). The resulting image fits snugly within the original. One can do just the opposite of this by invoking the ^ operator, as in the fourth example above. In that case, when 100x200^ is given as the argument, again at least one of the dimensions will be attained, but in this case the resulting image can snugly contain the original. Here the geometry argument gives minimum values. In our example, the height will become 200 and the width will be scaled to preserve the aspect ratio, becoming (640/480)×200 pixels=267 pixels. With the ^ operator, one of those dimensions will match the requested size, but the image will likely overflow the dimensions requested to preserve its aspect ratio. (The ^ feature is new as of IM 6.3.8-2.)

    + +

    We see that ImageMagick is very good about preserving aspect ratios of images, to prevent distortion of your favorite photos and images. But you might really want the dimensions to be 100x200, thereby stretching the image. In this case just tell ImageMagick you really mean it (!) by appending an exclamation operator to the geometry. This will force the image size to exactly what you specify. So, for example, if you specify 100x200! the dimensions will become exactly 100x200 (giving a small, vertically elongated wizard).

    + +

    Bounding the width, height, and area; the operators >, <, and @

    +

    +Here are a few more examples: +

    + +
    magick logo: -resize '100' wiz1.png
    +magick logo: -resize 'x200' wiz2.png
    +magick logo: -resize '100x200>' wiz3.png
    +magick logo: -resize '100x200<' wiz4.png
    + +

    If only one dimension is given it is taken to be the width. When only the width is specified, as in the first example above, the width is accepted as given and the height is chosen to maintain the aspect ratio of the input image. Similarly, if only the height is specified, as in the second example above, the height is accepted and the width is chosen to maintain the aspect ratio.

    + + +

    Use > to shrink an image only if its dimension(s) are larger than the corresponding width and/or height arguments. Use < to enlarge an image only if its dimension(s) are smaller than the corresponding width and/or height arguments. In either case, if a change is made, the result is as if the > or < operator was not present. So, in the third example above, we specified 100x200> and the original image size is 640x480, so the image size is reduced as if we had specified 100x200. However, in the fourth example above, there will be no change to its size.

    + +

    Finally, use @ to specify the maximum area in pixels of an image, again while attempting to preserve aspect ratio. (Pixels take only integer values, so some approximation is always at work.) In the following example, an area of 10000 pixels is requested. The resulting file has dimensions 115x86, which has 9890 pixels.

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

    + +

    Offsets in geometry

    +

    +Here are some examples to illustrate the use of offsets in geometry arguments. One typical use of offsets is in conjunction with the +‑region option. This option allows many other options to modify the pixels within a specified rectangular subregion of an image. As such, it needs to be given the width and height of that region, and also an offset into the image, which is a pair of coordinates that indicate the location of the region within the larger image. Below, in the first example, we specify a region of size 100x200 to be located at the xy–coordinates x=10, y=20. Let's use the usual algebraic notation (x,y)=(10,20), for convenience. +

    + +
    magick logo: -region '100x200+10+20' -negate wizNeg1.png
    +magick logo: -region '100x200-10+20' -negate wizNeg2.png
    +magick logo: -gravity center -region '100x200-10+20' -negate wizNeg3.png
    + +

    Note that offsets always require +/− signs. The offset is not actually a true location within the image; its coordinates must be added to some other location. Let's refer to that as the current location. In the first two examples above, though, that location is the upper-left hand corner of the image, which has coordinates (0,0). (That is the default situation when there are no other directives given to change it.) The first example above puts the 100x200 rectangle's own upper-left corner at (10,20).

    + +

    A negative offset can make sense in many cases. In the second example above, the offset is (-10,20), specified by -10+20. In that case, only the portion of the (virtual) rectangle obtained that lies within the image can be negated; here it is equivalent to specifying the geometry as 90x200+0+20.

    + +

    In the third example above, the ‑gravity setting precedes the others and sets the current location within the image at the very center of the image. In this case that is at pixel (320,240), since the size of the image is 640x480. This means that the offsets apply to that location, which thereby gets moved, in this case, to (320-10,240+20)=(310,260). But the 100x200 region itself is affected by the ‑gravity setting, so instead of affecting its upper-left corner, the region's own center (at (+50,+100) within it) is determined. Therefore the center of the 100x200 rectangle is moved to (310,260). The negated rectangle's upper-left corner is now at (310-50,260-100)=(260,160). +

    + + +

    Image Stack

    + +

    In school, your teacher probably permitted you to work on problems on a scrap of paper and then copy the results to your test paper. An image stack is similar. It permits you to work on an image or image sequence in isolation and subsequently introduce the results back into the command-line. The image stack is delineated with parenthesis. Image operators only affect images in the current stack. For example, we can limit the image rotation to just the wizard image like this:

    + +
    magick wand.gif \( wizard.gif -rotate 30 \) +append images.gif
    + + +

    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 +not escape the parentheses under Windows. Each parenthesis (or escaped +parenthesis) must have spaces on either side, as in the example shown +above.

    + +

    In addition to the image operators already discussed, the following image operators are most useful when processing images in an image stack:

    + + + +

    The arguments to these operators are indexes into the image sequence by number, starting with zero, for the first image, and so on. However if you give a negative index, the images are indexed from the end (last image added). That is, an index of -1 is the last image in the current image sequence, -2 gives the second-to-last, and so on.

    + +

    Output Filename

    + +

    ImageMagick extends the concept of an output filename to include:

    + +
      +
    1. an explicit image format
    2. +
    3. write to standard out
    4. +
    5. filename references
    6. +
    + +

    Each of these extensions are explained in the next few paragraphs.

    + +

    Explicit Image Format

    +

    Images can be stored in a mryiad of image formats including the better known JPEG, PNG, TIFF and others. ImageMagick must know the desired format of the image before it is written. ImageMagick leverages the filename extension to determine the format. For example, image.jpg tells ImageMagick to write the image in the JPEG format. In some cases the filename does not identify the image format. In these cases, the image is written in the format it was originally read unless an explicit image format is specified. For example, suppose we want to write our image to a filename of image in the raw red, green, and blue intensity format: +

    + +
    magick image.jpg rgb:image
    + + +

    Standard Out

    +

    Unix permits the output of one command to be piped to another. ImageMagick permits piping one command to another with a filename of -. In this example we pipe the output of convert to the display program: +

    + +
    magick logo: gif:- | display gif:-
    + +

    Here the explicit format is optional. The GIF image format has a signature that uniquely identifies it so ImageMagick can readily recognize the format as GIF.

    + +

    Filename References

    +

    Optionally, use an embedded formatting character to write a sequential image list. Suppose our output filename is image-%d.jpg and our image list includes 3 images. You can expect these images files to be written: +

    + +
    image-0.jpg
    +image-1.jpg
    +image-2.jpg
    + +

    Or retrieve image properties to modify the image filename. For example, the command +

    + +
    magick rose: -set filename:area '%wx%h' 'rose-%[filename:area].png'
    + +

    writes an image with this filename: +

    + +
    rose-70x46.png
    + +

    Finally to convert multiple JPEG images to individual PDF pages, use:

    + +
    magick *.jpg +adjoin page-%d.pdf
    + +

    Stream Buffering

    + +

    By default, the output stream is buffered. To ensure information appears on the destination file or terminal as soon as written, set the buffer size to 0:

    + +
    magick -define stream:buffer-size=0 logo: gif:- | display gif:-
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/command-line-tools.html b/share/doc/ImageMagick-7/www/command-line-tools.html new file mode 100644 index 0000000..70b1ee6 --- /dev/null +++ b/share/doc/ImageMagick-7/www/command-line-tools.html @@ -0,0 +1,135 @@ + + + + + + + + + + Command-line Tools @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    ImageMagick includes a number of command-line utilities for manipulating images. Most of you are probably accustomed to editing images one at a time with a graphical user interface (GUI) with such programs as Gimp or Photoshop. However, a GUI is not always convenient. Suppose you want to process an image dynamically from a web script or you want to apply the same operations to many images or repeat a specific operation at different times to the same or different image. For these types of operations, the command-line image processing utility is appropriate.

    + +

    The ImageMagick command-line tools exit with a status of 0 if the command line arguments have a proper syntax and no problems are encountered. Expect a descriptive message and an exit status of 1 if any exception occurs such as improper syntax, a problem reading or writing an image, or any other problem that prevents the command from completing successfully.

    + +

    Here is a short description for each command-line tool. Click on the program name to get details about the program usage and a list of command-line options that alters how the program behaves. If you are just getting acquainted with ImageMagick, start with the magick program. Be sure to peruse Anthony Thyssen's tutorial on how to use ImageMagick utilities to create, edit, compose, or convert images from the command-line.

    + +
    +
    magick
    convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.
    +
    magick-script
    use this scripting language interpreter to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.
    +
    +

    We also support tools for compatibility with ImageMagick version 6:

    +
    +
    animate
    animate an image sequence on any X server.
    +
    compare
    mathematically and visually annotate the difference between an image and its reconstruction.
    +
    composite
    overlap one image over another.
    +
    conjure
    interpret and execute scripts written in the Magick Scripting Language (MSL).
    +
    convert
    convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.
    +
    display
    display an image or image sequence on any X server.
    +
    identify
    describe the format and characteristics of one or more image files.
    +
    import
    save any visible window on an X server and outputs it as an image file. You can capture a single window, the entire screen, or any rectangular portion of the screen.
    +
    mogrify
    resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. Mogrify overwrites the original image file, whereas, convert writes to a different image file.
    +
    montage
    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.
    +
    stream
    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.
    +
    +

    If these tools are not available on your computer, you can instead utilize them as a subcommand of the magick command. For example,

    +
    magick identify -verbose myImage.png
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/compare.html b/share/doc/ImageMagick-7/www/compare.html new file mode 100644 index 0000000..3877d48 --- /dev/null +++ b/share/doc/ImageMagick-7/www/compare.html @@ -0,0 +1,450 @@ + + + + + + + + + + Command-line Tools: Compare @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Example Usage • Option Summary

    + +

    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.

    + +

    Example Usage

    + +

    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:

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

    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:

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

    + +
    -> magick compare -channel red -metric PSNR rose.jpg reconstruct.jpg difference.png
    +19.63
    +
    + +

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

    + +
    -> magick compare -metric PSNR rose.jpg reconstruct.jpg difference.png
    +28.31
    +
    + +

    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
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/compose.html b/share/doc/ImageMagick-7/www/compose.html new file mode 100644 index 0000000..c6254c0 --- /dev/null +++ b/share/doc/ImageMagick-7/www/compose.html @@ -0,0 +1,651 @@ + + + + + + + + + + Alpha Compositing @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    This page descibed the Image composition methods that is used to define how +two images should be merged together in various image operations. For the +Command Line API it is typically set using the -compose setting option.

    + + +

    The description of composition uses abstract terminology in order to allow +the description to be more precise, while avoiding constant values which are +specific to a particular build configuration. Each image pixel is represented +by red, green, and blue levels (which are equal for a gray pixel). The +build-dependent value QuantumRange is the maximum integral +value which may be stored, per pixel, in the red, green, or blue channels of +the image. Each image pixel may also optionally (if the image matte channel is +enabled) have an associated level of opacity, ranging from opaque to +transparent, which may be used to determine the influence of the pixel +color when compositing the pixel with another image pixel. If the image matte +channel is disabled, then all pixels in the image are treated as opaque. The +color of an opaque pixel is fully visible while the color of a transparent +pixel color is entirely absent (pixel color is ignored).

    + +

    By definition, raster images have a rectangular shape. All image rows are of +equal length, as are all image columns. By treating the alpha channel as a +visual "mask" the rectangular image may be given a "shape" by treating the +alpha channel as a cookie-cutter for the image. This is done by setting the +pixels within the shape to be opaque, with pixels outside the shape set as +transparent. Pixels on the boundary of the shape may be between opaque and +transparent in order to provide antialiasing (visually smooth edges). The +description of the composition operators use this concept of image "shape" in +order to make the description of the operators easier to understand. While it +is convenient to describe the operators in terms of "shapes" they are by no +means limited to mask-style operations since they are based on continuous +floating-point mathematics rather than simple boolean operations.

    + +

    The following alpha blending (Duff-Porter) compose methods are available:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodDescription
    clearBoth the color and the alpha of the destination are + cleared. Neither the source nor the destination are used (except for + destinations size and other meta-data which is always preserved.
    srcThe source is copied to the destination. The destination + is not used as input, though it is cleared.
    dstThe destination is left untouched. The source image is + completely ignored.
    src-overThe source is composited over the destination. this is + the default alpha blending compose method, when neither the compose + setting is set, nor is set in the image meta-data.
    dst-overThe destination is composited over the source and the + result replaces the destination.
    src-inThe part of the source lying inside of the destination + replaces the destination.
    dst-inThe part of the destination lying inside of the source + replaces the destination. Areas not overlaid are cleared.
    src-outThe part of the source lying outside of the destination + replaces the destination.
    dst-outThe part of the destination lying outside of the source + replaces the destination.
    src-atopThe part of the source lying inside of the destination is + composited onto the destination.
    dst-atopThe part of the destination lying inside of the source is + composited over the source and replaces the destination. Areas not + overlaid are cleared.
    xorThe part of the source that lies outside of the + destination is combined with the part of the destination that lies + outside of the source. Source or Destination, but not both.
    + +

    Any of the 'Src-*' methods can also be specified without the 'Src-' part. +For example the default compose method can be specified as just 'Over'.

    + +

    Many of these compose methods will clear the destination image which was +not overlaid by the source image. This is to be expected as part of that +specific composition methods defintion. You can disable this by setting the +special -define 'compose:outside-overlay' to a value of 'false' will turn off +this behavior.

    + +

    On top of the above 12 Duff-Porter Alpha Composition methods, one special +related method 'Copy' has been provided. This is equivalent to +using the 'Src' with the special -define option 'compose:outside-overlay' set to +'false', so as to only modify the overlaid area, without clearing +the rest of the image outside the overlaid area.

    + +

    The following mathematical composition methods are also available.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodDescription
    multiplyThe source is multiplied by the destination and replaces + the destination. The resultant color is always at least as dark as + either of the two constituent colors. Multiplying any color with black + produces black. Multiplying any color with white leaves the original + color unchanged.
    screenThe source and destination are complemented and then + multiplied and then replace the destination. The resultant color is + always at least as light as either of the two constituent colors. + Screening any color with white produces white. Screening any color + with black leaves the original color unchanged.
    plusThe source is added to the destination and replaces the + destination. This operator is useful for averaging or a controlled + merger of two images, rather than a direct overlay.
    addAs per 'plus' but transparency data is treated as matte + values. As such any transparent areas in either image remain + transparent.
    minusSubtract the colors in the source image from the + destination image. When transparency is involved, opaque areas is + subtracted from any destination opaque areas.
    subtractSubtract the colors in the source image from the + destination image. When transparency is involved transparent areas are + subtracted, so only the opaque areas in the source remain opaque in + the destination image.
    differenceSubtracts the darker of the two constituent colors from + the lighter. Painting with white inverts the destination color. + Painting with black produces no change.
    exclusionProduces an effect similar to that of 'difference', but + appears as lower contrast. Painting with white inverts the + destination color. Painting with black produces no change.
    darkenSelects the darker of the destination and source colors. + The destination is replaced with the source when the source is darker, + otherwise it is left unchanged.
    lightenSelects the lighter of the destination and source colors. + The destination is replaced with the source when the source is + lighter, otherwise it is left unchanged.
    + +

    Typically these use the default 'Over' alpha blending when transparencies +are also involved, except for 'Plus' which uses a 'plus' alpha blending. This +means the alpha channel of both images will only be used to ensure that any +visible input remains visible even in parts not overlaid. It also means that +any values are weighted by the alpha channel of the input and output images. +This 'Over' alpha blending is also applied to the lighting composition methods +below.

    + +

    The math composition is applied on an individual channel basis as defined by the -channel. This includes the alpha channel. This special usage allows you to perform true mathematics of the image channels, without alpha +composition effects, becoming involved.

    + +

    The following lighting composition methods are also available.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodDescription
    linear-dodgeThis is equivalent to 'Plus' in that the color channels + are simply added, however it does not 'Plus' the alpha channel, but + uses the normal 'Over' alpha blending, which transparencies are + involved. Produces a sort of additive multiply-like result.
    linear-burnAs 'Linear-Dodge', but also subtract one from the result. + Sort of a additive 'Screen' of the images.
    color-dodgeBrightens the destination color to reflect the source + color. Painting with black produces no change.
    color-burnDarkens the destination color to reflect the source + color. Painting with white produces no change.
    overlayMultiplies or screens the colors, dependent on the + destination color. Source colors overlay the destination whilst + preserving its highlights and shadows. The destination color is not + replaced, but is mixed with the source color to reflect the lightness + or darkness of the destination.
    hard-lightMultiplies or screens the colors, dependent on the source + color value. If the source color is lighter than 0.5, the destination + is lightened as if it were screened. If the source color is darker + than 0.5, the destination is darkened, as if it were multiplied. The + degree of lightening or darkening is proportional to the difference + between the source color and 0.5. If it is equal to 0.5 the + destination is unchanged. Painting with pure black or white produces + black or white.
    linear-lightLike 'Hard-Light' but using linear-dodge and linear-burn + instead. Increases contrast slightly with an impact on the + foreground's tonal values.
    soft-lightDarkens or lightens the colors, dependent on the source + color value. If the source color is lighter than 0.5, the destination + is lightened. If the source color is darker than 0.5, the destination + is darkened, as if it were burned in. The degree of darkening or + lightening is proportional to the difference between the source color + and 0.5. If it is equal to 0.5, the destination is unchanged. Painting + with pure black or white produces a distinctly darker or lighter area, + but does not result in pure black or white.
    pegtop-lightAlmost equivalent to 'Soft-Light', but using a + continuous mathematical formula rather than two conditionally + selected formulae.
    vivid-lightA modified 'Linear-Light' designed to preserve very stong + primary and secondary colors in the image.
    pin-lightSimilar to 'Hard-Light', but using sharp linear shadings, + to simulate the effects of a strong 'pinhole' light source.
    + +

    Also included are these special purpose compose methods:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodDescription
    copyThis is equivalent to the Duff-Porter composition method + 'Src,' but without clearing the parts of the destination + image that is not overlaid.
    copy-*Copy the specified channel (Red, Green, Blue, Cyan, + Magenta, Yellow, Black, or Opacity) in the source image to the + same channel in the destination image. If the channel specified + does not exist in the source image, (which can only happen for methods, + 'copy-opacity' or 'copy-black') then it is + assumed that the source image is a special grayscale channel image + of the values that is to be copied.
    change-maskReplace any destination pixel that is the similar to the + source images pixel (as defined by the current -fuzz factor), with transparency. +
    stereocreate a stereo anaglyph
    + +

    On top of these composed methods are a few special ones that not only require +the two images that are being merged or overlaid, but have some extra numerical +arguments, which are tabled below.

    + +

    In the "composite" command these composition methods are +selected using special options with the arguments needed. They are usually, +but not always, the same name as the composite 'method' they use, and replaces +the normal use of the -compose +setting in the "composite" command. For example...

    + +
    composite ... -blend 50x50 ...
    +
    + +

    The "magick" command can accept these extra arguments to its -composite operator, using the special -define +attribute of 'compose:args'. This means you can now +make use of these special augmented -compose methods, those the argument and the method both need to be set +separately. For example...

    + +
    convert ... -compose blend  -define compose:args=50,50 -composite ...
    +
    + +

    The following is a table of these special 'argumented' compose methods, +with a brief summary of what they do. For more details see the equivalent +"composite" command option name.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodDescription
    dissolveArguments: + src_percent[xdst_percent] +
    Equivalent to "composite" -dissolve +
    Dissolve the 'source' image by the percentage given before overlaying + 'over' the 'destination' image. If src_percent is + greater than 100, it starts dissolving the main image so it will + become transparent at a value of '200'. If + both percentages are given, each image are dissolved to the + percentages given. +
    blendArguments: + src_percent[xdst_percent] +
    Equivalent to "composite" -blend +
    Average the images together ('plus') according to the percentages + given and each pixels transparency. If only a single percentage value + is given it sets the weight of the composite or 'source' image, while + the background image is weighted by the exact opposite amount. That is + a -blend 30 merges 30% of the 'source' image with 70% of + the 'destination' image. Thus it is equivalent to -blend + 30x70. +
    mathematicsArguments: A, B, C, D +
    Not available in "composite" at this time. +
    Merge the source and destination images according to the formula +
    A*Sc*Dc + B*Sc + C*Dc + D +
    Can be used to generate a custom composition method that would + otherwise need to be implemented using the slow -fx DIY image operator. +
    modulateArguments: + brightness[xsaturation] +
    Equivalent to "composite" -watermark +
    Take a grayscale image (with alpha mask) and modify the destination + image's brightness according to watermark image's grayscale value and + the brightness percentage. The destinations + color saturation attribute is just direct modified by the saturation percentage, which defaults to 100 percent + (no color change). + +
    displaceArguments: + X-scale[xY-scale][!][%] +
    Equivalent to "composite" -displace +
    With this option, the 'overlay' image, and optionally the 'mask' + image, is used as a relative displacement map, which is used to + displace the lookup of what part of the destination image is seen at + each point of the overlaid area. Much like the displacement map is a + 'lens' that distorts the original 'background' image behind it. +

    + The X-scale is modulated by the 'red' channel of the overlay image + while the Y-scale is modulated by the green channel, (the mask image + if given is rolled into green channel of the overlay image. This + separation allows you to modulate the X and Y lookup displacement + separately allowing you to do 2-dimensional displacements, rather + than 1-dimensional vectored displacements (using grayscale image). +

    + If the overlay image contains transparency this is used as a mask + of the resulting image to remove 'invalid' pixels. +

    + The '%' flag makes the displacement scale relative to the size of the + overlay image (100% = half width/height of image). Using '!' switches + percentage arguments to refer to the destination image size instead. +

    +
    distortArguments: + X-scale[xY-scale[+X-center+Y-center]][!][%] +
    Not available in "composite" at this time. +
    Exactly as per 'Displace' (above), but using absolute coordinates, + relative to the center of the overlay (or that given). Basically + allows you to generate absolute distortion maps where 'black' will + look up the left/top edge, and 'white' looks up the bottom/right + edge of the destination image, according to the scale given. +

    + The '!' flag not only switches percentage scaling, to use the + destination image, but also the image the center offset of the lookup. + This means the overlay can lookup a completely different region of the + destination image. +

    +
    blurArguments: + Width[xHeight[+Angle][+Angle2]] +
    Equivalent to "composite" -blur +
    A Variable Blur Mapping Composition method, where each pixel in the + overlaid region is replaced with an Elliptical Weighted Average (EWA), + with an ellipse (typically a circle) of the given sigma size, scaled + according to overlay (source image) grayscale mapping. +

    + As per 'Displace' and 'Distort', the red channel will modulate the + width of the ellipse, while the green channel will modulate the height + of the ellipse. If a single Angle value is given in the arguments, + then the ellipse will then be rotated by the angle specified. +

    + Normally the blue channel of the mapping overlay image is ignored. + However if a second ellipse angle is given, then it is assumed that + the blue channel defines a variable angle for the ellipse ranging from + the first angle to the second angle given. This allows to generate + radial blurs, or a rough approximation for rotational blur. Or any mix + of the two. +

    +
    + +

    To print a complete list of all the available compose operators, use -list compose.

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/composite.html b/share/doc/ImageMagick-7/www/composite.html new file mode 100644 index 0000000..3a8e440 --- /dev/null +++ b/share/doc/ImageMagick-7/www/composite.html @@ -0,0 +1,554 @@ + + + + + + + + + + Command-line Tools: Composite @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Example Usage • Option Summary

    + +

    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.

    + +

    Example Usage

    + +

    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:

    + +
    magick composite -gravity center smile.gif  rose: rose-over.png
    +
    + +
      + smile + over + rose + ==> + rose +
    + +

    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
    +
    + +
      + white highlight + atop + red circle + ==> + red ball +
    + +

    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

    + +

    Option Summary

    + +

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

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    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
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/conjure.html b/share/doc/ImageMagick-7/www/conjure.html new file mode 100644 index 0000000..07258d2 --- /dev/null +++ b/share/doc/ImageMagick-7/www/conjure.html @@ -0,0 +1,1163 @@ + + + + + + + + + + Command-line Tools: Conjure @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Example Usage • Option Summary • Magick Scripting Language (MSL)

    + +

    The conjure program gives you the ability to perform custom image processing tasks from a script written in the Magick Scripting Language (MSL). MSL is XML-based and consists of action statements with attributes. Actions include reading an image, processing an image, getting attributes from an image, writing an image, and more. An attribute is a key/value pair that modifies the behavior of an action. See Command Line Processing for advice on how to structure your conjure command or see below for example usages of the command.

    + +

    Example Usage

    + +

    We list a few examples of the conjure command here to illustrate its usefulness and ease of use. To get started, here is simple conjure command:

    + +
    magick conjure -dimensions 400x400 msl:incantation.msl
    +
    + +

    The MSL script incantation.msl used above is here:

    + +
    <?xml version="1.0" encoding="UTF-8"?>
    +<image>
    +  <read filename="image.gif" />
    +  <get width="base-width" height="base-height" />
    +  <resize geometry="%[dimensions]" />
    +  <get width="resize-width" height="resize-height" />
    +  <print output="Image sized from %[base-width]x%[base-height] to %[resize-width]x%[resize-height].\n" />
    +  <write filename="image.png" />
    +</image>
    +
    + +

    In this example, a family stayed home for their vacation but as far as their friends are concerned they went to a beautiful beach in the Caribbean:

    + +
    <?xml version="1.0" encoding="UTF-8"?>
    +<group>
    +    <image id="family">
    +        <read filename="family.gif"/>
    +        <resize geometry="300x300"/>
    +    </image>
    +    <image id="palm-trees">
    +        <read filename="palm-trees.gif"/>
    +        <resize geometry="300x100"/>
    +    </image>
    +    <image>
    +        <read filename="beach.jpg"/>
    +        <composite image="family" geometry="+30+40"/>
    +        <composite image="palm-trees" geometry="+320+90"/>
    +    </image>
    +    <write filename="family-vacation.png"/>
    +</group>
    +
    + +

    Here we display the width in pixels of text for a particular font and pointsize.

    + +
    <?xml version="1.0" encoding="UTF-8"?>
    +<image>
    +  <query-font-metrics text="ImageMagick" font="helvetica" pointsize="48" />
    +  <print output="Text width is %[msl:font-metrics.width] pixels.\n" />
    +</image>
    +
    + +

    The query-font-metrics tag supports these properties:

    + +
    msl:font-metrics.pixels_per_em.x
    +msl:font-metrics.pixels_per_em.y
    +msl:font-metrics.ascent
    +msl:font-metrics.descent
    +msl:font-metrics.width
    +msl:font-metrics.height
    +msl:font-metrics.max_advance
    +msl:font-metrics.bounds.x1
    +msl:font-metrics.bounds.y1
    +msl:font-metrics.bounds.x2
    +msl:font-metrics.bounds.y2
    +msl:font-metrics.origin.x
    +msl:font-metrics.origin.y
    +
    + +

    MSL supports most methods and attributes discussed in the Perl API for ImageMagick. +

    + +

    In addition, MSL supports the swap element with a single indexes element.

    + +

    You can find additional examples of using conjure 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 conjure command recognizes these options. Click on an option to get more details about how that option works.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OptionDescription
    -debug eventsdisplay copious debugging information
    -helpprint program options
    -log formatformat of debugging information
    -monitormonitor progress
    -quietsuppress all warning messages
    -regard-warningspay attention to warning messages.
    -seed valueseed a new sequence of pseudo-random numbers
    -verboseprint detailed information about the image
    -versionprint version information
    + +

    Magick Scripting Language

    +

    The conjure command recognizes these MSL elements. Any element with a strike-thru is not supported yet.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Magick Scripting Language (MSL)
    MethodParametersDescription
    adaptiveblurgeometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"adaptively blur the image with a Gaussian operator of the given radius and standard deviation (sigma). Decrease the effect near edges.
    adaptiveresizegeometry="geometry", width="integer", height="integer", filter="Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc", support="double", blur="double"adaptively resize image using data dependant triangulation. Specify blur > 1 for blurry or < 1 for sharp
    adaptivesharpengeometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"adaptively sharpen the image with a Gaussian operator of the given radius and standard deviation (sigma). Increase the effect near edges.
    adaptivethresholdgeometry="geometry", width="integer", height="integer", offset="integer"local adaptive thresholding.
    addnoisenoise="Uniform, Gaussian, Multiplicative, Impulse, Laplacian, Poisson", attenuate="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"add noise to an image
    affinetransformaffine="array of float values", translate="float, float", scale= "float, float", rotate="float", skewX="float", skewY="float", interpolate="Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor", background="color name"affine transform image
    affinityimage="image-handle", method="None, FloydSteinberg, Riemersma"choose a particular set of colors from this image
    <annotate>text="string", font="string", family="string", style="Normal, Italic, Oblique, Any", stretch="Normal, UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, SemiExpanded, Expanded, ExtraExpanded, UltraExpanded", weight="integer", pointsize="integer", density="geometry", stroke="color name", strokewidth="integer", fill="color name", undercolor="color name", kerning="float", geometry="geometry", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast", antialias="true, false", x="integer", y="integer", affine="array of float values", translate="float, float", scale="float, float", rotate="float". skewX="float", skewY= "float", align="Left, Center, Right", encoding="UTF-8", interline-spacing="double", interword-spacing="double", direction="right-to-left, left-to-right"annotate an image with text. See QueryFontMetrics to get font metrics without rendering any text.
    autogammachannel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"automagically adjust gamma level of image
    autolevelchannel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"automagically adjust color levels of image
    autoorient adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation)
    blackthresholdthreshold="string", , channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"force all pixels below the threshold intensity into black
    blueshiftfactor="double",simulate a scene at nighttime in the moonlight. Start with a factor of 1.5.
    <blur>geometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma).
    <border>geometry="geometry", width="integer", height="integer", bordercolor="color name", compose="Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor ",surround the image with a border of color
    <charcoal>geometry="geometry", radius="double", sigma="double"simulate a charcoal drawing
    <chop>geometry="geometry", width="integer", height="integer", x="integer", y="integer"chop an image
    clampchannel="Red, RGB, All, etc."set 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.
    clipid="name", inside=""true, false"",apply along a named path from the 8BIM profile.
    clipmaskmask="image-handle"clip image as defined by the image mask
    clutimage="image-handle", interpolate="Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor", channel="Red, RGB, All, etc."apply a color lookup table to an image sequence
    coalesce merge a sequence of images
    colorcolor="color name"set the entire image to this color.
    colordecisionlistfilename="string",color correct with a color decision list.
    <colorize>fill="color name", blend="string"colorize the image with the fill color
    colormatrixmatrix="array of float values"apply color correction to the image. Although you can use variable sized matrices, typically you use a 5 x 5 for an RGBA image and a 6x6 for CMYKA. A 6x6 matrix is required for offsets (populate the last column with normalized values).
    <comment>stringadd a comment to your image
    comparelayersmethod="any, clear, overlay"compares each image with the next in a sequence and returns the minimum bounding region of any pixel differences it discovers. Images do not have to be the same size, though it is best that all the images are coalesced (images are all the same size, on a flattened canvas, so as to represent exactly how a specific frame should look).
    <composite>image="image-handle", compose="Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor ", mask="image-handle", geometry="geometry", x="integer", y="integer", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast", opacity="integer", tile="True, False", rotate="double", color="color name", blend="geometry", interpolate="undefined, average, bicubic, bilinear, filter, integer, mesh, nearest-neighbor, spline"composite one image onto another. Use the rotate parameter in concert with the tile parameter.
    <contrast>sharpen="True, False"enhance or reduce the image contrast
    contraststretchlevels="string", 'black-point'="double", 'white-point'="double", channel="Red, RGB, All, etc."improve the contrast in an image by `stretching' the range of intensity values
    convolvecoefficients="array of float values", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", bias="double"apply a convolution kernel to the image. Given a kernel "order" , you would supply "order*order" float values (e.g. 3x3 implies 9 values).
    <crop>geometry="geometry", width="integer", height="integer", x="integer", y="integer", fuzz="double", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast"crop an image
    cyclecolormapamount="integer"displace image colormap by amount
    decipherpassphrase="string"convert cipher pixels to plain pixels
    deconstruct break down an image sequence into constituent parts
    deskewgeometry="string",threshold="double"straighten the image
    <despeckle> reduce the speckles within an image
    differenceimage="image-handle"compute the difference metrics between two images
    distortpoints="array of float values", method="Affine, AffineProjection, Bilinear, Perspective, Resize, ScaleRotateTranslate", virtual-pixel="Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White", best-fit="True, False"distort image
    <draw>primitive="point, line, rectangle, arc, ellipse, circle, path, polyline, polygon, bezier, color, matte, text, @"filename"", points="string" , method=""Point, Replace, Floodfill, FillToBorder, Reset"", stroke="color name", fill="color name", font="string", pointsize="integer", strokewidth="float", antialias="true, false", bordercolor="color name", x="float", y="float", dash-offset="float", dash-pattern="array of float values", affine="array of float values", translate="float, float", scale="float, float", rotate="float", skewX="float", skewY="float", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline", kerning="float", text="string", vector-graphics="string", interline-spacing="double", interword-spacing="double", direction="right-to-left, left-to-right"annotate an image with one or more graphic primitives.
    encipherpassphrase="string"convert plain pixels to cipher pixels
    <edge>radius="double"enhance edges within the image with a convolution filter of the given radius.
    <emboss>geometry="geometry", radius="double", sigma="double"emboss the image with a convolution filter of the given radius and standard deviation (sigma).
    <enhance> apply a digital filter to enhance a noisy image
    <equalize>channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow" perform histogram equalization to the image
    extentgeometry="geometry", width="integer", height="integer", x="integer", y="integer", fuzz="double", background="color name", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast"set the image size
    evaluatevalue="double", operator=""Add, And, Divide, LeftShift, Max, Min, Multiply, Or, Rightshift, Subtract, Xor"", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow" apply an arithmetic, relational, or logical expression to the image
    filterkernel="string", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", bias="double"apply a convolution kernel to the image.
    <flip> reflect the image scanlines in the vertical direction
    <flop> reflect the image scanlines in the horizontal direction
    floodfillpaintgeometry="geometry", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", x="integer", y="integer" , fill="color name", bordercolor="color name", fuzz="double", invert="True, False"changes the color value of any pixel that matches the color of the target pixel and is a neighbor. If you specify a border color, the color value is changed for any neighbor pixel that is not that color.
    forwardfouriertransformmagnitude="True, False"implements the forward discrete Fourier transform (DFT)
    <frame>geometry="geometry", width="integer", height="integer", inner="integer", outer="integer", fill="color name", compose="Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor ",surround the image with an ornamental border
    functionparameters="array of float values", function="Sin", virtual-pixel="Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White"apply a function to the image
    <gamma>gamma="string", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"gamma correct the image
    gaussianblurgeometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma).
    getpixelgeometry="geometry", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", normalize="true, false", x="integer", y="integer"get a single pixel. By default normalized pixel values are returned.
    getpixelsgeometry="geometry", width="integer", height="integer", x="integer", y="integer", map="string", normalize="true, false"get image pixels as defined by the map (e.g. "RGB", "RGBA", etc.). By default non-normalized pixel values are returned.
    grayscalechannel="Average, Brightness, Lightness, Rec601Luma, Rec601Luminance, Rec709Luma, Rec709Luminance, RMS"convert image to grayscale
    haldclutimage="image-handle", channel="Red, RGB, All, etc."apply a Hald color lookup table to an image sequence
    identifyfile="file", features="distance", unique="True, False"identify the attributes of an image
    <implode>amount="double", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline"implode image pixels about the center
    inversediscretefouriertransformmagnitude="True, False"implements the inverse discrete Fourier transform (DFT)
    <label>stringassign a label to an image
    layersmethod="coalesce, compare-any, compare-clear, compare-over, composite, dispose, flatten, merge, mosaic, optimize, optimize-image, optimize-plus, optimize-trans, remove-dups, remove-zero", compose="Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, LinearLight, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor ", dither="true, false"compare each image the GIF disposed forms of the previous image in the sequence. From this, attempt to select the smallest cropped image to replace each frame, while preserving the results of the animation.
    <level>levels="string", 'black-point'="double", 'gamma'="double", 'white-point'="double", channel="Red, RGB, All, etc."adjust the level of image contrast
    levelcolorsinvert=>"True, False", 'black-point'="string", 'white-point'="string", channel="Red, RGB, All, etc."level image with the given colors
    linearstretchlevels="string", 'black-point'="double", 'white-point'="double"linear with saturation stretch
    liquidresizegeometry="geometry", width="integer", height="integer", delta-x="double", rigidity="double"rescale image with seam-carving.
    <magnify> double the size of the image with pixel art scaling
    maskmask="image-handle"composite image pixels as defined by the mask
    mattefloodfillgeometry="geometry", x="integer", y="integer" , matte="integer", bordercolor="color name", fuzz="double", invert="True, False"changes the matte value of any pixel that matches the color of the target pixel and is a neighbor. If you specify a border color, the matte value is changed for any neighbor pixel that is not that color.
    medianfiltergeometry="geometry", width="integer", height="integer", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"replace each pixel with the median intensity pixel of a neighborhood.
    <minify> half the size of an image
    modegeometry="geometry", width="integer", height="integer", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"make each pixel the "predominant color" of the neighborhood.
    <modulate>factor="geometry", brightness="double", saturation="double", hue="double", lightness="double", whiteness="double", blackness="double" vary the brightness, saturation, and hue of an image by the specified percentage
    morphologykernel="string", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", iterations="integer"apply a morphology method to the image.
    motionblurgeometry="geometry", radius="double", sigma="double", angle="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma) at the given angle to simulate the effect of motion
    <negate>gray="True, False", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"replace each pixel with its complementary color (white becomes black, yellow becomes blue, etc.)
    <normalize>channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow" transform image to span the full range of color values
    oilpaintradius="integer"simulate an oil painting
    <opaque>color="color name", +fill="color name", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", invert="True, False"change this color to the fill color within the image
    orderedditherthreshold="threshold, checks, o2x2, o3x3, o4x4, o8x8, h4x4a, h6x6a, h8x8a, h4x4o, h6x6o, h8x8o, h16x16o, hlines6x4", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"order dither image
    perceptibleepsilon="double", channel="Red, RGB, All, etc."set each pixel whose value is less than |"epsilon"| to "-epsilon" or "epsilon" (whichever is closer) otherwise the pixel value remains unchanged..
    polaroidcaption="string", angle="double", pointsize="double", font="string", stroke= "color name", strokewidth="integer", fill="color name", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast", background="color name"simulate a Polaroid picture.
    posterizelevels="integer", dither="True, False"reduce the image to a limited number of color level
    <profile>name="string", profile="blob", rendering-intent="Undefined, Saturation, Perceptual, Absolute, Relative", black-point-compensation="True, False"add or remove ICC or IPTC image profile; name is formal name (e.g. ICC or filename; set profile to '' to remove profile
    <quantize>colors="integer", colorspace="RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YIQ, YPbPr, YUV, CMYK, sRGB, HSL, HSB", treedepth= "integer", dither="True, False", dither-method="Riemersma, Floyd-Steinberg", measure_error="True, False", global_colormap="True, False", transparent-color="color"preferred number of colors in the image
    radialblurgeometry="geometry", angle="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"radial blur the image.
    <raise>geometry="geometry", width="integer", height="integer", x="integer", y="integer", raise="True, False"lighten or darken image edges to create a 3-D effect
    reducenoisegeometry="geometry", width="integer", height="integer", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"reduce noise in the image with a noise peak elimination filter
    remapimage="image-handle", dither="true, false", dither-method="Riemersma, Floyd-Steinberg"replace the colors of an image with the closest color from a reference image.
    <resample>density="geometry", x="double", y="double", filter="Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc", support="double"resample image to desired resolution. Specify blur > 1 for blurry or < 1 for sharp
    <resize>geometry="geometry", width="integer", height="integer", filter="Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc", support="double", blur="double"scale image to desired size. Specify blur > 1 for blurry or < 1 for sharp
    <roll>geometry="geometry", x="integer", y="integer"roll an image vertically or horizontally
    <rotate>degrees="double", background="color name"rotate an image
    <sample>geometry="geometry", width="integer", height="integer"scale image with pixel sampling.
    <scale>geometry="geometry", width="integer", height="integer"scale image to desired size
    <segment>colorspace="RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK", verbose="True, False", cluster-threshold="double", smoothing-threshold="double"segment an image by analyzing the histograms of the color components and identifying units that are homogeneous
    selectiveblurgeometry="geometry", radius="double", sigma="double", threshold="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"selectively blur pixels within a contrast threshold.
    separatechannel="Red, RGB, All, etc."separate a channel from the image into a grayscale image
    <shade>geometry="geometry", azimuth="double", elevation="double", gray="true, false"shade the image using a distant light source
    setpixelgeometry="geometry", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", color="array of float values", x="integer", y="integer", color="array of float values"set a single pixel. By default normalized pixel values are expected.
    <shadow>geometry="geometry", opacity="double", sigma="double", x="integer", y="integer"simulate an image shadow
    <sharpen>geometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"sharpen the image with a Gaussian operator of the given radius and standard deviation (sigma).
    <shave>geometry="geometry", width="integer", height="integer"shave pixels from the image edges
    <shear>geometry="geometry", x="double", y="double" fill="color name"shear the image along the X or Y axis by a positive or negative shear angle
    sigmoidalcontrastgeometry="string", 'contrast'="double", 'mid-point'="double" channel="Red, RGB, All, etc.", sharpen="True, False"sigmoidal non-lineraity contrast control. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast" indicates how much to increase the contrast (0 is none; 3 is typical; 20 is a lot); mid-point" indicates where midtones fall in the resultant image (0 is white; 50% is middle-gray; 100% is black). To decrease contrast, set sharpen to False.
    <signature> generate an SHA-256 message digest for the image pixel stream
    sketchgeometry="geometry", radius="double", sigma="double", angle="double"sketch the image with a Gaussian operator of the given radius and standard deviation (sigma) at the given angle
    <solarize>geometry="string", threshold="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"negate all pixels above the threshold level
    sparsecolorpoints="array of float values", method="Barycentric, Bilinear, Shepards, Voronoi", virtual-pixel="Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White"interpolate the image colors around the supplied points
    splicegeometry="geometry", width="integer", height="integer", x="integer", y="integer", fuzz="double", background="color name", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast"splice an image
    <spread>radius="double", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline"displace image pixels by a random amount
    statisticgeometry="geometry", width="integer", height="integer", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", type="Median, Mode, Mean, Maximum, Minimum, ReduceNoise"replace each pixel with corresponding statistic from the neighborhood.
    <stegano>image="image-handle", offset="integer"hide a digital watermark within the image
    <stereo>image="image-handle", x="integer", y="integer"composites two images and produces a single image that is the composite of a left and right image of a stereo pair
    <strip> strip an image of all profiles and comments.
    <swirl>degrees="double", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline"swirl image pixels about the center
    texturetexture="image-handle"name of texture to tile onto the image background
    thumbnailgeometry="geometry", width="integer", height="integer"changes the size of an image to the given dimensions and removes any associated profiles.
    <threshold>threshold="string", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"threshold the image
    tintfill="color name", blend="string"tint the image with the fill color.
    <transparent>color="color name", invert="True, False"make this color transparent within the image
    transpose flip image in the vertical direction and rotate 90 degrees
    transverse flop image in the horizontal direction and rotate 270 degrees
    <trim> remove edges that are the background color from the image
    unsharpmaskgeometry="geometry", radius="double", sigma="double", gain="double", threshold="double"sharpen the image with the unsharp mask algorithm.
    vignettegeometry="geometry", radius="double", sigma="double", x="integer", y="integer", background="color name"offset the edges of the image in vignette style
    wavegeometry="geometry", amplitude="double", wavelength="double", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline"alter an image along a sine wave
    whitethresholdthreshold="string", , channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"force all pixels above the threshold intensity into white
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/connected-components.html b/share/doc/ImageMagick-7/www/connected-components.html new file mode 100644 index 0000000..314f379 --- /dev/null +++ b/share/doc/ImageMagick-7/www/connected-components.html @@ -0,0 +1,145 @@ + + + + + + + + + + Connected Components Labeling @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Connected-component labeling (alternatively connected-component analysis, blob extraction, region labeling, blob discovery, or region extraction) uniquely labels connected components in an image. The labeling process scans the image, pixel-by-pixel from top-left to bottom-right, in order to identify connected pixel regions, i.e. regions of adjacent pixels which share the same set of intensity values. For example, let's find the objects in this image:

    +
      + purse +
    +

    To identify the objects in this image, use this command:

    +
    magick objects.gif -connected-components 4 -auto-level -depth 8 objects.png
    +

    The detected objects are uniquely labeled. Use auto leveling to visualize the detected objects:

    +
      + Objects +
    +

    Object statistics is useful to review. To display them, use this command:

    +
    magick objects.gif -define connected-components:verbose=true -connected-components 4 objects.png
    +

    Five objects were detected in the source image with these statistics:

    +
    Objects (id: bounding-box centroid area mean-color):
    +  0: 256x171+0+0 119.2,80.8 33117 srgb(0,0,0)
    +  2: 120x135+104+18 159.5,106.5 8690 srgb(255,255,255)
    +  3: 50x36+129+44 154.2,63.4 1529 srgb(0,0,0)
    +  4: 21x23+0+45 8.8,55.9 409 srgb(255,255,255)
    +  1: 4x10+252+0 253.9,4.1 31 srgb(255,255,255)
    +
    +

    Use -connected-components 8 to visit 8 neighbors rather than 4. By default, neighbor colors must be exact to be part of a unique object. Use the -fuzz option to include pixels as part of an object that are close in color.

    +

    You might want to eliminate small objects by merging them with their larger neighbors. If so, use this command:

    +
    magick objects.gif -define connected-components:area-threshold=410 -connected-components 4 \
    +  -auto-level objects.jpg
    +

    Here are the expected results. Notice, how the small objects are now merged with the background.

    +
      + Objects +
    +

    Notice how two of the objects were merged leaving three remaining objects:

    +
    Objects (id: bounding-box centroid area mean-color):
    +  0: 256x171+0+0 118.0,80.4 33557 srgb(0,0,0)
    +  2: 120x135+104+18 159.5,106.5 8690 srgb(255,255,255)
    +  3: 50x36+129+44 154.2,63.4 1529 srgb(0,0,0)
    +

    By default, the labeled image is grayscale. You can instead replace the object color in the labeled image with the mean-color from the source image. Simply add this setting, -define connected-components:mean-color=true, to your command line.

    +

    You may want to remove certain objects by making them transparent. Use -define connected-components:remove=list-of-ids (e.g. -define connected-components:remove=2,4-5). Or use -define connected-components:keep=list-of-ids to keep these objects and make all others transparent.

    +

    Objects in your image may look homogeneous but have slightly different color values. By default, only pixels that match exactly are considered as part of a particular object. For slight variations of color in an object, use -fuzz. For example,

    +
    magick star-map.png -fuzz 5% -define connected-components:verbose=true \
    +  -define connected-components:mean-color=true -connected-components 4 stars.gif
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/contact.html b/share/doc/ImageMagick-7/www/contact.html new file mode 100644 index 0000000..682126a --- /dev/null +++ b/share/doc/ImageMagick-7/www/contact.html @@ -0,0 +1,163 @@ + + + + + + + + + + Contact the Development Team @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +
    +

    Post here for any of the issues listed below. You can expect a response from our team if your issue is a sponsorship, license, security, or paid support issue. If you require a response for any other issue, post to the ImageMagick public forums. You can also post bug reports to the issues forum. Note, we do not offer sponsored links nor do we respond to solicitations.

    +
    +

    Contact the Wizards

    +

    Enter this code, +040d70, in the Authenticate field and fill in the remaining fields. Press Send to forward your message to the ImageMagick wizards:

    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + diff --git a/share/doc/ImageMagick-7/www/convert.html b/share/doc/ImageMagick-7/www/convert.html new file mode 100644 index 0000000..65e338b --- /dev/null +++ b/share/doc/ImageMagick-7/www/convert.html @@ -0,0 +1,1353 @@ + + + + + + + + + + Command-line Tools: Convert @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Use the convert 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.

    + +

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

    + +
    magick convert rose.jpg rose.png
    +
    + +

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

    + +
    magick convert rose.jpg -resize 50% rose.png
    +
    + + + +

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

    + +
    magick convert -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
    +
    + +
      + fuzzy-magick +
    + +

    or here we resize an image with improved quality:

    + +
    magick convert 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');
    +
    + +

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

    + +

    Option Summary

    + +

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

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -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
    -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
    -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
    -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
    -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
    -write-mask filenameassociate a write mask with the image
    +
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/develop.html b/share/doc/ImageMagick-7/www/develop.html new file mode 100644 index 0000000..413e211 --- /dev/null +++ b/share/doc/ImageMagick-7/www/develop.html @@ -0,0 +1,230 @@ + + + + + + + + + + Develop @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    ImageMagick includes a number of ready-made interfaces. This makes it possible to modify or create images automagically and dynamically utilizing your favorite development platform.

    + +
    +
    Ada
    + +
    G2F implements an Ada 95 binding to a subset of the low-level MagickCore library.
    + +
    C
    + +
    Use MagickWand to convert, compose, and edit images from the C language. There is also the low-level MagickCore library for wizard-level developers.
    + +
    Ch
    + +
    ChMagick is a Ch binding to the MagickCore and MagickWand API. Ch is an embeddable C/C++ interpreter for cross-platform scripting.
    + +
    COM+
    + +
    Use ImageMagickObject to convert, compose, and edit images from a Windows COM+ compatible component.
    + +
    C++
    + +
    Magick++ provides an object-oriented C++ interface to ImageMagick. See A Gentle Introduction to Magick++ for an introductory tutorial to Magick++. We include the source if you want to correct, enhance, or expand the tutorial.
    + +
    GO
    +
    GoImagick is a set of Go bindings to ImageMagick's MagickWand and MagickCore C APIs.
    + +
    Java
    + +
    JMagick provides an object-oriented Java interface to ImageMagick. Im4java is a pure-java interface to the ImageMagick command-line.
    + +
    Julia
    + +
    JuliaIO provides an object-oriented Julia interface to ImageMagick.
    + +
    LabVIEW
    + +
    LVOOP ImageMagick is an object-oriented LabVIEW interface to ImageMagick.
    + +
    Lisp
    + +
    CL-Magick provides a Common Lisp interface to the ImageMagick library.
    + +
    Lua
    + +
    Lua bindings to ImageMagick for LuaJIT using FFI.
    +
    +
    Lua bindings to ImageMagick for Lua using pure-C.
    + +
    Neko
    + +
    NMagick is a port of the ImageMagick library to the haXe and Neko platforms. It provides image manipulation capabilities to both web and desktop applications using Neko.
    + +
    .NET
    + +
    Use Magick.NET to convert, compose, and edit images from Windows .NET.
    +
    + +
    ImageMagickApp is a .NET application written in C# that utilizes the ImageMagick command line to allow conversion of multiple image formats to different formats.
    + +
    Pascal
    + +
    PascalMagick a Pascal binding for the MagickWand API and also the low-level MagickCore library. It works with Free Pascal / Lazarus and Delphi.
    + +
    Perl
    + +
    Use PerlMagick to convert, compose, and edit images from the Perl language.
    + +
    PHP
    + +
    MagickWand for PHP a native PHP-extension to the ImageMagick MagickWand API.
    + +
    +
    IMagick is a native PHP extension to create and modify images using the ImageMagick API. Documentation for the extension is available here.
    + +
    +
    phMagick is a wrapper class for ImageMagick, wrapping the most common web image manipulation actions in easy to use functions, but allowing full access to ImageMagick's power by issuing system calls to it's command-line programs.
    + + +
    Python
    + + +
    Wand is a ctypes-based ImagedMagick binding library for Python.
    +
    +
    PythonMagick is an object-oriented Python interface to ImageMagick.
    +
    +
    PythonMagickWand is an object-oriented Python interface to MagickWand based on ctypes.
    +
    +
    Scilab Image Processing toolbox utilizes ImageMagick to do imaging tasks such as filtering, blurring, edge detection, thresholding, histogram manipulation, segmentation, mathematical morphology, color image processing, etc..
    + +
    REALbasic
    + +
    The MBS Realbasic ImageMagick is a plugin that utilizes the power of ImageMagick from within the RealBasic environment.
    + +
    R
    + +
    The magick package wraps the Magick++ STL to provide vectorized image processing in R. Get started with using the package vignette.
    + +
    Ruby
    + +
    RMagick is an interface between the Ruby programming language and the MagickCore image processing libraries. Get started with RMagick by perusing the documentation.
    +
    + +
    MagickWand for Ruby is an interface between the Ruby programming language and the MagickWand image processing libraries. Get started with MagickWand for PHP by perusing the documentation.
    + +
    +
    MiniMagick is a Ruby wrapper for ImageMagick command line. MiniMagick gives you convenient access to all the command line options ImageMagick supports.
    +
    + +
    QuickMagick is a gem for easily accessing ImageMagick command line tools from Ruby programs.
    + +
    Rust
    + +
    RustWand is a MagickWand bindings for the Rust language.
    + +
    Tcl/Tk
    + +
    TclMagick a native Tcl-extension to the ImageMagick MagickWand API.
    + +
    XML RPC
    + +
    RemoteMagick is an XML-RPC web service that creates image thumbnails.
    +
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/display.html b/share/doc/ImageMagick-7/www/display.html new file mode 100644 index 0000000..553c64b --- /dev/null +++ b/share/doc/ImageMagick-7/www/display.html @@ -0,0 +1,594 @@ + + + + + + + + + + Command-line Tools: Display @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    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
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/distribute-pixel-cache.html b/share/doc/ImageMagick-7/www/distribute-pixel-cache.html new file mode 100644 index 0000000..0169080 --- /dev/null +++ b/share/doc/ImageMagick-7/www/distribute-pixel-cache.html @@ -0,0 +1,123 @@ + + + + + + + + + + Distributed Pixel Cache @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    A distributed pixel cache is an extension of the traditional pixel cache available on a single host. The distributed pixel cache may span multiple servers so that it can grow in size and transactional capacity to support very large images or large image sequences. Start up the pixel cache server on one or more hosts. When you read or operate on an image and the local pixel cache resources are exhausted, ImageMagick contacts one or more of these remote pixel servers to store or retrieve pixels.

    +

    For really large images or large image sequences, or if there is limited resources on your host, you can utilize a distributed pixel cache on one or more remote hosts. To get started, first set your shared secret in the policy.xml security policy configuration file:

    +
    +<policy domain="cache" name="shared-secret" value="passhrase" stealth="true"/>
    +
    + +

    Here we create two distributed pixel caches and utilize them from our desktop:

    +
    convert -distribute-cache 6668 &  # start on 192.168.100.50
    +convert -distribute-cache 6668 &  # start on 192.168.100.51
    +convert -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \
    +  -define registry:cache:hosts=192.168.100.50:6668,192.168.100.51:6668 \
    +  myhugeimage.jpg -sharpen 5x2 myhugeimage.png
    +
    +

    For large image sequences, the servers are contacted in a round-robin fashion to distribute the load over multiple distributed pixel caches (assuming you have a host list rather than a single host). In our example, some modest resources are available on the desktop as defined by the -limit option. For smaller images, they are allocated on the desktop up to the specified limits.

    +

    Your image processing tasks are likely to perform slower when utilizing a distributed pixel cache due to pixels shuffling between the client and the server over a network. Algorithms that access virtual pixels (e.g. -sharpen) are noticeably slower, up to 3 times slower, than algorithms that only access authentic pixels (e.g. -negate) due to increased network traffic.

    +

    A client can only contact a compatible distributed pixel cache server. Compatibility requires the same ImageMagick library interface, quantum depth, HDRI status, OS word size, and endianness. The distributed pixel cache checks these attributes and exits if these requirements are not met.

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/download.html b/share/doc/ImageMagick-7/www/download.html new file mode 100644 index 0000000..499400b --- /dev/null +++ b/share/doc/ImageMagick-7/www/download.html @@ -0,0 +1,465 @@ + + + + + + + + + + Download @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Unix Binary Release • Mac OS X Binary Release • iOS Binary Release • Windows Binary Release

    + +

    You can install ImageMagick from source. However, if you don't have a proper development environment or if you're anxious to get started, download a ready-to-run Unix or Windows executable. Before you download, you may want to review recent changes to the ImageMagick distribution.

    + +

    ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors around the world.

    + +

    Unix Binary Release

    + +

    These are the Unix variations that we support. If your system is not on the list, try installing from source. Although ImageMagick runs fine on a single core computer, it automagically runs in parallel on dual and quad-core systems reducing run times considerably.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VersionHTTPFTPDescription
    ImageMagick-7.0.7-22.x86_64.rpmdownloaddownloadRedhat / CentOS 7.1 x86_64 RPM
    ImageMagick-libs-7.0.7-22.x86_64.rpmdownloaddownloadRedhat / CentOS 7.1 x86_64 RPM
    ImageMagick RPM'sdownloaddownloadDevelopment, Perl, C++, and documentation RPM's.
    ImageMagick-i386-pc-solaris2.11.tar.gzdownloaddownloadSolaris Sparc 2.11
    ImageMagick-i686-pc-cygwin.tar.gzdownloaddownloadCygwin
    ImageMagick-i686-pc-mingw32.tar.gzdownloaddownloadMinGW
    + +

    Verify its message digest.

    + +

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

    Next, extract the contents of the package. For example:

    + +
    tar xvzf ImageMagick.tar.gz
    + +

    Set the MAGICK_HOME environment variable to the path where you extracted the ImageMagick files. For example:

    + +
    $ export MAGICK_HOME="$HOME/ImageMagick-7.0.7"
    +

    If the bin subdirectory of the extracted package is not already in your executable search path, add it to your PATH environment variable. For example:

    + +
    export PATH="$MAGICK_HOME/bin:$PATH
    + + +

    On Linux and Solaris machines add $MAGICK_HOME/lib to the LD_LIBRARY_PATH environment variable:

    + +
    LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$MAGICK_HOME/lib
    +export LD_LIBRARY_PATH
    + +

    Finally, to verify ImageMagick is working properly, type the following on the command line:

    + +
    magick logo: logo.gif
    +identify logo.gif
    +display logo.gif
    + +

    Congratulations, you have a working ImageMagick distribution under Unix or Linux and you are ready to use ImageMagick to convert, compose, or edit your images or perhaps you'll want to use one of the Application Program Interfaces for C, C++, Perl, and others.

    + +

    Mac OS X Binary Release

    + +

    We recommend MacPorts which custom builds ImageMagick in your environment (some users prefer Homebrew). Download MacPorts and type:

    + +
    sudo port install ImageMagick
    + +

    The port command downloads ImageMagick and many of its delegate libraries (e.g. JPEG, PNG, Freetype, etc.) and configures, builds, and installs ImageMagick automagically. Alternatively, you can download the ImageMagick Mac OS X distribution we provide:

    + +
    + + + + + + + + + + + + + + + +
    VersionHTTPFTPDescription
    ImageMagick-x86_64-apple-darwin17.3.0.tar.gzdownloaddownloadmacOS High Sierra
    + +

    Verify its message digest.

    + +

    Create (or choose) a directory to install the package into and change to that directory, for example:

    + +
    cd $HOME
    + +

    Next, extract the contents of the package. For example:

    + +
    tar xvzf ImageMagick-x86_64-apple-darwin17.2.0.tar.gz
    + +

    Set the MAGICK_HOME environment variable to the path where you extracted the ImageMagick files. For example:

    + +
    $ export MAGICK_HOME="$HOME/ImageMagick-7.0.7"
    +

    If the bin subdirectory of the extracted package is not already in your executable search path, add it to your PATH environment variable. For example:

    + +
    export PATH="$MAGICK_HOME/bin:$PATH"
    + + +

    Set the DYLD_LIBRARY_PATH environment variable:

    + +
    export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"
    + +

    Finally, to verify ImageMagick is working properly, type the following on the command line:

    + +
    magick logo: logo.gif
    +identify logo.gif
    +display logo.gif
    + +

    Note, the display program requires the X11 server available on your Mac OS X installation DVD. Once that is installed, you will also need to set export DISPLAY=:0.

    + +

    The best way to deal with all the exports is to put them at the end of your .profile file

    + +

    Congratulations, you have a working ImageMagick distribution under Mac OS X and you are ready to use ImageMagick to convert, compose, or edit your images or perhaps you'll want to use one of the Application Program Interfaces for C, C++, Perl, and others.

    + +

    iOS Binary Release

    + +

    ~Claudio provides iOS builds of ImageMagick.

    + +

    Download iOS Distribution

    + +

    You can download the iOS distribution directly from ImageMagick's repository.

    + +

    There are always 2 packages for the compiled ImageMagick:

    + +
      +
    • iOSMagick-VERSION-libs.zip
    • +
    • iOSMagick-VERSION.zip
    • +
    + +

    The first one includes headers and compiled libraries that have been used to compile ImageMagick. Most users would need this one.

    + +

    ImageMagick compiling script for iOS OS and iOS Simulator

    + +

    To run the script:

    +
    ./imagemagick_compile.sh VERSION
    +

    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

    +
      +
    • png
    • +
    • jpeg
    • +
    • tiff
    • +
    + +

    Upon successful compilation a folder called IMPORT_ME is created on your ~/Desktop. You can import it into your XCode project.

    + +
    XCode project settings
    + +

    After including everything into XCode please also make sure to have these settings (Build tab of the project information):

    +
      +
    • Other Linker Flags: -lMagickCore-Q16 -lMagickWand-Q16 -ljpeg -lpng -lbz2 -lz
    • +
    • Header Search Paths: $(SRCROOT) - make it Recursive
    • +
    • Library Search Paths: $(SRCROOT) - make it Recursive
    • +
    + +

    On the lower left click on the small-wheel and select: Add User-Defined Setting

    +
      +
    • Key: OTHER_CFLAGS
    • +
    • Value: -Dmacintosh=1
    • +
    + +
    Sample project
    + +

    A sample project is available for download. It is not updated too often, but it does give an idea of all the settings and some ways to play around with ImageMagick in an iOS application.

    + +

    Windows Binary Release

    + +

    ImageMagick runs on Windows 10 (x86 & x64), Windows 8 (x86 & x64), Windows 7 (x86 & x64), Windows Server 2012, Windows XP (x86) with Service Pack 3, Windows Vista (x86 & x64) with Service Pack 2, Windows Server 2003 (x86 & x64) with Service Pack 2 (verify MSXML6 is present), Windows Server 2003 R2 (x86 & x64), Windows Server 2008 (x86 & x64) with Service Pack 2, and Windows Server 2008 R2 (x64).

    + +

    The amount of memory can be an important factor, especially if you intend to work on large images. A minimum of 512 MB of RAM is recommended, but the more RAM the better. Although ImageMagick runs well on a single core computer, it automagically runs in parallel on multi-core systems reducing run times considerably.

    + +

    The Windows version of ImageMagick is self-installing. Simply click on the appropriate version below and it will launch itself and ask you a few installation questions. Versions with Q8 in the name are 8 bits-per-pixel component (e.g. 8-bit red, 8-bit green, etc.), whereas, Q16 in the filename are 16 bits-per-pixel component. A Q16 version permits you to read or write 16-bit images without losing precision but requires twice as much resources as the Q8 version. Versions with dll in the filename include ImageMagick libraries as dynamic link libraries. Unless you have a Windows 32-bit OS, we recommend this version of ImageMagick for 64-bit Windows:

    + +
    + + + + + + + + + + + + + + + +
    VersionHTTPFTPDescription
    ImageMagick-7.0.7-22-Q16-x64-dll.exedownloaddownloadWin64 dynamic at 16 bits-per-pixel component
    + +

    Or choose from these alternate Windows binary distributions:

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VersionHTTPFTPDescription
    ImageMagick-7.0.7-22-Q16-x64-static.exedownloaddownloadWin64 static at 16 bits-per-pixel component
    ImageMagick-7.0.7-22-Q8-x64-dll.exedownloaddownloadWin64 dynamic at 8 bits-per-pixel component
    ImageMagick-7.0.7-22-Q8-x64-static.exedownloaddownloadWin64 static at 8 bits-per-pixel component
    ImageMagick-7.0.7-22-Q16-HDRI-x64-dll.exedownloaddownloadWin64 dynamic at 16 bits-per-pixel component with high dynamic-range imaging enabled
    ImageMagick-7.0.7-22-Q16-HDRI-x64-static.exedownloaddownloadWin64 static at 16 bits-per-pixel component with high dynamic-range imaging enabled
    ImageMagick-7.0.7-22-Q16-x86-dll.exedownloaddownloadWin32 dynamic at 16 bits-per-pixel component
    ImageMagick-7.0.7-22-Q16-x86-static.exedownloaddownloadWin32 static at 16 bits-per-pixel component
    ImageMagick-7.0.7-22-Q8-x86-dll.exedownloaddownloadWin32 dynamic at 8 bits-per-pixel component
    ImageMagick-7.0.7-22-Q8-x86-static.exedownloaddownloadWin32 static at 8 bits-per-pixel component
    ImageMagick-7.0.7-22-Q16-HDRI-x86-dll.exedownloaddownloadWin32 dynamic at 16 bits-per-pixel component with high dynamic-range imaging enabled
    ImageMagick-7.0.7-22-Q16-HDRI-x86-static.exedownloaddownloadWin32 static at 16 bits-per-pixel component with high dynamic-range imaging enabled
    ImageMagick-7.0.7-22-portable-Q16-x86.zipdownloaddownloadPortable 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-22-portable-Q16-x64.zipdownloaddownloadPortable Win64 static at 16 bits-per-pixel component. Just copy to your host and run (no installer, no Windows registry entries).
    + +

    Verify its message digest.

    + +

    To verify ImageMagick is working properly, type the following in an Command Prompt window:

    + +
    magick logo: logo.gif
    +magick identify logo.gif
    +magick logo.gif win:
    + +

    If you have any problems, you likely need vcomp120.dll. To install it, download Visual C++ 2013 Redistributable Package.

    + +

    Note, use a double quote (") rather than a single quote (') for the ImageMagick command line under Windows:

    + +
    magick "e:/myimages/image.png" "e:/myimages/image.jpg"
    +

    Use two double quotes for VBScript scripts:

    +
    Set objShell = wscript.createobject("wscript.shell")
    +objShell.Exec("magick ""e:/myimages/image.png"" ""e:/myimages/image.jpg""")
    + +

    Congratulations, you have a working ImageMagick distribution under Windows and you are ready to use ImageMagick to convert, compose, or edit your images or perhaps you'll want to use one of the Application Program Interfaces for C, C++, Perl, and others.

    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/escape.html b/share/doc/ImageMagick-7/www/escape.html new file mode 100644 index 0000000..53ec1d6 --- /dev/null +++ b/share/doc/ImageMagick-7/www/escape.html @@ -0,0 +1,910 @@ + + + + + + + + + + Format and Print Image Properties @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    +
    +
    +
    +

    There are copious amounts of extra data associated with images (metadata), beyond the actual image pixels. This metadata can be useful, either for display, or for various calculations, or in modifying the behavior of later image processing operations. You can utilize percent escapes in a number of options, for example in -format or in montage -label, to print various properties and other settings associated with an image.

    + +
    + + + + + + + + + + + + + + + + +
    Profile DataSuch as EXIF: data, containing focal lengths, exposures, dates, and in + come cases GPS locations. +
    AttributesThese are directly involved with image data, and more commonly + modified as part of normal image processing. These include + width, height, depth, image type (colorspace), timing delays, and + background color. Most specific percent escapes is to access this + information. +
    PropertiesThese are stored as a table of free form strings, and are (if possible) + saved with the image (especially in MIFF and PNG image file formats). + These include: Labels, Captions, Comments. +
    ArtifactsThese are various operational (expert) settings that are saved for + use by various operators, or by the user for future use. It is just + a table of free-form strings. They are not saved with the image when + written. See Artifacts and Options below for details. +
    OptionsAlso operational (expert) settings that are saved for + use by various operators, but are set globally for use by a whole + image list (also not saved). See Artifacts and Options below. +
    + +

    Percent Escape Handling

    + +

    If you request a percent escape such as %[key] the setting +is looked for in the following order until the first match has been +found...

    + +
      +
    1. Handle special prefixes such as 'artifact:' 'option:' 'exif:', or + 'fx:'. This includes and calculations and or globs of those prefixes such + as 'exif:*' or 'artifact:*' (see below).
    2. + +
    3. If key contains a glob pattern (but no known prefix) + search free-form properties table.
    4. + +
    5. If key is a special image 'attribute' name (see list + above) return the associated or calculated image attribute.
    6. + +
    7. Search for setting as a free-form 'property'
    8. +
    9. Search for setting as a free-form 'artifact'
    10. +
    11. Search for setting as a free-form 'option'
    12. + +
    13. Replace escape with empty string, and perhaps produce a warning.
    14. +
    + +

    Remember, all long name forms of percent escapes are handled in a is case +insensitive manner.

    + +

    As of IM v6.8.0-5 you can now access the Artifact and Option +free-form string tables directly, allowing you to override the above sequence, +and avoid accessing an attribute or property of the same name.

    + +
    %[artifact:setting]
    +%[option:setting]
    +
    + + +

    Single Letter Attribute Percent Escapes

    + +

    Here are common single letter escapes (short form) is used to report the most +common attributes and properties of an image, such as: the image filename +filename, type, width, height.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    \nnewline
    \rcarriage return
    <less-than character.
    >greater-than character.
    &ampersand character.
    %%a percent sign
    %bfile size of image read in
    %ccomment meta-data property
    %ddirectory component of path
    %efilename extension or suffix
    %ffilename (including suffix)
    %glayer canvas page geometry (equivalent to "%Wx%H%X%Y")
    %hcurrent image height in pixels
    %iimage filename (note: becomes output filename for "info:")
    %kCALCULATED: number of unique colors
    %llabel meta-data property
    %mimage file format (file magic)
    %nnumber of images in current image sequence
    %ooutput filename (used for delegates)
    %pindex of image in current image list
    %qquantum depth (compile-time constant)
    %rimage class and colorspace
    %sscene number (from input unless re-assigned)
    %tfilename without directory or extension (suffix)
    %uunique temporary filename (used for delegates)
    %wcurrent width in pixels
    %xx resolution (density)
    %yy resolution (density)
    %zimage depth (as read in unless modified, image save depth)
    %Aimage transparency channel enabled (true/false)
    %Cimage compression type
    %Dimage GIF dispose method
    %Goriginal image size (%wx%h; before any resizes)
    %Hpage (canvas) height
    %MMagick filename (original file exactly as given, including read mods)
    %Opage (canvas) offset ( = %X%Y )
    %Ppage (canvas) size ( = %Wx%H )
    %Qimage compression quality ( 0 = default )
    %S?? scenes ??
    %Timage time delay (in centi-seconds)
    %Uimage resolution units
    %Wpage (canvas) width
    %Xpage (canvas) x offset (including sign)
    %Ypage (canvas) y offset (including sign)
    %@CALCULATED: trim bounding box (without actually trimming)
    %#CALCULATED: 'signature' hash of image values
    + +

    Here is a sample command and its output for an image with filename +bird.miff and whose width is 512 and height is 480.

    + +
    -> identify -format "%m:%f %wx%h" bird.miff
    +MIFF:bird.miff 512x480
    +
    + +

    Note that all single letter percent escapes can also be used using long +form (from IM version 6.7.6-9, see next). For example %[f] is +equivalent to the %f short form.

    + +

    WARNING: short form percent escapes are NOT performed when the percent +is after a number. For example, 10%x10 does not expand the +%x as a percent escape. If you specifically want to expand the +'x', use the long form which overrides this special case. EG: +10%[x]10.

    + +

    Also be warned that calculated attributes can take some time to generate, +especially for large images.

    + +

    Long Form Attribute Percent Escapes

    + +

    In addition to the above specific and calculated attributes are recognized +when enclosed in braces (long form):

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    %[basename]base filename, no suffixes (as %t)
    %[bit-depth]
    %[caption]caption meta-data property
    %[caption:pointsize]returns the pointsize computed during caption: processing (as of IM 6.9.1-0)
    %[channels]??? channels in use - colorspace ???
    %[colors]Number of unique colors in the image (as of IM 7.0.3.8)
    %[colorspace]Colorspace of Image Data (excluding transparency)
    %[compose]
    %[compression]Image compression type (as of IM 7.0.3.8)
    %[copyright]ImageMagick Copyright String
    %[depth]depth of image for write (as input unless changed)
    %[deskew:angle]The deskew angle in degrees of rotation
    %[directory]directory part of filename (as %d)
    %[distortion]how well an image resembles a reference image (-compare)
    %[entropy]CALCULATED: entropy of the image
    %[extension]extension part of filename (as %e)
    %[gamma]value of image gamma
    %[group]??? window group ???
    %[height]original height of image (when it was read in)
    %[input]
    %[interlace]Image interlace mode (as of IM 7.0.3.8)
    %[kurtosis]CALCULATED: kurtosis statistic of image
    %[label]label meta-data property
    %[label:pointsize]returns the pointsize computed during label: processing (as of IM 6.9.1-0)
    %[magick]coder used to read image (not the file suffix)
    %[max]CALCULATED: maximum value statistic of image
    %[mean]CALCULATED: average value statistic of image
    %[min]CALCULATED: minimum value statistic of image
    %[opaque]CALCULATED: is image fully-opaque?
    %[orientation]image orientation
    %[page]Virtual canvas (page) geometry
    %[profile:icc]ICC profile info
    %[profile:icm]ICM profile info
    %[profiles]list of any embedded profiles
    %[quality]Image quality value (as of IM 7.0.3.8)
    %[rendering-intent]Image rendering intent (as of IM 7.0.3.8)
    %[resolution.x]X density (resolution) without units
    %[resolution.y]Y density (resolution) without units
    %[scene]original scene number of image in input file
    %[size]original size of image (when it was read in)
    %[skewness]CALCULATED: skewness statistic of image
    %[standard-deviation]CALCULATED: standard deviation statistic of image
    %[type]CALCULATED: image type
    %[unique]unique temporary filename ???
    %[units]image resolution units
    %[version]Version Information of this running ImageMagick
    %[width]original width of image (when it was read in)
    + +

    Properties

    + +

    All other long forms of percent escapes (not single letter long form) are +handled in a case insensitive manner. Such escapes will will attempt to look +up that name specific data sources.

    + +

    The primary search space (if not a specific attribute listed above) is +a free-form property string. Such strings are associated and saved with +images, and are typically set using either the -set +CLI option (or API equivalent), or from special convenience options +(such as -label, -comment, -caption).

    + +

    These convenience options are globally saved (as 'global options' so thay can +be set before images are read), and later are transfered to the property of +individual images, only when they are read in. At that time any internal +percent escape present is then handled.

    + +

    To change a property of an image already in memory, you need to use -set. +

    + +

    Note that properties, like attributes (and profiles), are saved with +images when write, if the image file format allows.

    + + +

    Artifacts and Options

    + +

    The previous percent escapes are associated with the primary Attributes and +Properties. Which is the original and primary focus of such percent escapes. +

    + +

    However there are many operational settings that are used by various +ImageMagick operators that can be useful to set and later access. These +consist of per-image Artifacts, and Global options (associated with a list of +images, typically the current image list).

    + +

    Note that the major difference between an artifact and a property is that +artifacts, being an internal operational setting, is not saved with images (if +such is possible).

    + +

    For example when you use -define 'distort:viewport=100x100' you +are in fact generating a global option, which the -distort operator will use to modify its behavior (distorted output +image 'view').

    + +

    An Option is essentually a Artifact that has been stored globally as part +of a list of images (specifically a 'Wand' of images). As such they are +identical, in that a Option, is simply a global Artifact for all the +associated images.

    + +

    As such you can use -set 'option:distort:viewport' '100x100' to +achieve the same result of setting a Artifact for the disort operation to use. +

    + +

    Internal Handling of a Global Option...

    + +

    The Core library ('MagickCore') does not generally directly understand +Global Options. As such, continuing the previous example, the +DistortImages() function only looks up an artifact to discover if +a 'viewport' has been provided to it.

    + +

    How Global Options are used when a library function requests an Artifact is +one of the key differences between IMv6 and IMv7.

    + +

    In ImageMagick version 6... before each operator, any global Options +are copied to per-image Artifacts, for every image in the current image list. +This allows various operators to find its operational 'defines' or Artifacts. +

    + +

    In ImageMagick version 7... sets a link back to the global options +data, so that if a specific per-image Artifact is not found , then it will +look for a equivalent global Option for that image list. directly. This +saves coping these free-form options into artifacts repeatally, and means you +can now separately define a global option for a list, and a individual +overriding artifact for a specific image in that list.

    + +

    Note that many API's that do not use Wands (PerlMagick for example using +arrays of images rather than a Wand). In these API's you will not have Global +Options, only per-image Artifacts.

    + +

    In summery a Global Option, if available, is equivalent to a per-image +Artifact.

    + + +

    Glob-Pattern Listing of Properties, Artifacts and Options

    + +

    The setting can contain a glob pattern. As such you can +now list all free-form string properties, artifacts, and options, (but not +specific image attributes) using...

    + +
    convert ... \
    +   -print "__Properties__\n%[*]" \
    +   -print "__Artifacts__\n%[artifact:*]" \
    +   -print "__Options__\n%[option:*]" \
    +   ...
    +
    + +

    The format of glob patterns are very specific and as such is generally +only used to list specific settings, such as when debugging, rather than being +used for image processing use.

    + + +

    Calculated Percent Escape Prefixes

    + +

    There are some special prefixes (before the first ':') which performs +calculations based on the user provided string that follows that prefix. For +example you can do a numerical calculation use %[fx:...] to +evaluate the given FX expressions:

    + +
    %[fx:expression]
    +
    + +

    Use pixel: or hex: to evaluate a pixel color as defined by the FX +expression:

    + +
    %[pixel:expression]
    +
    + +

    Specific Profile Percent Escape Prefixes

    + +

    You can also use the following special formatting syntax to print EXIF +mage meta-data that was included in the image read in:

    + +
    %[EXIF:tag]
    +
    + +

    Choose tag from the following:

    + +
    
    +*  (print all EXIF tags, in keyword=data format)
    +!  (print all EXIF tags, in tag_number data format)
    +#hhhh (print data for EXIF tag #hhhh)
    +ImageWidth
    +ImageLength
    +BitsPerSample
    +Compression
    +PhotometricInterpretation
    +FillOrder
    +DocumentName
    +ImageDescription
    +Make
    +Model
    +StripOffsets
    +Orientation
    +SamplesPerPixel
    +RowsPerStrip
    +StripByteCounts
    +XResolution
    +YResolution
    +PlanarConfiguration
    +ResolutionUnit
    +TransferFunction
    +Software
    +DateTime
    +Artist
    +WhitePoint
    +PrimaryChromaticities
    +TransferRange
    +JPEGProc
    +JPEGInterchangeFormat
    +JPEGInterchangeFormatLength
    +YCbCrCoefficients
    +YCbCrSubSampling
    +YCbCrPositioning
    +ReferenceBlackWhite
    +CFARepeatPatternDim
    +CFAPattern
    +BatteryLevel
    +Copyright
    +ExposureTime
    +FNumber
    +IPTC/NAA
    +EXIFOffset
    +InterColorProfile
    +ExposureProgram
    +SpectralSensitivity
    +GPSInfo
    +ISOSpeedRatings
    +OECF
    +EXIFVersion
    +DateTimeOriginal
    +DateTimeDigitized
    +ComponentsConfiguration
    +CompressedBitsPerPixel
    +ShutterSpeedValue
    +ApertureValue
    +BrightnessValue
    +ExposureBiasValue
    +MaxApertureValue
    +SubjectDistance
    +MeteringMode
    +LightSource
    +Flash
    +FocalLength
    +MakerNote
    +UserComment
    +SubSecTime
    +SubSecTimeOriginal
    +SubSecTimeDigitized
    +FlashPixVersion
    +ColorSpace
    +EXIFImageWidth
    +EXIFImageLength
    +InteroperabilityOffset
    +FlashEnergy
    +SpatialFrequencyResponse
    +FocalPlaneXResolution
    +FocalPlaneYResolution
    +FocalPlaneResolutionUnit
    +SubjectLocation
    +ExposureIndex
    +SensingMethod
    +FileSource
    +SceneType
    +
    +
    +

    Surround the format specification with quotation marks to prevent your +shell from misinterpreting any spaces and square brackets.

    + +

    The following special formatting syntax can be used to print IPTC +information contained in the file:

    + +
    %[IPTC:dataset:record]
    +
    + +

    Select dataset and record from the following:

    + +
    +  Envelope Record
    +  1:00  Model Version
    +  1:05  Destination
    +  1:20  File Format
    +  1:22  File Format Version
    +  1:30  Service Identifier
    +  1:40  Envelope Number
    +  1:50  Product ID
    +  1:60  Envelope Priority
    +  1:70  Date Sent
    +  1:80  Time Sent
    +  1:90  Coded Character Set
    +  1:100  UNO (Unique Name of Object)
    +  1:120  ARM Identifier
    +  1:122  ARM Version
    +
    +Application Record
    +  2:00  Record Version
    +  2:03  Object Type Reference
    +  2:05  Object Name (Title)
    +  2:07  Edit Status
    +  2:08  Editorial Update
    +  2:10  Urgency
    +  2:12  Subject Reference
    +  2:15  Category
    +  2:20  Supplemental Category
    +  2:22  Fixture Identifier
    +  2:25  Keywords
    +  2:26  Content Location Code
    +  2:27  Content Location Name
    +  2:30  Release Date
    +  2:35  Release Time
    +  2:37  Expiration Date
    +  2:38  Expiration Time
    +  2:40  Special Instructions
    +  2:42  Action Advised
    +  2:45  Reference Service
    +  2:47  Reference Date
    +  2:50  Reference Number
    +  2:55  Date Created
    +  2:60  Time Created
    +  2:62  Digital Creation Date
    +  2:63  Digital Creation Time
    +  2:65  Originating Program
    +  2:70  Program Version
    +  2:75  Object Cycle
    +  2:80  By-Line (Author)
    +  2:85  By-Line Title (Author Position) [Not used in Photoshop 7]
    +  2:90  City
    +  2:92  Sub-Location
    +  2:95  Province/State
    +  2:100  Country/Primary Location Code
    +  2:101  Country/Primary Location Name
    +  2:103  Original Transmission Reference
    +  2:105  Headline
    +  2:110  Credit
    +  2:115  Source
    +  2:116  Copyright Notice
    +  2:118  Contact
    +  2:120  Caption/Abstract
    +  2:122  Caption Writer/Editor
    +  2:125  Rasterized Caption
    +  2:130  Image Type
    +  2:131  Image Orientation
    +  2:135  Language Identifier
    +  2:150  Audio Type
    +  2:151  Audio Sampling Rate
    +  2:152  Audio Sampling Resolution
    +  2:153  Audio Duration
    +  2:154  Audio Outcue
    +  2:200  ObjectData Preview File Format
    +  2:201  ObjectData Preview File Format Version
    +  2:202  ObjectData Preview Data
    +
    +Pre-ObjectData Descriptor Record
    +  7:10   Size Mode
    +  7:20   Max Subfile Size
    +  7:90   ObjectData Size Announced
    +  7:95   Maximum ObjectData Size
    +
    +ObjectData Record
    +  8:10   Subfile
    +
    +Post ObjectData Descriptor Record
    +  9:10   Confirmed ObjectData Size
    +
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/examples.html b/share/doc/ImageMagick-7/www/examples.html new file mode 100644 index 0000000..55d56b2 --- /dev/null +++ b/share/doc/ImageMagick-7/www/examples.html @@ -0,0 +1,110 @@ + + + + + + + + + + Examples of ImageMagick Usage @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Here are a few examples of what you can do with an image using ImageMagick from the command line, a program interface, or script. You can generate this image yourself with this PerlMagick script, examples.pl.

    + +

    [ImageMagick Examples]

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/exception.html b/share/doc/ImageMagick-7/www/exception.html new file mode 100644 index 0000000..4cccf0a --- /dev/null +++ b/share/doc/ImageMagick-7/www/exception.html @@ -0,0 +1,299 @@ + + + + + + + + + + Exceptions @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    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
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/export.html b/share/doc/ImageMagick-7/www/export.html new file mode 100644 index 0000000..fbcab66 --- /dev/null +++ b/share/doc/ImageMagick-7/www/export.html @@ -0,0 +1,110 @@ + + + + + + + + + + Export Classification @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    +
    +
    +
    +

    ImageMagick Studio LLC is a limited liability corporation based in the United States of America. All of our products are developed via online collaboration in public forums and distributed from a central server within the U.S. Therefore, U.S. export laws and regulations apply to our distributions and remain in force as products and technology are re-exported to different parties and places around the world. Information on export control classifications and associated restrictions may be required for exporting, re-exporting, record keeping, bundling/embedding of ImageMagick products, encryption reporting, and shipping documentation. More information on U.S. Export Regulations can be found at the U. S. Bureau of Industry and Security.

    + +

    The ImageMagick software distribution is classified as ECCN 5D002. However, ImageMagick Studio LLC makes no warranty or representation that this classification is accurate, current, or complete. ImageMagick is exported under the TSU exception in EAR 740.13(e) which applies to software containing or designed for use with encryption software that is publicly available as open source. TSU further provides that Posting encryption source code and corresponding object code on the Internet (e.g., FTP or World Wide Web site) where it may be downloaded by anyone neither establishes "knowledge" of a prohibited export or reexport for purposes of this paragraph, nor triggers any "red flags" necessitating the affirmative duty to inquire[...]. It is your obligation as the exporter to comply with the current applicable requirements of United States export rules and regulations.

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/favicon.ico b/share/doc/ImageMagick-7/www/favicon.ico new file mode 100644 index 0000000..0aeb05f Binary files /dev/null and b/share/doc/ImageMagick-7/www/favicon.ico differ diff --git a/share/doc/ImageMagick-7/www/formats.html b/share/doc/ImageMagick-7/www/formats.html new file mode 100644 index 0000000..e75daed --- /dev/null +++ b/share/doc/ImageMagick-7/www/formats.html @@ -0,0 +1,2011 @@ + + + + + + + + + + Formats @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    A Word about Colorspaces • Supported Formats • Pseudo Formats • Built-in Images • Built-in Patterns • Embedded Profiles

    + +

    ImageMagick uses an ASCII string known as magick (e.g. GIF) to identify file formats, algorithms acting as formats, built-in patterns, and embedded profile types. Support for some of the formats are delegated to libraries or external programs. The Installation Guide describes where to find these distributions and any special configuration options required.

    + +

    To get a complete listing of which image formats are supported on your system, type

    + +
    identify -list format
    +
    + +

    On some platforms, ImageMagick automagically processes these extensions: .gz for Zip compression, .Z for Unix compression, .bz2 for block compression, and .pgp for PGP encryption. For example, a PNM image called image.pnm.gz is automagically uncompressed.

    + +

    A Word about Colorspaces

    +

    A majority of the image formats assume an sRGB +colorspace (e.g. JPEG, PNG, etc.). A few support only linear RGB (e.g. EXR, +DPX, CIN, HDR) or only linear GRAY (e.g. PGM). A few formats support CMYK. +Then there is the occasional format that also supports LAB (that is CieLAB) +(e.g. TIFF, PSD, JPG, JP2). To determine the colorspace of your image, use +this command:

    + +
    -> identify -verbose image.jpg
    +Image: image.jpg
    +Format: JPEG (Joint Photographic Experts Group JFIF format)
    +...
    +Colorspace: sRGB
    +
    + +OR use the appropriate percent escape +
    -> convert image.jpg -print "%[colorspace]\n" null:
    +sRGB
    +
    + + +

    When processing an image, be aware of the colorspace. Many image +processing algorithms assume a linear RGB colorspace. Although you may get +satisfactory results processing in the sRGB colorspace, you may get improved +results in linear RGB (essentially sRGB with the gamma function removed). For +example,

    + +
    convert image.jpg -colorspace RGB -resize 50% -colorspace sRGB resize.jpg
    +
    + +

    As of IM 6.7.8-2 one can properly work in LAB colorspace whether or not +Imagemagick is HDRI-enabled. Essentually the A and +B channels are stored with a 50% gray bias, to allow it to handle the +negatives required by the format.

    + +
    convert lab.tif -resize 50% resize.jpg
    +
    + +

    Again, it may not make sense for some image processing operators to work +directly in LAB space, but ImageMagick permits it and generally returns +reasonable results.

    + +

    Prior to IM 6.7.8-2, the A and B channels has a discontinuity, making them +non-linear. As such to process such images, you needed to first convert the +colorspace some other linear colorspace, before apply your processing +operator. Afterward you can transform back to the LAB colorspace. For +example,

    + +
      convert lab.tif -colorspace RGB -resize 50% -colorspace Lab resize.jpg
    +
    + +

    Supported Image Formats

    + +

    ImageMagick supports reading over 100 major file formats (not +including sub-formats). The following table provides a summary of +the supported image formats.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TagModeDescriptionNotes
    AAIRWAAI Dune image
    ARTRWPFS: 1st PublisherFormat originally used on the Macintosh (MacPaint?) and later used for PFS: 1st Publisher clip art.
    ARWRSony Digital Camera Alpha Raw Image Format
    AVIRMicrosoft Audio/Visual Interleaved
    AVSRWAVS X image
    BPGRWBetter Portable GraphicsUse -quality to specify the image compression quality. To meet the requirements of BPG, the quality argument divided by 2 (e.g. -quality 92 assigns 46 as the BPG compression.
    BMP, BMP2, BMP3RWMicrosoft Windows bitmapBy default the BMP format is version 4. Use BMP3 and BMP2 to write versions 3 and 2 respectively.
    BRFWBraille Ready FormatUses juxtaposition of 6-dot braille patterns (thus 6x2 dot matrices) to reproduce images, using the BRF ASCII Braille encoding.
    CALSRContinuous Acquisition and Life-cycle Support Type 1 imageSpecified in MIL-R-28002 and MIL-PRF-28002. Standard blueprint archive format as used by the US military to replace microfiche.
    CGMRComputer Graphics MetafileRequires ralcgm to render CGM files.
    CINRWKodak Cineon Image FormatUse -set to specify the image gamma or black and white points (e.g. -set gamma 1.7, -set reference-black 95, -set reference-white 685). Properties include cin:file.create_date, cin:file.create_time, cin:file.filename, cin:file.version, cin:film.count, cin:film.format, cin:film.frame_id, cin:film.frame_position, cin:film.frame_rate, cin:film.id, cin:film.offset, cin:film.prefix, cin:film.slate_info, cin:film.type, cin:image.label, cin:origination.create_date, cin:origination.create_time, cin:origination.device, cin:origination.filename, cin:origination.model, cin:origination.serial, cin:origination.x_offset, cin:origination.x_pitch, cin:origination.y_offset, cin:origination.y_pitch, cin:user.data.
    CMYKRWRaw cyan, magenta, yellow, and black samplesUse -size and -depth to specify the image width, height, and depth. To specify a single precision floating-point format, use -define quantum:format=floating-point. Set the depth to 32 for single precision floats, 64 for double precision, and 16 for half-precision.
    CMYKARWRaw cyan, magenta, yellow, black, and alpha samplesUse -size and -depth to specify the image width, height, and depth. To specify a single precision floating-point format, use -define quantum:format=floating-point. Set the depth to 32 for single precision floats, 64 for double precision, and 16 for half-precision.
    CR2RCanon Digital Camera Raw Image FormatRequires an explicit image format otherwise the image is interpreted as a TIFF image (e.g. cr2:image.cr2).
    CRWRCanon Digital Camera Raw Image Format
    CURRMicrosoft Cursor Icon
    CUTRDR Halo
    DCMRDigital Imaging and Communications in Medicine (DICOM) imageUsed by the medical community for images like X-rays. ImageMagick sets the initial display range based on the Window Center (0028,1050) and Window Width (0028,1051) tags. Use -define dcm:display-range=reset to set the display range to the minimum and maximum pixel values. Use -define dcm:rescale=true to enable interpretation of the rescale slope and intercept settings in the file. Use -define dcm:window=centerXwidth to override the center and width settings in the file with your own values.
    DCRRKodak Digital Camera Raw Image File
    DCXRWZSoft IBM PC multi-page Paintbrush image
    DDSRWMicrosoft Direct Draw SurfaceUse -define to specify the compression (e.g. -define dds:compression={dxt1, dxt5, none}). Other defines include dds:cluster-fit={true,false}, dds:weight-by-alpha={true,false}, dds:fast-mipmaps={true,false}, and use dds:mipmaps to set the number of mipmaps (use fromlist to use the image list).
    DIBRWMicrosoft Windows Device Independent BitmapDIB is a BMP file without the BMP header. Used to support embedded images in compound formats like WMF.
    DJVUR
    DNGRDigital NegativeRequires an explicit image format otherwise the image is interpreted as a TIFF image (e.g. dng:image.dng).
    DOTRGraph VisualizationUse -define to specify the layout engine (e.g. -define dot:layout-engine=twopi).
    DPXRWSMPTE Digital Moving Picture Exchange 2.0 (SMPTE 268M-2003)Use -set to specify the image gamma or black and white points (e.g. -set gamma 1.7, -set reference-black 95, -set reference-white 685).
    EMFRMicrosoft Enhanced Metafile (32-bit)Only available under Microsoft Windows. Use -size command line option to specify the maximum width and height.
    EPDFRWEncapsulated Portable Document Format
    EPIRWAdobe Encapsulated PostScript Interchange formatRequires Ghostscript to read.
    EPSRWAdobe Encapsulated PostScriptRequires Ghostscript to read.
    EPS2WAdobe Level II Encapsulated PostScriptRequires Ghostscript to read.
    EPS3WAdobe Level III Encapsulated PostScriptRequires Ghostscript to read.
    EPSFRWAdobe Encapsulated PostScriptRequires Ghostscript to read.
    EPSIRWAdobe Encapsulated PostScript Interchange formatRequires Ghostscript to read.
    EPTRWAdobe Encapsulated PostScript Interchange format with TIFF previewRequires Ghostscript to read.
    EXRRWHigh dynamic-range (HDR) file format developed by Industrial Light & MagicSee High Dynamic-Range Images for details on this image format. To specify the output color type, use -define exr:color-type={RGB,RGBA,YC,YCA,Y,YA,R,G,B,A}. Use -sampling-factor to specify the sampling rate for YC(A) (e.g. 2x2 or 4:2:0). Requires the OpenEXR delegate library.
    FAXRWGroup 3 TIFFThis format is a fixed width of 1728 as required by the standard. See TIFF format. Note that FAX machines use non-square pixels which are 1.5 times wider than they are tall but computer displays use square pixels so FAX images may appear to be narrow unless they are explicitly resized using a resize specification of 100x150%.
    FIGRFIG graphics formatRequires TransFig.
    FITSRWFlexible Image Transport SystemTo specify a single-precision floating-point format, use -define quantum:format=floating-point. Set the depth to 64 for a double-precision floating-point format.
    FPXRWFlashPix FormatFlashPix has the option to store mega- and giga-pixel images at various resolutions in a single file which permits conservative bandwidth and fast reveal times when displayed within a Web browser. Requires the FlashPix SDK. Specify the FlashPix viewing parameters with the -define fpx:view.
    GIFRWCompuServe Graphics Interchange Format8-bit RGB PseudoColor with up to 256 palette entries. Specify the format GIF87 to write the older version 87a of the format. Use -transparent-color to specify the GIF transparent color (e.g. -transparent-color wheat).
    GPLTRGnuplot plot filesRequires gnuplot4.0.tar.Z or later.
    GRAYRWRaw gray samplesUse -size and -depth to specify the image width, height, and depth. To specify a single precision floating-point format, use -define quantum:format=floating-point. Set the depth to 32 for single precision floats, 64 for double precision, and 16 for half-precision.
    HDRRWRadiance RGBE image format
    HEICRApple High efficiency Image Format
    HPGLRHP-GL plotter languageRequires hp2xx-3.4.4.tar.gz
    HRZRWSlow Scane TeleVision
    HTMLRWHypertext Markup Language with a client-side image mapAlso known as HTM. Requires html2ps to read.
    ICORMicrosoft iconAlso known as ICON.
    INFOWFormat and characteristics of the image
    INLINERWBase64-encoded inline imageThe inline image look similar to inline:data:;base64,/9j/4AAQSk...knrn//2Q==. If the inline image exceeds 5000 characters, reference it from a file (e.g. inline:inline.txt). You can also write a base64-encoded image. Embed the mime type in the filename, for example, convert myimage inline:jpeg:myimage.txt.
    ISOBRLWISO/TR 11548-1 BRaiLleUses juxtaposition of 8-dot braille patterns (thus 8x2 dot matrices) to reproduce images, using the ISO/TR 11548-1 Braille encoding.
    ISOBRL6WISO/TR 11548-1 BRaiLle 6 dotsUses juxtaposition of 6-dot braille patterns (thus 6x2 dot matrices) to reproduce images, using the ISO/TR 11548-1 Braille encoding.
    JBIGRWJoint Bi-level Image experts Group file interchange formatAlso known as BIE and JBG. Requires jbigkit-1.6.tar.gz.
    JNGRWMultiple-image Network GraphicsJPEG in a PNG-style wrapper with transparency. Requires libjpeg and libpng-1.0.11 or later, libpng-1.2.5 or later recommended.
    JP2RWJPEG-2000 JP2 File Format SyntaxSpecify the encoding options with the -define option. See JP2 Encoding Options for more details.
    JPTRWJPEG-2000 Code Stream SyntaxSpecify the encoding options with the -define option See JP2 Encoding Options for more details.
    J2CRWJPEG-2000 Code Stream SyntaxSpecify the encoding options with the -define option See JP2 Encoding Options for more details.
    J2KRWJPEG-2000 Code Stream SyntaxSpecify the encoding options with the -define option See JP2 Encoding Options for more details.
    JPEGRWJoint Photographic Experts Group JFIF formatNote, JPEG is a lossy compression. In addition, you cannot create black and white images with JPEG nor can you save transparency.

    Requires jpegsrc.v8c.tar.gz. You can set quality scaling for luminance and chrominance separately (e.g. -quality 90,70). You can optionally define the DCT method, for example to specify the float method, use -define jpeg:dct-method=float. By default we compute optimal Huffman coding tables. Specify -define jpeg:optimize-coding=false to use the default Huffman tables. Two other options include -define jpeg:block-smoothing and -define jpeg:fancy-upsampling. Set the sampling factor with -define jpeg:sampling-factor. You can size the image with jpeg:size, for example -define jpeg:size=128x128. To restrict the maximum file size, use jpeg:extent, for example -define jpeg:extent=400KB. To define one or more custom quantization tables, use -define jpeg:q-table=filename. To avoid reading a particular associated image profile, use -define profile:skip=name (e.g. profile:skip=ICC).
    JXRRWJPEG extended rangeRequires the jxrlib delegate library. Put the JxrDecApp and JxrEncApp applications in your execution path.
    JSONWJavaScript Object Notation, a lightweight data-interchange formatInclude additional attributes about the image with these defines: -define json:locate, -define json:limit, -define json:moments, or -define json:features.
    MANRUnix reference manual pagesRequires that GNU groff and Ghostcript are installed.
    MATRMATLAB image format
    MIFFRWMagick image file formatThis format persists all image attributes known to ImageMagick. To specify a single precision floating-point format, use -define quantum:format=floating-point. Set the depth to 32 for single precision floats, 64 for double precision, and 16 for half-precision.
    MONORWBi-level bitmap in least-significant-byte first order
    MNGRWMultiple-image Network GraphicsA PNG-like Image Format Supporting Multiple Images, Animation and Transparent JPEG. Requires libpng-1.0.11 or later, libpng-1.2.5 or later recommended. An interframe delay of 0 generates one frame with each additional layer composited on top. For motion, be sure to specify a non-zero delay.
    M2VRWMotion Picture Experts Group file interchange format (version 2)Requires ffmpeg.
    MPEGRWMotion Picture Experts Group file interchange format (version 1)Requires ffmpeg.
    MPCRWMagick Persistent Cache image file formatThe most efficient data processing pattern is a write-once, read-many-times pattern. The image is generated or copied from source, then various analyses are performed on the image pixels over time. MPC supports this pattern. MPC is the native in-memory ImageMagick uncompressed file format. This file format is identical to that used by ImageMagick to represent images in memory and is read by mapping the file directly into memory. The MPC format is not portable and is not suitable as an archive format. It is suitable as an intermediate format for high-performance image processing. The MPC format requires two files to support one image. Image attributes are written to a file with the extension .mpc, whereas, image pixels are written to a file with the extension .cache.
    MPRRWMagick Persistent RegistryThis format permits you to write to and read images from memory. The image persists until the program exits. For example, let's use the MPR to create a checkerboard: +
    convert \( -size 15x15 canvas:black canvas:white -append \) \
    +  \( +clone -flip \) +append -write mpr:checkers +delete \
    +  -size 240x240 tile:mpr:checkers board.png
    +
    MRWRSony (Minolta) Raw Image File
    MSLRWMagick Scripting LanguageMSL is the XML-based scripting language supported by the conjure utility. MSL requires the libxml2 delegate library.
    MTVRWMTV Raytracing image format
    MVGRWMagick Vector Graphics.The native ImageMagick vector metafile format. A text file containing vector drawing commands accepted by convert's -draw option.
    NEFRNikon Digital SLR Camera Raw Image File
    ORFROlympus Digital Camera Raw Image File
    OTBRWOn-the-air Bitmap
    P7RWXv's Visual Schnauzer thumbnail format
    PALMRWPalm pixmap
    PAMWCommon 2-dimensional bitmap format
    CLIPBOARDRWWindows ClipboardOnly available under Microsoft Windows.
    PBMRWPortable bitmap format (black and white)
    PCDRWPhoto CDThe maximum resolution written is 768x512 pixels since larger images require huffman compression (which is not supported). Use -bordercolor to specify the border color (e.g. -bordercolor black).
    PCDSRWPhoto CDDecode with the sRGB color tables.
    PCLWHP Page Control LanguageUse -define to specify fit to page option (e.g. -define pcl:fit-to-page=true).
    PCXRWZSoft IBM PC Paintbrush file
    PDBRWPalm Database ImageViewer Format
    PDFRWPortable Document FormatRequires Ghostscript to read. By default, ImageMagick sets the page size to the MediaBox. Some PDF files, however, have a CropBox or TrimBox that is smaller than the MediaBox and may include white space, registration or cutting marks outside the CropBox or TrimBox. To force ImageMagick to use the CropBox or TrimBox rather than the MediaBox, use -define (e.g. -define pdf:use-cropbox=true or -define pdf:use-trimbox=true). Use -density to improve the appearance of your PDF rendering (e.g. -density 300x300). Use -alpha remove to remove transparency. To specify direct conversion from Postscript to PDF, use -define delegate:bimodel=true. Use -define pdf:fit-page=true to scale to the page size. To immediately stop processing upon an error, set -define pdf:stop-on-error to true. To set the page direction preferences to right-to-left, try -define pdf:page-direction=right-to-left.
    PEFRPentax Electronic FileRequires an explicit image format otherwise the image is interpreted as a TIFF image (e.g. pef:image.pef).
    PESREmbrid Embroidery Format
    PFARPostscript Type 1 font (ASCII)Opening as file returns a preview image.
    PFBRPostscript Type 1 font (binary)Opening as file returns a preview image.
    PFMRWPortable float map format
    PGMRWPortable graymap format (gray scale)
    PICONRWPersonal Icon
    PICTRWApple Macintosh QuickDraw/PICT file
    PIXRAlias/Wavefront RLE image format
    PNGRWPortable Network GraphicsRequires libpng-1.0.11 or later, libpng-1.2.5 or later recommended. The PNG specification does not support pixels-per-inch units, only pixels-per-centimeter. To avoid reading a particular associated image profile, use -define profile:skip=name (e.g. profile:skip=ICC).
    PNG8RWPortable Network Graphics8-bit indexed with optional binary transparency
    PNG00RWPortable Network GraphicsPNG inheriting subformat from original if possible
    PNG24RWPortable Network Graphicsopaque or binary transparent 24-bit RGB
    PNG32RWPortable Network Graphicsopaque or transparent 32-bit RGBA
    PNG48RWPortable Network Graphicsopaque or binary transparent 48-bit RGB
    PNG64RWPortable Network Graphicsopaque or transparent 64-bit RGB
    PNMRWPortable anymapPNM is a family of formats supporting portable bitmaps (PBM) , graymaps (PGM), and pixmaps (PPM). There is no file format associated with pnm itself. If PNM is used as the output format specifier, then ImageMagick automagically selects the most appropriate format to represent the image. The default is to write the binary version of the formats. Use -compress none to write the ASCII version of the formats.
    PPMRWPortable pixmap format (color)
    PSRWAdobe PostScript fileRequires Ghostscript to read. To force ImageMagick to respect the crop box, use -define (e.g. -define eps:use-cropbox=true). Use -density to improve the appearance of your Postscript rendering (e.g. -density 300x300). Use -alpha remove to remove transparency. To specify direct conversion from PDF to Postscript, use -define delegate:bimodel=true.
    PS2RWAdobe Level II PostScript fileRequires Ghostscript to read.
    PS3RWAdobe Level III PostScript fileRequires Ghostscript to read.
    PSBRWAdobe Large Document Format
    PSDRWAdobe Photoshop bitmap fileUse -define psd:alpha-unblend=off to disable alpha blenning in the merged image. Use -define psd:additional-info=all|selective to transfer additional information from the input PSD file to output PSD file. The 'selective' option will preserve all additional information that is not related to the geometry of the image. The 'all' option should only be used when the geometry of the image has not been changed. This option is helpful when transferring non-simple layers, such as adjustment layers from the input PSD file to the output PSD file. This define is available as of Imagemagick version 6.9.5-8. Use -define psd:preserve-opacity-mask=true to preserve the opacity mask of a layer and add it back to the layer when the image is saved.
    PTIFRWPyramid encoded TIFFMulti-resolution TIFF containing successively smaller versions of the image down to the size of an icon.
    PWPRSeattle File Works multi-image file
    RADRRadiance image fileRequires that ra_ppm from the Radiance software package be installed.
    RAFRFuji CCD-RAW Graphic File
    RGBRWRaw red, green, and blue samplesUse -size and -depth to specify the image width, height, and depth. To specify a single precision floating-point format, use -define quantum:format=floating-point. Set the depth to 32 for single precision floats, 64 for double precision, and 16 for half-precision.
    RGBARWRaw red, green, blue, and alpha samplesUse -size and -depth to specify the image width, height, and depth. To specify a single precision floating-point format, use -define quantum:format=floating-point. Set the depth to 32 for single precision floats, 64 for double precision, and 16 for half-precision.
    RGFRWLEGO Mindstorms EV3 Robot Graphics File
    RLARAlias/Wavefront image file
    RLERUtah Run length encoded image file
    SCTRScitex Continuous Tone Picture
    SFWRSeattle File Works image
    SGIRWIrix RGB image
    SHTMLWHypertext Markup Language client-side image mapUsed to write HTML clickable image maps based on a the output of montage or a format which supports tiled images such as MIFF.
    SID, MrSIDRMultiresolution seamless imageRequires the mrsidgeodecode command line utility that decompresses MG2 or MG3 SID image files.
    SPARSE-COLORWRaw text fileFormat compatible with the -sparse-color option. Lists only non-fully-transparent pixels.
    SUNRWSUN Rasterfile
    SVGRWScalable Vector GraphicsImageMagick utilizes inkscape if its in your execution path otherwise RSVG. If neither are available, ImageMagick reverts to its internal SVG renderer. The default resolution is 96 DPI. Use -size command line option to specify the maximum width and height.
    TEXTRtext fileRequires an explicit format specifier to read, e.g. text:README.txt.
    TGARWTruevision Targa imageAlso known as formats ICB, VDA, and VST.
    TIFFRWTagged Image File FormatAlso known as TIF. Requires tiff-v3.6.1.tar.gz or later. Use -define to specify the rows per strip (e.g. -define tiff:rows-per-strip=8). To define the tile geometry, use for example, -define tiff:tile-geometry=128x128. To specify a signed format, use -define quantum:format=signed. To specify a single-precision floating-point format, use -define quantum:format=floating-point. Set the depth to 64 for a double-precision floating-point format. Use -define quantum:polarity=min-is-black or -define quantum:polarity=min-is-white toggle the photometric interpretation for a bilevel image. Specify the extra samples as associated or unassociated alpha with, for example, -define tiff:alpha=unassociated. Set the fill order with -define tiff:fill-order=msb|lsb. Set the TIFF endianess with -define tiff:endian=msb|lsb. Use -define tiff:exif-properties=false to skip reading the EXIF properties. You can set a number of TIFF software attributes including document name, host computer, artist, timestamp, make, model, software, and copyright. For example, -set tiff:software "My Company". If you want to ignore certain TIFF tags, use this option: -define tiff:ignore-tags=comma-separated-list-of-tag-IDs. Since version 6.9.1-4 there is support for reading photoshop layers in TIFF files, this can be disabled with -define tiff:ignore-layers=true
    TIMRPSX TIM file
    TTFRTrueType font fileRequires freetype 2. Opening as file returns a preview image. Use -set if you do not want to hint glyph outlines after their scaling to device pixels (e.g. -set type:hinting off).
    TXTRWRaw text fileUse -define to specify the color compliance (e.g. -define txt:compliance=css).
    UBRLWUnicode BRaiLleUses juxtaposition of 8-dot braille patterns (thus 8x2 dot matrices) to reproduce images, using the Unicode Braille encoding.
    UBRL6WUnicode BRaiLle 6 dotsUses juxtaposition of 6-dot braille patterns (thus 6x2 dot matrices) to reproduce images, using the Unicode Braille encoding.
    UILWX-Motif UIL table
    UYVYRWInterleaved YUV raw imageUse -size and -depth command line options to specify width and height. Use -sampling-factor to set the desired subsampling (e.g. -sampling-factor 4:2:2).
    VICARRWVICAR rasterfile format
    VIFFRWKhoros Visualization Image File Format
    WBMPRWWireless bitmapSupport for uncompressed monochrome only.
    WDPRWJPEG extended rangeRequires the jxrlib delegate library. Put the JxrDecApp and JxrEncApp applications in your execution path.
    WEBPRWWeppy image formatRequires the WEBP delegate library. Specify the encoding options with the -define option See WebP Encoding Options for more details.
    WMFRWindows MetafileRequires libwmf. By default, renders WMF files using the dimensions specified by the metafile header. Use the -density option to adjust the output resolution, and thereby adjust the output size. The default output resolution is 72DPI so -density 144 results in an image twice as large as the default. Use -background color to specify the WMF background color (default white) or -texture filename to specify a background texture image.
    WPGRWord Perfect Graphics File
    XRWdisplay or import an image to or from an X11 serverUse -define to obtain the image from the root window (e.g. -define x:screen=true). Set x:silent=true to turn off the beep when importing an image.
    XBMRWX Windows system bitmap, black and white onlyUsed by the X Windows System to store monochrome icons.
    XCFRGIMP image
    XPMRWX Windows system pixmapAlso known as PM. Used by the X Windows System to store color icons.
    XWDRWX Windows system window dumpUsed by the X Windows System to save/display screen dumps.
    X3FRSigma Camera RAW Picture File
    YCbCrRWRaw Y, Cb, and Cr samplesUse -size and -depth to specify the image width, height, and depth.
    YCbCrARWRaw Y, Cb, Cr, and alpha samplesUse -size and -depth to specify the image width, height, and depth.
    YUVRWCCIR 601 4:1:1Use -size and -depth command line options to specify width, height, and depth. Use -sampling-factor to set the desired subsampling (e.g. -sampling-factor 4:2:2).
    +
    + +

    Pseudo-image Formats

    + +

    ImageMagick supports a number of image format specifications which refer to images prepared via an algorithm, or input/output targets. The following table lists these pseudo-image formats:

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TagModeDescriptionNotes
    CANVASRCanvas image of specified colorUseful to create solid color canvas images. Use + -size and -depth to specify the + image width, height, and depth. Example canvas color specifications + include canvas:red and canvas:#FF0000.
    + + If no color is specified a 'white' canvas image is + generated. If no -size is specified + a single pixel image of the specified color is generated.
    CAPTIONRImage caption
    CLIPRWClip path of image
    CLIPBOARDRWWindows ClipboardOnly available under Microsoft Windows.
    FRACTALRPlasma fractal image
    GRADIENTRGradual passing from one shade to anotherReturns a rendered linear top-to-bottom gradient image using the specified image size.
    HALDRIdentity Hald CLUT ImageSelect order with filename, e.g. hald:5 for order 5.
    HISTOGRAMWHistogram of the imageThe histogram includes the unique colors of the image as an image comment. If you have no need for the unique color list, use -define histogram:unique-colors=false to forego this expensive operation.
    LABELRText image formatSpecify the desired text as the filename (e.g. label:"This a label").
    MAPRWColormap intensities and indicesSet -depth to set the sample size of the intensities; indices are 16-bit if colors > 256.
    MASKRWImage mask
    MATTEWMATTE formatWrite only.
    NULLRWNULL imageUseful for creating blank tiles with montage (use NULL:). Also useful as an output format when evaluating image read performance.
    PANGORImage captionYou can configure the caption layout with these defines: -define pango:auto-dir=true/false, -define pango:ellipsize=start/middle/end, -define pango:gravity-hint=natural/strong/line, -define pango:hinting=none/auto/full, -define pango:indent=points, -define pango:justify=true/false, -define pango:language=en_US/etc, -define pango:markup=true/false, -define pango:single-paragraph=true/false and -define pango:wrap=word/char/word-char.
    PLASMARPlasma fractal image
    PREVIEWWShow a preview an image enhancement, effect, or f/xCreates a preview montage of images prepared over a parametric range in order to assist with parameter selection. Specify the desired + preview type via the -preview option).
    PRINTWSend image to your computer printerUnix users may set the PRINTER (for 'lpr') or LPDEST (for 'lp') environment variables to select the desired printer.
    SCANRImport image from a scanner deviceRequires SANE Specify the device name and path as the filename (e.g. scan:'hpaio:/usb/Officejet_6200_series?serial=CN4ATCE3G20453').
    RADIAL_GRADIENTRGradual radial passing from one shade to anotherReturns a rendered radial top-to-bottom gradient image using the specified image size.
    SCANXRImport image from the default scanner device
    SCREENSHOTRan image that shows the contents of a computer display
    STEGANORSteganographic imageUse -size command line option to specify width, height, and offset of the steganographic image
    TILERTiled imageCreate a tiled version of an image at by tiling a image. Use -size to specify the tiled image size. Tiles are composited on an image background and therefore is responsive to the -compose option. The image is specified similar to + TILE:image.miff.
    UNIQUEWWrite only unique pixels to the image file.
    VIDRWVisual Image DirectoryUsed to create a thumbnailed directory (tiled thumbnails) of a set of images which may be used to select images to view via the display program, or saved to a MIFF or SHTML file.
    WINRWSelect image from or display image to your computer screenOnly supported under Microsoft Windows.
    XRWSelect image from or display image to your X server screenAlso see the import and display + programs.
    XCRCanvas image of specified colorAn backward compatible alias for the 'canvas:' + psuedo-file format, used to create a solid color canvas image. +
    +
    + +

    Built-in Images

    + +

    ImageMagick includes a number of built-in (embedded) images which may be referenced as if they were an image file. The magick: format tag may be used via the syntax magick:name to request an embedded image (e.g. magick:logo). For backwards compatibility, the image specifications GRANITE:, LOGO:, NETSCAPE:, and ROSE: may also be used to request images with those names.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TagModeDescriptionNotes
    GRANITER128x128 granite texture patternGRANITE
    LOGORImageMagick Logo, 640x480Logo
    NETSCAPERimage using colors in Netscape 216 (6x6x6 ) color cube, 216x144Most commonly used with the convert and mogrify programs with the -map option to create web safe images.
    ROSERPicture of a rose, 70x46ROSE
    WIZARDRImageMagick Wizard, 480x640Logo
    + +

    Built-in Patterns

    + +

    ImageMagick includes a number of built-in (embedded) patterns which may be referenced as if they were an image file. The pattern: format tag may be used via the syntax pattern:name to request an embedded pattern (e.g. pattern:checkerboard). The pattern size is controlled with the -size command line option.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TagModeDescriptionNotes
    BRICKSRbrick pattern, 16x16BRICKS
    CHECKERBOARDRcheckerboard pattern, 30x30CHECKERBOARD
    CIRCLESRcircles pattern, 16x16CIRCLES
    CROSSHATCHRcrosshatch pattern, 8x4CROSSHATCH
    CROSSHATCH30Rcrosshatch pattern with lines at 30 degrees, 8x4CROSSHATCH30
    CROSSHATCH45Rcrosshatch pattern with lines at 45 degrees, 8x4CROSSHATCH45
    FISHSCALESRfish scales pattern, 16x8FISHSCALES
    GRAY0R0% intensity gray, 32x32GRAY0
    GRAY5R5% intensity gray, 32x32GRAY5
    GRAY10R10% intensity gray, 32x32 GRAY10
    GRAY15R15% intensity gray, 32x32GRAY15
    GRAY20R20% intensity gray, 32x32GRAY20
    GRAY25R25% intensity gray, 32x32GRAY25
    GRAY30R30% intensity gray, 32x32GRAY30
    GRAY35R35% intensity gray, 32x32GRAY35
    GRAY40R40% intensity gray, 32x32GRAY40
    GRAY45R45% intensity gray, 32x32GRAY45
    GRAY50R50% intensity gray, 32x32GRAY50
    GRAY55R55% intensity gray, 32x32GRAY55
    GRAY60R60% intensity gray, 32x32GRAY60
    GRAY65R65% intensity gray, 32x32GRAY65
    GRAY70R70% intensity gray, 32x32GRAY70
    GRAY75R75% intensity gray, 32x32GRAY75
    GRAY80R80% intensity gray, 32x32 GRAY80
    GRAY85R85% intensity gray, 32x32GRAY85
    GRAY90R100% intensity gray, 32x32GRAY90
    GRAY95R100% intensity gray, 32x32GRAY95
    GRAY100R100% intensity gray, 32x32GRAY100
    HEXAGONSRhexagon pattern, 30x18HEXAGONS
    HORIZONTALRhorizontal line pattern, 8x4HORIZONTAL
    HORIZONTAL2Rhorizontal line pattern, 8x8HORIZONTAL2
    HORIZONTAL3Rhorizontal line pattern, 9x9HORIZONTAL3
    HORIZONTALSAWRhorizontal saw-tooth pattern, 16x8HORIZONTALSAW
    HS_BDIAGONALRbackward diagonal line pattern (45 degrees slope), 8x8HS_BDIAGONAL
    HS_CROSSRcross line pattern, 8x8HS_CROSS
    HS_DIAGCROSSRdiagonal line cross pattern (45 degrees slope), 8x8HS_DIAGCROSS
    HS_FDIAGONALRforward diagonal line pattern (45 degrees slope), 8x8HS_FDIAGONAL
    HS_HORIZONTALRhorizontal line pattern, 8x8HS_HORIZONTAL
    HS_VERTICALRvertical line pattern, 8x8HS_VERTICAL
    LEFT30Rforward diagonal pattern (30 degrees slope), 8x4LEFT0
    LEFT45Rforward diagonal line pattern (45 degrees slope), 8x8LEFT45
    LEFTSHINGLERleft shingle pattern, 24x24LEFTSHINGLE
    OCTAGONSRoctagons pattern, 16x16OCTAGONS
    RIGHT30Rbackward diagonal line pattern (30 degrees) 8x4RIGHT30
    RIGHT45Rbackward diagonal line pattern (30 degrees), 8x8RIGHT45
    RIGHTSHINGLERright shingle pattern, 24x24RIGHTSHINGLE
    SMALLFISHSCALESRsmall fish scales pattern, 8x8SMALLFISHSCALES
    VERTICALRvertical line pattern, 8x8VERTICAL
    VERTICAL2Rvertical line pattern, 8x8VERTICAL2
    VERTICAL3Rvertical line pattern, 9x9VERTICAL3
    VERTICALBRICKSRvertical brick pattern, 16x16VERTICALBRICKS
    VERTICALLEFTSHINGLERvertical left shingle pattern, 24x24VERTICALLEFTSHINGLE
    VERTICALRIGHTSHINGLERvertical right shingle pattern, 24x24VERTICALRIGHTSHINGLE
    VERTICALSAWRvertical saw-tooth pattern, 8x16VERTICALSAW
    + +

    Embedded Image Profiles

    + +

    ImageMagick provides a number of format identifiers which are used to add, remove, and save embedded profiles for images which can support embedded profiles. Image types which may contain embedded profiles are TIFF, JPEG, and PDF.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TagModeDescriptionNotes
    8BIMRWPhotoshop resource format (binary)
    8BIMTEXTRWPhotoshop resource format (ASCII)An ASCII representation of the 8BIM format.
    APP1RWRaw application information
    APP1JPEGRWRaw JPEG binary dataProfile in JPEG wrapper.
    ICCRWInternational Color Consortium color profileAlso known as ICM. To read, use -profile with + convert.
    IPTCRWIPTC Newsphoto (binary)To read, use -profile with convert
    IPTCTEXTRWIPTC Newsphoto (ASCII)An ASCII representation of the IPTC format.
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/fx.html b/share/doc/ImageMagick-7/www/fx.html new file mode 100644 index 0000000..d1869fc --- /dev/null +++ b/share/doc/ImageMagick-7/www/fx.html @@ -0,0 +1,439 @@ + + + + + + + + + + The Fx Special Effects Image Operator @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

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

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

    The expression semantics include these rules:

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

    Source Images

    + +

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

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

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

    + +

    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.

    + +
    convert -channel red logo: -flop logo: -resize "20%" -fx "(u+v)/2" image.jpg
    +
    + +
      + logo-sm-flop.png + logo-sm.png +==> + logo-sm-fx.png +
    + +
    +

    Accessing Pixels

    + +

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

    + +

    The 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,

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

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

    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.

    + +

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

    + +

    Apply an Expression to Select Image Channels

    + +

    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:

    + +
    convert alpha.png beta.png -channel red -fx "(u.g+v.g)/2" gamma.png
    +
    + + +

    Results

    + +

    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.

    + +

    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.

    + + +

    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:

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

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

    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.

    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/gradient.html b/share/doc/ImageMagick-7/www/gradient.html new file mode 100644 index 0000000..a6b8e4a --- /dev/null +++ b/share/doc/ImageMagick-7/www/gradient.html @@ -0,0 +1,270 @@ + + + + + + + + + + Image Gradients @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    An image gradient creates a gradual blend between two colors formed into a shape that is linear, circular, or ellipical.

    + +

    For a linear gradient, the operator is either:

    + +
    gradient:
    +gradient:color1-color2
    +
    + +

    The for a radial gradient, the operator is either:

    + +
    radial-gradient:
    +radial-gradient:color1-color2
    +
    + +

    In the above, color1 is the fromColor and color2 is the toColor, as described in more detail below. The default is white for color1 and black for color2, i.e., white-black.

    + +

    The default for a linear gradient has color1 at the top of the image and color2 at the bottom of the image. Similarly, the default for a radial gradient has color1 at the center of the image and color2 at the boundary of the image.

    + +

    Gradient colors may be any valid color defined per ../www/color.html. The named colors of black/white/grayXX and gray(XX[%]) are non-linear gray. For Unix systems, enclose rgb(a) and hex colors in quotes. Use double quotes, if using variables for the values.

    + +

    Here is an example linear (as opposed to radial) gradient:

    + +
    magick -size 256x256 gradient: linear_gradient.png
    +magick -size 256x256 gradient:white-black linear_gradient.png
    +
    +

    + +

    If you want a radial gradient, try:

    + +
    magick -size 256x256 radial-gradient: radial_gradient.png
    +magick -size 256x256 radial-gradient:white-black radial_gradient.png
    +
    +

    + +

    If you want non-linear grayscale gradients, then add -colorspace RGB -colorspace gray +before saving the output. For example:

    + +

    magick -size 256x256 gradient: linear_gradient.png
    +magick -size 256x256 gradient:white-black -colorspace RGB -colorspace gray linear_linear_gradient.png
    +
    + +
    magick -size 256x256 radial-gradient: radial_gradient.png
    +magick -size 256x256 radial-gradient:white-black -colorspace RGB -colorspace gray linea_radial_gradient.png
    +
    + +

    As of IM 6.9.2.5, gradients have been enhanced through the use of several -defines.

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -define gradient:vector=x1,y1, x2,y2Specifies the direction of the linear gradient going from vector1 + (x1,y1) to vector2 (x2,y2). Color1 (fromColor) will be located at vector + position x1,y1 and color2 (toColor) will be located at vector position + x2,y2.
    -define gradient:center=x,ySpecifies the coordinates of the center point for the radial gradient. + The default is the center of the image.
    -define gradient:radii=x,ySpecifies the x and y radii of the gradient. If the x radius and the y + radius are equal, the shape of the radial gradient will be a circle. If + they differ, then the shape will be an ellipse. The default values are the + maximum of the half width and half height of the image.
    -define gradient:angle=angle in degreesFor a linear gradient, this specifies the direction of the gradient + going from color1 to color2 in a clockwise positive manner relative to + north (up). For a radial gradient, this specifies the rotation of the + gradient in a clockwise positive manner from its normal X-Y + orientation.
    -define gradient:bounding-box=widthxheight+x+yLimits the gradient to a larger or smaller region than the image + dimensions. If the region defined by the bounding box is smaller than the + image, then color1 will be the color of the background.
    + + +

    We also support two convenience defines for setting the linear gradient direction and the radial gradient shape.

    + + + + + + + + + + + +
    -define gradient:direction={NorthWest, North, Northeast, West, East, SouthWest, South, SouthEast}Specifies the direction of the linear gradient towards the + top/bottom/left/right or diagonal corners.
    -define gradient:extent={Circle, Diagonal, Ellipse, Maximum, Minimum}Specifies the shape of an image centered radial gradient. Circle and + Maximum draw a circular radial gradient even for rectangular shaped images + of radius equal to the larger of the half-width and half-height of the + image. The Circle and Maximum options are both equivalent to the default + radial gradient. The Minimum option draws a circular radial gradient + even for rectangular shaped images of radius equal to the smaller of the + half-width and half-height of the image. The Diagonal option draws a + circular radial gradient even for rectangular shaped images of radius equal + to the half-diagonal of the image. The Ellipse options draws an elliptical + radial gradient for rectangular shaped images of radii equal to half the + width and half the height of the image.
    + +

    Examples

    + +

    The default linear gradient may also be generated in any of the following ways (or by reversing the direction and swapping color1 and color2):

    + +
    magick -size 256x128 -define gradient:direction=north gradient:black-white linear_gradient_default.png
    +magick -size 256x128 -define gradient:angle=0 gradient:black-white linear_gradient_default.png
    +
    +

    + +

    The equivalent of

    + +
    magick -size 128x256 gradient: -rotate 90 linear_gradient_east.png
    +
    + +

    can be generate by either of the following (or by reversing the direction and swapping color1 and color2):

    + +
    magick -size 256x128 -define gradient:direction=east gradient:black-white linear_gradient_east.png
    +magick -size 256x128 -define gradient:angle=90 gradient:black-white linear_gradient_east.png
    +
    +

    + + +

    Examples of radial gradients going from black in the center to white at the boundary for the cases of "maximum/circle/default", "minimum", "diagonal", "ellipse" and 45 degree rotated ellipse, respectively, follow below.

    + + +
    magick -size 256x128 radial-gradient:black-white radial_gradient_maximum.png
    +magick -size 256x128 -define gradient:radii=128,128 radial-gradient:black-white radial_gradient_maximum.png
    +
    +

    + +
    magick -size 256x128 -define gradient:extent=minimum radial-gradient:black-white radial_gradient_minimum.png
    +magick -size 256x128 -define gradient:radii=64,64 radial-gradient:black-white radial_gradient_minimum.png
    +
    +

    + +
    magick -size 256x128 -define gradient:extent=diagonal radial-gradient:black-white radial_gradient_diagonal.png
    +
    +

    + +
    magick -size 256x128 -define gradient:extent=ellipse radial-gradient:black-white radial_gradient_ellipse.png
    +magick -size 256x128 -define gradient:radii=128,64 radial-gradient:black-white radial_gradient_ellipse.png
    +
    +

    + +
    conmagickvert -size 256x256 -define gradient:radii=128,64 -define gradient:angle=45 radial-gradient:black-white radial_gradient_ellipse_angle45.png
    +
    +

    + +
    + +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/high-dynamic-range.html b/share/doc/ImageMagick-7/www/high-dynamic-range.html new file mode 100644 index 0000000..d20485f --- /dev/null +++ b/share/doc/ImageMagick-7/www/high-dynamic-range.html @@ -0,0 +1,135 @@ + + + + + + + + + + High Dynamic-Range Images @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    High dynamic-range imaging (HDRI) permits a far greater dynamic range of exposures (i.e. a large difference between light and dark areas) than standard digital imaging techniques. HDRI accurately represents the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows. The HDR imaging approach includes:

    + +
      +
    • render/capture floating-point color space
    • +
    • encompass the entire perceivable gamut (extend values outside [0,1] range)
    • +
    • post-process in extended color space
    • +
    • apply tone-mapping for specific display
    • +
    + +

    Enabling HDRI in ImageMagick

    + +

    By default, image pixels in ImageMagick version 7 are stored in a floating-point representation that range from 0 to the quantum depth, which is typically 16-bits (Q16). With HDRI enabled, the pixels can include negative values as well as values that exceed the quantum depth. A majority of digital image formats do not support HDRI, and for those images any pixels outside the quantum range are clamped before they are stored.

    + +

    The most promising HDR image format is EXR. You must have the OpenEXR delegate library installed to read or write this format. Other HDR formats include TIFF 48-bit integer and 96-bit float formats, HDR, PFM, and ImageMagick's own MIFF format.

    + +

    To disable the HDRI version of ImageMagick, use this Unix/Linux command:

    + +
    ./configure --disable-hdri
    +
    + +

    Under Windows, uncomment the MAGICKCORE_HDRI_SUPPORT definition in the magick-baseconfig.h configuration file and build.

    + +

    To verify HDRI is properly configured, look for "HDRI" as a feature:

    + +
    identify -version
    +Features: HDRI
    +
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/history.html b/share/doc/ImageMagick-7/www/history.html new file mode 100644 index 0000000..afc3e16 --- /dev/null +++ b/share/doc/ImageMagick-7/www/history.html @@ -0,0 +1,127 @@ + + + + + + + + + + History @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    +
    +
    +
    +

    +I swear by my life and my love of it that I will never live for the sake of another man, nor ask another man to live for mine.
    -- John Galt in "Atlas Shrugged", by Ayn Rand

    + +

    ImageMagick started with a request from my DuPont supervisor, Dr. David Pensak, to display computer-generated images on a monitor only capable of showing 256 unique colors simultaneously.

    + +

    In 1987, monitors that could display 24-bit true color images were rare and quite expensive. There were a plethora of chemists and biologists at DuPont, but very were few computer scientists to confer with. Instead, I turned to Usenet for help, and posted a request for an algorithm to reduce 24-bit images to 256 colors. Paul Raveling of the USC Information Sciences Institute responded, with not only a solution, but one that was already in source code and available from USC's FTP site. Over the course of the next few years, I had frequent opportunities to get help with other vexing computer science problems I encountered in the course of doing my job at DuPont. Eventually I felt compelled to give thanks for the help I received from the knowledgeable folks on Usenet. I decided to freely release the image processing tools I developed to the world so that others could benefit from my efforts.

    + +

    In 1990 there were few freely available image processing tools so I expected an enthusiastic reception. Before a release was possible, Dr. Pensak had to convince upper management at DuPont to give away what they what they might perceive as valuable intellectual property. I suspect they agreed simply because ImageMagick was not chemically or biologically based, so they did not understand its value to the company. Either way, ImageMagick would not be available today without DuPont transferring the copyright to ImageMagick Studio LLC. ImageMagick was posted to Usenet's comp.archives group on August 1st, 1990.

    + +

    After ImageMagick's release, I got the occasional request for an enhancement, a report of a bug, or a contribution to the source base. In the mid 90's, I released the culmination of these efforts as ImageMagick 4.2.9. At the time, I thought ImageMagick was complete. It was utilized by thousands of users world-wide, and it was even showing up as part of a new operating system distributed freely called "Linux".

    + +

    The next generation of ImageMagick, version 5, started when Bob Friesenhahn contacted me and suggested I improve the application programming interface so users could leverage the image-processing algorithms from other languages or scripts. Bob also wrote a C++ wrapper for ImageMagick called Magick++, and began contributing enhancements such as the module loader facility, automatic file identification, and test suites. In the mean-time, the project picked up a few other notable contributors: Glenn Randers-Pehrson, William Radcliffe, and Leonard Rosenthol. By now, ImageMagick was utilized by tens of thousands of users, who reacted gruffly when a new release broke an existing API call or script. The other members of the group wanted to freeze the API and command line, but I felt ImageMagick was not quite what I had envisioned it could be. Bob and the others created a fork of ImageMagick while I continued to develop ImageMagick.

    + +

    I did not work alone for long. Anthony Thyssen contacted me about deficiencies in the ImageMagick command line programs. He pointed out that the command line was confusing when dealing with more than one image. He suggested an orderly, well-defined method for dealing with the command line, and this became ImageMagick version 6 (the current release). His efforts are detailed on his web pages, Examples of ImageMagick Usage. I highly recommend that you peruse his site. He has illustrated the power of ImageMagick in ways that even I did not know were possible.

    + +

    Another notable contributor, Fred Weinhaus, makes available a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations. Glenn Randers-Pehrson is our PNG guru and makes other valuable contributions. Dirk Lemstra made, and continues to make, numerous improvements to make ImageMagick more robust under Windows and distributes a .NET wrapper, Magick.NET.

    + +

    It has been more than 25 years since ImageMagick was first conceived, and it looks likely that it will be here for another 25 and beyond. The command line and the application programming interface are stable, but there is still work to do. The design of ImageMagick is an evolutionary process, with the design and implementation efforts serving to influence and guide further progress in the other. With ImageMagick version 7, we aim to improve the design based on lessons learned from the version 6 implementation.

    + +

    Cristy
    Principal ImageMagick Architect

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/identify.html b/share/doc/ImageMagick-7/www/identify.html new file mode 100644 index 0000000..252275b --- /dev/null +++ b/share/doc/ImageMagick-7/www/identify.html @@ -0,0 +1,454 @@ + + + + + + + + + + Command-line Tools: Identify @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Example Usage • Option Summary

    + +

    The identify program describes the format and characteristics of one or more image files. It also reports if an image is incomplete or corrupt. The information returned includes the image number, the file name, the width and height of the image, whether the image is colormapped or not, the number of colors in the image, the number of bytes in the image, the format of the image (JPEG, PNM, etc.), and finally the number of seconds it took to read and process the image. Many more attributes are available with the verbose option. See Command Line Processing for advice on how to structure your identify command or see below for example usages of the command.

    + +

    Example Usage

    + +

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

    + +
    -> magick identify rose.jpg
    +rose.jpg JPEG 70x46 70x46+0+0 8-bit sRGB 2.36KB 0.000u 0:00.000
    +
    + +

    Next, we look at the same image in greater detail:

    + +
    -> magick identify -verbose rose.jpg
    +Image: rose.jpg
    +  Format: JPEG (Joint Photographic Experts Group JFIF format)
    +  Mime type: images/jpeg
    +  Class: DirectClass
    +  Geometry: 70x46+0+0
    +  Units: Undefined
    +  Type: TrueColor
    +  Endianess: Undefined
    +  Colorspace: sRGB
    +  Depth: 8-bit
    +  Channel depth:
    +    Red: 8-bit
    +    Green: 8-bit
    +    Blue: 8-bit
    +  Channel statistics:
    +    Pixels: 3220
    +    Red:
    +      min: 31 (0.121569)
    +      max: 255 (1)
    +      mean: 145.557 (0.570814)
    +      standard deviation: 69.1933 (0.271346)
    +      kurtosis: -1.38945
    +      skewness: 0.138955
    +      entropy: 0.970683
    +    Green:
    +      min: 27 (0.105882)
    +      max: 255 (1)
    +      mean: 89.246 (0.349984)
    +      standard deviation: 52.4608 (0.205729)
    +      kurtosis: 2.60139
    +      skewness: 1.80708
    +      entropy: 0.869711
    +    Blue:
    +      min: 21 (0.0823529)
    +      max: 255 (1)
    +      mean: 80.4196 (0.315371)
    +      standard deviation: 54.9377 (0.215442)
    +      kurtosis: 2.93417
    +      skewness: 1.95544
    +      entropy: 0.853176
    +  Image statistics:
    +    Overall:
    +      min: 21 (0.0823529)
    +      max: 255 (1)
    +      mean: 105.074 (0.412056)
    +      standard deviation: 58.8639 (0.230839)
    +      kurtosis: 1.37788
    +      skewness: 1.48073
    +      entropy: 0.897856
    +  Rendering intent: Perceptual
    +  Gamma: 0.454545
    +  Chromaticity:
    +    red primary: (0.64,0.33)
    +    green primary: (0.3,0.6)
    +    blue primary: (0.15,0.06)
    +    white point: (0.3127,0.329)
    +  Alpha color: grey74
    +  Background color: white
    +  Border color: srgb(223,223,223)
    +  Transparent color: none
    +  Interlace: None
    +  Intensity: Undefined
    +  Compose: Over
    +  Page geometry: 70x46+0+0
    +  Dispose: Undefined
    +  Iterations: 0
    +  Compression: JPEG
    +  Quality: 92
    +  Orientation: Undefined
    +  Properties:
    +    jpeg:colorspace: 2
    +    jpeg:sampling-factor: 1x1,1x1,1x1
    +    signature: aea65c9b557d779d142f26d04abe7008bab50f1e9647faae20afdcc6c15140d5
    +  Artifacts:
    +    verbose: true
    +  Tainted: False
    +  Filesize: 2.65KB
    +  Number pixels: 3.22K
    +  User time: 0.000u
    +  Elapsed time: 0:01.000
    +  Version: ImageMagick 7.0.4-8 Q16 x86_64 http://www.imagemagick.org
    +
    + +

    To get the print size in inches of an image at 72 DPI, use:

    + +
    -> magick identify -format "%[fx:w/72] by %[fx:h/72] inches" document.png
    +8.5 x 11 inches
    +
    + +

    The depth and dimensions of a raw image must be specified on the command line:

    + +
    -> magick identify -depth 8 -size 640x480 image.raw
    +image.raw RGB 640x480 sRGB 9kb 0.000u 0:01
    +
    + +

    Here we display the image texture features, moments, perceptual hash, and the number of unique colors in the image:

    + +
    -> magick identify -verbose -features 1 -moments -unique image.png
    +
    + +

    Here is a special define that outputs the location of the minimum or maximum pixel of the image:

    + +
    magick identify -precision 5 -define identify:locate=maximum -define identify:limit=3 image.png
    +
    + +

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

    + +

    Option Summary

    + +

    The identify 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
    -channel typeapply option to select image channels
    -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
    -colorspace typeset image colorspace
    -crop geometrycrop the 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
    -endian typeendianness (MSB or LSB) of the image
    -extract geometryextract area from image
    -features distanceanalyze image features (e.g. contract, correlations, etc.).
    -format stringoutput formatted image characteristics
    -gamma valuelevel of gamma correction
    -grayscale methodconvert image to grayscale
    -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
    -mask filenameassociate a mask with the image
    -momentsdisplay image moments and perceptual hash.
    -monitormonitor progress
    -negatereplace each pixel with its complementary color
    -precision valueset the maximum number of significant digits to be printed
    -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
    -set attribute valueset an image attribute
    -size geometrywidth and height of image
    -stripstrip image of all profiles and comments
    -uniquedisplay image the number of unique colors in the image.
    -units typethe units of image resolution
    -verboseprint detailed information about the image
    -versionprint version information
    -virtual-pixel methodaccess method for pixels outside the boundaries of the image
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/import.html b/share/doc/ImageMagick-7/www/import.html new file mode 100644 index 0000000..2675e92 --- /dev/null +++ b/share/doc/ImageMagick-7/www/import.html @@ -0,0 +1,455 @@ + + + + + + + + + + Command-line Tools: Import @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Example Usage • Option Summary

    + +

    Use the import program to capture some or all of an X server screen and save the image to a file. import captures the window selected by clicking or program argument. See Command Line Processing for advice on how to structure your import command or see below for example usages of the command.

    + +

    Example Usage

    + +

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

    + +
    magick import rose.jpg
    +
    + +

    To capture the entire X server screen in the Postscript image format:

    + +
    magick import -window root screen.ps
    +
    + +

    You can find additional examples of using import 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 import command recognizes these options. Click on an option to get more details about how that option works.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OptionDescription
    -adjoinjoin images into a single multi-image file
    -annotate geometry textannotate the image with text
    -borderinclude window border in the output image
    -channel typeapply option to select image channels
    -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 eventsimport copious debugging information
    -define format:optiondefine one or more image format options
    -delay valueimport the next image after pausing
    -density geometryhorizontal and vertical density of the image
    -depth valueimage depth
    -descendobtain image by descending window hierarchy
    -display serverget image or font from this X server
    -dispose methodlayer disposal method
    -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
    -filter typeuse this filter when resizing an image
    -frameinclude window manager frame
    -geometry geometrypreferred size or location of the image
    -gravity typehorizontal and vertical text placement
    -helpprint program options
    -identifyidentify the format and characteristics of the image
    -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
    -monitormonitor progress
    -monochrometransform image to black and white
    -negatereplace each pixel with its complementary color
    -page geometrysize and location of an image canvas (setting)
    -pause secondsseconds delay between snapshots
    -quality valueJPEG/MIFF/PNG compression level
    -quantize colorspacereduce image colors in this colorspace
    -quietsuppress all warning messages
    -quietsuppress all warning messages
    -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
    -scene valueimage scene number
    -screenselect image from root window
    -seed valueseed a new sequence of pseudo-random numbers
    -set attribute valueset an image attribute
    -silentoperate silently, i.e. don't ring any bells
    -stripstrip image of all profiles and comments
    -synchronizesynchronize image to storage device
    -taintmark the image as modified
    -transparent-color colortransparent color
    -trimtrim image edges
    -type typeimage type
    -verboseprint detailed information about the image
    -versionprint version information
    -virtual-pixel methodaccess method for pixels outside the boundaries of the image
    -window idselect window with this id or name
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/index.html b/share/doc/ImageMagick-7/www/index.html new file mode 100644 index 0000000..80cd581 --- /dev/null +++ b/share/doc/ImageMagick-7/www/index.html @@ -0,0 +1,280 @@ + + + + + + + + + + Convert, Edit, Or Compose Bitmap Images @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    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, 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, thread data race detection, and continuous fuzzing to help prevent security vulnerabilities.

    + +

    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.

    + +

    We continue to maintain the legacy release of ImageMagick, version 6, at https://legacy.imagemagick.org.

    + +

    Features and Capabilities

    +

    Here are just a few examples of what ImageMagick can do for you:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Animationcreate a GIF animation sequence from a group of images.
    Color managementaccurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.
    Command-line processingutilize ImageMagick from the command-line.
    Complex text layoutbidirectional text support and shaping.
    Compositeoverlap one image over another.
    Connected component labelinguniquely label connected regions in an image.
    Decorateadd a border or frame to an image.
    Delineate image featuresCanny edge detection, Hough lines.
    Discrete Fourier transformimplements the forward and inverse DFT.
    Distributed pixel cacheoffload intermediate pixel storage to one or more remote servers.
    Drawadd shapes or text to an image.
    Encipher or decipher an imageconvert ordinary images into unintelligible gibberish and back again.
    Format conversionconvert an image from one format to another (e.g. PNG to JPEG).
    Generalized pixel distortioncorrect for, or induce image distortions including perspective.
    Heterogeneous distributed processingcertain algorithms are OpenCL-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.
    High dynamic-range imagesaccurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.
    Image calculatorapply a mathematical expression to an image or image channels.
    Image gradientscreate a gradual blend of two colors whose shape is horizontal, vertical, circular, or elliptical.
    Image identificationdescribe the format and attributes of an image.
    ImageMagick on the iPhoneconvert, edit, or compose images on your iOS device such as the iPhone or iPad.
    Large image supportread, process, or write mega-, giga-, or tera-pixel image sizes.
    Montagejuxtapose image thumbnails on an image canvas.
    Morphology of shapesextract features, describe shapes, and recognize patterns in images.
    Motion picture supportread and write the common image formats used in digital film work.
    Noise and color reductionKuwahara Filter, mean-shift.
    Perceptual hashmap visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking.
    Special effectsblur, sharpen, threshold, or tint an image.
    Text & commentsinsert descriptive or artistic text in an image.
    Threads of execution supportImageMagick is thread safe and most internal algorithms execute in parallel to take advantage of speed-ups offered by multicore processor chips.
    Transformresize, rotate, deskew, crop, flip or trim an image.
    Transparencyrender portions of an image invisible.
    Virtual pixel supportconvenient access to pixels outside the image boundaries.
    +
    + +

    Examples of ImageMagick Usage shows how to use ImageMagick from the command-line to accomplish any of these tasks and much more. Also, see Fred's ImageMagick Scripts: a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations. With Magick.NET, use ImageMagick without having to install ImageMagick on your server or desktop.

    + +

    News

    + +

    Now that ImageMagick version 7 is released, we continue to maintain the legacy release of ImageMagick, version 6, at https://legacy.imagemagick.org. Learn how ImageMagick version 7 differs from previous versions with our porting guide.

    + +

    ImageMagick best practices strongly encourages you to configure a security policy that suits your local environment.

    + +

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

    + +

    Want more performance from ImageMagick? Try these options:

    + + +

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

    + +

    Community

    +

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

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/install-source.html b/share/doc/ImageMagick-7/www/install-source.html new file mode 100644 index 0000000..db72ab6 --- /dev/null +++ b/share/doc/ImageMagick-7/www/install-source.html @@ -0,0 +1,185 @@ + + + + + + + + + + Install from Source @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Install from Unix Source • Install from Windows Source

    + +

    Chances are, ImageMagick is already installed on your computer if you are using some flavor of Unix, and its likely not installed if you are using some form of Windows. In either case, you can type the following to find out:

    + +
    identify -version
    +
    + +

    If the identify program executes and identifies itself as ImageMagick, you may not need to install ImageMagick from source unless you want to add support for additional image formats or upgrade to a newer version. You also have the option of installing a pre-compiled binary release. However, if you still want to install from source, choose a platform, Unix or Windows. Before installing from source, you may want to review recent changes to the ImageMagick distribution.

    + +

    The authoritative source code repository is https://github.com/ImageMagick. We maintain a source code mirror at https://git.imagemagick.org/repos/ImageMagick. We test and deploy ImageMagick with Travis CI and AppVeyor.

    + +

    Install from Unix Source

    + +

    ImageMagick builds on a variety of Unix and Unix-like operating systems including Linux, Solaris, FreeBSD, Mac OS X, and others. A compiler is required and fortunately almost all modern Unix systems have one. Download ImageMagick.tar.gz from www.imagemagick.org or a mirrors and verify its message digest.

    + +

    Unpack the distribution with this command:

    + +
    tar xvzf ImageMagick.tar.gz
    +
    + +

    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

    + +
    sudo make install
    +
    + +

    You may need to configure the dynamic linker run-time bindings:

    + +
    sudo ldconfig /usr/local/lib
    +
    + +

    Finally, verify the ImageMagick install worked properly, type

    + +
    /usr/local/bin/convert logo: logo.gif
    +
    + +

    For a more comprehensive test, run the ImageMagick validation suite. Ghostscript is a prerequisite, otherwise the EPS, PS, and PDF tests will fail.

    + +
    make check
    +
    + +

    Congratulations, you have a working ImageMagick distribution and you are ready to use ImageMagick to convert, compose, or edit your images or perhaps you'll want to use one of the Application Program Interfaces for C, C++, Perl, and others.

    + +

    The above instructions will satisfy a great number of ImageMagick users, but we suspect a few will have additional questions or problems to consider. For example, what does one do if ImageMagick fails to configure or compile? Or what if you don't have administrator privileges and what if you don't want to install ImageMagick in the default /../usr/local folder? You will find the answer to these questions, and more, in Advanced Unix Source Installation.

    + +

    Install from Windows Source

    + +

    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.

    + +

    Clone the Github repo:

    + +

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

    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.

    + +

    [configure]

    + +

    Press Next and click on the multi-threaded static build. If you are using the Visual Studio 6.0 IDE, make sure no check is next to the Generate Visual Studio 7 format option. Now press, on Next twice and finally Finish. The configuration utility just created a workspace required to build ImageMagick from source. Choose Open->Project and select the VisualStaticMT workspace from the ImageMagick-7.0.7/VisualMagick/ folder. Finally, choose Build->Build Solution to compile and build the ImageMagick distribution.

    + +

    To verify ImageMagick is working properly, launch a MS-DOS Command Prompt window and type

    + +
    $ cd ImageMagick-7.0.7
    $ convert logo: image.jpg
    +

    For a more comprehensive test, run the ImageMagick validation suite:

    + +
    validate
    +
    + +

    Congratulations, you have a working ImageMagick distribution under Windows and you are ready to use ImageMagick to convert, compose, or edit your images or perhaps you'll want to use one of the Application Program Interfaces for C, C++, Perl, and others.

    + +

    The above instructions will satisfy a great number of ImageMagick users, but we suspect a few will have additional questions or problems to consider. For example, what does one do if ImageMagick fails to configure or compile? Or what if you want to install ImageMagick in a place other than the ImageMagick-7.0.7/VisualMagick/bin folder? Or perhaps you want to build and install the ImageMagickObject COM+ component. You will find the answer to these questions, and more, in Advanced Windows Source Installation.

    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/jp2.html b/share/doc/ImageMagick-7/www/jp2.html new file mode 100644 index 0000000..61952ed --- /dev/null +++ b/share/doc/ImageMagick-7/www/jp2.html @@ -0,0 +1,187 @@ + + + + + + + + + + JP2 Encoding Options @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    ImageMagick's JPEG-2000 image formats, JP2 and JPC, accept a plethora of encoding options as detailed below. As an example, suppose you are interested in these options:

    + +
      +
    • code blocks are 64 samples in width and 32 samples in height
    • +
    • no multicomponent transform
    • +
    • 4 resolution levels for each component
    • +
    • compression is lossy at 64:1
    • +
    + +

    Use this command to convert a JPEG-2000 image to the PNG image format:

    + +
    convert wizard.jp2 wizard.png
    +
    + +

    Let's convert a JPEG image to a lossless JPEG-2000 image:

    + +
    convert wizard.jpg -quality 0 wizard.jp2
    +
    + +

    Here we extract an area from the image:

    + +
    convert 'wizard.jp2[640x480+0+0]' wizard.png
    +
    + +

    Extract a particular tile from the image:

    + +
    convert 'wizard.jp2[2]' wizard.png
    +
    + +

    Specify a subsampling factor:

    + +
    convert wizard.png -colorspace YUV -sampling-factor 2,2 wizard.jp2
    +
    + +

    Save a tiled JPEG-2000 image:

    + +
    convert wizard.png 'wizard.png[512x512]'
    +
    + +

    Write a digital Cinema 4K profile compliant codestream:

    + +
    convert wizard.png -resize 4096x2160! -depth 12 wizard.jp2
    +
    + +

    Here is a complete list of JPEG-2000 decoding options:

    + +
    + + + + + + + + + +
    jp2:quality-layers=xset the maximum number of quality layers to decode.
    jp2:reduce-factor=xset the number of highest resolution levels to be discarded.
    + +

    Here is a complete list of JPEG-2000 encoding options:

    + +
    + + + + + + + + + + + + + + + + + +
    jp2:number-resolutions=xnumber of resolutions to encode.
    jp2:quality=x,x,...set the quality layer PSNR, given in dB. The order is from left to right in ascending order. The default is a single lossless quality layer.
    jp2:rate=x,x,...the compression ratio values. Each value is a factor of compression, thus 20 means 20 times compressed. The order is from left to right in descending order. A final lossless quality layer is signified by the value 1. The default is a single lossless quality layer.
    jp2:progression-order=xchoose from LRCP, RLCP, RPCL, PCRL or CPRL.
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/license.html b/share/doc/ImageMagick-7/www/license.html new file mode 100644 index 0000000..0bd267b --- /dev/null +++ b/share/doc/ImageMagick-7/www/license.html @@ -0,0 +1,232 @@ + + + + + + + + + + License @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    +
    +
    +
    +

    Terms and Conditions for Use, Reproduction, and Distribution • How to Apply the License to your Work

    + +

    Before we get to the text of the license, lets just review what the license says in simple terms:

    + +

    It allows you to:

    + +
      +
    • freely download and use ImageMagick software, in whole or in part, for personal, company internal, or commercial purposes;
    • +
    • use ImageMagick software in packages or distributions that you create;
    • +
    • link against a library under a different license;
    • +
    • link code under a different license against a library under this license;
    • +
    • merge code into a work under a different license;
    • +
    • extend patent grants to any code using code under this license;
    • +
    • and extend patent protection.
    • +
    + +

    It forbids you to:

    + +
      +
    • redistribute any piece of ImageMagick-originated software without proper attribution;
    • +
    • use any marks owned by ImageMagick Studio LLC in any way that might state or imply that ImageMagick Studio LLC endorses your distribution;
    • +
    • use any marks owned by ImageMagick Studio LLC in any way that might state or imply that you created the ImageMagick software in question.
    • +
    + +

    It requires you to:

    + +
      +
    • include a copy of the license in any redistribution you may make that includes ImageMagick software;
    • +
    • provide clear attribution to ImageMagick Studio LLC for any distributions that include ImageMagick software.
    • +
    + +

    It does not require you to:

    + +
      +
    • include the source of the ImageMagick software itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it;
    • +
    • submit changes that you make to the software back to the ImageMagick Studio LLC (though such feedback is encouraged).
    • +
    + +

    A few other clarifications include:

    + +
      +
    • ImageMagick is freely available without charge;
    • +
    • you may include ImageMagick on any digital media as long as you comply with the terms of the license;
    • +
    • you can give modified code away for free or sell it under the terms of the ImageMagick license or distribute the result under a different license, but you need to acknowledge the use of the ImageMagick software;
    • +
    • the license is compatible with the GPL V3.
    • +
    • when exporting the ImageMagick software, review its export classification.
    • +
    + + +

    Terms and Conditions for Use, Reproduction, and Distribution

    + +

    The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:

    + +

    Copyright © 1999-2018 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.

    + +

    1. Definitions.

    + +

    License shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

    + +

    Licensor shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

    + +

    Legal Entity shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, control means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

    + +

    You (or Your) shall mean an individual or Legal Entity exercising permissions granted by this License.

    + +

    Source form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

    + +

    Object form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

    + +

    Work shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

    + +

    Derivative Works shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

    + +

    Contribution shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as Not a Contribution.

    + +

    Contributor shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

    + +

    2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

    + +

    3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

    + +

    4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

    + +
      +
    1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
    2. + +
    3. You must cause any modified files to carry prominent notices stating that You changed the files; and
    4. + +
    5. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
    6. + +
    7. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
    8. +
    + +

    You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

    + +

    5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

    + +

    6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

    + +

    7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

    + +

    8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

    + +

    9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

    + + +

    How to Apply the License to your Work

    + +

    To apply the ImageMagick License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information (don't include the brackets). The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

    + +
       Copyright [yyyy] [name of copyright owner]
    +
    +   Licensed under the ImageMagick License (the "License"); you may not use
    +   this file except in compliance with the License.  You may obtain a copy
    +   of the License at
    +
    +     ../www/license.html
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
    +   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
    +   License for the specific language governing permissions and limitations
    +   under the License.
    +
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/links.html b/share/doc/ImageMagick-7/www/links.html new file mode 100644 index 0000000..40b135a --- /dev/null +++ b/share/doc/ImageMagick-7/www/links.html @@ -0,0 +1,192 @@ + + + + + + + + + + Related Web Sites @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Use ImageMagick on the Web • Command-line Tutorials • Program Interface Tutorials • ImageMagick Techniques • Installation Tutorials • ImageMagick Topics • ImageMagick Book Review • Web Site Mirrors • Image Bank • Other Projects

    + +

    Listed here are a number of external web sites that are related to ImageMagick. ImageMagick Studio does not maintain or endorse these sites, excepting the Wizard's Toolkit site, but we feel they are a helpfull adjunct to this web site.

    + +

    Use ImageMagick on the Web

    + + +

    Command-line Tutorials

    + + +

    Program Interface Tutorials

    + + + +

    Installation Tutorials

    + + + +

    ImageMagick Techniques

    + + + +

    ImageMagick Topics

    + + +

    ImageMagick Book Review

    + + +

    ImageMagick Web Site Mirrors

    + + +

    Image Bank

    + + + +

    Other Projects

    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/magick++.html b/share/doc/ImageMagick-7/www/magick++.html new file mode 100644 index 0000000..6a3f810 --- /dev/null +++ b/share/doc/ImageMagick-7/www/magick++.html @@ -0,0 +1,214 @@ + + + + + + + + + + Magick++, C++ API @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Documentation • Obtaining Magick++ • Installation • Reporting Bugs

    + + +

    Magick++ API is the object-oriented C++ API to the ImageMagick image-processing library.

    +

    Magick++ supports an object model which is inspired by PerlMagick. +Images support implicit reference counting so that copy constructors +and assignment incur almost no cost. The cost of actually copying an +image (if necessary) is done just before modification and this copy +is managed automagically by Magick++. De-referenced copies are +automagically deleted. The image objects support value (rather than +pointer) semantics so it is trivial to support multiple generations +of an image in memory at one time. +

    +

    Magick++ provides integrated support for the Standard +Template Library (STL) so that the powerful containers available +(e.g. deque, +vector, list, +and map) can +be used to write programs similar to those possible with PERL & +PerlMagick. STL-compatible template versions of ImageMagick's +list-style operations are provided so that operations may be +performed on multiple images stored in STL containers. +

    +

    Documentation

    + +

    Detailed documentation is +provided for all Magick++ classes, class methods, and template +functions which comprise the API. See a Gentle Introduction to Magick++ for an introductory tutorial to Magick++. We include the source if you want to correct, enhance, or expand the tutorial.

    +

    Obtaining Magick++

    + +

    Magick++ is included as part of ImageMagick +source releases and may be retrieved via ftp +or GIT. +

    +

    Installation

    + +

    Once you have the Magick++ sources available, follow these detailed +installation instructions for UNIX and +Windows. +

    +

    Usage

    +

    A helper script named Magick++-config is installed +under Unix which assists with recalling compilation options required +to compile and link programs which use Magick++. For example, the +following command compiles and links the source file demo.cpp +to produce the executable demo (notice that quotes are +backward quotes): +

    +
    c++ `Magick++-config --cxxflags --cppflags` -O2 -o demo demo.cpp \
    +  `Magick++-config --ldflags --libs`
    +
    +

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

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

    Windows users may get started by manually editing a project file +for one of the Magick++ demo programs. +

    +

    Note, under Windows (and possibly the Mac) it may be necessary to initialize the ImageMagick library prior to using the Magick++ library. This initialization is performed by passing the path to the ImageMagick DLLs (assumed to be in the same directory as your program) to the InitializeMagick() function call. This is commonly performed by providing the path to your program (argv[0]) as shown in the following example:

    +
    int main( int argc, char ** argv) {
    +  InitializeMagick(*argv);
    +  ...
    +
    +

    This initialization step is not required under Unix, Linux, +Cygwin, or any other operating environment that supports the notion +of installing ImageMagick in a known location.

    +

    Here is a example program that utilizes the Magick++ API to get you started, magick++.cpp. It reads an image, crops it, and writes it to disk in the PNG image format.

    + +
    
    +#include <Magick++.h> 
    +#include <iostream> 
    +
    +using namespace std; 
    +using namespace Magick; 
    +
    +int main(int argc,char **argv) 
    +{ 
    +  InitializeMagick(*argv);
    +
    +  // Construct the image object. Seperating image construction from the 
    +  // the read operation ensures that a failure to read the image file 
    +  // doesn't render the image object useless. 
    +  Image image;
    +  try { 
    +    // Read a file into image object 
    +    image.read( "logo:" );
    +
    +    // Crop the image to specified size (width, height, xOffset, yOffset)
    +    image.crop( Geometry(100,100, 100, 100) );
    +
    +    // Write the image to a file 
    +    image.write( "logo.png" ); 
    +  } 
    +  catch( Exception &error_ ) 
    +    { 
    +      cout << "Caught exception: " << error_.what() << endl; 
    +      return 1; 
    +    } 
    +  return 0; 
    +}
    +
    +

    Reporting Bugs

    + +

    Questions regarding usage should be directed to or to report any bugs go to +Magick++ bug tracking forum. +

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/magick-core.html b/share/doc/ImageMagick-7/www/magick-core.html new file mode 100644 index 0000000..b58952a --- /dev/null +++ b/share/doc/ImageMagick-7/www/magick-core.html @@ -0,0 +1,359 @@ + + + + + + + + + + MagickCore, Low-level C API @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    The MagickCore API is a low-level interface between the C programming language and the ImageMagick image processing libraries and is recommended for wizard-level programmers only. Unlike the MagickWand C API which uses only a few opaque types and accessors, with MagickCore you almost exlusively access the structure members directly. A description of the MagickCore public methods are found here:

    + + + +

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

    + +
    cc -o core core.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 MagickCore API to get you started, core.c. It reads a GIF image, creates a thumbnail, and writes it to disk in the PNG image format.

    + +
    #include <stdio.h>
    +#include <stdlib.h>
    +#include <string.h>
    +#include <time.h>
    +#include <MagickCore/MagickCore.h>
    +
    +int main(int argc,char **argv)
    +{
    +  ExceptionInfo
    +    *exception;
    +
    +  Image
    +    *image,
    +    *images,
    +    *resize_image,
    +    *thumbnails;
    +
    +  ImageInfo
    +    *image_info;
    +
    +  if (argc != 3)
    +    {
    +      (void) fprintf(stdout,"Usage: %s image thumbnail\n",argv[0]);
    +      exit(0);
    +    }
    +  /*
    +    Initialize the image info structure and read an image.
    +  */
    +  MagickCoreGenesis(*argv,MagickTrue);
    +  exception=AcquireExceptionInfo();
    +  image_info=CloneImageInfo((ImageInfo *) NULL);
    +  (void) strcpy(image_info->filename,argv[1]);
    +  images=ReadImage(image_info,exception);
    +  if (exception->severity != UndefinedException)
    +    CatchException(exception);
    +  if (images == (Image *) NULL)
    +    exit(1);
    +  /*
    +    Convert the image to a thumbnail.
    +  */
    +  thumbnails=NewImageList();
    +  while ((image=RemoveFirstImageFromList(&images)) != (Image *) NULL)
    +  {
    +    resize_image=ResizeImage(image,106,80,LanczosFilter,exception);
    +    if (resize_image == (Image *) NULL)
    +      MagickError(exception->severity,exception->reason,exception->description);
    +    (void) AppendImageToList(&thumbnails,resize_image);
    +    DestroyImage(image);
    +  }
    +  /*
    +    Write the image thumbnail.
    +  */
    +  (void) strcpy(thumbnails->filename,argv[2]);
    +  WriteImage(image_info,thumbnails,exception);
    +  /*
    +    Destroy the image thumbnail and exit.
    +  */
    +  thumbnails=DestroyImageList(thumbnails);
    +  image_info=DestroyImageInfo(image_info);
    +  exception=DestroyExceptionInfo(exception);
    +  MagickCoreTerminus();
    +  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 <MagickCore/MagickCore.h>
    +
    +static MagickBooleanType SigmoidalContrast(ImageView *contrast_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;
    +
    +  register IndexPacket
    +    *indexes;
    +
    +  register PixelPacket
    +    *pixels;
    +
    +  register ssize_t
    +    x;
    +
    +  extent=GetImageViewExtent(contrast_view);
    +  pixels=GetImageViewAuthenticPixels(contrast_view);
    +  for (x=0; x < (ssize_t) (extent.width-extent.x); x++)
    +  {
    +    SetPixelRed(pixels,RoundToQuantum(SigmoidalContrast(GetPixelRed(pixels)));
    +    SetPixelGreen(pixels,RoundToQuantum(SigmoidalContrast(GetPixelGreen(pixels)));
    +    SetPixelBlue(pixels,RoundToQuantum(SigmoidalContrast(GetPixelBlue(pixels)));
    +    SetPixelOpacity(pixels,RoundToQuantum(SigmoidalContrast(GetPixelOpacity(pixels)));
    +    pixels++;
    +  }
    +  indexes=GetImageViewAuthenticIndexes(contrast_view);
    +  if (indexes != (IndexPacket *) NULL)
    +    for (x=0; x < (ssize_t) (extent.width-extent.x); x++)
    +      SetPixelIndex(indexes+x,RoundToQuantum(SigmoidalContrast(GetPixelIndex(indexes+x))));
    +  return(MagickTrue);
    +}
    +
    +int main(int argc,char **argv)
    +{
    +#define ThrowImageException(image) \
    +{ \
    + \
    +  CatchException(exception); \
    +  if (contrast_image != (Image *) NULL) \
    +    contrast_image=DestroyImage(contrast_image); \
    +  exit(-1); \
    +}
    +#define ThrowViewException(view) \
    +{ \
    +  char \
    +    *description; \
    + \
    +  ExceptionType \
    +    severity; \
    + \
    +  description=GetImageViewException(view,&severity); \
    +  (void) fprintf(stderr,"%s %s %lu %s\n",GetMagickModule(),description); \
    +  description=DestroyString(description); \
    +  exit(-1); \
    +}
    +
    +  ExceptionInfo
    +    *exception;
    +
    +  Image
    +    *contrast_image;
    +
    +  ImageInfo
    +    *image_info;
    +
    +  ImageView
    +    *contrast_view;
    +
    +  MagickBooleanType
    +    status;
    +
    +  if (argc != 3)
    +    {
    +      (void) fprintf(stdout,"Usage: %s image sigmoidal-image\n",argv[0]);
    +      exit(0);
    +    }
    +  /*
    +    Read an image.
    +  */
    +  MagickCoreGenesis(*argv,MagickTrue);
    +  image_info=AcquireImageInfo();
    +  (void) CopyMagickString(image_info->filename,argv[1],MaxTextExtent);
    +  exception=AcquireExceptionInfo();
    +  contrast_image=ReadImage(image_info,exception);
    +  if (contrast_image == (Image *) NULL)
    +    ThrowImageException(contrast_image);
    +  /*
    +    Sigmoidal non-linearity contrast control.
    +  */
    +  contrast_view=NewImageView(contrast_image);
    +  if (contrast_view == (ImageView *) NULL)
    +    ThrowImageException(contrast_image);
    +  status=UpdateImageViewIterator(contrast_view,SigmoidalContrast,(void *) NULL);
    +  if (status == MagickFalse)
    +    ThrowImageException(contrast_image);
    +  contrast_view=DestroyImageView(contrast_view);
    +  /*
    +    Write the image then destroy it.
    +  */
    +  status=WriteImages(image_info,contrast_image,argv[2],exception);
    +  if (status == MagickFalse)
    +    ThrowImageException(contrast_image);
    +  contrast_image=DestroyImage(contrast_image);
    +  exception=DestroyExceptionInfo(exception);
    +  image_info=DestroyImageInfo(image_info);
    +  MagickCoreTerminus();
    +  return(0);
    +}
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/magick-script.html b/share/doc/ImageMagick-7/www/magick-script.html new file mode 100644 index 0000000..6fc26ed --- /dev/null +++ b/share/doc/ImageMagick-7/www/magick-script.html @@ -0,0 +1,1312 @@ + + + + + + + + + + Command-line Tools: Magick-script @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Use the magick-script scripting language 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.

    + +

    Here is an example script:

    + +
    +    #!/bin/env magick-script
    +    -size 100x100 xc:red ( rose: -rotate -90 ) +append  -write show:
    +
    + + +

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

    + +

    Option Summary

    + +

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

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -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
    +
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/magick-vector-graphics.html b/share/doc/ImageMagick-7/www/magick-vector-graphics.html new file mode 100644 index 0000000..d7ecd08 --- /dev/null +++ b/share/doc/ImageMagick-7/www/magick-vector-graphics.html @@ -0,0 +1,901 @@ + + + + + + + + + + Magick Vector Graphics @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    MVG Overview • Drawing Primitives

    + +

    This specification defines the features and syntax for Magick Vector Graphics (MVG), a modularized language for describing two-dimensional vector and mixed vector/raster graphics in ImageMagick. You can use the language to draw from the +command line, from an MVG file, from an SVG -- Scalable Vector Graphics file or from one of the ImageMagick program interfaces. Use this command, for example, to render an arc:

    + +
    convert -size 100x60 canvas:skyblue -fill white -stroke black \
    +  -draw "path 'M 30,40  A 30,20  20  0,0 70,20 A 30,20  20  1,0 30,40 Z '" \
    +  arc.png
    +
    + +

    and here is the result:

    + +
      + arc +
    + +

    When the drawing gets sufficiently complex, we recommend you assemble the graphic primitives into a MVG file. For our example, we use piechart.mvg:

    + +
    push graphic-context
    +  viewbox 0 0 624 369
    +  affine 0.283636 0 0 0.283846 -0 -0
    +  push graphic-context
    +    push graphic-context
    +      fill 'darkslateblue'
    +      stroke 'blue'
    +      stroke-width 1
    +      rectangle 1,1 2199,1299
    +    pop graphic-context
    +    push graphic-context
    +      font-size 40
    +      fill 'white'
    +      stroke-width 1
    +      text 600,1100 'Average: 20.0'
    +    pop graphic-context
    +    push graphic-context
    +      fill 'red'
    +      stroke 'black'
    +      stroke-width 5
    +      path 'M700.0,600.0 L340.0,600.0 A360.0,360.0 0 0,1 408.1452123287954,389.2376150414973 z'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 40
    +      fill 'white'
    +      stroke-width 1
    +      text 1400,140 'MagickWand for PHP'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 30
    +      fill 'white'
    +      stroke-width 1
    +      text 1800,140 '(10.0%)'
    +    pop graphic-context
    +    push graphic-context
    +      fill 'red'
    +      stroke 'black'
    +      stroke-width 4
    +      rectangle 1330,100 1370,140
    +    pop graphic-context
    +    push graphic-context
    +      fill 'yellow'
    +      stroke 'black'
    +      stroke-width 5
    +      path 'M700.0,600.0 L408.1452123287954,389.2376150414973 A360.0,360.0 0 0,1 976.5894480359858,369.56936567559273 z'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 40
    +      fill 'white'
    +      stroke-width 1
    +      text 1400,220 'MagickCore'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 30
    +      fill 'white'
    +      stroke-width 1
    +      text 1800,220 '(29.0%)'
    +    pop graphic-context
    +    push graphic-context
    +      fill 'yellow'
    +      stroke 'black'
    +      stroke-width 4
    +      rectangle 1330,180 1370,220
    +    pop graphic-context
    +    push graphic-context
    +      fill 'fuchsia'
    +      stroke 'black'
    +      stroke-width 5
    +      path 'M700.0,600.0 L976.5894480359858,369.56936567559273 A360.0,360.0 0 0,1 964.2680466142854,844.4634932636567 z'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 40
    +      fill 'white'
    +      stroke-width 1
    +      text 1400,300 'MagickWand'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 30
    +      fill 'white'
    +      stroke-width 1
    +      text 1800,300 '(22.9%)'
    +    pop graphic-context
    +    push graphic-context
    +      fill 'fuchsia'
    +      stroke 'black'
    +      stroke-width 4
    +      rectangle 1330,260 1370,300
    +    pop graphic-context
    +    push graphic-context
    +      fill 'blue'
    +      stroke 'black'
    +      stroke-width 5
    +      path 'M700.0,600.0 L964.2680466142854,844.4634932636567 A360.0,360.0 0 0,1 757.853099990584,955.3210081341651 z'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 40
    +      fill 'white'
    +      stroke-width 1
    +      text 1400,380 'JMagick'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 30
    +      fill 'white'
    +      stroke-width 1
    +      text 1800,380 '(10.6%)'
    +    pop graphic-context
    +    push graphic-context
    +      fill 'blue'
    +      stroke 'black'
    +      stroke-width 4
    +      rectangle 1330,340 1370,380
    +    pop graphic-context
    +    push graphic-context
    +      fill 'lime'
    +      stroke 'black'
    +      stroke-width 5
    +      path 'M700.0,600.0 L757.853099990584,955.3210081341651 A360.0,360.0 0 0,1 340.0,600.0 z'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 40
    +      fill 'white'
    +      stroke-width 1
    +      text 1400,460 'Magick++'
    +    pop graphic-context
    +    push graphic-context
    +      font-size 30
    +      fill 'white'
    +      stroke-width 1
    +      text 1800,460 '(27.5%)'
    +    pop graphic-context
    +    push graphic-context
    +      fill 'lime'
    +      stroke 'black'
    +      stroke-width 4
    +      rectangle 1330,420 1370,460
    +    pop graphic-context
    +    push graphic-context
    +      font-size 100
    +      fill 'white'
    +      stroke-width 1
    +      text 100,150 'ImageMagick'
    +    pop graphic-context
    +    push graphic-context
    +      fill 'none'
    +      stroke 'black'
    +      stroke-width 5
    +      circle 700,600 700,960
    +    pop graphic-context
    +  pop graphic-context
    +pop graphic-context
    +
    + +

    to render a pie chart with this command:

    + +
    convert mvg:piechart.mvg piechart.png
    +
    + +

    which produces this rendering:

    + +
      + piechart +
    + +

    However, in general, MVG is sufficiently difficult to work with that you probably want to use a program to generate your graphics in the SVG format. ImageMagick automagically converts SVG to MVG and renders your image, for example, we render piechart.svg with this command:

    + +
    convert mvg:piechart.svg piechart.jpg
    +
    + + +

    to produce the same pie chart we created with the MVG language.

    + +

    Drawing is available from many of the ImageMagick program interfaces as well. ImageMagick converts the drawing API calls to MVG and renders it. Here is example code written in the MagickWand language:

    + +
    (void) PushDrawingWand(draw_wand);
    +{
    +  const PointInfo points[6] =
    +  {
    +    { 180,504 },
    +    { 282.7,578.6 },
    +    { 243.5,699.4 },
    +    { 116.5,699.4 },
    +    { 77.26,578.6 },
    +    { 180,504 }
    +  };
    +
    +  DrawSetStrokeAntialias(draw_wand,True);
    +  DrawSetStrokeWidth(draw_wand,9);
    +  DrawSetStrokeLineCap(draw_wand,RoundCap);
    +  DrawSetStrokeLineJoin(draw_wand,RoundJoin);
    +  (void) DrawSetStrokeDashArray(draw_wand,0,(const double *)NULL);
    +  (void) PixelSetColor(color,"#4000c2");
    +  DrawSetStrokeColor(draw_wand,color);
    +  DrawSetFillRule(draw_wand,EvenOddRule);
    +  (void) PixelSetColor(color,"#800000");
    +  DrawSetFillColor(draw_wand,color);
    +  DrawPolygon(draw_wand,6,points);
    +}
    +(void) PopDrawingWand(draw_wand);
    +
    + +

    MVG Overview

    + +

    MVG ignores all white-space between commands. This allows multiple MVG commands per line. It is common convention to terminate each MVG command with a new line to make MVG easier to edit and read. This syntax description uses indentation in MVG sequences to aid with understanding. Indentation is supported but is not required.

    + +

    Metafile wrapper syntax (to support stand-alone MVG files):

    + +
    push graphic-context
    +  viewbox 0 0 width height
    +  [ any other MVG commands ]
    +pop graphic-context
    +
    + +

    Pattern syntax (saving and restoring context):

    + +
    push pattern id x,y width,height
    + push graphic-context
    +  [ drawing commands ]
    + pop graphic-context
    +pop pattern
    +
    + +

    an example is (%s is a identifier string):

    + +
    push defs
    + push pattern %s 10,10 20,20
    +  push graphic-context
    +   fill red
    +   rectangle 5,5 15,15
    +  pop graphic-context
    +  push graphic-context
    +   fill green
    +   rectangle 10,10 20,20
    +  pop graphic-context
    + pop pattern
    +pop defs
    +
    + +

    For image tiling use:

    + +
    push pattern id x,y width,height
    + image Copy ...
    +pop pattern
    +
    + +

    Note you can use the pattern for either the fill or stroke like:

    + +
    stroke url(#%s)
    +
    + +

    or

    + +
    fill url(#%s)
    +
    + +

    The clip path defines a clipping area, where only the contained area to be drawn upon. Areas outside of the clipping areare masked.

    + +
    push defs
    + push clip-path %s
    +  push graphic-context
    +   rectangle 10,10 20,20
    +  pop graphic-context
    + pop clip-path
    +pop defs
    +clip-path url(#%s)
    +
    + +

    Drawing Primitives

    + +

    Here is a complete description of the MVG drawing primitives:

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PrimitiveDescription
    affine sx,rx,ry,sy,tx,ty
    arc x0,y0 x1,y1 a0,a1
    bezier x0,y0 ... xn,ynBezier (spline) requires three or more x,y coordinates to define its shape. The first and last points are the knots (preserved coordinates) and any intermediate coordinates are the control points. If two control points are specified, the line between each end knot and its sequentially respective control point determines the tangent direction of the curve at that end. If one control point is specified, the lines from the end knots to the one control point determines the tangent directions of the curve at each end. If more than two control points are specified, then the additional control points act in combination to determine the intermediate shape of the curve. In order to draw complex curves, it is highly recommended either to use the Path primitive or to draw multiple four-point bezier segments with the start and end knots of each successive segment repeated.
    border-color color
    circle originx,originy perimeterx,perimetery
    clip-path url(name)
    clip-rule ruleChoose from these rule types: +
    evenodd
    +nonzero
    clip-units unitsChoose from these unit types: +
    userSpace
    +userSpaceOnUse
    +objectBoundingBox
    color x,y methodChoose from these method types: +
    point
    +replace
    +floodfill
    +filltoborder
    +reset
    decorate typeChoose from these types of decorations: +
    none
    +line-through
    +overline
    +underline
    ellipse centerx,centery radiusx,radiusy arcstart,arcstop
    fill colorChoose from any of these colors.
    fill-opacity opacityThe opacity ranges from 0.0 (fully transparent) to 1.0 (fully opaque) or as a percentage (e.g. 50%).
    fill-rule ruleChoose from these rule types: +
    evenodd
    +nonzero
    font name
    font-family family
    font-size point-size
    font-stretch typeChoose from these stretch types: +
    all
    +normal
    +ultra-condensed
    +extra-condensed
    +condensed
    +semi-condensed
    +semi-expanded
    +expanded
    +extra-expanded
    +ultra-expanded
    font-style styleChoose from these styles: +
    all
    +normal
    +italic
    +oblique
    font-weight weightChoose from these weights: +
    all
    +normal
    +bold
    +100
    +200
    +300
    +400
    +500
    +600
    +700
    +800
    +900
    gradient-units unitsChoose from these units: +
    userSpace
    +userSpaceOnUse
    +objectBoundingBox
    gravity typeChoose from these gravity types: +
    NorthWest
    +North
    +NorthEast
    +West
    +Center
    +East
    +SouthWest
    +South
    +SouthEast
    image compose x,y width,height 'filename'Choose from these compose operations: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodDescription
    clearBoth the color and the alpha of the destination are cleared. Neither the source nor the destination are used as input.
    srcThe source is copied to the destination. The destination is not used as input.
    dstThe destination is left untouched.
    src-overThe source is composited over the destination.
    dst-overThe destination is composited over the source and the result replaces the destination.
    src-inThe part of the source lying inside of the destination replaces the destination.
    dst-inThe part of the destination lying inside of the source replaces the destination.
    src-outThe part of the source lying outside of the destination replaces the destination.
    dst-outThe part of the destination lying outside of the source replaces the destination.
    src-atopThe part of the source lying inside of the destination is composited onto the destination.
    dst-atopThe part of the destination lying inside of the source is composited over the source and replaces the destination.
    multiplyThe source is multiplied by the destination and replaces the destination. The resultant color is always at least as dark as either of the two constituent colors. Multiplying any color with black produces black. Multiplying any color with white leaves the original color unchanged.
    screenThe source and destination are complemented and then multiplied and then replace the destination. The resultant color is always at least as light as either of the two constituent colors. Screening any color with white produces white. Screening any color with black leaves the original color unchanged.
    overlayMultiplies or screens the colors, dependent on the destination color. Source colors overlay the destination whilst preserving its highlights and shadows. The destination color is not replaced, but is mixed with the source color to reflect the lightness or darkness of the destination.
    darkenSelects the darker of the destination and source colors. The destination is replaced with the source when the source is darker, otherwise it is left unchanged.
    lightenSelects the lighter of the destination and source colors. The destination is replaced with the source when the source is lighter, otherwise it is left unchanged.
    linear-lightIncrease contrast slightly with an impact on the foreground's tonal values.
    color-dodgeBrightens the destination color to reflect the source color. Painting with black produces no change.
    color-burnDarkens the destination color to reflect the source color. Painting with white produces no change.
    hard-lightMultiplies or screens the colors, dependent on the source color value. If the source color is lighter than 0.5, the destination is lightened as if it were screened. If the source color is darker than 0.5, the destination is darkened, as if it were multiplied. The degree of lightening or darkening is proportional to the difference between the source color and 0.5. If it is equal to 0.5 the destination is unchanged. Painting with pure black or white produces black or white.
    soft-lightDarkens or lightens the colors, dependent on the source color value. If the source color is lighter than 0.5, the destination is lightened. If the source color is darker than 0.5, the destination is darkened, as if it were burned in. The degree of darkening or lightening is proportional to the difference between the source color and 0.5. If it is equal to 0.5, the destination is unchanged. Painting with pure black or white produces a distinctly darker or lighter area, but does not result in pure black or white.
    plusThe source is added to the destination and replaces the destination. This operator is useful for animating a dissolve between two images.
    addAs per 'plus' but transparency data is treated as matte + values. As such any transparent areas in either image remain + transparent.
    minusSubtract the colors in the source image from the + destination image. When transparency is involved, Opaque areas will be + subtracted from any destination opaque areas.
    subtractSubtract the colors in the source image from the + destination image. When transparency is involved transparent areas are + subtracted, so only the opaque areas in the source remain opaque in + the destination image.
    differenceSubtracts the darker of the two constituent colors from the lighter. Painting with white inverts the destination color. Painting with black produces no change.
    exclusionProduces an effect similar to that of 'difference', but appears as lower contrast. Painting with white inverts the destination color. Painting with black produces no change.
    xorThe part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source.
    copy-*Copy the specified channel in the source image to the + same channel in the destination image. If the channel specified in + the source image does not exist, (which can only happen for methods, + 'copy-opacity' or 'copy-black') then it is + assumed that the source image is a special grayscale channel image + of the values to be copied.
    change-maskReplace any destination pixel that is the similar to the source images pixel (as defined by the current -fuzz factor), with transparency.
    interline-spacing pixels
    interword-spacing pixels
    kerning pixels
    line x,y x1,y1
    matte x,y methodChoose from these methods: +
    point
    +replace
    +floodfill
    +filltoborder
    +reset
    offset offset
    opacity opacityUse percent (e.g. 50%).
    path path
    point x,y
    polygon x,y x1,y1, ..., xn,yn
    polyline x,y x1,y1, ..., xn,yn
    pop clip-path
    pop defs
    pop gradient
    pop graphic-context
    pop pattern
    push clip-path name
    push defs
    push gradient id linear x,y x1,y1
    push gradient id radial xc,cy xf,yf radius
    push graphic-context
    push pattern id radial x,y width,height
    rectangle x,y x1,y1
    rotate angle
    roundrectangle x,y x1,y1 width,height
    scale x,y
    skewX angle
    skewX angle
    stop-color color offset
    stroke color
    stroke-antialias 0 • 1
    stroke-dasharray none • numeric-list
    stroke-dashoffset offset
    stroke-linecap typeChoose from these cap types: +
    butt
    +round
    +square
    stroke-linejoin typeChoose from these join types: +
    bevel
    +miter
    +round
    stroke-miterlimit limit
    stroke-opacity opacityThe opacity ranges from 0.0 (fully transparent) to 1.0 (fully opaque) or as a percentage (e.g. 50%).
    stroke-width width
    text "text"
    text-antialias 0 • 1
    text-undercolor color
    translate x,y
    viewbox x,y x1,y1
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/magick-wand.html b/share/doc/ImageMagick-7/www/magick-wand.html new file mode 100644 index 0000000..1389f78 --- /dev/null +++ b/share/doc/ImageMagick-7/www/magick-wand.html @@ -0,0 +1,411 @@ + + + + + + + + + + MagickWand, C API @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    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.

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/magick.html b/share/doc/ImageMagick-7/www/magick.html new file mode 100644 index 0000000..135a703 --- /dev/null +++ b/share/doc/ImageMagick-7/www/magick.html @@ -0,0 +1,1349 @@ + + + + + + + + + + Command-line Tools: Magick @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    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.

    + +

    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:

    + +
    magick rose.jpg rose.png
    +
    + +

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

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

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

    or here we resize an image with improved quality:

    + +
    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');
    +
    + +

    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:

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

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

    + +

    Option Summary

    + +

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

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    -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
    +
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/miff.html b/share/doc/ImageMagick-7/www/miff.html new file mode 100644 index 0000000..1d00eab --- /dev/null +++ b/share/doc/ImageMagick-7/www/miff.html @@ -0,0 +1,274 @@ + + + + + + + + + + Magick Image File Format @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    MIFF Header • MIFF Binary Data

    + +

    The Magick Image File Format (MIFF) is ImageMagick's own platform-independent format for storing bitmap images. It has an advantage over other image formats in that it stores all metadata known to ImageMagick (e.g. image color profiles, comments, author, copyright, etc.), whereas, other formats may only support a small portion of available metadata or none at all. A MIFF image file consist of two sections. The first section is a header composed of keys describing the image in text form. The next section is the binary image data. We discuss these sections in detail below.

    + +

    MIFF Header

    + + +

    The MIFF header is composed entirely of ISO-8859-1 characters. The fields in the header are key and value combination in the key = value format, with each key and value separated by an equal sign (=). Each key = value combination is delimited by at least one control or whitespace character. Comments may appear in the header section and are always delimited by braces. The MIFF header always ends with a colon (:) character, followed by a ctrl-Z character. It is also common to proceed the colon with a formfeed and a newline character. The formfeed prevents the listing of binary data when using the more Unix program, whereas, the ctrl-Z has the same effect with the type command on the Windows command line.

    + +

    The following is a partial list of key = value combinations that are typically be found in a MIFF file:

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    background-color = color
    border-color = color
    matte-color = colorthese optional keys reflect the image background, border, and matte colors respectively. A color can be a name (e.g. white) or a hex value (e.g. #ccc).
    class = { DirectClass, PseudoClass }the type of binary pixel data stored in the MIFF file. If this key is not present, DirectClass pixel data is assumed.
    colors = valuethe number of colors in a DirectClass image. For a PseudoClass image, this key specifies the number of entries in the colormap. If this key is not present in the header, and the image is PseudoClass, a linear 256 color grayscale colormap is assumed. The maximum number of colormap entries is 65536.
    colorspace = { RGB, CMYK, ... }the colorspace of the pixel data. The default is RGB.
    columns = valuethe width of the image in pixels. This a required key and has no default value.
    compression = {BZip, None, Zip, ... }the type of algorithm used to compress the image data. If this key is not present, the pixel data is assumed to be uncompressed.
    delay = microsecondsthe interframe delay in an image sequence in microseconds.
    depth = { 8, 16, 32 }the depth of a single color value representing values from 0 to 255 (depth 8), 0 - 65535 (depth 16), or 0 - 4294967295 (depth 32). If this key is absent, a depth of 8 is assumed.
    dispose = valuelayer disposal method. Here are the valid values: +
      +
      0. No disposal specified.
      +
      1. Do not dispose between frames.
      +
      2. Overwrite frame with background color from header.
      +
      3. Overwrite with previous frame.
      +
    +
    gamma = valuethe gamma of the image. If it is not specified, a gamma of 1.0 (linear brightness response) is assumed.
    id = ImageMagickidentifies the file as a MIFF-format image file. This key is required and has no default. Although this key can appear anywhere in the header, it should start as the first key of the header in column 1. This will allow programs like file(1) to easily identify the file as MIFF.
    iterations = valuethe number of times an image sequence loops before stopping.
    label = { string ]defines a short title or caption for the image. If any whitespace appears in the label, it must be enclosed within braces.
    matte = { True, False }specifies whether a the image has matte data. Matte data is generally useful for image compositing.
    montage = <width>x<height>[+-]<x offset>[+-]<y offset>size and location of the individual tiles of a composite image. + Use this key when the image is a composite of a number of different tiles. A tile consists of an image and optionally a border and a label. Width is the size in pixels of each individual tile in the horizontal direction and height is the size in the vertical direction. Each tile must have an equal number of pixels in width and equal in height. However, the width can differ from the height. X offset is the offset in number of pixels from the vertical edge of the composite image where the first tile of a row begins and y offset is the offset from the horizontal edge where the first tile of a column begins. If this key is specified, a directory of tile names must follow the image header. The format of the directory is explained below.
    page = valuepreferred size and location of an image canvas.
    profile-icc = valuethe number of bytes in the International Color Consortium color profile. The profile is defined by the ICC profile specification located at http://www.color.org/icc_specs2.html.
    red-primary = x,y
    green-primary = x,y
    blue-primary = x,y
    white-point = x,ythis optional key reflects the chromaticity primaries and white point.
    rendering-intent = { saturation, perceptual, absolute, relative }Rendering intent is the CSS-1 property that has been defined by the International Color Consortium (http://www.color.org).
    resolution = <x-resolution>x<y-resolution>vertical and horizontal resolution of the image. See units for the specific resolution units (e.g. pixels per inch).
    rows = valuethe height of the image in pixels. This a required key and has no default value.
    scene = valuethe sequence number for this MIFF image file. This optional key is useful when a MIFF image file is one in a sequence of files used in an animation.
    signature = valuethis optional key contains a string that uniquely identifies the image pixel contents. NIST's SHA-256 message digest algorithm is recommended.
    units = { pixels-per-inch, pixels-per-centimeter }image resolution units.
    + +

    Other key value pairs are permitted. If a value contains whitespace it must be enclosed with braces as illustrated here:

    + +
    id=ImageMagick
    +class=PseudoClass  colors=256  matte=False
    +columns=1280  rows=1024  depth=8
    +compression=RLE
    +colorspace=RGB
    +copyright={© 1999-2018 ImageMagick Studio LLC}
    +⋮
    +
    + +

    Note that key = value combinations may be separated by newlines or spaces and may occur in any order within the header. Comments (within braces) may appear anywhere before the colon.

    + +

    If you specify the montage key in the header, follow the header with a directory of image tiles. This directory consists of a name for each tile of the composite image separated by a newline character. The list is terminated with a NULL character.

    + +

    If you specify the color-profile key in the header, follow the header (or montage directory if the montage key is in the header) with the binary color profile.

    + +

    The header is separated from the image data by a : character immediately followed by a newline.

    + +

    MIFF Binary Data

    + +

    Next comes the binary image data itself. How the image data is formatted depends upon the class of the image as specified (or not specified) by the value of the class key in the header.

    + +

    DirectClass images are continuous-tone, images stored as RGB (red, green, blue), RGBA (red, green, blue, alpha), CMYK (cyan, yellow, magenta, black), or CMYKA (cyan, yellow, magenta, black, alpha) intensity values as defined by the colorspace key. Each intensity value is one byte in length for images of depth 8 (0..255), two bytes for a depth of 16 (0..65535), and images of depth 32 (0..4294967295) require four bytes in most significant byte first order.

    + +

    PseudoClass images are colormapped RGB images. The colormap is stored as a series of red, green, and blue pixel values, each value being a byte in size. If the image depth is 16, each colormap entry consumes two bytes with the most significant byte being first. The number of colormap entries is defined by the colors key. The colormap data occurs immediately following the header (or image directory if the montage key is in the header). PseudoClass image data is an array of index values into the color map. If there are 256 +or fewer colors in the image, each byte of image data contains an index value. If the image contains more than 256 colors or the image depth is 16, the index value is stored as two contiguous bytes with the most significant byte being first. If matte is true, each colormap index is followed by a 1 or 2-byte alpha value.

    + +

    The image pixel data in a MIFF file may be uncompressed, runlength encoded, Zip compressed, or BZip compressed. The compression key in the header defines how the image data is compressed. Uncompressed pixels are stored one scanline at a time in row order. Runlength-encoded compression counts runs of identical adjacent pixels and stores the pixels followed by a length byte (the number of identical pixels minus 1). Zip and BZip compression compresses each row of an image and precedes the compressed row with the length of compressed pixel bytes as a word in most significant byte first order.

    + +

    MIFF files may contain more than one image. Simply concatenate each individual image (composed of a header and image data) into one file.

    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/mirror.html b/share/doc/ImageMagick-7/www/mirror.html new file mode 100644 index 0000000..0c5495a --- /dev/null +++ b/share/doc/ImageMagick-7/www/mirror.html @@ -0,0 +1,145 @@ + + + + + + + + + + Mirror @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

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

    +
    +
    Germany
    +
    http://mirror.checkdomain.de/imagemagick/
    +
    ftp://mirror.checkdomain.de/imagemagick/
    +
    Japan
    +
    ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/
    +
    ftp://ftp.u-aizu.ac.jp/pub/graphics/images/ImageMagick/imagemagick.org
    +
    Netherlands
    +
    ftp://ftp.nluug.nl/pub/ImageMagick
    +
    http://ftp.nluug.nl/ImageMagick/
    +
    Poland
    +
    ftp://sunsite.icm.edu.pl/packages/ImageMagick/
    +
    ftp://ftp.tpnet.pl/pub/graphics/ImageMagick/
    +
    rsync://ftp.tpnet.pl/pub/graphics/ImageMagick/
    +
    Sweden
    +
    http://ftp.acc.umu.se/mirror/imagemagick.org/ftp/
    +
    rsync://ftp.acc.umu.se/mirror/imagemagick.org/ftp/
    +
    South Africa
    +
    http://imagemagick.afri.cc/
    +
    United States
    +
    ../download
    +
    http://transloadit.imagemagick.org/download
    +
    ftp://transloadit.imagemagick.org/pub/ImageMagick (ftp)
    +
    ftp://ftp.fifi.org/pub/ImageMagick/ (ftp)
    +
    http://git.imagemagick.org/repos/ImageMagick (Git)
    +
    https://github.com/ImageMagick/ImageMagick (Git Mirror)
    +
    Select Binaries
    +
    http://www.macports.org/ports.html?by=name&substr=imagemagick (Mac OS X)
    +
    http://hpux.connect.org.uk/hppd/hpux/X11/Viewers/ (HP-UX 10.20 and 11.00)
    +
    Rsync Mirrors
    +
    rsync://rsync.is.co.za/IS-Mirror/mirror.imagemagick.org/
    +
    rsync://rsync.fifi.org/ImageMagick
    +
    rsync://mirror.imagemagick.org/magick_html/ (Web site mirror)
    +
    rsync://mirror.imagemagick.org/magick_ftp/ (FTP mirror)
    +
    +

    If you want to add a new mirror, please contact us.

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/mogrify.html b/share/doc/ImageMagick-7/www/mogrify.html new file mode 100644 index 0000000..f6a470b --- /dev/null +++ b/share/doc/ImageMagick-7/www/mogrify.html @@ -0,0 +1,1329 @@ + + + + + + + + + + Command-line Tools: Mogrify @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Example Usage • Option Summary

    + +

    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.

    + +

    Example Usage

    + +

    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:

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

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

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

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

    + +
    magick mogrify -format jpg *.png
    +
    + +

    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.

    + + +

    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.

    + +

    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
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/montage.html b/share/doc/ImageMagick-7/www/montage.html new file mode 100644 index 0000000..5d6182a --- /dev/null +++ b/share/doc/ImageMagick-7/www/montage.html @@ -0,0 +1,666 @@ + + + + + + + + + + Command-line Tools: Montage @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    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
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/motion-picture.html b/share/doc/ImageMagick-7/www/motion-picture.html new file mode 100644 index 0000000..3b8d1f3 --- /dev/null +++ b/share/doc/ImageMagick-7/www/motion-picture.html @@ -0,0 +1,220 @@ + + + + + + + + + + Motion Picture Digital Images @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Log Format • DPX Properties • DPX Settings

    + +

    DPX (SMPTE 268M-2003) - This format is used in Motion Picture and Effects industry that makes particular use of the extensive header information and the format's flexibility in being able to handle high dynamic range and logarithmic color values at a variety of bit depths using RGB or YCbCr pixel descriptions. It is based on, but largely supersedes, Kodak's Cineon format that has more a more film specific header.

    + +

    One example of it's use includes scanning film for use in post production. Each frame is stored as an individual DPX file ranging from 2k (2048 pixels wide) to 8k (8192 pixels wide - for IMAX frames) at anything between 8 to 64 bits per color component. A sequence of these might then be processed using compositing software, altering the color or adding visual effects. Once complete they might then be recorded digitally to tape or projected back on to film.

    + +

    The color values for each pixel are often stored logarithmically (particularly if the sequence is destined to be transferred back on to film) which more naturally reflects the density of how color information is stored in the emulsion on the original film. When viewed without alteration, logarithmic files appear to have very low contrast and requires a 'look up table' to translate the logarithmic image to something that resembles what you might see if the image was transferred back to film and projected in a cinema. Apart from making the image linear (like most typical computer images) and adjusting the gamma level this table sets where the black and white point lies.

    + +

    For a 10 bit logarithmic image where each color component value ranges from 0 to 1023 the black and white points are normally set at 95 for black and 685 for white. What this means is that the logarithmic file stores color values that are lighter than what the linear version will display as pure white and darker than what it will display as pure black. This extra information therefore remains available for an effects artists who might wish to alter the brightness of the image after it has been stored as a DPX file.

    + +

    As an example, had this information been lost, reducing the brightness of an image uniformly would result in highlights becoming darker, whereas with this extra information the highlights instead reduce in size and start showing details that were previously too bright to be seen. The latter is far closer to what happens in the real world.

    + +

    The header can contain Film and/or Television specific data related to a production. For example the television header can contain a SMPTE time code so that shots exported as a DPX sequence from a production's edit can be easily replaced once any effects have been added. The film header holds information about the reel of film the frames originated from and various camera settings that were used while filming. All these details usually stay with the images as they are passed between post-production companies.

    + +

    Log Format

    + +

    The color values for each pixel are often stored logarithmically (particularly if the sequence is destined to be transferred back on to film) which more naturally reflects the density of how color information is stored in the emulsion on the original film. When viewed without alteration logarithmic files appear to have very low contrast (leftmost image), and so require a 'look up table' to translate the logarithmic image to something that resembles what you might see if the image was transferred back to film and projected in a cinema (rightmost image). Apart from making the image linear (like most typical computer images) and adjusting the gamma level this table sets where the black and white point lies.

    + +
      + bluebells-log + bluebells-linear +
    + +

    For a 10 bit logarithmic image where each color component value ranges from 0 to 1023 the black and white points are normally set at 95 for black and 685 for white. What this means is that the logarithmic file stores color values that are lighter than what the linear version will display as pure white and darker than what it will display as pure black. This extra information therefore remains available for an effects artists who might wish to alter the brightness of the image after it has been stored as a DPX file.

    + +

    As an example, had this information been lost, reducing the brightness of a linear image uniformly would result in highlights becoming darker (leftmost image), whereas with this extra information the highlights instead reduce in size and start showing details that were previously too bright to be seen (rightmost image). The latter is far closer to what happens in the real world.

    + +
      + bluebells-clipped + bluebells-darker +
    + +

    DPX Properties

    + +

    ImageMagick supports these DPX properties:

    + +
    dpx:file.copyright
    +dpx:file.creator
    +dpx:file.filename
    +dpx:file.project
    +dpx:file.version
    +dpx:film.count
    +dpx:film.format
    +dpx:film.frame_id
    +dpx:film.frame_position
    +dpx:film.frame_rate
    +dpx:film.held_count
    +dpx:film.id
    +dpx:film.offset
    +dpx:film.prefix
    +dpx:film.sequence_length
    +dpx:film.shutter_angle
    +dpx:film.slate
    +dpx:film.type
    +dpx:orientation.aspect_ratio
    +dpx:orientation.border
    +dpx:orientation.device
    +dpx:orientation.filename
    +dpx:orientation.serial
    +dpx:orientation.x_center
    +dpx:orientation.x_offset
    +dpx:orientation.x_size
    +dpx:orientation.y_center
    +dpx:orientation.y_offset
    +dpx:orientation.y_size
    +dpx:television.black_gain
    +dpx:television.black_level
    +dpx:television.break_point
    +dpx:television.field_number
    +dpx:television.frame_rate
    +dpx:television.gamma
    +dpx:television.integration_times
    +dpx:television.interlace
    +dpx:television.padding
    +dpx:television.time.code
    +dpx:television.time_offset
    +dpx:television.user.bits
    +dpx:television.vertical_sample_rate
    +dpx:television.video_signal
    +dpx:television.white_level
    +dpx:user.id
    +dpx:user.data
    +
    + +

    Look for any user data as the dpx:user-data image profile.

    + +

    To determine which properties are associated with your DPX image, use this command for example:

    + +
    identify -verbose bluebells.dpx
    +
    + +

    To identify a particular property, try this:

    + +
    identify -format "%[dpx:television.time.code]" bluebells.dpx
    +
    + +

    Finally, to set a property:

    + +
    convert bluebells.dpx -define dpx:television.time.code=10:00:02:15 bluebells-001.dpx
    +
    + +

    DPX Settings

    + +

    Use -set to specify the image or film gamma or black and white points. For example use: +

    + +
    -set gamma 1.7
    +-set film-gamma 0.6
    +-set reference-black 95
    +-set reference-white 685
    +-set profile dpx:user.data
    +
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/opencl.html b/share/doc/ImageMagick-7/www/opencl.html new file mode 100644 index 0000000..fc03a7a --- /dev/null +++ b/share/doc/ImageMagick-7/www/opencl.html @@ -0,0 +1,144 @@ + + + + + + + + + + Parallel Execution with OpenCL @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    The following is a list of image operators that have been OpenCL-accelerated:

    +
    blur
    +charcoal
    +contrast
    +constrast-stretch
    +convolve
    +despeckle
    +edge
    +equalize
    +emboss
    +function
    +gaussian-blur
    +grayscale
    +modulate
    +motion-blur
    +negate
    +noise
    +radial-blur
    +resize
    +sketch
    +unsharp
    +

    When the OpenCL acceleration is invoked for the first time, ImageMagick conducts a series of tests to configure the OpenCL environment according to the system hardware; therefore, it is normal to experience a higher latency the first time you use an accelerated option. The OpenCL kernels are embedded inside ImageMagick in source format. During the initial setup, ImageMagick discovers all the available OpenCL devices and compiles the kernels for each of these targets. ImageMagick also runs several performance tests internally to determine the preferred device to use. The compiled kernel code and the performance test results are stored into the cache directory so that the data can be reused by subsequent invocations of the OpenCL path. By default, the OpenCL cached data is stored in $HOME/.cache/ImageMagick on Linux and on MacOSX or in %LOCALAPPDATA%\.cache\ImageMagick on Windows. To change the cache directory, set the IMAGEMAGICK_OPENCL_CACHE_DIR environment variable. ImageMagick is able to detect hardware changes, driver updates, and new kernel sources and re-run the setup and the calibration test. You can also force ImageMagick to re-run the process by removing the content from the cache directory.

    +

    If ImageMagick includes OpenCL support, the OpenCL path is enable by default. You can disable it, simply set the environment variable MAGICK_OCL_DEVICE to OFF. You could also force the OpenCL path to use a particular class of devices by setting it to GPU or CPU.

    +

    In addition to the environment variables just mentioned, ImageMagick provides a set of APIs that allow developers to gain a finer grain control of the OpenCL acceleration. For example, use the InitImageMagickOpenCL) function to turn off OpenCL:

    +
    InitImageMagickOpenCL(MAGICK_OPENCL_OFF, NULL, NULL, exception);
    +

    Use InitImageMagickOpenCL() to find out which OpenCL device are automagically selected by ImageMagick:

    +
    cl_device_id selectedDevice;  // OpenCL device used by ImageMagick
    +InitImageMagickOpenCL(MAGICK_OPENCL_DEVICE_SELECT_AUTO, NULL, (void*)&selectedDevice, exception);
    + +

    Or you could request ImageMagick to use a specific OpenCL device:

    +
    cl_device_id myDevices[4];
    +cl_uint numDevices;
    +// Get all the available OpenCL devices from the runtime
    +clGetDeviceIDs(myPlatform, CL_DEVICE_TYPE_ALL, 4, myDevices, &numDevices);
    +// ask ImageMagick to use the 3rd device
    +InitImageMagickOpenCL(MAGICK_OPENCL_DEVICE_SELECT_USER, (void*)(myDevices+2), NULL, exception);
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/openmp.html b/share/doc/ImageMagick-7/www/openmp.html new file mode 100644 index 0000000..963dee2 --- /dev/null +++ b/share/doc/ImageMagick-7/www/openmp.html @@ -0,0 +1,127 @@ + + + + + + + + + + Parallel Execution with OpenMP @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

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

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

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

    +

    The Perils of Parallel Execution

    +

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

    + +
    -> magick -bench 40 model.png -sharpen 0x1 null:
    +Performance[1]: 40i 0.712ips 1.000e 14.000u 0:14.040
    +Performance[2]: 40i 1.362ips 0.657e 14.550u 0:07.340
    +Performance[3]: 40i 2.033ips 0.741e 14.530u 0:04.920
    +Performance[4]: 40i 2.667ips 0.789e 14.590u 0:03.750
    +Performance[5]: 40i 3.236ips 0.820e 14.970u 0:03.090
    +Performance[6]: 40i 3.802ips 0.842e 15.280u 0:02.630
    +Performance[7]: 40i 4.274ips 0.857e 15.540u 0:02.340
    +Performance[8]: 40i 4.831ips 0.872e 15.680u 0:02.070
    +

    Better performance correlates with higher values of IPS (iterations-per-second). In our example, 8 cores are optimal. However, in certain cases it might be optimal to set the number of threads to 1 (e.g. -limit thread 1) or to disable OpenMP completely. To disable this feature, add --disable-openmp to your configure script command line then rebuild and re-install ImageMagick.

    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/perl-magick.html b/share/doc/ImageMagick-7/www/perl-magick.html new file mode 100644 index 0000000..ece2919 --- /dev/null +++ b/share/doc/ImageMagick-7/www/perl-magick.html @@ -0,0 +1,2570 @@ + + + + + + + + + + PerlMagick, Perl API @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Installation • Overview • Example Script • Read or Write an Image • Manipulate an Image • Set an Image Attribute • Get an Image Attribute • Compare an Image to its Reconstruction • Create an Image Montage • Working with Blobs • Direct-access to Image Pixels • Miscellaneous Methods • Handling Exceptions• Constant

    + + +

    PerlMagick is an objected-oriented Perl interface to ImageMagick. Use the module to read, manipulate, or write an image or image sequence from within a Perl script. This makes it very suitable for Web CGI scripts. You must have ImageMagick 6.5.5 or above and Perl version 5.005_02 or greater installed on your system for PerlMagick to build properly.

    + +

    There are a number of useful scripts available to show you the value of PerlMagick. You can do Web based image manipulation and conversion with MagickStudio, or use L-systems to create images of plants using mathematical constructs, and finally navigate through collections of thumbnail images and select the image to view with the WebMagick Image Navigator.

    + +

    You can try PerlMagick from your Web browser at the ImageMagick Studio. Or, you can see examples of select PerlMagick functions.

    + +

    Installation

    + +

    UNIX

    + +

    Is PerlMagick available from your system RPM repository? For example, on our CentOS system, we install PerlMagick thusly:

    + +
    yum install ImageMagick-perl
    +
    + +

    If not, you must install PerlMagick from the ImageMagick source distribution. Download the latest source release.

    + +

    Unpack the distribution with this command:

    + +
    tar xvzf ImageMagick.tar.gz
    +
    + +

    Next configure and compile ImageMagick:

    + +
    $ cd ImageMagick-7.0.7$ ./configure -with-perl$ make
    +

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

    + +
    sudo make install
    +
    + +

    You may need to configure the dynamic linker run-time bindings:

    + +
    sudo ldconfig /usr/local/lib
    +
    + + +

    Finally, verify the PerlMagick install worked properly, type

    + +
    perl -MImage::Magick -le 'print Image::Magick->QuantumDepth'
    +
    + +

    Congratulations, you have a working ImageMagick distribution and you are ready to use PerlMagick to convert, compose, or edit your images.

    + +

    Windows XP / Windows 2000

    + +

    ImageMagick must already be installed on your system. Also, the ImageMagick source distribution for Windows 2000 is required. You must also have the nmake from the Visual C++ or J++ development environment. Copy \bin\IMagick.dll and \bin\X11.dll to a directory in your dynamic load path such as c:\perl\site\5.00502.

    + +

    Next, type

    + +
    cd PerlMagick
    +perl Makefile.nt
    +nmake
    +nmake install
    +
    + +

    See the PerlMagick Windows HowTo page for further installation instructions.

    + +

    Running the Regression Tests

    + +

    To verify a correct installation, type

    + +
    make test
    +
    + +

    Use nmake test under Windows. There are a few demonstration scripts available to exercise many of the functions PerlMagick can perform. Type

    + +
    cd demo
    +make
    +
    + +

    You are now ready to utilize the PerlMagick methods from within your Perl scripts.

    + +

    Overview

    + +

    Any script that wants to use PerlMagick methods must first define the methods within its namespace and instantiate an image object. Do this with:

    + +
    use Image::Magick;
    +
    +$image = Image::Magick->new;
    +
    + +

    PerlMagick is quantum aware. You can request a specific quantum depth when you instantiate an image object:

    + +
    use Image::Magick::Q16;
    +
    +$image = Image::Magick::Q16->new;
    +
    + +

    The new() method takes the same parameters as SetAttribute . For example,

    + +
    $image = Image::Magick->new(size=>'384x256');
    +
    + +

    Next you will want to read an image or image sequence, manipulate it, and then display or write it. The input and output methods for PerlMagick are defined in Read or Write an Image. See Set an Image Attribute for methods that affect the way an image is read or written. Refer to Manipulate an Image for a list of methods to transform an image. Get an Image Attribute describes how to retrieve an attribute for an image. Refer to Create an Image Montage for details about tiling your images as thumbnails on a background. Finally, some methods do not neatly fit into any of the categories just mentioned. Review Miscellaneous Methods for a list of these methods.

    + +

    Once you are finished with a PerlMagick object you should consider destroying it. Each image in an image sequence is stored in virtual memory. This can potentially add up to mebibytes of memory. Upon destroying a PerlMagick object, the memory is returned for use by other Perl methods. The recommended way to destroy an object is with undef:

    + +
    undef $image;
    +
    + +

    To delete all the images but retain the Image::Magick object use

    + +
    @$image = ();
    +
    + +

    and finally, to delete a single image from a multi-image sequence, use

    + +
    undef $image->[$x];
    +
    + +

    The next section illustrates how to use various PerlMagick methods to manipulate an image sequence.

    + +

    Some of the PerlMagick methods require external programs such as Ghostscript. This may require an explicit path in your PATH environment variable to work properly. For example (in Unix),

    + +
    $ENV{PATH}' . "='/../bin:/usr/bin:/usr/local/bin';
    +
    + +

    Example Script

    + +

    Here is an example script to get you started:

    + +
    #!/usr/local/bin/perl
    +use Image::Magick;
    +my($image, $x);
    +$image = Image::Magick->new; +$x = $image->Read('girl.png', 'logo.png', 'rose.png'); +warn "$x" if "$x";
    +$x = $image->Crop(geometry=>'100x100+100+100'); +warn "$x" if "$x";
    +$x = $image->Write('x.png'); +warn "$x" if "$x"; +
    + +

    The script reads three images, crops them, and writes a single image as a GIF animation sequence. In many cases you may want to access individual images of a sequence. The next example illustrates how this done:

    + +
    #!/usr/local/bin/perl
    +use Image::Magick;
    +my($image, $p, $q);
    +$image = new Image::Magick; +$image->Read('x1.png'); +$image->Read('j*.jpg'); +$image->Read('k.miff[1, 5, 3]'); +$image->Contrast(); +for ($x = 0; $image->[$x]; $x++) +{ + $image->[$x]->Frame('100x200') if $image->[$x]->Get('magick') eq 'GIF'; + undef $image->[$x] if $image->[$x]->Get('columns') < 100; +} +$p = $image->[1]; +$p->Draw(stroke=>'red', primitive=>'rectangle', points=>20,20 100,100'); +$q = $p->Montage(); +undef $image; +$q->Write('x.miff'); +
    + +

    Suppose you want to start out with a 100 by 100 pixel white canvas with a red pixel in the center. Try

    + +
    $image = Image::Magick->new;
    +$image->Set(size=>'100x100');
    +$image->ReadImage('canvas:white');
    +$image->Set('pixel[49,49]'=>'red');
    +
    + +

    Here we reduce the intensity of the red component at (1,1) by half:

    + +
    @pixels = $image->GetPixel(x=>1,y=>1);
    +$pixels[0]*=0.5;
    +$image->SetPixel(x=>1,y=>1,color=>\@pixels);
    +
    + +

    Or suppose you want to convert your color image to grayscale:

    + +
    $image->Quantize(colorspace=>'gray');
    +
    + +

    Let's annotate an image with a Taipai TrueType font:

    + +
    $text = 'Works like magick!';
    +$image->Annotate(font=>'kai.ttf', pointsize=>40, fill=>'green', text=>$text);
    +
    + +

    Perhaps you want to extract all the pixel intensities from an image and write them to STDOUT:

    + +
    @pixels = $image->GetPixels(map=>'I', height=>$height, width=>$width, normalize=>true);
    +binmode STDOUT;
    +print pack('B*',join('',@pixels));
    +
    + +

    Other clever things you can do with a PerlMagick objects include

    + +
    $i = $#$p"+1";   # return the number of images associated with object p
    +push(@$q, @$p);  # push the images from object p onto object q
    +@$p = ();        # delete the images but not the object p
    +$p->Convolve([1, 2, 1, 2, 4, 2, 1, 2, 1]);   # 3x3 Gaussian kernel
    +
    + +

    Read or Write an Image

    + +

    Use the methods listed below to either read, write, or display an image or image sequence:

    + + + ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Read or Write Methods
    MethodParametersReturn ValueDescription
    Readone or more filenamesthe number of images readread an image or image sequence
    Writefilenamethe number of images writtenwrite an image or image sequence
    Displayserver namethe number of images displayeddisplay the image or image sequence to an X server
    Animateserver namethe number of images animatedanimate image sequence to an X server
    + +

    For convenience, methods Write(), Display(), and Animate() can take any parameter that SetAttribute knows about. For example,

    + +
    $image->Write(filename=>'image.png', compression=>'None');
    +
    + +

    Use - as the filename to method Read() to read from standard in or to method Write() to write to standard out:

    + +
    binmode STDOUT;
    +$image->Write('png:-');
    +
    + +

    To read an image in the GIF format from a PERL filehandle, use:

    + +
    $image = Image::Magick->new;
    +open(IMAGE, 'image.gif');
    +$image->Read(file=>\*IMAGE);
    +close(IMAGE);
    +
    + +

    To write an image in the PNG format to a PERL filehandle, use:

    + +
    $filename = "image.png";
    +open(IMAGE, ">$filename");
    +$image->Write(file=>\*IMAGE, filename=>$filename);
    +close(IMAGE);
    +
    + +

    Note, reading from or writing to a Perl filehandle may fail under Windows due to different versions of the C-runtime libraries between ImageMagick and the ActiveState Perl distributions or if one of the DLL's is linked with the /MT option. See Potential Errors Passing CRT Objects Across DLL Boundaries for an explanation.

    + +

    If %0Nd, %0No, or %0Nx appears in the filename, it is interpreted as a printf format specification and the specification is replaced with the specified decimal, octal, or hexadecimal encoding of the scene number. For example,

    + +
    image%03d.miff
    +
    + +

    converts files image000.miff, image001.miff, etc.

    + +

    You can optionally add Image to any method name. For example, ReadImage() is an alias for method Read().

    + +

    Manipulate an Image

    + +

    Once you create an image with, for example, method ReadImage() you may want to operate on it. Below is a list of all the image manipulations methods available to you with PerlMagick. There are examples of select PerlMagick methods. Here is an example call to an image manipulation method:

    + +
    $image->Crop(geometry=>'100x100+10+20');
    +$image->[$x]->Frame("100x200");
    +
    + +

    And here is a list of other image manipulation methods you can call:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Image Manipulation Methods
    MethodParametersDescription
    AdaptiveBlurgeometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}adaptively blur the image with a Gaussian operator of the given radius and standard deviation (sigma). Decrease the effect near edges.
    AdaptiveResizegeometry=>geometry, width=>integer, height=>integer, filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=>double, blur=>doubleadaptively resize image using data dependant triangulation. Specify blur > 1 for blurry or < 1 for sharp
    AdaptiveSharpengeometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}adaptively sharpen the image with a Gaussian operator of the given radius and standard deviation (sigma). Increase the effect near edges.
    AdaptiveThresholdgeometry=>geometry, width=>integer, height=>integer, offset=>integerlocal adaptive thresholding.
    AddNoisenoise=>{Uniform, Gaussian, Multiplicative, Impulse, Laplacian, Poisson}, attenuate=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}add noise to an image
    AffineTransformaffine=>array of float values, translate=>float, float, scale=> float, float, rotate=>float, skewX=>float, skewY=>float, interpolate={Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor}, background=>color nameaffine transform image
    Affinityimage=>image-handle, method=>{None, FloydSteinberg, Riemersma}choose a particular set of colors from this image
    Annotatetext=>string, font=>string, family=>string, style=>{Normal, Italic, Oblique, Any}, stretch=>{Normal, UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, SemiExpanded, Expanded, ExtraExpanded, UltraExpanded}, weight=>integer, pointsize=>integer, density=>geometry, stroke=>color name, strokewidth=>integer, fill=>color name, undercolor=>color name, kerning=>float, geometry=>geometry, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, antialias=>{true, false}, x=>integer, y=>integer, affine=>array of float values, translate=>float, float, scale=>float, float, rotate=>float. skewX=>float, skewY=> float, align=>{Left, Center, Right}, encoding=>{UTF-8}, interline-spacing=>double, interword-spacing=>double, direction=>{right-to-left, left-to-right}annotate an image with text. See QueryFontMetrics to get font metrics without rendering any text.
    AutoGammachannel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}automagically adjust gamma level of image
    AutoLevelchannel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}automagically adjust color levels of image
    AutoOrient
    adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation)
    AutoThresholdmethod=>{Kapur, OTSU, Triangle}automatically perform image thresholding
    BlackThresholdthreshold=>string, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}force all pixels below the threshold intensity into black
    BlueShiftfactor=>double,simulate a scene at nighttime in the moonlight. Start with a factor of 1.5.
    Blurgeometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma).
    Bordergeometry=>geometry, width=>integer, height=>integer, bordercolor=>color name, compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor },surround the image with a border of color
    CannyEdgegeometry=>geometry, radius=>double, sigma=>double, 'lower-percent'=>double, 'upper-percent'=>doubleuse a multi-stage algorithm to detect a wide range of edges in the image (e.g. CannyEdge('0x1+10%+40%')).
    Charcoalgeometry=>geometry, radius=>double, sigma=>doublesimulate a charcoal drawing
    Chopgeometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}chop an image
    Clampchannel=>{Red, RGB, All, etc.}set 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.
    Clipid=>name, inside=>{true, false},apply along a named path from the 8BIM profile.
    ClipMaskmask=>image-handleclip image as defined by the image mask
    Clutimage=>image-handle, interpolate={Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor}, channel=>{Red, RGB, All, etc.}apply a color lookup table to an image sequence
    Coalesce
    merge a sequence of images
    Colorcolor=>color nameset the entire image to this color.
    ColorDecisionListfilename=>string,color correct with a color decision list.
    Colorizefill=>color name, blend=>stringcolorize the image with the fill color
    ColorMatrixmatrix=>array of float valuesapply color correction to the image. Although you can use variable sized matrices, typically you use a 5 x 5 for an RGBA image and a 6x6 for CMYKA. A 6x6 matrix is required for offsets (populate the last column with normalized values).
    Colorspacecolorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK} set the image colorspace
    Commentstringadd a comment to your image
    CompareLayersmethod=>{any, clear, overlay}compares each image with the next in a sequence and returns the minimum bounding region of any pixel differences it discovers. Images do not have to be the same size, though it is best that all the images are coalesced (images are all the same size, on a flattened canvas, so as to represent exactly how a specific frame should look).
    Compositeimage=>image-handle, compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, mask=>image-handle, geometry=>geometry, x=>integer, y=>integer, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, opacity=>integer, tile=>{True, False}, rotate=>double, color=>color name, blend=>geometry, interpolate=>{undefined, average, bicubic, bilinear, filter, integer, mesh, nearest-neighbor, spline}composite one image onto another. Use the rotate parameter in concert with the tile parameter.
    ConnectedComponentsconnectivity=>integer,connected-components uniquely labeled, choose from 4 or 8 way connectivity.
    Contrastsharpen=>{True, False}enhance or reduce the image contrast
    ContrastStretchlevels=>string, 'black-point'=>double, 'white-point'=>double, channel=>{Red, RGB, All, etc.}improve the contrast in an image by `stretching' the range of intensity values
    Convolvecoefficients=>array of float values, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, bias=>doubleapply a convolution kernel to the image. Given a kernel order , you would supply order*order float values (e.g. 3x3 implies 9 values).
    CopyPixelsimage=>image-handle, geometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, offset=>geometry, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, dx=>integer, dy=>integercopy pixels from the image as defined by the widthxheight+x+y to image at offset +dx,+dy.
    Cropgeometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, fuzz=>double, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}crop an image
    CycleColormapamount=>integerdisplace image colormap by amount
    Decipherpassphrase=>stringconvert cipher pixels to plain pixels
    Deconstruct
    break down an image sequence into constituent parts
    Deskewgeometry=>string,threshold=>doublestraighten the image
    Despeckle reduce the speckles within an image
    Differenceimage=>image-handlecompute the difference metrics between two images
    Distortpoints=>array of float values, method=>{Affine, AffineProjection, ScaleRotateTranslate, SRT, Perspective, PerspectiveProjection, BilinearForward, BilinearReverse, Polynomial, Arc, Polar, DePolar, Barrel, BarrelInverse, Shepards, Resize}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}, 'best-fit'=>{True, False}distort image
    Drawprimitive=>{point, line, rectangle, arc, ellipse, circle, path, polyline, polygon, bezier, color, matte, text, @filename}, points=>string , method=>{Point, Replace, Floodfill, FillToBorder, Reset}, stroke=>color name, fill=>color name, font=>string, pointsize=>integer, strokewidth=>float, antialias=>{true, false}, bordercolor=>color name, x=>float, y=>float, dash-offset=>float, dash-pattern=>array of float values, affine=>array of float values, translate=>float, float, scale=>float, float, rotate=>float, skewX=>float, skewY=>float, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}, kerning=>float, text=>string, vector-graphics=>string, interline-spacing=>double, interword-spacing=>double, direction=>{right-to-left, left-to-right}annotate an image with one or more graphic primitives.
    Encipherpassphrase=>stringconvert plain pixels to cipher pixels
    Edgeradius=>doubleenhance edges within the image with a convolution filter of the given radius.
    Embossgeometry=>geometry, radius=>double, sigma=>doubleemboss the image with a convolution filter of the given radius and standard deviation (sigma).
    Enhance
    apply a digital filter to enhance a noisy image
    Equalizechannel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}
    perform histogram equalization to the image
    Extentgeometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, fuzz=>double, background=>color name, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}set the image size
    Evaluatevalue=>double, operator=>{Add, And, Divide, LeftShift, Max, Min, Multiply, Or, Rightshift, RMS, Subtract, Xor}, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} apply an arithmetic, relational, or logical expression to the image
    Filterkernel=>string, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, bias=>doubleapply a convolution kernel to the image.
    Flip
    reflect the image scanlines in the vertical direction
    Flop
    reflect the image scanlines in the horizontal direction
    FloodfillPaintgeometry=>geometry, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, x=>integer, y=>integer , fill=>color name, bordercolor=>color name, fuzz=>double, invert=>{True, False}changes the color value of any pixel that matches the color of the target pixel and is a neighbor. If you specify a border color, the color value is changed for any neighbor pixel that is not that color.
    ForwardFourierTransformmagnitude=>{True, False}implements the forward discrete Fourier transform (DFT)
    Framegeometry=>geometry, width=>integer, height=>integer, inner=>integer, outer=>integer, fill=>color name, compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor },surround the image with an ornamental border
    Functionparameters=>array of float values, function=>{Sin}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}apply a function to the image
    Gammagamma=>string, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}gamma correct the image
    GaussianBlurgeometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma).
    GetPixelgeometry=>geometry, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, normalize=>{true, false}, x=>integer, y=>integerget a single pixel. By default normalized pixel values are returned.
    GetPixelsgeometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, map=>string, normalize=>{true, false}get image pixels as defined by the map (e.g. "RGB", "RGBA", etc.). By default non-normalized pixel values are returned.
    Grayscalechannel=>{Average, Brightness, Lightness, Rec601Luma, Rec601Luminance, Rec709Luma, Rec709Luminance, RMS}convert image to grayscale
    HaldClutimage=>image-handle, channel=>{Red, RGB, All, etc.}apply a Hald color lookup table to an image sequence
    HoughLinegeometry=>geometry, width=>double, height=>double, threshold=>doubleidentify lines in the image (e.g. HoughLine('9x9+195')).
    Identifyfile=>file, features=>distance, unique=>{True, False}identify the attributes of an image
    Implodeamount=>double, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}implode image pixels about the center
    InverseDiscreteFourierTransformmagnitude=>{True, False}implements the inverse discrete Fourier transform (DFT)
    Kuwaharageometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}edge preserving noise reduction filter
    Labelstringassign a label to an image
    Layersmethod=>{coalesce, compare-any, compare-clear, compare-over, composite, dispose, flatten, merge, mosaic, optimize, optimize-image, optimize-plus, optimize-trans, remove-dups, remove-zero}, compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, LinearLight, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, dither=>{true, false}compare each image the GIF disposed forms of the previous image in the sequence. From this, attempt to select the smallest cropped image to replace each frame, while preserving the results of the animation.
    Levellevels=>string, 'black-point'=>double, 'gamma'=>double, 'white-point'=>double, channel=>{Red, RGB, All, etc.}adjust the level of image contrast
    LevelColorsinvert=>>{True, False}, 'black-point'=>string, 'white-point'=>string, channel=>{Red, RGB, All, etc.}level image with the given colors
    LinearStretchlevels=>string, 'black-point'=>double, 'white-point'=>doublelinear with saturation stretch
    LiquidResizegeometry=>geometry, width=>integer, height=>integer, delta-x=>double, rigidity=>doublerescale image with seam-carving.
    Magnify
    double the size of the image with pixel art scaling
    Maskmask=>image-handlecomposite image pixels as defined by the mask
    MatteFloodfillgeometry=>geometry, x=>integer, y=>integer , matte=>integer, bordercolor=>color name, fuzz=>double, invert=>{True, False}changes the matte value of any pixel that matches the color of the target pixel and is a neighbor. If you specify a border color, the matte value is changed for any neighbor pixel that is not that color.
    MeanShiftgeometry=>geometry, width=>double, height=>double, distance=>doubledelineate arbitrarily shaped clusters in the image (e.g. MeanShift('7x7+10%')).
    MedianFiltergeometry=>geometry, width=>integer, height=>integer, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}replace each pixel with the median intensity pixel of a neighborhood.
    Minify
    half the size of an image
    Modegeometry=>geometry, width=>integer, height=>integer, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}make each pixel the predominant color of the neighborhood.
    Modulatefactor=>geometry, brightness=>double, saturation=>double, hue=>double, lightness=>double, whiteness=>double, blackness=>double vary the brightness, saturation, and hue of an image by the specified percentage
    Morphologykernel=>string, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, iterations=>integerapply a morphology method to the image.
    MotionBlurgeometry=>geometry, radius=>double, sigma=>double, angle=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma) at the given angle to simulate the effect of motion
    Negategray=>{True, False}, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}replace each pixel with its complementary color (white becomes black, yellow becomes blue, etc.)
    Normalizechannel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}
    transform image to span the full range of color values
    OilPaintradius=>integersimulate an oil painting
    Opaquecolor=>color name, +fill=>color name, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, invert=>{True, False}change this color to the fill color within the image
    OrderedDitherthreshold=>{threshold, checks, o2x2, o3x3, o4x4, o8x8, h4x4a, h6x6a, h8x8a, h4x4o, h6x6o, h8x8o, h16x16o, hlines6x4}, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}order dither image
    Perceptibleepsilon=>double, channel=>{Red, RGB, All, etc.}set each pixel whose value is less than |epsilon| to -epsilon or epsilon (whichever is closer) otherwise the pixel value remains unchanged..
    Polaroidcaption=>string, angle=>double, pointsize=>double, font=>string, stroke=> color name, strokewidth=>integer, fill=>color name, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, background=>color namesimulate a Polaroid picture.
    Posterizelevels=>integer, dither=>{True, False}reduce the image to a limited number of color level
    Profilename=>string, profile=>blob, rendering-intent=>{Undefined, Saturation, Perceptual, Absolute, Relative}, black-point-compensation=>{True, False}add or remove ICC or IPTC image profile; name is formal name (e.g. ICC or filename; set profile to '' to remove profile
    Quantizecolors=>integer, colorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YIQ, YPbPr, YUV, CMYK, sRGB, HSL, HSB}, treedepth=> integer, dither=>{True, False}, dither-method=>{Riemersma, Floyd-Steinberg}, measure_error=>{True, False}, global_colormap=>{True, False}, transparent-color=>colorpreferred number of colors in the image
    Raisegeometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, raise=>{True, False}lighten or darken image edges to create a 3-D effect
    ReduceNoisegeometry=>geometry, width=>integer, height=>integer, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}reduce noise in the image with a noise peak elimination filter
    Remapimage=>image-handle, dither=>{true, false}, dither-method=>{Riemersma, Floyd-Steinberg}replace the colors of an image with the closest color from a reference image.
    Resampledensity=>geometry, x=>double, y=>double, filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=>doubleresample image to desired resolution. Specify blur > 1 for blurry or < 1 for sharp
    Resizegeometry=>geometry, width=>integer, height=>integer, filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=>double, blur=>doublescale image to desired size. Specify blur > 1 for blurry or < 1 for sharp
    Rollgeometry=>geometry, x=>integer, y=>integerroll an image vertically or horizontally
    Rotatedegrees=>double, background=>color namerotate an image
    RotationalBlurgeometry=>geometry, angle=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}radial blur the image.
    Samplegeometry=>geometry, width=>integer, height=>integerscale image with pixel sampling.
    Scalegeometry=>geometry, width=>integer, height=>integerscale image to desired size
    Segmentcolorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK}, verbose={True, False}, cluster-threshold=>double, smoothing-threshold=doublesegment an image by analyzing the histograms of the color components and identifying units that are homogeneous
    SelectiveBlurgeometry=>geometry, radius=>double, sigma=>double, threshold=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}selectively blur pixels within a contrast threshold.
    Separatechannel=>{Red, RGB, All, etc.}separate a channel from the image into a grayscale image
    Shadegeometry=>geometry, azimuth=>double, elevation=>double, gray=>{true, false}shade the image using a distant light source
    SetPixelgeometry=>geometry, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, color=>array of float values, x=>integer, y=>integer, color=>array of float valuesset a single pixel. By default normalized pixel values are expected.
    Shadowgeometry=>geometry, opacity=>double, sigma=>double, x=>integer, y=>integersimulate an image shadow
    Sharpengeometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}sharpen the image with a Gaussian operator of the given radius and standard deviation (sigma).
    Shavegeometry=>geometry, width=>integer, height=>integershave pixels from the image edges
    Sheargeometry=>geometry, x=>double, y=>double fill=>color nameshear the image along the X or Y axis by a positive or negative shear angle
    SigmoidalContrastgeometry=>string, 'contrast'=>double, 'mid-point'=>double channel=>{Red, RGB, All, etc.}, sharpen=>{True, False}sigmoidal non-lineraity contrast control. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is a lot); mid-point indicates where midtones fall in the resultant image (0 is white; 50% is middle-gray; 100% is black). To decrease contrast, set sharpen to False.
    Signature
    generate an SHA-256 message digest for the image pixel stream
    Sketchgeometry=>geometry, radius=>double, sigma=>double, angle=>doublesketch the image with a Gaussian operator of the given radius and standard deviation (sigma) at the given angle
    Solarizegeometry=>string, threshold=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}negate all pixels above the threshold level
    SparseColorpoints=>array of float values, method=>{Barycentric, Bilinear, Shepards, Voronoi}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}interpolate the image colors around the supplied points
    Splicegeometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, fuzz=>double, background=>color name, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}splice an image
    Spreadradius=>double, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}displace image pixels by a random amount
    Statisticgeometry=>geometry, width=>integer, height=>integer, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, type=>{Median, Mode, Mean, Maximum, Minimum, ReduceNoise, RMS}replace each pixel with corresponding statistic from the neighborhood.
    Steganoimage=>image-handle, offset=>integerhide a digital watermark within the image
    Stereoimage=>image-handle, x=>integer, y=>integercomposites two images and produces a single image that is the composite of a left and right image of a stereo pair
    Strip
    strip an image of all profiles and comments.
    Swirldegrees=>double, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}swirl image pixels about the center
    Texturetexture=>image-handlename of texture to tile onto the image background
    Thumbnailgeometry=>geometry, width=>integer, height=>integerchanges the size of an image to the given dimensions and removes any associated profiles.
    Thresholdthreshold=>string, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}threshold the image
    Tintfill=>color name, blend=>stringtint the image with the fill color.
    Transparentcolor=>color name, invert=>{True, False}make this color transparent within the image
    Transpose
    flip image in the vertical direction and rotate 90 degrees
    Transverse
    flop image in the horizontal direction and rotate 270 degrees
    Trim
    remove edges that are the background color from the image
    UnsharpMaskgeometry=>geometry, radius=>double, sigma=>double, gain=>double, threshold=>doublesharpen the image with the unsharp mask algorithm.
    Vignettegeometry=>geometry, radius=>double, sigma=>double, x=>integer, y=>integer, background=>color nameoffset the edges of the image in vignette style
    Wavegeometry=>geometry, amplitude=>double, wavelength=>double, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}alter an image along a sine wave
    WaveDenoisegeometry=>geometry, threshold=>double, threshold=>doubleremoves noise from the image using a wavelet transform
    WhiteThresholdthreshold=>string, , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}force all pixels above the threshold intensity into white
    + +

    Note, that the geometry parameter is a short cut for the width and height parameters (e.g. geometry=>'106x80' is equivalent to width=>106, height=>80 ).

    + +

    You can specify @filename in both Annotate() and Draw(). This reads the text or graphic primitive instructions from a file on disk. For example,

    + +
    image->Draw(fill=>'red', primitive=>'rectangle',
    + points=>'20,20 100,100  40,40 200,200  60,60 300,300');
    +
    + +

    Is equivalent to

    + +
    $image->Draw(fill=>'red', primitive=>'@draw.txt');
    +
    + +

    Where draw.txt is a file on disk that contains this:

    + +
    rectangle 20, 20 100, 100
    +rectangle 40, 40 200, 200
    +rectangle 60, 60 300, 300
    +
    + +

    The text parameter for methods, Annotate(), Comment(), Draw(), and Label() can include the image filename, type, width, height, or other image attribute by embedding these special format characters:

    + +
    %b   file size
    +%c   comment
    +%d   directory
    +%e   filename extension
    +%f   filename
    +%g   page geometry
    +%h   height
    +%i   input filename
    +%k   number of unique colors
    +%l   label
    +%m   magick
    +%n   number of scenes
    +%o   output filename
    +%p   page number
    +%q   quantum depth
    +%r   image class and colorspace
    +%s   scene number
    +%t   top of filename
    +%u   unique temporary filename
    +%w   width
    +%x   x resolution
    +%y   y resolution
    +%z   image depth
    +%C   image compression type
    +%D   image dispose method
    +%H   page height
    +%Q   image compression quality
    +%T   image delay
    +%W   page width
    +%X   page x offset
    +%Y   page y offset
    +%@   bounding box
    +%#   signature
    +%%   a percent sign
    +\n   newline
    +\r   carriage return
    +
    + +

    For example,

    + +
    text=>"%m:%f %wx%h"
    +
    + +

    produces an annotation of MIFF:bird.miff 512x480 for an image titled bird.miff and whose width is 512 and height is 480.

    + +

    You can optionally add Image to any method name. For example, TrimImage() is an alias for method Trim().

    + +

    Most of the attributes listed above have an analog in convert. See the documentation for a more detailed description of these attributes.

    + +

    Set an Image Attribute

    + +

    Use method Set() to set an image attribute. For example,

    + +
    $image->Set(dither=>'True');
    +$image->[$x]->Set(delay=>3);
    +
    + +

    Where this example uses 'True' and this document says '{True, False}', +you can use the case-insensitive strings 'True' and 'False', or you +can use the integers 1 and 0.

    + +

    When you call Get() on a Boolean attribute, Image::Magick returns 1 or 0, not a string.

    + +

    And here is a list of all the image attributes you can set:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Image Attributes
    AttributeValuesDescription
    adjoin{True, False}join images into a single multi-image file
    alpha{On, Off, Opaque, Transparent, Copy, Extract, Set}control of and special operations involving the alpha/matte channel
    antialias{True, False}remove pixel aliasing
    area-limitintegerset pixel area resource limit.
    attenuatedoublelessen (or intensify) when adding noise to an image.
    authenticatestringdecrypt image with this password.
    backgroundcolor nameimage background color
    blue-primaryx-value, y-valuechromaticity blue primary point (e.g. 0.15, 0.06)
    bordercolorcolor nameset the image border color
    clip-maskimageassociate a clip mask with the image.
    colormap[i]color namecolor name (e.g. red) or hex value (e.g. #ccc) at position +i
    commentstringset the image comment
    compression{None, BZip, Fax, Group4, JPEG, JPEG2000, LosslessJPEG, LZW, RLE, Zip}type of image compression
    debug{All, Annotate, Blob, Cache, Coder, Configure, Deprecate, Draw, Exception, Locale, None, Resource, Transform, X11}display copious debugging information
    delayintegerthis many 1/100ths of a second must expire before displaying the next image in a sequence
    densitygeometryvertical and horizontal resolution in pixels of the image
    depthintegerimage depth
    direction{Undefined, right-to-left, left-to-rightrender text right-to-left or left-to-right
    disk-limitintegerset disk resource limit
    dispose{Undefined, None, Background, Previous}layer disposal method
    dither{True, False}apply error diffusion to the image
    displaystringspecifies the X server to contact
    extractgeometryextract area from image
    filefilehandleset the image filehandle
    filenamestringset the image filename
    fillcolorThe fill color paints any areas inside the outline of drawn shape.
    fontstringuse this font when annotating the image with text
    fuzzintegercolors within this distance are considered equal
    gammadoublegamma level of the image
    Gravity{Forget, NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}type of image gravity
    green-primaryx-value, y-valuechromaticity green primary point (e.g. 0.3, 0.6)
    index[x, y]stringcolormap index at position (x, y)
    interlace{None, Line, Plane, Partition, JPEG, GIF, PNG}the type of interlacing scheme
    iterationsintegeradd Netscape loop extension to your GIF animation
    labelstringset the image label
    loopintegeradd Netscape loop extension to your GIF animation
    magickstringset the image format
    map-limitintegerset map resource limit
    maskimageassociate a mask with the image.
    matte{True, False}enable the image matte channel
    mattecolorcolor nameset the image matte color
    memory-limitintegerset memory resource limit
    monochrome{True, False}transform the image to black and white
    optionstringassociate an option with an image format (e.g. option=>'ps:imagemask'
    orientation{top-left, top-right, bottom-right, bottom-left, left-top, right-top, right-bottom, left-bottom}image orientation
    page{ Letter, Tabloid, Ledger, Legal, Statement, Executive, A3, A4, A5, B4, B5, Folio, Quarto, 10x14} or geometrypreferred size and location of an image canvas
    pixel[x, y]stringhex value (e.g. #ccc) at position (x, y)
    pointsizeintegerpointsize of the Postscript or TrueType font
    qualityintegerJPEG/MIFF/PNG compression level
    red-primaryx-value, y-valuechromaticity red primary point (e.g. 0.64, 0.33)
    sampling-factorgeometryhorizontal and vertical sampling factor
    sceneintegerimage scene number
    serverstringspecifies the X server to contact
    sizestringwidth and height of a raw image
    strokecolorThe stroke color paints along the outline of a shape.
    texturestringname of texture to tile onto the image background
    tile-offsetgeometryimage tile offset
    time-limitintegerset time resource limit in seconds
    type{Bilevel, Grayscale, GrayscaleMatte, Palette, PaletteMatte, TrueColor, TrueColorMatte, ColorSeparation, ColorSeparationMatte}image type
    units{ Undefined, PixelsPerInch, PixelsPerCentimeter}units of image resolution
    verbose{True, False}print detailed information about the image
    virtual-pixel{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}the virtual pixel method
    white-pointx-value, y-valuechromaticity white point (e.g. 0.3127, 0.329)
    + +

    Note, that the geometry parameter is a short cut for the width and height parameters (e.g. geometry=>'106x80' is equivalent to width=>106, height=>80).

    + +

    SetAttribute() is an alias for method Set().

    + +

    Most of the attributes listed above have an analog in +convert. See the documentation for a more detailed description of these attributes.

    + +

    Get an Image Attribute

    + +

    Use method Get() to get an image attribute. For example,

    + +
    ($a, $b, $c) = $image->Get('colorspace', 'magick', 'adjoin');
    +$width = $image->[3]->Get('columns');
    +
    + +

    In addition to all the attributes listed in Set an Image Attribute , you can get these additional attributes:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Image Attributes
    AttributeValuesDescription
    areaintegercurrent area resource consumed
    base-columnsintegerbase image width (before transformations)
    base-filenamestringbase image filename (before transformations)
    base-rowsintegerbase image height (before transformations)
    class{Direct, Pseudo}image class
    colorsintegernumber of unique colors in the image
    columnsintegerimage width
    copyrightstringget PerlMagick's copyright
    directorystringtile names from within an image montage
    elapsed-timedoubleelapsed time in seconds since the image was created
    errordoublethe mean error per pixel computed with methods Compare() or Quantize()
    bounding-boxstringimage bounding box
    diskintegercurrent disk resource consumed
    filesizeintegernumber of bytes of the image on disk
    formatstringget the descriptive image format
    geometrystringimage geometry
    heightintegerthe number of rows or height of an image
    iccstringICC profile
    iccstringICM profile
    idintegerImageMagick registry id
    IPTCstringIPTC profile
    mean-errordoublethe normalized mean error per pixel computed with methods Compare() or Quantize()
    mapintegercurrent memory-mapped resource consumed
    matte{True, False}whether or not the image has a matte channel
    maximum-errordoublethe normalized max error per pixel computed with methods Compare() or Quantize()
    memoryintegercurrent memory resource consumed
    mimestringMIME of the image format
    montagegeometrytile size and offset within an image montage
    page.xintegerx offset of image virtual canvas
    page.yintegery offset of image virtual canvas
    rowsintegerthe number of rows or height of an image
    signaturestringSHA-256 message digest associated with the image pixel stream
    taint{True, False}True if the image has been modified
    total-ink-densitydoublereturns the total ink density for a CMYK image
    transparent-colorcolor nameset the image transparent color
    user-timedoubleuser time in seconds since the image was created
    versionstringget PerlMagick's version
    widthintegerthe number of columns or width of an image
    XMPstringXMP profile
    x-resolutionintegerx resolution of the image
    y-resolutionintegery resolution of the image
    + +

    GetAttribute() is an alias for method Get().

    + +

    Most of the attributes listed above have an analog in +convert. See the documentation for a more detailed description of these attributes.

    + +

    Compare an Image to its Reconstruction

    + +

    Mathematically and visually annotate the difference between an image and its reconstruction with the Compare() method. The method supports these parameters:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Compare Parameters
    ParameterValuesDescription
    channeldoubleselect image channels, the default is all channels except alpha.
    fuzzdoublecolors within this distance are considered equal
    imageimage-referencethe image reconstruction
    metricAE, MAE, MEPP, MSE, PAE, PSNR, RMSEmeasure differences between images with this metric
    + +

    In this example, we compare the ImageMagick logo to a sharpened reconstruction:

    + +
    use Image::Magick;
    +
    +$logo=Image::Magick->New();
    +$logo->Read('logo:');
    +$sharp=Image::Magick->New();
    +$sharp->Read('logo:');
    +$sharp->Sharpen('0x1');
    +$difference=$logo->Compare(image=>$sharp, metric=>'rmse');
    +print $difference->Get('error'), "\n";
    +$difference->Display();
    +
    + +

    In addition to the reported root mean squared error of around 0.024, a difference image is displayed so you can visually identify the difference between the images.

    + +

    Create an Image Montage

    + +

    Use method Montage() to create a composite image by combining several separate images. The images are tiled on the composite image with the name of the image optionally appearing just below the individual tile. For example,

    + +
    $image->Montage(geometry=>'160x160', tile=>'2x2', texture=>'granite:');
    +
    + +

    And here is a list of Montage() parameters you can set:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Montage Parameters
    ParameterValuesDescription
    backgroundcolor namebackground color name
    borderintegerimage border width
    filenamestringname of montage image
    fillcolor namefill color for annotations
    fontstringX11 font name
    framegeometrysurround the image with an ornamental border
    geometrygeometrypreferred tile and border size of each tile of the composite +image (e.g. 120x120+4+3>)
    gravityNorthWest, North, NorthEast, West, Center, East, SouthWest, +South, SouthEastdirection image gravitates to within a tile
    labelstringassign a label to an image
    modeFrame, Unframe, Concatenatethumbnail framing options
    pointsizeintegerpointsize of the Postscript or TrueType font
    shadow{True, False}add a shadow beneath a tile to simulate depth
    strokecolor namestroke color for annotations
    texturestringname of texture to tile onto the image background
    tilegeometrythe number of tiles per row and page (e.g. 6x4)
    titlestringassign a title to the image montage
    transparentstringmake this color transparent within the image
    + +

    Note, that the geometry parameter is a short cut for the width and height parameters (e.g. geometry=>'106x80' is equivalent to width=>106, height=>80).

    + +

    MontageImage() is an alias for method Montage().

    + +

    Most of the attributes listed above have an analog in montage. See the documentation for a more detailed description of these attributes.

    + +

    Working with Blobs

    + +

    A blob contains data that directly represent a particular image +format in memory instead of on disk. PerlMagick supports +blobs in any of these image formats and provides methods to convert a blob to or from a particular image format.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Blob Methods
    MethodParametersReturn ValueDescription
    ImageToBlobany image attributean array of image data in the respective image formatconvert an image or image sequence to an array of blobs
    BlobToImageone or more blobsthe number of blobs converted to an imageconvert one or more blobs to an image
    + +

    ImageToBlob() returns the image data in their respective formats. You can then print it, save it to an ODBC database, write it to a file, or pipe it to a display program:

    + +
    @blobs = $image->ImageToBlob();
    +open(DISPLAY,"| display -") || die;
    +binmode DISPLAY;
    +print DISPLAY $blobs[0];
    +close DISPLAY;
    +
    + +

    Method BlobToImage() returns an image or image sequence converted from the supplied blob:

    + +
    @blob=$db->GetImage();
    +$image=Image::Magick->new(magick=>'jpg');
    +$image->BlobToImage(@blob);
    +
    + +

    Direct-access to Image Pixels

    + +

    Use these methods to obtain direct access to the image pixels:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Direct-access to Image Pixels
    MethodParametersDescription
    GetAuthenticPixelsgeometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integerreturn authentic pixels as a C pointer
    GetVirtualPixelsgeometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integerreturn virtual pixels as a const C pointer
    GetAuthenticIndexQueuereturn colormap indexes or black pixels as a C pointer
    GetVirtualIndexQueuereturn colormap indexes or black pixels as a const C pointer
    SyncAuthenticPixelssync authentic pixels to pixel cache
    + +

    Miscellaneous Methods

    + +

    The Append() method append a set of images. For example,

    + +
    $p = $image->Append(stack=>{true,false});
    +
    + +

    appends all the images associated with object $image. By default, images are stacked left-to-right. Set stack to True to stack them top-to-bottom.

    + +

    The Clone() method copies a set of images. For example,

    + +
    $q = $p->Clone();
    +
    + +

    copies all the images from object $p to $q. You can use this method for single or multi-image sequences.

    + +

    The ComplexImages() method performs complex mathematics on an image sequence. For example,

    + +
    $p = $image->ComplexImages('conjugate');
    +
    + +

    The EvaluateImages() method applies an arithmetic, logical or relational expression to a set of images. For example,

    + + +
    $p = $image->EvaluateImages('mean');
    +
    + +

    averages all the images associated with object $image.

    + +

    The Features() method returns features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance. The features include the angular second momentum, contrast, correlation, sum of squares: variance, inverse difference moment, sum average, sum varience, sum entropy, entropy, difference variance, difference entropy, information measures of correlation 1, information measures of correlation 2, and maximum correlation coefficient. Values in RGB, CMYK, RGBA, or CMYKA order (depending on the image type).

    + +
    @features = $image->Features(1);
    +
    + +

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

    + +
    $p = $images->Flatten(background=>'none');
    +$p->Write('flatten.png');
    +
    + +

    The sequence of images is replaced by a single image created by composing each image after the first over the first image.

    + +

    The Fx() method applies a mathematical expression to a set of images and returns the results. For example,

    + +
    $p = $image->Fx(expression=>'(g+b)/2.0',channel=>'red');
    +$p->Write('fx.miff');
    +
    + +

    replaces the red channel with the average of the green and blue channels.

    + +

    See FX, The Special Effects Image Operator for a detailed discussion of this method.

    + +

    Histogram() returns the unique colors in the image and a count for each one. The returned values are an array of red, green, blue, opacity, and count values.

    + +

    The Morph() method morphs a set of images. Both the image pixels and size are linearly interpolated to give the appearance of a meta-morphosis from one image to the next:

    + +
    $p = $image->Morph(frames=>integer);
    +
    + +

    where frames is the number of in-between images to generate. The default is 1.

    + +

    Mosaic() creates an mosaic from an image sequence.

    + +

    Method Mogrify() is a single entry point for the image manipulation methods (Manipulate an Image). The parameters are the name of a method followed by any parameters the method may require. For example, these calls are equivalent:

    + +
    $image->Crop('340x256+0+0');
    +$image->Mogrify('crop', '340x256+0+0');
    +
    + +

    Method MogrifyRegion() applies a transform to a region of the image. It is similar to Mogrify() but begins with the region geometry. For example, suppose you want to brighten a 100x100 region of your image at location (40, 50):

    + +
    $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');
    +($width, $height, $size, $format) = $image->Ping(file=>\*IMAGE);
    +($width, $height, $size, $format) = $image->Ping(blob=>$blob);
    +
    + +

    This a more efficient and less memory intensive way to query if an image exists and what its characteristics are.

    + +

    Poly() builds a polynomial from the image sequence and the corresponding terms (coefficients and degree pairs):

    + +
    $p = $image->Poly([0.5,1.0,0.25,2.0,1.0,1.0]);
    +
    + +

    PreviewImage() tiles 9 thumbnails of the specified image with an image processing operation applied at varying strengths. This may be helpful pin-pointing an appropriate parameter for a particular image processing operation. Choose from these operations: Rotate, Shear, Roll, Hue, Saturation, Brightness, Gamma, Spiff, Dull, Grayscale, Quantize, Despeckle, ReduceNoise, AddNoise, Sharpen, Blur, Threshold, EdgeDetect, Spread, Solarize, Shade, Raise, Segment, Swirl, Implode, Wave, OilPaint, CharcoalDrawing, JPEG. Here is an example:

    + +
    $preview = $image->Preview('Gamma');
    +$preview->Display();
    +
    + +

    To have full control over text positioning you need font metric information. Use

    + +
    ($x_ppem, $y_ppem, $ascender, $descender, $width, $height, $max_advance) =
    +  $image->QueryFontMetrics(parameters);
    +
    + +

    Where parameters is any parameter of the Annotate method. The return values are:

    + +
      +
    1. character width
    2. +
    3. character height
    4. +
    5. ascender
    6. +
    7. descender
    8. +
    9. text width
    10. +
    11. text height
    12. +
    13. maximum horizontal advance
    14. +
    15. bounds: x1
    16. +
    17. bounds: y1
    18. +
    19. bounds: x2
    20. +
    21. bounds: y2
    22. +
    23. origin: x
    24. +
    25. origin: y
    26. +
    + +

    Use QueryMultilineFontMetrics() to get the maximum text width and height for multiple lines of text.

    + +

    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) = $image->QueryColor('cyan');
    +($red, $green, $blue, $alpha) = $image->QueryColor('#716baeff');
    +
    + +

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

    + +
    $name = $image->QueryColorname('rgba(80,60,0,0)');
    +
    + +

    Call QueryFont() with no parameters to return a list of known fonts or specify one or more font names to get these attributes: font name, description, family, style, stretch, weight, encoding, foundry, format, metrics, and glyphs values.

    + +
    @fonts = $image->QueryFont();
    +$weight = ($image->QueryFont('Helvetica'))[5];
    +
    + +

    Call QueryFormat() with no parameters to return a list of known image formats or specify one or more format names to get these attributes: adjoin, blob support, raw, decoder, encoder, description, and module.

    + +
    @formats = $image->QueryFormat();
    +($adjoin, $blob_support, $raw, $decoder, $encoder, $description, $module) =
    +  $image->QueryFormat('gif');
    +
    + +

    Call MagickToMime() with the image format name to get its MIME type such as images/tiff from tif.

    + +
    $mime = $image->MagickToMime('tif');
    +
    + +

    Use RemoteCommand() to send a command to an already running display or animate application. The only parameter is the name of the image file to display or animate.

    + +
    $image->RemoteCommand('image.jpg');
    +
    + +

    The Smush() method smushes a set of images together. For example,

    + +
    $p = $image->Smush(stack=>{true,false},offset=>integer);
    +
    + +

    smushes together all the images associated with object $image. By default, images are smushed left-to-right. Set stack to True to smushed them top-to-bottom.

    + +

    Statistics() returns the image statistics for each channel in the image. The returned values are an array of depth, minima, maxima, mean, standard deviation, kurtosis, skewness, and entropy values in RGB, CMYK, RGBA, or CMYKA order (depending on the image type).

    + +
    @statistics = $image->Statistics();
    +
    + +

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

    + +
    $p = $image->Transform(crop=>'100x100+0+0');
    +
    + +

    You can optionally add Image to any method name above. For example, PingImage() is an alias for method Ping().

    + +

    Handling Exceptions

    + +

    All PerlMagick methods return an undefined string context upon success. If any problems occur, the error is returned as a string with an embedded numeric status code. A status code less than 400 is a warning. This means that the operation did not complete but was recoverable to some degree. A numeric code greater or equal to 400 is an error and indicates the operation failed completely. Here is how exceptions are returned for the different methods:

    + +

    Methods which return a number (e.g. Read(), Write()):

    + +
    $x = $image->Read(...);
    +warn "$x" if "$x";      # print the error message
    +$x =~ /(\d+)/;
    +print $1;               # print the error number
    +print 0+$x;             # print the number of images read
    +
    + +

    Methods which operate on an image (e.g. Resize(), Crop()):

    + +
    $x = $image->Crop(...);
    +warn "$x" if "$x";      # print the error message
    +$x =~ /(\d+)/;
    +print $1;               # print the error number
    +
    + +

    Methods which return images (EvaluateSequence(), Montage(), Clone()) should be checked for errors this way:

    + +
    $x = $image->Montage(...);
    +warn "$x" if !ref($x);  # print the error message
    +$x =~ /(\d+)/;
    +print $1;               # print the error number
    +
    + +

    Here is an example error message:

    + +
    Error 400: Memory allocation failed
    +
    + +

    Review the complete list of error and warning codes.

    + +

    The following illustrates how you can use a numeric status code:

    + +
    $x = $image->Read('rose.png');
    +$x =~ /(\d+)/;
    +die "unable to continue" if ($1 == ResourceLimitError);
    +
    + +

    Constants

    + +

    PerlMagick includes these constants:

    + +
    BlobError
    +BlobWarning
    +CacheError
    +CacheWarning
    +CoderError
    +CoderWarning
    +ConfigureError
    +ConfigureWarning
    +CorruptImageError
    +CorruptImageWarning
    +DelegateError
    +DelegateWarning
    +DrawError
    +DrawWarning
    +ErrorException
    +FatalErrorException
    +FileOpenError
    +FileOpenWarning
    +ImageError
    +ImageWarning
    +MissingDelegateError
    +MissingDelegateWarning
    +ModuleError
    +ModuleWarning
    +Opaque
    +OptionError
    +OptionWarning
    +QuantumDepth
    +QuantumRange
    +RegistryError
    +RegistryWarning
    +ResourceLimitError
    +ResourceLimitWarning
    +StreamError
    +StreamWarning
    +Success
    +Transparent
    +TypeError
    +TypeWarning
    +WarningException
    +XServerError
    +XServerWarning
    +
    + +

    You can access them like this:

    + +
    Image::Magick->QuantumDepth
    +
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/porting.html b/share/doc/ImageMagick-7/www/porting.html new file mode 100644 index 0000000..c2d3c60 --- /dev/null +++ b/share/doc/ImageMagick-7/www/porting.html @@ -0,0 +1,670 @@ + + + + + + + + + + Porting to ImageMagick Version 7 @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    + +

    ImageMagick Version 7 • High Dynamic Range Imaging • Pixel Channels • Alpha • Grayscale • Masks • MagickCore API • Header Files • Deprecated Features Removed • Command-line Interface • Version 7 Change Summary

    + +

    The design of ImageMagick is an evolutionary process, with the design and implementation efforts serving to influence and guide further progress in the other. With ImageMagick version 7 we improved the design based on lessons learned from the version 6 implementation. ImageMagick was originally designed to display RGB images to an X Windows server. Over time we extended support to RGBA images and then to the CMYK and CMYKA image format. With ImageMagick version 7, we extend support to arbitrary colorspaces with an arbitrary number of pixel channels. In addition, ImageMagick 7 stores pixel channels as floats permitting out of band values (e.g. negative) and reduces rounding error. There are numerous other design enhancements described within.

    + +

    To support variable pixel channels in the MagickCore API, pixel handling has changed when getting or setting the pixel channels. You can access channels as an array, pixel[i], or use an accessor method such as GetPixelRed() or SetPixelRed(). There are some modest changes to the MagickCore and MagickWand API's. The Magick++ and PerlMagick API's have not changed and matches that of the ImageMagick version 6.

    + +

    The shell API (command line) of ImageMagick version 7 has undergone +a major overhaul, with specific emphasis on the ability to read 'options' not +only from the command line, but also from scripts, and file streams. This +allows for the use of 'co-processing' programming techniques or performing +image handling using 'deamon/server backends', and even multi-machine +distributed processing.

    + +

    With the shell API overhaul other improvements were made, including: +better reporting of which option failed, the consolidation and deprecation of +options, and more global use of 'image properties' (more commonly known as +'percent escapes' in option arguments.

    + +

    ImageMagick version 7 is available now as a production release.

    + +

    Now that ImageMagick version 7 is released, we continue to support and enhance version 6 for a minimum of 10 years.

    + +

    High Dynamic Range Imaging

    +

    ImageMagick version 7 enables high dynamic range imaging (HDRI) by default. HDRI accurately represents the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows. In addition, image processing results are more accurate. The disadvantage is it requires more memory and may result in slower processing times. If you see differences in the results of your version 6 command-line with version 7, it is likely due to HDRI. You may need to add -clamp to your command-line to constrain pixels to the 0 .. QuantumRange range, or disable HDRI when you build ImageMagick version 7. To disable HDRI (recommended for smart phone builds such as iOS or production sites where performance is a premium), simply add --disable-hdri to the configure script command line when building ImageMagick.

    + +

    Pixel Channels

    +

    A pixel is comprised of one or more color values, or channels (e.g. red pixel channel).

    +

    Prior versions of ImageMagick (4-6), support 4 to 5 pixel channels (RGBA or CMYKA). The first 4 channels are accessed with the PixelPacket data structure. The structure includes 4 members of type Quantum (typically 16-bits) of red, green, blue, and opacity. The black channel or colormap indexes are supported by a separate method and structure, IndexPacket. As an example, here is a code snippet from ImageMagick version 6 that negates the color components (but not the alpha component) of the image pixels:

    + +
    for (y=0; y < (ssize_t) image->rows; y++)
    +{
    +  register IndexPacket
    +    *indexes;
    +
    +  register PixelPacket
    +    *q;
    +
    +  q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
    +  if (q == (PixelPacket *) NULL)
    +    {
    +      status=MagickFalse;
    +      continue;
    +    }
    +  indexes=GetCacheViewAuthenticIndexQueue(image_view);
    +  for (x=0; x < (ssize_t) image->columns; x++)
    +  {
    +    if ((channel & RedChannel) != 0)
    +      q->red=(Quantum) QuantumRange-q->red;
    +    if ((channel & GreenChannel) != 0)
    +      q->green=(Quantum) QuantumRange-q->green;
    +    if ((channel & BlueChannel) != 0)
    +      q->blue=(Quantum) QuantumRange-q->blue;
    +    if (((channel & IndexChannel) != 0) &&
    +        (image->colorspace == CMYKColorspace))
    +      indexes[x]=(IndexPacket) QuantumRange-indexes[x];
    +    q++;
    +  }
    +  if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
    +    status=MagickFalse;
    +}
    + +

    ImageMagick version 7 supports any number of channels from 1 to 32 (and beyond) and simplifies access with a single method that returns an array of pixel channels of type Quantum. Source code that compiles against prior versions of ImageMagick requires refactoring to work with ImageMagick version 7. We illustrate with an example. Let's naively refactor the version 6 code snippet from above so it works with the ImageMagick version 7 API:

    + +
    for (y=0; y < (ssize_t) image->rows; y++)
    +{
    +  register Quantum
    +    *q;
    +
    +  q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
    +  if (q == (Quantum *) NULL)
    +    {
    +      status=MagickFalse;
    +      continue;
    +    }
    +  for (x=0; x < (ssize_t) image->columns; x++)
    +  {
    +    if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
    +      SetPixelRed(image,QuantumRange-GetPixelRed(image,q),q);
    +    if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
    +      SetPixelGreen(image,QuantumRange-GetPixelGreen(image,q),q);
    +    if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
    +      SetPixelBlue(image,QuantumRange-GetPixelBlue(image,q),q);
    +    if ((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0)
    +      SetPixelBlack(image,QuantumRange-GetPixelBlack(image,q),q);
    +    if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0)
    +      SetPixelAlpha(image,QuantumRange-GetPixelAlpha(image,q),q);
    +    q+=GetPixelChannels(image);
    +  }
    +  if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
    +    status=MagickFalse;
    +}
    + +

    Let's do that again but take full advantage of the new variable pixel channel support:

    + +
    for (y=0; y < (ssize_t) image->rows; y++)
    +{
    +  register Quantum
    +    *q;
    +
    +  q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
    +  if (q == (Quantum *) NULL)
    +    {
    +      status=MagickFalse;
    +      continue;
    +    }
    +  for (x = 0; x < (ssize_t) image->columns; x++)
    +  {
    +    register ssize_t
    +      i;
    +
    +    if (GetPixelWriteMask(image,q) <= (QuantumRange/2))
    +      {
    +        q+=GetPixelChannels(image);
    +        continue;
    +      }
    +    for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
    +    {
    +      PixelChannel channel = GetPixelChannelChannel(image,i);
    +      PixelTrait traits = GetPixelChannelTraits(image,channel);
    +      if ((traits & UpdatePixelTrait) == 0)
    +        continue;
    +      q[i]=QuantumRange-q[i];
    +    }
    +    q+=GetPixelChannels(image);
    +  }
    +  if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
    +    status=MagickFalse;
    +}
    + +

    Note, how we use GetPixelChannels() to advance to the next set of pixel channels.

    + +

    The colormap indexes and black pixel channel (for the CMYK colorspace) are no longer stored in the index channel, previously accessed with GetAuthenticIndexQueue() and GetCacheViewAuthenticIndexQueue(). Instead they are now a first class pixel channel and accessed as a member of the pixel array (e.g. pixel[4]) or with the convenience pixel accessor methods GetPixelIndex(), SetPixelIndex(), GetPixelBlack(), and SetPixelBlack().

    + +

    As a consequence of using an array structure for variable pixel channels, auto-vectorization compilers have additional opportunities to speed up pixel loops.

    + +

    Pixel Accessors

    +

    You can access pixel channel as array elements (e.g. pixel[1]) or use convenience accessors to get or set pixel channels:

    + +
    GetPixela()                  SetPixela()
    +GetPixelAlpha()              SetPixelAlpha()
    +GetPixelb()                  SetPixelb()
    +GetPixelBlack()              SetPixelBlack()
    +GetPixelBlue()               SetPixelBlue()
    +GetPixelCb()                 SetPixelCb()
    +GetPixelCr()                 SetPixelCr()
    +GetPixelCyan()               SetPixelCyan()
    +GetPixelGray()               SetPixelGray()
    +GetPixelGreen()              SetPixelGreen()
    +GetPixelIndex()              SetPixelIndex()
    +GetPixelL()                  SetPixelL()
    +GetPixelMagenta()            SetPixelMagenta()
    +GetPixelReadMask()           SetPixelReadMask()
    +GetPixelWriteMask()          SetPixelWriteMask()
    +GetPixelMetacontentExtent()  SetPixelMetacontentExtent()
    +GetPixelOpacity()            SetPixelOpacity()
    +GetPixelRed()                SetPixelRed()
    +GetPixelYellow()             SetPixelYellow()
    +GetPixelY()                  SetPixelY()
    + +

    You can find these accessors defined in the header file, MagickCore/pixel-accessor.h

    + +

    Pixel Traits

    +

    Each pixel channel includes one or more of these traits:

    +
    +
    Undefined
    +
    no traits associated with this pixel channel
    +
    Copy
    +
    do not update this pixel channel, just copy it
    +
    Update
    +
    update this pixel channel
    +
    Blend
    +
    blend this pixel channel with the alpha mask if it's enabled
    +
    +

    We provide these methods to set and get pixel traits:

    +
    GetPixelAlphaTraits()    SetPixelAlphaTraits()
    +GetPixelBlackTraits()    SetPixelBlackTraits()
    +GetPixelBlueTraits()     SetPixelBlueTraits()
    +GetPixelCbTraits()       SetPixelCbTraits()
    +GetPixelChannelTraits()  SetPixelChannelTraits()
    +GetPixelCrTraits()       SetPixelCrTraits()
    +GetPixelGrayTraits()     SetPixelGrayTraits()
    +GetPixelGreenTraits()    SetPixelGreenTraits()
    +GetPixelIndexTraits()    SetPixelIndexTraits()
    +GetPixelMagentaTraits()  SetPixelMagentaTraits()
    +GetPixelRedTraits()      SetPixelRedTraits()
    +GetPixelYellowTraits()   SetPixelYellowTraits()
    +GetPixelYTraits()        SetPixelYTraits()
    +

    For convenience you can set the active trait for a set of pixel channels with a channel mask and this method:

    +
    SetImageChannelMask()
    +
    + +

    Previously MagickCore methods had channel analogs, for example, NegateImage() and NegateImageChannels(). The channel analog methods are no longer necessary because the pixel channel traits specify whether to act on a particular pixel channel or whether to blend with the alpha mask. For example, instead of

    +
    NegateImageChannel(image,channel);
    +

    we use:

    +
    channel_mask=SetImageChannelMask(image,channel);
    +NegateImage(image,exception);
    +(void) SetImageChannelMask(image,channel_mask);
    + +

    Pixel User Channels

    +

    In version 7, we introduce pixel user channels. Traditionally we utilize 4 channels, red, green, blue, and alpha. For CMYK we also have a black channel. User channels are designed to contain whatever additional channel information that makes sense for your application. Some examples include extra channels in TIFF or PSD images or perhaps you require a channel with infrared information for the pixel. You can associate traits with the user channels so that they when they are acted upon by an image processing algorithm (e.g. blur) the pixels are copied, acted upon by the algorithm, or even blended with the alpha channel if that makes sense.

    +

    Pixel Metacontent

    +

    In version 7, we introduce pixel metacontent. Metacontent is content about content. So rather than being the content itself, it's something that describes or is associated with the content. Here the content is a pixel. The pixel metacontent is for your exclusive use (internally the data is just copied, it is not modified) and is accessed with these MagickCore API methods:

    +
    SetImageMetacontentExtent()
    +GetImageMetacontentExtent()
    +GetVirtualMetacontent()
    +GetAuthenticMetacontent()
    +GetCacheViewAuthenticMetacontent()
    +GetCacheViewVirtualMetacontent()
    + +

    Alpha

    +

    We support alpha now, previously opacity. With alpha, a value of 0 means that the pixel does not have any coverage information and is transparent; i.e. there was no color contribution from any geometry because the geometry did not overlap this pixel. A value of QuantumRange means that the pixel is opaque because the geometry completely overlapped the pixel. As a consequence, in version 7, the PixelInfo structure member alpha has replaced the previous opacity member. Another consequence is the alpha part of a sRGB value in hexadecimal notation is now reversed (e.g. #0000 is fully transparent).

    +

    Colorspace

    +

    The Rec601Luma and Rec709Luma colorspaces are no longer supported. Instead, specify the gray colorspace and choose from these intensity options:

    +
    Rec601Luma
    +Rec601Luminance
    +Rec709Luma
    +Rec709Luminance
    +

    For example,

    +
    convert myImage.png -intensity Rec709Luminance -colorspace gray myImage.jpg
    + +

    Grayscale

    +

    Previously, grayscale images were Rec601Luminance and consumed 4 channels: red, green, blue, and alpha. With version 7, grayscale consumes only 1 channel requiring far less resources as a result.

    + +

    Masks

    +

    Version 7 supports masks for most image operators. Black pixels in a read mask ignores corresponding pixel in an image whereas black pixels in a write mask protects the corresponding pixel in the image. From the command-line, you can associate a mask with an image with the -read-mask and -write-mask options. This polarity is the reverse of masks in version 6 of ImageMagick. For convenience, we continue to support the -mask option in version 7 to match the behavior of version 6.

    +

    In this example, we compute the distortion of a masked reconstructed image:

    +
    compare -metric rmse -read-mask hat_mask.png hat.png wizard.png difference.png
    +

    Here we protect certain pixels from change:

    +
    convert rose: -write-mask rose_bg_mask.png -modulate 110,100,33.3  +mask rose_blue.png
    + +

    A mask associated with an image persists until it is modified or removed. This may produce unexpected results for complex command-lines. Here we only want to clip when applying the alpha option, not the resize:

    +
    +convert -density 300 -colorspace srgb image.eps -alpha transparent -clip -alpha opaque +clip -resize 1000x1000 -strip image.png
    +
    + +

    MagickCore API

    +

    Here are a list of changes to the MagickCore API:

    +
      +
    • Almost all image processing algorithms are now channel aware.
    • +
    • The MagickCore API adds an ExceptionInfo argument to those methods that lacked it in version 6, e.g. NegateImage(image,MagickTrue,exception);
    • +
    • All method channel analogs have been removed (e.g. BlurImageChannel()), they are no longer necessary, use pixel traits instead.
    • +
    • Public and private API calls are now declared with the GCC visibility attribute. The MagickCore and MagickWand dynamic libraries now only export public struct and function declarations.
    • +
    • The InterpolatePixelMethod enum is now PixelInterpolateMethod.
    • +
    • The IntegerPixel storage type is removed (use LongPixel instead) and LongLongPixel is added
    • +
    • Image signatures have changed to account for variable pixel channels.
    • +
    • All color packet structures, PixelPacket, LongPacket, and DoublePacket, are consolidated to a single color structure, PixelInfo.
    • +
    • The ChannelMoments structure member I is now invariant. I conflicts with the complex.h header.
    • +
    • We added a length parameter to FormatMagickSize() to permit variable length buffers.
    • +
    +

    MagickWand API

    +

    Here are a list of changes to the MagickWand API:

    +
      +
    • Almost all image processing algorithms are now channel aware.
    • +
    • The DrawMatte() method is now called DrawAlpha().
    • +
    • The MagickSetImageBias() and MagickSetImageClipMask() methods are no longer supported.
    • +
    +

    Magick++ API

    +

    Here are a list of changes to the Magick++ API:

    +
      +
    • Almost all image processing algorithms are now channel aware.
    • +
    • Use this construct, for example, to avoid operating on the alpha channel: +
      image.negateChannel(Magick::ChannelType(Magick::CompositeChannels ^ Magick::AlphaChannel));
      +
      +
    • +
    +

    Header Files

    +

    Prior versions of ImageMagick (4-6) reference the ImageMagick header files as magick/ and wand/. ImageMagick 7 instead uses MagickCore/ and MagickWand/ respectively. For example,

    +
    #include <MagickCore/MagickCore.h>
    +#include <MagickWand/MagickWand.h>
    + +

    Deprecated Features Removed

    +

    All deprecated features from ImageMagick version 6 are removed in version 7. These include the Magick-config and Wand-config configuration utilities. Instead use:

    + +
    MagickCore-config
    +MagickWand-config
    +

    The FilterImage() method has been removed. Use ConvolveImage() instead.

    + +

    In addition, all deprecated MagickCore and MagickWand methods are no longer available in version 7.

    + +

    The Bessel filter was removed as it is an alias for Jinc. Use -filter Jinc instead.

    + + +

    Shell API or Command-line Interface

    + +

    As mentioned the primary focus of the changes to the Shell API or Command +Line Interface is the abstraction so that not only can options be +read from command line arguments, but also from a file (script) or from a file +stream (interactive commands, or co-processing).

    + +

    To do this the CLI parser needed to be re-written, so as to always perform +all options, in a strict, do-it-as-you-see it order. Previously in IMv6 +options were performed in groups (known as 'FireOptions), this awkwardness is +now gone. However the strict order means that you can no longer give operations +before providing an image for the operations to work on. To do so will now +produce an error.

    + +

    Error reporting is now reporting exactly which option (by argument count on +command line, or line,column in scripts) caused the 'exception'. This is not +complete as yet but getting better. Also not complete is 'regard-warnings' +handling or its replacement, which will allow you to ignore reported errors +and continue processing (as appropriate due to error) in co-processes or +interactive usage.

    + +

    The parenthesis options used to 'push' the current image list, and image +settings (EG: '(' and ')' ) on to a stack now has +a completely separate image settings stack. That is parenthesis 'push/pull' +image lists, and curly braces (EG: '{' and '}' ) will +'push/pull' image settings.

    + +

    Of course due to the previously reported changes to the underlying channel +handling will result be many side effects to almost all options. Here are some +specific

    + +

    Most algorithms update the red, green, blue, black (for CMYK), and alpha +channels. Most operators will blend alpha the other color channels, but other +operators (and situations) may require this blending to be disabled, and is +currently done by removing alpha from the active channels via +-channel option. (e.g. convert castle.gif -channel RGB +-negate castle.png).

    + +

    Reading gray-scale images generate an image with only one channel. If +that image is to then accept color the -colorspace setting needs to +be applied to expand the one channel into separate RGB (or other) channels. +

    +

    Previously, command-line arguments were limited to 4096 characters, with ImageMagick version 7 the limit has increased to 131072 characters.

    + +

    Command Changes

    +

    Here are a list of changes to the ImageMagick commands:

    +
    +
    magick
    +
    The "magick" command is the new primary command of the Shell + API, replacing the old "convert" command. This allows you to + create a 'magick script' of the form "#!/path/to/command/magick + -script", or pipe options into a command "magick -script + -, as abackground process.
    + +
    magick-script
    +
    This the same as "magick", (only command name is different) + but which has an implicit "-script" option. This allows you to + use it in an "env" style script form. That is a magick script + starts with the 'she-bang' line of "#!/usr/bin/env + magick-script" allowing the script interpreter to be found anywhere + on the users command "PATH". This is required to get around + a "one argument she-bang bug" that is common on most UNIX systems + (including Linux, but not MacOSX).
    +
    animate, compare, composite, conjure, convert, display, identify, import, mogrify, montage, stream
    +
    To reduce the footprint of the command-line utilities, these utilities are symbolic links to the magick utility. You can also invoke them from the magick utility, for example, use magick convert logo: logo.png to invoke the convert utility. +
    + +

    Behavioral Changes

    +

    Image settings are applied to each image on the command line. To associate a setting with a particular image, use parenthesis to remove ambiguity. In this example we assign a unique page offset to each image:

    +
    convert \( -page +10+20 first.png \) \( -page +100+200 second.png \) ...
    + +

    By default, image operations such as convolution blends alpha with each channel. To convolve each channel independently, deactivate the alpha channel as follows:

    +
    convert ... -alpha discrete -blur 0x1 ...
    +

    To remove the alpha values from your image, use -alpha off.

    +

    Some options have changed in ImageMagick version 7. These include:

    +
    +
    -channel
    +
    the default is to update the RGBA channels, previously, in IMv6, the default was RGB. If you get results that differ from IMv6, you may need to specify -channel RGB on your command line (e.g. -channel RGB -negate).
    +
    +combine
    +
    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

    +

    ImageMagick version 7 supports these new options, though most are limited +to the "magick" command, or to use in "magick" +scripts.

    + +
    +
    { ... }
    +
    Save (and restore) the current image settings (internally known as the + "image_info" structure). This is automatically done with parenthesis (EG: + '(' and ')') is "-regard-parenthesis" has + been set, just as in IMv6. Caution is advised to prevent un-balanced + braces errors.
    + +
    --
    +
    End of options, to be used in IMv7 "mogrify" command to + explicitly separate the operations to be applied and the images that + are to be processed 'in-place'. (not yet implemented). However if + not provided, "-read" can still be used to differentiate + secondary image reads (for use in things like alpha composition) from + the 'in-place' image being processed. In other commands (such as "magick") it is equivalent to a explicit "-read" (see below) of the next option as a image (as it was in IMv6).
    + +
    -alpha discrete
    +
    treat the alpha channel independently (do not blend).
    + +
    -channel-fx expression
    +
    +

    exchange, extract, or copy one or more image channels.

    + +

    The expression consists of one or more channels, either mnemonic or numeric (e.g. red or 0, green or 1, etc.), separated by certain operation symbols as follows:

    + +
    <=>  exchange two channels (e.g. red<=>blue)
    +=>   copy one channel to another channel (e.g. red=>green)
    +=    assign a constant value to a channel (e.g. red=50%)
    +,    write new image with channels in the specified order (e.g. red, green)
    +;    add a new output image for the next set of channel operations (e.g. red; green; blue)
    +|    move to the next input image for the source of channel data (e.g. | gray=>alpha)
    + +

    For example, to create 3 grayscale images from the red, green, and blue channels of an image, use:

    + +
    -channel-fx "red; green; blue"
    + +

    A channel without an operation symbol implies separate (i.e, semicolon).

    + +

    Here we take an sRGB image and a grayscale image and inject the grayscale image into the alpha channel:

    +
    convert wizard.png mask.pgm -channel-fx '| gray=>alpha' wizard-alpha.png
    +

    Use a similar command to define a read mask:

    +
    convert wizard.png mask.pgm -channel-fx '| gray=>read-mask' wizard-mask.png
    + +

    Add -debug pixel prior to the -channel-fx option to track the channel morphology.

    + +
    + +
    -exit
    +
    Stop processing at this point. No further options will be processed after + this option. Can be used in a script to force the "magick" + command to exit, without actually closing the pipeline that it is + processing options from. May also be used as a 'final' option on the "magick" command + line, instead of a implicit output image, to completely prevent any image + write. ASIDE: even the "NULL:" coder requires at least one + image, for it to 'not write'! This option does not require any images at + all.
    + +
    -read {image}
    +
    Explicit read of an image, rather than an implicit read. This allows you + to read from filenames that start with an 'option' character, and which + otherwise could be mistaken as an option (unknown or otherwise). This will + eventually be used in "mogrify" to allow the reading of + secondary images, and allow the use of image list operations within that + command.
    + +
    -read-mask
    +
    prevent updates to image pixels specified by the mask
    + +
    -region
    +
    supported in ImageMagick 7.0.2-6 and above
    + +
    -script {file}
    +
    In "magick", stop the processing of command line arguments as + image operations, and read all further options from the given file or + pipeline.
    +
    -write-mask
    +
    prevent pixels from being written.
    + +
    + +

    Changed Options

    +

    These options are known to have changed, in some way.

    +
    +
    -bias
    +
    The option is no longer recognized. Use -define convolve:bias=value instead.
    +
    -draw
    +
    The matte primitive is now alpha (e.g. -draw 'alpha 0,0 floodfill').
    +
    -negate
    +
    currently negates all channels, including alpha if present. As such you may need to use the -channel option to prevent alpha negation (e.g. -channel RGB -negate).
    +
    -preview
    +
    this option is now an image operator. The PREVIEW image format has been removed.
    +
    + +

    Deprecated warning given, but will work (for now)

    +
    +
    -affine
    +
    Replaced by -draw "affine ...". (see transform)
    +
    -average
    +
    Replaced by -evaluate-sequence Mean.
    +
    -box
    +
    Replaced by -undercolor.
    +
    -deconstruct
    +
    Replaced by -layers CompareAny.
    +
    -gaussian
    +
    Replaced by -gaussian-blur.
    +
    -/+map
    +
    Replaced by -/+remap.
    +
    -/+mask
    +
    Replaced by -/+read-mask, -/+write-mask.
    +
    -/+matte
    +
    Replaced by -alpha Set/Off.
    +
    -transform
    +
    Replaced by -distort Affine "...".
    +
    + +

    Deprecated warning given, and ignored (for now)

    +

    Almost 'plus' (+) option that did not do anything has been marked as +deprecated, and does nothing. It does not even have associated code. For +example "+annotate", "+resize", "+clut", and "+draw" .

    + +
    +
    -affinity
    +
    Replaced by -remap.
    +
    -maximum
    +
    Replaced by -evaluate-sequence Max.
    +
    -median
    +
    Replaced by -evaluate-sequence Median.
    +
    -minimum
    +
    Replaced by -evaluate-sequence Min.
    +
    -recolor
    +
    Replaced by -color-matrix.
    +
    + +

    Removed / Replaced Options ("no such option" error and abort)

    + +
    +
    -interpolate filter
    +
    remove slow and useless interpolation method
    +
    -origin
    +
    old option, unknown meaning.
    +
    -pen
    +
    Replaced by -fill.
    +
    -passphrase
    +
    old option, unknown meaning
    +
    +

    Version 7 Change Summary

    +

    Changes from ImageMagick version 6 to version 7 are summarized here:

    +

    High Dynamic Range Imaging

    +
      +
    • ImageMagick version 7 enables HDRI by default. Expect more accurate image processing results with higher memory requirements and possible slower processing times. You can disable this feature for resource constrained system such as a cell phone with a slight loss of accuracy for certain algorithms (e.g. resizing).
    • +
    +

    Pixels

    +
      +
    • Pixels are no longer addressed with PixelPacket structure members (e.g. red, green, blue, opacity) but as an array of channels (e.g. pixel[PixelRedChannel]).
    • +
    • Use convenience macros to access pixel channels (e.g. GetPixelRed(), SetPixelRed()).
    • +
    • The black channel for the CMYK colorspace is no longer stored in the index channel, previously accessed with GetAuthenticIndexQueue() and GetCacheViewAuthenticIndexQueue(). Instead it is now a pixel channel and accessed with the convenience pixel macros GetPixelBlack() and SetPixelBlack().
    • +
    • The index channel for colormapped images is no longer stored in the index channel, previously accessed with GetAuthenticIndexQueue() and GetCacheViewAuthenticIndexQueue(). Instead it is now a pixel channel and accessed with the convenience pixel macros GetPixelIndex() and SetPixelIndex().
    • +
    • Use GetPixelChannels() to advance to the next set of pixel channels.
    • +
    • Use the metacontent channel to associate metacontent with each pixel.
    • +
    • All color packet structures, PixelPacket, LongPacket, and DoublePacket, are consolidated to a single color structure, PixelInfo.
    • +
    +

    Alpha

    +
      +
    • We support alpha rather than opacity (0 transparent; QuantumRange opaque).
    • +
    • Use GetPixelAlpha() or SetPixelAlpha() to get or set the alpha pixel channel value.
    • +
    +

    Grayscale

    +
      +
    • Grayscale images consume one pixel channel in ImageMagick version 7. To process RGB, set the colorspace to RGB (e.g. -colorspace sRGB).
    • +
    +

    Masks

    +
      +
    • ImageMagick version 6 only supports read mask in limited circumstances. Version 7 supports both a read and write mask. The read mask is honored by most image-processing algorithms.
    • +
    +

    MagickCore API

    +
      +
    • Almost all image processing algorithms are now channel aware.
    • +
    • MagickCore, version 7, adds an ExceptionInfo argument to those methods that lacked it in version 6, e.g. NegateImage(image,MagickTrue,exception);
    • +
    • All method channel analogs have been removed (e.g. BlurImageChannel()), they are no longer necessary, use pixel traits instead.
    • +
    • Public and private API calls are now declared with the GCC visibility attribute. The MagickCore and MagickWand dynamic libraries now only export public struct and function declarations.
    • +
    • The InterpolatePixelMethod enum is now PixelInterpolateMethod.
    • +
    • To account for variable pixel channels, images may now return a different signature.
    • +
    +

    Deprecated Methods

    +
      +
    • All ImageMagick version 6 MagickCore and MagickWand deprecated methods are removed and no longer available in ImageMagick version 7.
    • +
    • All MagickCore channel method analogs are removed (e.g. NegateImageChannels()). For version 7, use pixel traits instead.
    • +
    • The FilterImage() method has been removed. Use ConvolveImage() instead.
    • +
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/quantize.html b/share/doc/ImageMagick-7/www/quantize.html new file mode 100644 index 0000000..ea12594 --- /dev/null +++ b/share/doc/ImageMagick-7/www/quantize.html @@ -0,0 +1,229 @@ + + + + + + + + + + Color Reduction Utilizing Adaptive Spatial Subdivision @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Algorithm Description • Measuring Color Reduction Error

    + +

    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.

    + +

    Algorithm Description

    + +

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

    + +

    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.

    + +

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

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

    Classification

    + +

    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.

    + +

    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:

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

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

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

    + +

    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:

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

    Reduction

    + +

    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:

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

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

    + +

    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.

    + +

    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

    + +

    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. + +
    3. A pixel array, which represents each pixel as an index into the color map array.
    4. +
    + +

    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.

    + +

    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.

    + +

    Measuring Color Reduction Error

    + +

    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.

    + +

    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.

    + +

    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.

    + +

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

    + +
    + + + + + + + + + + + + + +
    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.
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/resources.html b/share/doc/ImageMagick-7/www/resources.html new file mode 100644 index 0000000..7708681 --- /dev/null +++ b/share/doc/ImageMagick-7/www/resources.html @@ -0,0 +1,397 @@ + + + + + + + + + + Resources @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Configuration Files • Modules • Fonts • Environment Variables

    + +

    ImageMagick depends on a number of external resources including configuration files, loadable modules, fonts, and environment variables.

    + +

    Configuration Files

    + +

    ImageMagick depends on a number of external configuration files detailed here:

    + +
    +
    coder.xml
    +
    Associate an image format with the specified coder module. + + ImageMagick has a number of coder modules to support the reading and/or writing of an image format (e.g. JPEG). Some coder modules support more than one associated image format and the mapping between an associated format and its respective coder module is defined in this configuration file. For example, the PNG coder module not only supports the PNG image format, but the JNG and MNG formats as well. +
    + +
    colors.xml
    +
    Associate a color name with its red, green, blue, and alpha intensities. + + A number of command line options require a color parameter. It is often convenient to refer to a color by name (e.g. white) rather than by hex value (e.g. #fff). This file maps a color name to its equivalent red, green, blue, and alpha intensities (e.g. for white, red = 255, green = 255, blue = 255, and alpha = 0). +
    + +
    configure.xml
    +
    Set ImageMagick build parameters and system-wide environment variables (e.g. MAGICK_TEMPORARY_PATH). + As ImageMagick is built, a number of build parameters are saved to this configuration file. They include the version, release date, dependent delegate libraries, and quantum depth among others. +
    + +
    delegates.xml
    +
    Associate delegate programs with certain image formats. + + ImageMagick relies on a number of delegate programs to support certain image formats such as ufraw-batch to read raw camera formats or Ghostscript to read Postscript images. Use this configuration file to map an input or output format to an external delegate program. +
    + +
    english.xml
    +
    Associate message tags with English translations.
    + +
    francais.xml
    +
    Associate message tags with French translations.
    + +
    locale.xml
    +
    Associate message tags with a translation for your locale. + + ImageMagick has a number of informational, warning, and error messages that are represented as tags. Tags are short descriptions of a message such as + FileNotFound or MemoryAllocationFailed. This configuration file lists locales that have a translation for each tag recognized by ImageMagick. Currently only English and French translations are available in the english.xml and francais.xml configuration files. +
    + +
    log.xml
    +
    Configure logging parameters. + ImageMagick is capable of spewing copious amounts of informational or debugging statements. Use this file to configure how the information will appear in a log message and where you want the logging messages posted. +
    + +
    magic.xml
    +
    Associate an image format with a unique identifier. + Many image formats have identifiers that uniquely identify a particular image format. For example, the GIF image format always begins with GIF8 as the first 4 characters of the image. ImageMagick uses this information to quickly determine the type of image it is dealing with when it reads an image. +
    + +
    mime.xml
    +
    Associate an internet media type with a unique identifier. + Many files and data streams have identifiers that uniquely identify a +particular internet media type. For example, files in the "Corel Draw +drawing" format (mime type="application/vnd.corel-draw") are associated with +the filename pattern *.cdr, and also have an initial string of the +characters "CDRXvrsn". ImageMagick uses combinations of this information, +when available, to attempt to quickly determine the internet media type of a +file or data stream. +
    + +
    policy.xml
    +
    Configure ImageMagick policies. + By default any coder, delegate, filter, or file path is permitted. Use a policy to deny access to, for example, the MPEG video delegate, or permit reading images from a file system but deny writing to that same file system. Or use the resource policy to set resource limits. Policies are useful for multi-user servers that want to limit the overall impact ImageMagick has on the system. For example, to limit the maximum image size in memory to 100MP: + +
    <policy domain="resource" name="area" value="100MP"/>
    + +Any image larger than this area limit is cached to disk rather than memory. + +Use width to limit the maximum width of an image in pixels. Exceed this limit and an exception is thrown and processing stops. + +
    <policy domain="resource" name="width" value="8KP"/>
    + +To limit the elapsed time of any ImageMagick command to 5 minutes, use this policy: + +
    <policy domain="resource" name="time" value="300"/>
    +Define arguments for the memory, map, and disk resources with SI prefixes (.e.g 100MB). In addition, resource policies are maximums for each instance of ImageMagick (e.g. policy memory limit 1GB, the -limit 2GB option exceeds policy maximum so memory limit is 1GB).
    + +
    quantization-table.xml
    +
    Custom JPEG quantization tables. Activate with -define:q-table=quantization-table.xml.
    + +
    thresholds.xml
    +
    Set threshold maps for ordered posterized dither.
    + +
    type.xml
    +
    Configure fonts. + Define the font name, family, foundry, style, format, metrics, and glyphs for any font you want to use within ImageMagick. +
    + +
    type-ghostscript.xml
    +
    Configure Ghostscript fonts. + The Ghostscript package includes a number of fonts that can be accessed with ImageMagick. +
    + +
    type-windows.xml
    +
    Associate names with Windows font glyphs.
    +
    + +

    Under Unix and Linux, ImageMagick searches for each of the configuration files listed above by looking in the locations given below, in order, and loads them if found:

    + +
    $MAGICK_CONFIGURE_PATH
    +$PREFIX/etc/ImageMagick-7 
    +$PREFIX/share/ImageMagick-7 
    +$XDG_CACHE_HOME/ImageMagick
    +$HOME/.config/ImageMagick
    +<client path>/etc/ImageMagick
    + +

    The environmental variable $PREFIX is the default install path (e.g. /usr/local). The client path is the execution path of your ImageMagick client (e.g. /usr/local) .

    + +

    For the Unix or Linux pre-compiled uninstalled binary distributions, the configuration load order is:

    + +
    $MAGICK_CONFIGURE_PATH
    +$MAGICK_HOME/etc/ImageMagick-7 
    +$MAGICK_HOME/share/ImageMagick-7 
    +$PREFIX/share/ImageMagick-7 
    +$XDG_CACHE_HOME/ImageMagick
    +$HOME/.config/ImageMagick/
    +<client path>/etc/ImageMagick
    +<current directory>
    + +

    Under Windows, ImageMagick searches for these configuration files in the following order, and loads them if found:

    + +
    $MAGICK_CONFIGURE_PATH
    +<windows registry>
    +$PREFIX/config
    +$USERPROFILE/.config/ImageMagick
    +<client path>
    + +

    Above, $PREFIX is the default install path, typically c:\\Program Files\\ImageMagick-7.0.7.

    + +

    For an uninstalled Windows installation, the configuration load order is:

    + +
    $MAGICK_CONFIGURE_PATH
    +$MAGICK_HOME
    +$USERPROFILE/.config/ImageMagick
    +client path
    +<current directory>
    + +

    If a configuration file cannot not be found, ImageMagick relies on built-in default values.

    + +

    Modules

    + +

    Coders

    +

    An image coder (i.e. encoder / decoder) is responsible for registering, optionally classifying, optionally reading, optionally writing, and unregistering one image format (e.g. PNG, GIF, JPEG, etc.). ImageMagick searches for coders in the following order and it uses the first match found:

    + +
    $MAGICK_HOME/lib/ImageMagick-7.0.7/modules-Q16/coders
    +<client path>/../lib/ImageMagick-7.0.7/modules-Q16/coders
    +$MAGICK_HOME/lib/ImageMagick-7.0.7/modules-Q16/coders
    +$MAGICK_HOME/share/ImageMagick-7.0.7/modules-Q16/coders
    +$XDG_CACHE_HOME/ImageMagick
    +$HOME/.config/ImageMagick
    +<client path>/lib/ImageMagick-7.0.7/modules-Q16/coders
    + +

    Filters

    +

    ImageMagick provides a convenient mechanism for adding your own custom image processing algorithms. ImageMagick searches for filters in the following order and it uses the first match found:

    +
    $MAGICK_HOME/lib/ImageMagick-7.0.7/modules-Q16/filters
    +<client path>/../lib/ImageMagick-7.0.7/modules-Q16/filters
    +$MAGICK_HOME/lib/ImageMagick-7.0.7/modules-Q16/filters
    +$MAGICK_HOME/share/ImageMagick-7.0.7/modules-Q16/filters
    +$XDG_CACHE_HOME/ImageMagick
    +$HOME/.config/ImageMagick
    +<client path>/lib/ImageMagick-7.0.7/modules-Q16/filters
    + +

    Fonts

    + +

    ImageMagick is able to load raw TrueType and Postscript font files. It searches for the font configuration file, type.xml, in the following order, and loads them if found:

    + +
    $MAGICK_CONFIGURE_PATH
    +$MAGICK_HOME/etc/ImageMagick/-7.0.7
    +$MAGICK_HOME/share/ImageMagick-7.0.7
    +$XDG_CACHE_HOME/ImageMagick
    +$HOME/.config/ImageMagick
    +<client path>/etc/ImageMagick
    +$MAGICK_FONT_PATH
    + +

    Environment Variables

    + +

    Environment variables recognized by ImageMagick include:

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    HOMESet path to search for configuration files in $HOME/.config/ImageMagick if the directory exists.
    LD_LIBRARY_PATHSet path to the ImageMagick shareable libraries and other dependent libraries.
    MAGICK_AREA_LIMITSet the maximum width * height of an image that can reside in the pixel cache memory. Images that exceed the area limit are cached to disk (see MAGICK_DISK_LIMIT) and optionally memory-mapped.
    MAGICK_CODER_FILTER_PATHSet search path to use when searching for filter process modules (invoked via -process). This path permits the user to extend ImageMagick's image processing functionality by adding loadable modules to a preferred location rather than copying them into the ImageMagick installation directory. The formatting of the search path is similar to operating system search paths (i.e. colon delimited for Unix, and semi-colon delimited for Microsoft Windows). This user specified search path is searched before trying the default search path.
    MAGICK_CODER_MODULE_PATHSet path where ImageMagick can locate its coder modules. This path permits the user to arbitrarily extend the image formats supported by ImageMagick by adding loadable coder modules from an preferred location rather than copying them into the ImageMagick installation directory. The formatting of the search path is similar to operating system search paths (i.e. colon delimited for Unix, and semi-colon delimited for Microsoft Windows). This user specified search path is searched before trying the default search path.
    MAGICK_CONFIGURE_PATHSet path where ImageMagick can locate its configuration files. Use this search path to search for configuration (.xml) files. The formatting of the search path is similar to operating system search paths (i.e. colon delimited for Unix, and semi-colon delimited for Microsoft Windows). This user specified search path is searched before trying the default search path.
    MAGICK_DEBUGSet debug options. See -debug for a description of debugging options.
    MAGICK_DISK_LIMITSet maximum amount of disk space in bytes permitted for use by the pixel cache. When this limit is exceeded, the pixel cache is not be created and an error message is returned.
    MAGICK_ERRORMODESet the process error mode (Windows only). A typical use might be a value of 1 to prevent error mode dialogs from displaying a message box and hanging the application.
    MAGICK_FILE_LIMITSet maximum number of open pixel cache files. When this limit is exceeded, any subsequent pixels cached to disk are closed and reopened on demand. This behavior permits a large number of images to be accessed simultaneously on disk, but with a speed penalty due to repeated open/close calls.
    MAGICK_FONT_PATHSet path ImageMagick searches for TrueType and Postscript Type1 font files. This path is only consulted if a particular font file is not found in the current directory.
    MAGICK_HEIGHT_LIMITSet the maximum height of an image.
    MAGICK_HOMESet 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_LIMITSet the maximum length of an image sequence.
    MAGICK_MAP_LIMITSet 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).
    MAGICK_MEMORY_LIMITSet maximum amount of memory in bytes to allocate for the pixel cache from the heap. When this limit is exceeded, the image pixels are cached to memory-mapped disk (see MAGICK_MAP_LIMIT).
    MAGICK_OCL_DEVICESet to off to disable hardware acceleration of certain accelerated algorithms (e.g. blur, convolve, etc.).
    MAGICK_PRECISIONSet the maximum number of significant digits to be printed.
    MAGICK_SHRED_PASSESIf you want to keep the temporary files ImageMagick creates private, overwrite them with zeros or random data before they are removed. On the first pass, the file is zeroed. For subsequent passes, random data is written.
    MAGICK_SYNCHRONIZESet to "true" to ensure all image data is fully flushed and synchronized to disk. There is a performance penalty, however, the benefits include ensuring a valid image file in the event of a system crash and early reporting if there is not enough disk space for the image pixel cache.
    MAGICK_TEMPORARY_PATHSet path to store temporary files.
    MAGICK_THREAD_LIMITSet maximum parallel threads. Many ImageMagick algorithms run in parallel on multi-processor systems. Use this environment variable to set the maximum number of threads that are permitted to run in parallel.
    MAGICK_THROTTLE_LIMITPeriodically yield the CPU for at least the time specified in milliseconds.
    MAGICK_TIME_LIMITSet maximum time in seconds. When this limit is exceeded, an exception is thrown and processing stops.
    MAGICK_WIDTH_LIMITSet the maximum width of an image.
    + +

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

    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/search.html b/share/doc/ImageMagick-7/www/search.html new file mode 100644 index 0000000..5b963ff --- /dev/null +++ b/share/doc/ImageMagick-7/www/search.html @@ -0,0 +1,141 @@ + + + + + + + + + + Search @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    +
    +
    +
    +

    +
    + + ImageMagick Search + + + + + + + + + + + + + +
    + + + + +
    +
    +
    + + + + + + + diff --git a/share/doc/ImageMagick-7/www/security-policy.html b/share/doc/ImageMagick-7/www/security-policy.html new file mode 100644 index 0000000..5265a69 --- /dev/null +++ b/share/doc/ImageMagick-7/www/security-policy.html @@ -0,0 +1,250 @@ + + + + + + + + + + Security Policy @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

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

    + + +

    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:

    + +
    <policymap>
    +  <policy domain="resource" name="temporary-path" value="/tmp"/>
    +  <policy domain="resource" name="memory" value="256MiB"/>
    +  <policy domain="resource" name="map" value="512MiB"/>
    +  <policy domain="resource" name="width" value="8KP"/>
    +  <policy domain="resource" name="height" value="8KP"/>
    +  <policy domain="resource" name="area" value="16KP"/>
    +  <policy domain="resource" name="disk" value="1GiB"/>
    +  <policy domain="resource" name="file" value="768"/>
    +  <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" />
    +  <policy domain="filter" rights="none" pattern="*" />
    +  <policy domain="delegate" rights="none" pattern="HTTPS" />  
    +  <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 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:

    + +
    -> convert ../images/wizard.png wizard.jpg
    +convert: not authorized `HTTPS'
    +convert: unable to open file: No such file or directory
    +convert: no images defined `wizard.jpg'
    + +

    As of ImageMagick version 7.0.4-7, you can conveniently deny access to all delegates and coders except for a small subset of proven web-safe image types. For example,

    + +
    <policy domain="delegate" rights="none" pattern="*" />
    +<policy domain="coder" rights="none" pattern="*" />
    +<policy domain="coder" rights="read | write" pattern="{GIF,JPEG,PNG,WEBP}" />
    + +

    As of ImageMagick 7.0.7-0, you can allocate the pixel cache and some internal buffers with anonymous memory mapping rather than from heap. As a consequence, the pixels are initialized to zero. You can also securely delete any temporary files for increased security. The value is the number of times to shred (replace its content with random data) before deleting a temporary file. For example,

    +
    <policy domain="system" name="memory-map" value="anonymous"/>
    +<policy domain="cache" name="memory-map" value="anonymous"/>
    +<policy domain="system" name="shred" value="1"/>
    + +

    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
    +Path: ImageMagick/policy.xml
    +  Policy: Resource
    +    name: time
    +    value: 120
    +  Policy: Resource
    +    name: throttle
    +    value: 0
    +  Policy: Resource
    +    name: thread
    +    value: 2
    +  Policy: Resource
    +    name: file
    +    value: 768
    +  Policy: Resource
    +    name: disk
    +    value: 1GiB
    +  Policy: Resource
    +    name: map
    +    value: 512MiB
    +  Policy: Resource
    +    name: memory
    +    value: 256MiB
    +  Policy: Resource
    +    name: area
    +    value: 16KP
    +  Policy: Resource
    +    name: height
    +    value: 8KP
    +  Policy: Resource
    +    name: width
    +    value: 8KP
    +  Policy: Resource
    +    name: temporary-path
    +    value: /tmp
    +  Policy: System
    +    name: precision
    +    value: 6
    +  Policy: Path
    +    rights: None 
    +    pattern: @*
    +
    +Path: [built-in]
    +  Policy: Undefined
    +    rights: None
    +

    Notice the Cache policy is not listed due to the stealth property.

    + +

    As of ImageMagick 7.0.6-0, you can programmatically set the ImageMagick security policy with SetMagickSecurityPolicy() (MagickCore) or MagickSetSecurityPolicy() (MagickWand).

    + +

    For additional details about resource limits and the policy configuration file, read Resources and Architecture.

    + +

    Pixel Cache Synchronize Policy

    + +

    When writing image pixels to disk, ImageMagick firsts preallocates the disk file, which is much faster than fully populating the file with zeros. To further increase performance, we memory-map the file on disk. With memory-mapping, we get an increase in performance (up to 5x), however, there remains a possibility that as the disk file is populated, it may run out of free space. The OS then throws a SIGBUS signal which prevents ImageMagick from continuing. To prevent a SIGBUS, use this security policy: + +

    +<policy domain="cache" name="synchronize" value="True"/>
    +
    + +

    Set to True to ensure all image data is fully flushed and synchronized to disk. There is a performance penalty, however, the benefits include ensuring a valid image file in the event of a system crash and early reporting if there is not enough disk space for the image pixel cache.

    + +

    Zero Configuration Security Policy

    + +

    A zero configuration build of ImageMagick does not permit external configuration files. To define your security policy, you must instead edit the MagickCore/policy-private.h source module, add your policy statements, and then build the ImageMagick distribution. Here is an example zero configuration security policy:

    + +
    static const char
    +  *ZeroConfigurationPolicy = \
    +"<policymap> \
    +  <policy domain=\"coder\" rights=\"none\" pattern=\"MVG\"/> \
    +</policymap>";
    + +

    Other Security Considerations

    + +

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

    + +

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

    +
      +
    • keeping ImageMagick up-to-date. The latest releases have fixes for any security flaws we discovered in the past;
    • +
    • sanitizing any filenames or command line options you pass to ImageMagick;
    • +
    • running ImageMagick in a sanitized software container such as Docker;
    • +
    • running ImageMagick as the least-privileged user (e.g. 'nobody');
    • +
    • explicitly setting the image file type. For example, use the filename png:image.png rather than image.png. Without an explicit image type in the filename, ImageMagick guesses the image type.
    • +
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/sitemap.html b/share/doc/ImageMagick-7/www/sitemap.html new file mode 100644 index 0000000..7974f36 --- /dev/null +++ b/share/doc/ImageMagick-7/www/sitemap.html @@ -0,0 +1,267 @@ + + + + + + + + + + Sitemap @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    ImageMagick Overview • Download ImageMagick • Install ImageMagick • Command-line Tools • Program Interfaces • Image Formats • Getting Help • Support ImageMagick • Miscellaneous Topics

    + +

    Use this ImageMagick sitemap to quickly jump to one of the areas of interest listed below. If you can't find what you want on this page, try our site search.

    + +

    ImageMagick Overview

    + +
    +
  • Introduction: convert, edit, or compose images from the command-line or program interface.
  • +
  • Examples of ImageMagick usage: a few examples that show what you can do with an image using ImageMagick.
  • +
  • Anthony Thyssen's examples of ImageMagick usage: a comprehensive tutorial of using ImageMagick from the command line.
  • +
  • Color names: how to specify a color name, a hex color, or a numerical RGB, RGBA, HSL, HSLA, CMYK, or CMYKA color.
  • +
  • Color management: accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.
  • +
  • Resources: ImageMagick depends on external resources including configuration files, loadable modules, fonts, and environment variables.
  • +
  • Parallel execution: ImageMagick is threaded to take advantage of speed-ups offered by the multicore processor chips.
  • +
  • Security policy: best practices strongly encourages you to configure a security policy that suits your local environment.
  • +
  • Architecture: get to know more about the software and algorithms behind ImageMagick.
  • +
  • License: the legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick.
  • +
  • Export classification: export control status of ImageMagick.
  • +
  • ImageMagick version 7: learn how ImageMagick version 7 differs from previous versions.
  • +
  • History: how ImageMagick was conceived and developed.
  • +
    + +

    Download ImageMagick

    + +
    +
  • Download ImageMagick: ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors.
  • +
  • +
  • Unix source: Unix source distributions.
  • +
  • Windows source: Windows source distributions.
  • +
  • Unix and Windows binaries: Unix and Windows binary distributions.
  • +
  • Git repository: stable and development source releases.
  • +
  • MagickWand for PHP: a native PHP-extension to the ImageMagick MagickWand API.
  • +
  • Delegate libraries: ImageMagick depends on a number of optional delegate libraries to extend its functionality.
  • +
  • +
    + +

    Install ImageMagick

    + +

    You can install ImageMagick from source. However, if you don't have a proper development environment or if you're anxious to get started, download a ready-to-run Unix or Windows executable.

    +
    +
  • Install from source: ImageMagick builds under Windows, Mac OS X, and Linux.
  • +
  • Install from a binary distribution: install a ready-to-run Unix or Windows executable.
  • +
  • Install ImageMagickObject COM+ component: install the Windows ImageMagick COM+ component.
  • +
    + +

    Command-line Tools

    +
    +
  • Command-line tools: overview of the ImageMagick commands.
  • +
  • +
  • animate: animates an image sequence on any X server.
  • +
  • compare: mathematically and visually annotate the difference between an image and its reconstruction.
  • +
  • composite: overlaps one image over another.
  • +
  • conjure: interprets and executes scripts written in the Magick Scripting Language (MSL).
  • +
  • convert: convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and more.
  • +
  • display: displays an image or image sequence on any X server.
  • +
  • identify: describes the format and characteristics of one or more image files.
  • +
  • import: saves any visible window on an X server and outputs it as an image file.
  • +
  • mogrify: resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and more.
  • +
  • montage: create a composite image by combining several separate images.
  • +
  • stream: a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats.
  • +
  • +
  • Command line processing: the anatomy of the command line.
  • +
  • Command line options: annotated list of all options that can appear on the command-line.
  • +
  • Fx: apply a mathematical expression to an image or image channels.
  • +
  • Fred's ImageMagick Scripts: a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations.
  • +
    + +

    Program Interfaces

    + +
    +
  • Program interfaces: application programming interfaces.
  • +
  • +
  • ChMagick: is a Ch an embeddable MagickCore C/C++ interpreter for cross-platform scripting.
  • +
  • CL-Magick: provides a Common Lisp interface to the ImageMagick library.
  • +
  • G2F: implements an Ada 95 binding to a subset of the low-level MagickCore library.
  • +
  • Magick.NT: Use Magick.NET to convert, compose, and edit images from Windows .NET.
  • +
  • Magick++: provides an object-oriented C++ interface to ImageMagick.
  • +
  • IMagick: is a native PHP extension to create and modify images using the ImageMagick API.
  • +
  • JMagick: provides an object-oriented Java interface to ImageMagick.
  • +
  • MagickCore: C API, recommended for wizard-level developers.
  • +
  • MagickWand: convert, compose, and edit images from the C language.
  • +
  • MagickWand for PHP: a native PHP-extension to the ImageMagick MagickWand API.
  • +
  • nMagick: is a port of the ImageMagick library to the haXe and Neko platforms.
  • +
  • PascalMagick: a Pascal binding for the MagickWand API and also the low-level MagickCore library.
  • +
  • PerlMagick: convert, compose, and edit images from the Perl language.
  • +
  • PythonMagick: an object-oriented Python interface to ImageMagick.
  • +
  • RMagick: is an interface between the Ruby programming language and ImageMagick.
  • +
  • TclMagick: a native Tcl-extension to the ImageMagick MagickWand API.
  • +
  • +
    + +

    Image Formats

    +
    +
  • Supported image formats: annotated list of all image formats that ImageMagick can read and/or write.
  • +
  • Motion picture digital images: use SMPTE DPX Version 2.0 to process images used by the motion picture (film and high-definition) industry.
  • +
  • High dynamic-range images: accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.
  • +
  • Magick Vector Graphics: a modularized language for describing two-dimensional vector and mixed vector/raster graphics in ImageMagick.
  • +
  • Magick Image File Format: MIFF is ImageMagick's own platform-independent format for storing bitmap images.
  • +
    + +

    Getting Help

    + +
    +
  • Definitive Guide to ImageMagick: this book explains ImageMagick in a practical, learn-by-example fashion.
  • +
  • ImageMagick Tricks: this book is packed with examples of photo manipulations, logo creation, animations, and complete web projects.
  • +
  • Discourse server: get help from fellow ImageMagick users and developers, post to these forums.
  • +
  • Contact the Wizards: for bug reports (only if you do not want to sign up to the discourse server), a source or documentation patch, a security or license issue, or if you want to be a sponsor of the ImageMagick project.
  • +
    + +

    Support ImageMagick

    + +
    +
  • Report bugs and vulnerabilities: our highest priority is to fix security defects and bug reports, usually within 48 hours of your report. The bug discourse server requires that you register. If you do not want to register, you can contact the ImageMagick developers with a convenient web form.
  • +
  • Sponsor ImageMagick: contribute bug fixes, enhancements, hardware, funds, etc. to ensure the ImageMagick project thrives.
  • +
    + +

    Miscellaneous Topics

    + +
    +
  • Animation: create a GIF animation sequence from a group of images.
  • +
  • Canny edge detection: extract edges from an image using the Canny technique.
  • +
  • Color management: accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.
  • +
  • Command-line processing: utilize ImageMagick from the command line.
  • +
  • Connected Component Labeling: uniquely label connected regions in an image.
  • +
  • Composite: overlap one image over another.
  • +
  • Connected Component Labeling: uniquely label connected regions in an image.
  • +
  • Decorate: add a border or frame to an image.
  • +
  • Discrete Fourier transform: implements the forward and inverse DFT.
  • +
  • Distributed pixel cache: offload intermediate pixel storage to one or more remote servers .
  • +
  • Draw: add shapes or text to an image.
  • +
  • Encipher or decipher an image: convert ordinary images into unintelddgible gibberish and back again.
  • +
  • Escapes: utilize percent escapes in a number of options, for example in -format or in montage -label, to print various properties and other settings associated with an + image.
  • +
  • Format conversion: convert an image from one format to another (e.g. PNG to JPEG).
  • +
  • Generalized pixel distortion: correct for, or induce image distortions including perspective.
  • +
  • Heterogeneous distributed processing: certain algorithms are OpenCL-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.
  • +
  • High dynamic-range images: accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.
  • +
  • Hough lines: fit straight lines to edges in an image using the Hough transform technique.
  • +
  • Image calculator: apply a mathematical expression to an image or image channels.
  • +
  • Image gradients: create a gradual blend of two colors whose shape is horizontal, vertical, circular, or elliptical.
  • +
  • Image identification: describe the format and attributes of an image.
  • +
  • ImageMagick on the iPhone: convert, edit, or compose images on your iPhone.
  • +
  • Kuwahara Filter: apply an edge perserving noise and color reduction filter to an image.
  • +
  • Large image support: read, process, or write mega-, giga-, or tera-pixel image sizes.
  • +
  • Mean-shift: apply a color reduction technique to an image.
  • +
  • Montage: juxtapose image thumbnails on an image canvas.
  • +
  • Morphology of shapes: extract features, describe shapes and recognize patterns in images.
  • +
  • Motion picture support: read and write the common image formats used in digital film work.
  • +
  • Special effects: blur, sharpen, threshold, or tint an image.
  • +
  • Text & comments: insert descriptive or artistic text in an image.
  • +
  • Threads of execution support: ImageMagick is thread safe and most internal algorithms execute in parallel to take advantage of speed-ups offered by multicore processor chips.
  • +
  • Transform: resize, rotate, crop, or trim an image.
  • +
  • Transparency: render portions of an image invisible.
  • +
  • Virtual pixel support: convenient access to pixels outside the image region.
  • +
    +

    ImageMagick Legacy

    +

    We continue to maintain the legacy release of ImageMagick, version 6, at https://legacy.imagemagick.org

    +
    + +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/source/analyze.c b/share/doc/ImageMagick-7/www/source/analyze.c new file mode 100644 index 0000000..5cc4eba --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/analyze.c @@ -0,0 +1,237 @@ +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% AAA N N AAA L Y Y ZZZZZ EEEEE % +% A A NN N A A L Y Y ZZ E % +% AAAAA N N N AAAAA L Y ZZZ EEE % +% A A N NN A A L Y ZZ E % +% A A N N A A LLLLL Y ZZZZZ EEEEE % +% % +% Analyze An Image % +% % +% Software Design % +% Bill Corbis % +% December 1998 % +% % +% % +% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization % +% dedicated to making software imaging solutions freely available. % +% % +% You may not use this file except in compliance with the License. You may % +% obtain a copy of the License at % +% % +% http://www.imagemagick.org/script/license.php % +% % +% Unless required by applicable law or agreed to in writing, software % +% distributed under the License is distributed on an "AS IS" BASIS, % +% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % +% See the License for the specific language governing permissions and % +% limitations under the License. % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +*/ + +/* + Include declarations. +*/ +#include +#include +#include +#include +#include +#include +#include "magick/MagickCore.h" + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% a n a l y z e I m a g e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% analyzeImage() computes the brightness and saturation mean, standard +% deviation, kurtosis and skewness and stores these values as attributes +% of the image. +% +% The format of the analyzeImage method is: +% +% size_t analyzeImage(Image *images,const int argc, +% char **argv,ExceptionInfo *exception) +% +% A description of each parameter follows: +% +% o image: the address of a structure of type Image. +% +% o argc: Specifies a pointer to an integer describing the number of +% elements in the argument vector. +% +% o argv: Specifies a pointer to a text array containing the command line +% arguments. +% +% o exception: return any errors or warnings in this structure. +% +*/ +ModuleExport size_t analyzeImage(Image **images,const int argc, + const char **argv,ExceptionInfo *exception) +{ + char + text[MaxTextExtent]; + + double + area, + brightness, + brightness_mean, + brightness_standard_deviation, + brightness_kurtosis, + brightness_skewness, + brightness_sum_x, + brightness_sum_x2, + brightness_sum_x3, + brightness_sum_x4, + hue, + saturation, + saturation_mean, + saturation_standard_deviation, + saturation_kurtosis, + saturation_skewness, + saturation_sum_x, + saturation_sum_x2, + saturation_sum_x3, + saturation_sum_x4; + + Image + *image; + + assert(images != (Image **) NULL); + assert(*images != (Image *) NULL); + assert((*images)->signature == MagickSignature); + (void) argc; + (void) argv; + image=(*images); + for ( ; image != (Image *) NULL; image=GetNextImageInList(image)) + { + CacheView + *image_view; + + MagickBooleanType + status; + + ssize_t + y; + + brightness_sum_x=0.0; + brightness_sum_x2=0.0; + brightness_sum_x3=0.0; + brightness_sum_x4=0.0; + brightness_mean=0.0; + brightness_standard_deviation=0.0; + brightness_kurtosis=0.0; + brightness_skewness=0.0; + saturation_sum_x=0.0; + saturation_sum_x2=0.0; + saturation_sum_x3=0.0; + saturation_sum_x4=0.0; + saturation_mean=0.0; + saturation_standard_deviation=0.0; + saturation_kurtosis=0.0; + saturation_skewness=0.0; + area=0.0; + status=MagickTrue; + image_view=AcquireCacheView(image); +#if defined(MAGICKCORE_OPENMP_SUPPORT) + #pragma omp parallel for schedule(dynamic,4) shared(status) +#endif + for (y=0; y < (ssize_t) image->rows; y++) + { + register const PixelPacket + *p; + + register ssize_t + x; + + if (status == MagickFalse) + continue; + p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); + if (p == (const PixelPacket *) NULL) + { + status=MagickFalse; + continue; + } + for (x=0; x < (ssize_t) image->columns; x++) + { + ConvertRGBToHSB(GetPixelRed(p),GetPixelGreen(p), + GetPixelBlue(p),&hue,&saturation,&brightness); + brightness*=QuantumRange; + brightness_sum_x+=brightness; + brightness_sum_x2+=brightness*brightness; + brightness_sum_x3+=brightness*brightness*brightness; + brightness_sum_x4+=brightness*brightness*brightness*brightness; + saturation*=QuantumRange; + saturation_sum_x+=saturation; + saturation_sum_x2+=saturation*saturation; + saturation_sum_x3+=saturation*saturation*saturation; + saturation_sum_x4+=saturation*saturation*saturation*saturation; + area++; + p++; + } + } + image_view=DestroyCacheView(image_view); + if (area <= 0.0) + break; + brightness_mean=brightness_sum_x/area; + (void) FormatMagickString(text,MaxTextExtent,"%g",brightness_mean); + (void) SetImageProperty(image,"filter:brightness:mean",text); + brightness_standard_deviation=sqrt(brightness_sum_x2/area-(brightness_sum_x/ + area*brightness_sum_x/area)); + (void) FormatMagickString(text,MaxTextExtent,"%g", + brightness_standard_deviation); + (void) SetImageProperty(image,"filter:brightness:standard-deviation",text); + if (brightness_standard_deviation != 0) + brightness_kurtosis=(brightness_sum_x4/area-4.0*brightness_mean* + brightness_sum_x3/area+6.0*brightness_mean*brightness_mean* + brightness_sum_x2/area-3.0*brightness_mean*brightness_mean* + brightness_mean*brightness_mean)/(brightness_standard_deviation* + brightness_standard_deviation*brightness_standard_deviation* + brightness_standard_deviation)-3.0; + (void) FormatMagickString(text,MaxTextExtent,"%g",brightness_kurtosis); + (void) SetImageProperty(image,"filter:brightness:kurtosis",text); + if (brightness_standard_deviation != 0) + brightness_skewness=(brightness_sum_x3/area-3.0*brightness_mean* + brightness_sum_x2/area+2.0*brightness_mean*brightness_mean* + brightness_mean)/(brightness_standard_deviation* + brightness_standard_deviation*brightness_standard_deviation); + (void) FormatMagickString(text,MaxTextExtent,"%g",brightness_skewness); + (void) SetImageProperty(image,"filter:brightness:skewness",text); + saturation_mean=saturation_sum_x/area; + (void) FormatMagickString(text,MaxTextExtent,"%g",saturation_mean); + (void) SetImageProperty(image,"filter:saturation:mean",text); + saturation_standard_deviation=sqrt(saturation_sum_x2/area-(saturation_sum_x/ + area*saturation_sum_x/area)); + (void) FormatMagickString(text,MaxTextExtent,"%g", + saturation_standard_deviation); + (void) SetImageProperty(image,"filter:saturation:standard-deviation",text); + if (saturation_standard_deviation != 0) + saturation_kurtosis=(saturation_sum_x4/area-4.0*saturation_mean* + saturation_sum_x3/area+6.0*saturation_mean*saturation_mean* + saturation_sum_x2/area-3.0*saturation_mean*saturation_mean* + saturation_mean*saturation_mean)/(saturation_standard_deviation* + saturation_standard_deviation*saturation_standard_deviation* + saturation_standard_deviation)-3.0; + (void) FormatMagickString(text,MaxTextExtent,"%g",saturation_kurtosis); + (void) SetImageProperty(image,"filter:saturation:kurtosis",text); + if (saturation_standard_deviation != 0) + saturation_skewness=(saturation_sum_x3/area-3.0*saturation_mean* + saturation_sum_x2/area+2.0*saturation_mean*saturation_mean* + saturation_mean)/(saturation_standard_deviation* + saturation_standard_deviation*saturation_standard_deviation); + (void) FormatMagickString(text,MaxTextExtent,"%g",saturation_skewness); + (void) SetImageProperty(image,"filter:saturation:skewness",text); + } + return(MagickImageFilterSignature); +} diff --git a/share/doc/ImageMagick-7/www/source/coder.xml b/share/doc/ImageMagick-7/www/source/coder.xml new file mode 100644 index 0000000..4d2394f --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/coder.xml @@ -0,0 +1,23 @@ + + + + + +]> + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/colors.xml b/share/doc/ImageMagick-7/www/source/colors.xml new file mode 100644 index 0000000..55bfb5d --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/colors.xml @@ -0,0 +1,28 @@ + + + + + + +]> + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/configure.xml b/share/doc/ImageMagick-7/www/source/configure.xml new file mode 100644 index 0000000..069bd9e --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/configure.xml @@ -0,0 +1,50 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/contrast.c b/share/doc/ImageMagick-7/www/source/contrast.c new file mode 100644 index 0000000..c7c2043 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/contrast.c @@ -0,0 +1,106 @@ +#include +#include +#include +#include + +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); \ +} + + MagickBooleanType + status; + + MagickPixelPacket + pixel; + + MagickWand + *contrast_wand, + *image_wand; + + PixelIterator + *contrast_iterator, + *iterator; + + PixelWand + **contrast_pixels, + **pixels; + + register ssize_t + x; + + size_t + width; + + ssize_t + y; + + 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 < (ssize_t) 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 < (ssize_t) 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 < (ssize_t) 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); +} diff --git a/share/doc/ImageMagick-7/www/source/core.c b/share/doc/ImageMagick-7/www/source/core.c new file mode 100644 index 0000000..2d1803a --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/core.c @@ -0,0 +1,63 @@ +#include +#include +#include +#include +#include + +int main(int argc,char **argv) +{ + ExceptionInfo + *exception; + + Image + *image, + *images, + *resize_image, + *thumbnails; + + ImageInfo + *image_info; + + if (argc != 3) + { + (void) fprintf(stdout,"Usage: %s image thumbnail\n",argv[0]); + exit(0); + } + /* + Initialize the image info structure and read an image. + */ + MagickCoreGenesis(*argv,MagickTrue); + exception=AcquireExceptionInfo(); + image_info=CloneImageInfo((ImageInfo *) NULL); + (void) strcpy(image_info->filename,argv[1]); + images=ReadImage(image_info,exception); + if (exception->severity != UndefinedException) + CatchException(exception); + if (images == (Image *) NULL) + exit(1); + /* + Convert the image to a thumbnail. + */ + thumbnails=NewImageList(); + while ((image=RemoveFirstImageFromList(&images)) != (Image *) NULL) + { + resize_image=ResizeImage(image,106,80,LanczosFilter,1.0,exception); + if (resize_image == (Image *) NULL) + MagickError(exception->severity,exception->reason,exception->description); + (void) AppendImageToList(&thumbnails,resize_image); + DestroyImage(image); + } + /* + Write the image thumbnail. + */ + (void) strcpy(thumbnails->filename,argv[2]); + WriteImage(image_info,thumbnails); + /* + Destroy the image thumbnail and exit. + */ + thumbnails=DestroyImageList(thumbnails); + image_info=DestroyImageInfo(image_info); + exception=DestroyExceptionInfo(exception); + MagickCoreTerminus(); + return(0); +} diff --git a/share/doc/ImageMagick-7/www/source/delegates.xml b/share/doc/ImageMagick-7/www/source/delegates.xml new file mode 100644 index 0000000..41cbe4b --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/delegates.xml @@ -0,0 +1,122 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/english.xml b/share/doc/ImageMagick-7/www/source/english.xml new file mode 100644 index 0000000..dbaa11d --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/english.xml @@ -0,0 +1,1682 @@ + + + + + + + + + +]> + + + + + + unable to open image + + + unable to open file + + + unable to read blob + + + unable to write blob + + + unrecognized image format + + + zero-length blob not permitted + + + + + + + cache resources exhausted + + + incompatible API + + + no pixels defined in cache + + + pixel cache is not open + + + pixels are not authentic + + + unable to clone cache + + + unable to extend cache + + + unable to get cache nexus + + + unable to open pixel cache + + + unable to persist pixel cache + + + unable to read pixel cache + + + unable to write pixel cache + + + + + unable to acquire cache view + + + unable to extend pixel cache + + + + + + + colormap type not supported + + + colorspace model is not supported + + + compression not supported + + + data encoding scheme is not supported + + + data storage type is not supported + + + delta-PNG is not supported + + + encrypted WPG image file not supported + + + fractal compression not supported + + + image column or row size is not supported + + + image does not have a clip mask + + + image does not have an alpha channel + + + image does not have a EXIF thumbnail + + + image is not tiled + + + irregular channel geometry not supported + + + JNG compression not supported + + + JPEG compression not supported + + + JPEG embedding failed + + + location type is not supported + + + map storage type is not supported + + + multi-dimensional matrices are not supported + + + multiple record list not supported + + + no bitmap on clipboard + + + no APP1 data is available + + + no 8BIM data is available + + + no color profile is available + + + no data returned + + + no image vector graphics; unable to generate SVG + + + no IPTC profile available + + + number of images is not supported + + + only continuous tone picture supported + + + only level zero files Supported + + + PNG compression not supported + + + RLE compression not supported + + + unable to copy profile + + + unable to create bitmap + + + unable to create a DC + + + unable to decompress image + + + unable to write MPEG parameters + + + unable to zip-compress image + + + ZIP compression not supported + + + + + exif profile size exceeds limit and will be truncated + + + lossless to lossy JPEG conversion + + + + + + + include element nested too deeply + + + + + unable to access configure file + + + unable to open module file + + + + + + + + an error has occurred reading from file + + + an error has occurred writing to file + + + cipher support not enabled + + + colormap exceeded 256 colors + + + corrupt image + + + file format version mismatch + + + image depth not supported + + + image file does not contain any image data + + + image type not supported + + + improper image header + + + insufficient image data in file + + + invalid colormap index + + + invalid pixel + + + length and filesize do not match + + + maximum channels exceeded + + + missing image channel + + + negative or zero image size + + + non OS2 BMP header size less than 40 + + + not enough pixel data + + + not enough tiles found in level + + + too much image data in file + + + static planes value not equal to 1 + + + unable to read extension block + + + unable to read image header + + + unable to read image data + + + unable to runlength decode image + + + unable to uncompress image + + + unexpected end-of-file + + + unexpected sampling factor + + + unknown pattern type + + + unrecognized alpha channel option + + + unrecognized bits per pixel + + + unrecognized compression + + + unrecognized number of colors + + + + + unable to persist key + + + + + insufficient image data in file + + + length and filesize do not match + + + corrupt PCD image, skipping to sync byte + + + + + + + + delegate failed + + + failed to compute output size + + + failed to render file + + + failed to scan file + + + no tag found + + + PCL delegate failed + + + Postscript delegate failed + + + unable to create image + + + unable to decode image file + + + unable to encode image file + + + unable to initialize FPX library + + + unable to initialize WMF library + + + unable to manage JP2 stream + + + unable to read aspect ratio + + + unable to read summary info + + + unable to set affine matrix + + + unable to set aspect ratio + + + unable to set color twist + + + unable to set contrast + + + unable to set filtering value + + + unable to set image title + + + unable to set JPEG level + + + unable to set region of interest + + + unable to set summary info + + + unable to write SVG format + + + XPS delegate failed + + + + + + + already pushing pattern definition + + + non-conforming drawing primitive definition + + + not a relative URL + + + not currently pushing pattern definition + + + segment stack overflow + + + too many bezier coordinates + + + unable to print + + + unbalanced graphic context push-pop + + + URL not found + + + + + + + + an error has occurred reading from file + + + unable to create temporary file + + + unable to open file + + + unable to write file + + + + + + + + angle is discontinuous + + + colormapped image required + + + color separated image required + + + color profile operates on another colorspace + + + image depth not supported + + + image morphology differs + + + image list is required + + + image size differs + + + images too dissimilar + + + left and right image sizes differ + + + negative or zero image size + + + no images were found + + + no images were loaded + + + too many cluster + + + unable to create color transform + + + width or height exceeds limit + + + + + associate profile with image, a source and destination color profile required for transform + + + + + + + filter failed + + + + + + + + delegate library support not built-in + + + no decode delegate for this image format + + + no encode delegate for this image format + + + + + delegate library support not built-in + + + FreeType library is not available + + + LCMS color profile library is not available + + + no encode delegate for this image format + + + + + + + + image coder signature mismatch + + + image filter signature mismatch + + + unable to load module + + + unable to register image format + + + + + unable to initialize module loader + + + + + unable to close module + + + + + + + + not authorized + + + + + + + unable to get registry ID + + + unable to set registry + + + + + + + + pixel cache allocation failed + + + memory allocation failed + + + too many objects + + + unable to acquire string + + + unable to allocate colormap + + + unable to convert font + + + unable to create colormap + + + unable to dither image + + + unable to clone package info + + + unable to get package info + + + + + time limit exceeded + + + unable to allocate dash pattern + + + unable to allocate derivates + + + unable to allocate gamma map + + + unable to allocate image + + + unable to allocate image pixels + + + unable to destroy semaphore + + + unable to instantiate semaphore + + + unable to allocate string + + + Memory allocation failed + + + unable to concatenate string + + + unable to convert text + + + unable to create colormap + + + unable to clone image + + + unable to display image + + + unable to escape string + + + unable to interpret MSL image + + + unable to lock semaphore + + + unable to unlock semaphore + + + + + memory allocation failed + + + + + + + + font substitution required + + + unable to get type metrics + + + unable to initialize freetype library + + + unable to read font + + + unrecognized font encoding + + + + + unable to read font + + + + + + + image does not contain the stream geometry + + + no stream handler is defined + + + pixel cache is not open + + + + + + + invalid colormap index + + + zero region size + + + unable to open file + + + wand quantum depth does not match that of the core API + + + wand contains no images + + + wand contains no iterators + + + + + + + color is not known to server + + + no window with specified ID exists + + + standard Colormap is not initialized + + + unable to connect to remote display + + + unable to create bitmap + + + unable to create colormap + + + unable to create pixmap + + + unable to create property + + + unable to create standard colormap + + + unable to display image info + + + unable to get property + + + unable to get Standard Colormap + + + unable to get visual + + + unable to grab mouse + + + unable to load font + + + unable to match visual to Standard Colormap + + + unable to open X server + + + unable to read X window attributes + + + unable to read X window image + + + unrecognized colormap type + + + unrecognized gravity type + + + unrecognized visual specifier + + + + + unable to create X cursor + + + unable to create graphic context + + + unable to create standard colormap + + + unable to create text property + + + unable to create X window + + + unable to create X image + + + unable to create X pixmap + + + unable to display image + + + unable to get visual + + + unable to get pixel info + + + unable to load font + + + unable to make X window + + + unable to open X server + + + unable to view fonts + + + + + using default visual + + + unable to get visual + + + + + + + + add noise to image + + + + + append image sequence + + + + + assign image colors + + + + + average image sequence + + + + + chop image + + + + + classify image colors + + + + + replace color in image + + + + + colorize image + + + + + combine image + + + + + contrast-stretch image + + + + + convolve image + + + + + crop image + + + + + decode image + + + + + despeckle image + + + + + distort image + + + + + dither image colors + + + + + dull image contrast + + + + + encode image + + + + + equalize image + + + + + flip image + + + + + flop image + + + + + add frame to image + + + + + fx image + + + + + gamma correct image + + + + + compute image histogram + + + + + implode image + + + + + level image + + + + + load image + + + load images + + + + + magnfiy image + + + + + filter image with neighborhood ranking + + + + + minify image + + + + + modulate image + + + + + mogrify image + + + + + montage image + + + + + morph image sequence + + + + + mosaic image + + + + + negate image + + + + + oil paint image + + + + + set opaque color in image + + + + + plasma image + + + + + preview image + + + + + raise image + + + + + recolor color image + + + + + reduce image colors + + + + + reduce the image noise + + + + + render image + + + + + resize image + + + + + RGB transform image + + + + + roll image + + + + + rotate image + + + + + sample image + + + + + save image + + + save images + + + + + scale image + + + + + segment image + + + + + extract a channel from image + + + + + sepia-tone image + + + + + shade image + + + + + sharpen image + + + + + sharpen image contrast + + + + + sigmoidal contrast image + + + + + solarize image + + + + + splice image + + + + + spread image + + + + + stegano image + + + + + stereo image + + + + + swirl image + + + + + texture image + + + + + threshold image + + + + + tile image + + + + + tint image + + + + + transform RGB image + + + + + set transparent color in image + + + + + wave image + + + + + write image + + + + + x shear image + + + + + y shear image + + + + diff --git a/share/doc/ImageMagick-7/www/source/examples.pl b/share/doc/ImageMagick-7/www/source/examples.pl new file mode 100644 index 0000000..49a02c1 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/examples.pl @@ -0,0 +1,460 @@ +#!/usr/bin/perl +# +# Overall demo of the major PerlMagick methods. +# +use Image::Magick; + +# +# Read model & smile image. +# +print "Read...\n"; +$null=Image::Magick->new; +$null->Set(size=>'70x70'); +$x=$null->ReadImage('NULL:black'); +warn "$x" if "$x"; + +$model=Image::Magick->new(); +$x=$model->ReadImage('model.gif'); +warn "$x" if "$x"; +$model->Label('Magick'); +$model->Set(background=>'white'); + +$smile=Image::Magick->new; +$x=$smile->ReadImage('smile.gif'); +warn "$x" if "$x"; +$smile->Label('Smile'); +$smile->Set(background=>'white'); +# +# Create image stack. +# +print "Transform image...\n"; +$images=Image::Magick->new(); + +print "Adaptive Blur...\n"; +$example=$model->Clone(); +$example->Label('Adaptive Blur'); +$example->AdaptiveBlur('0x1'); +push(@$images,$example); + +print "Adaptive Resize...\n"; +$example=$model->Clone(); +$example->Label('Adaptive Resize'); +$example->AdaptiveResize('60%'); +push(@$images,$example); + +print "Adaptive Sharpen...\n"; +$example=$model->Clone(); +$example->Label('Adaptive Sharpen'); +$example->AdaptiveSharpen('0x1'); +push(@$images,$example); + +print "Adaptive Threshold...\n"; +$example=$model->Clone(); +$example->Label('Adaptive Threshold'); +$example->AdaptiveThreshold('5x5+5%'); +push(@$images,$example); + +print "Add Noise...\n"; +$example=$model->Clone(); +$example->Label('Add Noise'); +$example->AddNoise("Laplacian"); +push(@$images,$example); + +print "Annotate...\n"; +$example=$model->Clone(); +$example->Label('Annotate'); +$example->Annotate(text=>'Magick',geometry=>'+0+20',font=>'Generic.ttf', + fill=>'gold',gravity=>'North',pointsize=>14); +push(@$images,$example); + +print "Auto-gamma...\n"; +$example=$model->Clone(); +$example->Label('Auto Gamma'); +$example->AutoGamma(); +push(@$images,$example); + +print "Auto-level...\n"; +$example=$model->Clone(); +$example->Label('Auto Level'); +$example->AutoLevel(); +push(@$images,$example); + +print "Blur...\n"; +$example=$model->Clone(); +$example->Label('Blur'); +$example->Blur('0.0x1.0'); +push(@$images,$example); + +print "Border...\n"; +$example=$model->Clone(); +$example->Label('Border'); +$example->Border(geometry=>'6x6',color=>'gold'); +push(@$images,$example); + +print "Channel...\n"; +$example=$model->Clone(); +$example->Label('Channel'); +$example->Channel(channel=>'red'); +push(@$images,$example); + +print "Charcoal...\n"; +$example=$model->Clone(); +$example->Label('Charcoal'); +$example->Charcoal('0x1'); +push(@$images,$example); + +print "ColorMatrix...\n"; +$example=$model->Clone(); +$example->Label('ColorMatrix'); +$example->ColorMatrix([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0.5, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); +push(@$images,$example); + +print "Composite...\n"; +$example=$model->Clone(); +$example->Label('Composite'); +$example->Composite(image=>$smile,compose=>'over',geometry=>'+35+65'); +push(@$images,$example); + +print "Contrast...\n"; +$example=$model->Clone(); +$example->Label('Contrast'); +$example->Contrast(); +push(@$images,$example); + +print "Contrast Stretch...\n"; +$example=$model->Clone(); +$example->Label('Contrast Stretch'); +$example->ContrastStretch('5%'); +push(@$images,$example); + +print "Convolve...\n"; +$example=$model->Clone(); +$example->Label('Convolve'); +$example->Convolve([1, 1, 1, 1, 4, 1, 1, 1, 1]); +push(@$images,$example); + +print "Crop...\n"; +$example=$model->Clone(); +$example->Label('Crop'); +$example->Crop(geometry=>'80x80+25+50'); +$example->Set(page=>'0x0+0+0'); +push(@$images,$example); + +print "Despeckle...\n"; +$example=$model->Clone(); +$example->Label('Despeckle'); +$example->Despeckle(); +push(@$images,$example); + +print "Distort...\n"; +$example=$model->Clone(); +$example->Label('Distort'); +$example->Distort(method=>'arc',points=>[60],'virtual-pixel'=>'white'); +push(@$images,$example); + +print "Draw...\n"; +$example=$model->Clone(); +$example->Label('Draw'); +$example->Draw(fill=>'none',stroke=>'gold',primitive=>'circle', + points=>'60,90 60,120',strokewidth=>2); +push(@$images,$example); + +print "Detect Edges...\n"; +$example=$model->Clone(); +$example->Label('Detect Edges'); +$example->Edge(); +push(@$images,$example); + +print "Emboss...\n"; +$example=$model->Clone(); +$example->Label('Emboss'); +$example->Emboss('0x1'); +push(@$images,$example); + +print "Equalize...\n"; +$example=$model->Clone(); +$example->Label('Equalize'); +$example->Equalize(); +push(@$images,$example); + +print "Implode...\n"; +$example=$model->Clone(); +$example->Label('Explode'); +$example->Implode(-1); +push(@$images,$example); + +print "Flip...\n"; +$example=$model->Clone(); +$example->Label('Flip'); +$example->Flip(); +push(@$images,$example); + +print "Flop...\n"; +$example=$model->Clone(); +$example->Label('Flop'); +$example->Flop(); +push(@$images,$example); + +print "Frame...\n"; +$example=$model->Clone(); +$example->Label('Frame'); +$example->Frame('15x15+3+3'); +push(@$images,$example); + +print "Fx...\n"; +$example=$model->Clone(); +$example->Label('Fx'); +push(@$images,$example->Fx(expression=>'0.5*u')); + +print "Gamma...\n"; +$example=$model->Clone(); +$example->Label('Gamma'); +$example->Gamma(1.6); +push(@$images,$example); + +print "Gaussian Blur...\n"; +$example=$model->Clone(); +$example->Label('Gaussian Blur'); +$example->GaussianBlur('0.0x1.5'); +push(@$images,$example); + +print "Gradient...\n"; +$gradient=Image::Magick->new; +$gradient->Set(size=>'130x194'); +$x=$gradient->ReadImage('gradient:#20a0ff-#ffff00'); +warn "$x" if "$x"; +$gradient->Label('Gradient'); +push(@$images,$gradient); + +print "Grayscale...\n"; +$example=$model->Clone(); +$example->Label('Grayscale'); +$example->Set(type=>'grayscale'); +push(@$images,$example); + +print "Implode...\n"; +$example=$model->Clone(); +$example->Label('Implode'); +$example->Implode(0.5); +push(@$images,$example); + +print "Level...\n"; +$example=$model->Clone(); +$example->Label('Level'); +$example->Level('20%'); +push(@$images,$example); + +print "Median Filter...\n"; +$example=$model->Clone(); +$example->Label('Median Filter'); +$example->MedianFilter(); +push(@$images,$example); + +print "Modulate...\n"; +$example=$model->Clone(); +$example->Label('Modulate'); +$example->Modulate(brightness=>110,saturation=>110,hue=>110); +push(@$images,$example); +$example=$model->Clone(); + +print "Monochrome...\n"; +$example=$model->Clone(); +$example->Label('Monochrome'); +$example->Quantize(colorspace=>'gray',colors=>2,dither=>'false'); +push(@$images,$example); + +print "Morphology...\n"; +$example=$model->Clone(); +$example->Label('Morphology'); +$example->Morphology(method=>'Dilate',kernel=>'Diamond',iterations=>3); +push(@$images,$example); + +print "Motion Blur...\n"; +$example=$model->Clone(); +$example->Label('Motion Blur'); +$example->MotionBlur('0x13+10-10'); +push(@$images,$example); + +print "Negate...\n"; +$example=$model->Clone(); +$example->Label('Negate'); +$example->Negate(); +push(@$images,$example); + +print "Normalize...\n"; +$example=$model->Clone(); +$example->Label('Normalize'); +$example->Normalize(); +push(@$images,$example); + +print "Oil Paint...\n"; +$example=$model->Clone(); +$example->Label('Oil Paint'); +$example->OilPaint(); +push(@$images,$example); + +print "Plasma...\n"; +$plasma=Image::Magick->new; +$plasma->Set(size=>'130x194'); +$x=$plasma->ReadImage('plasma:fractal'); +warn "$x" if "$x"; +$plasma->Label('Plasma'); +push(@$images,$plasma); + +print "Polaroid...\n"; +$example=$model->Clone(); +$example->Label('Polaroid'); +$example->Polaroid(caption=>'Magick',rotate=>-5.0,gravity=>'center'); +push(@$images,$example); + +print "Quantize...\n"; +$example=$model->Clone(); +$example->Label('Quantize'); +$example->Quantize(); +push(@$images,$example); + +print "Radial Blur...\n"; +$example=$model->Clone(); +$example->Label('Radial Blur'); +$example->RadialBlur(10); +push(@$images,$example); + +print "Raise...\n"; +$example=$model->Clone(); +$example->Label('Raise'); +$example->Raise('10x10'); +push(@$images,$example); + +print "Reduce Noise...\n"; +$example=$model->Clone(); +$example->Label('Reduce Noise'); +$example->ReduceNoise(); +push(@$images,$example); + +print "Resize...\n"; +$example=$model->Clone(); +$example->Label('Resize'); +$example->Resize('60%'); +push(@$images,$example); + +print "Roll...\n"; +$example=$model->Clone(); +$example->Label('Roll'); +$example->Roll(geometry=>'+20+10'); +push(@$images,$example); + +print "Rotate...\n"; +$example=$model->Clone(); +$example->Label('Rotate'); +$example->Rotate(45); +push(@$images,$example); + +print "Sample...\n"; +$example=$model->Clone(); +$example->Label('Sample'); +$example->Sample('60%'); +push(@$images,$example); + +print "Scale...\n"; +$example=$model->Clone(); +$example->Label('Scale'); +$example->Scale('60%'); +push(@$images,$example); + +print "Segment...\n"; +$example=$model->Clone(); +$example->Label('Segment'); +$example->Segment(); +push(@$images,$example); + +print "Shade...\n"; +$example=$model->Clone(); +$example->Label('Shade'); +$example->Shade(geometry=>'30x30',gray=>'true'); +push(@$images,$example); + +print "Sharpen...\n"; +$example=$model->Clone(); +$example->Label('Sharpen'); +$example->Sharpen('0.0x1.0'); +push(@$images,$example); + +print "Shave...\n"; +$example=$model->Clone(); +$example->Label('Shave'); +$example->Shave('10x10'); +push(@$images,$example); + +print "Shear...\n"; +$example=$model->Clone(); +$example->Label('Shear'); +$example->Shear('-20x20'); +push(@$images,$example); + +print "Sketch...\n"; +$example=$model->Clone(); +$example->Label('Sketch'); +$example->Set(colorspace=>'Gray'); +$example->Sketch('0x20+120'); +push(@$images,$example); + +print "Sigmoidal Contrast...\n"; +$example=$model->Clone(); +$example->Label('Sigmoidal Contrast'); +$example->SigmoidalContrast("3x50%"); +push(@$images,$example); + +print "Spread...\n"; +$example=$model->Clone(); +$example->Label('Spread'); +$example->Spread(); +push(@$images,$example); + +print "Solarize...\n"; +$example=$model->Clone(); +$example->Label('Solarize'); +$example->Solarize(); +push(@$images,$example); + +print "Swirl...\n"; +$example=$model->Clone(); +$example->Label('Swirl'); +$example->Swirl(90); +push(@$images,$example); + +print "Unsharp Mask...\n"; +$example=$model->Clone(); +$example->Label('Unsharp Mask'); +$example->UnsharpMask('0.0x1.0'); +push(@$images,$example); + +print "Vignette...\n"; +$example=$model->Clone(); +$example->Label('Vignette'); +$example->Vignette('0x20'); +push(@$images,$example); + +print "Wave...\n"; +$example=$model->Clone(); +$example->Label('Wave'); +$example->Wave('25x150'); +push(@$images,$example); +# +# Create image montage. +# +print "Montage...\n"; +$montage=$images->Montage(geometry=>'128x160+8+4>',gravity=>'Center', + tile=>'5x+10+200',compose=>'over',background=>'#ffffff', + font=>'Generic.ttf',pointsize=>18,fill=>'#600',stroke=>'none', + shadow=>'true'); + +$logo=Image::Magick->new(); +$logo->Read('logo:'); +$logo->Zoom('40%'); +$montage->Composite(image=>$logo,gravity=>'North'); + +print "Write...\n"; +$montage->Set(matte=>'false'); +$montage->Write('demo.jpg'); +print "Display...\n"; +$montage->Write('win:'); diff --git a/share/doc/ImageMagick-7/www/source/francais.xml b/share/doc/ImageMagick-7/www/source/francais.xml new file mode 100644 index 0000000..2f7c700 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/francais.xml @@ -0,0 +1,1664 @@ + + + + + + + + + +]> + + + + + + impossible d'ouvrir l'image + + + impossible d'ouvrir le fichier + + + impossible de lire un blob + + + impossible d'écrire un blob + + + format d'image non reconnu + + + blob de taille nulle non autorisé + + + + + + + Ressources du cache épuisées + + + incompatible API + + + pas de pixels définis dans le cache + + + cache pixels non ouvert + + + pixels are not authentic + + + impossible de clôner le cache + + + impossible d'étendre le cache + + + impossible de récupérer le nexus du cache + + + impossible d'ouvrir le cache pixels + + + impossible de rendre persistant le cache pixels + + + impossible de lire le cache pixels + + + impossible d'écrire le cache pixels + + + + + échec allocation cache view + + + impossible extend le cache pixels + + + + + + + table de couleurs non supportée + + + espace colorimétrique non supporté + + + schéma d'encodage de données non supporté + + + type de stockage de données non supporté + + + delta-PNG non supporté + + + image WPG encryptée non supportée + + + compression Fractal non supportée + + + nombre de lignes ou de colonnes dans l'image non supporté + + + image sans masque de coupe + + + image sans vignette EXIF + + + l'image n'a pas de canal de transparence + + + l'image n'a pas tiled + + + irregular channel geometry not supported + + + compression JNG non supportée + + + compression JPEG non supportée + + + Échec incorporation JPEG + + + Type d'emplacement non supporté + + + Map storage type is not supported + + + Matrices multi-dimensionnelles non supportées + + + Liste à enregistrements multiples non supportée + + + pas de bitmap dans le presse-papier + + + pas de données APP1 disponibles + + + pas de données 8BIM disponibles + + + pas de profil colorimétrique disponible + + + aucune donnée fournie + + + aucune image définie + + + pas d'image en graphique vectoriel; unable to generate SVG + + + pas de profil IPTC disponible + + + nombre d'images non supporté + + + seules les images à tons continus sont supportées + + + seuls les fichiers de niveau zéro sont supportés + + + compression PNG non supportée + + + compression RLE non supportée + + + impossible de copier le profil + + + impossible de créer la bitmap + + + impossible de créer un DC + + + impossible de décompresser l'image + + + impossible d'écrire les paramètres MPEG + + + impossible de compresser l'image en zip + + + Fichier image RLE non supporté + + + compression ZIP non supportée + + + + + Conversion JPEG sans perte vers JPEG avec perte + + + + + + + trop de niveau d'inclusion d'éléments + + + + + impossible d'accéder au fichier de configuration + + + impossible d'ouvrir le fichier de module + + + + + + + + Une erreur est survenue lors de la lecture du fichier + + + Une erreur est survenue lors de l'écriture dans un fichier + + + cipher support not enabled + + + Table de couleurs a plus que 256 couleurs + + + Image corrompue + + + erreur sur la version du format de fichier + + + profondeur d'image non supportée + + + le fichier image ne contient pas de données d'image + + + type d'image non supporté + + + En-tête d'image incorrect + + + Pas assez de données d'image dans le fichier + + + Index dans la table de couleurs invalide + + + Pixel invalide + + + Longueur et taille du fichier ne correspondent pas + + + maximum de canals dépassent les + + + absence l'image canel + + + Taille d'image négative ou nulle + + + Taille en-tête BMP non-OS2 plus petite que 40 + + + Pas assez de données pixel + + + Pas assez de tuiles trouvées à ce niveau + + + Trop de données d'image dans le fichier + + + Valeur statique des plans différente de 1 + + + impossible de lire le bloc d'extension + + + impossible de lire l'en-tête de l'image + + + impossible de lire les données de l'image + + + impossible de décoder l'image avec « runlength » + + + impossible de décompresser l'image + + + fin de fichier inattendue + + + facteur d'échantillonnage inattendu + + + type de motif inconnu + + + alpha de canal l'option non reconnus + + + bits par pixel non reconnus + + + compression non reconnue + + + nombre de couleurs non reconnu + + + + + impossible de rendre la clé persistante + + + + + pas assez de données d'image dans le fichier + + + Longueur et taille du fichier ne correspondent pas + + + Image PCD corrompue, saut à l'octet de synchronisation + + + + + + + + Échec de la délégation + + + Impossible de calculer la taille en sortie + + + Impossible de générer le fichier + + + Impossible de lire le fichier + + + pas de balise trouvée + + + Échec délégation PCL + + + Échec délégation Postscript + + + impossible de créer l'image + + + impossible de décoder le fichier d'image + + + impossible d'encoder le fichier d'image + + + impossible d'initialiser la librairie FPX + + + impossible d'initialiser la librairie WMF + + + impossible de gérer un flux JP2 + + + impossible de lire le ratio d'aspect + + + impossible de lire le résumé des informations + + + impossible de fixer la matrice affine + + + impossible de fixer le ratio d'aspect + + + impossible de fixer la torsion de couleur + + + impossible de fixer le contraste + + + impossible de fixer la valeur du filtre + + + impossible de fixer le titre de l'image + + + impossible de fixer le niveau JPEG + + + impossible de fixer la zone d'intérêt + + + impossible de fixer le résumé des informations + + + impossible d'écrire au format SVG + + + Échec délégation XPS + + + + + + + Définition de motif déjà fixée + + + Définition de primitive de dessin non conforme + + + URL non relative + + + Actuellement pas de définition de motif + + + Débordement pile de segments + + + Trop de coordonnées bézier + + + impossible d'imprimer + + + erreur d'imbrication des contextes graphiques + + + URL inaccessible + + + + + + + + an error has occurred reading from file + + + impossible de créer un fichier temporaire + + + impossible d'ouvrir le fichier + + + impossible d'enregistrer le fichier + + + + + + + + filter failed + + + + + + + angle discontinu + + + Image avec table de couleurs requise + + + Image avec couleurs séparées requise + + + Le profil colorimétrique ne peut fonctionner que dans un autre espace colorimétrique + + + différences dans les espaces colorimétriques de l'image + + + profondeur d'image non supportée + + + différences dans la morphology de l'image + + + une liste d'images est requise + + + différences dans la taille de l'image + + + images too dissimilar + + + différences dans les tailles des images gauche et droite + + + Taille d'image négative ou nulle + + + aucune image trouvée + + + aucune image chargée + + + trop de grappes + + + impossible de créer la transformation de couleurs + + + Largeur ou hauteur dépassent les limites + + + + + associate profile with image, a source and destination color profile required for transform + + + + + + + + delegate library support not built-in + + + pas de délégué pour décoder ce format d'image + + + pas de délégué pour encoder ce format d'image + + + + + delegate library support not built-in + + + pas de délégué pour encoder ce format d'image + + + + + + + + image coder signature mismatch + + + image filter signature mismatch + + + impossible de charger le module + + + impossible d'enregister le format d'image + + + + + impossible d'initialiser le chargeur de module + + + + + impossible de fermer le module + + + + + + + + not authorized + + + + + + + impossible de trouver l'identifiant de registre + + + impossible de fixer le registre + + + + + + + + Échec allocation du cache pixel + + + Échec allocation mémoire + + + too many objects + + + échec acquisition de la chaine + + + échec allocation table de couleurs + + + échec conversion police de caractères + + + échec création table de couleurs + + + échec tramage de l'image + + + impossible de cloner les informations du paquet + + + impossible de récupérer les informations du paquet + + + + + time limit exceeded + + + impossible d'allouer le motif de traits + + + échec d'allocation des dérivées + + + échec allocation table gamma + + + échec allocation image + + + échec allocation pixels de l'image + + + échec allocation informations sémaphore + + + échec allocation chaine + + + Échec allocation mémoire + + + impossible de concatener la chaine + + + impossible de convertir le texte + + + impossible de créer la table de couleurs + + + impossible de cloner l'image + + + impossible d'afficher l'image + + + impossible de rendre la chaine compatible + + + impossible d'interpréter l'image MSL + + + + + échec allocation mémoire + + + + + + + + substitution de police de caractères nécessaire + + + impossible de déterminer le type de métriques + + + impossible d'initialiser la librairie freetype + + + impossible de lire la police de caractères + + + encodage de la police de caractères non reconnu + + + + + impossible de lire la police de caractères + + + + + + + l'image de contient pas la géométrie du flux + + + pas de gestionnaire de flux défini + + + Cache pixel non ouvert + + + + + + + index invalide dans la table de couleurs + + + région de taille nulle + + + impossible d'ouvrir le fichier + + + la profondeur du quantum pour Wand ne correspond pas à celle de l'API principale + + + Pas d'images pour Wand + + + Pas d'itérateur pour Wand + + + + + + + couleur inconnue du serveur + + + aucune fenêtre avec l'ID spécifié + + + la table de couleurs standard n'est pas initialisée + + + impossible de se connecter au display distant + + + impossible de créer la bitmap + + + impossible de créer la table de couleurs + + + impossible de créer la pixmap + + + impossible de créer la propriété + + + impossible de créer la table de couleurs standard + + + impossible d'afficher les informations de l'image + + + impossible de récupérer la propriété + + + impossible de récupérer la table de couleurs standard + + + impossible de récupérer le visuel + + + unable to grab mouse + + + impossible de charger la police de caractères + + + impossible d'établir la correspondance entre le visuel et la table de couleurs standard + + + impossible de se connecter au serveur X + + + impossible de lire les attributs de la fenêtre X + + + impossible de lire l'image de la fenêtre X + + + type de table de couleurs non reconnnu + + + type de gravité non reconnu + + + spécification de visuel non reconnue + + + + + impossible de créer le curseur X + + + impossible de créer le contexte graphique + + + impossible de créer la table de couleurs standard + + + impossible de créer le propriété texte + + + impossible de créer la fenêtre X + + + impossible de créer l'image X + + + impossible de créer la pixmap X + + + impossible d'afficher l'image + + + impossible de récupérer le visuel + + + impossible de récupérer les informations de pixel + + + impossible de charger la police de caractères + + + impossible de créer la fenêtre X + + + impossible de se connecter au serveur X + + + impossible d'afficher les polices de caractères + + + + + utilisation du visuel par défaut + + + impossible de récupérer le visuel + + + + + + + + Ajouter du bruit à l'image + + + + + Ajouter à la séquence d'images + + + + + Affecter les couleurs de l'image + + + + + Moyenner la séquence d'images + + + + + Cisailler l'image + + + + + Classifier les couleurs de l'image + + + + + Remplacer une couleur dans l'image + + + + + Coloriser l'image + + + + + Combiner l'image + + + + + Contrast-stretch l'image + + + + + Convolution de l'image + + + + + Couper une zone rectangulaire de l'image + + + + + Décoder l'image + + + + + Flou intérieur de l'image + + + + + Distortion de l'image + + + + + Tramer les couleurs de l'image + + + + + Réduire le brillant du contraste de l'image + + + + + encode l'image + + + + + Egaliser l'image + + + + + Réflection verticale de l'image + + + + + Réflection horizontale de l'image + + + + + Ajouter un cadre à l'image + + + + + Appliquer une expression mathématique à l'image + + + + + Correction gamma de l'image + + + + + Calculer l'histogramme de l'image + + + + + Condenser les pixels de l'image autour du centre + + + + + Ajuster le niveau de contraste de l'image + + + + + Charger l'image + + + Charger les images + + + + + Magnfiy image + + + + + Filter image with neighborhood ranking + + + + + Minify image + + + + + Modulate image + + + + + Mogrify image + + + + + Montage image + + + + + Morphing de la séquence d'images + + + + + Mosaic image + + + + + Negate image + + + + + Effet peinture à l'huile pour l'image + + + + + Fixer la couleur opage dans l'image + + + + + Plasma image + + + + + Aperçu de l'image + + + + + Raise image + + + + + Re-coloriser une image couleur + + + + + Réduire le nombre de couleurs de l'image + + + + + Réduire le bruit de l'image + + + + + Render image + + + + + Redimensionner l'image + + + + + Transformation RVB de l'image + + + + + Roll image + + + + + Rotation de l'image + + + + + Sample image + + + + + Enregistrer l'image + + + Enregistrer les images + + + + + Échelle de l'image + + + + + Segmenter l'image + + + + + Extraire un canal de l'image + + + + + Effet ton sépia pour l'image + + + + + Ombrer l'image + + + + + Augmenter la netteté de l'image + + + + + Augmenter la netteté du contraste de l'image + + + + + Sigmoidal contrast image + + + + + Effet solariation pour l'image + + + + + Splice image + + + + + Spread image + + + + + Effet stégano pour l'image + + + + + Effet stéréo pour l'image + + + + + Swirl image + + + + + Texturer l'image + + + + + Appliquer un seuil à l'image + + + + + Effet tuiles pour l'image + + + + + Tint image + + + + + Transformation RVB de l'image + + + + + Choisir la couleur transparente dans l'image + + + + + Effet vagues pour l'image + + + + + write image + + + + + X Shear image + + + + + Y Shear image + + + + diff --git a/share/doc/ImageMagick-7/www/source/incantation.msl b/share/doc/ImageMagick-7/www/source/incantation.msl new file mode 100644 index 0000000..b593a47 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/incantation.msl @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/locale.xml b/share/doc/ImageMagick-7/www/source/locale.xml new file mode 100644 index 0000000..d593fba --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/locale.xml @@ -0,0 +1,48 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/log.xml b/share/doc/ImageMagick-7/www/source/log.xml new file mode 100644 index 0000000..8a29099 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/log.xml @@ -0,0 +1,80 @@ + + + + + + + + + +]> + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/magic.xml b/share/doc/ImageMagick-7/www/source/magic.xml new file mode 100644 index 0000000..7f17731 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/magic.xml @@ -0,0 +1,23 @@ + + + + + + +]> + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/mgk.c b/share/doc/ImageMagick-7/www/source/mgk.c new file mode 100644 index 0000000..8e3d5c3 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/mgk.c @@ -0,0 +1,450 @@ +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% M M GGGG K K % +% MM MM G K K % +% M M M G GG KKK % +% M M G G K K % +% M M GGG K K % +% % +% % +% Read/Write MGK Image Format. % +% % +% Software Design % +% Cristy % +% July 1992 % +% % +% % +% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization % +% dedicated to making software imaging solutions freely available. % +% % +% You may not use this file except in compliance with the License. You may % +% obtain a copy of the License at % +% % +% http://www.imagemagick.org/script/license.php % +% % +% Unless required by applicable law or agreed to in writing, software % +% distributed under the License is distributed on an "AS IS" BASIS, % +% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % +% See the License for the specific language governing permissions and % +% limitations under the License. % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +*/ + +/* + Include declarations. +*/ +#include "magick/studio.h" +#include "magick/blob.h" +#include "magick/blob-private.h" +#include "magick/cache.h" +#include "magick/colorspace.h" +#include "magick/exception.h" +#include "magick/exception-private.h" +#include "magick/image.h" +#include "magick/image-private.h" +#include "magick/list.h" +#include "magick/magick.h" +#include "magick/memory_.h" +#include "magick/monitor.h" +#include "magick/monitor-private.h" +#include "magick/quantum-private.h" +#include "magick/static.h" +#include "magick/string_.h" +#include "magick/module.h" + +/* + Forward declarations. +*/ +static MagickBooleanType + WriteMGKImage(const ImageInfo *,Image *); + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% I s M G K % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% IsMGK() returns MagickTrue if the image format type, identified by the +% magick string, is MGK. +% +% The format of the IsMGK method is: +% +% MagickBooleanType IsMGK(const unsigned char *magick,const size_t length) +% +% A description of each parameter follows: +% +% o magick: This string is generally the first few bytes of an image file +% or blob. +% +% o length: Specifies the length of the magick string. +% +*/ +static MagickBooleanType IsMGK(const unsigned char *magick,const size_t length) +{ + if (length < 7) + return(MagickFalse); + if (LocaleNCompare((char *) magick,"id=mgk",7) == 0) + return(MagickTrue); + return(MagickFalse); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% R e a d M G K I m a g e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% ReadMGKImage() reads a MGK image file and returns it. It allocates +% the memory necessary for the new Image structure and returns a pointer to +% the new image. +% +% The format of the ReadMGKImage method is: +% +% Image *ReadMGKImage(const ImageInfo *image_info, +% ExceptionInfo *exception) +% +% A description of each parameter follows: +% +% o image_info: the image info. +% +% o exception: return any errors or warnings in this structure. +% +*/ +static Image *ReadMGKImage(const ImageInfo *image_info, + ExceptionInfo *exception) +{ + char + buffer[MagickPathExtent]; + + Image + *image; + + MagickBooleanType + status; + + register ssize_t + x; + + register PixelPacket + *q; + + register unsigned char + *p; + + ssize_t + count, + y; + + size_t + columns, + rows; + + unsigned char + *pixels; + + /* + Open image file. + */ + assert(image_info != (const ImageInfo *) NULL); + assert(image_info->signature == MagickSignature); + if (image_info->debug != MagickFalse) + (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", + image_info->filename); + assert(exception != (ExceptionInfo *) NULL); + assert(exception->signature == MagickSignature); + image=AcquireImage(image_info); + status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); + if (status == MagickFalse) + { + image=DestroyImageList(image); + return((Image *) NULL); + } + /* + Read MGK image. + */ + (void) ReadBlobString(image,buffer); /* read magic number */ + if (IsMGK(buffer,7) == MagickFalse) + ThrowReaderException(CorruptImageError,"ImproperImageHeader"); + (void) ReadBlobString(image,buffer); + count=(ssize_t) sscanf(buffer,"%lu %lu\n",&columns,&rows); + if (count <= 0) + ThrowReaderException(CorruptImageError,"ImproperImageHeader"); + do + { + /* + Initialize image structure. + */ + image->columns=columns; + image->rows=rows; + image->depth=8; + if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) + if (image->scene >= (image_info->scene+image_info->number_scenes-1)) + break; + /* + Convert MGK raster image to pixel packets. + */ + if (SetImageExtent(image,0,0) == MagickFalse) + { + InheritException(exception,&image->exception); + return(DestroyImageList(image)); + } + pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns, + 3UL*sizeof(*pixels)); + if (pixels == (unsigned char *) NULL) + ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + for (y=0; y < (ssize_t) image->rows; y++) + { + count=(ssize_t) ReadBlob(image,(size_t) (3*image->columns),pixels); + if (count != (ssize_t) (3*image->columns)) + ThrowReaderException(CorruptImageError,"UnableToReadImageData"); + p=pixels; + q=QueueAuthenticPixels(image,0,y,image->columns,1,exception); + if (q == (PixelPacket *) NULL) + break; + for (x=0; x < (ssize_t) image->columns; x++) + { + SetPixelRed(q,ScaleCharToQuantum(*p++)); + SetPixelGreen(q,ScaleCharToQuantum(*p++)); + SetPixelBlue(q,ScaleCharToQuantum(*p++)); + q++; + } + if (SyncAuthenticPixels(image,exception) == MagickFalse) + break; + if ((image->previous == (Image *) NULL) && + (SetImageProgress(image,LoadImageTag,y,image->rows) == MagickFalse)) + break; + } + pixels=(unsigned char *) RelinquishMagickMemory(pixels); + if (EOFBlob(image) != MagickFalse) + { + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); + break; + } + /* + Proceed to next image. + */ + if (image_info->number_scenes != 0) + if (image->scene >= (image_info->scene+image_info->number_scenes-1)) + break; + *buffer='\0'; + (void) ReadBlobString(image,buffer); + count=(ssize_t) sscanf(buffer,"%lu %lu\n",&columns,&rows); + if (count > 0) + { + /* + Allocate next image structure. + */ + AcquireNextImage(image_info,image); + if (GetNextImageInList(image) == (Image *) NULL) + { + image=DestroyImageList(image); + return((Image *) NULL); + } + image=SyncNextImageInList(image); + if (image->progress_monitor != (MagickProgressMonitor) NULL) + { + status=SetImageProgress(image,LoadImageTag,TellBlob(image), + GetBlobSize(image)); + if (status == MagickFalse) + break; + } + } + } while (count > 0); + (void) CloseBlob(image); + return(GetFirstImageInList(image)); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% R e g i s t e r M G K I m a g e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% RegisterMGKImage() adds attributes for the MGK image format to +% the list of supported formats. The attributes include the image format +% tag, a method to read and/or write the format, whether the format +% supports the saving of more than one frame to the same file or blob, +% whether the format supports native in-memory I/O, and a brief +% description of the format. +% +% The format of the RegisterMGKImage method is: +% +% size_t RegisterMGKImage(void) +% +*/ +ModuleExport size_t RegisterMGKImage(void) +{ + MagickInfo + *entry; + + entry=SetMagickInfo("MGK"); + entry->decoder=(DecodeImageHandler *) ReadMGKImage; + entry->encoder=(EncodeImageHandler *) WriteMGKImage; + entry->magick=(IsImageFormatHandler *) IsMGK; + entry->description=ConstantString("MGK"); + entry->module=ConstantString("MGK"); + (void) RegisterMagickInfo(entry); + return(MagickImageCoderSignature); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% U n r e g i s t e r M G K I m a g e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% UnregisterMGKImage() removes format registrations made by the +% MGK module from the list of supported formats. +% +% The format of the UnregisterMGKImage method is: +% +% UnregisterMGKImage(void) +% +*/ +ModuleExport void UnregisterMGKImage(void) +{ + (void) UnregisterMagickInfo("MGK"); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % +% W r i t e M G K I m a g e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% WriteMGKImage() writes an image to a file in red, green, and blue +% MGK rasterfile format. +% +% The format of the WriteMGKImage method is: +% +% MagickBooleanType WriteMGKImage(const ImageInfo *image_info, +% Image *image) +% +% A description of each parameter follows. +% +% o image_info: the image info. +% +% o image: The image. +% +*/ +static MagickBooleanType WriteMGKImage(const ImageInfo *image_info, + Image *image) +{ + char + buffer[MagickPathExtent]; + + MagickBooleanType + status; + + MagickOffsetType + scene; + + register const PixelPacket + *p; + + register ssize_t + x; + + register unsigned char + *q; + + ssize_t + y; + + unsigned char + *pixels; + + /* + Open output image file. + */ + assert(image_info != (const ImageInfo *) NULL); + assert(image_info->signature == MagickSignature); + assert(image != (Image *) NULL); + assert(image->signature == MagickSignature); + if (image->debug != MagickFalse) + (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); + status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception); + if (status == MagickFalse) + return(status); + scene=0; + do + { + /* + Allocate memory for pixels. + */ + if (image->colorspace != RGBColorspace) + (void) SetImageColorspace(image,RGBColorspace); + pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns, + 3UL*sizeof(*pixels)); + if (pixels == (unsigned char *) NULL) + ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); + /* + Initialize raster file header. + */ + (void) WriteBlobString(image,"id=mgk\n"); + (void) FormatMagickString(buffer,MagickPathExtent,"%lu %lu\n",image->columns, + image->rows); + (void) WriteBlobString(image,buffer); + for (y=0; y < (ssize_t) image->rows; y++) + { + p=AcquireImagePixels(image,0,y,image->columns,1,&image->exception); + if (p == (const PixelPacket *) NULL) + break; + q=pixels; + for (x=0; x < (ssize_t) image->columns; x++) + { + *q++=ScaleQuantumToChar(GetRedSample(p)); + *q++=ScaleQuantumToChar(GetGreenSample(p)); + *q++=ScaleQuantumToChar(GetBlueSample(p)); + p++; + } + (void) WriteBlob(image,(size_t) (q-pixels),pixels); + if ((image->previous == (Image *) NULL) && + (SetImageProgress(image,SaveImageTag,y,image->rows) == MagickFalse)) + break; + } + pixels=(unsigned char *) RelinquishMagickMemory(pixels); + if (GetNextImageInList(image) == (Image *) NULL) + break; + image=SyncNextImageInList(image); + status=SetImageProgress(image,SaveImagesTag,scene, + GetImageListLength(image)); + if (status == MagickFalse) + break; + scene++; + } while (image_info->adjoin != MagickFalse); + (void) CloseBlob(image); + return(MagickTrue); +} diff --git a/share/doc/ImageMagick-7/www/source/mime.xml b/share/doc/ImageMagick-7/www/source/mime.xml new file mode 100644 index 0000000..9530fc8 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/mime.xml @@ -0,0 +1,1145 @@ + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/piechart.mvg b/share/doc/ImageMagick-7/www/source/piechart.mvg new file mode 100644 index 0000000..e400186 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/piechart.mvg @@ -0,0 +1,150 @@ +push graphic-context + viewbox 0 0 624 369 + affine 0.283636 0 0 0.283846 -0 -0 + push graphic-context + push graphic-context + fill 'darkslateblue' + stroke 'blue' + stroke-width 1 + rectangle 1,1 2199,1299 + pop graphic-context + push graphic-context + font-size 40 + fill 'white' + stroke-width 1 + text 600,1100 'Average: 20.0' + pop graphic-context + push graphic-context + fill 'red' + stroke 'black' + stroke-width 5 + path 'M700.0,600.0 L340.0,600.0 A360.0,360.0 0 0,1 408.1452123287954,389.2376150414973 z' + pop graphic-context + push graphic-context + font-size 40 + fill 'white' + stroke-width 1 + text 1400,140 'MagickWand for PHP' + pop graphic-context + push graphic-context + font-size 30 + fill 'white' + stroke-width 1 + text 1800,140 '(10.0%)' + pop graphic-context + push graphic-context + fill 'red' + stroke 'black' + stroke-width 4 + rectangle 1330,100 1370,140 + pop graphic-context + push graphic-context + fill 'yellow' + stroke 'black' + stroke-width 5 + path 'M700.0,600.0 L408.1452123287954,389.2376150414973 A360.0,360.0 0 0,1 976.5894480359858,369.56936567559273 z' + pop graphic-context + push graphic-context + font-size 40 + fill 'white' + stroke-width 1 + text 1400,220 'MagickCore' + pop graphic-context + push graphic-context + font-size 30 + fill 'white' + stroke-width 1 + text 1800,220 '(29.0%)' + pop graphic-context + push graphic-context + fill 'yellow' + stroke 'black' + stroke-width 4 + rectangle 1330,180 1370,220 + pop graphic-context + push graphic-context + fill 'fuchsia' + stroke 'black' + stroke-width 5 + path 'M700.0,600.0 L976.5894480359858,369.56936567559273 A360.0,360.0 0 0,1 964.2680466142854,844.4634932636567 z' + pop graphic-context + push graphic-context + font-size 40 + fill 'white' + stroke-width 1 + text 1400,300 'MagickWand' + pop graphic-context + push graphic-context + font-size 30 + fill 'white' + stroke-width 1 + text 1800,300 '(22.9%)' + pop graphic-context + push graphic-context + fill 'fuchsia' + stroke 'black' + stroke-width 4 + rectangle 1330,260 1370,300 + pop graphic-context + push graphic-context + fill 'blue' + stroke 'black' + stroke-width 5 + path 'M700.0,600.0 L964.2680466142854,844.4634932636567 A360.0,360.0 0 0,1 757.853099990584,955.3210081341651 z' + pop graphic-context + push graphic-context + font-size 40 + fill 'white' + stroke-width 1 + text 1400,380 'JMagick' + pop graphic-context + push graphic-context + font-size 30 + fill 'white' + stroke-width 1 + text 1800,380 '(10.6%)' + pop graphic-context + push graphic-context + fill 'blue' + stroke 'black' + stroke-width 4 + rectangle 1330,340 1370,380 + pop graphic-context + push graphic-context + fill 'lime' + stroke 'black' + stroke-width 5 + path 'M700.0,600.0 L757.853099990584,955.3210081341651 A360.0,360.0 0 0,1 340.0,600.0 z' + pop graphic-context + push graphic-context + font-size 40 + fill 'white' + stroke-width 1 + text 1400,460 'Magick++' + pop graphic-context + push graphic-context + font-size 30 + fill 'white' + stroke-width 1 + text 1800,460 '(27.5%)' + pop graphic-context + push graphic-context + fill 'lime' + stroke 'black' + stroke-width 4 + rectangle 1330,420 1370,460 + pop graphic-context + push graphic-context + font-size 100 + fill 'white' + stroke-width 1 + text 100,150 'ImageMagick' + pop graphic-context + push graphic-context + fill 'none' + stroke 'black' + stroke-width 5 + circle 700,600 700,960 + pop graphic-context + pop graphic-context +pop graphic-context diff --git a/share/doc/ImageMagick-7/www/source/piechart.svg b/share/doc/ImageMagick-7/www/source/piechart.svg new file mode 100644 index 0000000..cb63c22 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/piechart.svg @@ -0,0 +1,32 @@ + + + + + + Average: 20.0 + + MagickWand for PHP + (10.0%) + + + MagickCore + (29.0%) + + + MagickWand + (22.9%) + + + JMagick + (10.6%) + + + Magick++ + (27.5%) + + ImageMagick + + + diff --git a/share/doc/ImageMagick-7/www/source/policy.xml b/share/doc/ImageMagick-7/www/source/policy.xml new file mode 100644 index 0000000..d497934 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/policy.xml @@ -0,0 +1,80 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/quantization-table.xml b/share/doc/ImageMagick-7/www/source/quantization-table.xml new file mode 100644 index 0000000..fb71874 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/quantization-table.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + +]> + + + + Luma Quantization Table + + 16, 16, 16, 18, 25, 37, 56, 85, + 16, 17, 20, 27, 34, 40, 53, 75, + 16, 20, 24, 31, 43, 62, 91, 135, + 18, 27, 31, 40, 53, 74, 106, 156, + 25, 34, 43, 53, 69, 94, 131, 189, + 37, 40, 62, 74, 94, 124, 169, 238, + 56, 53, 91, 106, 131, 169, 226, 311, + 85, 75, 135, 156, 189, 238, 311, 418 + +
    + +
    + diff --git a/share/doc/ImageMagick-7/www/source/thresholds.xml b/share/doc/ImageMagick-7/www/source/thresholds.xml new file mode 100644 index 0000000..02b96a8 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/thresholds.xml @@ -0,0 +1,336 @@ + + + + + + + + + +]> + + + + + + Threshold 1x1 (non-dither) + + 1 + + + + + Checkerboard 2x1 (dither) + + 1 2 + 2 1 + + + + + + Ordered 2x2 (dispersed) + + 1 3 + 4 2 + + + + + Ordered 3x3 (dispersed) + + 3 7 4 + 6 1 9 + 2 8 5 + + + + + + Ordered 4x4 (dispersed) + + 1 9 3 11 + 13 5 15 7 + 4 12 2 10 + 16 8 14 6 + + + + + + Ordered 8x8 (dispersed) + + 1 49 13 61 4 52 16 64 + 33 17 45 29 36 20 48 32 + 9 57 5 53 12 60 8 56 + 41 25 37 21 44 28 40 24 + 3 51 15 63 2 50 14 62 + 35 19 47 31 34 18 46 30 + 11 59 7 55 10 58 6 54 + 43 27 39 23 42 26 38 22 + + + + + + Halftone 4x4 (angled) + + 4 2 7 5 + 3 1 8 6 + 7 5 4 2 + 8 6 3 1 + + + + + Halftone 6x6 (angled) + + 14 13 10 8 2 3 + 16 18 12 7 1 4 + 15 17 11 9 6 5 + 8 2 3 14 13 10 + 7 1 4 16 18 12 + 9 6 5 15 17 11 + + + + + Halftone 8x8 (angled) + + 13 7 8 14 17 21 22 18 + 6 1 3 9 28 31 29 23 + 5 2 4 10 27 32 30 24 + 16 12 11 15 20 26 25 19 + 17 21 22 18 13 7 8 14 + 28 31 29 23 6 1 3 9 + 27 32 30 24 5 2 4 10 + 20 26 25 19 16 12 11 15 + + + + + + Halftone 4x4 (orthogonal) + + 7 13 11 4 + 12 16 14 8 + 10 15 6 2 + 5 9 3 1 + + + + + Halftone 6x6 (orthogonal) + + 7 17 27 14 9 4 + 21 29 33 31 18 11 + 24 32 36 34 25 22 + 19 30 35 28 20 10 + 8 15 26 16 6 2 + 5 13 23 12 3 1 + + + + + Halftone 8x8 (orthogonal) + + 7 21 33 43 36 19 9 4 + 16 27 51 55 49 29 14 11 + 31 47 57 61 59 45 35 23 + 41 53 60 64 62 52 40 38 + 37 44 58 63 56 46 30 22 + 15 28 48 54 50 26 17 10 + 8 18 34 42 32 20 6 2 + 5 13 25 39 24 12 3 1 + + + + + + Halftone 16x16 (orthogonal) + + 4 12 24 44 72 100 136 152 150 134 98 70 42 23 11 3 + 7 16 32 52 76 104 144 160 158 142 102 74 50 31 15 6 + 19 27 40 60 92 132 168 180 178 166 130 90 58 39 26 18 + 36 48 56 80 124 176 188 204 203 187 175 122 79 55 47 35 + 64 68 84 116 164 200 212 224 223 211 199 162 114 83 67 63 + 88 96 112 156 192 216 232 240 239 231 214 190 154 111 95 87 + 108 120 148 184 208 228 244 252 251 243 226 206 182 147 119 107 + 128 140 172 196 219 235 247 256 255 246 234 218 194 171 139 127 + 126 138 170 195 220 236 248 253 254 245 233 217 193 169 137 125 + 106 118 146 183 207 227 242 249 250 241 225 205 181 145 117 105 + 86 94 110 155 191 215 229 238 237 230 213 189 153 109 93 85 + 62 66 82 115 163 198 210 221 222 209 197 161 113 81 65 61 + 34 46 54 78 123 174 186 202 201 185 173 121 77 53 45 33 + 20 28 37 59 91 131 167 179 177 165 129 89 57 38 25 17 + 8 13 29 51 75 103 143 159 157 141 101 73 49 30 14 5 + 1 9 21 43 71 99 135 151 149 133 97 69 41 22 10 2 + + + + + + + Circles 5x5 (black) + + 1 21 16 15 4 + 5 17 20 19 14 + 6 21 25 24 12 + 7 18 22 23 11 + 2 8 9 10 3 + + + + + + Circles 5x5 (white) + + 25 21 10 11 22 + 20 9 6 7 12 + 19 5 1 2 13 + 18 8 4 3 14 + 24 17 16 15 23 + + + + + Circles 6x6 (black) + + 1 5 14 13 12 4 + 6 22 28 27 21 11 + 15 29 35 34 26 20 + 16 30 36 33 25 19 + 7 23 31 32 24 10 + 2 8 17 18 9 3 + + + + + Circles 6x6 (white) + + 36 32 23 24 25 33 + 31 15 9 10 16 26 + 22 8 2 3 11 17 + 21 7 1 4 12 18 + 30 14 6 5 13 27 + 35 29 20 19 28 34 + + + + + Circles 7x7 (black) + + 3 9 18 28 17 8 2 + 10 24 33 39 32 23 7 + 19 34 44 48 43 31 16 + 25 40 45 49 47 38 27 + 20 35 41 46 42 29 15 + 11 21 36 37 28 22 6 + 4 12 13 26 14 5 1 + + + + + + Circles 7x7 (white) + + 47 41 32 22 33 42 48 + 40 26 17 11 18 27 43 + 31 16 6 2 7 19 34 + 25 10 5 1 3 12 23 + 30 15 9 4 8 20 35 + 39 29 14 13 21 28 44 + 46 38 37 24 36 45 49 + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/type-apple.xml b/share/doc/ImageMagick-7/www/source/type-apple.xml new file mode 100644 index 0000000..57fe9d1 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/type-apple.xml @@ -0,0 +1,1367 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/type-dejavu.xml b/share/doc/ImageMagick-7/www/source/type-dejavu.xml new file mode 100644 index 0000000..a60e597 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/type-dejavu.xml @@ -0,0 +1,58 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/type-ghostscript.xml b/share/doc/ImageMagick-7/www/source/type-ghostscript.xml new file mode 100644 index 0000000..5a75e83 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/type-ghostscript.xml @@ -0,0 +1,50 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/type-urw-base35.xml b/share/doc/ImageMagick-7/www/source/type-urw-base35.xml new file mode 100644 index 0000000..2f70e72 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/type-urw-base35.xml @@ -0,0 +1,50 @@ + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/type-windows.xml b/share/doc/ImageMagick-7/www/source/type-windows.xml new file mode 100644 index 0000000..6d2a3d4 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/type-windows.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/doc/ImageMagick-7/www/source/type.xml b/share/doc/ImageMagick-7/www/source/type.xml new file mode 100644 index 0000000..f21c7dd --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/type.xml @@ -0,0 +1,17 @@ + + + + + +]> + + + + diff --git a/share/doc/ImageMagick-7/www/source/wand.c b/share/doc/ImageMagick-7/www/source/wand.c new file mode 100644 index 0000000..32760a0 --- /dev/null +++ b/share/doc/ImageMagick-7/www/source/wand.c @@ -0,0 +1,55 @@ +#include +#include +#include + +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); +} diff --git a/share/doc/ImageMagick-7/www/stream.html b/share/doc/ImageMagick-7/www/stream.html new file mode 100644 index 0000000..ab83671 --- /dev/null +++ b/share/doc/ImageMagick-7/www/stream.html @@ -0,0 +1,299 @@ + + + + + + + + + + Command-line Tools: Stream @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Example Usage • Option Summary

    + +

    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.

    + +

    Example Usage

    + +

    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:

    + +
    magick stream -map rgb -storage-type char image.jpg pixels.dat
    +magick display -depth 8 -size 640x480 rgb:pixels.dat
    +
    + +

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

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

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

    Option Summary

    + +

    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
    + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/subversion.html b/share/doc/ImageMagick-7/www/subversion.html new file mode 100644 index 0000000..4424f59 --- /dev/null +++ b/share/doc/ImageMagick-7/www/subversion.html @@ -0,0 +1,95 @@ + + + + + + + + + + Subversion @ ImageMagick + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    +
    +
    +
    + +

    The ImageMagick stable and development source releases are available from Subversion. This a convenient way for developers to download the ImageMagick source, fix bugs, or add new features.

    + +

    To retrieve, or check out ImageMagick stable, use this command:

    + +
    $ svn co https://subversion.imagemagick.org/subversion/ImageMagick/branches/ImageMagick-7.0.4 ImageMagick-7.0.4
    +

    To retrieve, or check out ImageMagick development, use this command:

    + +
    
    +svn co https://subversion.imagemagick.org/subversion/ImageMagick/trunk ImageMagick
    +
    + +

    To update the sources within a previously checked out directory, execute:

    + +
    
    +svn update
    +
    + +

    and only the files which have changed are updated.

    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/support.html b/share/doc/ImageMagick-7/www/support.html new file mode 100644 index 0000000..12599bb --- /dev/null +++ b/share/doc/ImageMagick-7/www/support.html @@ -0,0 +1,184 @@ + + + + + + + + + + Support ImageMagick Development @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    Contribute a Bug Fix or Enhancement • Support the ImageMagick Project

    + + + + +

    We want to thank the following sponsors of the ImageMagick project, including:

    + +
    +
    [Network Redux] We manage everything so you don't have to

    +
    [AMD] Enabling today. Inspiring tomorrow.

    +
    [TransloadIt] The world's most versatile file uploading and processing service

    +
    [Image And Video Management In The Cloud] Image And Video Management In The Cloud.

    +
    [LeaderSSL] We enable secure connections for websites.

    +
    + +

    Contribute a Bug Fix or Enhancement

    +

    Post any ImageMagick patches to the Issues forum if you think you have found and fixed a bug or security vulnerability. Post to the Developers forum if you want to propose an enhancement for discussion.

    + +

    Support the ImageMagick Project

    + +

    ImageMagick has been available for free since the early 1990's. It has consistently been one of the most comprehensive free image processing packages available, but, unlike competing packages, it continues to be supported and enhanced. Today, ImageMagick is more comprehensive and better supported than ever.

    +

    ImageMagick has enjoyed considerable support from commercial users. Since ImageMagick is not restricted from use in commercial or proprietary applications, it is used to support thousands of commercial web sites and is used in professional digital image and movie studios as well as publishing shops. It is also used as a component of a number of commercial applications. Many of these commercial users have made contributions to ImageMagick, large and small, often anonymous, but always appreciated.

    +

    ImageMagick Studio LLC is looking for support from individuals or companies that use ImageMagick, or would like to help support free software. If you or your company depends on ImageMagick, supporting ImageMagick is a way to express your gratitude and to contribute back to the further development of ImageMagick.

    +

    ImageMagick support can take many forms. The following are some possibilities:

    +
      +
    • Contribute source code or patches to help improve ImageMagick.
    • +
    • Send us a licensed copy of Adobe Photoshop.
    • +
    • Lend us developers to add support for additional image formats or to finish integrating support for the SVG specification.
    • +
    • Extend our FFT algorithm to support non-square images.
    • +
    • Port our Unix build environment from Autoconf / Automake to CMake.
    • +
    • Provide technical writers to assist with the development of commercial-grade technical documentation.
    • +
    • Donate a quality SWOP or Eurostandard ICC profile to use as a default CMYK to RGB conversion profile.
    • +
    • Donate a workstation with a modern processor and plenty of memory and disk. We would use it for our primary development environment.
    • +
    • Donate a Windows laptop so we can build and test ImageMagick under Windows 10.
    • +
    • Make a monetary contribution:
    + +

    Donations can be anonymous, or public.

    +
    +Support the ImageMagick Project +

    Paypal

    +

    For direct monetary contributions, click on the donate button to contribute thru Paypal or with a credit card:

    + +
      +
      + + + +
      +
    + +

    Flattr

    +

    Flattr is a microdonation system. You donate a small amount every month and + click Flattr buttons on worthy sites to share the donation among those sites, similar to a tip jar (for more details see Wikipedia's Flattr article).

    +
      +
      Flattr this
      +
    +

    Litecoin

    +

    Our Litecoin Address is: LcZLAmym4EMvUPc9koagkccRLYQbsgGwmj. Or you can reference the below QR code:

    +
      +
      Click to Donate to ImageMagick via Litecoin
      +
    +

    Check

    +

    Check, in USD funds, made payable to + ImageMagick Studio LLC, and send to:

    +
      +
      ImageMagick Studio LLC
      +P.O. Box 40
      +Landenberg, PA  19350
      +USA
      +
      +
    +
    +
    +

    If you prefer a recurring subscription or if you have any questions about supporting ImageMagick, please contact us. +

    + + +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/doc/ImageMagick-7/www/wand.png b/share/doc/ImageMagick-7/www/wand.png new file mode 100644 index 0000000..f4fe5f9 Binary files /dev/null and b/share/doc/ImageMagick-7/www/wand.png differ diff --git a/share/doc/ImageMagick-7/www/webp.html b/share/doc/ImageMagick-7/www/webp.html new file mode 100644 index 0000000..ae4b8e3 --- /dev/null +++ b/share/doc/ImageMagick-7/www/webp.html @@ -0,0 +1,211 @@ + + + + + + + + + + WebP Encoding Options @ ImageMagick + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + +
    +
    +
    +
    +
    +

    ImageMagick's WebP image format accepts a plethora of encoding options as detailed below. As an example, suppose you are interested in these options:

    + +
      +
    • quality of 50
    • +
    • lossless compression
    • +
    + +

    Use this command:

    + +
    convert wizard.png -quality 50 -define webp:lossless=true wizard.webp
    +
    + +

    Here is a complete list of WebP encoding options:

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    alpha-compression=valueencode the alpha plane: 0 = none, 1 = compressed.
    alpha-filtering=valuepredictive filtering method for alpha plane: 0=none, 1=fast, 2=best.
    alpha-quality=valuethe compression value for alpha compression between 0 and 100. Lossless compression of alpha is achieved using a value of 100, while the lower values result in a lossy compression. The default is 100.
    auto-filter=true, falsewhen enabled, the algorithm spends additional time optimizing the filtering strength to reach a well-balanced quality.
    emulate-jpeg-size=true, falsereturn a similar compression to that of JPEG but with less degradation.
    filter-sharpness=valuefilter sharpness.
    filter-strength=valuethe strength of the deblocking filter, between 0 (no filtering) and 100 (maximum filtering). A value of 0 turns off any filtering. Higher values increase the strength of the filtering process applied after decoding the image. The higher the value, the smoother the image appears. Typical values are usually in the range of 20 to 50.
    filter-type=valuefilter type: 0 = simple, 1 = strong
    image-hint=default, photo, picture, graphthe hint about the image type.
    lossless=true, falseencode the image without any loss.
    low-memory=true, falsereduce memory usage.
    method=valuethe compression method to use. It controls the trade off between encoding speed and the compressed file size and quality. Possible values range from 0 to 6. Default value is 4. When higher values are utilized, the encoder spends more time inspecting additional encoding possibilities and decide on the quality gain. Lower value might result in faster processing time at the expense of larger file size and lower compression quality.
    preprocessing=valueChoose from: 0=none, 1=segment-smooth, 2=pseudo-random dithering.
    partitions=valueprogressive decoding: choose 0 to 3.
    partition-limit=valueChoose 0 for no quality degradation and 100 for maximum degradation.
    pass=valuemaximum number of passes to target compression size or PSNR.
    segment=valueChoose from 1 to 4, the maximum numbher of segments to use.
    show-compressed=true, false
    sns-strength=valuethe amplitude of the spatial noise shaping. Spatial noise shaping (SNS) refers to a general collection of built-in algorithms used to decide which area of the picture should use relatively less bits, and where else to better transfer these bits. The possible range goes from 0 (algorithm is off) to 100 (the maximal effect). The default value is 80.
    target-size=valuea target size (in bytes) to try and reach for the compressed output. The compressor makes several passes of partial encoding in order to get as close as possible to this target.
    target-psnr=valuedesired minimal distortion.
    thread-level=valueenable multi-threaded encoding.
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/share/man/man1/ImageMagick.1 b/share/man/man1/ImageMagick.1 new file mode 100644 index 0000000..23670ed --- /dev/null +++ b/share/man/man1/ImageMagick.1 @@ -0,0 +1,94 @@ +.TH ImageMagick 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +ImageMagick \- is a free software suite for the creation, modification and display of bitmap images. +.SH SYNOPSIS +\fBmagick\fP [\fIoptions\fP|\fIinput-file\fP]... \fIoutput-file\fP +\fBmagick-script\fP \fIscript-file\fP [\fIscript-arguments\fP]... +.SH OVERVIEW + +ImageMagick\[rg], is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and B\\['e]zier curves. + +ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems. + +The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically. + +ImageMagick includes a number of command-line utilities for manipulating images. Most of you are probably accustom to editing images one at a time with a graphical user interface (GUI) with such programs as gimp or Photoshop. However, a GUI is not always convenient. Suppose you want to process an image dynamically from a web script or you want to apply the same operations to many images or repeat a specific operation at different times to the same or different image. For these types of operations, the command-line image processing utility is appropriate. + +In the paragraphs below, find a short description for each command-line tool.Cl +ick on the program name to get details on the program usage and a list of comman +d-line options that alters how the program performs. If you are just getting acq +uainted with ImageMagick, start at the top of the list, the convert program, and + work your way down. Also be sure to peruse Anthony Thyssen's tutorial on how to + use ImageMagick utilities to convert, compose, or edit images from the command- +line. +.TP +.B magick + +Read images into memory, and perform operations on those images, and write +then out to either the same of some other image file format. + +The "-script" option can be switch from processing command line options, +to reading options from a file or pipeline. +.TP +.B magick-script + +As "magick" command but with an implied "-script" option. Allows it to be used +in special "#!/usr/bin/env magick-script" scripts that will search for the +"magick-script" command anywhere along the users command path, rather than in +a hardcorded command location. + +.TP +.B convert + +Backwards compatiblity for ImageMagick version 6 "convert". Essentually an +alias to a restrictive form of the "magick" command, which should be used +instead. +.TP +.B mogrify + +resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. Mogrify overwrites the original image file, whereas, convert writes to a different image file. +.TP +.B identify + +describes the format and characteristics of one or more image files. +.TP +.B composite + +overlaps one image over another. +.TP +.B montage + +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. +.TP +.B compare + +mathematically and visually annotate the difference between an image and its reconstruction.. + +.TP +.B 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. + +.TP +.B display + +displays an image or image sequence on any X server. +.TP +.B animate + +animates an image sequence on any X server. +.TP +.B import + +saves any visible window on an X server and outputs it as an image file. You can capture a single window, the entire screen, or any rectangular portion of the screen. +.TP +.B conjure + +interprets and executes scripts written in the Magick Scripting Language (MSL). +.PP +For more information about the ImageMagick, point your browser to file:///root/package/share/doc/ImageMagick-7/index.html or http://www.imagemagick.org/. +.SH SEE ALSO +convert(1), compare(1), composite(1), conjure(1), identify(1), import(1), magick(1), magick-script(1), montage(1), display(1), animate(1), import(1), Magick++-config(1), MagickCore-config(1), MagickWand-config(1) + +.SH COPYRIGHT +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/Magick++-config.1 b/share/man/man1/Magick++-config.1 new file mode 100644 index 0000000..0df7258 --- /dev/null +++ b/share/man/man1/Magick++-config.1 @@ -0,0 +1,99 @@ +.ad l +.nh +.TH Magick++-Config 1 "2 May 2002" "ImageMagick" +.SH NAME +Magick++-config \- get information about the installed version of Magick++ +.SH SYNOPSIS +.B Magick++-config +.B [--cppflags] +.B [--cxxflags] +.B [--exec-prefix] +.B [--ldflags] +.B [--libs] +.B [--prefix] +.B [--version] +.SH DESCRIPTION +.B Magick++-config +prints the compiler and linker flags required to compile and link programs +that use the +.BR ImageMagick +C++ Application Programmer Interface (known as +.BR Magick++ +). +.SH EXAMPLES +To print the version of the installed distribution of +.BR Magick++ , +use: + +.nf + Magick++-config \-\-version +.fi + +To compile a program that calls the +.BR ImageMagick +C++ Application Programmer Interface, use: + +.nf + c++ `Magick++-config \-\-cxxflags \-\-cppflags \-\-ldflags \-\-libs` program.cpp +.fi + +.SH OPTIONS +.TP +.B \-\-cppflags +Print the preprocessor flags that are needed to find the +.B ImageMagick +C and C++ include files and defines to ensures that the ImageMagick data structures match between +your program and the installed libraries. +.TP +.B \-\-cxxflags +Print the compiler flags that were used to compile +.BR libMagick++ . +.TP +.B \-\-exec-prefix +Print the directory under which target specific binaries and executables are installed. +.TP +.B \-\-ldflags +Print the linker flags that are needed to link with the +.B libMagick++ +library. +.TP +.B \-\-libs +Print the linker flags that are needed to link a program with +.BR libMagick++ . +.TP +.B \-\-prefix +Print the directory under which the package is installed. +.TP +.B \-\-version +Print the version of the +.B ImageMagick +distribution to standard output. +.SH COPYRIGHT +Copyright (C) 2000 ImageMagick Studio LLC, a non-profit organization dedicated +to making software imaging solutions freely available. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files ("ImageMagick"), +to deal in ImageMagick without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of ImageMagick, and to permit persons to whom the +ImageMagick is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of ImageMagick. + +The software is provided "as is", without warranty of any kind, express or +implied, including but not limited to the warranties of merchantability, +fitness for a particular purpose and noninfringement. In no event shall +ImageMagick Studio be liable for any claim, damages or other liability, +whether in an action of contract, tort or otherwise, arising from, out of +or in connection with ImageMagick or the use or other dealings in +ImageMagick. + +Except as contained in this notice, the name of the ImageMagick Studio +shall not be used in advertising or otherwise to promote the sale, use or +other dealings in ImageMagick without prior written authorization from the +ImageMagick Studio. +.SH AUTHORS +Bob Friesenhahn, ImageMagick Studio + diff --git a/share/man/man1/MagickCore-config.1 b/share/man/man1/MagickCore-config.1 new file mode 100644 index 0000000..ac348c0 --- /dev/null +++ b/share/man/man1/MagickCore-config.1 @@ -0,0 +1,73 @@ +.Dd July 13, 2015 +.Dt MAGICKCORE-CONFIG 1 +.Os +.Sh NAME +.Nm MagickCore-config +.Nd get information about the installed version of ImageMagick +.Sh SYNOPSIS +.Nm MagickCore-config +.Op Fl -cflags +.Op Fl -cppflags +.Op Fl -exec-prefix +.Op Fl -ldflags +.Op Fl -libs +.Op Fl -prefix +.Op Fl -version +.Sh DESCRIPTION +The +.Nm MagickCore-config +utility prints the compiler and linker flags required +to compile and link programs that use the +.Nm ImageMagick "Core" +Application Programmer Interface. +.Pp +The following options are available: +.Bl -tag -width Fl +.It Fl -cppflags , -cflags , -cxxflags +Print the compiler flags that are needed to find the +.Xr ImageMagick 1 +C include files and defines to ensure that the ImageMagick data structures match between +your program and the installed libraries. +.It Fl -prefix , -exec-prefix +Print the directory under which target specific binaries and executables are installed. +.It Fl -ldflags , -libs +Print the linker flags that are needed to link with the +.Xr ImageMagick 1 +library. +.It Fl -version +Print the version of the +.Xr ImageMagick 1 +distribution to standard output. +.It Fl -coder-path +Print the path where the +.Xr ImageMagick 1 +coder modules are installed. +.It Fl -filter-path +Print the path where the +.Xr ImageMagick 1 +filter modules are installed. +.El +.Sh EXAMPLES +To print the version of the installed distribution of +.Nm ImageMagick +use: + +.Dl MagickCore-config --version +.sp +To compile a program that calls the +.Xr ImageMagick 1 +Application Programmer Interface, use: + +.Dl cc `MagickCore-config --cppflags --ldflags` program.c +.Sh SEE ALSO +.Xr ImageMagick 1 +.Sh LICENSE +.Nm ImageMagick +is licensed with the Apache license 2.0. See +http://www.imagemagick.org/script/license.php for more details. +.Sh AUTHORS +.An -nosplit +The +.Nm ImageMagick +suite and this manual page where written by +.An Cristy, ImageMagick Studio LLC . diff --git a/share/man/man1/MagickWand-config.1 b/share/man/man1/MagickWand-config.1 new file mode 100644 index 0000000..34b8652 --- /dev/null +++ b/share/man/man1/MagickWand-config.1 @@ -0,0 +1,69 @@ +.ad l +.nh +.TH MagickWand-Config 1 "2 May 2002" "Wand" +.SH NAME +MagickWand-config \- get information about the installed version of the Magick Wand +.SH SYNOPSIS +.B MagickWand-config +.B [--cflags] +.B [--cppflags] +.B [--exec-prefix] +.B [--ldflags] +.B [--libs] +.B [--prefix] +.B [--version] +.SH DESCRIPTION +.B MagickWand-config +prints the compiler and linker flags required to compile and link programs +that use the +.BR Wand +Application Programmer Interface. +.SH EXAMPLES +To print the version of the installed distribution of +.BR Wand , +use: + +.nf + MagickWand-config \-\-version +.fi + +To compile a program that calls the +.BR Wand +Application Programmer Interface, use: + +.nf + cc `MagickWand-config \-\-cflags \-\-cppflags \-\-ldflags \-\-libs` program.c +.fi + +.SH OPTIONS +.TP +.B \-\-cflags +Print the compiler flags that were used to compile +.BR libWand . +.TP +.B \-\-cppflags +Print the preprocessor flags that are needed to find the +.B Wand +C include files and defines to ensure that the Wand data structures match between +your program and the installed libraries. +.TP +.B \-\-exec-prefix +Print the directory under which target specific binaries and executables are installed. +.TP +.B \-\-ldflags +Print the linker flags that are needed to link with the +.B Wand +library. +.TP +.B \-\-libs +Print the linker flags that are needed to link a program with +.BR libWand . +.TP +.B \-\-version +Print the version of the +.B Wand +distribution to standard output. +.SH COPYRIGHT +See http://www.imagemagick.org/script/license.php +.SH AUTHORS +Cristy, ImageMagick Studio LLC diff --git a/share/man/man1/animate.1 b/share/man/man1/animate.1 new file mode 100644 index 0000000..77efaa4 --- /dev/null +++ b/share/man/man1/animate.1 @@ -0,0 +1,101 @@ +.TH animate 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +animate \- animates an image or image sequence on any X server. +.SH SYNOPSIS +.TP +\fBanimate\fP [\fIoptions\fP] \fIinput-file\fP +.SH OVERVIEW +The \fBanimate\fP program is a member of the ImageMagick(1) suite of tools. Use it to animate an image or image sequence on any X server. + +For more information about the animate command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/animate.html or http://www.imagemagick.org/script/animate.php. +.SH DESCRIPTION +Image Settings: + \-alpha option on, activate, off, deactivate, set, opaque, copy + transparent, extract, background, or shape + \-authenticate value decrypt image with this password + \-backdrop display image centered on a backdrop + \-colormap type Shared or Private + \-colorspace type alternate image colorspace + \-decipher filename convert cipher pixels to plain pixels + \-define format:option + define one or more image format options + \-delay value display the next image after pausing + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-display server display image to this X server + \-dispose method layer disposal method + \-dither method apply error diffusion to image + \-filter type use this filter when resizing an image + \-format "string" output formatted image characteristics + \-gamma value level of gamma correction + \-geometry geometry preferred size and location of the Image window + \-gravity type horizontal and vertical backdrop placement + \-identify identify the format and characteristics of the image + \-immutable displayed image cannot be modified + \-interlace type type of image interlacing scheme + \-interpolate method pixel color interpolation method + \-limit type value pixel cache resource limit + \-loop iterations loop images then exit + \-matte store matte channel if the image has one + \-map type display image using this Standard Colormap + \-monitor monitor progress + \-pause seconds to pause before reanimating + \-page geometry size and location of an image canvas (setting) + \-quantize colorspace reduce colors in this colorspace + \-quiet suppress all warning messages + \-regard-warnings pay attention to warning messages + \-remote command execute a command in an remote display process + \-repage geometry size and location of an image canvas (operator) + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-scenes range image scene range + \-seed value seed a new sequence of pseudo-random numbers + \-set attribute value set an image attribute + \-size geometry width and height of image + \-support factor resize support: > 1.0 is blurry, < 1.0 is sharp + \-transparent-color color + transparent color + \-treedepth value color tree depth + \-verbose print detailed information about the image + \-visual type display image using this visual type + \-virtual-pixel method + virtual pixel access method + \-window id display image to background of this window + +Image Operators: + \-channel mask set the image channel mask + \-colors value preferred number of colors in the image + \-crop geometry preferred size and location of the cropped image + \-extract geometry extract area from image + \-monochrome transform image to black and white + \-resample geometry change the resolution of an image + \-resize geometry resize the image + \-rotate degrees apply Paeth rotation to the image + \-strip strip image of all profiles and comments + \-thumbnail geometry create a thumbnail of the image + \-trim trim image edges + +Image Sequence Operators: + \-coalesce merge a sequence of images + \-flatten flatten a sequence of images + +Miscellaneous Options: + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +In addition to those listed above, you can specify these standard X resources as command line options: \-background, \-bordercolor, \-borderwidth, \-font, \-foreground, \-iconGeometry, \-iconic, \-name, \-mattecolor, \-shared-memory, or \-title. + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. + +Buttons: + 1 press to map or unmap the Command widget +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/compare.1 b/share/man/man1/compare.1 new file mode 100644 index 0000000..e5bea6e --- /dev/null +++ b/share/man/man1/compare.1 @@ -0,0 +1,106 @@ +.TH compare 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +compare \- mathematically and visually annotate the difference between an image and its reconstruction. +.SH SYNOPSIS +.TP +\fBcompare\fP \fIinput-file\fP \fIinput-file\fP [\fIoptions\fP] \fIoutput-file\fP +.SH OVERVIEW +The \fBcompare\fP program is a member of the ImageMagick(1) suite of tools. Use it to mathematically and visually annotate the difference between an image and its reconstruction. + +For more information about the compare command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/compare.html or http://www.imagemagick.org/script/compare.php. +.SH DESCRIPTION +Image Settings: + \-alpha option on, activate, off, deactivate, set, opaque, copy + transparent, extract, background, or shape + \-authenticate value decrypt image with this password + \-background color background color + \-colorspace type alternate image colorspace + \-compose operator set image composite operator + \-compress type type of pixel compression when writing the image + \-decipher filename convert cipher pixels to plain pixels + \-define format:option + define one or more image format options + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-dissimilarity-threshold value + maximum distortion for (sub)image match + \-encipher filename convert plain pixels to cipher pixels + \-extract geometry extract area from image + \-format "string" output formatted image characteristics + \-fuzz distance colors within this distance are considered equal + \-gravity type horizontal and vertical text placement + \-identify identify the format and characteristics of the image + \-interlace type type of image interlacing scheme + \-highlight-color color + emphasize pixel differences with this color + \-limit type value pixel cache resource limit + \-lowlight-color color + de-emphasize pixel differences with this color + \-metric type measure differences between images with this metric + \-monitor monitor progress + \-negate replace each pixel with its complementary color + \-profile filename add, delete, or apply an image profile + \-quality value JPEG/MIFF/PNG compression level + \-quiet suppress all warning messages + \-quantize colorspace reduce colors in this colorspace + \-read-mask filename associate a read mask with the image + \-regard-warnings pay attention to warning messages + \-repage geometry size and location of an image canvas + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-seed value seed a new sequence of pseudo-random numbers + \-set attribute value set an image attribute + \-similarity-threshold value + minimum distortion for (sub)image match + \-size geometry width and height of image + \-subimage-search search for subimage + \-synchronize synchronize image to storage device + \-taint declare the image as modified + \-transparent-color color + transparent color + \-type type image type + \-write-mask filename associate a write mask with the image + \-verbose print detailed information about the image + \-virtual-pixel method + virtual pixel access method + +Image Operators: + \-brightness-contrast geometry + improve brightness / contrast of the image + \-distort method args + distort images according to given method and args + \-level value adjust the level of image contrast + \-resize geometry resize the image + \-rotate degrees apply Paeth rotation to the image + \-sigmoidal-contrast geometry + lightness rescaling using sigmoidal contrast enhancement + \-trim trim image edges + +Image Channel Operators: + \-separate separate an image channel into a grayscale image + +Image Sequence Operators: + \-crop geometry cut out a rectangular region of the image + \-write filename write images to this file + +Image Stack Operators: + \-delete indexes delete the image from the image sequence + +Miscellaneous Options: + \-channel mask set the image channel mask + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. + +The compare program returns 2 on error otherwise 0 if the images are similar or 1 if they are dissimilar as defined by the metric and fuzz. The normalized cross correlation error metric is an exception. For this metric, 1 is interpreted as two identical images. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/composite.1 b/share/man/man1/composite.1 new file mode 100644 index 0000000..5e9dce9 --- /dev/null +++ b/share/man/man1/composite.1 @@ -0,0 +1,116 @@ +.TH composite 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +composite \- overlaps one image over another. +.SH SYNOPSIS +.TP +\fBcomposite\fP \fB[\fP \fIoptions\fP \fB... ]\fP \fIchange-file base-file\fP \fB[\fP \fImask-file\fP \fB]\fP \fIoutput-image\fP +.SH OVERVIEW +The \fBcomposite\fP program is a member of the ImageMagick(1) suite of tools. Use it to overlap one image over another. + +For more information about the composite command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/composite.html or http://www.imagemagick.org/script/composite.php. +.SH DESCRIPTION +Image Settings: + \-affine matrix affine transform matrix + \-alpha option on, activate, off, deactivate, set, opaque, copy + transparent, extract, background, or shape + \-authenticate value decrypt image with this password + \-blue-primary point chromaticity blue primary point + \-colorspace type alternate image colorspace + \-comment string annotate image with comment + \-compose operator composite operator + \-compress type type of pixel compression when writing the image + \-decipher filename convert cipher pixels to plain pixels + \-define format:option + define one or more image format options + \-depth value image depth + \-density geometry horizontal and vertical density of the image + \-display server get image or font from this X server + \-dispose method layer disposal method + \-dither method apply error diffusion to image + \-encipher filename convert plain pixels to cipher pixels + \-encoding type text encoding type + \-endian type endianness (MSB or LSB) of the image + \-filter type use this filter when resizing an image + \-font name render text with this font + \-format "string" output formatted image characteristics + \-gravity type which direction to gravitate towards + \-green-primary point chromaticity green primary point + \-interlace type type of image interlacing scheme + \-interpolate method pixel color interpolation method + \-label string assign a label to an image + \-limit type value pixel cache resource limit + \-matte store matte channel if the image has one + \-monitor monitor progress + \-page geometry size and location of an image canvas (setting) + \-pointsize value font point size + \-quality value JPEG/MIFF/PNG compression level + \-quiet suppress all warning messages + \-red-primary point chromaticity red primary point + \-regard-warnings pay attention to warning messages + \-repage geometry size and location of an image canvas (operator) + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-scene value image scene number + \-seed value seed a new sequence of pseudo-random numbers + \-size geometry width and height of image + \-support factor resize support: > 1.0 is blurry, < 1.0 is sharp + \-synchronize synchronize image to storage device + \-taint declare the image as modified + \-transparent-color color + transparent color + \-treedepth value color tree depth + \-tile repeat composite operation across and down image + \-units type the units of image resolution + \-verbose print detailed information about the image + \-virtual-pixel method + virtual pixel access method + \-white-point point chromaticity white point + +Image Operators: + \-blend geometry blend images + \-border geometry surround image with a border of color + \-bordercolor color border color + \-channel mask set the image channel mask + \-colors value preferred number of colors in the image + \-displace geometry shift image pixels defined by a displacement map + \-dissolve value dissolve the two images a given percent + \-distort geometry shift lookup according to a absolute distortion map + \-extract geometry extract area from image + \-geometry geometry location of the composite image + \-identify identify the format and characteristics of the image + \-monochrome transform image to black and white + \-negate replace each pixel with its complementary color + \-profile filename add ICM or IPTC information profile to image + \-quantize colorspace reduce colors in this colorspace + \-rotate degrees apply Paeth rotation to the image + \-resize geometry resize the image + \-sharpen geometry sharpen the image + \-shave geometry shave pixels from the image edges + \-stegano offset hide watermark within an image + \-stereo combine two image to create a stereo anaglyph + \-strip strip image of all profiles and comments + \-thumbnail geometry create a thumbnail of the image + \-transform affine transform image + \-type type image type + \-unsharp geometry sharpen the image + \-watermark geometry percent brightness and saturation of a watermark + \-write filename write images to this file + +Image Stack Operators: + \-swap indexes swap two images in the image sequence + +Miscellaneous Options: + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/conjure.1 b/share/man/man1/conjure.1 new file mode 100644 index 0000000..1783e90 --- /dev/null +++ b/share/man/man1/conjure.1 @@ -0,0 +1,34 @@ +.TH conjure 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +conjure \- interprets and executes scripts written in the Magick Scripting Language (MSL). +.SH SYNOPSIS +.TP +\fBconjure\fP [\fIoptions\fP] \fIscript.msl\fP +.SH OVERVIEW +The \fBconjure\fP program is a member of the ImageMagick(1) suite of tools. Use it to process a Magick Scripting Language (MSL) script. The Magick scripting language (MSL) will primarily benefit those that want to accomplish custom image processing tasks but do not wish to program, or those that do not have access to a Perl interpreter or a compiler. + +For more information about the conjure command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/conjure.html or http://www.imagemagick.org/script/conjure.php. +.SH DESCRIPTION +Image Settings: + \-monitor monitor progress + \-quiet suppress all warning messages + \-regard-warnings pay attention to warning messages + \-seed value seed a new sequence of pseudo-random numbers + \-verbose print detailed information about the image + +Miscellaneous Options: + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +In additiion, define any key value pairs required by your script. For example, + + conjure \-size 100x100 \-color blue \-foo bar script.msl +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/convert.1 b/share/man/man1/convert.1 new file mode 100644 index 0000000..58655c9 --- /dev/null +++ b/share/man/man1/convert.1 @@ -0,0 +1,326 @@ +.TH convert 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +convert \- convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. +.SH SYNOPSIS +.TP +\fBconvert\fP [\fIinput-options\fP] \fIinput-file\fP [\fIoutput-options\fP] \fIoutput-file\fP +.SH OVERVIEW +The \fBconvert\fP program is a member of the ImageMagick(1) suite of tools. Use it to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. + +For more information about the convert command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/convert.html or http://www.imagemagick.org/script/convert.php. +.SH DESCRIPTION +Image Settings: + \-adjoin join images into a single multi-image file + \-affine matrix affine transform matrix + \-alpha option activate, deactivate, reset, or set the alpha channel + \-antialias remove pixel-aliasing + \-authenticate value decrypt image with this password + \-attenuate value lessen (or intensify) when adding noise to an image + \-background color background color + \-bias value add bias when convolving an image + \-black-point-compensation + use black point compensation + \-blue-primary point chromaticity blue primary point + \-bordercolor color border color + \-caption string assign a caption to an image + \-cdl filename color correct with a color decision list + \-clip clip along the first path from the 8BIM profile + \-clip-mask filename associate a clip mask with the image + \-clip-path id clip along a named path from the 8BIM profile + \-colors value preferred number of colors in the image + \-colorspace type alternate image colorspace + \-comment string annotate image with comment + \-compose operator set image composite operator + \-compress type type of pixel compression when writing the image + \-decipher filename convert cipher pixels to plain pixels + \-define format:option + define one or more image format options + \-delay value display the next image after pausing + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-direction type render text right-to-left or left-to-right + \-display server get image or font from this X server + \-dispose method layer disposal method + \-dither method apply error diffusion to image + \-encipher filename convert plain pixels to cipher pixels + \-encoding type text encoding type + \-endian type endianness (MSB or LSB) of the image + \-family name render text with this font family + \-features distance analyze image features (e.g. contrast, correlation) + \-fill color color to use when filling a graphic primitive + \-filter type use this filter when resizing an image + \-flatten flatten a sequence of images + \-font name render text with this font + \-format "string" output formatted image characteristics + \-fuzz distance colors within this distance are considered equal + \-gravity type horizontal and vertical text placement + \-green-primary point chromaticity green primary point + \-intensity method method to generate intensity value from pixel + \-intent type type of rendering intent when managing the image color + \-interlace type type of image interlacing scheme + \-interline-spacing value + set the space between two text lines + \-interpolate method pixel color interpolation method + \-interword-spacing value + set the space between two words + \-kerning value set the space between two letters + \-label string assign a label to an image + \-limit type value pixel cache resource limit + \-loop iterations add Netscape loop extension to your GIF animation + \-matte store matte channel if the image has one + \-mattecolor color frame color + \-metric type measure differences between images with this metric + \-moments report image moments + \-monitor monitor progress + \-orient type image orientation + \-page geometry size and location of an image canvas (setting) + \-ping efficiently determine image attributes + \-pointsize value font point size + \-precision value maximum number of significant digits to print + \-preview type image preview type + \-quality value JPEG/MIFF/PNG compression level + \-quiet suppress all warning messages + \-read-mask filename associate a read mask with the image + \-red-primary point chromaticity red primary point + \-regard-warnings pay attention to warning messages + \-remap filename transform image colors to match this set of colors + \-repage geometry size and location of an image canvas + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-scene value image scene number + \-seed value seed a new sequence of pseudo-random numbers + \-size geometry width and height of image + \-statistic type geometry + replace each pixel with corresponding statistic from the neighborhood + \-stretch type render text with this font stretch + \-stroke color graphic primitive stroke color + \-strokewidth value graphic primitive stroke width + \-style type render text with this font style + \-support factor resize support: > 1.0 is blurry, < 1.0 is sharp + \-synchronize synchronize image to storage device + \-taint declare the image as modified + \-texture filename name of texture to tile onto the image background + \-tile-offset geometry + tile offset + \-treedepth value color tree depth + \-transparent-color color + transparent color + \-undercolor color annotation bounding box color + \-units type the units of image resolution + \-verbose print detailed information about the image + \-virtual-pixel method + virtual pixel access method + \-weight type render text with this font weight + \-white-point point chromaticity white point + \-write-mask filename associate a write mask with the image + +Image Operators: + \-adaptive-blur geometry + adaptively blur pixels; decrease effect near edges + \-adaptive-resize geometry + adaptively resize image with data dependent triangulation + \-adaptive-sharpen geometry + adaptively sharpen pixels; increase effect near edges + \-annotate geometry text + annotate the image with text + \-auto-gamma automagically adjust gamma level of image + \-auto-level automagically adjust color levels of image + \-auto-orient automatically orient image + \-auto-threshold method + automatically perform image thresholding + \-bench iterations measure performance + \-black-threshold value + force all pixels below the threshold into black + \-blue-shift factor simulate a scene at nighttime in the moonlight + \-blur geometry reduce image noise and reduce detail levels + \-border geometry surround image with a border of color + \-brightness-contrast geometry + improve brightness / contrast of the image + \-canny geometry detect edges in the image + \-channel mask set the image channel mask + \-charcoal radius simulate a charcoal drawing + \-chop geometry remove pixels from the image interior + \-clamp keep pixel values in range (0-QuantumRange) + \-clip clip along the first path from the 8BIM profile + \-clip-mask filename associate a clip mask with the image + \-clip-path id clip along a named path from the 8BIM profile + \-colorize value colorize the image with the fill color + \-color-matrix matrix apply color correction to the image + \-connected-component connectivity + connected-components uniquely labeled + \-contrast enhance or reduce the image contrast + \-contrast-stretch geometry + improve contrast by `stretching' the intensity range + \-convolve coefficients + apply a convolution kernel to the image + \-cycle amount cycle the image colormap + \-deskew threshold straighten an image + \-despeckle reduce the speckles within an image + \-distort method args + distort images according to given method and args + \-draw string annotate the image with a graphic primitive + \-edge radius apply a filter to detect edges in the image + \-emboss radius emboss an image + \-enhance apply a digital filter to enhance a noisy image + \-equalize perform histogram equalization to an image + \-evaluate operator value + evaluate an arithmetic, relational, or logical expression + \-extent geometry set the image size + \-extract geometry extract area from image + \-fft implements the discrete Fourier transform (DFT) + \-flip flip image vertically + \-floodfill geometry color + floodfill the image with color + \-flop flop image horizontally + \-frame geometry surround image with an ornamental border + \-function name apply a function to the image + \-gamma value level of gamma correction + \-gaussian-blur geometry + reduce image noise and reduce detail levels + \-geometry geometry preferred size or location of the image + \-grayscale method convert image to grayscale + \-hough-lines geometry + identify lines in the image + \-identify identify the format and characteristics of the image + \-ift implements the inverse discrete Fourier transform (DFT) + \-implode amount implode image pixels about the center + \-lat geometry local adaptive thresholding + \-layers method optimize or compare image layers + \-level value adjust the level of image contrast + \-level-colors color,color + level image with the given colors + \-linear-stretch geometry + improve contrast by `stretching with saturation' the intensity range + \-liquid-rescale geometry + rescale image with seam-carving + \-mean-shift geometry delineate arbitrarily shaped clusters in the image + \-median geometry apply a median filter to the image + \-mode geometry make each pixel the 'predominant color' of the neighborhood + \-modulate value vary the brightness, saturation, and hue + \-monochrome transform image to black and white + \-morphology method kernel + apply a morphology method to the image + \-motion-blur geometry + simulate motion blur + \-negate replace each pixel with its complementary color + \-noise geometry add or reduce noise in an image + \-normalize transform image to span the full range of colors + \-opaque color change this color to the fill color + \-ordered-dither NxN + add a noise pattern to the image with specific amplitudes + \-paint radius simulate an oil painting + \-perceptible epsilon + pixel value less than |epsilon| become epsilon or -epsilon + \-polaroid angle simulate a Polaroid picture + \-posterize levels reduce the image to a limited number of color levels + \-print string interpret string and print to console + \-profile filename add, delete, or apply an image profile + \-quantize colorspace reduce colors in this colorspace + \-radial-blur angle radial blur the image + \-raise value lighten/darken image edges to create a 3-D effect + \-random-threshold low,high + random threshold the image + \-region geometry apply options to a portion of the image + \-render render vector graphics + \-resample geometry change the resolution of an image + \-resize geometry resize the image + \-roll geometry roll an image vertically or horizontally + \-rotate degrees apply Paeth rotation to the image + \-sample geometry scale image with pixel sampling + \-scale geometry scale the image + \-segment values segment an image + \-selective-blur geometry + selectively blur pixels within a contrast threshold + \-sepia-tone threshold + simulate a sepia-toned photo + \-set property value set an image property + \-shade degrees shade the image using a distant light source + \-shadow geometry simulate an image shadow + \-sharpen geometry sharpen the image + \-shave geometry shave pixels from the image edges + \-shear geometry slide one edge of the image along the X or Y axis + \-sigmoidal-contrast geometry + lightness rescaling using sigmoidal contrast enhancement + \-sketch geometry simulate a pencil sketch + \-solarize threshold negate all pixels above the threshold level + \-sparse-color method args + fill in a image based on a few color points + \-splice geometry splice the background color into the image + \-spread amount displace image pixels by a random amount + \-strip strip image of all profiles and comments + \-swirl degrees swirl image pixels about the center + \-threshold value threshold the image + \-thumbnail geometry create a thumbnail of the image + \-tile filename tile image when filling a graphic primitive + \-tint value tint the image with the fill color + \-transform affine transform image + \-transparent color make this color transparent within the image + \-transpose flip image vertically and rotate 90 degrees + \-transverse flop image horizontally and rotate 270 degrees + \-trim trim image edges + \-type type image type + \-unique-colors discard all but one of any pixel color + \-unsharp geometry sharpen the image + \-vignette geometry soften the edges of the image in vignette style + \-wave geometry alter an image along a sine wave + \-wavelet-denoise threshold + removes noise from the image using a wavelet transform + \-white-threshold value + force all pixels above the threshold into white + +Image Channel Operators: + \-channel-fx expression + exchange, extract, or transfer one or more image channels + \-separate separate an image channel into a grayscale image + +Image Sequence Operators: + \-append append an image sequence top to bottom (use +append for left to right) + \-clut apply a color lookup table to the image + \-coalesce merge a sequence of images + \-combine combine a sequence of images + \-compare mathematically and visually annotate the difference between an image and its reconstruction + \-complex operator perform complex mathematics on an image sequence + \-composite composite image + \-copy geometry offset, + copy pixels from one area of an image to another + \-crop geometry cut out a rectangular region of the image + \-deconstruct break down an image sequence into constituent parts + \-evaluate-sequence operator + evaluate an arithmetic, relational, or logical expression + \-flatten flatten a sequence of images + \-fx expression apply mathematical expression to an image channel(s) + \-hald-clut apply a Hald color lookup table to the image + \-morph value morph an image sequence + \-mosaic create a mosaic from an image sequence + \-poly terms build a polynomial from the image sequence and the corresponding terms (coefficients and degree pairs) + \-process arguments process the image with a custom image filter + \-smush geometry smush an image sequence together + \-write filename write images to this file + +Image Stack Operators: + \-clone indexes clone an image + \-delete indexes delete the image from the image sequence + \-duplicate count,indexes + duplicate an image one or more times + \-insert index insert last image into the image sequence + \-reverse reverse image sequence + \-swap indexes swap two images in the image sequence + +Miscellaneous Options: + \-debug events display copious debugging information + \-distribute-cache port + distributed pixel cache spanning one or more servers + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +Use any setting or operator as an \fIoutput-option\fP. Only a limited number of setting are \fIinput-option\fP. They include: \-antialias, \-caption, \-density, \-define, \-encoding, \-font, \-pointsize, \-size, and \-texture as well as any of the miscellaneous options. + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/display.1 b/share/man/man1/display.1 new file mode 100644 index 0000000..4f88cb2 --- /dev/null +++ b/share/man/man1/display.1 @@ -0,0 +1,139 @@ +.TH display 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +display \- displays an image or image sequence on any X server. +.SH SYNOPSIS +.TP +\fBdisplay\fP [\fIoptions\fP] \fIinput-file\fP +.SH OVERVIEW +The \fBdisplay\fP program is a member of the ImageMagick(1) suite of tools. Use it to display an image or image sequence on any X server. + +For more information about the display command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/display.html or http://www.imagemagick.org/script/display.php. +.SH DESCRIPTION +Image Settings: + \-alpha option on, activate, off, deactivate, set, opaque, copy + transparent, extract, background, or shape + \-antialias remove pixel-aliasing + \-authenticate value decrypt image with this password + \-backdrop display image centered on a backdrop + \-colormap type Shared or Private + \-colorspace type alternate image colorspace + \-comment string annotate image with comment + \-compress type type of pixel compression when writing the image + \-decipher filename convert cipher pixels to plain pixels + \-deskew threshold straighten an image + \-define format:option + define one or more image format options + \-delay value display the next image after pausing + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-display server display image to this X server + \-dispose method layer disposal method + \-dither method apply error diffusion to image + \-endian type endianness (MSB or LSB) of the image + \-equalize perform histogram equalization to an image + \-filter type use this filter when resizing an image + \-format "string" output formatted image characteristics + \-fuzz distance colors within this distance are considered equal + \-geometry geometry preferred size and location of the Image window + \-gravity type horizontal and vertical backdrop placement + \-identify identify the format and characteristics of the image + \-immutable displayed image cannot be modified + \-interlace type type of image interlacing scheme + \-interpolate method pixel color interpolation method + \-label string assign a label to an image + \-limit type value pixel cache resource limit + \-loop iterations loop images then exit + \-map type display image using this Standard Colormap + \-matte store matte channel if the image has one + \-monitor monitor progress + \-page geometry size and location of an image canvas + \-profile filename add, delete, or apply an image profile + \-quality value JPEG/MIFF/PNG compression level + \-quantize colorspace reduce colors in this colorspace + \-quiet suppress all warning messages + \-regard-warnings pay attention to warning messages + \-remote command execute a command in an remote display process + \-repage geometry size and location of an image canvas (operator) + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-scenes range image scene range + \-seed value seed a new sequence of pseudo-random numbers + \-set property value set an image property + \-size geometry width and height of image + \-support factor resize support: > 1.0 is blurry, < 1.0 is sharp + \-texture filename name of texture to tile onto the image background + \-transparent-color color + transparent color + \-treedepth value color tree depth + \-update seconds detect when image file is modified and redisplay + \-verbose print detailed information about the image + \-visual type display image using this visual type + \-virtual-pixel method + virtual pixel access method + \-window id display image to background of this window + \-window-group id exit program when this window id is destroyed + \-write filename write image to a file + +Image Operators: + \-auto-orient automatically orient image + \-border geometry surround image with a border of color + \-channel mask set the image channel mask + \-clip clip along the first path from the 8BIM profile + \-clip-path id clip along a named path from the 8BIM profile + \-colors value preferred number of colors in the image + \-contrast enhance or reduce the image contrast + \-crop geometry preferred size and location of the cropped image + \-despeckle reduce the speckles within an image + \-edge factor apply a filter to detect edges in the image + \-enhance apply a digital filter to enhance a noisy image + \-extract geometry extract area from image + \-flip flip image in the vertical direction + \-flop flop image in the horizontal direction + \-frame geometry surround image with an ornamental border + \-gamma value level of gamma correction + \-monochrome transform image to black and white + \-negate replace each pixel with its complementary color + \-normalize transform image to span the full range of colors + \-raise value lighten/darken image edges to create a 3-D effect + \-resample geometry change the resolution of an image + \-resize geometry resize the image + \-roll geometry roll an image vertically or horizontally + \-rotate degrees apply Paeth rotation to the image + \-sample geometry scale image with pixel sampling + \-segment value segment an image + \-sharpen geometry sharpen the image + \-strip strip image of all profiles and comments + \-threshold value threshold the image + \-thumbnail geometry create a thumbnail of the image + \-trim trim image edges + +Image Sequence Operators: + \-coalesce merge a sequence of images + \-flatten flatten a sequence of images + +Miscellaneous Options: + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +In addition to those listed above, you can specify these standard X resources as command line options: \-background, \-bordercolor, \-borderwidth, \-font, \-foreground, \-iconGeometry, \-iconic, \-mattecolor, \-name, \-shared-memory, \-usePixmap, or \-title. + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. + +Buttons: + 1 press to map or unmap the Command widget + 2 press and drag to magnify a region of an image + 3 press to load an image from a visual image directory +.SH NOTE +The display program defaults to the X screen resolution. To display vector formats at their intended size, override the default resolution: + + display -density 72 drawing.svg +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/identify.1 b/share/man/man1/identify.1 new file mode 100644 index 0000000..97164b9 --- /dev/null +++ b/share/man/man1/identify.1 @@ -0,0 +1,79 @@ +.TH identify 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +identify \- describes the format and characteristics of one or more image files. +.SH SYNOPSIS +.TP +\fBidentify\fP [\fIoptions\fP] \fIinput-file\fP +.SH OVERVIEW +The \fBidentify\fP program is a member of the ImageMagick(1) suite of tools. It describes the format and characteristics of one or more image files. It also reports if an image is incomplete or corrupt. The information returned includes the image number, the file name, the width and height of the image, whether the image is colormapped or not, the number of colors in the image (by default off use \fI-define unique=true\fP option), the number of bytes in the image, the format of the image (JPEG, PNM, etc.), and finally the number of seconds it took to read and process the image. Many more attributes are available with the verbose option. + +For more information about the identify command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/identify.html or http://www.imagemagick.org/script/identify.php. +.SH DESCRIPTION +Image Settings: + \-alpha option on, activate, off, deactivate, set, opaque, copy + transparent, extract, background, or shape + \-antialias remove pixel-aliasing + \-authenticate value decrypt image with this password + \-clip clip along the first path from the 8BIM profile + \-clip-mask filename associate a clip mask with the image + \-clip-path id clip along a named path from the 8BIM profile + \-colorspace type alternate image colorspace + \-crop geometry cut out a rectangular region of the image + \-define format:option + define one or more image format options + \-define unique=true return the number of unique colors in the image + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-endian type endianness (MSB or LSB) of the image + \-extract geometry extract area from image + \-features distance analyze image features (e.g. contrast, correlation) + \-format "string" output formatted image characteristics + \-fuzz distance colors within this distance are considered equal + \-gamma value of gamma correction + \-interlace type type of image interlacing scheme + \-interpolate method pixel color interpolation method + \-limit type value pixel cache resource limit + \-list type Color, Configure, Delegate, Format, Magic, Module, + Resource, or Type + \-matte store matte channel if the image has one + \-moments report image moments + \-monitor monitor progress + \-ping efficiently determine image attributes + \-precision value maximum number of significant digits to print + \-quiet suppress all warning messages + \-read-mask filename associate a read mask with the image + \-regard-warnings pay attention to warning messages + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-seed value seed a new sequence of pseudo-random numbers + \-set attribute value set an image attribute + \-size geometry width and height of image + \-strip strip image of all profiles and comments + \-unique display the number of unique colors in the image + \-units type the units of image resolution + \-verbose print detailed information about the image + \-virtual-pixel method + virtual pixel access method + +Image Operators: + \-channel mask set the image channel mask + \-grayscale method convert image to grayscale + \-negate replace each pixel with its complementary color + +Miscellaneous Options: + \-debug events display copious debugging information + \-help print program options + \-list type print a list of supported option arguments + \-log format format of debugging information + \-version print version information + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. +.SH NOTE +Although some options appear to modify the file to be identified, the identify command is strictly \fBread only\fP. For instance, the crop option crops the in-memory image and then describes the result. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/import.1 b/share/man/man1/import.1 new file mode 100644 index 0000000..bc9c425 --- /dev/null +++ b/share/man/man1/import.1 @@ -0,0 +1,100 @@ +.TH import 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +import \- saves any visible window on an X server and outputs it as an image file. You can capture a single window, the entire screen, or any rectangular portion of the screen. The window to capture is selected by clicking the desired window or a program option. +.SH SYNOPSIS +.TP +\fBimport\fP [\fIoptions\fP] \fIoutput-file\fP +.SH OVERVIEW +The \fBimport\fP program is a member of the ImageMagick(1) suite of tools. Use it to capture some or all of an X server screen and save the image to a file. + +For more information about the import command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/import.html or http://www.imagemagick.org/script/import.php. +.SH DESCRIPTION +Image Settings: + \-adjoin join images into a single multi-image file + \-border include window border in the output image + \-colorspace type alternate image colorspace + \-comment string annotate image with comment + \-compress type type of pixel compression when writing the image + \-define format:option + define one or more image format options + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-descend obtain image by descending window hierarchy + \-display server X server to contact + \-dispose method layer disposal method + \-dither method apply error diffusion to image + \-delay value display the next image after pausing + \-encipher filename convert plain pixels to cipher pixels + \-endian type endianness (MSB or LSB) of the image + \-encoding type text encoding type + \-filter type use this filter when resizing an image + \-format "string" output formatted image characteristics + \-frame include window manager frame + \-gravity direction which direction to gravitate towards + \-identify identify the format and characteristics of the image + \-interlace type None, Line, Plane, or Partition + \-interpolate method pixel color interpolation method + \-label string assign a label to an image + \-limit type value Area, Disk, Map, or Memory resource limit + \-monitor monitor progress + \-page geometry size and location of an image canvas + \-pause seconds seconds delay between snapshots + \-pointsize value font point size + \-quality value JPEG/MIFF/PNG compression level + \-quiet suppress all warning messages + \-regard-warnings pay attention to warning messages + \-repage geometry size and location of an image canvas + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-scene value image scene number + \-screen select image from root window + \-seed value seed a new sequence of pseudo-random numbers + \-set property value set an image property + \-silent operate silently, i.e. don't ring any bells + \-snaps value number of screen snapshots + \-support factor resize support: > 1.0 is blurry, < 1.0 is sharp + \-synchronize synchronize image to storage device + \-taint declare the image as modified + \-transparent-color color + transparent color + \-treedepth value color tree depth + \-verbose print detailed information about the image + \-virtual-pixel method + Constant, Edge, Mirror, or Tile + \-window id select window with this id or name + root selects the whole screen + +Image Operators: + \-annotate geometry text + annotate the image with text + \-channel mask set the image channel mask + \-colors value preferred number of colors in the image + \-crop geometry preferred size and location of the cropped image + \-geometry geometry preferred size or location of the image + \-help print program options + \-monochrome transform image to black and white + \-negate replace each pixel with its complementary color + \-quantize colorspace reduce colors in this colorspace + \-resize geometry resize the image + \-rotate degrees apply Paeth rotation to the image + \-strip strip image of all profiles and comments + \-thumbnail geometry create a thumbnail of the image + \-transparent color make this color transparent within the image + \-trim trim image edges + \-type type image type + +Miscellaneous Options: + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +By default, 'file' is written in the Postscript image format. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/magick-script.1 b/share/man/man1/magick-script.1 new file mode 100644 index 0000000..5c67c72 --- /dev/null +++ b/share/man/man1/magick-script.1 @@ -0,0 +1,283 @@ +.TH magick 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +magick-script \- scripting language that converts between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. +.SH SYNOPSIS +.TP +\fBmagick-script\fP [\fIinput-options\fP] \fIinput-file\fP [\fIoutput-options\fP] \fIoutput-file\fP +.SH OVERVIEW +The \fBmagick-script\fP program is a member of the ImageMagick(1) suite of tools. Use it to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. Here is an example script: + + #!/bin/env magick-script + -size 100x100 xc:red ( rose: -rotate -90 ) +append -write show: + +For more information about the magick-script command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/magick-script.html or http://www.imagemagick.org/script/magick-script.php. +.SH DESCRIPTION +Image Settings: + \-adjoin join images into a single multi-image file + \-affine matrix affine transform matrix + \-antialias remove pixel-aliasing + \-authenticate value decrypt image with this password + \-background color background color + \-bias value add bias when convolving an image + \-black-point-compensation + use black point compensation + \-blue-primary point chromaticity blue primary point + \-bordercolor color border color + \-caption string assign a caption to an image + \-cdl filename color correct with a color decision list + \-colors value preferred number of colors in the image + \-colorspace type alternate image colorspace + \-comment string annotate image with comment + \-compose operator set image composite operator + \-compress type type of pixel compression when writing the image + \-decipher filename magick cipher pixels to plain pixels + \-define format:option + define one or more image format options + \-delay value display the next image after pausing + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-direction type render text right-to-left or left-to-right + \-display server get image or font from this X server + \-dispose method layer disposal method + \-dither method apply error diffusion to image + \-encipher filename magick plain pixels to cipher pixels + \-encoding type text encoding type + \-endian type endianness (MSB or LSB) of the image + \-family name render text with this font family + \-fill color color to use when filling a graphic primitive + \-filter type use this filter when resizing an image + \-flatten flatten a sequence of images + \-font name render text with this font + \-format "string" output formatted image characteristics + \-fuzz distance colors within this distance are considered equal + \-gravity type horizontal and vertical text placement + \-green-primary point chromaticity green primary point + \-intent type type of rendering intent when managing the image color + \-interlace type type of image interlacing scheme + \-interpolate method pixel color interpolation method + \-kerning value set the space between two letters + \-label string assign a label to an image + \-limit type value pixel cache resource limit + \-loop iterations add Netscape loop extension to your GIF animation + \-mask filename associate a mask with the image + \-matte store matte channel if the image has one + \-mattecolor color frame color + \-monitor monitor progress + \-orient type image orientation + \-origin geometry image origin + \-page geometry size and location of an image canvas (setting) + \-ping efficiently determine image attributes + \-pointsize value font point size + \-preview type image preview type + \-quality value JPEG/MIFF/PNG compression level + \-quiet suppress all warning messages + \-red-primary point chromaticity red primary point + \-regard-warnings pay attention to warning messages + \-repage geometry size and location of an image canvas + \-sampling-factor geometry + horizontal and vertical sampling factor + \-scene value image scene number + \-seed value seed a new sequence of pseudo-random numbers + \-size geometry width and height of image + \-statistic type geometry + replace each pixel with corresponding statistic from the neighborhood + \-stretch type render text with this font stretch + \-stroke color graphic primitive stroke color + \-strokewidth value graphic primitive stroke width + \-style type render text with this font style + \-support factor resize support: > 1.0 is blurry, < 1.0 is sharp + \-synchronize synchronize image to storage device + \-taint declare the image as modified + \-texture filename name of texture to tile onto the image background + \-tile-offset geometry + tile offset + \-treedepth value color tree depth + \-transparent-color color + transparent color + \-undercolor color annotation bounding box color + \-units type the units of image resolution + \-verbose print detailed information about the image + \-view FlashPix viewing transforms + \-virtual-pixel method + virtual pixel access method + \-weight type render text with this font weight + \-white-point point chromaticity white point + +Image Operators: + \-adaptive-blur geometry + adaptively blur pixels; decrease effect near edges + \-adaptive-resize geometry + adaptively resize image with data dependent triangulation + \-adaptive-sharpen geometry + adaptively sharpen pixels; increase effect near edges + \-annotate geometry text + annotate the image with text + \-auto-orient automatically orient image + \-black-threshold value + force all pixels below the threshold into black + \-blur geometry reduce image noise and reduce detail levels + \-border geometry surround image with a border of color + \-channel mask set the image channel mask + \-charcoal radius simulate a charcoal drawing + \-chop geometry remove pixels from the image interior + \-clip clip along the first path from the 8BIM profile + \-clip-mask filename associate a clip mask with the image + \-clip-path id clip along a named path from the 8BIM profile + \-colorize value colorize the image with the fill color + \-color-matrix matrix apply color correction to the image + \-contrast enhance or reduce the image contrast + \-contrast-stretch geometry + improve contrast by `stretching' the intensity range + \-convolve coefficients + apply a convolution kernel to the image + \-cycle amount cycle the image colormap + \-despeckle reduce the speckles within an image + \-draw string annotate the image with a graphic primitive + \-edge radius apply a filter to detect edges in the image + \-emboss radius emboss an image + \-enhance apply a digital filter to enhance a noisy image + \-equalize perform histogram equalization to an image + \-evaluate operator value + evaluate an arithmetic, relational, or logical expression + \-extent geometry set the image size + \-extract geometry extract area from image + \-fft implements the discrete Fourier transform (DFT) + \-flip flip image vertically + \-floodfill geometry color + floodfill the image with color + \-flop flop image horizontally + \-frame geometry surround image with an ornamental border + \-function name apply a function to the image + \-gamma value level of gamma correction + \-gaussian-blur geometry + reduce image noise and reduce detail levels + \-geometry geometry preferred size or location of the image + \-identify identify the format and characteristics of the image + \-ift implements the inverse discrete Fourier transform (DFT) + \-implode amount implode image pixels about the center + \-lat geometry local adaptive thresholding + \-layers method optimize or compare image layers + \-level value adjust the level of image contrast + \-linear-stretch geometry + improve contrast by `stretching with saturation' the intensity range + \-median geometry apply a median filter to the image + \-mode geometry make each pixel the 'predominant color' of the neighborhood + \-modulate value vary the brightness, saturation, and hue + \-monochrome transform image to black and white + \-morphology method kernel + apply a morphology method to the image + \-motion-blur geometry + simulate motion blur + \-negate replace each pixel with its complementary color + \-noise geometry add or reduce noise in an image + \-normalize transform image to span the full range of colors + \-opaque color change this color to the fill color + \-ordered-dither NxN + add a noise pattern to the image with specific amplitudes + \-paint radius simulate an oil painting + \-polaroid angle simulate a Polaroid picture + \-posterize levels reduce the image to a limited number of color levels + \-print string interpret string and print to console + \-profile filename add, delete, or apply an image profile + \-quantize colorspace reduce colors in this colorspace + \-radial-blur angle radial blur the image + \-raise value lighten/darken image edges to create a 3-D effect + \-random-threshold low,high + random threshold the image + \-region geometry apply options to a portion of the image + \-render render vector graphics + \-resample geometry change the resolution of an image + \-resize geometry resize the image + \-roll geometry roll an image vertically or horizontally + \-rotate degrees apply Paeth rotation to the image + \-sample geometry scale image with pixel sampling + \-scale geometry scale the image + \-segment values segment an image + \-selective-blur geometry + selectively blur pixels within a contrast threshold + \-sepia-tone threshold + simulate a sepia-toned photo + \-set property value set an image property + \-shade degrees shade the image using a distant light source + \-shadow geometry simulate an image shadow + \-sharpen geometry sharpen the image + \-shave geometry shave pixels from the image edges + \-shear geometry slide one edge of the image along the X or Y axis + \-sigmoidal-contrast geometry + lightness rescaling using sigmoidal contrast enhancement + \-sketch geometry simulate a pencil sketch + \-solarize threshold negate all pixels above the threshold level + \-splice geometry splice the background color into the image + \-spread amount displace image pixels by a random amount + \-strip strip image of all profiles and comments + \-swirl degrees swirl image pixels about the center + \-threshold value threshold the image + \-thumbnail geometry create a thumbnail of the image + \-tile filename tile image when filling a graphic primitive + \-tint value tint the image with the fill color + \-transform affine transform image + \-transparent color make this color transparent within the image + \-transpose flip image vertically and rotate 90 degrees + \-transverse flop image horizontally and rotate 270 degrees + \-trim trim image edges + \-type type image type + \-unique-colors discard all but one of any pixel color + \-unsharp geometry sharpen the image + \-vignette geometry soften the edges of the image in vignette style + \-wave geometry alter an image along a sine wave + \-white-threshold value + force all pixels above the threshold into white + + +Image Channel Operators: + \-channel-extract channel-list + extract the channels in order + \-channel-inject channel-list + inject the channels in order + \-channel-swap channel,channel + swap the channels + +Image Sequence Operators: + \-affinity filename transform image colors to match this set of colors + \-append append an image sequence top to bottom (use +append for left to right) + \-clut apply a color lookup table to the image + \-coalesce merge a sequence of images + \-combine combine a sequence of images + \-composite composite image + \-crop geometry cut out a rectangular region of the image + \-deconstruct break down an image sequence into constituent parts + \-evaluate-sequence operator + evaluate an arithmetic, relational, or logical expression + \-flatten flatten a sequence of images + \-fx expression apply mathematical expression to an image channel(s) + \-hald-clut apply a Hald color lookup table to the image + \-morph value morph an image sequence + \-mosaic create a mosaic from an image sequence + \-process arguments process the image with a custom image filter + \-separate separate an image channel into a grayscale image + \-smush geometry smush an image sequence together + \-write filename write images to this file + +Image Stack Operators: + \-clone indexes clone an image + \-delete indexes delete the image from the image sequence + \-duplicate count,indexes + duplicate an image one or more times + \-insert index insert last image into the image sequence + \-swap indexes swap two images in the image sequence + +Miscellaneous Options: + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +Use any setting or operator as an \fIoutput-option\fP. Only a limited number of setting are \fIinput-option\fP. They include: \-antialias, \-caption, \-density, \-define, \-encoding, \-font, \-pointsize, \-size, and \-texture as well as any of the miscellaneous options. + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/magick.1 b/share/man/man1/magick.1 new file mode 100644 index 0000000..1f2ad3c --- /dev/null +++ b/share/man/man1/magick.1 @@ -0,0 +1,280 @@ +.TH magick 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +magick \- convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. +.SH SYNOPSIS +.TP +\fBmagick\fP [\fIinput-options\fP] \fIinput-file\fP [\fIoutput-options\fP] \fIoutput-file\fP +.SH OVERVIEW +The \fBmagickscript\fP program is a member of the ImageMagick(1) suite of tools. Use it to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. + +For more information about the magick command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/magick.html or http://www.imagemagick.org/script/magick.php. +.SH DESCRIPTION +Image Settings: + \-adjoin join images into a single multi-image file + \-affine matrix affine transform matrix + \-antialias remove pixel-aliasing + \-authenticate value decrypt image with this password + \-background color background color + \-bias value add bias when convolving an image + \-black-point-compensation + use black point compensation + \-blue-primary point chromaticity blue primary point + \-bordercolor color border color + \-caption string assign a caption to an image + \-cdl filename color correct with a color decision list + \-colors value preferred number of colors in the image + \-colorspace type alternate image colorspace + \-comment string annotate image with comment + \-compose operator set image composite operator + \-compress type type of pixel compression when writing the image + \-decipher filename magick cipher pixels to plain pixels + \-define format:option + define one or more image format options + \-delay value display the next image after pausing + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-direction type render text right-to-left or left-to-right + \-display server get image or font from this X server + \-dispose method layer disposal method + \-dither method apply error diffusion to image + \-encipher filename magick plain pixels to cipher pixels + \-encoding type text encoding type + \-endian type endianness (MSB or LSB) of the image + \-family name render text with this font family + \-fill color color to use when filling a graphic primitive + \-filter type use this filter when resizing an image + \-flatten flatten a sequence of images + \-font name render text with this font + \-format "string" output formatted image characteristics + \-fuzz distance colors within this distance are considered equal + \-gravity type horizontal and vertical text placement + \-green-primary point chromaticity green primary point + \-intent type type of rendering intent when managing the image color + \-interlace type type of image interlacing scheme + \-interpolate method pixel color interpolation method + \-kerning value set the space between two letters + \-label string assign a label to an image + \-limit type value pixel cache resource limit + \-loop iterations add Netscape loop extension to your GIF animation + \-mask filename associate a mask with the image + \-matte store matte channel if the image has one + \-mattecolor color frame color + \-monitor monitor progress + \-orient type image orientation + \-origin geometry image origin + \-page geometry size and location of an image canvas (setting) + \-ping efficiently determine image attributes + \-pointsize value font point size + \-preview type image preview type + \-quality value JPEG/MIFF/PNG compression level + \-quiet suppress all warning messages + \-red-primary point chromaticity red primary point + \-regard-warnings pay attention to warning messages + \-repage geometry size and location of an image canvas + \-sampling-factor geometry + horizontal and vertical sampling factor + \-scene value image scene number + \-seed value seed a new sequence of pseudo-random numbers + \-size geometry width and height of image + \-statistic type geometry + replace each pixel with corresponding statistic from the neighborhood + \-stretch type render text with this font stretch + \-stroke color graphic primitive stroke color + \-strokewidth value graphic primitive stroke width + \-style type render text with this font style + \-support factor resize support: > 1.0 is blurry, < 1.0 is sharp + \-synchronize synchronize image to storage device + \-taint declare the image as modified + \-texture filename name of texture to tile onto the image background + \-tile-offset geometry + tile offset + \-treedepth value color tree depth + \-transparent-color color + transparent color + \-undercolor color annotation bounding box color + \-units type the units of image resolution + \-verbose print detailed information about the image + \-view FlashPix viewing transforms + \-virtual-pixel method + virtual pixel access method + \-weight type render text with this font weight + \-white-point point chromaticity white point + +Image Operators: + \-adaptive-blur geometry + adaptively blur pixels; decrease effect near edges + \-adaptive-resize geometry + adaptively resize image with data dependent triangulation + \-adaptive-sharpen geometry + adaptively sharpen pixels; increase effect near edges + \-annotate geometry text + annotate the image with text + \-auto-orient automatically orient image + \-black-threshold value + force all pixels below the threshold into black + \-blur geometry reduce image noise and reduce detail levels + \-border geometry surround image with a border of color + \-channel mask set the image channel mask + \-charcoal radius simulate a charcoal drawing + \-chop geometry remove pixels from the image interior + \-clip clip along the first path from the 8BIM profile + \-clip-mask filename associate a clip mask with the image + \-clip-path id clip along a named path from the 8BIM profile + \-colorize value colorize the image with the fill color + \-color-matrix matrix apply color correction to the image + \-contrast enhance or reduce the image contrast + \-contrast-stretch geometry + improve contrast by `stretching' the intensity range + \-convolve coefficients + apply a convolution kernel to the image + \-cycle amount cycle the image colormap + \-despeckle reduce the speckles within an image + \-draw string annotate the image with a graphic primitive + \-edge radius apply a filter to detect edges in the image + \-emboss radius emboss an image + \-enhance apply a digital filter to enhance a noisy image + \-equalize perform histogram equalization to an image + \-evaluate operator value + evaluate an arithmetic, relational, or logical expression + \-extent geometry set the image size + \-extract geometry extract area from image + \-fft implements the discrete Fourier transform (DFT) + \-flip flip image vertically + \-floodfill geometry color + floodfill the image with color + \-flop flop image horizontally + \-frame geometry surround image with an ornamental border + \-function name apply a function to the image + \-gamma value level of gamma correction + \-gaussian-blur geometry + reduce image noise and reduce detail levels + \-geometry geometry preferred size or location of the image + \-identify identify the format and characteristics of the image + \-ift implements the inverse discrete Fourier transform (DFT) + \-implode amount implode image pixels about the center + \-lat geometry local adaptive thresholding + \-layers method optimize or compare image layers + \-level value adjust the level of image contrast + \-linear-stretch geometry + improve contrast by `stretching with saturation' the intensity range + \-median geometry apply a median filter to the image + \-mode geometry make each pixel the 'predominant color' of the neighborhood + \-modulate value vary the brightness, saturation, and hue + \-monochrome transform image to black and white + \-morphology method kernel + apply a morphology method to the image + \-motion-blur geometry + simulate motion blur + \-negate replace each pixel with its complementary color + \-noise geometry add or reduce noise in an image + \-normalize transform image to span the full range of colors + \-opaque color change this color to the fill color + \-ordered-dither NxN + add a noise pattern to the image with specific amplitudes + \-paint radius simulate an oil painting + \-polaroid angle simulate a Polaroid picture + \-posterize levels reduce the image to a limited number of color levels + \-print string interpret string and print to console + \-profile filename add, delete, or apply an image profile + \-quantize colorspace reduce colors in this colorspace + \-radial-blur angle radial blur the image + \-raise value lighten/darken image edges to create a 3-D effect + \-random-threshold low,high + random threshold the image + \-region geometry apply options to a portion of the image + \-render render vector graphics + \-resample geometry change the resolution of an image + \-resize geometry resize the image + \-roll geometry roll an image vertically or horizontally + \-rotate degrees apply Paeth rotation to the image + \-sample geometry scale image with pixel sampling + \-scale geometry scale the image + \-segment values segment an image + \-selective-blur geometry + selectively blur pixels within a contrast threshold + \-sepia-tone threshold + simulate a sepia-toned photo + \-set property value set an image property + \-shade degrees shade the image using a distant light source + \-shadow geometry simulate an image shadow + \-sharpen geometry sharpen the image + \-shave geometry shave pixels from the image edges + \-shear geometry slide one edge of the image along the X or Y axis + \-sigmoidal-contrast geometry + lightness rescaling using sigmoidal contrast enhancement + \-sketch geometry simulate a pencil sketch + \-solarize threshold negate all pixels above the threshold level + \-splice geometry splice the background color into the image + \-spread amount displace image pixels by a random amount + \-strip strip image of all profiles and comments + \-swirl degrees swirl image pixels about the center + \-threshold value threshold the image + \-thumbnail geometry create a thumbnail of the image + \-tile filename tile image when filling a graphic primitive + \-tint value tint the image with the fill color + \-transform affine transform image + \-transparent color make this color transparent within the image + \-transpose flip image vertically and rotate 90 degrees + \-transverse flop image horizontally and rotate 270 degrees + \-trim trim image edges + \-type type image type + \-unique-colors discard all but one of any pixel color + \-unsharp geometry sharpen the image + \-vignette geometry soften the edges of the image in vignette style + \-wave geometry alter an image along a sine wave + \-white-threshold value + force all pixels above the threshold into white + + +Image Channel Operators: + \-channel-extract channel-list + extract the channels in order + \-channel-inject channel-list + inject the channels in order + \-channel-swap channel,channel + swap the channels + +Image Sequence Operators: + \-affinity filename transform image colors to match this set of colors + \-append append an image sequence top to bottom (use +append for left to right) + \-clut apply a color lookup table to the image + \-coalesce merge a sequence of images + \-combine combine a sequence of images + \-composite composite image + \-crop geometry cut out a rectangular region of the image + \-deconstruct break down an image sequence into constituent parts + \-evaluate-sequence operator + evaluate an arithmetic, relational, or logical expression + \-flatten flatten a sequence of images + \-fx expression apply mathematical expression to an image channel(s) + \-hald-clut apply a Hald color lookup table to the image + \-morph value morph an image sequence + \-mosaic create a mosaic from an image sequence + \-process arguments process the image with a custom image filter + \-separate separate an image channel into a grayscale image + \-smush geometry smush an image sequence together + \-write filename write images to this file + +Image Stack Operators: + \-clone indexes clone an image + \-delete indexes delete the image from the image sequence + \-duplicate count,indexes + duplicate an image one or more times + \-insert index insert last image into the image sequence + \-swap indexes swap two images in the image sequence + +Miscellaneous Options: + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +Use any setting or operator as an \fIoutput-option\fP. Only a limited number of setting are \fIinput-option\fP. They include: \-antialias, \-caption, \-density, \-define, \-encoding, \-font, \-pointsize, \-size, and \-texture as well as any of the miscellaneous options. + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/mogrify.1 b/share/man/man1/mogrify.1 new file mode 100644 index 0000000..536e0ad --- /dev/null +++ b/share/man/man1/mogrify.1 @@ -0,0 +1,325 @@ +.TH mogrify 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +mogrify \- resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. Mogrify overwrites the original image file, whereas, convert(1) writes to a different image file. +.SH SYNOPSIS +.TP +\fBmogrify\fP [\fIoptions\fP] \fIinput-file\fP +.SH OVERVIEW +The \fBmogrify\fP program is a member of the ImageMagick(1) suite of tools. Use it to resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. This tool is similar to convert(1) except the original image file is overwritten with any changes you request. + +For more information about the mogrify command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/mogrify.html or http://www.imagemagick.org/script/mogrify.php. +.SH DESCRIPTION +Image Settings: + \-adjoin join images into a single multi-image file + \-affine matrix affine transform matrix + \-antialias remove pixel-aliasing + \-authenticate value decrypt image with this password + \-attenuate value lessen (or intensify) when adding noise to an image + \-background color background color + \-bias value add bias when convolving an image + \-black-point-compensation + use black point compensation + \-blue-primary point chromaticity blue primary point + \-bordercolor color border color + \-caption string assign a caption to an image + \-cdl filename color correct with a color decision list + \-colors value preferred number of colors in the image + \-colorspace type alternate image colorspace + \-comment string annotate image with comment + \-compose operator set image composite operator + \-compress type type of pixel compression when writing the image + \-decipher filename convert cipher pixels to plain pixels + \-define format:option + define one or more image format options + \-delay value display the next image after pausing + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-direction type render text right-to-left or left-to-right + \-display server get image or font from this X server + \-dispose method layer disposal method + \-dither method apply error diffusion to image + \-encipher filename convert plain pixels to cipher pixels + \-encoding type text encoding type + \-endian type endianness (MSB or LSB) of the image + \-family name render text with this font family + \-features distance analyze image features (e.g. contrast, correlation) + \-fill color color to use when filling a graphic primitive + \-filter type use this filter when resizing an image + \-flatten flatten a sequence of images + \-font name render text with this font + \-format type image format type + \-function name apply a function to the image + \-fuzz distance colors within this distance are considered equal + \-gravity type horizontal and vertical text placement + \-green-primary point chromaticity green primary point + \-intensity method method to generate intensity value from pixel + \-intent type type of rendering intent when managing the image color + \-interlace type type of image interlacing scheme + \-interline-spacing value set the space between two text lines + \-interpolate method pixel color interpolation method + \-interword-spacing value set the space between two words + \-kerning value set the space between two letters + \-label string assign a label to an image + \-limit type value pixel cache resource limit + \-loop iterations add Netscape loop extension to your GIF animation + \-matte store matte channel if the image has one + \-mattecolor color frame color + \-metric type measure differences between images with this metric + \-monitor monitor progress + \-morphology method kernel + apply a morphology method to the image + \-orient type image orientation + \-page geometry size and location of an image canvas (setting) + \-path path write images to this path on disk + \-perceptible epsilon + pixel value less than |epsilon| become epsilon or -epsilon + \-ping efficiently determine image attributes + \-pointsize value font point size + \-precision value maximum number of significant digits to print + \-preview type image preview type + \-quality value JPEG/MIFF/PNG compression level + \-quiet suppress all warning messages + \-read-mask filename associate a read mask with the image + \-red-primary point chromaticity red primary point + \-regard-warnings pay attention to warning messages + \-remap filename transform image colors to match this set of colors + \-repage geometry size and location of an image canvas + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-scene value image scene number + \-seed value seed a new sequence of pseudo-random numbers + \-size geometry width and height of image + \-stretch type render text with this font stretch + \-stroke color graphic primitive stroke color + \-strokewidth value graphic primitive stroke width + \-style type render text with this font style + \-synchronize synchronize image to storage device + \-taint declare the image as modified + \-texture filename name of texture to tile onto the image background + \-tile-offset geometry + tile offset + \-treedepth value color tree depth + \-transparent-color color + transparent color + \-undercolor color annotation bounding box color + \-units type the units of image resolution + \-verbose print detailed information about the image + \-virtual-pixel method + virtual pixel access method + \-weight type render text with this font weight + \-white-point point chromaticity white point + \-write-mask filename associate a write mask with the image + +Image Operators: + \-adaptive-blur geometry + adaptively blur pixels; decrease effect near edges + \-adaptive-resize geometry + adaptively resize image with data dependent triangulation + \-adaptive-sharpen geometry + adaptively sharpen pixels; increase effect near edges + \-alpha option on, activate, off, deactivate, set, opaque, copy + transparent, extract, background, or shape + \-annotate geometry text + annotate the image with text + \-auto-gamma automagically adjust gamma level of image + \-auto-level automagically adjust color levels of image + \-auto-orient automatically orient image + \-auto-threshold method + automatically perform image thresholding + \-bench iterations measure performance + \-black-threshold value + force all pixels below the threshold into black + \-blue-shift simulate a scene at nighttime in the moonlight + \-blur geometry reduce image noise and reduce detail levels + \-border geometry surround image with a border of color + \-brightness-contrast geometry + improve brightness / contrast of the image + \-canny geometry detect edges in the image + \-channel mask set the image channel mask + \-charcoal radius simulate a charcoal drawing + \-chop geometry remove pixels from the image interior + \-clamp keep pixel values in range (0-QuantumRange) + \-clip clip along the first path from the 8BIM profile + \-clip-mask filename associate a clip mask with the image + \-clip-path id clip along a named path from the 8BIM profile + \-colorize value colorize the image with the fill color + \-color-matrix matrix apply color correction to the image + \-connected-component connectivity + connected-components uniquely labeled + \-contrast enhance or reduce the image contrast + \-contrast-stretch geometry + improve contrast by `stretching' the intensity range + \-convolve coefficients + apply a convolution kernel to the image + \-cycle amount cycle the image colormap + \-deskew threshold straighten an image + \-despeckle reduce the speckles within an image + \-distort method args + distort images according to given method and args + \-draw string annotate the image with a graphic primitive + \-edge radius apply a filter to detect edges in the image + \-emboss radius emboss an image + \-enhance apply a digital filter to enhance a noisy image + \-equalize perform histogram equalization to an image + \-evaluate operator value + evaluate an arithmetic, relational, or logical expression + \-extent geometry set the image size + \-extract geometry extract area from image + \-fft implements the discrete Fourier transform (DFT) + \-flip flip image vertically + \-floodfill geometry color + floodfill the image with color + \-flop flop image horizontally + \-frame geometry surround image with an ornamental border + \-gamma value level of gamma correction + \-gaussian-blur geometry + reduce image noise and reduce detail levels + \-geometry geometry preferred size or location of the image + \-grayscale method convert image to grayscale + \-help print program options + \-hough-lines geometry + identify lines in the image + \-identify identify the format and characteristics of the image + \-ift implements the inverse discrete Fourier transform (DFT) + \-implode amount implode image pixels about the center + \-interpolative-resize geometry + resize image using interpolation + \-lat geometry local adaptive thresholding + \-layers method optimize or compare image layers + \-level value adjust the level of image contrast + \-level-colors color,color + level image with the given colors + \-linear-stretch geometry + improve contrast by `stretching with saturation' the intensity range + \-liquid-rescale geometry + rescale image with seam-carving + \-magnify double the size of the image with pixel art scaling + \-mean-shift geometry delineate arbitrarily shaped clusters in the image + \-median geometry apply a median filter to the image + \-mode geometry make each pixel the 'predominant color' of the neighborhood + \-modulate value vary the brightness, saturation, and hue + \-monochrome transform image to black and white + \-motion-blur geometry + simulate motion blur + \-negate replace each pixel with its complementary color + \-noise geometry add or reduce noise in an image + \-normalize transform image to span the full range of colors + \-opaque color change this color to the fill color + \-ordered-dither NxN + add a noise pattern to the image with specific amplitudes + \-paint radius simulate an oil painting + \-polaroid angle simulate a Polaroid picture + \-posterize levels reduce the image to a limited number of color levels + \-print string interpret string and print to console + \-profile filename add, delete, or apply an image profile + \-quantize colorspace reduce colors in this colorspace + \-radial-blur angle radial blur the image + \-raise value lighten/darken image edges to create a 3-D effect + \-random-threshold low,high + random threshold the image + \-region geometry apply options to a portion of the image + \-render render vector graphics + \-resample geometry change the resolution of an image + \-resize geometry resize the image + \-roll geometry roll an image vertically or horizontally + \-rotate degrees apply Paeth rotation to the image + \-sample geometry scale image with pixel sampling + \-scale geometry scale the image + \-segment values segment an image + \-selective-blur geometry + selectively blur pixels within a contrast threshold + \-sepia-tone threshold + simulate a sepia-toned photo + \-set property value set an image property + \-shade degrees shade the image using a distant light source + \-shadow geometry simulate an image shadow + \-sharpen geometry sharpen the image + \-shave geometry shave pixels from the image edges + \-shear geometry slide one edge of the image along the X or Y axis + \-sigmoidal-contrast geometry + lightness rescaling using sigmoidal contrast enhancement + \-sketch geometry simulate a pencil sketch + \-solarize threshold negate all pixels above the threshold level + \-sparse-color method args + fill in a image based on a few color points + \-splice geometry splice the background color into the image + \-spread amount displace image pixels by a random amount + \-statistic type geometry + replace each pixel with corresponding statistic from the neighborhood + \-strip strip image of all profiles and comments + \-swirl degrees swirl image pixels about the center + \-threshold value threshold the image + \-thumbnail geometry create a thumbnail of the image + \-tile filename tile image when filling a graphic primitive + \-tint value tint the image with the fill color + \-transform affine transform image + \-transparent color make this color transparent within the image + \-transpose flip image vertically and rotate 90 degrees + \-transverse flop image horizontally and rotate 270 degrees + \-trim trim image edges + \-type type image type + \-unique-colors discard all but one of any pixel color + \-unsharp geometry sharpen the image + \-vignette geometry soften the edges of the image in vignette style + \-wave geometry alter an image along a sine wave + \-wavelet-denoise threshold + removes noise from the image using a wavelet transform + \-white-threshold value + force all pixels above the threshold into white + +Image Channel Operators: + \-channel-fx expression + exchange, extract, or transfer one or more image channels + \-separate separate an image channel into a grayscale image + +Image Sequence Operators: + \-affinity filename transform image colors to match this set of colors + \-append append an image sequence top to botto (use +append for left to right) + \-clut apply a color lookup table to the image + \-coalesce merge a sequence of images + \-combine combine a sequence of images + \-compare mathematically and visually annotate the difference between an image and its reconstruction + \-complex operator perform complex mathematics on an image sequence + \-composite composite image + \-copy geometry offset, + copy pixels from one area of an image to another + \-crop geometry cut out a rectangular region of the image + \-deconstruct break down an image sequence into constituent parts + \-evaluate-sequence operator + evaluate an arithmetic, relational, or logical expression + \-flatten flatten a sequence of images + \-fx expression apply mathematical expression to an image channel(s) + \-hald-clut apply a Hald color lookup table to the image + \-morph value morph an image sequence + \-mosaic create a mosaic from an image sequence + \-poly terms build a polynomial from the image sequence and the corresponding terms (coefficients and degree pairs) + \-process arguments process the image with a custom image filter + \-separate separate an image channel into a grayscale image + \-smush geometry smush an image sequence together + \-write filename write images to this file + +Image Stack Operators: + \-delete indexes delete the image from the image sequence + \-duplicate count,indexes + duplicate an image one or more times + \-insert index insert last image into the image sequence + \-reverse reverse image sequence + \-swap indexes swap two images in the image sequence + +Miscellaneous Options: + \-debug events display copious debugging information + \-distribute-cache port + distributed pixel cache spanning one or more servers + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/montage.1 b/share/man/man1/montage.1 new file mode 100644 index 0000000..ed809c8 --- /dev/null +++ b/share/man/man1/montage.1 @@ -0,0 +1,145 @@ +.TH montage 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +montage \- 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. +.SH SYNOPSIS +.TP +\fBmontage\fP \fIinput-file[s]\fP [\fIoptions\fP] \fIoutput-file\fP +.SH OVERVIEW +The \fBmontage\fP program is a member of the ImageMagick(1) suite of tools. Use it 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. + +For more information about the montage command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/montage.html or http://www.imagemagick.org/script/montage.php. +.SH DESCRIPTION +Image Settings: + \-adjoin join images into a single multi-image file + \-affine matrix affine transform matrix + \-alpha option on, activate, off, deactivate, set, opaque, copy + transparent, extract, background, or shape + \-authenticate value decrypt image with this password + \-blue-primary point chromaticity blue primary point + \-bordercolor color border color + \-caption string assign a caption to an image + \-colors value preferred number of colors in the image + \-colorspace type alternate image colorsapce + \-comment string annotate image with comment + \-compose operator composite operator + \-compress type type of pixel compression when writing the image + \-define format:option + define one or more image format options + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-display server query font from this X server + \-dispose method layer disposal method + \-dither method apply error diffusion to image + \-draw string annotate the image with a graphic primitive + \-encoding type text encoding type + \-endian type endianness (MSB or LSB) of the image + \-extract geometry extract area from image + \-fill color color to use when filling a graphic primitive + \-filter type use this filter when resizing an image + \-font name render text with this font + \-format "string" output formatted image characteristics + \-gamma value level of gamma correction + \-geometry geometry preferred tile and border sizes + \-gravity direction which direction to gravitate towards + \-green-primary point chromaticity green primary point + \-identify identify the format and characteristics of the image + \-interlace type type of image interlacing scheme + \-interpolate method pixel color interpolation method + \-kerning value set the space between two letters + \-label string assign a label to an image + \-limit type value pixel cache resource limit + \-matte store matte channel if the image has one + \-mattecolor color frame color + \-mode type framing style + \-monitor monitor progress + \-page geometry size and location of an image canvas (setting) + \-pointsize value font point size + \-profile filename add, delete, or apply an image profile + \-quality value JPEG/MIFF/PNG compression level + \-quantize colorspace reduce colors in this colorspace + \-quiet suppress all warning messages + \-red-primary point chromaticity red primary point + \-regard-warnings pay attention to warning messages + \-repage geometry size and location of an image canvas (operator) + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-scenes range image scene range + \-seed value seed a new sequence of pseudo-random numbers + \-set attribute value set an image attribute + \-shadow add a shadow beneath a tile to simulate depth + \-size geometry width and height of image + \-stroke color color to use when stroking a graphic primitive + \-support factor resize support: > 1.0 is blurry, < 1.0 is sharp + \-synchronize synchronize image to storage device + \-taint declare the image as modified + \-texture filename name of texture to tile onto the image background + \-thumbnail geometry create a thumbnail of the image + \-tile geometry number of tiles per row and column + \-title string decorate the montage image with a title + \-transparent-color color + transparent color + \-treedepth value color tree depth + \-trim trim image edges + \-units type the units of image resolution + \-verbose print detailed information about the image + \-virtual-pixel method + virtual pixel access method + \-white-point point chromaticity white point + +Image Operators: + \-adaptive-sharpen geometry + adaptively sharpen pixels; increase effect near edges + \-annotate geometry text + annotate the image with text + \-auto-orient automagically orient image + \-blur geometry reduce image noise and reduce detail levels + \-border geometry surround image with a border of color + \-channel mask set the image channel mask + \-crop geometry preferred size and location of the cropped image + \-extent geometry set the image size + \-flatten flatten a sequence of images + \-flip flip image in the vertical direction + \-flop flop image in the horizontal direction + \-frame geometry surround image with an ornamental border + \-monochrome transform image to black and white + \-polaroid angle simulate a Polaroid picture + \-resize geometry resize the image + \-rotate degrees apply Paeth rotation to the image + \-scale geometry scale the image + \-strip strip image of all profiles and comments + \-transform affine transform image + \-transpose flip image vertically and rotate 90 degrees + \-transparent color make this color transparent within the image + \-type type image type + \-unsharp geometry sharpen the image + +Image Sequence Operators: + \-coalesce merge a sequence of images + \-composite composite image + +Image Stack Operators: + \-clone indexes clone an image + \-delete indexes delete the image from the image sequence + \-duplicate count,indexes + duplicate an image one or more times + \-insert index insert last image into the image sequence + \-reverse reverse image sequence + \-swap indexes swap two images in the image sequence + +Miscellaneous Options: + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +In addition to those listed above, you can specify these standard X resources as command line options: \-background, \-bordercolor, \-borderwidth, \-font, \-mattecolor, or \-title. + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP diff --git a/share/man/man1/stream.1 b/share/man/man1/stream.1 new file mode 100644 index 0000000..efdec89 --- /dev/null +++ b/share/man/man1/stream.1 @@ -0,0 +1,59 @@ +.TH stream 1 "Date: 2009/01/10 01:00:00" "ImageMagick" +.SH NAME +stream \- a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats. +.SH SYNOPSIS +.TP +\fBstream\fP [\fIoptions\fP] \fIinput-file\fP \fIoutput-file\fP +.SH OVERVIEW +\fBStream\fP 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 \fBstream\fP desirable when working with large images or when you require raw pixel components. + +For more information about the stream command, point your browser to file:///root/package/share/doc/ImageMagick-7/www/stream.html or http://www.imagemagick.org/script/stream.php. +.SH DESCRIPTION +Image Settings: + \-authenticate value decrypt image with this password + \-colorspace type alternate image colorspace + \-compress type type of pixel compression when writing the image + \-define format:option + define one or more image format options + \-density geometry horizontal and vertical density of the image + \-depth value image depth + \-extract geometry extract area from image + \-identify identify the format and characteristics of the image + \-interlace type type of image interlacing scheme + \-interpolate method pixel color interpolation method + \-limit type value pixel cache resource limit + \-map components one or more pixel components + \-monitor monitor progress + \-quantize colorspace reduce colors in this colorspace + \-quiet suppress all warning messages + \-regard-warnings pay attention to warning messages + \-respect-parentheses settings remain in effect until parenthesis boundary + \-sampling-factor geometry + horizontal and vertical sampling factor + \-seed value seed a new sequence of pseudo-random numbers + \-set attribute value set an image attribute + \-size geometry width and height of image + \-storage-type type pixel storage type + \-synchronize synchronize image to storage device + \-taint declare the image as modified + \-transparent-color color + transparent color + \-verbose print detailed information about the image + \-virtual-pixel method + virtual pixel access method + +Miscellaneous Options: + \-channel mask set the image channel mask + \-debug events display copious debugging information + \-help print program options + \-log format format of debugging information + \-list type print a list of supported option arguments + \-version print version information + +By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output. +.SH SEE ALSO +ImageMagick(1) + +.SH COPYRIGHT + +\fBCopyright (C) 1999-2018 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///root/package/share/doc/ImageMagick-7/www/license.html or http://www.imagemagick.org/script/license.php\fP