aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2021-01-06 22:05:39 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-01-06 22:05:39 +0000
commit307741c84ee5f6c195553752f015a43cc41480ae (patch)
tree64d528d889c3ffe8f43f47bed8350af00f43a1c7
parentc1cabf755d6409c829e546f294c6994d8344aae5 (diff)
parent8d5874dec26ab050e88aa6d8d0a458251915c971 (diff)
downloadImageMagick-307741c84ee5f6c195553752f015a43cc41480ae.tar.gz
Upgrade ImageMagick to 0d207271d7c4ff338cbba8e82ad6ad62e6c9c780 am: a54b3be5ef am: 90a19f7817 am: 8d5874dec2
Original change: https://android-review.googlesource.com/c/platform/external/ImageMagick/+/1540556 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Iea81646184168c3af6a7f6eac7a74bb6ea56b77a
-rw-r--r--ChangeLog91
-rw-r--r--LICENSE2
-rw-r--r--METADATA8
-rw-r--r--Magick++/fuzz/build_fuzzers.sh4
-rw-r--r--Magick++/fuzz/encoder_fuzzer.cc5
-rw-r--r--MagickCore/MagickCore.h2
-rw-r--r--MagickCore/Makefile.am2
-rw-r--r--MagickCore/accelerate-kernels-private.h2
-rw-r--r--MagickCore/accelerate-private.h2
-rw-r--r--MagickCore/accelerate.c10
-rw-r--r--MagickCore/animate-private.h2
-rw-r--r--MagickCore/animate.c12
-rw-r--r--MagickCore/animate.h2
-rw-r--r--MagickCore/annotate-private.h2
-rw-r--r--MagickCore/annotate.c93
-rw-r--r--MagickCore/annotate.h2
-rw-r--r--MagickCore/artifact.c13
-rw-r--r--MagickCore/artifact.h2
-rw-r--r--MagickCore/attribute.c108
-rw-r--r--MagickCore/attribute.h2
-rw-r--r--MagickCore/blob-private.h2
-rw-r--r--MagickCore/blob.c85
-rw-r--r--MagickCore/blob.h2
-rw-r--r--MagickCore/cache-private.h2
-rw-r--r--MagickCore/cache-view.c12
-rw-r--r--MagickCore/cache-view.h2
-rw-r--r--MagickCore/cache.c120
-rw-r--r--MagickCore/cache.h2
-rw-r--r--MagickCore/channel.c52
-rw-r--r--MagickCore/channel.h2
-rw-r--r--MagickCore/cipher.c32
-rw-r--r--MagickCore/cipher.h2
-rw-r--r--MagickCore/client.c2
-rw-r--r--MagickCore/client.h2
-rw-r--r--MagickCore/coder-private.h2
-rw-r--r--MagickCore/coder.c20
-rw-r--r--MagickCore/coder.h2
-rw-r--r--MagickCore/color-private.h4
-rw-r--r--MagickCore/color.c154
-rw-r--r--MagickCore/color.h2
-rw-r--r--MagickCore/colormap-private.h2
-rw-r--r--MagickCore/colormap.c18
-rw-r--r--MagickCore/colormap.h2
-rw-r--r--MagickCore/colorspace-private.h8
-rw-r--r--MagickCore/colorspace.c178
-rw-r--r--MagickCore/colorspace.h7
-rw-r--r--MagickCore/compare.c104
-rw-r--r--MagickCore/compare.h2
-rw-r--r--MagickCore/composite-private.h4
-rw-r--r--MagickCore/composite.c56
-rw-r--r--MagickCore/composite.h2
-rw-r--r--MagickCore/compress.c28
-rw-r--r--MagickCore/compress.h2
-rw-r--r--MagickCore/configure-private.h2
-rw-r--r--MagickCore/configure.c20
-rw-r--r--MagickCore/configure.h2
-rw-r--r--MagickCore/constitute-private.h2
-rw-r--r--MagickCore/constitute.c44
-rw-r--r--MagickCore/constitute.h2
-rw-r--r--MagickCore/decorate.c28
-rw-r--r--MagickCore/decorate.h2
-rw-r--r--MagickCore/delegate-private.h2
-rw-r--r--MagickCore/delegate.c36
-rw-r--r--MagickCore/delegate.h2
-rw-r--r--MagickCore/deprecate.c33
-rw-r--r--MagickCore/deprecate.h4
-rw-r--r--MagickCore/display-private.h2
-rw-r--r--MagickCore/display.c54
-rw-r--r--MagickCore/display.h2
-rw-r--r--MagickCore/distort.c43
-rw-r--r--MagickCore/distort.h2
-rw-r--r--MagickCore/distribute-cache-private.h2
-rw-r--r--MagickCore/distribute-cache.c54
-rw-r--r--MagickCore/distribute-cache.h2
-rw-r--r--MagickCore/draw-private.h2
-rw-r--r--MagickCore/draw.c236
-rw-r--r--MagickCore/draw.h2
-rw-r--r--MagickCore/effect.c239
-rw-r--r--MagickCore/effect.h2
-rw-r--r--MagickCore/enhance.c174
-rw-r--r--MagickCore/enhance.h2
-rw-r--r--MagickCore/exception-private.h2
-rw-r--r--MagickCore/exception.c10
-rw-r--r--MagickCore/exception.h2
-rw-r--r--MagickCore/feature.c68
-rw-r--r--MagickCore/feature.h2
-rw-r--r--MagickCore/fourier.c34
-rw-r--r--MagickCore/fourier.h2
-rw-r--r--MagickCore/fx-private.h2
-rw-r--r--MagickCore/fx.c59
-rw-r--r--MagickCore/fx.h2
-rw-r--r--MagickCore/gem-private.h127
-rw-r--r--MagickCore/gem.c10
-rw-r--r--MagickCore/gem.h2
-rw-r--r--MagickCore/geometry.c12
-rw-r--r--MagickCore/geometry.h7
-rw-r--r--MagickCore/histogram.c38
-rw-r--r--MagickCore/histogram.h2
-rw-r--r--MagickCore/identify.c30
-rw-r--r--MagickCore/identify.h2
-rw-r--r--MagickCore/image-private.h13
-rw-r--r--MagickCore/image-view.c16
-rw-r--r--MagickCore/image-view.h2
-rw-r--r--MagickCore/image.c120
-rw-r--r--MagickCore/image.h2
-rw-r--r--MagickCore/layer.c32
-rw-r--r--MagickCore/layer.h2
-rw-r--r--MagickCore/linked-list.c26
-rw-r--r--MagickCore/linked-list.h2
-rw-r--r--MagickCore/list.c34
-rw-r--r--MagickCore/list.h2
-rw-r--r--MagickCore/locale-private.h2
-rw-r--r--MagickCore/locale.c36
-rw-r--r--MagickCore/locale_.h2
-rw-r--r--MagickCore/log-private.h2
-rw-r--r--MagickCore/log.c36
-rw-r--r--MagickCore/log.h2
-rw-r--r--MagickCore/magic-private.h2
-rw-r--r--MagickCore/magic.c26
-rw-r--r--MagickCore/magic.h2
-rw-r--r--MagickCore/magick-private.h2
-rw-r--r--MagickCore/magick-type.h2
-rw-r--r--MagickCore/magick.c22
-rw-r--r--MagickCore/magick.h2
-rw-r--r--MagickCore/matrix-private.h2
-rw-r--r--MagickCore/matrix.c30
-rw-r--r--MagickCore/matrix.h2
-rw-r--r--MagickCore/memory-private.h2
-rw-r--r--MagickCore/memory.c34
-rw-r--r--MagickCore/memory_.h2
-rw-r--r--MagickCore/method-attribute.h2
-rw-r--r--MagickCore/methods.h2
-rw-r--r--MagickCore/mime-private.h2
-rw-r--r--MagickCore/mime.c24
-rw-r--r--MagickCore/mime.h2
-rw-r--r--MagickCore/module-private.h2
-rw-r--r--MagickCore/module.c20
-rw-r--r--MagickCore/module.h2
-rw-r--r--MagickCore/monitor-private.h2
-rw-r--r--MagickCore/monitor.c2
-rw-r--r--MagickCore/monitor.h2
-rw-r--r--MagickCore/montage.c4
-rw-r--r--MagickCore/montage.h2
-rw-r--r--MagickCore/morphology-private.h2
-rw-r--r--MagickCore/morphology.c92
-rw-r--r--MagickCore/morphology.h2
-rw-r--r--MagickCore/mutex.h2
-rw-r--r--MagickCore/nt-base-private.h2
-rw-r--r--MagickCore/nt-base.c61
-rw-r--r--MagickCore/nt-base.h9
-rw-r--r--MagickCore/nt-feature.c2
-rw-r--r--MagickCore/nt-feature.h2
-rw-r--r--MagickCore/opencl-private.h2
-rw-r--r--MagickCore/opencl.c4
-rw-r--r--MagickCore/opencl.h2
-rw-r--r--MagickCore/option-private.h2
-rw-r--r--MagickCore/option.c31
-rw-r--r--MagickCore/option.h2
-rw-r--r--MagickCore/paint.c42
-rw-r--r--MagickCore/paint.h2
-rw-r--r--MagickCore/pixel-accessor.h2
-rw-r--r--MagickCore/pixel-private.h2
-rw-r--r--MagickCore/pixel.c195
-rw-r--r--MagickCore/pixel.h2
-rw-r--r--MagickCore/policy-private.h2
-rw-r--r--MagickCore/policy.c26
-rw-r--r--MagickCore/policy.h2
-rw-r--r--MagickCore/prepress.c6
-rw-r--r--MagickCore/prepress.h2
-rw-r--r--MagickCore/profile-private.h2
-rw-r--r--MagickCore/profile.c30
-rw-r--r--MagickCore/profile.h2
-rw-r--r--MagickCore/property.c43
-rw-r--r--MagickCore/property.h2
-rw-r--r--MagickCore/quantize.c118
-rw-r--r--MagickCore/quantize.h2
-rw-r--r--MagickCore/quantum-export.c214
-rw-r--r--MagickCore/quantum-import.c84
-rw-r--r--MagickCore/quantum-private.h18
-rw-r--r--MagickCore/quantum.c6
-rw-r--r--MagickCore/quantum.h2
-rw-r--r--MagickCore/random-private.h6
-rw-r--r--MagickCore/random.c12
-rw-r--r--MagickCore/random_.h2
-rw-r--r--MagickCore/registry-private.h2
-rw-r--r--MagickCore/registry.c6
-rw-r--r--MagickCore/registry.h2
-rw-r--r--MagickCore/resample-private.h6
-rw-r--r--MagickCore/resample.c14
-rw-r--r--MagickCore/resample.h2
-rw-r--r--MagickCore/resize-private.h2
-rw-r--r--MagickCore/resize.c106
-rw-r--r--MagickCore/resize.h2
-rw-r--r--MagickCore/resource-private.h2
-rw-r--r--MagickCore/resource.c22
-rw-r--r--MagickCore/resource_.h2
-rw-r--r--MagickCore/segment.c226
-rw-r--r--MagickCore/segment.h2
-rw-r--r--MagickCore/semaphore-private.h2
-rw-r--r--MagickCore/semaphore.c2
-rw-r--r--MagickCore/semaphore.h2
-rw-r--r--MagickCore/shear.c101
-rw-r--r--MagickCore/shear.h2
-rw-r--r--MagickCore/signature-private.h2
-rw-r--r--MagickCore/signature.c26
-rw-r--r--MagickCore/signature.h2
-rw-r--r--MagickCore/splay-tree.c38
-rw-r--r--MagickCore/splay-tree.h2
-rw-r--r--MagickCore/static.c4
-rw-r--r--MagickCore/static.h10
-rw-r--r--MagickCore/statistic.c130
-rw-r--r--MagickCore/statistic.h2
-rw-r--r--MagickCore/stream-private.h2
-rw-r--r--MagickCore/stream.c105
-rw-r--r--MagickCore/stream.h2
-rw-r--r--MagickCore/string-private.h6
-rw-r--r--MagickCore/string.c68
-rw-r--r--MagickCore/string_.h2
-rw-r--r--MagickCore/studio.h2
-rw-r--r--MagickCore/thread-private.h2
-rw-r--r--MagickCore/thread.c4
-rw-r--r--MagickCore/thread_.h2
-rw-r--r--MagickCore/threshold.c86
-rw-r--r--MagickCore/threshold.h2
-rw-r--r--MagickCore/timer-private.h2
-rw-r--r--MagickCore/timer.c2
-rw-r--r--MagickCore/timer.h2
-rw-r--r--MagickCore/token-private.h10
-rw-r--r--MagickCore/token.c22
-rw-r--r--MagickCore/token.h2
-rw-r--r--MagickCore/transform-private.h2
-rw-r--r--MagickCore/transform.c112
-rw-r--r--MagickCore/transform.h2
-rw-r--r--MagickCore/type-private.h2
-rw-r--r--MagickCore/type.c22
-rw-r--r--MagickCore/type.h2
-rw-r--r--MagickCore/utility-private.h5
-rw-r--r--MagickCore/utility.c30
-rw-r--r--MagickCore/utility.h2
-rw-r--r--MagickCore/version-private.h2
-rw-r--r--MagickCore/version.c10
-rw-r--r--MagickCore/version.h.in2
-rw-r--r--MagickCore/vision.c74
-rw-r--r--MagickCore/vision.h2
-rw-r--r--MagickCore/visual-effects.c188
-rw-r--r--MagickCore/visual-effects.h2
-rw-r--r--MagickCore/vms.c6
-rw-r--r--MagickCore/vms.h2
-rw-r--r--MagickCore/widget-private.h2
-rw-r--r--MagickCore/widget.c30
-rw-r--r--MagickCore/widget.h2
-rw-r--r--MagickCore/xml-tree-private.h2
-rw-r--r--MagickCore/xml-tree.c50
-rw-r--r--MagickCore/xml-tree.h2
-rw-r--r--MagickCore/xwindow-private.h2
-rw-r--r--MagickCore/xwindow.c132
-rw-r--r--MagickCore/xwindow.h2
-rw-r--r--MagickWand/MagickWand.h2
-rw-r--r--MagickWand/Makefile.am2
-rw-r--r--MagickWand/animate.c4
-rw-r--r--MagickWand/animate.h2
-rw-r--r--MagickWand/compare.c4
-rw-r--r--MagickWand/compare.h2
-rw-r--r--MagickWand/composite.c4
-rw-r--r--MagickWand/composite.h2
-rw-r--r--MagickWand/conjure.c4
-rw-r--r--MagickWand/conjure.h2
-rw-r--r--MagickWand/convert.c6
-rw-r--r--MagickWand/convert.h2
-rw-r--r--MagickWand/deprecate.c2
-rw-r--r--MagickWand/deprecate.h2
-rw-r--r--MagickWand/display.c4
-rw-r--r--MagickWand/display.h2
-rw-r--r--MagickWand/drawing-wand.c33
-rw-r--r--MagickWand/drawing-wand.h2
-rw-r--r--MagickWand/identify.c17
-rw-r--r--MagickWand/identify.h2
-rw-r--r--MagickWand/import.c4
-rw-r--r--MagickWand/import.h2
-rw-r--r--MagickWand/magick-cli.c4
-rw-r--r--MagickWand/magick-cli.h2
-rw-r--r--MagickWand/magick-image.c12
-rw-r--r--MagickWand/magick-image.h2
-rw-r--r--MagickWand/magick-property.c24
-rw-r--r--MagickWand/magick-property.h2
-rw-r--r--MagickWand/magick-wand-private.h2
-rw-r--r--MagickWand/magick-wand.c2
-rw-r--r--MagickWand/method-attribute.h2
-rw-r--r--MagickWand/mogrify-private.h2
-rw-r--r--MagickWand/mogrify.c36
-rw-r--r--MagickWand/mogrify.h2
-rw-r--r--MagickWand/montage.c4
-rw-r--r--MagickWand/montage.h2
-rw-r--r--MagickWand/operation-private.h2
-rw-r--r--MagickWand/operation.c35
-rw-r--r--MagickWand/operation.h2
-rw-r--r--MagickWand/pixel-iterator.c18
-rw-r--r--MagickWand/pixel-iterator.h2
-rw-r--r--MagickWand/pixel-wand-private.h2
-rw-r--r--MagickWand/pixel-wand.c8
-rw-r--r--MagickWand/pixel-wand.h2
-rw-r--r--MagickWand/script-token.c2
-rw-r--r--MagickWand/script-token.h2
-rw-r--r--MagickWand/stream.c4
-rw-r--r--MagickWand/stream.h2
-rw-r--r--MagickWand/studio.h2
-rw-r--r--MagickWand/tests/script-token-test.c2
-rw-r--r--MagickWand/wand-view.c32
-rw-r--r--MagickWand/wand-view.h2
-rw-r--r--MagickWand/wand.c2
-rw-r--r--MagickWand/wand.h2
-rw-r--r--MagickWand/wandcli-private.h2
-rw-r--r--MagickWand/wandcli.c2
-rw-r--r--MagickWand/wandcli.h2
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in111
-rw-r--r--NOTICE2
-rw-r--r--PerlMagick/Magick.pm2
-rw-r--r--PerlMagick/Magick.xs116
-rw-r--r--PerlMagick/Makefile.PL.in2
-rw-r--r--PerlMagick/Makefile.am2
-rw-r--r--PerlMagick/check.sh.in2
-rw-r--r--PerlMagick/default/Magick.pm.in2
-rw-r--r--PerlMagick/default/Makefile.PL.in2
-rw-r--r--PerlMagick/demo/demo.pl6
-rw-r--r--PerlMagick/demo/shadow-text.pl2
-rw-r--r--PerlMagick/quantum/Makefile.PL.in2
-rw-r--r--PerlMagick/quantum/quantum.pm2
-rw-r--r--PerlMagick/quantum/quantum.pm.in2
-rw-r--r--PerlMagick/quantum/quantum.xs.in120
-rw-r--r--PerlMagick/t/blob.t2
-rw-r--r--PerlMagick/t/filter.t2
-rw-r--r--PerlMagick/t/getattribute.t2
-rw-r--r--PerlMagick/t/montage.t2
-rw-r--r--PerlMagick/t/ping.t2
-rw-r--r--PerlMagick/t/read.t2
-rw-r--r--PerlMagick/t/setattribute.t2
-rw-r--r--PerlMagick/t/subroutines.pl2
-rw-r--r--PerlMagick/t/write.t2
-rw-r--r--README.md16
-rw-r--r--README.txt25
-rw-r--r--aclocal.m454
-rw-r--r--coders/Makefile.am12
-rw-r--r--coders/aai.c14
-rw-r--r--coders/aai.h2
-rw-r--r--coders/art.c6
-rw-r--r--coders/art.h2
-rw-r--r--coders/ashlar.c34
-rw-r--r--coders/ashlar.h2
-rw-r--r--coders/avs.c14
-rw-r--r--coders/avs.h2
-rw-r--r--coders/bgr.c84
-rw-r--r--coders/bgr.h2
-rw-r--r--coders/bmp.c30
-rw-r--r--coders/bmp.h2
-rw-r--r--coders/braille.c6
-rw-r--r--coders/braille.h2
-rw-r--r--coders/bytebuffer-private.h2
-rw-r--r--coders/cals.c10
-rw-r--r--coders/cals.h2
-rw-r--r--coders/caption.c4
-rw-r--r--coders/caption.h2
-rw-r--r--coders/cin.c10
-rw-r--r--coders/cin.h2
-rw-r--r--coders/cip.c6
-rw-r--r--coders/cip.h2
-rw-r--r--coders/clip.c2
-rw-r--r--coders/clip.h2
-rw-r--r--coders/clipboard.c14
-rw-r--r--coders/clipboard.h2
-rw-r--r--coders/cmyk.c100
-rw-r--r--coders/cmyk.h2
-rw-r--r--coders/coders-list.h3
-rw-r--r--coders/coders-private.h2
-rw-r--r--coders/coders.h3
-rw-r--r--coders/cube.c10
-rw-r--r--coders/cube.h2
-rw-r--r--coders/cut.c8
-rw-r--r--coders/cut.h2
-rw-r--r--coders/dcm.c14
-rw-r--r--coders/dcm.h2
-rw-r--r--coders/dds.c56
-rw-r--r--coders/dds.h2
-rw-r--r--coders/debug.c6
-rw-r--r--coders/debug.h2
-rw-r--r--coders/dib.c32
-rw-r--r--coders/dib.h2
-rw-r--r--coders/djvu.c8
-rw-r--r--coders/djvu.h2
-rw-r--r--coders/dng.c8
-rw-r--r--coders/dng.h2
-rw-r--r--coders/dot.c2
-rw-r--r--coders/dot.h2
-rw-r--r--coders/dps.c10
-rw-r--r--coders/dps.h2
-rw-r--r--coders/dpx.c14
-rw-r--r--coders/dpx.h2
-rw-r--r--coders/emf.c18
-rw-r--r--coders/emf.h2
-rw-r--r--coders/ept.c2
-rw-r--r--coders/ept.h2
-rw-r--r--coders/exr.c10
-rw-r--r--coders/exr.h2
-rw-r--r--coders/farbfeld.c6
-rw-r--r--coders/farbfeld.h2
-rw-r--r--coders/fax.c2
-rw-r--r--coders/fax.h2
-rw-r--r--coders/fits.c14
-rw-r--r--coders/fits.h2
-rw-r--r--coders/fl32.c6
-rw-r--r--coders/fl32.h2
-rw-r--r--coders/flif.c16
-rw-r--r--coders/flif.h2
-rw-r--r--coders/fpx.c12
-rw-r--r--coders/fpx.h2
-rw-r--r--coders/ghostscript-private.h41
-rw-r--r--coders/gif.c24
-rw-r--r--coders/gif.h2
-rw-r--r--coders/gradient.c8
-rw-r--r--coders/gradient.h2
-rw-r--r--coders/gray.c52
-rw-r--r--coders/gray.h2
-rw-r--r--coders/hald.c4
-rw-r--r--coders/hald.h2
-rw-r--r--coders/hdr.c28
-rw-r--r--coders/hdr.h2
-rw-r--r--coders/heic.c280
-rw-r--r--coders/heic.h2
-rw-r--r--coders/histogram.c17
-rw-r--r--coders/histogram.h2
-rw-r--r--coders/hrz.c14
-rw-r--r--coders/hrz.h2
-rw-r--r--coders/html.c4
-rw-r--r--coders/html.h2
-rw-r--r--coders/icon.c18
-rw-r--r--coders/icon.h2
-rw-r--r--coders/info.c2
-rw-r--r--coders/info.h2
-rw-r--r--coders/inline.c4
-rw-r--r--coders/inline.h2
-rw-r--r--coders/ipl.c6
-rw-r--r--coders/ipl.h2
-rw-r--r--coders/jbig.c14
-rw-r--r--coders/jbig.h2
-rw-r--r--coders/jnx.c8
-rw-r--r--coders/jnx.h2
-rw-r--r--coders/jp2.c19
-rw-r--r--coders/jp2.h2
-rw-r--r--coders/jpeg.c76
-rw-r--r--coders/jpeg.h2
-rw-r--r--coders/json.c114
-rw-r--r--coders/json.h2
-rw-r--r--coders/jxl.c477
-rw-r--r--coders/jxl.h7
-rw-r--r--coders/kernel.c6
-rw-r--r--coders/kernel.h2
-rw-r--r--coders/label.c2
-rw-r--r--coders/label.h2
-rw-r--r--coders/mac.c11
-rw-r--r--coders/mac.h2
-rw-r--r--coders/magick.c8
-rw-r--r--coders/magick.h2
-rw-r--r--coders/map.c16
-rw-r--r--coders/map.h2
-rw-r--r--coders/mask.c8
-rw-r--r--coders/mask.h2
-rw-r--r--coders/mat.c10
-rw-r--r--coders/mat.h2
-rw-r--r--coders/matte.c8
-rw-r--r--coders/matte.h2
-rw-r--r--coders/meta.c115
-rw-r--r--coders/meta.h2
-rw-r--r--coders/miff.c30
-rw-r--r--coders/miff.h2
-rw-r--r--coders/mono.c10
-rw-r--r--coders/mono.h2
-rw-r--r--coders/mpc.c22
-rw-r--r--coders/mpc.h2
-rw-r--r--coders/mpr.c2
-rw-r--r--coders/mpr.h2
-rw-r--r--coders/msl.c18
-rw-r--r--coders/msl.h2
-rw-r--r--coders/mtv.c14
-rw-r--r--coders/mtv.h2
-rw-r--r--coders/mvg.c4
-rw-r--r--coders/mvg.h2
-rw-r--r--coders/null.c6
-rw-r--r--coders/null.h2
-rw-r--r--coders/ora.c2
-rw-r--r--coders/ora.h2
-rw-r--r--coders/otb.c10
-rw-r--r--coders/otb.h2
-rw-r--r--coders/palm.c12
-rw-r--r--coders/palm.h2
-rw-r--r--coders/pango.c8
-rw-r--r--coders/pango.h2
-rw-r--r--coders/pattern.c4
-rw-r--r--coders/pattern.h2
-rw-r--r--coders/pcd.c28
-rw-r--r--coders/pcd.h2
-rw-r--r--coders/pcl.c31
-rw-r--r--coders/pcl.h2
-rw-r--r--coders/pcx.c24
-rw-r--r--coders/pcx.h2
-rw-r--r--coders/pdb.c16
-rw-r--r--coders/pdb.h2
-rw-r--r--coders/pdf.c44
-rw-r--r--coders/pdf.h2
-rw-r--r--coders/pes.c4
-rw-r--r--coders/pes.h2
-rw-r--r--coders/pgx.c6
-rw-r--r--coders/pgx.h2
-rw-r--r--coders/pict.c32
-rw-r--r--coders/pict.h2
-rw-r--r--coders/pix.c6
-rw-r--r--coders/pix.h2
-rw-r--r--coders/plasma.c10
-rw-r--r--coders/plasma.h2
-rw-r--r--coders/png.c69
-rw-r--r--coders/png.h2
-rw-r--r--coders/pnm.c267
-rw-r--r--coders/pnm.h9
-rw-r--r--coders/ps.c31
-rw-r--r--coders/ps.h2
-rw-r--r--coders/ps2.c14
-rw-r--r--coders/ps2.h2
-rw-r--r--coders/ps3.c25
-rw-r--r--coders/ps3.h2
-rw-r--r--coders/psd-private.h2
-rw-r--r--coders/psd.c78
-rw-r--r--coders/psd.h2
-rw-r--r--coders/pwp.c6
-rw-r--r--coders/pwp.h2
-rw-r--r--coders/raw.c10
-rw-r--r--coders/raw.h2
-rw-r--r--coders/rgb.c90
-rw-r--r--coders/rgb.h2
-rw-r--r--coders/rgf.c12
-rw-r--r--coders/rgf.h2
-rw-r--r--coders/rla.c6
-rw-r--r--coders/rla.h2
-rw-r--r--coders/rle.c10
-rw-r--r--coders/rle.h2
-rw-r--r--coders/scr.c4
-rw-r--r--coders/scr.h2
-rw-r--r--coders/screenshot.c6
-rw-r--r--coders/screenshot.h2
-rw-r--r--coders/sct.c6
-rw-r--r--coders/sct.h2
-rw-r--r--coders/sfw.c6
-rw-r--r--coders/sfw.h2
-rw-r--r--coders/sgi.c26
-rw-r--r--coders/sgi.h2
-rw-r--r--coders/sixel.c121
-rw-r--r--coders/sixel.h2
-rw-r--r--coders/stegano.c6
-rw-r--r--coders/stegano.h2
-rw-r--r--coders/sun.c42
-rw-r--r--coders/sun.h2
-rw-r--r--coders/svg.c38
-rw-r--r--coders/svg.h2
-rw-r--r--coders/tga.c18
-rw-r--r--coders/tga.h2
-rw-r--r--coders/thumbnail.c4
-rw-r--r--coders/thumbnail.h2
-rw-r--r--coders/tiff.c163
-rw-r--r--coders/tiff.h2
-rw-r--r--coders/tile.c2
-rw-r--r--coders/tile.h2
-rw-r--r--coders/tim.c10
-rw-r--r--coders/tim.h2
-rw-r--r--coders/tim2.c8
-rw-r--r--coders/tim2.h2
-rw-r--r--coders/ttf.c6
-rw-r--r--coders/ttf.h2
-rw-r--r--coders/txt.c18
-rw-r--r--coders/txt.h2
-rw-r--r--coders/uil.c8
-rw-r--r--coders/uil.h2
-rw-r--r--coders/url.c2
-rw-r--r--coders/url.h2
-rw-r--r--coders/uyvy.c10
-rw-r--r--coders/uyvy.h2
-rw-r--r--coders/vicar.c20
-rw-r--r--coders/vicar.h2
-rw-r--r--coders/vid.c6
-rw-r--r--coders/vid.h2
-rw-r--r--coders/video.c8
-rw-r--r--coders/video.h2
-rw-r--r--coders/viff.c20
-rw-r--r--coders/viff.h2
-rw-r--r--coders/vips.c10
-rw-r--r--coders/vips.h2
-rw-r--r--coders/wbmp.c12
-rw-r--r--coders/wbmp.h2
-rw-r--r--coders/webp.c572
-rw-r--r--coders/webp.h2
-rw-r--r--coders/wmf.c2
-rw-r--r--coders/wmf.h2
-rw-r--r--coders/wpg.c6
-rw-r--r--coders/wpg.h2
-rw-r--r--coders/x.c2
-rw-r--r--coders/x.h2
-rw-r--r--coders/xbm.c12
-rw-r--r--coders/xbm.h2
-rw-r--r--coders/xc.c6
-rw-r--r--coders/xc.h2
-rw-r--r--coders/xcf.c16
-rw-r--r--coders/xcf.h2
-rw-r--r--coders/xpm.c26
-rw-r--r--coders/xpm.h2
-rw-r--r--coders/xps.c13
-rw-r--r--coders/xps.h2
-rw-r--r--coders/xtrn.c2
-rw-r--r--coders/xtrn.h2
-rw-r--r--coders/xwd.c20
-rw-r--r--coders/xwd.h2
-rw-r--r--coders/yaml.c1731
-rw-r--r--coders/yaml.h31
-rw-r--r--coders/ycbcr.c66
-rw-r--r--coders/ycbcr.h2
-rw-r--r--coders/yuv.c16
-rw-r--r--coders/yuv.h2
-rw-r--r--common.shi.in2
-rw-r--r--config/ImageMagick.rdf.in1
-rw-r--r--config/Makefile.am2
-rwxr-xr-xconfig/ar-lib17
-rw-r--r--config/coder.xml2
-rw-r--r--config/colors.xml2
-rwxr-xr-xconfig/compile6
-rw-r--r--config/config.h.in2
-rwxr-xr-xconfig/depcomp2
-rw-r--r--config/english.xml5
-rw-r--r--config/francais.xml5
-rwxr-xr-xconfig/install-sh13
-rw-r--r--config/mime.xml1
-rwxr-xr-xconfig/missing2
-rw-r--r--config/policy.xml7
-rwxr-xr-xconfig/tap-driver.sh2
-rwxr-xr-xconfig/test-driver2
-rwxr-xr-xconfigure274
-rw-r--r--configure.ac108
-rw-r--r--filters/Makefile.am2
-rw-r--r--filters/analyze.c6
-rw-r--r--images/examples.jpgbin963758 -> 968674 bytes
-rw-r--r--index.html16
-rw-r--r--m4/Makefile.am2
-rwxr-xr-xmagick.sh.in2
-rw-r--r--tests/Makefile.am2
-rwxr-xr-xtests/cli-colorspace.tap2
-rwxr-xr-xtests/cli-pipe.tap2
-rw-r--r--tests/drawtest.c2
-rwxr-xr-xtests/validate-colorspace.tap2
-rwxr-xr-xtests/validate-compare.tap2
-rwxr-xr-xtests/validate-composite.tap2
-rwxr-xr-xtests/validate-convert.tap2
-rwxr-xr-xtests/validate-formats-disk.tap2
-rwxr-xr-xtests/validate-formats-map.tap2
-rwxr-xr-xtests/validate-formats-memory.tap2
-rwxr-xr-xtests/validate-identify.tap2
-rwxr-xr-xtests/validate-import.tap2
-rwxr-xr-xtests/validate-montage.tap2
-rwxr-xr-xtests/validate-stream.tap2
-rw-r--r--tests/validate.c22
-rw-r--r--tests/validate.h95
-rw-r--r--tests/wandtest.c4
-rw-r--r--utilities/Makefile.am2
-rw-r--r--utilities/magick.c6
-rw-r--r--version.sh2
-rw-r--r--www/ImageMagickObject.html8
-rw-r--r--www/advanced-unix-installation.html21
-rw-r--r--www/advanced-windows-installation.html8
-rw-r--r--www/animate.html8
-rw-r--r--www/api/Image++.html4
-rw-r--r--www/api/animate.html4
-rw-r--r--www/api/annotate.html4
-rw-r--r--www/api/attribute.html4
-rw-r--r--www/api/blob.html4
-rw-r--r--www/api/cache-view.html4
-rw-r--r--www/api/cache.html4
-rw-r--r--www/api/channel.html4
-rw-r--r--www/api/cipher.html4
-rw-r--r--www/api/color.html4
-rw-r--r--www/api/colormap.html4
-rw-r--r--www/api/colorspace.html4
-rw-r--r--www/api/compare.html4
-rw-r--r--www/api/composite.html4
-rw-r--r--www/api/constitute.html4
-rw-r--r--www/api/decorate.html4
-rw-r--r--www/api/deprecate.html4
-rw-r--r--www/api/display.html4
-rw-r--r--www/api/distort.html4
-rw-r--r--www/api/draw.html4
-rw-r--r--www/api/drawing-wand.html4
-rw-r--r--www/api/effect.html52
-rw-r--r--www/api/enhance.html4
-rw-r--r--www/api/exception.html4
-rw-r--r--www/api/feature.html4
-rw-r--r--www/api/fourier.html4
-rw-r--r--www/api/fx.html4
-rw-r--r--www/api/histogram.html4
-rw-r--r--www/api/image-view.html4
-rw-r--r--www/api/image.html4
-rw-r--r--www/api/layer.html4
-rw-r--r--www/api/list.html4
-rw-r--r--www/api/magick++-classes.html4
-rw-r--r--www/api/magick-deprecate.html4
-rw-r--r--www/api/magick-image.html50
-rw-r--r--www/api/magick-property.html6
-rw-r--r--www/api/magick-wand.html4
-rw-r--r--www/api/magick.html4
-rw-r--r--www/api/memory.html4
-rw-r--r--www/api/mime.html4
-rw-r--r--www/api/module.html4
-rw-r--r--www/api/mogrify.html4
-rw-r--r--www/api/monitor.html4
-rw-r--r--www/api/montage.html4
-rw-r--r--www/api/morphology.html4
-rw-r--r--www/api/paint.html4
-rw-r--r--www/api/pixel-iterator.html4
-rw-r--r--www/api/pixel-wand.html4
-rw-r--r--www/api/profile.html4
-rw-r--r--www/api/property.html4
-rw-r--r--www/api/quantize.html4
-rw-r--r--www/api/registry.html4
-rw-r--r--www/api/resize.html4
-rw-r--r--www/api/resource.html4
-rw-r--r--www/api/segment.html4
-rw-r--r--www/api/shear.html4
-rw-r--r--www/api/signature.html4
-rw-r--r--www/api/statistic.html4
-rw-r--r--www/api/stream.html4
-rw-r--r--www/api/transform.html4
-rw-r--r--www/api/version.html4
-rw-r--r--www/api/wand-view.html4
-rw-r--r--www/architecture.html14
-rw-r--r--www/changelog.html76
-rw-r--r--www/cipher.html8
-rw-r--r--www/cite.html16
-rw-r--r--www/clahe.html8
-rw-r--r--www/color-management.html8
-rw-r--r--www/color-thresholding.html8
-rw-r--r--www/color.html16
-rw-r--r--www/command-line-options.html490
-rw-r--r--www/command-line-processing.html8
-rw-r--r--www/command-line-tools.html10
-rw-r--r--www/compare.html10
-rw-r--r--www/compose.html8
-rw-r--r--www/composite.html8
-rw-r--r--www/conjure.html7
-rw-r--r--www/connected-components.html8
-rw-r--r--www/contact.html8
-rw-r--r--www/convert.html13
-rw-r--r--www/convex-hull.html8
-rw-r--r--www/defines.html748
-rw-r--r--www/develop.html11
-rw-r--r--www/display.html8
-rw-r--r--www/distribute-pixel-cache.html8
-rw-r--r--www/download.html66
-rw-r--r--www/escape.html8
-rw-r--r--www/examples.html7
-rw-r--r--www/exception.html7
-rw-r--r--www/export.html8
-rw-r--r--www/formats.html68
-rw-r--r--www/fx.html8
-rw-r--r--www/gradient.html8
-rw-r--r--www/high-dynamic-range.html10
-rw-r--r--www/history.html11
-rw-r--r--www/identify.html20
-rw-r--r--www/import.html7
-rw-r--r--www/index.html16
-rw-r--r--www/install-source.html22
-rw-r--r--www/jp2.html8
-rw-r--r--www/license.html9
-rw-r--r--www/links.html7
-rw-r--r--www/magick++.html10
-rw-r--r--www/magick-core.html24
-rw-r--r--www/magick-script.html8
-rw-r--r--www/magick-vector-graphics.html8
-rw-r--r--www/magick-wand.html28
-rw-r--r--www/magick.html13
-rw-r--r--www/miff.html8
-rw-r--r--www/mirror.html20
-rw-r--r--www/mogrify.html13
-rw-r--r--www/montage.html10
-rw-r--r--www/motion-picture.html12
-rw-r--r--www/news.html7
-rw-r--r--www/opencl.html8
-rw-r--r--www/openmp.html12
-rw-r--r--www/perl-magick.html14
-rw-r--r--www/porting.html23
-rw-r--r--www/quantize.html8
-rw-r--r--www/resources.html11
-rw-r--r--www/search.html10
-rw-r--r--www/security-policy.html46
-rw-r--r--www/sitemap.html17
-rw-r--r--www/source/mgk.c2
-rw-r--r--www/stream.html9
-rw-r--r--www/support.html12
-rw-r--r--www/webp.html8
800 files changed, 9893 insertions, 6452 deletions
diff --git a/ChangeLog b/ChangeLog
index 4a21e9a5c..d5d8e3408 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,93 @@
-2020-11-30 7.0.10-46 <quetzlzacatenango@image...>
- * Release ImageMagick version 7.0.10-46 GIT revision 17...
+2021-01-05 7.0.10-56 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-56 GIT revision 18192:2fb74f026:20210105
-2020-11-30 7.0.10-45 <quetzlzacatenango@image...>
+2021-01-05 7.0.10-56 <quetzlzacatenango@image...>
+ * Fix rounding error for CSS colors (reference
+ https://github.com/ImageMagick/ImageMagick6/issues/129).
+
+2021-01-03 7.0.10-55 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-55 GIT revision 18181:636ebf7ba:20210103
+
+2021-01-04 7.0.10-55 <quetzlzacatenango@image...>
+ * revert changes to the default max width/height of image.
+
+2021-01-02 7.0.10-54 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-54 GIT revision 18159:24fabe7e2:20210102
+
+2020-12-27 7.0.10-54 Dirk Lemstra <dirk@lem.....org>
+ * replaced jxl coder with an implementation that uses the jpeg-xl reference
+ library.
+ * added -define trim:edges=(north,east,south,west) that can be used to
+ trim a single or multiple edges.
+
+2020-12-25 7.0.10-54 <quetzlzacatenango@image...>
+ * enable reading of a certain grayscale TIFF image.
+ * support HEIC depth masks (reference
+ https://github.com/ImageMagick/ImageMagick/discussions/3040).
+ * validate pixel cache offsets (reference
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29039).
+
+2020-12-24 7.0.10-53 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-53 GIT revision 18083:3b141f557:20201224
+
+2020-12-20 7.0.10-53 <quetzlzacatenango@image...>
+ * CSS colors no longer require commas.
+ * eliminate possible arthimetic overflow (reference
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28849)
+ * support display-p3, Adobe-98, and Pro-photo colorspaces
+ * read/write 1024 colors Sixel images (reference
+ https://github.com/ImageMagick/ImageMagick/discussions/3018).
+
+2020-12-19 7.0.10-52 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-52 GIT revision 18057:1f5bab30b:20201219
+
+2020-12-19 7.0.10-52 <quetzlzacatenango@image...>
+ * return alpha bytes with stream utility (reference
+ https://github.com/ImageMagick/ImageMagick/discussions/2862).
+ * percentage -border in x no longer adds one pixel border in y (reference
+ https://github.com/ImageMagick/ImageMagick/issues/2978).
+
+2020-12-18 7.0.10-51 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-51 GIT revision 18052:475508769:20201218
+
+2020-12-17 7.0.10-51 <quetzlzacatenango@image...>
+ * reduce time to identify PDF/PS/XPS/PCL image width/height (reference
+ https://github.com/ImageMagick/ImageMagick/discussions/2993).
+
+2020-12-16 7.0.10-50 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-50 GIT revision 18046:83c162886:20201216
+
+2020-12-15 7.0.10-50 <quetzlzacatenango@image...>
+ * revert patch to ready gray alpha TIFF image.
+
+2020-12-14 7.0.10-49 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-49 GIT revision 18040:7976abf6e:20201214
+
+2020-12-13 7.0.10-49 <quetzlzacatenango@image...>
+ * correct previous patch to read planar RGB TIFF images.
+
+2020-12-10 7.0.10-48 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-48 GIT revision 18026:4646e5fd1:20201210
+
+2020-12-09 7.0.10-48 <quetzlzacatenango@image...>
+ * Repair unit test failures (reference
+ https://github.com/ImageMagick/ImageMagick/issues/2959).
+
+2020-12-09 7.0.10-47 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-47 GIT revision 18020:6f1ee6104:20201209
+
+2020-12-06 7.0.10-47 <quetzlzacatenango@image...>
+ * support YAML image format.
+ * use generic TIFF read method for LZW-compressed strips (reference
+ https://github.com/ImageMagick/ImageMagick/discussions/2935).
+
+2020-12-05 7.0.10-46 <quetzlzacatenango@image...>
+ * Release ImageMagick version 7.0.10-46 GIT revision 18001:7c75b33a1:20201205
+
+2020-11-30 7.0.10-46 <quetzlzacatenango@image...>
* possible TIFF related-heap buffer overflow (alert & POC by Hardik Shah).
+ * set default system font in policy.xml configuration file.
+ * support portable float map format 16-bit half.
2020-11-30 7.0.10-45 <quetzlzacatenango@image...>
* Release ImageMagick version 7.0.10-45 GIT revision 17972:6c0cb7f72:20201130
diff --git a/LICENSE b/LICENSE
index 206c83bbc..da7a4f969 100644
--- a/LICENSE
+++ b/LICENSE
@@ -38,7 +38,7 @@ 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-2020 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
+Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
1. Definitions.
diff --git a/METADATA b/METADATA
index 84432057e..ba44913c6 100644
--- a/METADATA
+++ b/METADATA
@@ -9,11 +9,11 @@ third_party {
type: GIT
value: "https://github.com/ImageMagick/ImageMagick.git"
}
- version: "0e421edad2e6bc59894718fef2c93baadc0dfb11"
+ version: "0d207271d7c4ff338cbba8e82ad6ad62e6c9c780"
license_type: NOTICE
last_upgrade_date {
- year: 2020
- month: 11
- day: 30
+ year: 2021
+ month: 1
+ day: 5
}
}
diff --git a/Magick++/fuzz/build_fuzzers.sh b/Magick++/fuzz/build_fuzzers.sh
index aefbeef35..29e5e3a28 100644
--- a/Magick++/fuzz/build_fuzzers.sh
+++ b/Magick++/fuzz/build_fuzzers.sh
@@ -1,6 +1,6 @@
#!/bin/bash -eu
-MAGICK_COMPILER_FLAGS="$MAGICK_COMPILER_FLAGS -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16"
+MAGICK_COMPILER_FLAGS="$MAGICK_COMPILER_FLAGS -fuse-ld=lld -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16"
$MAGICK_COMPILER $MAGICK_COMPILER_FLAGS -std=c++11 -I$MAGICK_INCLUDE "$MAGICK_SRC/encoder_list.cc" \
-o "$MAGICK_SRC/encoder_list" $MAGICK_LIBS_NO_FUZZ
@@ -40,7 +40,7 @@ for item in $("$MAGICK_SRC/encoder_list"); do
$encoder_flags $MAGICK_LIBS
echo -e "[libfuzzer]\nclose_fd_mask=3" > "$MAGICK_OUTPUT/encoder_${encoder,,}_fuzzer.options"
-
+
if [ -f "$MAGICK_SRC/dictionaries/${encoder,,}.dict" ]; then
cp "$MAGICK_SRC/dictionaries/${encoder,,}.dict" "$MAGICK_OUTPUT/ping_${encoder,,}_fuzzer.dict"
cp "$MAGICK_SRC/dictionaries/${encoder,,}.dict" "$MAGICK_OUTPUT/encoder_${encoder,,}_fuzzer.dict"
diff --git a/Magick++/fuzz/encoder_fuzzer.cc b/Magick++/fuzz/encoder_fuzzer.cc
index b29d7722f..5edcdbb6f 100644
--- a/Magick++/fuzz/encoder_fuzzer.cc
+++ b/Magick++/fuzz/encoder_fuzzer.cc
@@ -1,4 +1,5 @@
#include <cstdint>
+#include <string.h>
#include <Magick++/Blob.h>
#include <Magick++/Image.h>
@@ -19,14 +20,14 @@
static ssize_t EncoderInitializer(const uint8_t *Data, const size_t Size, Magick::Image &image)
{
- if (FUZZ_ENCODER_INITIALIZER == "interlace") {
+ if (strcmp(FUZZ_ENCODER_INITIALIZER, "interlace") == 0) {
Magick::InterlaceType interlace = (Magick::InterlaceType) *reinterpret_cast<const char *>(Data);
if (interlace > Magick::PNGInterlace)
return -1;
image.interlaceType(interlace);
return 1;
}
- if (FUZZ_ENCODER_INITIALIZER == "png") {
+ if (strcmp(FUZZ_ENCODER_INITIALIZER, "png") == 0) {
image.defineValue("png", "ignore-crc", "1");
}
diff --git a/MagickCore/MagickCore.h b/MagickCore/MagickCore.h
index 10413a03e..25f30d63c 100644
--- a/MagickCore/MagickCore.h
+++ b/MagickCore/MagickCore.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am
index 5b5a2f659..a7dbdc53b 100644
--- a/MagickCore/Makefile.am
+++ b/MagickCore/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/MagickCore/accelerate-kernels-private.h b/MagickCore/accelerate-kernels-private.h
index a7ffa66ac..e2f8cb421 100644
--- a/MagickCore/accelerate-kernels-private.h
+++ b/MagickCore/accelerate-kernels-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/accelerate-private.h b/MagickCore/accelerate-private.h
index 36b2c7eb5..0e9aff7d7 100644
--- a/MagickCore/accelerate-private.h
+++ b/MagickCore/accelerate-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/accelerate.c b/MagickCore/accelerate.c
index 334e3ff55..ffaeadaae 100644
--- a/MagickCore/accelerate.c
+++ b/MagickCore/accelerate.c
@@ -21,7 +21,7 @@
% April 2016 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -330,7 +330,7 @@ static MagickBooleanType LaunchHistogramKernel(MagickCLEnv clEnv,
colorspace,
method;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1000,7 +1000,7 @@ static MagickBooleanType ComputeContrastStretchImage(Image *image,
PixelPacket
*stretch_map;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2321,7 +2321,7 @@ static MagickBooleanType ComputeEqualizeImage(Image *image,MagickCLEnv clEnv,
PixelPacket
*equalize_map;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3398,7 +3398,7 @@ static MagickBooleanType ComputeModulateImage(Image *image,MagickCLEnv clEnv,
MagickSizeType
length;
- register ssize_t
+ ssize_t
i;
void
diff --git a/MagickCore/animate-private.h b/MagickCore/animate-private.h
index 770b02ad0..24d887c22 100644
--- a/MagickCore/animate-private.h
+++ b/MagickCore/animate-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/animate.c b/MagickCore/animate.c
index 94128e0be..d2388f0ba 100644
--- a/MagickCore/animate.c
+++ b/MagickCore/animate.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -404,7 +404,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
int
number_files;
- register int
+ int
i;
static char
@@ -753,7 +753,7 @@ MagickExport void XAnimateBackgroundImage(Display *display,
RectangleInfo
geometry_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1340,10 +1340,10 @@ MagickExport Image *XAnimateImages(Display *display,
RectangleInfo
geometry_info;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1436,7 +1436,7 @@ MagickExport Image *XAnimateImages(Display *display,
}
else
{
- register Image
+ Image
*p;
/*
diff --git a/MagickCore/animate.h b/MagickCore/animate.h
index ff30745a3..a4fb73d01 100644
--- a/MagickCore/animate.h
+++ b/MagickCore/animate.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/annotate-private.h b/MagickCore/annotate-private.h
index 4cc19c617..55ae44ccd 100644
--- a/MagickCore/annotate-private.h
+++ b/MagickCore/annotate-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index da950af07..e5c4c2696 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -68,6 +68,7 @@
#include "MagickCore/quantum.h"
#include "MagickCore/quantum-private.h"
#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/policy.h"
#include "MagickCore/property.h"
#include "MagickCore/resource_.h"
#include "MagickCore/semaphore.h"
@@ -248,7 +249,7 @@ MagickExport MagickBooleanType AnnotateImage(Image *image,
RectangleInfo
geometry;
- register ssize_t
+ ssize_t
i;
TypeMetric
@@ -594,12 +595,12 @@ MagickExport ssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info,
MagickBooleanType
status;
- register char
+ char
*p,
*q,
*s;
- register ssize_t
+ ssize_t
i;
size_t
@@ -733,7 +734,7 @@ MagickExport MagickBooleanType GetMultilineTypeMetrics(Image *image,
MagickSizeType
size;
- register ssize_t
+ ssize_t
i;
size_t
@@ -931,12 +932,18 @@ MagickExport MagickBooleanType GetTypeMetrics(Image *image,
static MagickBooleanType RenderType(Image *image,const DrawInfo *draw_info,
const PointInfo *offset,TypeMetric *metrics,ExceptionInfo *exception)
{
+ const char
+ *font;
+
const TypeInfo
*type_info;
DrawInfo
*annotate_info;
+ ExceptionInfo
+ *sans_exception;
+
MagickBooleanType
status;
@@ -978,7 +985,7 @@ static MagickBooleanType RenderType(Image *image,const DrawInfo *draw_info,
int
number_families;
- register ssize_t
+ ssize_t
i;
/*
@@ -1001,23 +1008,32 @@ static MagickBooleanType RenderType(Image *image,const DrawInfo *draw_info,
"UnableToReadFont","`%s'",draw_info->family);
}
}
+ font=GetPolicyValue("system:font");
+ if ((font != (const char *) NULL) && (IsPathAccessible(font) != MagickFalse))
+ {
+ /*
+ Render with default system font.
+ */
+ annotate_info=CloneDrawInfo((ImageInfo *) NULL,draw_info);
+ annotate_info->font=ConstantString(font);
+ status=RenderFreetype(image,annotate_info,annotate_info->encoding,offset,
+ metrics,exception);
+ annotate_info=DestroyDrawInfo(annotate_info);
+ return(status);
+ }
+ sans_exception=AcquireExceptionInfo();
if (type_info == (const TypeInfo *) NULL)
- type_info=GetTypeInfoByFamily("Arial",draw_info->style,
- draw_info->stretch,draw_info->weight,exception);
- if (type_info == (const TypeInfo *) NULL)
- type_info=GetTypeInfoByFamily("Helvetica",draw_info->style,
- draw_info->stretch,draw_info->weight,exception);
- if (type_info == (const TypeInfo *) NULL)
- type_info=GetTypeInfoByFamily("Century Schoolbook",draw_info->style,
- draw_info->stretch,draw_info->weight,exception);
+ type_info=GetTypeInfoByFamily("Open Sans",draw_info->style,
+ draw_info->stretch,draw_info->weight,sans_exception);
if (type_info == (const TypeInfo *) NULL)
- type_info=GetTypeInfoByFamily("Sans",draw_info->style,
- draw_info->stretch,draw_info->weight,exception);
+ type_info=GetTypeInfoByFamily("Sans Serif",draw_info->style,
+ draw_info->stretch,draw_info->weight,sans_exception);
if (type_info == (const TypeInfo *) NULL)
type_info=GetTypeInfoByFamily((const char *) NULL,draw_info->style,
- draw_info->stretch,draw_info->weight,exception);
+ draw_info->stretch,draw_info->weight,sans_exception);
if (type_info == (const TypeInfo *) NULL)
- type_info=GetTypeInfo("*",exception);
+ type_info=GetTypeInfo("*",sans_exception);
+ sans_exception=DestroyExceptionInfo(sans_exception);
if (type_info == (const TypeInfo *) NULL)
{
status=RenderFreetype(image,draw_info,draw_info->encoding,offset,metrics,
@@ -1088,7 +1104,7 @@ static size_t ComplexTextLayout(const Image *image,const DrawInfo *draw_info,
raqm_glyph_t
*glyphs;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1166,7 +1182,7 @@ cleanup:
FT_Error
ft_status;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1212,7 +1228,8 @@ cleanup:
static inline MagickBooleanType IsEmptyOutline(FT_Outline outline)
{
- return((outline.n_points == 0) || (outline.n_contours <= 0));
+ return((outline.n_points == 0) || (outline.n_contours <= 0) ? MagickTrue :
+ MagickFalse);
}
static int TraceCubicBezier(FT_Vector *p,FT_Vector *q,FT_Vector *to,
@@ -1353,10 +1370,10 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info,
point,
resolution;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1569,8 +1586,6 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info,
if (image->alpha_trait == UndefinedPixelTrait)
(void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception);
}
- point.x=0.0;
- point.y=0.0;
for (p=draw_info->text; GetUTFCode(p) != 0; p+=GetUTFOctets(p))
if (GetUTFCode(p) < 0)
break;
@@ -1650,7 +1665,7 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info,
}
FT_Vector_Transform(&glyph.origin,&affine);
(void) FT_Glyph_Transform(glyph.image,&affine,&glyph.origin);
- ft_status=FT_Glyph_To_Bitmap(&glyph.image,ft_render_mode_normal,
+ ft_status=FT_Glyph_To_Bitmap(&glyph.image,FT_RENDER_MODE_NORMAL,
(FT_Vector *) NULL,MagickTrue);
if (ft_status != 0)
continue;
@@ -1667,7 +1682,7 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info,
MagickBooleanType
transparent_fill;
- register unsigned char
+ unsigned char
*r;
/*
@@ -1692,10 +1707,10 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info,
PixelInfo
fill_color;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1705,8 +1720,8 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info,
if (status == MagickFalse)
continue;
- x_offset=(ssize_t) ceil(point.x-0.5);
- y_offset=(ssize_t) ceil(point.y+y-0.5);
+ x_offset=CastDoubleToLong(ceil(point.x-0.5));
+ y_offset=CastDoubleToLong(ceil(point.y+y-0.5));
if ((y_offset < 0) || (y_offset >= (ssize_t) image->rows))
continue;
q=(Quantum *) NULL;
@@ -1721,7 +1736,7 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info,
n=y*bitmap->bitmap.pitch;
for (x=0; x < (ssize_t) bitmap->bitmap.width; x++, n++)
{
- x_offset=(ssize_t) ceil(point.x+x-0.5);
+ x_offset=CastDoubleToLong(ceil(point.x+x-0.5));
if ((x_offset < 0) || (x_offset >= (ssize_t) image->columns))
{
if (q != (Quantum *) NULL)
@@ -1886,10 +1901,10 @@ static char *EscapeParenthesis(const char *source)
char
*destination;
- register char
+ char
*q;
- register const char
+ const char
*p;
size_t
@@ -1954,7 +1969,7 @@ static MagickBooleanType RenderPostscript(Image *image,
point,
resolution;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2073,8 +2088,8 @@ static MagickBooleanType RenderPostscript(Image *image,
crop_info=GetImageBoundingBox(annotate_image,exception);
crop_info.height=(size_t) ((resolution.y/DefaultResolution)*
ExpandAffine(&draw_info->affine)*draw_info->pointsize+0.5);
- crop_info.y=(ssize_t) ceil((resolution.y/DefaultResolution)*extent.y/8.0-
- 0.5);
+ crop_info.y=CastDoubleToLong(ceil((resolution.y/DefaultResolution)*
+ extent.y/8.0-0.5));
(void) FormatLocaleString(geometry,MagickPathExtent,
"%.20gx%.20g%+.20g%+.20g",(double) crop_info.width,(double)
crop_info.height,(double) crop_info.x,(double) crop_info.y);
@@ -2123,10 +2138,10 @@ static MagickBooleanType RenderPostscript(Image *image,
annotate_view=AcquireAuthenticCacheView(annotate_image,exception);
for (y=0; y < (ssize_t) annotate_image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(annotate_view,0,y,annotate_image->columns,
diff --git a/MagickCore/annotate.h b/MagickCore/annotate.h
index d74ae7053..9a518276d 100644
--- a/MagickCore/annotate.h
+++ b/MagickCore/annotate.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/artifact.c b/MagickCore/artifact.c
index e1c0e00c0..0c376ed98 100644
--- a/MagickCore/artifact.c
+++ b/MagickCore/artifact.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -155,7 +155,7 @@ MagickExport MagickBooleanType DefineImageArtifact(Image *image,
key[MagickPathExtent],
value[MagickPathExtent];
- register char
+ char
*p;
assert(image != (Image *) NULL);
@@ -273,7 +273,7 @@ MagickExport void DestroyImageArtifacts(Image *image)
MagickExport const char *GetImageArtifact(const Image *image,
const char *artifact)
{
- register const char
+ const char
*p;
assert(image != (Image *) NULL);
@@ -425,8 +425,11 @@ MagickExport void ResetImageArtifactIterator(const Image *image)
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% SetImageArtifact() associates makes a copy of the given string arguments
-% and inserts it into the artifact tree of the given image.
+% SetImageArtifact() sets a key-value pair in the image artifact namespace.
+% Artifacts differ from properties. Properties are public and are generally
+% exported to an external image format if the format supports it. Artifacts
+% are private and are utilized by the internal ImageMagick API to modify the
+% behavior of certain algorithms.
%
% The format of the SetImageArtifact method is:
%
diff --git a/MagickCore/artifact.h b/MagickCore/artifact.h
index 02fdad6d7..bdd7c2015 100644
--- a/MagickCore/artifact.h
+++ b/MagickCore/artifact.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/attribute.c b/MagickCore/attribute.c
index 0f081ae60..ce76a7b26 100644
--- a/MagickCore/attribute.c
+++ b/MagickCore/attribute.c
@@ -17,7 +17,7 @@
% October 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -157,7 +157,7 @@ static double GetEdgeBackgroundCensus(const Image *image,
RectangleInfo
edge_geometry;
- register const Quantum
+ const Quantum
*p;
ssize_t
@@ -216,7 +216,7 @@ static double GetEdgeBackgroundCensus(const Image *image,
edge_view=AcquireVirtualCacheView(edge_image,exception);
for (y=0; y < (ssize_t) edge_image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(edge_view,0,y,edge_image->columns,1,exception);
@@ -405,7 +405,7 @@ MagickExport RectangleInfo GetImageBoundingBox(const Image *image,
RectangleInfo
bounds;
- register const Quantum
+ const Quantum
*p;
ssize_t
@@ -418,10 +418,40 @@ MagickExport RectangleInfo GetImageBoundingBox(const Image *image,
artifact=GetImageArtifact(image,"trim:percent-background");
if (artifact != (const char *) NULL)
return(GetEdgeBoundingBox(image,exception));
- bounds.width=0;
- bounds.height=0;
- bounds.x=(ssize_t) image->columns;
- bounds.y=(ssize_t) image->rows;
+ artifact=GetImageArtifact(image, "trim:edges");
+ if (artifact == (const char *) NULL)
+ {
+ bounds.width=0;
+ bounds.height=0;
+ bounds.x=(ssize_t) image->columns;
+ bounds.y=(ssize_t) image->rows;
+ }
+ else
+ {
+ char
+ *edges,
+ *p,
+ *q;
+
+ bounds.width=(ssize_t) image->columns;
+ bounds.height=(ssize_t) image->rows;
+ bounds.x=0;
+ bounds.y=0;
+ edges=AcquireString(artifact);
+ q=edges;
+ while ((p=StringToken(",",&q)) != (char *) NULL)
+ {
+ if (LocaleCompare(p,"north") == 0)
+ bounds.y=(ssize_t) image->rows;
+ if (LocaleCompare(p,"east") == 0)
+ bounds.width=0;
+ if (LocaleCompare(p,"south") == 0)
+ bounds.height=0;
+ if (LocaleCompare(p,"west") == 0)
+ bounds.x=(ssize_t) image->columns;
+ }
+ edges=DestroyString(edges);
+ }
GetPixelInfo(image,&target[0]);
image_view=AcquireVirtualCacheView(image,exception);
p=GetCacheViewVirtualPixels(image_view,0,0,1,1,exception);
@@ -455,10 +485,10 @@ MagickExport RectangleInfo GetImageBoundingBox(const Image *image,
RectangleInfo
bounding_box;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -567,7 +597,7 @@ static PixelInfo GetEdgeBackgroundColor(const Image *image,
background[4],
edge_background;
- register ssize_t
+ ssize_t
i;
/*
@@ -596,7 +626,7 @@ static PixelInfo GetEdgeBackgroundColor(const Image *image,
RectangleInfo
edge_geometry;
- register const Quantum
+ const Quantum
*p;
ssize_t
@@ -650,7 +680,7 @@ static PixelInfo GetEdgeBackgroundColor(const Image *image,
edge_view=AcquireVirtualCacheView(edge_image,exception);
for (y=0; y < (ssize_t) edge_image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(edge_view,0,y,edge_image->columns,1,
@@ -684,7 +714,7 @@ void TraceConvexHull(PointInfo *vertices,size_t number_vertices,
PointInfo
**chain;
- register ssize_t
+ ssize_t
i;
size_t
@@ -768,10 +798,10 @@ MagickExport PointInfo *GetImageConvexHull(const Image *image,
n=0;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -844,7 +874,7 @@ MagickExport size_t GetImageDepth(const Image *image,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -953,10 +983,10 @@ MagickExport size_t GetImageDepth(const Image *image,ExceptionInfo *exception)
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -966,7 +996,7 @@ MagickExport size_t GetImageDepth(const Image *image,ExceptionInfo *exception)
continue;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1005,10 +1035,10 @@ MagickExport size_t GetImageDepth(const Image *image,ExceptionInfo *exception)
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1018,7 +1048,7 @@ MagickExport size_t GetImageDepth(const Image *image,ExceptionInfo *exception)
continue;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1167,7 +1197,7 @@ MagickExport PointInfo *GetImageMinimumBoundingBox(Image *image,
*bounding_box,
*vertices;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1207,7 +1237,7 @@ MagickExport PointInfo *GetImageMinimumBoundingBox(Image *image,
min_diameter = -1.0,
min_projection = 0.0;
- register ssize_t
+ ssize_t
j,
k;
@@ -1523,10 +1553,10 @@ MagickExport ImageType IdentifyImageGray(const Image *image,
ImageType
type;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1605,10 +1635,10 @@ MagickExport MagickBooleanType IdentifyImageMonochrome(const Image *image,
MagickBooleanType
bilevel;
- register ssize_t
+ ssize_t
x;
- register const Quantum
+ const Quantum
*p;
ssize_t
@@ -1807,10 +1837,10 @@ MagickExport MagickBooleanType IsImageOpaque(const Image *image,
CacheView
*image_view;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1900,7 +1930,7 @@ MagickExport MagickBooleanType SetImageDepth(Image *image,
range=GetQuantumRange(depth);
if (image->storage_class == PseudoClass)
{
- register ssize_t
+ ssize_t
i;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
@@ -1931,7 +1961,7 @@ MagickExport MagickBooleanType SetImageDepth(Image *image,
Quantum
*depth_map;
- register ssize_t
+ ssize_t
i;
/*
@@ -1949,10 +1979,10 @@ MagickExport MagickBooleanType SetImageDepth(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1966,7 +1996,7 @@ MagickExport MagickBooleanType SetImageDepth(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2007,10 +2037,10 @@ MagickExport MagickBooleanType SetImageDepth(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2023,7 +2053,7 @@ MagickExport MagickBooleanType SetImageDepth(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
diff --git a/MagickCore/attribute.h b/MagickCore/attribute.h
index a326034d5..cbf8a735a 100644
--- a/MagickCore/attribute.h
+++ b/MagickCore/attribute.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/blob-private.h b/MagickCore/blob-private.h
index 0751c8733..d57912f26 100644
--- a/MagickCore/blob-private.h
+++ b/MagickCore/blob-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/blob.c b/MagickCore/blob.c
index 1785d6ec8..2a2dc025a 100644
--- a/MagickCore/blob.c
+++ b/MagickCore/blob.c
@@ -17,7 +17,7 @@
% July 1999 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -350,7 +350,7 @@ MagickExport MagickBooleanType BlobToFile(char *filename,const void *blob,
int
file;
- register size_t
+ size_t
i;
ssize_t
@@ -371,7 +371,7 @@ MagickExport MagickBooleanType BlobToFile(char *filename,const void *blob,
for (i=0; i < length; i+=count)
{
count=write(file,(const char *) blob+i,MagickMin(length-i,(size_t)
- SSIZE_MAX));
+ LONG_MAX));
if (count <= 0)
{
count=0;
@@ -1135,7 +1135,7 @@ MagickExport void DisassociateBlob(Image *image)
MagickExport MagickBooleanType DiscardBlobBytes(Image *image,
const MagickSizeType length)
{
- register MagickOffsetType
+ MagickOffsetType
i;
size_t
@@ -1402,7 +1402,7 @@ MagickExport void *FileToBlob(const char *filename,const size_t extent,
MagickOffsetType
offset;
- register size_t
+ size_t
i;
ssize_t
@@ -1502,7 +1502,7 @@ MagickExport void *FileToBlob(const char *filename,const size_t extent,
return(blob);
}
*length=(size_t) MagickMin(offset,(MagickOffsetType)
- MagickMin(extent,(size_t) SSIZE_MAX));
+ MagickMin(extent,(size_t) LONG_MAX));
blob=(unsigned char *) NULL;
if (~(*length) >= (MagickPathExtent-1))
blob=(unsigned char *) AcquireQuantumMemory(*length+MagickPathExtent,
@@ -1526,7 +1526,7 @@ MagickExport void *FileToBlob(const char *filename,const size_t extent,
for (i=0; i < *length; i+=count)
{
count=read(file,blob+i,(size_t) MagickMin(*length-i,(size_t)
- SSIZE_MAX));
+ LONG_MAX));
if (count <= 0)
{
count=0;
@@ -1586,7 +1586,7 @@ static inline ssize_t WriteBlobStream(Image *image,const size_t length,
MagickSizeType
extent;
- register unsigned char
+ unsigned char
*magick_restrict q;
assert(image->blob != (BlobInfo *) NULL);
@@ -2302,10 +2302,10 @@ MagickExport MagickBooleanType ImageToFile(Image *image,char *filename,
int
file;
- register const unsigned char
+ const unsigned char
*p;
- register size_t
+ size_t
i;
size_t
@@ -2730,7 +2730,7 @@ MagickExport MagickBooleanType InjectImageBlob(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3094,7 +3094,7 @@ MagickExport void MSBOrderLong(unsigned char *buffer,const size_t length)
int
c;
- register unsigned char
+ unsigned char
*p,
*q;
@@ -3144,7 +3144,7 @@ MagickExport void MSBOrderShort(unsigned char *p,const size_t length)
int
c;
- register unsigned char
+ unsigned char
*q;
assert(p != (unsigned char *) NULL);
@@ -3705,7 +3705,7 @@ MagickExport Image *PingBlob(const ImageInfo *image_info,const void *blob,
%
% ReadBlob() reads data from the blob or image file and returns it. It
% returns the number of bytes read. If length is zero, ReadBlob() returns
-% zero and has no other results. If length is greater than SSIZE_MAX, the
+% zero and has no other results. If length is greater than LONG_MAX, the
% result is unspecified.
%
% The format of the ReadBlob method is:
@@ -3731,7 +3731,7 @@ MagickExport ssize_t ReadBlob(Image *image,const size_t length,void *data)
int
c;
- register unsigned char
+ unsigned char
*q;
ssize_t
@@ -3812,7 +3812,7 @@ MagickExport ssize_t ReadBlob(Image *image,const size_t length,void *data)
{
default:
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i+=count)
@@ -3869,7 +3869,8 @@ MagickExport ssize_t ReadBlob(Image *image,const size_t length,void *data)
if ((count != (ssize_t) length) && (status != Z_OK))
ThrowBlobException(blob_info);
if (blob_info->eof == MagickFalse)
- blob_info->eof=gzeof(blob_info->file_info.gzfile);
+ blob_info->eof=gzeof(blob_info->file_info.gzfile) != 0 ? MagickTrue :
+ MagickFalse;
#endif
break;
}
@@ -3879,7 +3880,7 @@ MagickExport ssize_t ReadBlob(Image *image,const size_t length,void *data)
int
status;
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i+=count)
@@ -3905,7 +3906,7 @@ MagickExport ssize_t ReadBlob(Image *image,const size_t length,void *data)
break;
case BlobStream:
{
- register const unsigned char
+ const unsigned char
*p;
if (blob_info->offset >= (MagickOffsetType) blob_info->length)
@@ -3960,7 +3961,7 @@ MagickExport int ReadBlobByte(Image *image)
BlobInfo
*magick_restrict blob_info;
- register const unsigned char
+ const unsigned char
*p;
unsigned char
@@ -4104,7 +4105,7 @@ MagickExport float ReadBlobFloat(Image *image)
*/
MagickExport unsigned int ReadBlobLong(Image *image)
{
- register const unsigned char
+ const unsigned char
*p;
ssize_t
@@ -4165,7 +4166,7 @@ MagickExport MagickSizeType ReadBlobLongLong(Image *image)
MagickSizeType
value;
- register const unsigned char
+ const unsigned char
*p;
ssize_t
@@ -4228,10 +4229,10 @@ MagickExport MagickSizeType ReadBlobLongLong(Image *image)
*/
MagickExport unsigned short ReadBlobShort(Image *image)
{
- register const unsigned char
+ const unsigned char
*p;
- register unsigned short
+ unsigned short
value;
ssize_t
@@ -4282,10 +4283,10 @@ MagickExport unsigned short ReadBlobShort(Image *image)
*/
MagickExport unsigned int ReadBlobLSBLong(Image *image)
{
- register const unsigned char
+ const unsigned char
*p;
- register unsigned int
+ unsigned int
value;
ssize_t
@@ -4370,10 +4371,10 @@ MagickExport signed int ReadBlobLSBSignedLong(Image *image)
*/
MagickExport unsigned short ReadBlobLSBShort(Image *image)
{
- register const unsigned char
+ const unsigned char
*p;
- register unsigned short
+ unsigned short
value;
ssize_t
@@ -4456,10 +4457,10 @@ MagickExport signed short ReadBlobLSBSignedShort(Image *image)
*/
MagickExport unsigned int ReadBlobMSBLong(Image *image)
{
- register const unsigned char
+ const unsigned char
*p;
- register unsigned int
+ unsigned int
value;
ssize_t
@@ -4506,10 +4507,10 @@ MagickExport unsigned int ReadBlobMSBLong(Image *image)
*/
MagickExport MagickSizeType ReadBlobMSBLongLong(Image *image)
{
- register const unsigned char
+ const unsigned char
*p;
- register MagickSizeType
+ MagickSizeType
value;
ssize_t
@@ -4560,10 +4561,10 @@ MagickExport MagickSizeType ReadBlobMSBLongLong(Image *image)
*/
MagickExport unsigned short ReadBlobMSBShort(Image *image)
{
- register const unsigned char
+ const unsigned char
*p;
- register unsigned short
+ unsigned short
value;
ssize_t
@@ -4750,7 +4751,7 @@ MagickExport signed short ReadBlobSignedShort(Image *image)
% returns a pointer to the data buffer you supply or to the image memory
% buffer if its supported (zero-copy). If length is zero, ReadBlobStream()
% returns a count of zero and has no other results. If length is greater than
-% SSIZE_MAX, the result is unspecified.
+% LONG_MAX, the result is unspecified.
%
% The format of the ReadBlobStream method is:
%
@@ -4833,7 +4834,7 @@ MagickExport char *ReadBlobString(Image *image,char *string)
int
c;
- register ssize_t
+ ssize_t
i;
assert(image != (Image *) NULL);
@@ -4983,8 +4984,8 @@ MagickExport MagickOffsetType SeekBlob(Image *image,
}
case SEEK_CUR:
{
- if (((offset > 0) && (blob_info->offset > (SSIZE_MAX-offset))) ||
- ((offset < 0) && (blob_info->offset < (-SSIZE_MAX-offset))))
+ if (((offset > 0) && (blob_info->offset > (LONG_MAX-offset))) ||
+ ((offset < 0) && (blob_info->offset < (LONG_MIN-offset))))
{
errno=EOVERFLOW;
return(-1);
@@ -5601,10 +5602,10 @@ MagickExport ssize_t WriteBlob(Image *image,const size_t length,
int
c;
- register const unsigned char
+ const unsigned char
*p;
- register unsigned char
+ unsigned char
*q;
ssize_t
@@ -5683,7 +5684,7 @@ MagickExport ssize_t WriteBlob(Image *image,const size_t length,
{
default:
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i+=count)
@@ -5744,7 +5745,7 @@ MagickExport ssize_t WriteBlob(Image *image,const size_t length,
int
status;
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i+=count)
diff --git a/MagickCore/blob.h b/MagickCore/blob.h
index cb62f641a..c1450001c 100644
--- a/MagickCore/blob.h
+++ b/MagickCore/blob.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/cache-private.h b/MagickCore/cache-private.h
index 03dbd18a3..cb25b1646 100644
--- a/MagickCore/cache-private.h
+++ b/MagickCore/cache-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/cache-view.c b/MagickCore/cache-view.c
index 28668403d..bfb8b1844 100644
--- a/MagickCore/cache-view.c
+++ b/MagickCore/cache-view.c
@@ -23,7 +23,7 @@
% February 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -708,7 +708,7 @@ MagickExport MagickBooleanType GetOneCacheViewAuthenticPixel(
Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
i;
assert(cache_view != (CacheView *) NULL);
@@ -777,10 +777,10 @@ MagickExport MagickBooleanType GetOneCacheViewVirtualPixel(
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
i;
assert(cache_view != (CacheView *) NULL);
@@ -850,7 +850,7 @@ MagickExport MagickBooleanType GetOneCacheViewVirtualPixelInfo(
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*magick_restrict p;
assert(cache_view != (CacheView *) NULL);
@@ -912,7 +912,7 @@ MagickExport MagickBooleanType GetOneCacheViewVirtualMethodPixel(
const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
i;
assert(cache_view != (CacheView *) NULL);
diff --git a/MagickCore/cache-view.h b/MagickCore/cache-view.h
index 128c32ebd..162d7d5a5 100644
--- a/MagickCore/cache-view.h
+++ b/MagickCore/cache-view.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index a3be861a4..e0abf399c 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -17,7 +17,7 @@
% July 1999 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -224,8 +224,10 @@ MagickPrivate Cache AcquirePixelCache(const size_t number_threads)
cache_info->synchronize=IsStringTrue(value);
value=DestroyString(value);
}
- cache_info->width_limit=GetMagickResourceLimit(WidthResource);
- cache_info->height_limit=GetMagickResourceLimit(HeightResource);
+ cache_info->width_limit=MagickMin(GetMagickResourceLimit(WidthResource),
+ (MagickSizeType) LONG_MAX);
+ cache_info->height_limit=MagickMin(GetMagickResourceLimit(HeightResource),
+ (MagickSizeType) LONG_MAX);
cache_info->semaphore=AcquireSemaphoreInfo();
cache_info->reference_count=1;
cache_info->file_semaphore=AcquireSemaphoreInfo();
@@ -261,7 +263,7 @@ MagickPrivate NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
NexusInfo
**magick_restrict nexus_info;
- register ssize_t
+ ssize_t
i;
nexus_info=(NexusInfo **) MagickAssumeAligned(AcquireAlignedMemory(2*
@@ -418,7 +420,7 @@ static MagickBooleanType ClipPixelCacheNexus(Image *image,
CacheInfo
*magick_restrict cache_info;
- register Quantum
+ Quantum
*magick_restrict p,
*magick_restrict q;
@@ -445,7 +447,7 @@ static MagickBooleanType ClipPixelCacheNexus(Image *image,
return(MagickFalse);
for (y=0; y < (ssize_t) nexus_info->region.height; y++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) nexus_info->region.width; x++)
@@ -453,7 +455,7 @@ static MagickBooleanType ClipPixelCacheNexus(Image *image,
double
mask_alpha;
- register ssize_t
+ ssize_t
i;
mask_alpha=QuantumScale*GetPixelWriteMask(image,p);
@@ -625,7 +627,7 @@ static MagickBooleanType ClonePixelCacheOnDisk(
if (cache_info->length < 0x7ffff000)
{
count=sendfile(clone_info->file,cache_info->file,(off_t *) NULL,
- (ssize_t) cache_info->length);
+ (size_t) cache_info->length);
if (count == (ssize_t) cache_info->length)
return(MagickTrue);
if ((lseek(cache_info->file,0,SEEK_SET) < 0) ||
@@ -741,7 +743,7 @@ static MagickBooleanType ClonePixelCacheRepository(
Quantum
*pixels;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -765,10 +767,10 @@ static MagickBooleanType ClonePixelCacheRepository(
sizeof(Quantum));
else
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
/*
@@ -778,7 +780,7 @@ static MagickBooleanType ClonePixelCacheRepository(
q=clone_nexus[id]->pixels;
for (x=0; x < (ssize_t) cache_info->columns; x++)
{
- register ssize_t
+ ssize_t
i;
if (x == (ssize_t) clone_info->columns)
@@ -1117,7 +1119,7 @@ static inline void RelinquishCacheNexusPixels(NexusInfo *nexus_info)
MagickPrivate NexusInfo **DestroyPixelCacheNexus(NexusInfo **nexus_info,
const size_t number_threads)
{
- register ssize_t
+ ssize_t
i;
assert(nexus_info != (NexusInfo **) NULL);
@@ -1852,7 +1854,7 @@ MagickExport CacheType GetImagePixelCacheType(const Image *image)
static inline MagickBooleanType CopyPixel(const Image *image,
const Quantum *source,Quantum *destination)
{
- register ssize_t
+ ssize_t
i;
if (source == (const Quantum *) NULL)
@@ -1882,7 +1884,7 @@ MagickExport MagickBooleanType GetOneAuthenticPixel(Image *image,
CacheInfo
*magick_restrict cache_info;
- register Quantum
+ Quantum
*magick_restrict q;
assert(image != (Image *) NULL);
@@ -1937,7 +1939,7 @@ static MagickBooleanType GetOneAuthenticPixelFromCache(Image *image,
const int
id = GetOpenMPThreadId();
- register Quantum
+ Quantum
*magick_restrict q;
assert(image != (const Image *) NULL);
@@ -2114,7 +2116,7 @@ MagickExport MagickBooleanType GetOneVirtualPixelInfo(const Image *image,
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*magick_restrict p;
assert(image != (const Image *) NULL);
@@ -2732,20 +2734,20 @@ MagickPrivate const Quantum *GetVirtualPixelCacheNexus(const Image *image,
*magick_restrict pixels,
virtual_pixel[MaxPixelChannels];
- register const Quantum
+ const Quantum
*magick_restrict p;
- register const void
+ const void
*magick_restrict r;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
i,
u;
- register unsigned char
+ unsigned char
*magick_restrict s;
ssize_t
@@ -3408,7 +3410,7 @@ static MagickBooleanType MaskPixelCacheNexus(Image *image,NexusInfo *nexus_info,
CacheInfo
*magick_restrict cache_info;
- register Quantum
+ Quantum
*magick_restrict p,
*magick_restrict q;
@@ -3435,7 +3437,7 @@ static MagickBooleanType MaskPixelCacheNexus(Image *image,NexusInfo *nexus_info,
return(MagickFalse);
for (y=0; y < (ssize_t) nexus_info->region.height; y++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) nexus_info->region.width; x++)
@@ -3443,7 +3445,7 @@ static MagickBooleanType MaskPixelCacheNexus(Image *image,NexusInfo *nexus_info,
double
mask_alpha;
- register ssize_t
+ ssize_t
i;
mask_alpha=(double) GetPixelCompositeMask(image,p);
@@ -3547,7 +3549,7 @@ static inline MagickOffsetType WritePixelCacheRegion(
const CacheInfo *magick_restrict cache_info,const MagickOffsetType offset,
const MagickSizeType length,const unsigned char *magick_restrict buffer)
{
- register MagickOffsetType
+ MagickOffsetType
i;
ssize_t
@@ -3562,10 +3564,10 @@ static inline MagickOffsetType WritePixelCacheRegion(
{
#if !defined(MAGICKCORE_HAVE_PWRITE)
count=write(cache_info->file,buffer+i,(size_t) MagickMin(length-i,(size_t)
- SSIZE_MAX));
+ LONG_MAX));
#else
count=pwrite(cache_info->file,buffer+i,(size_t) MagickMin(length-i,(size_t)
- SSIZE_MAX),offset+i);
+ LONG_MAX),offset+i);
#endif
if (count <= 0)
{
@@ -3725,8 +3727,6 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
cache_info->length=length;
if (image->ping != MagickFalse)
{
- cache_info->storage_class=image->storage_class;
- cache_info->colorspace=image->colorspace;
cache_info->type=PingCache;
return(MagickTrue);
}
@@ -4372,7 +4372,7 @@ static inline MagickOffsetType ReadPixelCacheRegion(
const CacheInfo *magick_restrict cache_info,const MagickOffsetType offset,
const MagickSizeType length,unsigned char *magick_restrict buffer)
{
- register MagickOffsetType
+ MagickOffsetType
i;
ssize_t
@@ -4387,10 +4387,10 @@ static inline MagickOffsetType ReadPixelCacheRegion(
{
#if !defined(MAGICKCORE_HAVE_PREAD)
count=read(cache_info->file,buffer+i,(size_t) MagickMin(length-i,(size_t)
- SSIZE_MAX));
+ LONG_MAX));
#else
count=pread(cache_info->file,buffer+i,(size_t) MagickMin(length-i,(size_t)
- SSIZE_MAX),offset+i);
+ LONG_MAX),offset+i);
#endif
if (count <= 0)
{
@@ -4414,10 +4414,10 @@ static MagickBooleanType ReadPixelCacheMetacontent(
extent,
length;
- register ssize_t
+ ssize_t
y;
- register unsigned char
+ unsigned char
*magick_restrict q;
size_t
@@ -4440,7 +4440,7 @@ static MagickBooleanType ReadPixelCacheMetacontent(
case MemoryCache:
case MapCache:
{
- register unsigned char
+ unsigned char
*magick_restrict p;
/*
@@ -4585,10 +4585,10 @@ static MagickBooleanType ReadPixelCachePixels(
extent,
length;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
y;
size_t
@@ -4617,7 +4617,7 @@ static MagickBooleanType ReadPixelCachePixels(
case MemoryCache:
case MapCache:
{
- register Quantum
+ Quantum
*magick_restrict p;
/*
@@ -5015,6 +5015,16 @@ static inline void PrefetchPixelCacheNexusPixels(const NexusInfo *nexus_info,
MagickCachePrefetch((unsigned char *) nexus_info->pixels+CACHE_LINE_SIZE,1,1);
}
+static inline MagickBooleanType ValidatePixelOffset(const ssize_t x,
+ const size_t a)
+{
+ if ((x >= 0) && (x >= ((ssize_t) LONG_MAX-(ssize_t) a)))
+ return(MagickFalse);
+ if (x <= ((ssize_t) LONG_MIN+(ssize_t) a))
+ return(MagickFalse);
+ return(MagickTrue);
+}
+
static Quantum *SetPixelCacheNexusPixels(
const CacheInfo *magick_restrict cache_info,const MapMode mode,
const ssize_t x,const ssize_t y,const size_t width,const size_t height,
@@ -5040,6 +5050,15 @@ static Quantum *SetPixelCacheNexusPixels(
"NoPixelsDefinedInCache","`%s'",cache_info->filename);
return((Quantum *) NULL);
}
+ if (((MagickSizeType) width > cache_info->width_limit) ||
+ ((MagickSizeType) height > cache_info->height_limit) ||
+ (ValidatePixelOffset(x,width) == MagickFalse) ||
+ (ValidatePixelOffset(y,height) == MagickFalse))
+ {
+ (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
+ "WidthOrHeightExceedsLimit","`%s'",cache_info->filename);
+ return((Quantum *) NULL);
+ }
if (((cache_info->type == MemoryCache) || (cache_info->type == MapCache)) &&
(buffered == MagickFalse))
{
@@ -5073,13 +5092,6 @@ static Quantum *SetPixelCacheNexusPixels(
/*
Pixels are stored in a staging region until they are synced to the cache.
*/
- if (((MagickSizeType) width > cache_info->width_limit) ||
- ((MagickSizeType) height > cache_info->height_limit))
- {
- (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
- "WidthOrHeightExceedsLimit","`%s'",cache_info->filename);
- return((Quantum *) NULL);
- }
number_pixels=(MagickSizeType) width*height;
length=MagickMax(number_pixels,MagickMax(cache_info->columns,
cache_info->rows))*cache_info->number_channels*sizeof(*nexus_info->pixels);
@@ -5172,10 +5184,10 @@ static MagickBooleanType SetCacheAlphaChannel(Image *image,const Quantum alpha,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -5549,10 +5561,10 @@ static MagickBooleanType WritePixelCacheMetacontent(CacheInfo *cache_info,
extent,
length;
- register const unsigned char
+ const unsigned char
*magick_restrict p;
- register ssize_t
+ ssize_t
y;
size_t
@@ -5575,7 +5587,7 @@ static MagickBooleanType WritePixelCacheMetacontent(CacheInfo *cache_info,
case MemoryCache:
case MapCache:
{
- register unsigned char
+ unsigned char
*magick_restrict q;
/*
@@ -5720,10 +5732,10 @@ static MagickBooleanType WritePixelCachePixels(
extent,
length;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
y;
size_t
@@ -5744,7 +5756,7 @@ static MagickBooleanType WritePixelCachePixels(
case MemoryCache:
case MapCache:
{
- register Quantum
+ Quantum
*magick_restrict q;
/*
diff --git a/MagickCore/cache.h b/MagickCore/cache.h
index 4c2f07ecc..2d29db563 100644
--- a/MagickCore/cache.h
+++ b/MagickCore/cache.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/channel.c b/MagickCore/channel.c
index 02968bbec..19c4f3721 100644
--- a/MagickCore/channel.c
+++ b/MagickCore/channel.c
@@ -17,7 +17,7 @@
% December 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -147,13 +147,13 @@ static MagickBooleanType ChannelImage(Image *destination_image,
destination_traits,
source_traits;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -574,13 +574,13 @@ MagickExport Image *CombineImages(const Image *image,
Quantum
*pixels;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
i;
if (status == MagickFalse)
@@ -595,7 +595,7 @@ MagickExport Image *CombineImages(const Image *image,
next=image;
for (i=0; i < (ssize_t) GetPixelChannels(combine_image); i++)
{
- register ssize_t
+ ssize_t
x;
PixelChannel channel = GetPixelChannelChannel(combine_image,i);
@@ -760,13 +760,13 @@ MagickExport Image *SeparateImage(const Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -781,7 +781,7 @@ MagickExport Image *SeparateImage(const Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
SetPixelChannel(separate_image,GrayPixelChannel,(Quantum) 0,q);
@@ -852,7 +852,7 @@ MagickExport Image *SeparateImages(const Image *image,ExceptionInfo *exception)
*images,
*separate_image;
- register ssize_t
+ ssize_t
i;
assert(image != (Image *) NULL);
@@ -918,7 +918,7 @@ static inline void FlattenPixelInfo(const Image *image,const PixelInfo *p,
gamma,
Sa;
- register ssize_t
+ ssize_t
i;
/*
@@ -1010,10 +1010,10 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1030,7 +1030,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image,
double
gamma;
- register ssize_t
+ ssize_t
i;
gamma=QuantumScale*GetPixelAlpha(image,q);
@@ -1070,10 +1070,10 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1130,10 +1130,10 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1151,7 +1151,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image,
gamma,
Sa;
- register ssize_t
+ ssize_t
i;
Sa=QuantumScale*GetPixelAlpha(image,q);
@@ -1223,10 +1223,10 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1281,10 +1281,10 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image,
PixelInfo
pixel;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
diff --git a/MagickCore/channel.h b/MagickCore/channel.h
index 3d379ded9..2fb9fd8ff 100644
--- a/MagickCore/channel.h
+++ b/MagickCore/channel.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/cipher.c b/MagickCore/cipher.c
index b2b6ca30d..057b11c47 100644
--- a/MagickCore/cipher.c
+++ b/MagickCore/cipher.c
@@ -16,7 +16,7 @@
% March 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -280,7 +280,7 @@ static AESInfo *DestroyAESInfo(AESInfo *aes_info)
static inline void AddRoundKey(const unsigned int *ciphertext,
const unsigned int *key,unsigned int *plaintext)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -320,10 +320,10 @@ static inline unsigned int ByteSubTransform(unsigned int x,
static void FinalizeRoundKey(const unsigned int *ciphertext,
const unsigned int *key,unsigned char *plaintext)
{
- register unsigned char
+ unsigned char
*p;
- register unsigned int
+ unsigned int
i,
j;
@@ -349,10 +349,10 @@ static void FinalizeRoundKey(const unsigned int *ciphertext,
static void InitializeRoundKey(const unsigned char *ciphertext,
const unsigned int *key,unsigned int *plaintext)
{
- register const unsigned char
+ const unsigned char
*p;
- register unsigned int
+ unsigned int
i,
j;
@@ -381,7 +381,7 @@ static inline unsigned int RotateLeft(const unsigned int x)
static void EncipherAESBlock(AESInfo *aes_info,const unsigned char *plaintext,
unsigned char *ciphertext)
{
- register ssize_t
+ ssize_t
i,
j;
@@ -523,7 +523,7 @@ static void EncipherAESBlock(AESInfo *aes_info,const unsigned char *plaintext,
static inline void IncrementCipherNonce(const size_t length,
unsigned char *nonce)
{
- register ssize_t
+ ssize_t
i;
for (i=(ssize_t) (length-1); i >= 0; i--)
@@ -583,7 +583,7 @@ MagickExport MagickBooleanType PasskeyDecipherImage(Image *image,
SignatureInfo
*signature_info;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -658,11 +658,11 @@ MagickExport MagickBooleanType PasskeyDecipherImage(Image *image,
image_view=AcquireAuthenticCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -793,7 +793,7 @@ MagickExport MagickBooleanType PasskeyEncipherImage(Image *image,
QuantumType
quantum_type;
- register unsigned char
+ unsigned char
*p;
SignatureInfo
@@ -878,11 +878,11 @@ MagickExport MagickBooleanType PasskeyEncipherImage(Image *image,
image_view=AcquireAuthenticCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -960,7 +960,7 @@ MagickExport MagickBooleanType PasskeyEncipherImage(Image *image,
static inline void InverseAddRoundKey(const unsigned int *alpha,
unsigned int *beta)
{
- register unsigned int
+ unsigned int
i,
j;
@@ -993,7 +993,7 @@ static inline unsigned int RotateRight(const unsigned int x)
static void SetAESKey(AESInfo *aes_info,const StringInfo *key)
{
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickCore/cipher.h b/MagickCore/cipher.h
index 77939a334..044345187 100644
--- a/MagickCore/cipher.h
+++ b/MagickCore/cipher.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/client.c b/MagickCore/client.c
index 4f758cd8e..197fd326a 100644
--- a/MagickCore/client.c
+++ b/MagickCore/client.c
@@ -17,7 +17,7 @@
% March 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickCore/client.h b/MagickCore/client.h
index a475c7058..28f4c26f4 100644
--- a/MagickCore/client.h
+++ b/MagickCore/client.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/coder-private.h b/MagickCore/coder-private.h
index 31a6665d5..f431be8a1 100644
--- a/MagickCore/coder-private.h
+++ b/MagickCore/coder-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/coder.c b/MagickCore/coder.c
index 8b0abaf8d..6f9348d1b 100644
--- a/MagickCore/coder.c
+++ b/MagickCore/coder.c
@@ -17,7 +17,7 @@
% May 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -125,7 +125,7 @@ static MagickBooleanType
static void *DestroyCoderNode(void *coder_info)
{
- register CoderInfo
+ CoderInfo
*p;
p=(CoderInfo *) coder_info;
@@ -146,7 +146,7 @@ static SplayTreeInfo *AcquireCoderCache(ExceptionInfo *exception)
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
SplayTreeInfo
@@ -163,7 +163,7 @@ static SplayTreeInfo *AcquireCoderCache(ExceptionInfo *exception)
CoderInfo
*coder_info;
- register const CoderMapInfo
+ const CoderMapInfo
*p;
p=CoderMap+i;
@@ -325,10 +325,10 @@ MagickExport const CoderInfo **GetCoderInfoList(const char *pattern,
const CoderInfo
**coder_map;
- register const CoderInfo
+ const CoderInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -395,7 +395,7 @@ MagickExport const CoderInfo **GetCoderInfoList(const char *pattern,
static int CoderCompare(const void *x,const void *y)
{
- register const char
+ const char
**p,
**q;
@@ -410,10 +410,10 @@ MagickExport char **GetCoderList(const char *pattern,
char
**coder_map;
- register const CoderInfo
+ const CoderInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -520,7 +520,7 @@ MagickExport MagickBooleanType ListCoderInfo(FILE *file,
const CoderInfo
**coder_info;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickCore/coder.h b/MagickCore/coder.h
index 8cc146f00..7c120882e 100644
--- a/MagickCore/coder.h
+++ b/MagickCore/coder.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/color-private.h b/MagickCore/color-private.h
index 856a87e9a..786339c1a 100644
--- a/MagickCore/color-private.h
+++ b/MagickCore/color-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -45,7 +45,7 @@ static inline MagickBooleanType GetColorRange(const char *color,
if (*color != '\0')
{
- register char
+ char
*p;
(void) CopyMagickString(start_color,color,MagickPathExtent);
diff --git a/MagickCore/color.c b/MagickCore/color.c
index 46a20389a..7a64c0108 100644
--- a/MagickCore/color.c
+++ b/MagickCore/color.c
@@ -16,7 +16,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -839,7 +839,7 @@ static LinkedListInfo *AcquireColorCache(const char *filename,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
/*
@@ -874,7 +874,7 @@ static LinkedListInfo *AcquireColorCache(const char *filename,
ColorInfo
*color_info;
- register const ColormapInfo
+ const ColormapInfo
*p;
p=Colormap+i;
@@ -950,7 +950,7 @@ MagickPrivate MagickBooleanType ColorComponentGenesis(void)
static void *DestroyColorElement(void *color_info)
{
- register ColorInfo
+ ColorInfo
*p;
p=(ColorInfo *) color_info;
@@ -1010,10 +1010,10 @@ MagickExport const ColorInfo *GetColorCompliance(const char *name,
char
colorname[MagickPathExtent];
- register const ColorInfo
+ const ColorInfo
*p;
- register char
+ char
*q;
assert(exception != (ExceptionInfo *) NULL);
@@ -1285,10 +1285,10 @@ MagickExport const ColorInfo **GetColorInfoList(const char *pattern,
const ColorInfo
**colors;
- register const ColorInfo
+ const ColorInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -1359,7 +1359,7 @@ extern "C" {
static int ColorCompare(const void *x,const void *y)
{
- register const char
+ const char
**p,
**q;
@@ -1378,10 +1378,10 @@ MagickExport char **GetColorList(const char *pattern,
char
**colors;
- register const ColorInfo
+ const ColorInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -1650,7 +1650,7 @@ MagickPrivate MagickBooleanType IsEquivalentAlpha(const Image *image,
fuzz,
pixel;
- register double
+ double
distance;
if (image->alpha_trait == UndefinedPixelTrait)
@@ -1718,11 +1718,11 @@ MagickExport MagickBooleanType IsEquivalentImage(const Image *image,
target,
pixel;
- register const Quantum
+ const Quantum
*p,
*q;
- register ssize_t
+ ssize_t
i,
x;
@@ -1827,7 +1827,7 @@ MagickPrivate MagickBooleanType IsEquivalentIntensity(const Image *image,
fuzz,
pixel;
- register double
+ double
distance;
if (GetPixelInfoIntensity(image,p) == GetPixelInfoIntensity(image,q))
@@ -1879,7 +1879,7 @@ MagickExport MagickBooleanType ListColorInfo(FILE *file,
const ColorInfo
**color_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2177,6 +2177,91 @@ static MagickBooleanType LoadColorCache(LinkedListInfo *cache,const char *xml,
% o exception: return any errors or warnings in this structure.
%
*/
+
+static MagickStatusType ParseCSSColor(const char *magick_restrict color,
+ GeometryInfo *geometry_info)
+{
+ char
+ *q;
+
+ ssize_t
+ i;
+
+ MagickStatusType
+ flags;
+
+ SetGeometryInfo(geometry_info);
+ flags=NoValue;
+ if ((color == (char *) NULL) || (*color == '\0'))
+ return(flags);
+ q=(char *) color;
+ if (*q == '(')
+ q++;
+ for (i=0; (i < 5) && (*q != ')') && (*q != '\0'); i++)
+ {
+ char
+ *p;
+
+ float
+ intensity;
+
+ p=q;
+ intensity=(float) StringToDouble(p,&q);
+ if (p == q)
+ break;
+ if (*q == '%')
+ {
+ intensity*=0.01f*255.0f;
+ q++;
+ }
+ switch (i)
+ {
+ case 0:
+ {
+ geometry_info->rho=intensity;
+ flags|=RhoValue;
+ if (LocaleNCompare(q,"deg",3) == 0)
+ q+=3;
+ break;
+ }
+ case 1:
+ {
+ geometry_info->sigma=intensity;
+ flags|=SigmaValue;
+ break;
+ }
+ case 2:
+ {
+ geometry_info->xi=intensity;
+ flags|=XiValue;
+ break;
+ }
+ case 3:
+ {
+ geometry_info->psi=intensity;
+ flags|=PsiValue;
+ break;
+ }
+ case 4:
+ {
+ geometry_info->chi=intensity;
+ flags|=ChiValue;
+ break;
+ }
+ }
+ while (isspace((int) ((unsigned char) *q)) != 0)
+ q++;
+ if (*q == ',')
+ q++;
+ if (*q == '/')
+ {
+ flags|=AlphaValue;
+ q++;
+ }
+ }
+ return(flags);
+}
+
MagickExport MagickBooleanType QueryColorCompliance(const char *name,
const ComplianceType compliance,PixelInfo *color,ExceptionInfo *exception)
{
@@ -2189,10 +2274,10 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name,
MagickStatusType
flags;
- register const ColorInfo
+ const ColorInfo
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2326,17 +2411,19 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name,
if (LocaleNCompare(colorspace,"device-",7) == 0)
{
(void) CopyMagickString(colorspace,colorspace+7,MagickPathExtent);
- scale=(double) QuantumRange;
+ if (strchr(name,'%') == (char *) NULL)
+ scale=(double) QuantumRange;
icc_color=MagickTrue;
}
- if (LocaleCompare(colorspace,"icc-color") == 0)
+ if ((LocaleCompare(colorspace,"color") == 0) ||
+ (LocaleCompare(colorspace,"icc-color") == 0))
{
- register ssize_t
+ ssize_t
j;
(void) CopyMagickString(colorspace,name+i+2,MagickPathExtent);
for (j=0; colorspace[j] != '\0'; j++)
- if (colorspace[j] == ',')
+ if ((colorspace[j] == ' ') || (colorspace[j] == ','))
break;
colorspace[j--]='\0';
i+=j+3;
@@ -2363,11 +2450,10 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name,
color->colorspace=sRGBColorspace; /* as required by SVG standard */
color->depth=8;
}
- SetGeometryInfo(&geometry_info);
if (i >= (ssize_t) strlen(name))
- flags=ParseGeometry(name,&geometry_info);
+ flags=ParseCSSColor(name,&geometry_info);
else
- flags=ParseGeometry(name+i+1,&geometry_info);
+ flags=ParseCSSColor(name+i+1,&geometry_info);
if (flags == 0)
{
char
@@ -2400,8 +2486,8 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name,
colorname=DestroyString(colorname);
return(status);
}
- if ((flags & PercentValue) != 0)
- scale=(double) (QuantumRange/100.0);
+ if ((flags & AlphaValue) != 0)
+ color->alpha_trait=BlendPixelTrait;
if ((flags & RhoValue) != 0)
color->red=(double) ClampToQuantum((MagickRealType) (scale*
geometry_info.rho));
@@ -2419,8 +2505,14 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name,
geometry_info.psi));
else
if (color->alpha_trait != UndefinedPixelTrait)
- color->alpha=(double) ClampToQuantum(QuantumRange*
- geometry_info.psi);
+ {
+ if ((flags & AlphaValue) != 0)
+ color->alpha=(double) ClampToQuantum((MagickRealType) (scale*
+ geometry_info.psi));
+ else
+ color->alpha=(double) ClampToQuantum((MagickRealType) (
+ QuantumRange*geometry_info.psi));
+ }
}
if (((flags & ChiValue) != 0) &&
(color->alpha_trait != UndefinedPixelTrait))
@@ -2458,8 +2550,6 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name,
red;
scale=1.0/255.0;
- if ((flags & PercentValue) != 0)
- scale=1.0/100.0;
geometry_info.sigma*=scale;
geometry_info.xi*=scale;
red=0.0;
@@ -2577,7 +2667,7 @@ MagickExport MagickBooleanType QueryColorname(
double
alpha;
- register const ColorInfo
+ const ColorInfo
*p;
magick_unreferenced(image);
diff --git a/MagickCore/color.h b/MagickCore/color.h
index 5ee656913..d8af3b519 100644
--- a/MagickCore/color.h
+++ b/MagickCore/color.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/colormap-private.h b/MagickCore/colormap-private.h
index 8bf0b0211..1fd20c1ea 100644
--- a/MagickCore/colormap-private.h
+++ b/MagickCore/colormap-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/colormap.c b/MagickCore/colormap.c
index 6c23412bf..396da3986 100644
--- a/MagickCore/colormap.c
+++ b/MagickCore/colormap.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -49,6 +49,7 @@
#include "MagickCore/color.h"
#include "MagickCore/color-private.h"
#include "MagickCore/colormap.h"
+#include "MagickCore/colormap-private.h"
#include "MagickCore/client.h"
#include "MagickCore/configure.h"
#include "MagickCore/exception.h"
@@ -104,7 +105,7 @@
MagickExport MagickBooleanType AcquireImageColormap(Image *image,
const size_t colors,ExceptionInfo *exception)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -209,10 +210,10 @@ MagickExport MagickBooleanType CycleColormapImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
ssize_t
@@ -302,7 +303,7 @@ MagickExport MagickBooleanType SortColormapByIntensity(Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -347,10 +348,10 @@ MagickExport MagickBooleanType SortColormapByIntensity(Image *image,
Quantum
index;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -361,7 +362,8 @@ MagickExport MagickBooleanType SortColormapByIntensity(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- index=(Quantum) pixels[(ssize_t) GetPixelIndex(image,q)];
+ i=ConstrainColormapIndex(image,GetPixelIndex(image,q),exception);
+ index=(Quantum) pixels[i];
SetPixelIndex(image,index,q);
SetPixelViaPixelInfo(image,image->colormap+(ssize_t) index,q);
q+=GetPixelChannels(image);
diff --git a/MagickCore/colormap.h b/MagickCore/colormap.h
index d1310bcee..d1cbe0081 100644
--- a/MagickCore/colormap.h
+++ b/MagickCore/colormap.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/colorspace-private.h b/MagickCore/colorspace-private.h
index 8fd3b44c4..423ec54c6 100644
--- a/MagickCore/colorspace-private.h
+++ b/MagickCore/colorspace-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -131,8 +131,10 @@ static inline MagickBooleanType IssRGBCompatibleColorspace(
const ColorspaceType colorspace)
{
if ((colorspace == sRGBColorspace) || (colorspace == RGBColorspace) ||
- (colorspace == scRGBColorspace) || (colorspace == TransparentColorspace) ||
- (colorspace == GRAYColorspace) || (colorspace == LinearGRAYColorspace))
+ (colorspace == Adobe98Colorspace) || (colorspace == ProPhotoColorspace) ||
+ (colorspace == DisplayP3Colorspace) || (colorspace == scRGBColorspace) ||
+ (colorspace == TransparentColorspace) || (colorspace == GRAYColorspace) ||
+ (colorspace == LinearGRAYColorspace))
return(MagickTrue);
return(MagickFalse);
}
diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c
index 08153f801..2ffc72f88 100644
--- a/MagickCore/colorspace.c
+++ b/MagickCore/colorspace.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -169,6 +169,42 @@ MagickExport ColorspaceType GetImageColorspaceType(const Image *image,
%
*/
+static inline void ConvertAdobe98ToRGB(const double r,const double g,
+ const double b,double *red,double *green,double *blue)
+{
+ double
+ X,
+ Y,
+ Z;
+
+ ConvertAdobe98ToXYZ(r,g,b,&X,&Y,&Z);
+ ConvertXYZToRGB(X,Y,Z,red,green,blue);
+}
+
+static inline void ConvertDisplayP3ToRGB(const double r,const double g,
+ const double b,double *red,double *green,double *blue)
+{
+ double
+ X,
+ Y,
+ Z;
+
+ ConvertDisplayP3ToXYZ(r,g,b,&X,&Y,&Z);
+ ConvertXYZToRGB(X,Y,Z,red,green,blue);
+}
+
+static inline void ConvertProPhotoToRGB(const double r,const double g,
+ const double b,double *red,double *green,double *blue)
+{
+ double
+ X,
+ Y,
+ Z;
+
+ ConvertProPhotoToXYZ(r,g,b,&X,&Y,&Z);
+ ConvertXYZToRGB(X,Y,Z,red,green,blue);
+}
+
static inline void ConvertRGBToCMY(const double red,const double green,
const double blue,double *cyan,double *magenta,double *yellow)
{
@@ -177,6 +213,42 @@ static inline void ConvertRGBToCMY(const double red,const double green,
*yellow=QuantumScale*(QuantumRange-blue);
}
+static void ConvertRGBToAdobe98(const double red,const double green,
+ const double blue,double *r,double *g,double *b)
+{
+ double
+ X,
+ Y,
+ Z;
+
+ ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
+ ConvertXYZToAdobe98(X,Y,Z,r,g,b);
+}
+
+static void ConvertRGBToDisplayP3(const double red,const double green,
+ const double blue,double *r,double *g,double *b)
+{
+ double
+ X,
+ Y,
+ Z;
+
+ ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
+ ConvertXYZToDisplayP3(X,Y,Z,r,g,b);
+}
+
+static void ConvertRGBToProPhoto(const double red,const double green,
+ const double blue,double *r,double *g,double *b)
+{
+ double
+ X,
+ Y,
+ Z;
+
+ ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
+ ConvertXYZToProPhoto(X,Y,Z,r,g,b);
+}
+
static inline void ConvertXYZToLMS(const double x,const double y,
const double z,double *L,double *M,double *S)
{
@@ -392,7 +464,7 @@ static MagickBooleanType sRGBTransformImage(Image *image,
PrimaryInfo
primary_info;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -445,10 +517,10 @@ static MagickBooleanType sRGBTransformImage(Image *image,
PixelInfo
pixel;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -501,10 +573,10 @@ static MagickBooleanType sRGBTransformImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -558,10 +630,10 @@ static MagickBooleanType sRGBTransformImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -594,6 +666,8 @@ static MagickBooleanType sRGBTransformImage(Image *image,
return(status);
}
case CMYColorspace:
+ case Adobe98Colorspace:
+ case DisplayP3Colorspace:
case HCLColorspace:
case HCLpColorspace:
case HSBColorspace:
@@ -608,6 +682,7 @@ static MagickBooleanType sRGBTransformImage(Image *image,
case LCHuvColorspace:
case LMSColorspace:
case LuvColorspace:
+ case ProPhotoColorspace:
case xyYColorspace:
case XYZColorspace:
case YCbCrColorspace:
@@ -646,10 +721,10 @@ static MagickBooleanType sRGBTransformImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -676,11 +751,21 @@ static MagickBooleanType sRGBTransformImage(Image *image,
blue=(double) GetPixelBlue(image,q);
switch (colorspace)
{
+ case Adobe98Colorspace:
+ {
+ ConvertRGBToAdobe98(red,green,blue,&X,&Y,&Z);
+ break;
+ }
case CMYColorspace:
{
ConvertRGBToCMY(red,green,blue,&X,&Y,&Z);
break;
}
+ case DisplayP3Colorspace:
+ {
+ ConvertRGBToDisplayP3(red,green,blue,&X,&Y,&Z);
+ break;
+ }
case HCLColorspace:
{
ConvertRGBToHCL(red,green,blue,&X,&Y,&Z);
@@ -747,6 +832,11 @@ static MagickBooleanType sRGBTransformImage(Image *image,
ConvertRGBToLuv(red,green,blue,&X,&Y,&Z);
break;
}
+ case ProPhotoColorspace:
+ {
+ ConvertRGBToProPhoto(red,green,blue,&X,&Y,&Z);
+ break;
+ }
case xyYColorspace:
{
ConvertRGBToxyY(red,green,blue,&X,&Y,&Z);
@@ -869,10 +959,10 @@ static MagickBooleanType sRGBTransformImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -936,10 +1026,10 @@ static MagickBooleanType sRGBTransformImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1182,13 +1272,13 @@ static MagickBooleanType sRGBTransformImage(Image *image,
PixelInfo
pixel;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
- register unsigned int
+ unsigned int
blue,
green,
red;
@@ -1244,7 +1334,7 @@ static MagickBooleanType sRGBTransformImage(Image *image,
}
case PseudoClass:
{
- register unsigned int
+ unsigned int
blue,
green,
red;
@@ -1941,7 +2031,7 @@ static MagickBooleanType TransformsRGBImage(Image *image,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1989,10 +2079,10 @@ static MagickBooleanType TransformsRGBImage(Image *image,
PixelInfo
pixel;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2045,10 +2135,10 @@ static MagickBooleanType TransformsRGBImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2106,10 +2196,10 @@ static MagickBooleanType TransformsRGBImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2142,7 +2232,9 @@ static MagickBooleanType TransformsRGBImage(Image *image,
return(MagickFalse);
return(status);
}
+ case Adobe98Colorspace:
case CMYColorspace:
+ case DisplayP3Colorspace:
case HCLColorspace:
case HCLpColorspace:
case HSBColorspace:
@@ -2157,6 +2249,7 @@ static MagickBooleanType TransformsRGBImage(Image *image,
case LCHuvColorspace:
case LMSColorspace:
case LuvColorspace:
+ case ProPhotoColorspace:
case xyYColorspace:
case XYZColorspace:
case YCbCrColorspace:
@@ -2195,10 +2288,10 @@ static MagickBooleanType TransformsRGBImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2225,11 +2318,21 @@ static MagickBooleanType TransformsRGBImage(Image *image,
Z=QuantumScale*GetPixelBlue(image,q);
switch (image->colorspace)
{
+ case Adobe98Colorspace:
+ {
+ ConvertAdobe98ToRGB(X,Y,Z,&red,&green,&blue);
+ break;
+ }
case CMYColorspace:
{
ConvertCMYToRGB(X,Y,Z,&red,&green,&blue);
break;
}
+ case DisplayP3Colorspace:
+ {
+ ConvertDisplayP3ToRGB(X,Y,Z,&red,&green,&blue);
+ break;
+ }
case HCLColorspace:
{
ConvertHCLToRGB(X,Y,Z,&red,&green,&blue);
@@ -2296,6 +2399,11 @@ static MagickBooleanType TransformsRGBImage(Image *image,
ConvertLuvToRGB(X,Y,Z,&red,&green,&blue);
break;
}
+ case ProPhotoColorspace:
+ {
+ ConvertProPhotoToRGB(X,Y,Z,&red,&green,&blue);
+ break;
+ }
case xyYColorspace:
{
ConvertxyYToRGB(X,Y,Z,&red,&green,&blue);
@@ -2421,10 +2529,10 @@ static MagickBooleanType TransformsRGBImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2487,10 +2595,10 @@ static MagickBooleanType TransformsRGBImage(Image *image,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2722,10 +2830,10 @@ static MagickBooleanType TransformsRGBImage(Image *image,
PixelInfo
pixel;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2739,7 +2847,7 @@ static MagickBooleanType TransformsRGBImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register size_t
+ size_t
blue,
green,
red;
@@ -2805,7 +2913,7 @@ static MagickBooleanType TransformsRGBImage(Image *image,
PixelInfo
pixel;
- register size_t
+ size_t
blue,
green,
red;
diff --git a/MagickCore/colorspace.h b/MagickCore/colorspace.h
index 7fa1b9c09..482b13340 100644
--- a/MagickCore/colorspace.h
+++ b/MagickCore/colorspace.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -58,7 +58,10 @@ typedef enum
YPbPrColorspace,
YUVColorspace,
LinearGRAYColorspace, /* Single Channel greyscale (linear) image */
- JzazbzColorspace
+ JzazbzColorspace,
+ DisplayP3Colorspace,
+ Adobe98Colorspace,
+ ProPhotoColorspace
} ColorspaceType;
extern MagickExport ColorspaceType
diff --git a/MagickCore/compare.c b/MagickCore/compare.c
index 088e9199c..79f101c9b 100644
--- a/MagickCore/compare.c
+++ b/MagickCore/compare.c
@@ -17,7 +17,7 @@
% December 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -108,7 +108,7 @@
static size_t GetImageChannels(const Image *image)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -234,14 +234,14 @@ MagickExport Image *CompareImages(Image *image,const Image *reconstruct_image,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register Quantum
+ Quantum
*magick_restrict r;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -264,7 +264,7 @@ MagickExport Image *CompareImages(Image *image,const Image *reconstruct_image,
MagickStatusType
difference;
- register ssize_t
+ ssize_t
i;
if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -399,11 +399,11 @@ static MagickBooleanType GetAbsoluteDistortion(const Image *image,
double
channel_distortion[MaxPixelChannels+1];
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
j,
x;
@@ -426,7 +426,7 @@ static MagickBooleanType GetAbsoluteDistortion(const Image *image,
MagickBooleanType
difference;
- register ssize_t
+ ssize_t
i;
if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -493,7 +493,7 @@ static MagickBooleanType GetFuzzDistortion(const Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
j;
size_t
@@ -518,11 +518,11 @@ static MagickBooleanType GetFuzzDistortion(const Image *image,
double
channel_distortion[MaxPixelChannels+1];
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -541,7 +541,7 @@ static MagickBooleanType GetFuzzDistortion(const Image *image,
Da,
Sa;
- register ssize_t
+ ssize_t
i;
if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -608,7 +608,7 @@ static MagickBooleanType GetMeanAbsoluteDistortion(const Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
j;
size_t
@@ -633,11 +633,11 @@ static MagickBooleanType GetMeanAbsoluteDistortion(const Image *image,
double
channel_distortion[MaxPixelChannels+1];
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -656,7 +656,7 @@ static MagickBooleanType GetMeanAbsoluteDistortion(const Image *image,
Da,
Sa;
- register ssize_t
+ ssize_t
i;
if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -741,11 +741,11 @@ static MagickBooleanType GetMeanErrorPerPixel(Image *image,
reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
for (y=0; y < (ssize_t) rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -761,7 +761,7 @@ static MagickBooleanType GetMeanErrorPerPixel(Image *image,
Da,
Sa;
- register ssize_t
+ ssize_t
i;
if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -824,7 +824,7 @@ static MagickBooleanType GetMeanSquaredDistortion(const Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
j;
size_t
@@ -849,11 +849,11 @@ static MagickBooleanType GetMeanSquaredDistortion(const Image *image,
double
channel_distortion[MaxPixelChannels+1];
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -872,7 +872,7 @@ static MagickBooleanType GetMeanSquaredDistortion(const Image *image,
Da,
Sa;
- register ssize_t
+ ssize_t
i;
if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -948,7 +948,7 @@ static MagickBooleanType GetNormalizedCrossCorrelationDistortion(
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
size_t
@@ -985,11 +985,11 @@ static MagickBooleanType GetNormalizedCrossCorrelationDistortion(
reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
for (y=0; y < (ssize_t) rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -1016,11 +1016,11 @@ static MagickBooleanType GetNormalizedCrossCorrelationDistortion(
area=PerceptibleReciprocal(area);
for (y=0; y < (ssize_t) rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -1151,11 +1151,11 @@ static MagickBooleanType GetPeakAbsoluteDistortion(const Image *image,
double
channel_distortion[MaxPixelChannels+1];
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
j,
x;
@@ -1175,7 +1175,7 @@ static MagickBooleanType GetPeakAbsoluteDistortion(const Image *image,
Da,
Sa;
- register ssize_t
+ ssize_t
i;
if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -1241,7 +1241,7 @@ static MagickBooleanType GetPeakSignalToNoiseRatio(const Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
status=GetMeanSquaredDistortion(image,reconstruct_image,distortion,exception);
@@ -1293,7 +1293,7 @@ static MagickBooleanType GetPerceptualHashDistortion(const Image *image,
double
difference;
- register ssize_t
+ ssize_t
i;
difference=0.0;
@@ -1303,7 +1303,7 @@ static MagickBooleanType GetPerceptualHashDistortion(const Image *image,
alpha,
beta;
- register ssize_t
+ ssize_t
j;
for (j=0; j < (ssize_t) channel_phash[0].number_colorspaces; j++)
@@ -1338,7 +1338,7 @@ static MagickBooleanType GetRootMeanSquaredDistortion(const Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
status=GetMeanSquaredDistortion(image,reconstruct_image,distortion,exception);
@@ -1379,7 +1379,7 @@ static MagickBooleanType GetStructuralSimilarityDistortion(const Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1429,11 +1429,11 @@ static MagickBooleanType GetStructuralSimilarityDistortion(const Image *image,
double
channel_distortion[MaxPixelChannels+1];
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
i,
x;
@@ -1460,11 +1460,11 @@ static MagickBooleanType GetStructuralSimilarityDistortion(const Image *image,
y_pixel_mu[MaxPixelChannels+1],
y_pixel_sigma_squared[MaxPixelChannels+1];
- register const Quantum
+ const Quantum
*magick_restrict reference,
*magick_restrict target;
- register MagickRealType
+ MagickRealType
*k;
ssize_t
@@ -1481,7 +1481,7 @@ static MagickBooleanType GetStructuralSimilarityDistortion(const Image *image,
target=q;
for (v=0; v < (ssize_t) kernel_info->height; v++)
{
- register ssize_t
+ ssize_t
u;
for (u=0; u < (ssize_t) kernel_info->width; u++)
@@ -1578,7 +1578,7 @@ static MagickBooleanType GetStructuralDisimilarityDistortion(const Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
status=GetStructuralSimilarityDistortion(image,reconstruct_image,
@@ -1904,11 +1904,11 @@ MagickExport MagickBooleanType IsImagesEqual(const Image *image,
reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
for (y=0; y < (ssize_t) rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -1917,7 +1917,7 @@ MagickExport MagickBooleanType IsImagesEqual(const Image *image,
break;
for (x=0; x < (ssize_t) columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2037,11 +2037,11 @@ MagickExport MagickBooleanType SetImageColorMetric(Image *image,
reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
for (y=0; y < (ssize_t) rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -2050,7 +2050,7 @@ MagickExport MagickBooleanType SetImageColorMetric(Image *image,
break;
for (x=0; x < (ssize_t) columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2220,10 +2220,10 @@ MagickExport Image *SimilarityImage(const Image *image,const Image *reference,
double
similarity;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2242,7 +2242,7 @@ MagickExport Image *SimilarityImage(const Image *image,const Image *reference,
}
for (x=0; x < (ssize_t) (image->columns-reference->columns+1); x++)
{
- register ssize_t
+ ssize_t
i;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
diff --git a/MagickCore/compare.h b/MagickCore/compare.h
index 703bb4d8d..59f57a99d 100644
--- a/MagickCore/compare.h
+++ b/MagickCore/compare.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/composite-private.h b/MagickCore/composite-private.h
index 0c3747c18..a2205f940 100644
--- a/MagickCore/composite-private.h
+++ b/MagickCore/composite-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -57,7 +57,7 @@ static inline void CompositePixelOver(const Image *image,const PixelInfo *p,
gamma,
Sa;
- register ssize_t
+ ssize_t
i;
/*
diff --git a/MagickCore/composite.c b/MagickCore/composite.c
index 28e2dfbba..b06a2defb 100644
--- a/MagickCore/composite.c
+++ b/MagickCore/composite.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -333,13 +333,13 @@ static MagickBooleanType CompositeOverImage(Image *image,
canvas_pixel,
source_pixel;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -391,7 +391,7 @@ static MagickBooleanType CompositeOverImage(Image *image,
Sc,
Sca;
- register ssize_t
+ ssize_t
i;
size_t
@@ -624,13 +624,13 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*p;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -646,7 +646,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
}
for (x=0; x < (ssize_t) source_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
if (GetPixelReadMask(source_image,p) <= (QuantumRange/2))
@@ -708,13 +708,13 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*p;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -880,13 +880,13 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (((y+y_offset) < 0) || ((y+y_offset) >= (ssize_t) image->rows))
@@ -1051,13 +1051,13 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (((y+y_offset) < 0) || ((y+y_offset) >= (ssize_t) image->rows))
@@ -1231,13 +1231,13 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
canvas_pixel,
source_pixel;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1294,7 +1294,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
Sc,
Sca;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2547,7 +2547,7 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture,
*/
for (y=0; y < (ssize_t) image->rows; y+=(ssize_t) texture_image->rows)
{
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2597,14 +2597,14 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*p,
*pixels;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
size_t
@@ -2623,7 +2623,7 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture,
}
for (x=0; x < (ssize_t) image->columns; x+=(ssize_t) texture_image->columns)
{
- register ssize_t
+ ssize_t
j;
p=pixels;
@@ -2632,7 +2632,7 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture,
width=image->columns-x;
for (j=0; j < (ssize_t) width; j++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(texture_image); i++)
diff --git a/MagickCore/composite.h b/MagickCore/composite.h
index 75eb5a456..1050d26ab 100644
--- a/MagickCore/composite.h
+++ b/MagickCore/composite.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/compress.c b/MagickCore/compress.c
index af56c0f35..d2cd639fd 100644
--- a/MagickCore/compress.c
+++ b/MagickCore/compress.c
@@ -17,7 +17,7 @@
% May 1993 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -233,7 +233,7 @@ static inline void Ascii85Tuple(Ascii85Info *ascii85_info,
{
#define MaxLineExtent 36L
- register ssize_t
+ ssize_t
i,
x;
@@ -299,10 +299,10 @@ MagickExport void Ascii85Flush(Image *image)
MagickExport void Ascii85Encode(Image *image,const unsigned char code)
{
- register char
+ char
*q;
- register unsigned char
+ unsigned char
*p;
ssize_t
@@ -416,10 +416,10 @@ MagickExport MagickBooleanType HuffmanDecodeImage(Image *image,
Quantum
index;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -497,10 +497,10 @@ MagickExport MagickBooleanType HuffmanDecodeImage(Image *image,
image_view=AcquireAuthenticCacheView(image,exception);
for (y=0; ((y < (ssize_t) image->rows) && (null_lines < 3)); )
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
/*
@@ -716,14 +716,14 @@ RestoreMSCWarning \
MagickBooleanType
proceed;
- register ssize_t
+ ssize_t
i,
x;
- register const Quantum
+ const Quantum
*p;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -940,7 +940,7 @@ MagickExport MagickBooleanType LZWEncodeImage(Image *image,const size_t length,
next;
} TableType;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1087,7 +1087,7 @@ MagickExport MagickBooleanType PackbitsEncodeImage(Image *image,
int
count;
- register ssize_t
+ ssize_t
i,
j;
@@ -1239,7 +1239,7 @@ MagickExport MagickBooleanType ZLIBEncodeImage(Image *image,const size_t length,
int
status;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickCore/compress.h b/MagickCore/compress.h
index 9118a8a3c..edc469bcc 100644
--- a/MagickCore/compress.h
+++ b/MagickCore/compress.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/configure-private.h b/MagickCore/configure-private.h
index d4ce8324c..4ab51b30c 100644
--- a/MagickCore/configure-private.h
+++ b/MagickCore/configure-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/configure.c b/MagickCore/configure.c
index c4e512838..02d2daa0d 100644
--- a/MagickCore/configure.c
+++ b/MagickCore/configure.c
@@ -17,7 +17,7 @@
% July 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -253,7 +253,7 @@ MagickPrivate MagickBooleanType ConfigureComponentGenesis(void)
static void *DestroyConfigureElement(void *configure_info)
{
- register ConfigureInfo
+ ConfigureInfo
*p;
p=(ConfigureInfo *) configure_info;
@@ -349,7 +349,7 @@ MagickExport LinkedListInfo *DestroyConfigureOptions(LinkedListInfo *options)
MagickExport const ConfigureInfo *GetConfigureInfo(const char *name,
ExceptionInfo *exception)
{
- register const ConfigureInfo
+ const ConfigureInfo
*p;
assert(exception != (ExceptionInfo *) NULL);
@@ -436,10 +436,10 @@ MagickExport const ConfigureInfo **GetConfigureInfoList(const char *pattern,
const ConfigureInfo
**options;
- register const ConfigureInfo
+ const ConfigureInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -511,7 +511,7 @@ extern "C" {
static int ConfigureCompare(const void *x,const void *y)
{
- register char
+ char
**p,
**q;
@@ -530,10 +530,10 @@ MagickExport char **GetConfigureList(const char *pattern,
char
**options;
- register const ConfigureInfo
+ const ConfigureInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -759,7 +759,7 @@ MagickExport LinkedListInfo *GetConfigurePaths(const char *filename,
configure_path=GetEnvironmentValue("MAGICK_CONFIGURE_PATH");
if (configure_path != (char *) NULL)
{
- register char
+ char
*p,
*q;
@@ -1053,7 +1053,7 @@ MagickExport MagickBooleanType ListConfigureInfo(FILE *file,
const ConfigureInfo
**configure_info;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickCore/configure.h b/MagickCore/configure.h
index fbe39bf99..523cc756c 100644
--- a/MagickCore/configure.h
+++ b/MagickCore/configure.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/constitute-private.h b/MagickCore/constitute-private.h
index 73764c700..100c9cfa1 100644
--- a/MagickCore/constitute-private.h
+++ b/MagickCore/constitute-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index a9e9ee483..5ae318e7e 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -17,7 +17,7 @@
% October 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -140,7 +140,7 @@ MagickExport Image *ConstituteImage(const size_t columns,const size_t rows,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -680,7 +680,7 @@ MagickExport Image *ReadImage(const ImageInfo *image_info,
next->taint=MagickFalse;
GetPathComponent(magick_filename,MagickPath,magick_path);
- if (*magick_path == '\0' && *next->magick == '\0')
+ if ((*magick_path == '\0') && (*next->magick == '\0'))
(void) CopyMagickString(next->magick,magick,MagickPathExtent);
(void) CopyMagickString(next->magick_filename,magick_filename,
MagickPathExtent);
@@ -834,12 +834,14 @@ MagickExport Image *ReadImage(const ImageInfo *image_info,
if ((flags & LessValue) != 0)
{
if (next->delay < (size_t) floor(geometry_info.rho+0.5))
- next->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+ next->ticks_per_second=CastDoubleToLong(floor(
+ geometry_info.sigma+0.5));
}
else
next->delay=(size_t) floor(geometry_info.rho+0.5);
if ((flags & SigmaValue) != 0)
- next->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+ next->ticks_per_second=CastDoubleToLong(floor(
+ geometry_info.sigma+0.5));
}
option=GetImageOption(image_info,"dispose");
if (option != (const char *) NULL)
@@ -1000,7 +1002,7 @@ MagickExport Image *ReadInlineImage(const ImageInfo *image_info,
size_t
length;
- register const char
+ const char
*p;
/*
@@ -1010,9 +1012,7 @@ MagickExport Image *ReadInlineImage(const ImageInfo *image_info,
for (p=content; (*p != ',') && (*p != '\0'); p++) ;
if (*p == '\0')
ThrowReaderException(CorruptImageError,"CorruptImage");
- p++;
- length=0;
- blob=Base64Decode(p,&length);
+ blob=Base64Decode(++p,&length);
if (length == 0)
{
blob=(unsigned char *) RelinquishMagickMemory(blob);
@@ -1023,6 +1023,26 @@ MagickExport Image *ReadInlineImage(const ImageInfo *image_info,
(void *) NULL);
*read_info->filename='\0';
*read_info->magick='\0';
+ for (p=content; (*p != '/') && (*p != '\0'); p++) ;
+ if (*p != '\0')
+ {
+ char
+ *q;
+
+ ssize_t
+ i;
+
+ /*
+ Extract media type.
+ */
+ if (LocaleNCompare(++p,"x-",2) == 0)
+ p+=2;
+ (void) strcpy(read_info->filename,"data.");
+ q=read_info->filename+5;
+ for (i=0; (*p != ';') && (*p != '\0') && (i < (MagickPathExtent-6)); i++)
+ *q++=(*p++);
+ *q++='\0';
+ }
image=BlobToImage(read_info,blob,length,exception);
blob=(unsigned char *) RelinquishMagickMemory(blob);
read_info=DestroyImageInfo(read_info);
@@ -1356,7 +1376,7 @@ MagickExport MagickBooleanType WriteImages(const ImageInfo *image_info,
MagickStatusType
status;
- register Image
+ Image
*p;
assert(image_info != (const ImageInfo *) NULL);
@@ -1383,7 +1403,7 @@ MagickExport MagickBooleanType WriteImages(const ImageInfo *image_info,
p=images;
for ( ; GetNextImageInList(p) != (Image *) NULL; p=GetNextImageInList(p))
{
- register Image
+ Image
*next;
next=GetNextImageInList(p);
@@ -1391,7 +1411,7 @@ MagickExport MagickBooleanType WriteImages(const ImageInfo *image_info,
break;
if (p->scene >= next->scene)
{
- register ssize_t
+ ssize_t
i;
/*
diff --git a/MagickCore/constitute.h b/MagickCore/constitute.h
index 775bd3595..c205a6e1f 100644
--- a/MagickCore/constitute.h
+++ b/MagickCore/constitute.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/decorate.c b/MagickCore/decorate.c
index 1aa7ec3e8..d106aefb3 100644
--- a/MagickCore/decorate.c
+++ b/MagickCore/decorate.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -191,7 +191,7 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info,
shadow,
trough;
- register ssize_t
+ ssize_t
x;
size_t
@@ -285,10 +285,10 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info,
frame_info->inner_bevel);
if (height != 0)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
/*
@@ -387,10 +387,10 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
size_t
@@ -467,10 +467,10 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info,
frame_info->y-image->rows-bevel_width+frame_info->outer_bevel);
if (height != 0)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
/*
@@ -663,11 +663,11 @@ MagickExport MagickBooleanType RaiseImage(Image *image,
#endif
for (y=0; y < (ssize_t) raise_info->height; y++)
{
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -739,11 +739,11 @@ MagickExport MagickBooleanType RaiseImage(Image *image,
#endif
for (y=(ssize_t) raise_info->height; y < (ssize_t) (image->rows-raise_info->height); y++)
{
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -804,11 +804,11 @@ MagickExport MagickBooleanType RaiseImage(Image *image,
#endif
for (y=(ssize_t) (image->rows-raise_info->height); y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
diff --git a/MagickCore/decorate.h b/MagickCore/decorate.h
index d6177a399..d8e0dc816 100644
--- a/MagickCore/decorate.h
+++ b/MagickCore/decorate.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/delegate-private.h b/MagickCore/delegate-private.h
index 62434663d..e5e9f5a5c 100644
--- a/MagickCore/delegate-private.h
+++ b/MagickCore/delegate-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/delegate.c b/MagickCore/delegate.c
index 364bcb847..c3fab73f6 100644
--- a/MagickCore/delegate.c
+++ b/MagickCore/delegate.c
@@ -16,7 +16,7 @@
% October 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -273,7 +273,7 @@ MagickPrivate MagickBooleanType DelegateComponentGenesis(void)
static void *DestroyDelegate(void *delegate_info)
{
- register DelegateInfo
+ DelegateInfo
*p;
p=(DelegateInfo *) delegate_info;
@@ -356,7 +356,7 @@ MagickExport int ExternalDelegateCommand(const MagickBooleanType asynchronous,
PolicyRights
rights;
- register ssize_t
+ ssize_t
i;
status=(-1);
@@ -441,7 +441,7 @@ MagickExport int ExternalDelegateCommand(const MagickBooleanType asynchronous,
#endif
#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
{
- register char
+ char
*p;
/*
@@ -531,7 +531,7 @@ static char *SanitizeDelegateString(const char *source)
const char
*q;
- register char
+ char
*p;
static char
@@ -952,10 +952,10 @@ static char *InterpretDelegateProperties(ImageInfo *image_info,
*interpret_text,
*string;
- register char
+ char
*q; /* current position in interpret_text */
- register const char
+ const char
*p; /* position in embed_text string being expanded */
size_t
@@ -1110,7 +1110,7 @@ MagickExport char *GetDelegateCommand(const ImageInfo *image_info,Image *image,
const DelegateInfo
*delegate_info;
- register ssize_t
+ ssize_t
i;
assert(image_info != (ImageInfo *) NULL);
@@ -1212,7 +1212,7 @@ MagickExport const char *GetDelegateCommands(const DelegateInfo *delegate_info)
MagickExport const DelegateInfo *GetDelegateInfo(const char *decode,
const char *encode,ExceptionInfo *exception)
{
- register const DelegateInfo
+ const DelegateInfo
*p;
assert(exception != (ExceptionInfo *) NULL);
@@ -1331,10 +1331,10 @@ MagickExport const DelegateInfo **GetDelegateInfoList(const char *pattern,
const DelegateInfo
**delegates;
- register const DelegateInfo
+ const DelegateInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -1409,7 +1409,7 @@ extern "C" {
static int DelegateCompare(const void *x,const void *y)
{
- register const char
+ const char
**p,
**q;
@@ -1428,10 +1428,10 @@ MagickExport char **GetDelegateList(const char *pattern,
char
**delegates;
- register const DelegateInfo
+ const DelegateInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -1611,7 +1611,7 @@ static MagickBooleanType CopyDelegateFile(const char *source,
MagickBooleanType
status;
- register size_t
+ size_t
i;
size_t
@@ -1693,7 +1693,7 @@ MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info,
PolicyRights
rights;
- register ssize_t
+ ssize_t
i;
/*
@@ -1760,7 +1760,7 @@ MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info,
ImageInfo
*clone_info;
- register Image
+ Image
*p;
/*
@@ -1952,7 +1952,7 @@ MagickExport MagickBooleanType ListDelegateInfo(FILE *file,
const char
*path;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickCore/delegate.h b/MagickCore/delegate.h
index 1f541451a..8574e46d0 100644
--- a/MagickCore/delegate.h
+++ b/MagickCore/delegate.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/deprecate.c b/MagickCore/deprecate.c
index b0badd22c..587fce410 100644
--- a/MagickCore/deprecate.c
+++ b/MagickCore/deprecate.c
@@ -17,7 +17,7 @@
% October 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -40,12 +40,16 @@
/*
Include declarations.
*/
-#if defined(MAGICKCORE_WINDOWS_SUPPORT)
-#define WIN32_LEAN_AND_MEAN
-#define VC_EXTRALEAN
-#include <windows.h>
-#endif
#include "MagickCore/studio.h"
+#if defined(MAGICKCORE_WINGDI32_DELEGATE)
+# if defined(__CYGWIN__)
+# include <windows.h>
+# else
+ /* All MinGW needs ... */
+# include "MagickCore/nt-base-private.h"
+# include <wingdi.h>
+# endif
+#endif
#include "MagickCore/property.h"
#include "MagickCore/blob.h"
#include "MagickCore/blob-private.h"
@@ -79,6 +83,7 @@
#include "MagickCore/monitor.h"
#include "MagickCore/monitor-private.h"
#include "MagickCore/morphology.h"
+#include "MagickCore/nt-feature.h"
#include "MagickCore/paint.h"
#include "MagickCore/pixel.h"
#include "MagickCore/pixel-accessor.h"
@@ -128,7 +133,7 @@ MagickExport MagickBooleanType GetMagickSeekableStream(
MagickTrue);
}
-#if defined(MAGICKCORE_WINDOWS_SUPPORT)
+#if defined(MAGICKCORE_WINGDI32_DELEGATE)
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -180,10 +185,10 @@ MagickExport void *CropImageToHBITMAP(Image *image,
RectangleInfo
page;
- register const Quantum
+ const Quantum
*p;
- register RGBQUAD
+ RGBQUAD
*q;
RGBQUAD
@@ -251,7 +256,7 @@ MagickExport void *CropImageToHBITMAP(Image *image,
q=bitmap_bits;
for (y=0; y < (ssize_t) page.height; y++)
{
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,page.x,page.y+y,page.width,1,exception);
@@ -286,7 +291,7 @@ MagickExport void *CropImageToHBITMAP(Image *image,
}
#endif
-#if defined(MAGICKCORE_WINDOWS_SUPPORT)
+#if defined(MAGICKCORE_WINGDI32_DELEGATE)
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -320,13 +325,13 @@ MagickExport void *ImageToHBITMAP(Image *image,ExceptionInfo *exception)
HBITMAP
bitmapH;
- register ssize_t
+ ssize_t
x;
- register const Quantum
+ const Quantum
*p;
- register RGBQUAD
+ RGBQUAD
*q;
RGBQUAD
diff --git a/MagickCore/deprecate.h b/MagickCore/deprecate.h
index 107e5e2a3..7c07bc9ee 100644
--- a/MagickCore/deprecate.h
+++ b/MagickCore/deprecate.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -32,9 +32,11 @@ typedef int
extern MagickExport MagickBooleanType
GetMagickSeekableStream(const MagickInfo *);
+#if defined(MAGICKCORE_WINGDI32_DELEGATE)
extern MagickExport void
*CropImageToHBITMAP(Image *,const RectangleInfo *,ExceptionInfo *),
*ImageToHBITMAP(Image *,ExceptionInfo *);
+#endif
#endif
diff --git a/MagickCore/display-private.h b/MagickCore/display-private.h
index 143493a66..0bc9d0f85 100644
--- a/MagickCore/display-private.h
+++ b/MagickCore/display-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/display.c b/MagickCore/display.c
index 601dc5ed2..8916fb077 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -1629,7 +1629,7 @@ MagickExport MagickBooleanType DisplayImages(const ImageInfo *image_info,
Image
*image;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1843,10 +1843,10 @@ static MagickBooleanType XAnnotateEditImage(Display *display,
KeySym
key_symbol;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
unsigned int
@@ -3301,10 +3301,10 @@ static MagickBooleanType XColorEditImage(Display *display,
y,
y_offset;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i;
unsigned int
@@ -4278,10 +4278,10 @@ static MagickBooleanType XCompositeImage(Display *display,
Quantum
opacity;
- register int
+ int
x;
- register Quantum
+ Quantum
*q;
/*
@@ -4596,7 +4596,7 @@ static MagickBooleanType XCropImage(Display *display,
crop_info,
highlight_info;
- register Quantum
+ Quantum
*q;
unsigned int
@@ -5434,7 +5434,7 @@ static MagickBooleanType XDrawEditImage(Display *display,
RectangleInfo
rectangle_info;
- register int
+ int
i;
unsigned int
@@ -7099,7 +7099,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
RectangleInfo
page_geometry;
- register int
+ int
i;
static char
@@ -8938,7 +8938,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
unique_file=close(unique_file)-1;
else
{
- register const char
+ const char
*p;
file=fdopen(unique_file,"w");
@@ -9311,7 +9311,7 @@ static void XMagnifyImage(Display *display,XWindows *windows,XEvent *event,
char
text[MagickPathExtent];
- register int
+ int
x,
y;
@@ -9670,10 +9670,10 @@ static MagickBooleanType XMatteEditImage(Display *display,
y,
y_offset;
- register int
+ int
i;
- register Quantum
+ Quantum
*q;
unsigned int
@@ -10243,7 +10243,7 @@ static Image *XOpenImage(Display *display,XResourceInfo *resource_info,
count,
status;
- register int
+ int
i,
j;
@@ -10344,7 +10344,7 @@ static Image *XOpenImage(Display *display,XResourceInfo *resource_info,
char
title[MagickPathExtent];
- register int
+ int
i;
(void) FormatLocaleString(title,MagickPathExtent,
@@ -12049,7 +12049,7 @@ static MagickBooleanType XRotateImage(Display *display,
double
normalized_degrees;
- register int
+ int
i;
unsigned int
@@ -12697,7 +12697,7 @@ extern "C" {
static int XPredicate(Display *magick_unused(display),XEvent *event,char *data)
{
- register XWindows
+ XWindows
*windows;
windows=(XWindows *) data;
@@ -12714,7 +12714,7 @@ static int XPredicate(Display *magick_unused(display),XEvent *event,char *data)
static void XScreenEvent(Display *display,XWindows *windows,XEvent *event,
ExceptionInfo *exception)
{
- register int
+ int
x,
y;
@@ -13101,11 +13101,11 @@ static Image *XTileImage(Display *display,XResourceInfo *resource_info,
double
scale_factor;
- register char
+ char
*p,
*q;
- register int
+ int
i;
unsigned int
@@ -13244,10 +13244,10 @@ static Image *XTileImage(Display *display,XResourceInfo *resource_info,
PixelInfo
pixel;
- register int
+ int
j;
- register Quantum
+ Quantum
*s;
/*
@@ -13467,7 +13467,7 @@ static MagickBooleanType XTrimImage(Display *display,
RectangleInfo
trim_info;
- register int
+ int
x,
y;
@@ -13630,7 +13630,7 @@ static Image *XVisualDirectoryImage(Display *display,
RectangleInfo
geometry;
- register int
+ int
i;
static char
@@ -14456,7 +14456,7 @@ MagickExport Image *XDisplayImage(Display *display,XResourceInfo *resource_info,
RectangleInfo
geometry_info;
- register int
+ int
i;
static char
diff --git a/MagickCore/display.h b/MagickCore/display.h
index d85440c39..f596c6823 100644
--- a/MagickCore/display.h
+++ b/MagickCore/display.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/distort.c b/MagickCore/distort.c
index be91ae16a..9da736658 100644
--- a/MagickCore/distort.c
+++ b/MagickCore/distort.c
@@ -18,7 +18,7 @@
% June 2007 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -377,7 +377,7 @@ static double *GenerateCoefficients(const Image *image,
double
*coeff;
- register size_t
+ size_t
i;
size_t
@@ -1121,7 +1121,7 @@ static double *GenerateCoefficients(const Image *image,
size_t
nterms; /* number of polynomial terms per number_values */
- register ssize_t
+ ssize_t
j;
MagickBooleanType
@@ -1540,8 +1540,8 @@ static double *GenerateCoefficients(const Image *image,
% o exception: return any errors or warnings in this structure.
%
*/
-MagickExport Image *DistortResizeImage(const Image *image,
- const size_t columns,const size_t rows,ExceptionInfo *exception)
+MagickExport Image *DistortResizeImage(const Image *image,const size_t columns,
+ const size_t rows,ExceptionInfo *exception)
{
#define DistortResizeImageTag "Distort/Image"
@@ -1588,18 +1588,15 @@ MagickExport Image *DistortResizeImage(const Image *image,
if (image->alpha_trait == UndefinedPixelTrait)
{
/*
- Image has not transparency channel, so we free to use it
+ Image has no alpha channel, so we are free to use it.
*/
(void) SetImageAlphaChannel(tmp_image,SetAlphaChannel,exception);
resize_image=DistortImage(tmp_image,AffineDistortion,12,distort_args,
MagickTrue,exception),
-
tmp_image=DestroyImage(tmp_image);
if (resize_image == (Image *) NULL)
return((Image *) NULL);
-
- (void) SetImageAlphaChannel(resize_image,DeactivateAlphaChannel,
- exception);
+ (void) SetImageAlphaChannel(resize_image,OffAlphaChannel,exception);
}
else
{
@@ -2048,7 +2045,7 @@ MagickExport Image *DistortImage(const Image *image, DistortMethod method,
/* Verbose output */
if (IsStringTrue(GetImageArtifact(image,"verbose")) != MagickFalse) {
- register ssize_t
+ ssize_t
i;
char image_gen[MagickPathExtent];
const char *lookup;
@@ -2491,10 +2488,10 @@ MagickExport Image *DistortImage(const Image *image, DistortMethod method,
d,
s; /* transform destination image x,y to source image x,y */
- register ssize_t
+ ssize_t
i;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueCacheViewAuthenticPixels(distort_view,0,j,distort_image->columns,1,
@@ -2634,7 +2631,7 @@ MagickExport Image *DistortImage(const Image *image, DistortMethod method,
case PolynomialDistortion:
{
/* multi-ordered polynomial */
- register ssize_t
+ ssize_t
k;
ssize_t
@@ -3105,7 +3102,7 @@ MagickExport Image *SparseColorImage(const Image *image,
switch (sparse_method) {
case BarycentricColorInterpolate:
{
- register ssize_t x=0;
+ ssize_t x=0;
(void) FormatLocaleFile(stderr, "Barycentric Sparse Color:\n");
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
(void) FormatLocaleFile(stderr, " -channel R -fx '%+lf*i %+lf*j %+lf' \\\n",
@@ -3128,7 +3125,7 @@ MagickExport Image *SparseColorImage(const Image *image,
}
case BilinearColorInterpolate:
{
- register ssize_t x=0;
+ ssize_t x=0;
(void) FormatLocaleFile(stderr, "Bilinear Sparse Color\n");
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
(void) FormatLocaleFile(stderr, " -channel R -fx '%+lf*i %+lf*j %+lf*i*j %+lf;\n",
@@ -3202,10 +3199,10 @@ MagickExport Image *SparseColorImage(const Image *image,
PixelInfo
pixel; /* pixel to assign to distorted image */
- register ssize_t
+ ssize_t
i;
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(sparse_view,0,j,sparse_image->columns,
@@ -3223,7 +3220,7 @@ MagickExport Image *SparseColorImage(const Image *image,
{
case BarycentricColorInterpolate:
{
- register ssize_t x=0;
+ ssize_t x=0;
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
pixel.red = coeff[x]*i +coeff[x+1]*j
+coeff[x+2], x+=3;
@@ -3245,7 +3242,7 @@ MagickExport Image *SparseColorImage(const Image *image,
}
case BilinearColorInterpolate:
{
- register ssize_t x=0;
+ ssize_t x=0;
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
pixel.red = coeff[x]*i + coeff[x+1]*j +
coeff[x+2]*i*j + coeff[x+3], x+=4;
@@ -3287,7 +3284,7 @@ MagickExport Image *SparseColorImage(const Image *image,
pixel.alpha=0.0;
denominator = 0.0;
for(k=0; k<number_arguments; k+=2+number_colors) {
- register ssize_t x=(ssize_t) k+2;
+ ssize_t x=(ssize_t) k+2;
double weight =
((double)i-arguments[ k ])*((double)i-arguments[ k ])
+ ((double)j-arguments[k+1])*((double)j-arguments[k+1]);
@@ -3337,7 +3334,7 @@ MagickExport Image *SparseColorImage(const Image *image,
fabs((double)i-arguments[ k ])
+ fabs((double)j-arguments[k+1]);
if ( distance < minimum ) {
- register ssize_t x=(ssize_t) k+2;
+ ssize_t x=(ssize_t) k+2;
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
pixel.red=arguments[x++];
if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
@@ -3372,7 +3369,7 @@ MagickExport Image *SparseColorImage(const Image *image,
((double)i-arguments[ k ])*((double)i-arguments[ k ])
+ ((double)j-arguments[k+1])*((double)j-arguments[k+1]);
if ( distance < minimum ) {
- register ssize_t x=(ssize_t) k+2;
+ ssize_t x=(ssize_t) k+2;
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
pixel.red=arguments[x++];
if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
diff --git a/MagickCore/distort.h b/MagickCore/distort.h
index c16863579..3145af433 100644
--- a/MagickCore/distort.h
+++ b/MagickCore/distort.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/distribute-cache-private.h b/MagickCore/distribute-cache-private.h
index c338429f5..3604ed3f3 100644
--- a/MagickCore/distribute-cache-private.h
+++ b/MagickCore/distribute-cache-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c
index 601cb0ffc..028d54f31 100644
--- a/MagickCore/distribute-cache.c
+++ b/MagickCore/distribute-cache.c
@@ -22,7 +22,7 @@
% January 2013 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -147,7 +147,7 @@
static inline MagickOffsetType dpc_read(int file,const MagickSizeType length,
unsigned char *magick_restrict message)
{
- register MagickOffsetType
+ MagickOffsetType
i;
ssize_t
@@ -162,7 +162,7 @@ static inline MagickOffsetType dpc_read(int file,const MagickSizeType length,
for (i=0; i < (MagickOffsetType) length; i+=count)
{
count=recv(file,CHAR_TYPE_CAST message+i,(LENGTH_TYPE) MagickMin(length-i,
- (MagickSizeType) SSIZE_MAX),0);
+ (MagickSizeType) LONG_MAX),0);
if (count <= 0)
{
count=0;
@@ -278,7 +278,7 @@ static char *GetHostname(int *port,ExceptionInfo *exception)
int
argc;
- register ssize_t
+ ssize_t
i;
static size_t
@@ -427,7 +427,7 @@ static inline MagickOffsetType dpc_send(int file,const MagickSizeType length,
MagickOffsetType
count;
- register MagickOffsetType
+ MagickOffsetType
i;
#if !MAGICKCORE_HAVE_DISTRIBUTE_CACHE
@@ -442,7 +442,7 @@ static inline MagickOffsetType dpc_send(int file,const MagickSizeType length,
for (i=0; i < (MagickOffsetType) length; i+=count)
{
count=(MagickOffsetType) send(file,CHAR_TYPE_CAST message+i,(LENGTH_TYPE)
- MagickMin(length-i,(MagickSizeType) SSIZE_MAX),MSG_NOSIGNAL);
+ MagickMin(length-i,(MagickSizeType) LONG_MAX),MSG_NOSIGNAL);
if (count <= 0)
{
count=0;
@@ -484,7 +484,7 @@ static MagickBooleanType OpenDistributeCache(SplayTreeInfo *registry,int file,
MagickSizeType
length;
- register unsigned char
+ unsigned char
*p;
unsigned char
@@ -552,10 +552,10 @@ static MagickBooleanType ReadDistributeCacheMetacontent(SplayTreeInfo *registry,
RectangleInfo
region;
- register const Quantum
+ const Quantum
*p;
- register unsigned char
+ unsigned char
*q;
unsigned char
@@ -609,10 +609,10 @@ static MagickBooleanType ReadDistributeCachePixels(SplayTreeInfo *registry,
RectangleInfo
region;
- register const Quantum
+ const Quantum
*p;
- register unsigned char
+ unsigned char
*q;
unsigned char
@@ -671,10 +671,10 @@ static MagickBooleanType WriteDistributeCacheMetacontent(
RectangleInfo
region;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
unsigned char
@@ -729,10 +729,10 @@ static MagickBooleanType WriteDistributeCachePixels(SplayTreeInfo *registry,
RectangleInfo
region;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
unsigned char
@@ -784,7 +784,7 @@ static HANDLER_RETURN_TYPE DistributePixelCacheClient(void *socket)
MagickOffsetType
count;
- register unsigned char
+ unsigned char
*p;
RandomInfo
@@ -912,7 +912,7 @@ MagickExport void DistributePixelCacheServer(const int port,
Not implemented!
#endif
- register struct addrinfo
+ struct addrinfo
*p;
SOCKET_TYPE
@@ -1134,7 +1134,7 @@ MagickPrivate MagickBooleanType OpenDistributePixelCache(
MagickOffsetType
count;
- register unsigned char
+ unsigned char
*p;
unsigned char
@@ -1223,7 +1223,7 @@ MagickPrivate MagickOffsetType ReadDistributePixelCacheMetacontent(
MagickOffsetType
count;
- register unsigned char
+ unsigned char
*p;
unsigned char
@@ -1236,7 +1236,7 @@ MagickPrivate MagickOffsetType ReadDistributePixelCacheMetacontent(
assert(server_info->signature == MagickCoreSignature);
assert(region != (RectangleInfo *) NULL);
assert(metacontent != (unsigned char *) NULL);
- if (length > (MagickSizeType) SSIZE_MAX)
+ if (length > (MagickSizeType) LONG_MAX)
return(-1);
p=message;
*p++='R';
@@ -1298,7 +1298,7 @@ MagickPrivate MagickOffsetType ReadDistributePixelCachePixels(
MagickOffsetType
count;
- register unsigned char
+ unsigned char
*p;
unsigned char
@@ -1311,7 +1311,7 @@ MagickPrivate MagickOffsetType ReadDistributePixelCachePixels(
assert(server_info->signature == MagickCoreSignature);
assert(region != (RectangleInfo *) NULL);
assert(pixels != (unsigned char *) NULL);
- if (length > (MagickSizeType) SSIZE_MAX)
+ if (length > (MagickSizeType) LONG_MAX)
return(-1);
p=message;
*p++='r';
@@ -1370,7 +1370,7 @@ MagickPrivate MagickBooleanType RelinquishDistributePixelCache(
MagickOffsetType
count;
- register unsigned char
+ unsigned char
*p;
unsigned char
@@ -1434,7 +1434,7 @@ MagickPrivate MagickOffsetType WriteDistributePixelCacheMetacontent(
MagickOffsetType
count;
- register unsigned char
+ unsigned char
*p;
unsigned char
@@ -1447,7 +1447,7 @@ MagickPrivate MagickOffsetType WriteDistributePixelCacheMetacontent(
assert(server_info->signature == MagickCoreSignature);
assert(region != (RectangleInfo *) NULL);
assert(metacontent != (unsigned char *) NULL);
- if (length > (MagickSizeType) SSIZE_MAX)
+ if (length > (MagickSizeType) LONG_MAX)
return(-1);
p=message;
*p++='W';
@@ -1510,7 +1510,7 @@ MagickPrivate MagickOffsetType WriteDistributePixelCachePixels(
MagickOffsetType
count;
- register unsigned char
+ unsigned char
*p;
unsigned char
@@ -1523,7 +1523,7 @@ MagickPrivate MagickOffsetType WriteDistributePixelCachePixels(
assert(server_info->signature == MagickCoreSignature);
assert(region != (RectangleInfo *) NULL);
assert(pixels != (const unsigned char *) NULL);
- if (length > (MagickSizeType) SSIZE_MAX)
+ if (length > (MagickSizeType) LONG_MAX)
return(-1);
p=message;
*p++='w';
diff --git a/MagickCore/distribute-cache.h b/MagickCore/distribute-cache.h
index 1aef16cd7..47cf3d673 100644
--- a/MagickCore/distribute-cache.h
+++ b/MagickCore/distribute-cache.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/draw-private.h b/MagickCore/draw-private.h
index 9fb6ab8c1..1ec9abbe6 100644
--- a/MagickCore/draw-private.h
+++ b/MagickCore/draw-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index a344bf0ec..c2163be76 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -18,7 +18,7 @@
% July 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -335,7 +335,7 @@ MagickExport DrawInfo *CloneDrawInfo(const ImageInfo *image_info,
(void) CloneString(&clone_info->server_name,draw_info->server_name);
if (draw_info->dash_pattern != (double *) NULL)
{
- register ssize_t
+ ssize_t
x;
for (x=0; fabs(draw_info->dash_pattern[x]) >= MagickEpsilon; x++) ;
@@ -417,7 +417,7 @@ MagickExport DrawInfo *CloneDrawInfo(const ImageInfo *image_info,
static PolygonInfo *DestroyPolygonInfo(PolygonInfo *polygon_info)
{
- register ssize_t
+ ssize_t
i;
if (polygon_info->edges != (EdgeInfo *) NULL)
@@ -445,7 +445,7 @@ static int DrawCompareEdges(const void *p_edge,const void *q_edge)
return(1); \
}
- register const PointInfo
+ const PointInfo
*p,
*q;
@@ -469,10 +469,10 @@ static int DrawCompareEdges(const void *p_edge,const void *q_edge)
static void LogPolygonInfo(const PolygonInfo *polygon_info)
{
- register EdgeInfo
+ EdgeInfo
*p;
- register ssize_t
+ ssize_t
i,
j;
@@ -502,7 +502,7 @@ static void ReversePoints(PointInfo *points,const size_t number_points)
PointInfo
point;
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) (number_points >> 1); i++)
@@ -530,7 +530,7 @@ static PolygonInfo *ConvertPathToPolygon(const PathInfo *path_info,
SegmentInfo
bounds;
- register ssize_t
+ ssize_t
i,
n;
@@ -818,7 +818,7 @@ static PolygonInfo *ConvertPathToPolygon(const PathInfo *path_info,
static void LogPathInfo(const PathInfo *path_info)
{
- register const PathInfo
+ const PathInfo
*p;
(void) LogMagickEvent(DrawEvent,GetMagickModule()," begin vector-path");
@@ -847,7 +847,7 @@ static PathInfo *ConvertPrimitiveToPath(const PrimitiveInfo *primitive_info,
p,
q;
- register ssize_t
+ ssize_t
i,
n;
@@ -1049,7 +1049,7 @@ static SegmentInfo AffineEdge(const Image *image,const AffineMatrix *affine,
intercept,
z;
- register double
+ double
x;
SegmentInfo
@@ -1170,7 +1170,7 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
min,
max;
- register ssize_t
+ ssize_t
i;
SegmentInfo
@@ -1233,8 +1233,8 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
edge.y2=MagickMin(max.y,(double) image->rows-1.0);
inverse_affine=InverseAffineMatrix(affine);
GetPixelInfo(image,&zero);
- start=(ssize_t) ceil(edge.y1-0.5);
- stop=(ssize_t) floor(edge.y2+0.5);
+ start=CastDoubleToLong(ceil(edge.y1-0.5));
+ stop=CastDoubleToLong(floor(edge.y2+0.5));
source_view=AcquireVirtualCacheView(source,exception);
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
@@ -1250,10 +1250,10 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
PointInfo
point;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
SegmentInfo
@@ -1262,18 +1262,21 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image,
ssize_t
x_offset;
+ if (status == MagickFalse)
+ continue;
inverse_edge=AffineEdge(source,&inverse_affine,(double) y,&edge);
if (inverse_edge.x2 < inverse_edge.x1)
continue;
- q=GetCacheViewAuthenticPixels(image_view,(ssize_t) ceil(inverse_edge.x1-
- 0.5),y,(size_t) (floor(inverse_edge.x2+0.5)-ceil(inverse_edge.x1-0.5)+1),
- 1,exception);
+ q=GetCacheViewAuthenticPixels(image_view,CastDoubleToLong(
+ ceil(inverse_edge.x1-0.5)),y,(size_t) CastDoubleToLong(floor(
+ inverse_edge.x2+0.5)-ceil(inverse_edge.x1-0.5)+1),1,exception);
if (q == (Quantum *) NULL)
continue;
pixel=zero;
composite=zero;
x_offset=0;
- for (x=(ssize_t) ceil(inverse_edge.x1-0.5); x <= (ssize_t) floor(inverse_edge.x2+0.5); x++)
+ for (x=CastDoubleToLong(ceil(inverse_edge.x1-0.5));
+ x <= CastDoubleToLong(floor(inverse_edge.x2+0.5)); x++)
{
point.x=(double) x*inverse_affine.sx+y*inverse_affine.ry+
inverse_affine.tx;
@@ -1351,7 +1354,7 @@ static MagickBooleanType DrawBoundingRectangles(Image *image,
PrimitiveInfo
primitive_info[6];
- register ssize_t
+ ssize_t
i;
SegmentInfo
@@ -1757,11 +1760,11 @@ static MagickBooleanType DrawDashPolygon(const DrawInfo *draw_info,
PrimitiveInfo
*dash_polygon;
- register double
+ double
dx,
dy;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2056,10 +2059,10 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
composite,
pixel;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
i,
x;
@@ -2087,8 +2090,8 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
case UndefinedSpread:
case PadSpread:
{
- if ((x != (ssize_t) ceil(gradient_vector->x1-0.5)) ||
- (y != (ssize_t) ceil(gradient_vector->y1-0.5)))
+ if ((x != CastDoubleToLong(ceil(gradient_vector->x1-0.5))) ||
+ (y != CastDoubleToLong(ceil(gradient_vector->y1-0.5))))
{
offset=GetStopColorOffset(gradient,x,y);
if (gradient->type != RadialGradient)
@@ -2115,8 +2118,8 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
}
case ReflectSpread:
{
- if ((x != (ssize_t) ceil(gradient_vector->x1-0.5)) ||
- (y != (ssize_t) ceil(gradient_vector->y1-0.5)))
+ if ((x != CastDoubleToLong(ceil(gradient_vector->x1-0.5))) ||
+ (y != CastDoubleToLong(ceil(gradient_vector->y1-0.5))))
{
offset=GetStopColorOffset(gradient,x,y);
if (gradient->type != RadialGradient)
@@ -2157,8 +2160,8 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
antialias=MagickFalse;
repeat=0.0;
- if ((x != (ssize_t) ceil(gradient_vector->x1-0.5)) ||
- (y != (ssize_t) ceil(gradient_vector->y1-0.5)))
+ if ((x != CastDoubleToLong(ceil(gradient_vector->x1-0.5))) ||
+ (y != CastDoubleToLong(ceil(gradient_vector->y1-0.5))))
{
offset=GetStopColorOffset(gradient,x,y);
if (gradient->type == LinearGradient)
@@ -2277,7 +2280,7 @@ static MagickBooleanType CheckPrimitiveExtent(MVGInfo *mvg_info,
*mvg_info->primitive_info,(size_t) extent,quantum);
if (*mvg_info->primitive_info != (PrimitiveInfo *) NULL)
{
- register ssize_t
+ ssize_t
i;
*mvg_info->extent=(size_t) extent;
@@ -2311,9 +2314,6 @@ static inline double GetDrawValue(const char *magick_restrict string,
q=sentinal;
value=InterpretLocaleValue(string,q);
- if ((IsNaN(value) != 0) || (value < -((double) SSIZE_MAX-512.0)) ||
- (value > ((double) SSIZE_MAX-512.0)))
- return(0.0);
sentinal=q;
return(value);
}
@@ -2362,7 +2362,7 @@ static SplayTreeInfo *GetMVGMacros(const char *primitive)
break;
if (LocaleCompare("push",token) == 0)
{
- register const char
+ const char
*end,
*start;
@@ -2490,10 +2490,10 @@ static MagickBooleanType RenderMVGContent(Image *image,
PrimitiveType
primitive_type;
- register const char
+ const char
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -3453,20 +3453,22 @@ static MagickBooleanType RenderMVGContent(Image *image,
(void) GetNextToken(q,&q,extent,token);
(void) CopyMagickString(name,token,MagickPathExtent);
(void) GetNextToken(q,&q,extent,token);
- bounds.x=(ssize_t) ceil(GetDrawValue(token,&next_token)-0.5);
+ bounds.x=CastDoubleToLong(ceil(GetDrawValue(token,
+ &next_token)-0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- bounds.y=(ssize_t) ceil(GetDrawValue(token,&next_token)-0.5);
+ bounds.y=CastDoubleToLong(ceil(GetDrawValue(token,
+ &next_token)-0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- bounds.width=(size_t) floor(GetDrawValue(token,&next_token)+
- 0.5);
+ bounds.width=(size_t) CastDoubleToLong(floor(GetDrawValue(
+ token,&next_token)+0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
(void) GetNextToken(q,&q,extent,token);
@@ -3876,29 +3878,29 @@ static MagickBooleanType RenderMVGContent(Image *image,
if (LocaleCompare("viewbox",keyword) == 0)
{
(void) GetNextToken(q,&q,extent,token);
- graphic_context[n]->viewbox.x=(ssize_t) ceil(GetDrawValue(token,
- &next_token)-0.5);
+ graphic_context[n]->viewbox.x=CastDoubleToLong(ceil(
+ GetDrawValue(token,&next_token)-0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- graphic_context[n]->viewbox.y=(ssize_t) ceil(GetDrawValue(token,
- &next_token)-0.5);
+ graphic_context[n]->viewbox.y=CastDoubleToLong(ceil(
+ GetDrawValue(token,&next_token)-0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- graphic_context[n]->viewbox.width=(size_t) floor(GetDrawValue(
- token,&next_token)+0.5);
+ graphic_context[n]->viewbox.width=(size_t) CastDoubleToLong(
+ floor(GetDrawValue(token,&next_token)+0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
(void) GetNextToken(q,&q,extent,token);
if (*token == ',')
(void) GetNextToken(q,&q,extent,token);
- graphic_context[n]->viewbox.height=(size_t) floor(GetDrawValue(
- token,&next_token)+0.5);
+ graphic_context[n]->viewbox.height=(size_t) CastDoubleToLong(
+ floor(GetDrawValue(token,&next_token)+0.5));
if (token == next_token)
ThrowPointExpectedException(token,exception);
break;
@@ -4071,7 +4073,7 @@ static MagickBooleanType RenderMVGContent(Image *image,
case BezierPrimitive:
{
coordinates=(BezierQuantum*(double) primitive_info[j].coordinates);
- if (primitive_info[j].coordinates > (108.0*BezierQuantum))
+ if (primitive_info[j].coordinates > (108*BezierQuantum))
{
(void) ThrowMagickException(exception,GetMagickModule(),DrawError,
"TooManyBezierCoordinates","`%s'",token);
@@ -4603,7 +4605,7 @@ MagickExport MagickBooleanType DrawPatternPath(Image *image,
static PolygonInfo **DestroyPolygonThreadSet(PolygonInfo **polygon_info)
{
- register ssize_t
+ ssize_t
i;
assert(polygon_info != (PolygonInfo **) NULL);
@@ -4623,7 +4625,7 @@ static PolygonInfo **AcquirePolygonThreadSet(
PolygonInfo
**polygon_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -4654,7 +4656,7 @@ static PolygonInfo **AcquirePolygonThreadSet(
EdgeInfo
*edge_info;
- register ssize_t
+ ssize_t
j;
polygon_info[i]=(PolygonInfo *) AcquireMagickMemory(
@@ -4701,11 +4703,11 @@ static PolygonInfo **AcquirePolygonThreadSet(
static size_t DestroyEdge(PolygonInfo *polygon_info,const ssize_t edge)
{
- assert(edge < polygon_info->number_edges);
+ assert(edge < (ssize_t) polygon_info->number_edges);
polygon_info->edges[edge].points=(PointInfo *) RelinquishMagickMemory(
polygon_info->edges[edge].points);
polygon_info->number_edges--;
- if (edge < polygon_info->number_edges)
+ if (edge < (ssize_t) polygon_info->number_edges)
(void) memmove(polygon_info->edges+edge,polygon_info->edges+edge+1,
(size_t) (polygon_info->number_edges-edge)*sizeof(*polygon_info->edges));
return(polygon_info->number_edges);
@@ -4724,13 +4726,13 @@ static double GetFillAlpha(PolygonInfo *polygon_info,const double mid,
PointInfo
delta;
- register const PointInfo
+ const PointInfo
*q;
- register EdgeInfo
+ EdgeInfo
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -4902,10 +4904,10 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
PolygonInfo
**magick_restrict polygon_info;
- register EdgeInfo
+ EdgeInfo
*p;
- register ssize_t
+ ssize_t
i;
SegmentInfo
@@ -4979,8 +4981,8 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
/*
Draw point.
*/
- start_y=(ssize_t) ceil(bounds.y1-0.5);
- stop_y=(ssize_t) floor(bounds.y2+0.5);
+ start_y=CastDoubleToLong(ceil(bounds.y1-0.5));
+ stop_y=CastDoubleToLong(floor(bounds.y2+0.5));
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
magick_number_threads(image,image,stop_y-start_y+1,1)
@@ -4993,10 +4995,10 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
PixelInfo
pixel;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
ssize_t
@@ -5005,8 +5007,8 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
if (status == MagickFalse)
continue;
- start_x=(ssize_t) ceil(bounds.x1-0.5);
- stop_x=(ssize_t) floor(bounds.x2+0.5);
+ start_x=CastDoubleToLong(ceil(bounds.x1-0.5));
+ stop_x=CastDoubleToLong(floor(bounds.x2+0.5));
x=start_x;
q=GetCacheViewAuthenticPixels(image_view,x,y,(size_t) (stop_x-x+1),1,
exception);
@@ -5018,8 +5020,8 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
GetPixelInfo(image,&pixel);
for ( ; x <= stop_x; x++)
{
- if ((x == (ssize_t) ceil(primitive_info->point.x-0.5)) &&
- (y == (ssize_t) ceil(primitive_info->point.y-0.5)))
+ if ((x == CastDoubleToLong(ceil(primitive_info->point.x-0.5))) &&
+ (y == CastDoubleToLong(ceil(primitive_info->point.y-0.5))))
{
GetFillColor(draw_info,x-start_x,y-start_y,&pixel,exception);
SetPixelViaPixelInfo(image,&pixel,q);
@@ -5040,8 +5042,8 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
/*
Draw polygon or line.
*/
- start_y=(ssize_t) ceil(bounds.y1-0.5);
- stop_y=(ssize_t) floor(bounds.y2+0.5);
+ start_y=CastDoubleToLong(ceil(bounds.y1-0.5));
+ stop_y=CastDoubleToLong(floor(bounds.y2+0.5));
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static) shared(status) \
magick_number_threads(image,image,stop_y-start_y+1,1)
@@ -5051,10 +5053,10 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
const int
id = GetOpenMPThreadId();
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -5063,8 +5065,8 @@ static MagickBooleanType DrawPolygonPrimitive(Image *image,
if (status == MagickFalse)
continue;
- start_x=(ssize_t) ceil(bounds.x1-0.5);
- stop_x=(ssize_t) floor(bounds.x2+0.5);
+ start_x=CastDoubleToLong(ceil(bounds.x1-0.5));
+ stop_x=CastDoubleToLong(floor(bounds.x2+0.5));
q=GetCacheViewAuthenticPixels(image_view,start_x,y,(size_t) (stop_x-start_x+
1),1,exception);
if (q == (Quantum *) NULL)
@@ -5157,7 +5159,7 @@ static void LogPrimitiveInfo(const PrimitiveInfo *primitive_info)
point,
q;
- register ssize_t
+ ssize_t
i,
x;
@@ -5165,8 +5167,8 @@ static void LogPrimitiveInfo(const PrimitiveInfo *primitive_info)
coordinates,
y;
- x=(ssize_t) ceil(primitive_info->point.x-0.5);
- y=(ssize_t) ceil(primitive_info->point.y-0.5);
+ x=CastDoubleToLong(ceil(primitive_info->point.x-0.5));
+ y=CastDoubleToLong(ceil(primitive_info->point.y-0.5));
switch (primitive_info->primitive)
{
case AlphaPrimitive:
@@ -5251,7 +5253,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i,
x;
@@ -5279,8 +5281,8 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
status&=SetImageMask(image,CompositePixelMask,draw_info->composite_mask,
exception);
}
- x=(ssize_t) ceil(primitive_info->point.x-0.5);
- y=(ssize_t) ceil(primitive_info->point.y-0.5);
+ x=CastDoubleToLong(ceil(primitive_info->point.x-0.5));
+ y=CastDoubleToLong(ceil(primitive_info->point.y-0.5));
image_view=AcquireAuthenticCacheView(image,exception);
switch (primitive_info->primitive)
{
@@ -5296,7 +5298,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
PixelInfo
pixel;
- register Quantum
+ Quantum
*q;
q=GetCacheViewAuthenticPixels(image_view,x,y,1,1,exception);
@@ -5318,7 +5320,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
GetPixelInfo(image,&pixel);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5374,7 +5376,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5406,7 +5408,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
PixelInfo
pixel;
- register Quantum
+ Quantum
*q;
q=GetCacheViewAuthenticPixels(image_view,x,y,1,1,exception);
@@ -5428,7 +5430,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5480,7 +5482,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
GetPixelInfo(image,&pixel);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5558,8 +5560,8 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
composite_images=DestroyImageList(composite_images);
(void) SetImageProgressMonitor(composite_image,(MagickProgressMonitor)
NULL,(void *) NULL);
- x1=(ssize_t) ceil(primitive_info[1].point.x-0.5);
- y1=(ssize_t) ceil(primitive_info[1].point.y-0.5);
+ x1=CastDoubleToLong(ceil(primitive_info[1].point.x-0.5));
+ y1=CastDoubleToLong(ceil(primitive_info[1].point.y-0.5));
if (((x1 != 0L) && (x1 != (ssize_t) composite_image->columns)) ||
((y1 != 0L) && (y1 != (ssize_t) composite_image->rows)))
{
@@ -5603,7 +5605,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image,
PixelInfo
fill_color;
- register Quantum
+ Quantum
*q;
if ((y < 0) || (y >= (ssize_t) image->rows))
@@ -5760,7 +5762,7 @@ static MagickBooleanType DrawRoundLinecap(Image *image,
PrimitiveInfo
linecap[5];
- register ssize_t
+ ssize_t
i;
for (i=0; i < 4; i++)
@@ -5790,7 +5792,7 @@ static MagickBooleanType DrawStrokePolygon(Image *image,
PrimitiveInfo
*stroke_polygon;
- register const PrimitiveInfo
+ const PrimitiveInfo
*p,
*q;
@@ -6039,7 +6041,7 @@ static inline double Permutate(const ssize_t n,const ssize_t k)
double
r;
- register ssize_t
+ ssize_t
i;
r=1.0;
@@ -6100,17 +6102,17 @@ static MagickBooleanType TraceArcPath(MVGInfo *mvg_info,const PointInfo start,
points[3],
radii;
- register double
+ double
cosine,
sine;
PrimitiveInfo
*primitive_info;
- register PrimitiveInfo
+ PrimitiveInfo
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -6168,8 +6170,8 @@ static MagickBooleanType TraceArcPath(MVGInfo *mvg_info,const PointInfo start,
else
if ((theta > 0.0) && (sweep == MagickFalse))
theta-=2.0*MagickPI;
- arc_segments=(size_t) ceil(fabs((double) (theta/(0.5*MagickPI+
- MagickEpsilon))));
+ arc_segments=(size_t) CastDoubleToLong(ceil(fabs((double) (theta/(0.5*
+ MagickPI+MagickEpsilon)))));
status=MagickTrue;
p=primitive_info;
for (i=0; i < (ssize_t) arc_segments; i++)
@@ -6245,10 +6247,10 @@ static MagickBooleanType TraceBezier(MVGInfo *mvg_info,
PrimitiveInfo
*primitive_info;
- register PrimitiveInfo
+ PrimitiveInfo
*p;
- register ssize_t
+ ssize_t
i,
j;
@@ -6266,7 +6268,7 @@ static MagickBooleanType TraceBezier(MVGInfo *mvg_info,
for (j=i+1; j < (ssize_t) number_coordinates; j++)
{
alpha=fabs(primitive_info[j].point.x-primitive_info[i].point.x);
- if (alpha > (double) SSIZE_MAX)
+ if (alpha > (double) LONG_MAX)
{
(void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
ResourceLimitError,"MemoryAllocationFailed","`%s'","");
@@ -6275,7 +6277,7 @@ static MagickBooleanType TraceBezier(MVGInfo *mvg_info,
if (alpha > (double) quantum)
quantum=(size_t) alpha;
alpha=fabs(primitive_info[j].point.y-primitive_info[i].point.y);
- if (alpha > (double) SSIZE_MAX)
+ if (alpha > (double) LONG_MAX)
{
(void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
ResourceLimitError,"MemoryAllocationFailed","`%s'","");
@@ -6404,10 +6406,10 @@ static MagickBooleanType TraceEllipse(MVGInfo *mvg_info,const PointInfo center,
PrimitiveInfo
*primitive_info;
- register PrimitiveInfo
+ PrimitiveInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -6518,10 +6520,10 @@ static ssize_t TracePath(MVGInfo *mvg_info,const char *path,
PrimitiveType
primitive_type;
- register PrimitiveInfo
+ PrimitiveInfo
*q;
- register ssize_t
+ ssize_t
i;
size_t
@@ -7005,10 +7007,10 @@ static MagickBooleanType TraceRectangle(PrimitiveInfo *primitive_info,
PointInfo
point;
- register PrimitiveInfo
+ PrimitiveInfo
*p;
- register ssize_t
+ ssize_t
i;
p=primitive_info;
@@ -7052,10 +7054,10 @@ static MagickBooleanType TraceRoundRectangle(MVGInfo *mvg_info,
PrimitiveInfo
*primitive_info;
- register PrimitiveInfo
+ PrimitiveInfo
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -7129,11 +7131,11 @@ static MagickBooleanType TraceSquareLinecap(PrimitiveInfo *primitive_info,
double
distance;
- register double
+ double
dx,
dy;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -7248,7 +7250,7 @@ static PrimitiveInfo *TraceStrokePolygon(const DrawInfo *draw_info,
*polygon_primitive,
*stroke_polygon;
- register ssize_t
+ ssize_t
i;
size_t
@@ -7524,8 +7526,8 @@ static PrimitiveInfo *TraceStrokePolygon(const DrawInfo *draw_info,
theta.q=atan2(box_q[2].y-center.y,box_q[2].x-center.x);
if (theta.q < theta.p)
theta.q+=2.0*MagickPI;
- arc_segments=(size_t) ceil((double) ((theta.q-theta.p)/
- (2.0*sqrt((double) (1.0/mid)))));
+ arc_segments=(size_t) CastDoubleToLong(ceil((double) ((theta.
+ q-theta.p)/(2.0*sqrt((double) (1.0/mid))))));
CheckPathExtent(MaxStrokePad,arc_segments+MaxStrokePad);
stroke_q[q].x=box_q[1].x;
stroke_q[q].y=box_q[1].y;
@@ -7597,8 +7599,8 @@ static PrimitiveInfo *TraceStrokePolygon(const DrawInfo *draw_info,
theta.q=atan2(box_p[2].y-center.y,box_p[2].x-center.x);
if (theta.p < theta.q)
theta.p+=2.0*MagickPI;
- arc_segments=(size_t) ceil((double) ((theta.p-theta.q)/
- (2.0*sqrt((double) (1.0/mid)))));
+ arc_segments=(size_t) CastDoubleToLong(ceil((double) ((theta.p-
+ theta.q)/(2.0*sqrt((double) (1.0/mid))))));
CheckPathExtent(arc_segments+MaxStrokePad,MaxStrokePad);
stroke_p[p++]=box_p[1];
for (j=1; j < (ssize_t) arc_segments; j++)
diff --git a/MagickCore/draw.h b/MagickCore/draw.h
index 40c44a372..4fe9e5440 100644
--- a/MagickCore/draw.h
+++ b/MagickCore/draw.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index 5344bf536..4b450caac 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -17,7 +17,7 @@
% October 1996 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -152,7 +152,7 @@ MagickExport Image *AdaptiveBlurImage(const Image *image,const double radius,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
size_t
@@ -257,13 +257,13 @@ MagickExport Image *AdaptiveBlurImage(const Image *image,const double radius,
#endif
for (y=0; y < (ssize_t) blur_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict r;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -278,18 +278,18 @@ MagickExport Image *AdaptiveBlurImage(const Image *image,const double radius,
}
for (x=0; x < (ssize_t) blur_image->columns; x++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
i;
ssize_t
center,
j;
- j=(ssize_t) ceil((double) width*(1.0-QuantumScale*
- GetPixelIntensity(edge_image,r))-0.5);
+ j=CastDoubleToLong(ceil((double) width*(1.0-QuantumScale*
+ GetPixelIntensity(edge_image,r))-0.5));
if (j < 0)
j=0;
else
@@ -317,13 +317,13 @@ MagickExport Image *AdaptiveBlurImage(const Image *image,const double radius,
blur_traits,
traits;
- register const double
+ const double
*magick_restrict k;
- register const Quantum
+ const Quantum
*magick_restrict pixels;
- register ssize_t
+ ssize_t
u;
ssize_t
@@ -473,7 +473,7 @@ MagickExport Image *AdaptiveSharpenImage(const Image *image,const double radius,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
size_t
@@ -578,13 +578,13 @@ MagickExport Image *AdaptiveSharpenImage(const Image *image,const double radius,
#endif
for (y=0; y < (ssize_t) sharp_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict r;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -599,18 +599,18 @@ MagickExport Image *AdaptiveSharpenImage(const Image *image,const double radius,
}
for (x=0; x < (ssize_t) sharp_image->columns; x++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
i;
ssize_t
center,
j;
- j=(ssize_t) ceil((double) width*(1.0-QuantumScale*
- GetPixelIntensity(edge_image,r))-0.5);
+ j=CastDoubleToLong(ceil((double) width*(1.0-QuantumScale*
+ GetPixelIntensity(edge_image,r))-0.5));
if (j < 0)
j=0;
else
@@ -638,13 +638,13 @@ MagickExport Image *AdaptiveSharpenImage(const Image *image,const double radius,
sharp_traits,
traits;
- register const double
+ const double
*magick_restrict k;
- register const Quantum
+ const Quantum
*magick_restrict pixels;
- register ssize_t
+ ssize_t
u;
ssize_t
@@ -860,41 +860,38 @@ static inline double BlurGaussian(const double x,const double sigma)
PerceptibleReciprocal(Magick2PI*sigma*sigma));
}
-static double **DestroyBilateralThreadSet(double **weights)
+static double **DestroyBilateralThreadSet(const ssize_t number_threads,
+ double **weights)
{
- register ssize_t
+ ssize_t
i;
assert(weights != (double **) NULL);
- for (i=0; i < (ssize_t) GetMagickResourceLimit(ThreadResource); i++)
+ for (i=0; i <= (ssize_t) number_threads; i++)
if (weights[i] != (double *) NULL)
weights[i]=(double *) RelinquishMagickMemory(weights[i]);
weights=(double **) RelinquishMagickMemory(weights);
return(weights);
}
-static double **AcquireBilateralThreadSet(const size_t width,
- const size_t height)
+static double **AcquireBilateralThreadSet(const size_t number_threads,
+ const size_t width,const size_t height)
{
double
**weights;
- register ssize_t
+ ssize_t
i;
- size_t
- number_threads;
-
- number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
- weights=(double **) AcquireQuantumMemory(number_threads,sizeof(*weights));
+ weights=(double **) AcquireQuantumMemory(number_threads+1,sizeof(*weights));
if (weights == (double **) NULL)
return((double **) NULL);
(void) memset(weights,0,number_threads*sizeof(*weights));
- for (i=0; i < (ssize_t) number_threads; i++)
+ for (i=0; i <= (ssize_t) number_threads; i++)
{
weights[i]=(double *) AcquireQuantumMemory(width,height*sizeof(**weights));
if (weights[i] == (double *) NULL)
- return(DestroyBilateralThreadSet(weights));
+ return(DestroyBilateralThreadSet(number_threads,weights));
}
return(weights);
}
@@ -903,13 +900,16 @@ MagickExport Image *BilateralBlurImage(const Image *image,const size_t width,
const size_t height,const double intensity_sigma,const double spatial_sigma,
ExceptionInfo *exception)
{
-#define BilateralBlurImageTag "Convolve/Image"
+#define MaxIntensity (255)
+#define BilateralBlurImageTag "Blur/Image"
CacheView
*blur_view,
*image_view;
double
+ intensity_gaussian[2*(MaxIntensity+1)],
+ *spatial_gaussian,
**weights;
Image
@@ -925,6 +925,15 @@ MagickExport Image *BilateralBlurImage(const Image *image,const size_t width,
mid;
ssize_t
+ u;
+
+ ssize_t
+ n,
+ number_threads,
+ v;
+
+ ssize_t
+ i,
y;
assert(image != (const Image *) NULL);
@@ -941,19 +950,28 @@ MagickExport Image *BilateralBlurImage(const Image *image,const size_t width,
blur_image=DestroyImage(blur_image);
return((Image *) NULL);
}
- weights=AcquireBilateralThreadSet(width,height);
+ number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+ weights=AcquireBilateralThreadSet(number_threads,width,height);
if (weights == (double **) NULL)
{
blur_image=DestroyImage(blur_image);
ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
}
+ for (i=(-MaxIntensity); i < MaxIntensity; i++)
+ intensity_gaussian[i+MaxIntensity]=BlurGaussian((double) i,intensity_sigma);
+ spatial_gaussian=weights[number_threads];
+ n=0;
+ mid.x=(ssize_t) (width/2L);
+ mid.y=(ssize_t) (height/2L);
+ for (v=0; v < (ssize_t) height; v++)
+ for (u=0; u < (ssize_t) width; u++)
+ spatial_gaussian[n++]=BlurGaussian(BlurDistance(0,0,u-mid.x,v-mid.y),
+ spatial_sigma);
/*
Bilateral blur image.
*/
status=MagickTrue;
progress=0;
- mid.x=(ssize_t) (width/2L);
- mid.y=(ssize_t) (height/2L);
image_view=AcquireVirtualCacheView(image,exception);
blur_view=AcquireAuthenticCacheView(blur_image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
@@ -965,10 +983,10 @@ MagickExport Image *BilateralBlurImage(const Image *image,const size_t width,
const int
id = GetOpenMPThreadId();
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -986,11 +1004,11 @@ MagickExport Image *BilateralBlurImage(const Image *image,const size_t width,
gamma,
pixel;
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict r;
- register ssize_t
+ ssize_t
i,
u;
@@ -1005,19 +1023,26 @@ MagickExport Image *BilateralBlurImage(const Image *image,const size_t width,
exception);
if (p == (const Quantum *) NULL)
break;
- p+=(ssize_t) GetPixelChannels(image)*width*mid.y+
- GetPixelChannels(image)*mid.x;
+ p+=(ssize_t) GetPixelChannels(image)*width*mid.y+GetPixelChannels(image)*
+ mid.x;
n=0;
for (v=0; v < (ssize_t) height; v++)
{
for (u=0; u < (ssize_t) width; u++)
{
+ double
+ intensity;
+
r=p+(ssize_t) GetPixelChannels(image)*(ssize_t) width*(mid.y-v)+
GetPixelChannels(image)*(mid.x-u);
- weights[id][n]=BlurGaussian(ScaleQuantumToChar(
- GetPixelIntensity(image,r))-(double) ScaleQuantumToChar(
- GetPixelIntensity(image,p)),intensity_sigma)*BlurGaussian(
- BlurDistance(x,y,x+u-mid.x,y+v-mid.y),spatial_sigma);
+ intensity=ScaleQuantumToChar(GetPixelIntensity(image,r))-
+ (double) ScaleQuantumToChar(GetPixelIntensity(image,p));
+ if ((intensity >= -MaxIntensity) && (intensity <= MaxIntensity))
+ weights[id][n]=intensity_gaussian[(ssize_t) intensity+MaxIntensity]*
+ spatial_gaussian[n];
+ else
+ weights[id][n]=BlurGaussian(intensity,intensity_sigma)*
+ BlurGaussian(BlurDistance(x,y,x+u-mid.x,y+v-mid.y),spatial_sigma);
n++;
}
}
@@ -1109,7 +1134,7 @@ MagickExport Image *BilateralBlurImage(const Image *image,const size_t width,
blur_image->type=image->type;
blur_view=DestroyCacheView(blur_view);
image_view=DestroyCacheView(image_view);
- weights=DestroyBilateralThreadSet(weights);
+ weights=DestroyBilateralThreadSet(number_threads,weights);
if (status == MagickFalse)
blur_image=DestroyImage(blur_image);
return(blur_image);
@@ -1193,7 +1218,7 @@ static void Hull(const Image *image,const ssize_t x_offset,
const ssize_t y_offset,const size_t columns,const size_t rows,
const int polarity,Quantum *magick_restrict f,Quantum *magick_restrict g)
{
- register Quantum
+ Quantum
*p,
*q,
*r,
@@ -1220,7 +1245,7 @@ static void Hull(const Image *image,const ssize_t x_offset,
MagickRealType
v;
- register ssize_t
+ ssize_t
i,
x;
@@ -1254,7 +1279,7 @@ static void Hull(const Image *image,const ssize_t x_offset,
#endif
for (y=0; y < (ssize_t) rows; y++)
{
- register ssize_t
+ ssize_t
i,
x;
@@ -1307,7 +1332,7 @@ MagickExport Image *DespeckleImage(const Image *image,ExceptionInfo *exception)
*magick_restrict buffer,
*magick_restrict pixels;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1373,7 +1398,7 @@ MagickExport Image *DespeckleImage(const Image *image,ExceptionInfo *exception)
despeckle_traits,
traits;
- register ssize_t
+ ssize_t
k,
x;
@@ -1395,7 +1420,7 @@ MagickExport Image *DespeckleImage(const Image *image,ExceptionInfo *exception)
j=(ssize_t) image->columns+2;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -1426,7 +1451,7 @@ MagickExport Image *DespeckleImage(const Image *image,ExceptionInfo *exception)
MagickBooleanType
sync;
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(despeckle_view,0,y,despeckle_image->columns,
@@ -1506,7 +1531,7 @@ MagickExport Image *EdgeImage(const Image *image,const double radius,
KernelInfo
*kernel_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1590,7 +1615,7 @@ MagickExport Image *EmbossImage(const Image *image,const double radius,
KernelInfo
*kernel_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1815,10 +1840,10 @@ MagickExport Image *KuwaharaImage(const Image *image,const double radius,
#endif
for (y=0; y < (ssize_t) gaussian_image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1842,7 +1867,7 @@ MagickExport Image *KuwaharaImage(const Image *image,const double radius,
quadrant,
target;
- register size_t
+ size_t
i;
min_variance=MagickMaximumValue;
@@ -1858,7 +1883,7 @@ MagickExport Image *KuwaharaImage(const Image *image,const double radius,
mean[MaxPixelChannels],
variance;
- register ssize_t
+ ssize_t
n;
ssize_t
@@ -2095,7 +2120,7 @@ MagickExport Image *LocalContrastImage(const Image *image,const double radius,
*pix,
*pixels;
- register ssize_t
+ ssize_t
y;
ssize_t
@@ -2173,10 +2198,10 @@ MagickExport Image *LocalContrastImage(const Image *image,const double radius,
*pix,
*pixels;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -2298,7 +2323,7 @@ static MagickRealType *GetMotionBlurKernel(const size_t width,
*kernel,
normalize;
- register ssize_t
+ ssize_t
i;
/*
@@ -2349,7 +2374,7 @@ MagickExport Image *MotionBlurImage(const Image *image,const double radius,
PointInfo
point;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2377,8 +2402,10 @@ MagickExport Image *MotionBlurImage(const Image *image,const double radius,
point.y=(double) width*cos(DegreesToRadians(angle));
for (i=0; i < (ssize_t) width; i++)
{
- offset[i].x=(ssize_t) ceil((double) (i*point.y)/hypot(point.x,point.y)-0.5);
- offset[i].y=(ssize_t) ceil((double) (i*point.x)/hypot(point.x,point.y)-0.5);
+ offset[i].x=CastDoubleToLong(ceil((double) (i*point.y)/
+ hypot(point.x,point.y)-0.5));
+ offset[i].y=CastDoubleToLong(ceil((double) (i*point.x)/
+ hypot(point.x,point.y)-0.5));
}
/*
Motion blur image.
@@ -2417,13 +2444,13 @@ MagickExport Image *MotionBlurImage(const Image *image,const double radius,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2438,7 +2465,7 @@ MagickExport Image *MotionBlurImage(const Image *image,const double radius,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2455,13 +2482,13 @@ MagickExport Image *MotionBlurImage(const Image *image,const double radius,
blur_traits,
traits;
- register const Quantum
+ const Quantum
*magick_restrict r;
- register MagickRealType
+ MagickRealType
*magick_restrict k;
- register ssize_t
+ ssize_t
j;
channel=GetPixelChannelChannel(image,i);
@@ -2612,7 +2639,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
RectangleInfo
geometry;
- register ssize_t
+ ssize_t
i,
x;
@@ -3135,7 +3162,7 @@ MagickExport Image *RotationalBlurImage(const Image *image,const double angle,
PointInfo
blur_center;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3205,13 +3232,13 @@ MagickExport Image *RotationalBlurImage(const Image *image,const double angle,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3232,7 +3259,7 @@ MagickExport Image *RotationalBlurImage(const Image *image,const double angle,
PointInfo
center;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3265,10 +3292,10 @@ MagickExport Image *RotationalBlurImage(const Image *image,const double angle,
blur_traits,
traits;
- register const Quantum
+ const Quantum
*magick_restrict r;
- register ssize_t
+ ssize_t
j;
channel=GetPixelChannelChannel(image,i);
@@ -3413,7 +3440,7 @@ MagickExport Image *SelectiveBlurImage(const Image *image,const double radius,
MagickRealType
*kernel;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3454,7 +3481,7 @@ MagickExport Image *SelectiveBlurImage(const Image *image,const double radius,
format[MagickPathExtent],
*message;
- register const MagickRealType
+ const MagickRealType
*k;
ssize_t
@@ -3527,14 +3554,14 @@ MagickExport Image *SelectiveBlurImage(const Image *image,const double radius,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict l,
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3556,7 +3583,7 @@ MagickExport Image *SelectiveBlurImage(const Image *image,const double radius,
double
intensity;
- register ssize_t
+ ssize_t
i;
intensity=GetPixelIntensity(image,p+center);
@@ -3574,14 +3601,14 @@ MagickExport Image *SelectiveBlurImage(const Image *image,const double radius,
blur_traits,
traits;
- register const MagickRealType
+ const MagickRealType
*magick_restrict k;
- register const Quantum
+ const Quantum
*magick_restrict luminance_pixels,
*magick_restrict pixels;
- register ssize_t
+ ssize_t
u;
ssize_t
@@ -3806,16 +3833,16 @@ MagickExport Image *ShadeImage(const Image *image,const MagickBooleanType gray,
PrimaryInfo
normal;
- register const Quantum
+ const Quantum
*magick_restrict center,
*magick_restrict p,
*magick_restrict post,
*magick_restrict pre;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3835,7 +3862,7 @@ MagickExport Image *ShadeImage(const Image *image,const MagickBooleanType gray,
normal.z=2.0*(double) QuantumRange; /* constant Z of surface normal */
for (x=0; x < (ssize_t) linear_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -3984,7 +4011,7 @@ MagickExport Image *SharpenImage(const Image *image,const double radius,
KernelInfo
*kernel_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -4144,10 +4171,10 @@ MagickExport Image *SpreadImage(const Image *image,
const int
id = GetOpenMPThreadId();
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -4291,13 +4318,13 @@ MagickExport Image *UnsharpMaskImage(const Image *image,const double radius,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -4312,7 +4339,7 @@ MagickExport Image *UnsharpMaskImage(const Image *image,const double radius,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
diff --git a/MagickCore/effect.h b/MagickCore/effect.h
index 0b15bb33c..2e95b6564 100644
--- a/MagickCore/effect.h
+++ b/MagickCore/effect.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c
index ba1ca9464..84dd212f3 100644
--- a/MagickCore/enhance.c
+++ b/MagickCore/enhance.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -120,7 +120,7 @@ MagickExport MagickBooleanType AutoGammaImage(Image *image,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
log_mean=log(0.5);
@@ -304,7 +304,7 @@ static void ClipCLAHEHistogram(const double clip_limit,const size_t number_bins,
{
#define NumberCLAHEGrays (65536)
- register ssize_t
+ ssize_t
i;
size_t
@@ -351,7 +351,7 @@ static void ClipCLAHEHistogram(const double clip_limit,const size_t number_bins,
*/
do
{
- register size_t
+ size_t
*p;
size_t
@@ -380,10 +380,10 @@ static void GenerateCLAHEHistogram(const RectangleInfo *clahe_info,
const RectangleInfo *tile_info,const size_t number_bins,
const unsigned short *lut,const unsigned short *pixels,size_t *histogram)
{
- register const unsigned short
+ const unsigned short
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -420,7 +420,7 @@ static void InterpolateCLAHE(const RectangleInfo *clahe_info,const size_t *Q12,
*/
for (y=(ssize_t) tile->height; y > 0; y--)
{
- register ssize_t
+ ssize_t
x;
for (x=(ssize_t) tile->width; x > 0; x--)
@@ -459,7 +459,7 @@ static void MapCLAHEHistogram(const RangeInfo *range_info,
scale,
sum;
- register ssize_t
+ ssize_t
i;
/*
@@ -483,7 +483,7 @@ static MagickBooleanType CLAHE(const RectangleInfo *clahe_info,
MemoryInfo
*tile_cache;
- register unsigned short
+ unsigned short
*p;
size_t
@@ -522,7 +522,7 @@ static MagickBooleanType CLAHE(const RectangleInfo *clahe_info,
p=pixels;
for (y=0; y < (ssize_t) clahe_info->y; y++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) clahe_info->x; x++)
@@ -551,7 +551,7 @@ static MagickBooleanType CLAHE(const RectangleInfo *clahe_info,
RectangleInfo
tile;
- register ssize_t
+ ssize_t
x;
tile.height=tile_info->height;
@@ -698,10 +698,10 @@ MagickExport MagickBooleanType CLAHEImage(Image *image,const size_t width,
n=0;
for (y=0; y < (ssize_t) clahe_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -743,10 +743,10 @@ MagickExport MagickBooleanType CLAHEImage(Image *image,const size_t width,
n=clahe_info.width*(tile_info.y >> 1);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -848,7 +848,7 @@ MagickExport MagickBooleanType ClutImage(Image *image,const Image *clut_image,
PixelInfo
*clut_map;
- register ssize_t
+ ssize_t
i;
ssize_t adjust,
@@ -896,10 +896,10 @@ MagickExport MagickBooleanType ClutImage(Image *image,const Image *clut_image,
PixelInfo
pixel;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1055,7 +1055,7 @@ MagickExport MagickBooleanType ColorDecisionListImage(Image *image,
PixelInfo
*cdl_map;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1291,10 +1291,10 @@ MagickExport MagickBooleanType ColorDecisionListImage(Image *image,
double
luma;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1413,7 +1413,7 @@ MagickExport MagickBooleanType ContrastImage(Image *image,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1466,10 +1466,10 @@ MagickExport MagickBooleanType ContrastImage(Image *image,
green,
red;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1569,7 +1569,7 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1613,10 +1613,10 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1652,7 +1652,7 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image,
double
intensity;
- register ssize_t
+ ssize_t
j;
black[i]=0.0;
@@ -1682,7 +1682,7 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image,
sizeof(*stretch_map));
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- register ssize_t
+ ssize_t
j;
for (j=0; j <= (ssize_t) MaxMap; j++)
@@ -1704,7 +1704,7 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image,
}
if (image->storage_class == PseudoClass)
{
- register ssize_t
+ ssize_t
j;
/*
@@ -1750,10 +1750,10 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1766,7 +1766,7 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
j;
for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -1911,13 +1911,13 @@ MagickExport Image *EnhanceImage(const Image *image,ExceptionInfo *exception)
PixelInfo
pixel;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1946,7 +1946,7 @@ MagickExport Image *EnhanceImage(const Image *image,ExceptionInfo *exception)
PixelInfo
aggregate;
- register const Quantum
+ const Quantum
*magick_restrict r;
GetPixelInfo(image,&aggregate);
@@ -2047,7 +2047,7 @@ MagickExport MagickBooleanType EqualizeImage(Image *image,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2090,10 +2090,10 @@ MagickExport MagickBooleanType EqualizeImage(Image *image,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2129,7 +2129,7 @@ MagickExport MagickBooleanType EqualizeImage(Image *image,
double
intensity;
- register ssize_t
+ ssize_t
j;
intensity=0.0;
@@ -2145,7 +2145,7 @@ MagickExport MagickBooleanType EqualizeImage(Image *image,
(void) memset(white,0,sizeof(*white));
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- register ssize_t
+ ssize_t
j;
black[i]=map[i];
@@ -2160,7 +2160,7 @@ MagickExport MagickBooleanType EqualizeImage(Image *image,
map=(double *) RelinquishMagickMemory(map);
if (image->storage_class == PseudoClass)
{
- register ssize_t
+ ssize_t
j;
/*
@@ -2217,10 +2217,10 @@ MagickExport MagickBooleanType EqualizeImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2233,7 +2233,7 @@ MagickExport MagickBooleanType EqualizeImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
j;
for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -2325,7 +2325,7 @@ MagickExport MagickBooleanType GammaImage(Image *image,const double gamma,
Quantum
*gamma_map;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2380,10 +2380,10 @@ MagickExport MagickBooleanType GammaImage(Image *image,const double gamma,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2396,7 +2396,7 @@ MagickExport MagickBooleanType GammaImage(Image *image,const double gamma,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
j;
for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -2511,10 +2511,10 @@ MagickExport MagickBooleanType GrayscaleImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2739,10 +2739,10 @@ MagickExport MagickBooleanType HaldClutImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2916,7 +2916,7 @@ MagickExport MagickBooleanType LevelImage(Image *image,const double black_point,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2960,10 +2960,10 @@ MagickExport MagickBooleanType LevelImage(Image *image,const double black_point,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2976,7 +2976,7 @@ MagickExport MagickBooleanType LevelImage(Image *image,const double black_point,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
j;
for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -3070,7 +3070,7 @@ MagickExport MagickBooleanType LevelizeImage(Image *image,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -3112,10 +3112,10 @@ MagickExport MagickBooleanType LevelizeImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3128,7 +3128,7 @@ MagickExport MagickBooleanType LevelizeImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
j;
for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -3374,10 +3374,10 @@ MagickExport MagickBooleanType LinearStretchImage(Image *image,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -3649,7 +3649,7 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate,
MagickStatusType
flags;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -3773,10 +3773,10 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3917,7 +3917,7 @@ MagickExport MagickBooleanType NegateImage(Image *image,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -3957,10 +3957,10 @@ MagickExport MagickBooleanType NegateImage(Image *image,
MagickBooleanType
sync;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3974,7 +3974,7 @@ MagickExport MagickBooleanType NegateImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
j;
if (IsPixelGray(image,q) == MagickFalse)
@@ -4018,10 +4018,10 @@ MagickExport MagickBooleanType NegateImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -4034,7 +4034,7 @@ MagickExport MagickBooleanType NegateImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
j;
for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -4270,7 +4270,7 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
*/
if (image->storage_class == PseudoClass)
{
- register ssize_t
+ ssize_t
i;
if( sharpen != MagickFalse )
@@ -4318,10 +4318,10 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -4334,7 +4334,7 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -4412,12 +4412,11 @@ MagickExport MagickBooleanType WhiteBalanceImage(Image *image,
a_mean,
b_mean;
- MagickBooleanType
- status;
-
MagickOffsetType
progress;
+ MagickStatusType
+ status;
ssize_t
y;
@@ -4437,10 +4436,10 @@ MagickExport MagickBooleanType WhiteBalanceImage(Image *image,
image_view=AcquireAuthenticCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -4467,10 +4466,10 @@ MagickExport MagickBooleanType WhiteBalanceImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -4535,11 +4534,12 @@ MagickExport MagickBooleanType WhiteBalanceImage(Image *image,
black_point=geometry_info.rho;
if ((flags & PercentValue) != 0)
black_point*=(double) (QuantumRange/100.0);
- channel_mask=SetImageChannelMask(image,aChannel | bChannel);
+ channel_mask=SetImageChannelMask(image,(ChannelType) (aChannel |
+ bChannel));
status&=LevelImage(image,black_point,(double) QuantumRange-black_point,
1.0,exception);
(void) SetImageChannelMask(image,channel_mask);
}
status&=TransformImageColorspace(image,sRGBColorspace,exception);
- return(status);
+ return(status != 0 ? MagickTrue : MagickFalse);
}
diff --git a/MagickCore/enhance.h b/MagickCore/enhance.h
index fed87f288..c2bee01b7 100644
--- a/MagickCore/enhance.h
+++ b/MagickCore/enhance.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/exception-private.h b/MagickCore/exception-private.h
index 390b00868..c9322a054 100644
--- a/MagickCore/exception-private.h
+++ b/MagickCore/exception-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/exception.c b/MagickCore/exception.c
index 305edcb1c..6456b11a6 100644
--- a/MagickCore/exception.c
+++ b/MagickCore/exception.c
@@ -17,7 +17,7 @@
% July 1993 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -149,7 +149,7 @@ MagickExport ExceptionInfo *AcquireExceptionInfo(void)
static void *DestroyExceptionElement(void *exception)
{
- register ExceptionInfo
+ ExceptionInfo
*p;
p=(ExceptionInfo *) exception;
@@ -205,7 +205,7 @@ MagickExport void CatchException(ExceptionInfo *exception)
LinkedListInfo
*exceptions;
- register const ExceptionInfo
+ const ExceptionInfo
*p;
ssize_t
@@ -687,7 +687,7 @@ MagickExport const char *GetLocaleExceptionMessage(const ExceptionType severity,
MagickExport void InheritException(ExceptionInfo *exception,
const ExceptionInfo *relative)
{
- register const ExceptionInfo
+ const ExceptionInfo
*p;
assert(exception != (ExceptionInfo *) NULL);
@@ -995,7 +995,7 @@ MagickExport MagickBooleanType ThrowException(ExceptionInfo *exception,
LinkedListInfo
*exceptions;
- register ExceptionInfo
+ ExceptionInfo
*p;
assert(exception != (ExceptionInfo *) NULL);
diff --git a/MagickCore/exception.h b/MagickCore/exception.h
index 0393490c5..fc2dcc23f 100644
--- a/MagickCore/exception.h
+++ b/MagickCore/exception.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/feature.c b/MagickCore/feature.c
index 7162bcad0..7396d7b7d 100644
--- a/MagickCore/feature.c
+++ b/MagickCore/feature.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -165,10 +165,10 @@ static MagickBooleanType TraceEdges(Image *edge_image,CacheView *edge_view,
MagickBooleanType
status;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i;
q=GetCacheViewAuthenticPixels(edge_view,x,y,1,1,exception);
@@ -315,10 +315,10 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius,
#endif
for (y=0; y < (ssize_t) edge_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -339,7 +339,7 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius,
dx,
dy;
- register const Quantum
+ const Quantum
*magick_restrict kernel_pixels;
ssize_t
@@ -427,10 +427,10 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius,
#endif
for (y=0; y < (ssize_t) edge_image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -522,7 +522,7 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius,
edge_view=AcquireAuthenticCacheView(edge_image,exception);
for (y=0; y < (ssize_t) edge_image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -532,7 +532,7 @@ MagickExport Image *CannyEdgeImage(const Image *image,const double radius,
CannyInfo
pixel;
- register const Quantum
+ const Quantum
*magick_restrict p;
/*
@@ -659,7 +659,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
r;
@@ -710,10 +710,10 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
#endif
for (r=0; r < (ssize_t) image->rows; r++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -881,10 +881,10 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
image_view=AcquireVirtualCacheView(image,exception);
for (r=0; r < (ssize_t) image->rows; r++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1014,7 +1014,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
double
normalize;
- register ssize_t
+ ssize_t
y;
switch (i)
@@ -1056,7 +1056,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
normalize=PerceptibleReciprocal(normalize);
for (y=0; y < (ssize_t) number_grays; y++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) number_grays; x++)
@@ -1080,12 +1080,12 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
#endif
for (i=0; i < 4; i++)
{
- register ssize_t
+ ssize_t
y;
for (y=0; y < (ssize_t) number_grays; y++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) number_grays; x++)
@@ -1265,7 +1265,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
#endif
for (i=0; i < 4; i++)
{
- register ssize_t
+ ssize_t
x;
for (x=2; x < (ssize_t) (2*number_grays); x++)
@@ -1341,12 +1341,12 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
#endif
for (i=0; i < 4; i++)
{
- register ssize_t
+ ssize_t
y;
for (y=0; y < (ssize_t) number_grays; y++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) number_grays; x++)
@@ -1456,7 +1456,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
#endif
for (i=0; i < 4; i++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) number_grays; x++)
@@ -1613,7 +1613,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
for (z=0; z < (ssize_t) number_grays; z++)
{
- register ssize_t
+ ssize_t
y;
ChannelStatistics
@@ -1622,7 +1622,7 @@ MagickExport ChannelFeatures *GetImageFeatures(const Image *image,
(void) memset(&pixel,0,sizeof(pixel));
for (y=0; y < (ssize_t) number_grays; y++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) number_grays; x++)
@@ -1874,7 +1874,7 @@ MagickExport Image *HoughLineImage(const Image *image,const size_t width,
PointInfo
center;
- register ssize_t
+ ssize_t
y;
size_t
@@ -1914,10 +1914,10 @@ MagickExport Image *HoughLineImage(const Image *image,const size_t width,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1932,7 +1932,7 @@ MagickExport Image *HoughLineImage(const Image *image,const size_t width,
{
if (GetPixelIntensity(image,p) > (QuantumRange/2.0))
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < 180; i++)
@@ -1999,7 +1999,7 @@ MagickExport Image *HoughLineImage(const Image *image,const size_t width,
line_count=threshold;
for (y=0; y < (ssize_t) accumulator_height; y++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) accumulator_width; x++)
@@ -2210,13 +2210,13 @@ MagickExport Image *MeanShiftImage(const Image *image,const size_t width,
#endif
for (y=0; y < (ssize_t) mean_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2239,7 +2239,7 @@ MagickExport Image *MeanShiftImage(const Image *image,const size_t width,
mean_location,
previous_location;
- register ssize_t
+ ssize_t
i;
GetPixelInfo(image,&mean_pixel);
diff --git a/MagickCore/feature.h b/MagickCore/feature.h
index 75faa8e13..997e36c6f 100644
--- a/MagickCore/feature.h
+++ b/MagickCore/feature.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/fourier.c b/MagickCore/fourier.c
index c0359237f..5c858afb0 100644
--- a/MagickCore/fourier.c
+++ b/MagickCore/fourier.c
@@ -19,7 +19,7 @@
% July 2009 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -247,17 +247,17 @@ MagickExport Image *ComplexImages(const Image *images,const ComplexOperator op,
#endif
for (y=0; y < (ssize_t) rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict Ai,
*magick_restrict Ar,
*magick_restrict Bi,
*magick_restrict Br;
- register Quantum
+ Quantum
*magick_restrict Ci,
*magick_restrict Cr;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -277,7 +277,7 @@ MagickExport Image *ComplexImages(const Image *images,const ComplexOperator op,
}
for (x=0; x < (ssize_t) columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) number_channels; i++)
@@ -412,7 +412,7 @@ static MagickBooleanType RollFourier(const size_t width,const size_t height,
MemoryInfo
*source_info;
- register ssize_t
+ ssize_t
i,
x;
@@ -458,7 +458,7 @@ static MagickBooleanType ForwardQuadrantSwap(const size_t width,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -488,7 +488,7 @@ static MagickBooleanType ForwardQuadrantSwap(const size_t width,
static void CorrectPhaseLHS(const size_t width,const size_t height,
double *fourier_pixels)
{
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -521,10 +521,10 @@ static MagickBooleanType ForwardFourier(const FourierInfo *fourier_info,
*magnitude_info,
*phase_info;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -712,10 +712,10 @@ static MagickBooleanType ForwardFourierTransform(FourierInfo *fourier_info,
*forward_info,
*source_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -1083,7 +1083,7 @@ MagickExport Image *ForwardFourierTransformImage(const Image *image,
static MagickBooleanType InverseQuadrantSwap(const size_t width,
const size_t height,const double *source,double *destination)
{
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1125,10 +1125,10 @@ static MagickBooleanType InverseFourier(FourierInfo *fourier_info,
*magnitude_info,
*phase_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -1324,10 +1324,10 @@ static MagickBooleanType InverseFourierTransform(FourierInfo *fourier_info,
MemoryInfo
*source_info;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
diff --git a/MagickCore/fourier.h b/MagickCore/fourier.h
index 1f4add24f..d206ec470 100644
--- a/MagickCore/fourier.h
+++ b/MagickCore/fourier.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/fx-private.h b/MagickCore/fx-private.h
index 8681ae98c..44bce2500 100644
--- a/MagickCore/fx-private.h
+++ b/MagickCore/fx-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index 23641762e..0c6f928d3 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -18,7 +18,7 @@
% %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -186,7 +186,7 @@ MagickPrivate FxInfo *AcquireFxInfo(const Image *images,const char *expression,
FxInfo
*fx_info;
- register ssize_t
+ ssize_t
i;
unsigned char
@@ -295,7 +295,7 @@ MagickPrivate FxInfo *AcquireFxInfo(const Image *images,const char *expression,
*/
MagickPrivate FxInfo *DestroyFxInfo(FxInfo *fx_info)
{
- register ssize_t
+ ssize_t
i;
fx_info->exception=DestroyExceptionInfo(fx_info->exception);
@@ -392,7 +392,7 @@ static double FxChannelStatistics(FxInfo *fx_info,Image *image,
double
statistic;
- register const char
+ const char
*p;
channel_mask=UndefinedChannel;
@@ -507,7 +507,7 @@ static inline MagickBooleanType IsFxFunction(const char *expression,
int
c;
- register size_t
+ size_t
i;
for (i=0; i <= length; i++)
@@ -515,16 +515,18 @@ static inline MagickBooleanType IsFxFunction(const char *expression,
return(MagickFalse);
c=expression[length];
if ((LocaleNCompare(expression,name,length) == 0) &&
- ((isspace(c) == 0) || (c == '(')))
+ ((isspace((int) ((unsigned char) c)) == 0) || (c == '(')))
return(MagickTrue);
return(MagickFalse);
}
-static MagickOffsetType FxGCD(MagickOffsetType alpha,MagickOffsetType beta)
+static inline double FxGCD(const double alpha,const double beta)
{
- if (beta != 0)
- return(FxGCD(beta,alpha % beta));
- return(alpha);
+ if (alpha < beta)
+ return(FxGCD(beta,alpha));
+ if (fabs(beta) < 0.001)
+ return(alpha);
+ return(FxGCD(beta,alpha-beta*floor(alpha/beta)));
}
static inline const char *FxSubexpression(const char *expression,
@@ -533,7 +535,7 @@ static inline const char *FxSubexpression(const char *expression,
const char
*subexpression;
- register ssize_t
+ ssize_t
level;
level=0;
@@ -585,7 +587,7 @@ static double FxGetSymbol(FxInfo *fx_info,const PixelChannel channel,
PointInfo
point;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1198,10 +1200,10 @@ static const char *FxOperatorPrecedence(const char *expression,
precedence,
target;
- register const char
+ const char
*subexpression;
- register int
+ int
c;
size_t
@@ -1255,7 +1257,7 @@ static const char *FxOperatorPrecedence(const char *expression,
case 'E':
case 'e':
{
- if ((isdigit(c) != 0) &&
+ if ((isdigit((int) ((unsigned char) c)) != 0) &&
((LocaleNCompare(expression,"E+",2) == 0) ||
(LocaleNCompare(expression,"E-",2) == 0)))
{
@@ -1305,11 +1307,11 @@ static const char *FxOperatorPrecedence(const char *expression,
}
default:
{
- if (((c != 0) && ((isdigit(c) != 0) ||
+ if (((c != 0) && ((isdigit((int) ((unsigned char) c)) != 0) ||
(strchr(")",c) != (char *) NULL))) &&
(((islower((int) ((unsigned char) *expression)) != 0) ||
(strchr("(",(int) ((unsigned char) *expression)) != (char *) NULL)) ||
- ((isdigit(c) == 0) &&
+ ((isdigit((int) ((unsigned char) c)) == 0) &&
(isdigit((int) ((unsigned char) *expression)) != 0))) &&
(strchr("xy",(int) ((unsigned char) *expression)) == (char *) NULL))
precedence=MultiplyPrecedence;
@@ -1326,7 +1328,7 @@ static const char *FxOperatorPrecedence(const char *expression,
case '-':
{
if ((strchr("(+-/*%:&^|<>~,",c) == (char *) NULL) ||
- (isalpha(c) != 0))
+ (isalpha((int) ((unsigned char) c)) != 0))
precedence=AdditionPrecedence;
break;
}
@@ -1485,7 +1487,7 @@ static double FxEvaluateSubexpression(FxInfo *fx_info,
sans,
value;
- register const char
+ const char
*p;
*beta=0.0;
@@ -2277,14 +2279,13 @@ static double FxEvaluateSubexpression(FxInfo *fx_info,
}
if (IsFxFunction(expression,"gcd",3) != MagickFalse)
{
- MagickOffsetType
+ double
gcd;
alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
depth+1,beta,exception);
- gcd=FxGCD((MagickOffsetType) (alpha+0.5),(MagickOffsetType) (*beta+
- 0.5));
- FxReturn((double) gcd);
+ gcd=FxGCD(alpha,*beta);
+ FxReturn(gcd);
}
if (LocaleCompare(expression,"g") == 0)
FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
@@ -2738,7 +2739,7 @@ MagickPrivate MagickBooleanType FxEvaluateChannelExpression(FxInfo *fx_info,
static FxInfo **DestroyFxThreadSet(FxInfo **fx_info)
{
- register ssize_t
+ ssize_t
i;
assert(fx_info != (FxInfo **) NULL);
@@ -2761,7 +2762,7 @@ static FxInfo **AcquireFxThreadSet(const Image *image,const char *expression,
FxInfo
**fx_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2859,13 +2860,13 @@ MagickExport Image *FxImage(const Image *image,const char *expression,
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2879,7 +2880,7 @@ MagickExport Image *FxImage(const Image *image,const char *expression,
}
for (x=0; x < (ssize_t) fx_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
diff --git a/MagickCore/fx.h b/MagickCore/fx.h
index 33e7a681d..be5f2d3ae 100644
--- a/MagickCore/fx.h
+++ b/MagickCore/fx.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/gem-private.h b/MagickCore/gem-private.h
index 68439caa7..0396b37d1 100644
--- a/MagickCore/gem-private.h
+++ b/MagickCore/gem-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -76,6 +76,50 @@ extern MagickPrivate void
ConvertRGBToLCHuv(const double,const double,const double,double *,double *,
double *);
+static inline void ConvertAdobe98ToXYZ(const double red,const double green,
+ const double blue,double *X,double *Y,double *Z)
+{
+ double
+ b,
+ g,
+ r;
+
+ /*
+ Convert Adobe '98 to XYZ colorspace.
+ */
+ assert(X != (double *) NULL);
+ assert(Y != (double *) NULL);
+ assert(Z != (double *) NULL);
+ r=QuantumScale*DecodePixelGamma(red);
+ g=QuantumScale*DecodePixelGamma(green);
+ b=QuantumScale*DecodePixelGamma(blue);
+ *X=0.57666904291013050*r+0.18555823790654630*g+0.18822864623499470*b;
+ *Y=0.29734497525053605*r+0.62736356625546610*g+0.07529145849399788*b;
+ *Z=0.02703136138641234*r+0.07068885253582723*g+0.99133753683763880*b;
+}
+
+static inline void ConvertDisplayP3ToXYZ(const double red,const double green,
+ const double blue,double *X,double *Y,double *Z)
+{
+ double
+ b,
+ g,
+ r;
+
+ /*
+ Convert Display P3 to XYZ colorspace.
+ */
+ assert(X != (double *) NULL);
+ assert(Y != (double *) NULL);
+ assert(Z != (double *) NULL);
+ r=QuantumScale*DecodePixelGamma(red);
+ g=QuantumScale*DecodePixelGamma(green);
+ b=QuantumScale*DecodePixelGamma(blue);
+ *X=0.4865709486482162*r+0.26566769316909306*g+0.1982172852343625*b;
+ *Y=0.2289745640697488*r+0.69173852183650640*g+0.0792869140937450*b;
+ *Z=0.0000000000000000*r+0.04511338185890264*g+1.0439443689009760*b;
+}
+
static inline void ConvertLabToXYZ(const double L,const double a,const double b,
double *X,double *Y,double *Z)
{
@@ -94,7 +138,7 @@ static inline void ConvertLabToXYZ(const double L,const double a,const double b,
x=(x*x*x);
else
x=(116.0*x-16.0)/CIEK;
- if ((y*y*y) > CIEEpsilon)
+ if (L > (CIEK*CIEEpsilon))
y=(y*y*y);
else
y=L/CIEK;
@@ -128,6 +172,28 @@ static inline void ConvertLuvToXYZ(const double L,const double u,const double v,
5.0*(*Y);
}
+static inline void ConvertProPhotoToXYZ(const double red,const double green,
+ const double blue,double *X,double *Y,double *Z)
+{
+ double
+ b,
+ g,
+ r;
+
+ /*
+ Convert ProPhoto to XYZ colorspace.
+ */
+ assert(X != (double *) NULL);
+ assert(Y != (double *) NULL);
+ assert(Z != (double *) NULL);
+ r=QuantumScale*DecodePixelGamma(red);
+ g=QuantumScale*DecodePixelGamma(green);
+ b=QuantumScale*DecodePixelGamma(blue);
+ *X=0.7977604896723027*r+0.13518583717574031*g+0.03134934958152480000*b;
+ *Y=0.2880711282292934*r+0.71184321781010140*g+0.00008565396060525902*b;
+ *Z=0.0000000000000000*r+0.00000000000000000*g+0.82510460251046010000*b;
+}
+
static inline void ConvertRGBToXYZ(const double red,const double green,
const double blue,double *X,double *Y,double *Z)
{
@@ -150,6 +216,44 @@ static inline void ConvertRGBToXYZ(const double red,const double green,
*Z=0.0193339*r+0.1191920*g+0.9503041*b;
}
+static inline void ConvertXYZToAdobe98(const double X,const double Y,
+ const double Z,double *red,double *green,double *blue)
+{
+ double
+ b,
+ g,
+ r;
+
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
+ r=2.041587903810746500*X-0.56500697427885960*Y-0.34473135077832956*Z;
+ g=(-0.969243636280879500)*X+1.87596750150772020*Y+0.04155505740717557*Z;
+ b=0.013444280632031142*X-0.11836239223101838*Y+1.01517499439120540*Z;
+ *red=EncodePixelGamma(QuantumRange*r);
+ *green=EncodePixelGamma(QuantumRange*g);
+ *blue=EncodePixelGamma(QuantumRange*b);
+}
+
+static inline void ConvertXYZToDisplayP3(const double X,const double Y,
+ const double Z,double *red,double *green,double *blue)
+{
+ double
+ b,
+ g,
+ r;
+
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
+ r=2.49349691194142500*X-0.93138361791912390*Y-0.402710784450716840*Z;
+ g=(-0.82948896956157470)*X+1.76266406031834630*Y+0.023624685841943577*Z;
+ b=0.03584583024378447*X-0.07617238926804182*Y+0.956884524007687200*Z;
+ *red=EncodePixelGamma(QuantumRange*r);
+ *green=EncodePixelGamma(QuantumRange*g);
+ *blue=EncodePixelGamma(QuantumRange*b);
+}
+
static inline void ConvertXYZToLab(const double X,const double Y,const double Z,
double *L,double *a,double *b)
{
@@ -199,6 +303,25 @@ static inline void ConvertXYZToLuv(const double X,const double Y,const double Z,
*v=(*v+140.0)/262.0;
}
+static inline void ConvertXYZToProPhoto(const double X,const double Y,
+ const double Z,double *red,double *green,double *blue)
+{
+ double
+ b,
+ g,
+ r;
+
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
+ r=1.3457989731028281*X-0.25558010007997534*Y-0.05110628506753401*Z;
+ g=(-0.5446224939028347)*X+1.50823274131327810*Y+0.02053603239147973*Z;
+ b=0.0000000000000000*X+0.0000000000000000*Y+1.21196754563894540*Z;
+ *red=EncodePixelGamma(QuantumRange*r);
+ *green=EncodePixelGamma(QuantumRange*g);
+ *blue=EncodePixelGamma(QuantumRange*b);
+}
+
static inline void ConvertXYZToRGB(const double X,const double Y,const double Z,
double *red,double *green,double *blue)
{
diff --git a/MagickCore/gem.c b/MagickCore/gem.c
index 5767b574b..b02cc941a 100644
--- a/MagickCore/gem.c
+++ b/MagickCore/gem.c
@@ -17,7 +17,7 @@
% August 1996 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -675,7 +675,7 @@ MagickPrivate void ConvertHWBToRGB(const double hue,const double whiteness,
r,
v;
- register ssize_t
+ ssize_t
i;
/*
@@ -692,7 +692,7 @@ MagickPrivate void ConvertHWBToRGB(const double hue,const double whiteness,
*blue=QuantumRange*v;
return;
}
- i=(ssize_t) floor(6.0*hue);
+ i=CastDoubleToLong(floor(6.0*hue));
f=6.0*hue-i;
if ((i & 0x01) != 0)
f=1.0-f;
@@ -1578,7 +1578,7 @@ MagickPrivate double GenerateDifferentialNoise(RandomInfo *random_info,
double
poisson;
- register ssize_t
+ ssize_t
i;
poisson=exp(-SigmaPoisson*QuantumScale*pixel);
@@ -1640,7 +1640,7 @@ MagickPrivate size_t GetOptimalKernelWidth1D(const double radius,
normalize,
value;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickCore/gem.h b/MagickCore/gem.h
index 24d8df24c..6381f3c1e 100644
--- a/MagickCore/gem.h
+++ b/MagickCore/gem.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/geometry.c b/MagickCore/geometry.c
index f11a3ef3f..402cf0e5d 100644
--- a/MagickCore/geometry.c
+++ b/MagickCore/geometry.c
@@ -17,7 +17,7 @@
% January 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -464,7 +464,7 @@ MagickExport char *GetPageGeometry(const char *page_geometry)
char
page[MaxTextExtent];
- register ssize_t
+ ssize_t
i;
assert(page_geometry != (char *) NULL);
@@ -758,7 +758,7 @@ MagickExport MagickStatusType ParseAffineGeometry(const char *geometry,
MagickStatusType
flags;
- register ssize_t
+ ssize_t
i;
GetAffineMatrix(affine_matrix);
@@ -900,7 +900,7 @@ MagickExport MagickStatusType ParseGeometry(const char *geometry,
for (p=pedantic_geometry; *p != '\0'; )
{
c=(int) ((unsigned char) *p);
- if (isspace(c) != 0)
+ if (isspace((int) ((unsigned char) c)) != 0)
{
(void) CopyMagickString(p,p+1,MagickPathExtent);
continue;
@@ -1419,8 +1419,8 @@ MagickExport MagickStatusType ParseMetaGeometry(const char *geometry,ssize_t *x,
scale.y=geometry_info.sigma;
if ((percent_flags & SigmaValue) == 0)
scale.y=scale.x;
- *width=(size_t) MagickMax(floor(scale.x*former_width/100.0+0.5),1.0);
- *height=(size_t) MagickMax(floor(scale.y*former_height/100.0+0.5),1.0);
+ *width=(size_t) floor(scale.x*former_width/100.0+0.5);
+ *height=(size_t) floor(scale.y*former_height/100.0+0.5);
former_width=(*width);
former_height=(*height);
}
diff --git a/MagickCore/geometry.h b/MagickCore/geometry.h
index 40fcf62c7..989920fad 100644
--- a/MagickCore/geometry.h
+++ b/MagickCore/geometry.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -55,8 +55,9 @@ typedef enum
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 */
+ SeparatorValue = 0x80000, /* 'x' separator found */
+ AspectRatioValue = 0x100000, /* '~' special handling needed */
+ AlphaValue = 0x200000, /* '/' alpha */
#undef AllValues
AllValues = 0x7fffffff
} GeometryFlags;
diff --git a/MagickCore/histogram.c b/MagickCore/histogram.c
index f5de234eb..2f2aff827 100644
--- a/MagickCore/histogram.c
+++ b/MagickCore/histogram.c
@@ -18,7 +18,7 @@
% August 2009 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -195,15 +195,15 @@ static CubeInfo *ClassifyImageColors(const Image *image,
NodeInfo
*node_info;
- register const Quantum
+ const Quantum
*p;
- register size_t
+ size_t
id,
index,
level;
- register ssize_t
+ ssize_t
i,
x;
@@ -338,7 +338,7 @@ static CubeInfo *ClassifyImageColors(const Image *image,
static void DefineImageHistogram(const Image *image,NodeInfo *node_info,
PixelInfo **histogram)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -353,7 +353,7 @@ static void DefineImageHistogram(const Image *image,NodeInfo *node_info,
DefineImageHistogram(image,node_info->child[i],histogram);
if (node_info->level == (MaxTreeDepth-1))
{
- register PixelInfo
+ PixelInfo
*p;
p=node_info->list;
@@ -392,7 +392,7 @@ static void DefineImageHistogram(const Image *image,NodeInfo *node_info,
*/
static CubeInfo *DestroyCubeInfo(const Image *image,CubeInfo *cube_info)
{
- register Nodes
+ Nodes
*nodes;
/*
@@ -437,7 +437,7 @@ static CubeInfo *DestroyCubeInfo(const Image *image,CubeInfo *cube_info)
*/
static void DestroyColorCube(const Image *image,NodeInfo *node_info)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -650,16 +650,16 @@ static MagickBooleanType CheckImageColors(const Image *image,
pixel,
target;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register NodeInfo
+ NodeInfo
*node_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -904,7 +904,7 @@ MagickExport MagickBooleanType MinMaxStretchImage(Image *image,
min,
max;
- register ssize_t
+ ssize_t
i;
MagickStatusType
@@ -1019,10 +1019,10 @@ MagickExport size_t GetNumberColors(const Image *image,FILE *file,
PixelInfo
pixel;
- register PixelInfo
+ PixelInfo
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1072,7 +1072,7 @@ MagickExport size_t GetNumberColors(const Image *image,FILE *file,
(void) ConcatenateMagickString(tuple,")",MagickPathExtent);
(void) QueryColorname(image,&pixel,SVGCompliance,color,exception);
GetColorTuple(&pixel,MagickTrue,hex);
- (void) sprintf(count,"%g:",(double) ((MagickOffsetType) p->count));
+ (void) sprintf(count,"%.20g:",(double) ((MagickOffsetType) p->count));
(void) FormatLocaleFile(file," %s %s %s %s\n",count,tuple,hex,color);
if (image->progress_monitor != (MagickProgressMonitor) NULL)
{
@@ -1126,7 +1126,7 @@ static void UniqueColorsToImage(Image *unique_image,CacheView *unique_view,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1142,10 +1142,10 @@ static void UniqueColorsToImage(Image *unique_image,CacheView *unique_view,
node_info->child[i],exception);
if (node_info->level == (MaxTreeDepth-1))
{
- register PixelInfo
+ PixelInfo
*p;
- register Quantum
+ Quantum
*magick_restrict q;
status=MagickTrue;
diff --git a/MagickCore/histogram.h b/MagickCore/histogram.h
index 4c326b071..6f37479ee 100644
--- a/MagickCore/histogram.h
+++ b/MagickCore/histogram.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/identify.c b/MagickCore/identify.c
index 09eb141a2..9ebe381f3 100644
--- a/MagickCore/identify.c
+++ b/MagickCore/identify.c
@@ -17,7 +17,7 @@
% September 1994 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -134,7 +134,7 @@ static ChannelStatistics *GetLocationStatistics(const Image *image,
ChannelStatistics
*channel_statistics;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -169,10 +169,10 @@ static ChannelStatistics *GetLocationStatistics(const Image *image,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -309,7 +309,7 @@ static ssize_t PrintChannelLocations(FILE *file,const Image *image,
n=0;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
ssize_t
@@ -352,7 +352,7 @@ static ssize_t PrintChannelMoments(FILE *file,const PixelChannel channel,
powers[MaximumNumberOfImageMoments] =
{ 1.0, 2.0, 3.0, 3.0, 6.0, 4.0, 6.0, 4.0 };
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -383,7 +383,7 @@ static ssize_t PrintChannelMoments(FILE *file,const PixelChannel channel,
static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
const ChannelPerceptualHash *channel_phash)
{
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -407,7 +407,7 @@ static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
PixelTrait
traits;
- register ssize_t
+ ssize_t
j;
channel=GetPixelChannelChannel(image,i);
@@ -419,7 +419,7 @@ static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
n=FormatLocaleFile(file," Channel %.20g:\n",(double) channel);
for (j=0; j < MaximumNumberOfPerceptualHashes; j++)
{
- register ssize_t
+ ssize_t
k;
n+=FormatLocaleFile(file," PH%.20g: ",(double) j+1);
@@ -513,10 +513,10 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
MagickBooleanType
ping;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -1083,7 +1083,7 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
PixelInfo
pixel;
- register PixelInfo
+ PixelInfo
*magick_restrict c;
GetPixelInfo(image,&pixel);
@@ -1218,7 +1218,7 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
ImageInfo
*image_info;
- register char
+ char
*d,
*q;
@@ -1286,7 +1286,7 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
*bounding_box,
*convex_hull;
- register ssize_t
+ ssize_t
n;
size_t
@@ -1358,7 +1358,7 @@ MagickExport MagickBooleanType IdentifyImage(Image *image,FILE *file,
record,
sentinel;
- register ssize_t
+ ssize_t
j;
size_t
diff --git a/MagickCore/identify.h b/MagickCore/identify.h
index 28def6e5e..16b6d4acf 100644
--- a/MagickCore/identify.h
+++ b/MagickCore/identify.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/image-private.h b/MagickCore/image-private.h
index 6cd48c2d0..b17823b1b 100644
--- a/MagickCore/image-private.h
+++ b/MagickCore/image-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -50,6 +50,17 @@ extern "C" {
#define UndefinedCompressionQuality 0UL
#define UndefinedTicksPerSecond 100L
+static inline ssize_t CastDoubleToLong(const double value)
+{
+ if (IsNaN(value) != 0)
+ return(0);
+ if (value > (double) LONG_MAX)
+ return((ssize_t) LONG_MAX);
+ if (value < (double) LONG_MIN)
+ return((ssize_t) LONG_MIN);
+ return((ssize_t) value);
+}
+
static inline double DegreesToRadians(const double degrees)
{
return((double) (MagickPI*degrees/180.0));
diff --git a/MagickCore/image-view.c b/MagickCore/image-view.c
index 2ac0022c8..8dc9e48b5 100644
--- a/MagickCore/image-view.c
+++ b/MagickCore/image-view.c
@@ -22,7 +22,7 @@
% March 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -253,11 +253,11 @@ MagickExport MagickBooleanType DuplexTransferImageViewIterator(
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict duplex_pixels,
*magick_restrict pixels;
- register Quantum
+ Quantum
*magick_restrict destination_pixels;
if (status == MagickFalse)
@@ -563,7 +563,7 @@ MagickExport MagickBooleanType GetImageViewIterator(ImageView *source,
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*pixels;
if (status == MagickFalse)
@@ -911,7 +911,7 @@ MagickExport MagickBooleanType SetImageViewIterator(ImageView *destination,
MagickBooleanType
sync;
- register Quantum
+ Quantum
*magick_restrict pixels;
if (status == MagickFalse)
@@ -1040,10 +1040,10 @@ MagickExport MagickBooleanType TransferImageViewIterator(ImageView *source,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict pixels;
- register Quantum
+ Quantum
*magick_restrict destination_pixels;
if (status == MagickFalse)
@@ -1169,7 +1169,7 @@ MagickExport MagickBooleanType UpdateImageViewIterator(ImageView *source,
const int
id = GetOpenMPThreadId();
- register Quantum
+ Quantum
*magick_restrict pixels;
if (status == MagickFalse)
diff --git a/MagickCore/image-view.h b/MagickCore/image-view.h
index ec4d16807..6ac2cacf8 100644
--- a/MagickCore/image-view.h
+++ b/MagickCore/image-view.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/image.c b/MagickCore/image.c
index b9fb9467e..311d1fe51 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -281,19 +281,23 @@ MagickExport Image *AcquireImage(const ImageInfo *image_info,
flags=ParseGeometry(option,&geometry_info);
if ((flags & GreaterValue) != 0)
{
- if (image->delay > (size_t) floor(geometry_info.rho+0.5))
- image->delay=(size_t) floor(geometry_info.rho+0.5);
+ if ((double) image->delay > floor(geometry_info.rho+0.5))
+ image->delay=(size_t) CastDoubleToLong(floor(
+ geometry_info.rho+0.5));
}
else
if ((flags & LessValue) != 0)
{
- if (image->delay < (size_t) floor(geometry_info.rho+0.5))
- image->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+ if ((double) image->delay < floor(geometry_info.rho+0.5))
+ image->ticks_per_second=CastDoubleToLong(floor(
+ geometry_info.sigma+0.5));
}
else
- image->delay=(size_t) floor(geometry_info.rho+0.5);
+ image->delay=(size_t) CastDoubleToLong(floor(
+ geometry_info.rho+0.5));
if ((flags & SigmaValue) != 0)
- image->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+ image->ticks_per_second=CastDoubleToLong(floor(
+ geometry_info.sigma+0.5));
}
option=GetImageOption(image_info,"dispose");
if (option != (const char *) NULL)
@@ -442,7 +446,7 @@ MagickExport Image *AppendImages(const Image *images,
RectangleInfo
geometry;
- register const Image
+ const Image
*next;
size_t
@@ -541,13 +545,13 @@ MagickExport Image *AppendImages(const Image *images,
PixelInfo
pixel;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -877,15 +881,19 @@ MagickExport Image *CloneImage(const Image *image,const size_t columns,
scale=1.0;
if (image->columns != 0)
scale=(double) columns/(double) image->columns;
- clone_image->page.width=(size_t) floor(scale*image->page.width+0.5);
- clone_image->page.x=(ssize_t) ceil(scale*image->page.x-0.5);
- clone_image->tile_offset.x=(ssize_t) ceil(scale*image->tile_offset.x-0.5);
+ clone_image->page.width=(size_t) CastDoubleToLong(floor(scale*
+ image->page.width+0.5));
+ clone_image->page.x=CastDoubleToLong(ceil(scale*image->page.x-0.5));
+ clone_image->tile_offset.x=CastDoubleToLong(ceil(scale*
+ image->tile_offset.x-0.5));
scale=1.0;
if (image->rows != 0)
scale=(double) rows/(double) image->rows;
- clone_image->page.height=(size_t) floor(scale*image->page.height+0.5);
- clone_image->page.y=(ssize_t) ceil(scale*image->page.y-0.5);
- clone_image->tile_offset.y=(ssize_t) ceil(scale*image->tile_offset.y-0.5);
+ clone_image->page.height=(size_t) CastDoubleToLong(floor(scale*
+ image->page.height+0.5));
+ clone_image->page.y=CastDoubleToLong(ceil(scale*image->page.y-0.5));
+ clone_image->tile_offset.y=CastDoubleToLong(ceil(scale*
+ image->tile_offset.y-0.5));
clone_image->cache=ClonePixelCache(image->cache);
if (SetImageExtent(clone_image,columns,rows,exception) == MagickFalse)
clone_image=DestroyImage(clone_image);
@@ -1073,13 +1081,13 @@ MagickExport MagickBooleanType CopyImagePixels(Image *image,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1095,7 +1103,7 @@ MagickExport MagickBooleanType CopyImagePixels(Image *image,
}
for (x=0; x < (ssize_t) geometry->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1468,13 +1476,13 @@ MagickExport Image *GetImageMask(const Image *image,const PixelMask type,
mask_view=AcquireAuthenticCacheView(mask_image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1638,7 +1646,7 @@ MagickExport size_t InterpretImageFilename(const ImageInfo *image_info,
MagickBooleanType
canonical;
- register const char
+ const char
*p;
ssize_t
@@ -1687,10 +1695,10 @@ MagickExport size_t InterpretImageFilename(const ImageInfo *image_info,
const char
*option;
- register char
+ char
*r;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1809,10 +1817,10 @@ MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1825,7 +1833,7 @@ MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1881,7 +1889,7 @@ MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *image,
*/
MagickExport MagickBooleanType IsImageObject(const Image *image)
{
- register const Image
+ const Image
*p;
assert(image != (Image *) NULL);
@@ -1922,7 +1930,7 @@ MagickExport MagickBooleanType IsTaintImage(const Image *image)
magick[MagickPathExtent],
filename[MagickPathExtent];
- register const Image
+ const Image
*p;
assert(image != (Image *) NULL);
@@ -2059,10 +2067,10 @@ MagickExport Image *NewMagickImage(const ImageInfo *image_info,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2259,10 +2267,10 @@ MagickExport MagickBooleanType ResetImagePixels(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2338,10 +2346,10 @@ MagickExport MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2424,10 +2432,10 @@ MagickExport MagickBooleanType SetImageBackgroundColor(Image *image,
image_view=AcquireAuthenticCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2538,10 +2546,10 @@ MagickExport MagickBooleanType SetImageColor(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2716,7 +2724,7 @@ MagickExport MagickBooleanType SetImageInfo(ImageInfo *image_info,
MagickBooleanType
status;
- register const char
+ const char
*p;
ssize_t
@@ -2804,7 +2812,7 @@ MagickExport MagickBooleanType SetImageInfo(ImageInfo *image_info,
MagickFormatType
format_type;
- register ssize_t
+ ssize_t
i;
static const char
@@ -3240,13 +3248,13 @@ MagickExport MagickBooleanType SetImageMask(Image *image,const PixelMask type,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3396,10 +3404,10 @@ MagickExport MagickBooleanType SetImageRegionMask(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3536,10 +3544,10 @@ static ssize_t SmushXGap(const Image *smush_image,const Image *images,
left_geometry,
right_geometry;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
y;
@@ -3607,10 +3615,10 @@ static ssize_t SmushYGap(const Image *smush_image,const Image *images,
bottom_geometry,
top_geometry;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -3687,7 +3695,7 @@ MagickExport Image *SmushImages(const Image *images,
RectangleInfo
geometry;
- register const Image
+ const Image
*next;
size_t
@@ -3902,10 +3910,10 @@ MagickExport MagickBooleanType SyncImage(Image *image,ExceptionInfo *exception)
Quantum
index;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
diff --git a/MagickCore/image.h b/MagickCore/image.h
index 6e490792a..fa71febb6 100644
--- a/MagickCore/image.h
+++ b/MagickCore/image.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/layer.c b/MagickCore/layer.c
index 63bda6d1a..04851c0d2 100644
--- a/MagickCore/layer.c
+++ b/MagickCore/layer.c
@@ -16,7 +16,7 @@
% January 2006 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -109,10 +109,10 @@ static void ClearBounds(Image *image,RectangleInfo *bounds,
(void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception);
for (y=0; y < (ssize_t) bounds->height; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=GetAuthenticPixels(image,bounds->x,bounds->y+y,bounds->width,1,exception);
@@ -165,11 +165,11 @@ static void ClearBounds(Image *image,RectangleInfo *bounds,
static MagickBooleanType IsBoundsCleared(const Image *image1,
const Image *image2,RectangleInfo *bounds,ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*p,
*q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -233,7 +233,7 @@ MagickExport Image *CoalesceImages(const Image *image,ExceptionInfo *exception)
*dispose_image,
*previous;
- register Image
+ Image
*next;
RectangleInfo
@@ -402,7 +402,7 @@ MagickExport Image *DisposeImages(const Image *images,ExceptionInfo *exception)
RectangleInfo
bounds;
- register Image
+ Image
*image,
*next;
@@ -619,11 +619,11 @@ static RectangleInfo CompareImagesBounds(const Image *image1,
pixel1,
pixel2;
- register const Quantum
+ const Quantum
*p,
*q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -773,10 +773,10 @@ MagickExport Image *CompareImagesLayers(const Image *image,
RectangleInfo
*bounds;
- register const Image
+ const Image
*next;
- register ssize_t
+ ssize_t
i;
assert(image != (const Image *) NULL);
@@ -961,10 +961,10 @@ static Image *OptimizeLayerFrames(const Image *image,const LayerMethod method,
DisposeType
*disposals;
- register const Image
+ const Image
*curr;
- register ssize_t
+ ssize_t
i;
assert(image != (const Image *) NULL);
@@ -1491,7 +1491,7 @@ MagickExport void OptimizeImageTransparency(const Image *image,
Image
*dispose_image;
- register Image
+ Image
*next;
/*
@@ -1619,7 +1619,7 @@ MagickExport void RemoveDuplicateLayers(Image **images,ExceptionInfo *exception)
RectangleInfo
bounds;
- register Image
+ Image
*image,
*next;
@@ -1949,7 +1949,7 @@ MagickExport Image *MergeImageLayers(Image *image,const LayerMethod method,
RectangleInfo
page;
- register const Image
+ const Image
*next;
size_t
diff --git a/MagickCore/layer.h b/MagickCore/layer.h
index 3bc534d1b..daed925f3 100644
--- a/MagickCore/layer.h
+++ b/MagickCore/layer.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/linked-list.c b/MagickCore/linked-list.c
index b23d60d50..64a0d9292 100644
--- a/MagickCore/linked-list.c
+++ b/MagickCore/linked-list.c
@@ -17,7 +17,7 @@
% December 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -111,7 +111,7 @@ struct _LinkedListInfo
MagickExport MagickBooleanType AppendValueToLinkedList(
LinkedListInfo *list_info,const void *value)
{
- register ElementInfo
+ ElementInfo
*next;
assert(list_info != (LinkedListInfo *) NULL);
@@ -168,7 +168,7 @@ MagickExport void ClearLinkedList(LinkedListInfo *list_info,
ElementInfo
*element;
- register ElementInfo
+ ElementInfo
*next;
assert(list_info != (LinkedListInfo *) NULL);
@@ -222,7 +222,7 @@ MagickExport LinkedListInfo *DestroyLinkedList(LinkedListInfo *list_info,
ElementInfo
*entry;
- register ElementInfo
+ ElementInfo
*next;
assert(list_info != (LinkedListInfo *) NULL);
@@ -382,10 +382,10 @@ MagickExport size_t GetNumberOfElementsInLinkedList(
MagickExport void *GetValueFromLinkedList(LinkedListInfo *list_info,
const size_t index)
{
- register ElementInfo
+ ElementInfo
*next;
- register ssize_t
+ ssize_t
i;
void
@@ -447,10 +447,10 @@ MagickExport void *GetValueFromLinkedList(LinkedListInfo *list_info,
MagickExport MagickBooleanType InsertValueInLinkedList(
LinkedListInfo *list_info,const size_t index,const void *value)
{
- register ElementInfo
+ ElementInfo
*next;
- register ssize_t
+ ssize_t
i;
assert(list_info != (LinkedListInfo *) NULL);
@@ -552,10 +552,10 @@ MagickExport MagickBooleanType InsertValueInSortedLinkedList(
ElementInfo
*element;
- register ElementInfo
+ ElementInfo
*next;
- register ssize_t
+ ssize_t
i;
assert(list_info != (LinkedListInfo *) NULL);
@@ -666,10 +666,10 @@ MagickExport MagickBooleanType IsLinkedListEmpty(
MagickExport MagickBooleanType LinkedListToArray(LinkedListInfo *list_info,
void **array)
{
- register ElementInfo
+ ElementInfo
*next;
- register ssize_t
+ ssize_t
i;
assert(list_info != (LinkedListInfo *) NULL);
@@ -831,7 +831,7 @@ MagickExport void *RemoveElementFromLinkedList(LinkedListInfo *list_info,
ElementInfo
*next;
- register ssize_t
+ ssize_t
i;
void
diff --git a/MagickCore/linked-list.h b/MagickCore/linked-list.h
index 7d6dcbd71..552fa0c6c 100644
--- a/MagickCore/linked-list.h
+++ b/MagickCore/linked-list.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/list.c b/MagickCore/list.c
index 8ca4c14e9..b8795cfba 100644
--- a/MagickCore/list.c
+++ b/MagickCore/list.c
@@ -17,7 +17,7 @@
% December 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -79,7 +79,7 @@
*/
MagickExport void AppendImageToList(Image **images,const Image *append)
{
- register Image
+ Image
*p,
*q;
@@ -131,7 +131,7 @@ MagickExport Image *CloneImageList(const Image *images,ExceptionInfo *exception)
*clone,
*image;
- register Image
+ Image
*p;
if (images == (Image *) NULL)
@@ -219,7 +219,7 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes,
*clone_images,
*image;
- register ssize_t
+ ssize_t
i;
size_t
@@ -383,7 +383,7 @@ MagickExport void DeleteImages(Image **images,const char *scenes,
MagickBooleanType
*delete_list;
- register ssize_t
+ ssize_t
i;
size_t
@@ -527,7 +527,7 @@ MagickExport Image *DuplicateImages(Image *images,
*clone_images,
*duplicate_images;
- register ssize_t
+ ssize_t
i;
/*
@@ -573,7 +573,7 @@ MagickExport Image *DuplicateImages(Image *images,
*/
MagickExport Image *GetFirstImageInList(const Image *images)
{
- register const Image
+ const Image
*p;
if (images == (Image *) NULL)
@@ -617,10 +617,10 @@ MagickExport Image *GetFirstImageInList(const Image *images)
*/
MagickExport Image *GetImageFromList(const Image *images,const ssize_t index)
{
- register const Image
+ const Image
*p;
- register ssize_t
+ ssize_t
i;
if (images == (Image *) NULL)
@@ -669,7 +669,7 @@ MagickExport Image *GetImageFromList(const Image *images,const ssize_t index)
*/
MagickExport ssize_t GetImageIndexInList(const Image *images)
{
- register ssize_t
+ ssize_t
i;
if (images == (const Image *) NULL)
@@ -708,7 +708,7 @@ MagickExport ssize_t GetImageIndexInList(const Image *images)
*/
MagickExport size_t GetImageListLength(const Image *images)
{
- register ssize_t
+ ssize_t
i;
if (images == (Image *) NULL)
@@ -749,7 +749,7 @@ MagickExport size_t GetImageListLength(const Image *images)
*/
MagickExport Image *GetLastImageInList(const Image *images)
{
- register const Image
+ const Image
*p;
if (images == (Image *) NULL)
@@ -860,7 +860,7 @@ MagickExport Image **ImageListToArray(const Image *images,
Image
**group;
- register ssize_t
+ ssize_t
i;
if (images == (Image *) NULL)
@@ -1015,7 +1015,7 @@ MagickExport void PrependImageToList(Image **images,Image *prepend)
*/
MagickExport Image *RemoveImageFromList(Image **images)
{
- register Image
+ Image
*p;
assert(images != (Image **) NULL);
@@ -1296,7 +1296,7 @@ MagickExport void ReverseImageList(Image **images)
Image
*next;
- register Image
+ Image
*p;
assert(images != (Image **) NULL);
@@ -1351,7 +1351,7 @@ MagickExport Image *SpliceImageIntoList(Image **images,
*image,
*split;
- register size_t
+ size_t
i;
assert(images != (Image **) NULL);
@@ -1429,7 +1429,7 @@ MagickExport Image *SplitImageList(Image *images)
*/
MagickExport void SyncImageList(Image *images)
{
- register Image
+ Image
*p,
*q;
diff --git a/MagickCore/list.h b/MagickCore/list.h
index 522a29691..12b73ea96 100644
--- a/MagickCore/list.h
+++ b/MagickCore/list.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/locale-private.h b/MagickCore/locale-private.h
index 58e855c5b..c50a4036e 100644
--- a/MagickCore/locale-private.h
+++ b/MagickCore/locale-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/locale.c b/MagickCore/locale.c
index 70ed2ca8a..655e9625d 100644
--- a/MagickCore/locale.c
+++ b/MagickCore/locale.c
@@ -17,7 +17,7 @@
% July 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -169,7 +169,7 @@ static locale_t AcquireCLocale(void)
static void *DestroyLocaleNode(void *locale_info)
{
- register LocaleInfo
+ LocaleInfo
*p;
p=(LocaleInfo *) locale_info;
@@ -584,10 +584,10 @@ MagickExport const LocaleInfo **GetLocaleInfoList(const char *pattern,
const LocaleInfo
**messages;
- register const LocaleInfo
+ const LocaleInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -660,7 +660,7 @@ extern "C" {
static int LocaleTagCompare(const void *x,const void *y)
{
- register char
+ char
**p,
**q;
@@ -679,10 +679,10 @@ MagickExport char **GetLocaleList(const char *pattern,size_t *number_messages,
char
**messages;
- register const LocaleInfo
+ const LocaleInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -914,7 +914,7 @@ static MagickBooleanType IsLocaleTreeInstantiated(ExceptionInfo *exception)
char
*locale;
- register const char
+ const char
*p;
locale=(char *) NULL;
@@ -1032,7 +1032,7 @@ MagickExport MagickBooleanType ListLocaleInfo(FILE *file,
const LocaleInfo
**locale_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1104,7 +1104,7 @@ MagickExport MagickBooleanType ListLocaleInfo(FILE *file,
static void ChopLocaleComponents(char *path,const size_t components)
{
- register char
+ char
*p;
ssize_t
@@ -1162,7 +1162,7 @@ static MagickBooleanType LoadLocaleCache(SplayTreeInfo *cache,const char *xml,
MagickStatusType
status;
- register char
+ char
*p;
size_t
@@ -1411,7 +1411,7 @@ MagickExport int LocaleCompare(const char *p,const char *q)
if (q == (char *) NULL)
return(1);
{
- register const unsigned char
+ const unsigned char
*r = (const unsigned char *) p,
*s = (const unsigned char *) q;
@@ -1446,7 +1446,7 @@ MagickExport int LocaleCompare(const char *p,const char *q)
*/
MagickExport void LocaleLower(char *string)
{
- register char
+ char
*q;
assert(string != (char *) NULL);
@@ -1482,9 +1482,9 @@ MagickExport int LocaleLowercase(const int c)
return(c);
#if defined(MAGICKCORE_LOCALE_SUPPORT)
if (c_locale != (locale_t) NULL)
- return(tolower_l(c,c_locale));
+ return(tolower_l((int) ((unsigned char) c),c_locale));
#endif
- return(tolower(c));
+ return(tolower((int) ((unsigned char) c)));
}
/*
@@ -1537,11 +1537,11 @@ MagickExport int LocaleNCompare(const char *p,const char *q,const size_t length)
if (length == 0)
return(0);
{
- register const unsigned char
+ const unsigned char
*s = (const unsigned char *) p,
*t = (const unsigned char *) q;
- register size_t
+ size_t
n = length;
for (n--; (*s != '\0') && (*t != '\0') && (n != 0) && ((*s == *t) ||
@@ -1575,7 +1575,7 @@ MagickExport int LocaleNCompare(const char *p,const char *q,const size_t length)
*/
MagickExport void LocaleUpper(char *string)
{
- register char
+ char
*q;
assert(string != (char *) NULL);
diff --git a/MagickCore/locale_.h b/MagickCore/locale_.h
index 3e7ed9515..abb92a1f5 100644
--- a/MagickCore/locale_.h
+++ b/MagickCore/locale_.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/log-private.h b/MagickCore/log-private.h
index b1a2eddc5..5bcfe7b90 100644
--- a/MagickCore/log-private.h
+++ b/MagickCore/log-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/log.c b/MagickCore/log.c
index 1b2c02c91..2c34e8b0e 100644
--- a/MagickCore/log.c
+++ b/MagickCore/log.c
@@ -17,7 +17,7 @@
% September 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -273,7 +273,7 @@ static LinkedListInfo *AcquireLogCache(const char *filename,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
/*
@@ -308,7 +308,7 @@ static LinkedListInfo *AcquireLogCache(const char *filename,
LogInfo
*log_info;
- register const LogMapInfo
+ const LogMapInfo
*p;
p=LogMap+i;
@@ -403,7 +403,7 @@ MagickExport void CloseMagickLog(void)
*/
static LogInfo *GetLogInfo(const char *name,ExceptionInfo *exception)
{
- register LogInfo
+ LogInfo
*p;
assert(exception != (ExceptionInfo *) NULL);
@@ -487,10 +487,10 @@ MagickExport const LogInfo **GetLogInfoList(const char *pattern,
const LogInfo
**preferences;
- register const LogInfo
+ const LogInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -561,7 +561,7 @@ extern "C" {
static int LogCompare(const void *x,const void *y)
{
- register const char
+ const char
**p,
**q;
@@ -580,10 +580,10 @@ MagickExport char **GetLogList(const char *pattern,size_t *number_preferences,
char
**preferences;
- register const LogInfo
+ const LogInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -761,7 +761,7 @@ MagickExport MagickBooleanType ListLogInfo(FILE *file,ExceptionInfo *exception)
const LogInfo
**log_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1123,7 +1123,7 @@ MagickPrivate MagickBooleanType LogComponentGenesis(void)
static void *DestroyLogElement(void *log_info)
{
- register LogInfo
+ LogInfo
*p;
p=(LogInfo *) log_info;
@@ -1206,10 +1206,10 @@ static char *TranslateEvent(const char *module,const char *function,
LogInfo
*log_info;
- register char
+ char
*q;
- register const char
+ const char
*p;
size_t
@@ -1360,7 +1360,7 @@ static char *TranslateEvent(const char *module,const char *function,
}
case 'm':
{
- register const char
+ const char
*r;
for (r=module+strlen(module)-1; r > module; r--)
@@ -1426,10 +1426,10 @@ static char *TranslateFilename(const LogInfo *log_info)
char
*filename;
- register char
+ char
*q;
- register const char
+ const char
*p;
size_t
@@ -1704,10 +1704,10 @@ static LogHandlerType ParseLogHandlers(const char *handlers)
LogHandlerType
handler_mask;
- register const char
+ const char
*p;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickCore/log.h b/MagickCore/log.h
index 88054d4ed..8421e7b58 100644
--- a/MagickCore/log.h
+++ b/MagickCore/log.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/magic-private.h b/MagickCore/magic-private.h
index 4b6747aca..9723620e5 100644
--- a/MagickCore/magic-private.h
+++ b/MagickCore/magic-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/magic.c b/MagickCore/magic.c
index 56d32fca9..cb8e28558 100644
--- a/MagickCore/magic.c
+++ b/MagickCore/magic.c
@@ -17,7 +17,7 @@
% July 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -181,7 +181,7 @@ static int CompareMagickInfoSize(const void *a,const void *b)
else
return((int) (ma->offset-mb->offset));
}
- return((int) (mb->length-ma->length));
+ return((int) (mb->length-(ssize_t) ma->length));
}
static LinkedListInfo *AcquireMagicList(ExceptionInfo *exception)
@@ -192,7 +192,7 @@ static LinkedListInfo *AcquireMagicList(ExceptionInfo *exception)
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
list=NewLinkedList(0);
@@ -205,7 +205,7 @@ static LinkedListInfo *AcquireMagicList(ExceptionInfo *exception)
MagicInfo
*magic_info;
- register const MagicMapInfo
+ const MagicMapInfo
*p;
p=MagicMap+i;
@@ -280,7 +280,7 @@ static MagickBooleanType IsMagicCacheInstantiated()
MagickExport const MagicInfo *GetMagicInfo(const unsigned char *magic,
const size_t length,ExceptionInfo *exception)
{
- register const MagicInfo
+ const MagicInfo
*p;
assert(exception != (ExceptionInfo *) NULL);
@@ -362,7 +362,7 @@ MagickExport const MagicInfo *GetMagicInfo(const unsigned char *magic,
*/
MagickExport size_t GetMagicPatternExtent(ExceptionInfo *exception)
{
- register const MagicInfo
+ const MagicInfo
*p;
size_t
@@ -447,10 +447,10 @@ MagickExport const MagicInfo **GetMagicInfoList(const char *pattern,
const MagicInfo
**aliases;
- register const MagicInfo
+ const MagicInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -523,7 +523,7 @@ extern "C" {
static int MagicCompare(const void *x,const void *y)
{
- register const char
+ const char
*p,
*q;
@@ -542,10 +542,10 @@ MagickExport char **GetMagicList(const char *pattern,size_t *number_aliases,
char
**aliases;
- register const MagicInfo
+ const MagicInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -679,7 +679,7 @@ MagickExport MagickBooleanType ListMagicInfo(FILE *file,
const MagicInfo
**magic_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -775,7 +775,7 @@ MagickPrivate MagickBooleanType MagicComponentGenesis(void)
static void *DestroyMagicElement(void *magic_info)
{
- register MagicInfo
+ MagicInfo
*p;
p=(MagicInfo *) magic_info;
diff --git a/MagickCore/magic.h b/MagickCore/magic.h
index dc20ce833..d7496a27d 100644
--- a/MagickCore/magic.h
+++ b/MagickCore/magic.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/magick-private.h b/MagickCore/magick-private.h
index 06c34ce30..d4c5bddc9 100644
--- a/MagickCore/magick-private.h
+++ b/MagickCore/magick-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/magick-type.h b/MagickCore/magick-type.h
index 9c97c3fb4..c3cde204f 100644
--- a/MagickCore/magick-type.h
+++ b/MagickCore/magick-type.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/magick.c b/MagickCore/magick.c
index 0e60ffce7..fc4f1cd34 100644
--- a/MagickCore/magick.c
+++ b/MagickCore/magick.c
@@ -18,7 +18,7 @@
% November 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -296,7 +296,7 @@ MagickExport MagickBooleanType GetImageMagick(const unsigned char *magick,
MagickBooleanType
status;
- register const MagickInfo
+ const MagickInfo
*p;
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
@@ -610,7 +610,7 @@ MagickExport MagickBooleanType GetMagickEndianSupport(
MagickExport const MagickInfo *GetMagickInfo(const char *name,
ExceptionInfo *exception)
{
- register const MagickInfo
+ const MagickInfo
*magick_info;
/*
@@ -703,10 +703,10 @@ MagickExport const MagickInfo **GetMagickInfoList(const char *pattern,
const MagickInfo
**formats;
- register const MagickInfo
+ const MagickInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -777,7 +777,7 @@ extern "C" {
static int MagickCompare(const void *x,const void *y)
{
- register const char
+ const char
**p,
**q;
@@ -796,10 +796,10 @@ MagickExport char **GetMagickList(const char *pattern,
char
**formats;
- register const MagickInfo
+ const MagickInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -1067,7 +1067,7 @@ MagickExport MagickBooleanType GetMagickUseExtension(
static void *DestroyMagickNode(void *magick_info)
{
- register MagickInfo
+ MagickInfo
*p;
p=(MagickInfo *) magick_info;
@@ -1177,7 +1177,7 @@ MagickExport MagickBooleanType ListMagickInfo(FILE *file,
const MagickInfo
**magick_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1803,7 +1803,7 @@ MagickExport int SetMagickPrecision(const int precision)
*/
MagickExport MagickBooleanType UnregisterMagickInfo(const char *name)
{
- register const MagickInfo
+ const MagickInfo
*p;
MagickBooleanType
diff --git a/MagickCore/magick.h b/MagickCore/magick.h
index af5570640..13eded435 100644
--- a/MagickCore/magick.h
+++ b/MagickCore/magick.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/matrix-private.h b/MagickCore/matrix-private.h
index 89a573495..d4a2914dc 100644
--- a/MagickCore/matrix-private.h
+++ b/MagickCore/matrix-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/matrix.c b/MagickCore/matrix.c
index 977081e75..c06d8bd0f 100644
--- a/MagickCore/matrix.c
+++ b/MagickCore/matrix.c
@@ -17,7 +17,7 @@
% August 2007 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -133,7 +133,7 @@ static inline MagickOffsetType WriteMatrixElements(
const MatrixInfo *magick_restrict matrix_info,const MagickOffsetType offset,
const MagickSizeType length,const unsigned char *magick_restrict buffer)
{
- register MagickOffsetType
+ MagickOffsetType
i;
ssize_t
@@ -152,10 +152,10 @@ static inline MagickOffsetType WriteMatrixElements(
{
#if !defined(MAGICKCORE_HAVE_PWRITE)
count=write(matrix_info->file,buffer+i,(size_t) MagickMin(length-i,
- (MagickSizeType) SSIZE_MAX));
+ (MagickSizeType) LONG_MAX));
#else
count=pwrite(matrix_info->file,buffer+i,(size_t) MagickMin(length-i,
- (MagickSizeType) SSIZE_MAX),(off_t) (offset+i));
+ (MagickSizeType) LONG_MAX),(off_t) (offset+i));
#endif
if (count <= 0)
{
@@ -320,7 +320,7 @@ MagickExport double **AcquireMagickMatrix(const size_t number_rows,
double
**matrix;
- register ssize_t
+ ssize_t
i,
j;
@@ -494,7 +494,7 @@ MagickPrivate MagickBooleanType GaussJordanElimination(double **matrix,
max,
scale;
- register ssize_t
+ ssize_t
i,
j,
k;
@@ -665,7 +665,7 @@ static inline MagickOffsetType ReadMatrixElements(
const MatrixInfo *magick_restrict matrix_info,const MagickOffsetType offset,
const MagickSizeType length,unsigned char *magick_restrict buffer)
{
- register MagickOffsetType
+ MagickOffsetType
i;
ssize_t
@@ -684,10 +684,10 @@ static inline MagickOffsetType ReadMatrixElements(
{
#if !defined(MAGICKCORE_HAVE_PREAD)
count=read(matrix_info->file,buffer+i,(size_t) MagickMin(length-i,
- (MagickSizeType) SSIZE_MAX));
+ (MagickSizeType) LONG_MAX));
#else
count=pread(matrix_info->file,buffer+i,(size_t) MagickMin(length-i,
- (MagickSizeType) SSIZE_MAX),(off_t) (offset+i));
+ (MagickSizeType) LONG_MAX),(off_t) (offset+i));
#endif
if (count <= 0)
{
@@ -830,7 +830,7 @@ MagickPrivate void LeastSquaresAddTerms(double **matrix,double **vectors,
const double *terms,const double *results,const size_t rank,
const size_t number_vectors)
{
- register ssize_t
+ ssize_t
i,
j;
@@ -902,7 +902,7 @@ MagickExport Image *MatrixToImage(const MatrixInfo *matrix_info,
max_value=min_value;
for (y=0; y < (ssize_t) matrix_info->rows; y++)
{
- register ssize_t
+ ssize_t
x;
for (x=0; x < (ssize_t) matrix_info->columns; x++)
@@ -947,10 +947,10 @@ MagickExport Image *MatrixToImage(const MatrixInfo *matrix_info,
double
value;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1002,7 +1002,7 @@ MagickExport Image *MatrixToImage(const MatrixInfo *matrix_info,
*/
MagickExport MagickBooleanType NullMatrix(MatrixInfo *matrix_info)
{
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1066,7 +1066,7 @@ MagickExport MagickBooleanType NullMatrix(MatrixInfo *matrix_info)
MagickExport double **RelinquishMagickMatrix(double **matrix,
const size_t number_rows)
{
- register ssize_t
+ ssize_t
i;
if (matrix == (double **) NULL )
diff --git a/MagickCore/matrix.h b/MagickCore/matrix.h
index 0d7f970c9..66920fe75 100644
--- a/MagickCore/matrix.h
+++ b/MagickCore/matrix.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/memory-private.h b/MagickCore/memory-private.h
index 405a5318b..0577a2f85 100644
--- a/MagickCore/memory-private.h
+++ b/MagickCore/memory-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/memory.c b/MagickCore/memory.c
index f513b6f02..ac846c688 100644
--- a/MagickCore/memory.c
+++ b/MagickCore/memory.c
@@ -17,7 +17,7 @@
% July 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -377,7 +377,7 @@ MagickExport void *AcquireAlignedMemory(const size_t count,const size_t quantum)
static inline size_t AllocationPolicy(size_t size)
{
- register size_t
+ size_t
blocksize;
/*
@@ -405,7 +405,7 @@ static inline size_t AllocationPolicy(size_t size)
static inline void InsertFreeBlock(void *block,const size_t i)
{
- register void
+ void
*next,
*previous;
@@ -432,7 +432,7 @@ static inline void InsertFreeBlock(void *block,const size_t i)
static inline void RemoveFreeBlock(void *block,const size_t i)
{
- register void
+ void
*next,
*previous;
@@ -448,10 +448,10 @@ static inline void RemoveFreeBlock(void *block,const size_t i)
static void *AcquireBlock(size_t size)
{
- register size_t
+ size_t
i;
- register void
+ void
*block;
/*
@@ -524,7 +524,7 @@ static void *AcquireBlock(size_t size)
*/
MagickExport void *AcquireMagickMemory(const size_t size)
{
- register void
+ void
*memory;
#if !defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
@@ -537,7 +537,7 @@ MagickExport void *AcquireMagickMemory(const size_t size)
LockSemaphoreInfo(memory_semaphore);
if (free_segments == (DataSegmentInfo *) NULL)
{
- register ssize_t
+ ssize_t
i;
assert(2*sizeof(size_t) > (size_t) (~SizeMask));
@@ -598,7 +598,7 @@ MagickExport void *AcquireMagickMemory(const size_t size)
*/
MagickExport void *AcquireCriticalMemory(const size_t size)
{
- register void
+ void
*memory;
/*
@@ -810,10 +810,10 @@ MagickExport MemoryInfo *AcquireVirtualMemory(const size_t count,
MagickExport void *CopyMagickMemory(void *magick_restrict destination,
const void *magick_restrict source,const size_t size)
{
- register const unsigned char
+ const unsigned char
*p;
- register unsigned char
+ unsigned char
*q;
assert(destination != (void *) NULL);
@@ -858,7 +858,7 @@ MagickExport void *CopyMagickMemory(void *magick_restrict destination,
MagickExport void DestroyMagickMemory(void)
{
#if defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
- register ssize_t
+ ssize_t
i;
if (memory_semaphore == (SemaphoreInfo *) NULL)
@@ -910,10 +910,10 @@ static MagickBooleanType ExpandHeap(size_t size)
MagickBooleanType
mapped;
- register ssize_t
+ ssize_t
i;
- register void
+ void
*block;
size_t
@@ -1035,7 +1035,7 @@ MagickExport size_t GetMaxMemoryRequest(void)
value=DestroyString(value);
}
}
- return(max_memory_request);
+ return(MagickMin(max_memory_request,LONG_MAX));
}
/*
@@ -1340,7 +1340,7 @@ MagickPrivate void ResetVirtualAnonymousMemory(void)
#if defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
static inline void *ResizeBlock(void *block,size_t size)
{
- register void
+ void
*memory;
if (block == (void *) NULL)
@@ -1359,7 +1359,7 @@ static inline void *ResizeBlock(void *block,size_t size)
MagickExport void *ResizeMagickMemory(void *memory,const size_t size)
{
- register void
+ void
*block;
if (memory == (void *) NULL)
diff --git a/MagickCore/memory_.h b/MagickCore/memory_.h
index b6ff952cf..585b5bb8a 100644
--- a/MagickCore/memory_.h
+++ b/MagickCore/memory_.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/method-attribute.h b/MagickCore/method-attribute.h
index b46c607e7..f8304d53d 100644
--- a/MagickCore/method-attribute.h
+++ b/MagickCore/method-attribute.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/methods.h b/MagickCore/methods.h
index 3cf274fb8..899ea3cff 100644
--- a/MagickCore/methods.h
+++ b/MagickCore/methods.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/mime-private.h b/MagickCore/mime-private.h
index c12eae5af..6857ac7c4 100644
--- a/MagickCore/mime-private.h
+++ b/MagickCore/mime-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/mime.c b/MagickCore/mime.c
index 2e05b8465..bc9cf24e9 100644
--- a/MagickCore/mime.c
+++ b/MagickCore/mime.c
@@ -15,7 +15,7 @@
% July 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -223,13 +223,13 @@ MagickExport const MimeInfo *GetMimeInfo(const char *filename,
EndianType
endian;
- register const MimeInfo
+ const MimeInfo
*p;
- register const unsigned char
+ const unsigned char
*q;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -436,10 +436,10 @@ MagickExport const MimeInfo **GetMimeInfoList(const char *pattern,
const MimeInfo
**aliases;
- register const MimeInfo
+ const MimeInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -512,7 +512,7 @@ extern "C" {
static int MimeCompare(const void *x,const void *y)
{
- register char
+ char
*p,
*q;
@@ -531,10 +531,10 @@ MagickExport char **GetMimeList(const char *pattern,
char
**aliases;
- register const MimeInfo
+ const MimeInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -697,7 +697,7 @@ MagickExport MagickBooleanType ListMimeInfo(FILE *file,ExceptionInfo *exception)
const MimeInfo
**mime_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -874,7 +874,7 @@ static MagickBooleanType LoadMimeCache(LinkedListInfo *cache,const char *xml,
const char
*p;
- register unsigned char
+ unsigned char
*q;
token=AcquireString(attribute);
@@ -1054,7 +1054,7 @@ MagickPrivate MagickBooleanType MimeComponentGenesis(void)
static void *DestroyMimeElement(void *mime_info)
{
- register MimeInfo
+ MimeInfo
*p;
p=(MimeInfo *) mime_info;
diff --git a/MagickCore/mime.h b/MagickCore/mime.h
index 5f9230a74..a8f337458 100644
--- a/MagickCore/mime.h
+++ b/MagickCore/mime.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/module-private.h b/MagickCore/module-private.h
index 049c989a0..3beadac19 100644
--- a/MagickCore/module-private.h
+++ b/MagickCore/module-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/module.c b/MagickCore/module.c
index e270d34e8..33b8fca33 100644
--- a/MagickCore/module.c
+++ b/MagickCore/module.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -291,10 +291,10 @@ MagickExport const ModuleInfo **GetModuleInfoList(const char *pattern,
const ModuleInfo
**modules;
- register const ModuleInfo
+ const ModuleInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -369,7 +369,7 @@ extern "C" {
static int ModuleCompare(const void *x,const void *y)
{
- register const char
+ const char
**p,
**q;
@@ -399,7 +399,7 @@ MagickExport char **GetModuleList(const char *pattern,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -566,7 +566,7 @@ static MagickBooleanType GetMagickModulePath(const char *filename,
}
if (module_path != (char *) NULL)
{
- register char
+ char
*p,
*q;
@@ -850,7 +850,7 @@ static void *DestroyModuleNode(void *module_info)
ExceptionInfo
*exception;
- register ModuleInfo
+ ModuleInfo
*p;
exception=AcquireExceptionInfo();
@@ -1073,7 +1073,7 @@ MagickExport MagickBooleanType ListModuleInfo(FILE *file,
**modules,
path[MagickPathExtent];
- register ssize_t
+ ssize_t
i;
size_t
@@ -1238,7 +1238,7 @@ MagickPrivate MagickBooleanType OpenModule(const char *module,
PolicyRights
rights;
- register const CoderInfo
+ const CoderInfo
*p;
size_t
@@ -1361,7 +1361,7 @@ MagickPrivate MagickBooleanType OpenModules(ExceptionInfo *exception)
char
**modules;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickCore/module.h b/MagickCore/module.h
index 19d733507..a08e54523 100644
--- a/MagickCore/module.h
+++ b/MagickCore/module.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/monitor-private.h b/MagickCore/monitor-private.h
index d7cdb70fa..9ab1988b0 100644
--- a/MagickCore/monitor-private.h
+++ b/MagickCore/monitor-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/monitor.c b/MagickCore/monitor.c
index bf7cb92d9..49a77ffb8 100644
--- a/MagickCore/monitor.c
+++ b/MagickCore/monitor.c
@@ -17,7 +17,7 @@
% December 1995 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickCore/monitor.h b/MagickCore/monitor.h
index f0fd907d1..e6841d07d 100644
--- a/MagickCore/monitor.h
+++ b/MagickCore/monitor.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/montage.c b/MagickCore/montage.c
index 30eaff708..260dd3428 100644
--- a/MagickCore/montage.c
+++ b/MagickCore/montage.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -363,7 +363,7 @@ MagickExport Image *MontageImageList(const ImageInfo *image_info,
MagickStatusType
flags;
- register ssize_t
+ ssize_t
i;
RectangleInfo
diff --git a/MagickCore/montage.h b/MagickCore/montage.h
index b21e41b4c..1f5824c38 100644
--- a/MagickCore/montage.h
+++ b/MagickCore/montage.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/morphology-private.h b/MagickCore/morphology-private.h
index aa690fa18..2ace8a27e 100644
--- a/MagickCore/morphology-private.h
+++ b/MagickCore/morphology-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c
index c58ee9fa3..7b667e435 100644
--- a/MagickCore/morphology.c
+++ b/MagickCore/morphology.c
@@ -17,7 +17,7 @@
% January 2010 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -223,7 +223,7 @@ static KernelInfo *ParseKernelArray(const char *kernel_string)
*p,
*end;
- register ssize_t
+ ssize_t
i;
double
@@ -954,10 +954,10 @@ MagickExport KernelInfo *AcquireKernelBuiltIn(const KernelInfoType type,
KernelInfo
*kernel;
- register ssize_t
+ ssize_t
i;
- register ssize_t
+ ssize_t
u,
v;
@@ -2212,7 +2212,7 @@ MagickExport KernelInfo *AcquireKernelBuiltIn(const KernelInfoType type,
*/
MagickExport KernelInfo *CloneKernelInfo(const KernelInfo *kernel)
{
- register ssize_t
+ ssize_t
i;
KernelInfo
@@ -2311,9 +2311,9 @@ static void FlopKernelInfo(KernelInfo *kernel)
{ /* Do a Flop by reversing each row. */
size_t
y;
- register ssize_t
+ ssize_t
x,r;
- register double
+ double
*k,t;
for ( y=0, k=kernel->values; y < kernel->height; y++, k+=kernel->width)
@@ -2392,7 +2392,7 @@ static void ExpandMirrorKernelInfo(KernelInfo *kernel)
static MagickBooleanType SameKernelInfo(const KernelInfo *kernel1,
const KernelInfo *kernel2)
{
- register size_t
+ size_t
i;
/* check size and origin location */
@@ -2480,7 +2480,7 @@ RestoreMSCWarning
*/
static void CalcKernelMetaData(KernelInfo *kernel)
{
- register size_t
+ size_t
i;
kernel->minimum = kernel->maximum = 0.0;
@@ -2572,7 +2572,7 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image,
OffsetInfo
offset;
- register ssize_t
+ ssize_t
j,
y;
@@ -2642,7 +2642,7 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image,
if ((method == ConvolveMorphology) && (kernel->width == 1))
{
- register ssize_t
+ ssize_t
x;
/*
@@ -2660,13 +2660,13 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image,
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
r;
ssize_t
@@ -2686,7 +2686,7 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image,
center=(ssize_t) GetPixelChannels(image)*offset.y;
for (r=0; r < (ssize_t) image->rows; r++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2703,13 +2703,13 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image,
morphology_traits,
traits;
- register const MagickRealType
+ const MagickRealType
*magick_restrict k;
- register const Quantum
+ const Quantum
*magick_restrict pixels;
- register ssize_t
+ ssize_t
v;
size_t
@@ -2806,13 +2806,13 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image,
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -2833,7 +2833,7 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image,
GetPixelChannels(image)*offset.x);
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2853,14 +2853,14 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image,
morphology_traits,
traits;
- register const MagickRealType
+ const MagickRealType
*magick_restrict k;
- register const Quantum
+ const Quantum
*magick_restrict pixels,
*magick_restrict quantum_pixels;
- register ssize_t
+ ssize_t
u;
size_t
@@ -3306,13 +3306,13 @@ static ssize_t MorphologyPrimitiveDirect(Image *image,
width=image->columns+kernel->width-1;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
/*
@@ -3336,7 +3336,7 @@ static ssize_t MorphologyPrimitiveDirect(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3350,13 +3350,13 @@ static ssize_t MorphologyPrimitiveDirect(Image *image,
PixelTrait
traits;
- register const MagickRealType
+ const MagickRealType
*magick_restrict k;
- register const Quantum
+ const Quantum
*magick_restrict pixels;
- register ssize_t
+ ssize_t
u;
ssize_t
@@ -3469,13 +3469,13 @@ static ssize_t MorphologyPrimitiveDirect(Image *image,
morphology_view=AcquireAuthenticCacheView(image,exception);
for (y=(ssize_t) image->rows-1; y >= 0; y--)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
/*
@@ -3500,7 +3500,7 @@ static ssize_t MorphologyPrimitiveDirect(Image *image,
q+=(image->columns-1)*GetPixelChannels(image);
for (x=(ssize_t) image->columns-1; x >= 0; x--)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3514,13 +3514,13 @@ static ssize_t MorphologyPrimitiveDirect(Image *image,
PixelTrait
traits;
- register const MagickRealType
+ const MagickRealType
*magick_restrict k;
- register const Quantum
+ const Quantum
*magick_restrict pixels;
- register ssize_t
+ ssize_t
u;
ssize_t
@@ -4365,10 +4365,10 @@ static void RotateKernelInfo(KernelInfo *kernel, double angle)
}
else if ( kernel->width == kernel->height )
{ /* Rotate a square array of values by 90 degrees */
- { register ssize_t
+ { ssize_t
i,j,x,y;
- register MagickRealType
+ MagickRealType
*k,t;
k=kernel->values;
@@ -4382,7 +4382,7 @@ static void RotateKernelInfo(KernelInfo *kernel, double angle)
}
}
/* rotate the origin - relative to center of array */
- { register ssize_t x,y;
+ { ssize_t x,y;
x = (ssize_t) (kernel->x*2-kernel->width+1);
y = (ssize_t) (kernel->y*2-kernel->height+1);
kernel->x = (ssize_t) ( -y +(ssize_t) kernel->width-1)/2;
@@ -4404,7 +4404,7 @@ static void RotateKernelInfo(KernelInfo *kernel, double angle)
MagickRealType
t;
- register MagickRealType
+ MagickRealType
*k;
ssize_t
@@ -4572,11 +4572,11 @@ MagickExport void ScaleGeometryKernelInfo (KernelInfo *kernel,
MagickExport void ScaleKernelInfo(KernelInfo *kernel,
const double scaling_factor,const GeometryFlags normalize_flags)
{
- register double
+ double
pos_scale,
neg_scale;
- register ssize_t
+ ssize_t
i;
/* do the other kernels in a multi-kernel list first */
@@ -4776,7 +4776,7 @@ MagickExport void UnityAddKernelInfo(KernelInfo *kernel,
*/
MagickPrivate void ZeroKernelNans(KernelInfo *kernel)
{
- register size_t
+ size_t
i;
/* do the other kernels in a multi-kernel list first */
diff --git a/MagickCore/morphology.h b/MagickCore/morphology.h
index f3999a478..c1eac5254 100644
--- a/MagickCore/morphology.h
+++ b/MagickCore/morphology.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/mutex.h b/MagickCore/mutex.h
index 5ebdc72b7..629341aa2 100644
--- a/MagickCore/mutex.h
+++ b/MagickCore/mutex.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/nt-base-private.h b/MagickCore/nt-base-private.h
index fcd658c85..e45b6a5db 100644
--- a/MagickCore/nt-base-private.h
+++ b/MagickCore/nt-base-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/nt-base.c b/MagickCore/nt-base.c
index 061ce6c05..661dbd294 100644
--- a/MagickCore/nt-base.c
+++ b/MagickCore/nt-base.c
@@ -17,7 +17,7 @@
% December 1996 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -42,6 +42,7 @@
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
#include "MagickCore/client.h"
#include "MagickCore/exception-private.h"
+#include "MagickCore/image-private.h"
#include "MagickCore/locale_.h"
#include "MagickCore/log.h"
#include "MagickCore/magick.h"
@@ -1328,7 +1329,7 @@ MagickPrivate const GhostInfo *NTGhostscriptDLLVectors(void)
*/
MagickPrivate void NTGhostscriptEXE(char *path,int length)
{
- register char
+ char
*p;
static char
@@ -1402,7 +1403,7 @@ MagickPrivate int NTGhostscriptFonts(char *path,int length)
*directory,
filename[MagickPathExtent];
- register char
+ char
*p,
*q;
@@ -1664,6 +1665,7 @@ MagickExport MagickBooleanType NTLongPathsEnabled()
long_paths_enabled=0;
return(MagickFalse);
}
+ size=0;
status=RegQueryValueExA(registry_key,"LongPathsEnabled",0,&type,
(LPBYTE) &value,&size);
RegCloseKey(registry_key);
@@ -1901,7 +1903,7 @@ MagickPrivate void *NTOpenLibrary(const char *filename)
char
path[MagickPathExtent];
- register const char
+ const char
*p,
*q;
@@ -2300,9 +2302,7 @@ MagickPrivate int NTSystemCommand(const char *command,char *output)
local_command[MagickPathExtent];
DWORD
- bytes_read,
- child_status,
- size;
+ child_status;
int
status;
@@ -2320,6 +2320,9 @@ MagickPrivate int NTSystemCommand(const char *command,char *output)
SECURITY_ATTRIBUTES
sa;
+ size_t
+ output_offset;
+
STARTUPINFO
startup_info;
@@ -2375,9 +2378,47 @@ MagickPrivate int NTSystemCommand(const char *command,char *output)
CleanupOutputHandles;
return(-1);
}
+ if (output != (char *) NULL)
+ *output='\0';
if (asynchronous != MagickFalse)
return(status == 0);
- status=WaitForSingleObject(process_info.hProcess,INFINITE);
+ output_offset=0;
+ status=STATUS_TIMEOUT;
+ while (status == STATUS_TIMEOUT)
+ {
+ DWORD
+ size;
+
+ status=WaitForSingleObject(process_info.hProcess,1000);
+ size=0;
+ if (read_output != (HANDLE) NULL)
+ if (!PeekNamedPipe(read_output,NULL,0,NULL,&size,NULL))
+ break;
+ while (size > 0)
+ {
+ char
+ buffer[MagickPathExtent];
+
+ DWORD
+ bytes_read;
+
+ if (ReadFile(read_output,buffer,sizeof(buffer)-1,&bytes_read,NULL))
+ {
+ size_t
+ count;
+
+ count=MagickMin(MagickPathExtent-1-output_offset,bytes_read);
+ if (count > 0)
+ {
+ CopyMagickString(output+output_offset,buffer,count);
+ output[count]='\0';
+ output_offset=count;
+ }
+ }
+ if (!PeekNamedPipe(read_output,NULL,0,NULL,&size,NULL))
+ break;
+ }
+ }
if (status != WAIT_OBJECT_0)
{
CopyLastError;
@@ -2393,10 +2434,6 @@ MagickPrivate int NTSystemCommand(const char *command,char *output)
}
CloseHandle(process_info.hProcess);
CloseHandle(process_info.hThread);
- if (read_output != (HANDLE) NULL)
- if (PeekNamedPipe(read_output,(LPVOID) NULL,0,(LPDWORD) NULL,&size,(LPDWORD) NULL))
- if ((size > 0) && (ReadFile(read_output,output,MagickPathExtent-1,&bytes_read,NULL)))
- output[bytes_read]='\0';
CleanupOutputHandles;
return((int) child_status);
}
diff --git a/MagickCore/nt-base.h b/MagickCore/nt-base.h
index 2c859f552..57b366b22 100644
--- a/MagickCore/nt-base.h
+++ b/MagickCore/nt-base.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -55,13 +55,6 @@ extern "C" {
#define _SC_PAGE_SIZE 1
#define _SC_PHYS_PAGES 2
#define _SC_OPEN_MAX 3
-#if !defined(SSIZE_MAX)
-# ifdef _WIN64
-# define SSIZE_MAX LLONG_MAX
-# else
-# define SSIZE_MAX LONG_MAX
-# endif
-#endif
/*
_MSC_VER values:
diff --git a/MagickCore/nt-feature.c b/MagickCore/nt-feature.c
index 679ae9e9a..88ae736fb 100644
--- a/MagickCore/nt-feature.c
+++ b/MagickCore/nt-feature.c
@@ -18,7 +18,7 @@
% December 1996 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickCore/nt-feature.h b/MagickCore/nt-feature.h
index 5071059a1..89d571bde 100644
--- a/MagickCore/nt-feature.h
+++ b/MagickCore/nt-feature.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/opencl-private.h b/MagickCore/opencl-private.h
index 807505f01..020ddd0de 100644
--- a/MagickCore/opencl-private.h
+++ b/MagickCore/opencl-private.h
@@ -1,5 +1,5 @@
/*
-Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+Copyright 1999-2021 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
diff --git a/MagickCore/opencl.c b/MagickCore/opencl.c
index abf646709..3a380fd22 100644
--- a/MagickCore/opencl.c
+++ b/MagickCore/opencl.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -1436,7 +1436,7 @@ static cl_event* CopyOpenCLEvents(MagickCLCacheInfo first,
cl_event
*events;
- register size_t
+ size_t
i;
size_t
diff --git a/MagickCore/opencl.h b/MagickCore/opencl.h
index 4690b65eb..06027d5b9 100644
--- a/MagickCore/opencl.h
+++ b/MagickCore/opencl.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/option-private.h b/MagickCore/option-private.h
index 3cc79fab9..81b6f1bad 100644
--- a/MagickCore/option-private.h
+++ b/MagickCore/option-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/option.c b/MagickCore/option.c
index 29971b369..cc5209d33 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -462,9 +462,11 @@ static const OptionInfo
ColorspaceOptions[] =
{
{ "Undefined", UndefinedColorspace, UndefinedOptionFlag, MagickTrue },
+ { "Adobe98", Adobe98Colorspace, UndefinedOptionFlag, MagickFalse },
{ "CIELab", LabColorspace, UndefinedOptionFlag, MagickFalse },
{ "CMY", CMYColorspace, UndefinedOptionFlag, MagickFalse },
{ "CMYK", CMYKColorspace, UndefinedOptionFlag, MagickFalse },
+ { "DisplayP3", DisplayP3Colorspace, UndefinedOptionFlag, MagickFalse },
{ "Gray", GRAYColorspace, UndefinedOptionFlag, MagickFalse },
{ "HCL", HCLColorspace, UndefinedOptionFlag, MagickFalse },
{ "HCLp", HCLpColorspace, UndefinedOptionFlag, MagickFalse },
@@ -483,6 +485,7 @@ static const OptionInfo
{ "Log", LogColorspace, UndefinedOptionFlag, MagickFalse },
{ "Luv", LuvColorspace, UndefinedOptionFlag, MagickFalse },
{ "OHTA", OHTAColorspace, UndefinedOptionFlag, MagickFalse },
+ { "ProPhoto", ProPhotoColorspace, UndefinedOptionFlag, MagickFalse },
{ "Rec601YCbCr", Rec601YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
{ "Rec709YCbCr", Rec709YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
{ "RGB", RGBColorspace, UndefinedOptionFlag, MagickFalse },
@@ -2202,7 +2205,7 @@ MagickExport MagickBooleanType DefineImageOption(ImageInfo *image_info,
key[MagickPathExtent],
value[MagickPathExtent];
- register char
+ char
*p;
assert(image_info != (ImageInfo *) NULL);
@@ -2454,13 +2457,13 @@ MagickExport ssize_t GetCommandOptionFlags(const CommandOption option,
MagickBooleanType
negate;
- register char
+ char
*q;
- register const char
+ const char
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2547,7 +2550,7 @@ MagickExport ssize_t GetCommandOptionFlags(const CommandOption option,
*/
MagickExport const OptionInfo *GetCommandOptionInfo(const char *option)
{
- register ssize_t
+ ssize_t
i;
for (i=0; CommandOptions[i].mnemonic != (char *) NULL; i++)
@@ -2586,7 +2589,7 @@ MagickExport char **GetCommandOptions(const CommandOption option)
const OptionInfo
*option_info;
- register ssize_t
+ ssize_t
i;
option_info=GetOptionInfo(option);
@@ -2704,7 +2707,7 @@ MagickExport const char *CommandOptionToMnemonic(const CommandOption option,
const OptionInfo
*option_info;
- register ssize_t
+ ssize_t
i;
option_info=GetOptionInfo(option);
@@ -2757,7 +2760,7 @@ MagickExport MagickBooleanType IsOptionMember(const char *option,
MagickBooleanType
member;
- register ssize_t
+ ssize_t
i;
/*
@@ -2824,7 +2827,7 @@ MagickExport MagickBooleanType ListCommandOptions(FILE *file,
const OptionInfo
*option_info;
- register ssize_t
+ ssize_t
i;
magick_unreferenced(exception);
@@ -2867,7 +2870,7 @@ MagickExport MagickBooleanType ListCommandOptions(FILE *file,
*/
MagickExport ssize_t ParseChannelOption(const char *channels)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -3005,13 +3008,13 @@ MagickExport ssize_t ParseCommandOption(const CommandOption option,
MagickBooleanType
negate;
- register char
+ char
*q;
- register const char
+ const char
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickCore/option.h b/MagickCore/option.h
index 59482ed1b..db3c9ce4a 100644
--- a/MagickCore/option.h
+++ b/MagickCore/option.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/paint.c b/MagickCore/paint.c
index 7ea0d6236..1b829ad12 100644
--- a/MagickCore/paint.c
+++ b/MagickCore/paint.c
@@ -17,7 +17,7 @@
% July 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -150,7 +150,7 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image,
fill_color,
pixel;
- register SegmentInfo
+ SegmentInfo
*s;
SegmentInfo
@@ -215,13 +215,13 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image,
floodplane_view=AcquireAuthenticCacheView(floodplane_image,exception);
while (s > segment_stack)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
/*
@@ -321,13 +321,13 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image,
status=MagickTrue;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
/*
@@ -647,7 +647,7 @@ MagickExport MagickBooleanType GradientImage(Image *image,
static size_t **DestroyHistogramThreadSet(size_t **histogram)
{
- register ssize_t
+ ssize_t
i;
assert(histogram != (size_t **) NULL);
@@ -660,7 +660,7 @@ static size_t **DestroyHistogramThreadSet(size_t **histogram)
static size_t **AcquireHistogramThreadSet(const size_t count)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -757,16 +757,16 @@ MagickExport Image *OilPaintImage(const Image *image,const double radius,
#endif
for (y=0; y < (ssize_t) linear_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register size_t
+ size_t
*histogram;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -783,7 +783,7 @@ MagickExport Image *OilPaintImage(const Image *image,const double radius,
histogram=histograms[GetOpenMPThreadId()];
for (x=0; x < (ssize_t) linear_image->columns; x++)
{
- register ssize_t
+ ssize_t
i,
u;
@@ -951,10 +951,10 @@ MagickExport MagickBooleanType OpaquePaintImage(Image *image,
PixelInfo
pixel;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1098,10 +1098,10 @@ MagickExport MagickBooleanType TransparentPaintImage(Image *image,
PixelInfo
pixel;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1229,10 +1229,10 @@ MagickExport MagickBooleanType TransparentPaintImageChroma(Image *image,
PixelInfo
pixel;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
diff --git a/MagickCore/paint.h b/MagickCore/paint.h
index 0a617f629..0ba4a71b0 100644
--- a/MagickCore/paint.h
+++ b/MagickCore/paint.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/pixel-accessor.h b/MagickCore/pixel-accessor.h
index c8dac5cb9..5e105c0d6 100644
--- a/MagickCore/pixel-accessor.h
+++ b/MagickCore/pixel-accessor.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/pixel-private.h b/MagickCore/pixel-private.h
index bb66547b9..5fcccc1bb 100644
--- a/MagickCore/pixel-private.h
+++ b/MagickCore/pixel-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c
index 529567a7e..9c5254954 100644
--- a/MagickCore/pixel.c
+++ b/MagickCore/pixel.c
@@ -16,7 +16,7 @@
% October 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -95,7 +95,7 @@ MagickExport PixelChannelMap *AcquirePixelChannelMap(void)
PixelChannelMap
*channel_map;
- register ssize_t
+ ssize_t
i;
channel_map=(PixelChannelMap *) AcquireQuantumMemory(MaxPixelChannels,
@@ -510,13 +510,13 @@ static MagickBooleanType ExportCharPixel(const Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*magick_restrict q;
size_t
@@ -655,7 +655,7 @@ static MagickBooleanType ExportCharPixel(const Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -717,13 +717,13 @@ static MagickBooleanType ExportDoublePixel(const Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register double
+ double
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -862,7 +862,7 @@ static MagickBooleanType ExportDoublePixel(const Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -925,13 +925,13 @@ static MagickBooleanType ExportFloatPixel(const Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register float
+ float
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -1070,7 +1070,7 @@ static MagickBooleanType ExportFloatPixel(const Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -1132,13 +1132,13 @@ static MagickBooleanType ExportLongPixel(const Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register unsigned int
+ unsigned int
*magick_restrict q;
size_t
@@ -1277,7 +1277,7 @@ static MagickBooleanType ExportLongPixel(const Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -1339,13 +1339,13 @@ static MagickBooleanType ExportLongLongPixel(const Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register MagickSizeType
+ MagickSizeType
*magick_restrict q;
size_t
@@ -1485,7 +1485,7 @@ static MagickBooleanType ExportLongLongPixel(const Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -1548,13 +1548,13 @@ static MagickBooleanType ExportQuantumPixel(const Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -1693,7 +1693,7 @@ static MagickBooleanType ExportQuantumPixel(const Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -1758,13 +1758,13 @@ static MagickBooleanType ExportShortPixel(const Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register unsigned short
+ unsigned short
*magick_restrict q;
size_t
@@ -1903,7 +1903,7 @@ static MagickBooleanType ExportShortPixel(const Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -1974,7 +1974,7 @@ MagickExport MagickBooleanType ExportImagePixels(const Image *image,
RectangleInfo
roi;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2512,13 +2512,13 @@ static MagickBooleanType ImportCharPixel(Image *image,const RectangleInfo *roi,
const char *magick_restrict map,const QuantumType *quantum_map,
const void *pixels,ExceptionInfo *exception)
{
- register const unsigned char
+ const unsigned char
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -2711,7 +2711,7 @@ static MagickBooleanType ImportCharPixel(Image *image,const RectangleInfo *roi,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -2773,13 +2773,13 @@ static MagickBooleanType ImportDoublePixel(Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,const void *pixels,ExceptionInfo *exception)
{
- register const double
+ const double
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -2952,7 +2952,7 @@ static MagickBooleanType ImportDoublePixel(Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -3014,13 +3014,13 @@ static MagickBooleanType ImportFloatPixel(Image *image,const RectangleInfo *roi,
const char *magick_restrict map,const QuantumType *quantum_map,
const void *pixels,ExceptionInfo *exception)
{
- register const float
+ const float
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -3193,7 +3193,7 @@ static MagickBooleanType ImportFloatPixel(Image *image,const RectangleInfo *roi,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -3255,13 +3255,13 @@ static MagickBooleanType ImportLongPixel(Image *image,const RectangleInfo *roi,
const char *magick_restrict map,const QuantumType *quantum_map,
const void *pixels,ExceptionInfo *exception)
{
- register const unsigned int
+ const unsigned int
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -3414,7 +3414,7 @@ static MagickBooleanType ImportLongPixel(Image *image,const RectangleInfo *roi,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -3476,13 +3476,13 @@ static MagickBooleanType ImportLongLongPixel(Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,const void *pixels,ExceptionInfo *exception)
{
- register const MagickSizeType
+ const MagickSizeType
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -3635,7 +3635,7 @@ static MagickBooleanType ImportLongLongPixel(Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -3697,13 +3697,13 @@ static MagickBooleanType ImportQuantumPixel(Image *image,
const RectangleInfo *roi,const char *magick_restrict map,
const QuantumType *quantum_map,const void *pixels,ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -3856,7 +3856,7 @@ static MagickBooleanType ImportQuantumPixel(Image *image,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -3918,13 +3918,13 @@ static MagickBooleanType ImportShortPixel(Image *image,const RectangleInfo *roi,
const char *magick_restrict map,const QuantumType *quantum_map,
const void *pixels,ExceptionInfo *exception)
{
- register const unsigned short
+ const unsigned short
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -4077,7 +4077,7 @@ static MagickBooleanType ImportShortPixel(Image *image,const RectangleInfo *roi,
break;
for (x=0; x < (ssize_t) roi->width; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) length; i++)
@@ -4148,7 +4148,7 @@ MagickExport MagickBooleanType ImportImagePixels(Image *image,const ssize_t x,
RectangleInfo
roi;
- register ssize_t
+ ssize_t
i;
size_t
@@ -4336,7 +4336,7 @@ MagickExport void InitializePixelChannelMap(Image *image)
PixelTrait
trait;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -4454,15 +4454,6 @@ static inline void CatromWeights(const double x,double (*weights)[4])
(*weights)[2]=x-(*weights)[3]-gamma;
}
-static inline double ConstrainPixelOffset(double x)
-{
- if (x < (double) -(SSIZE_MAX-512))
- return((double) -(SSIZE_MAX-512));
- if (x > (double) (SSIZE_MAX-512))
- return((double) (SSIZE_MAX-512));
- return(x);
-}
-
static inline void SplineWeights(const double x,double (*weights)[4])
{
double
@@ -4508,10 +4499,10 @@ MagickExport MagickBooleanType InterpolatePixelChannel(
PixelTrait
traits;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -4524,8 +4515,8 @@ MagickExport MagickBooleanType InterpolatePixelChannel(
status=MagickTrue;
*pixel=0.0;
traits=GetPixelChannelTraits(image,channel);
- x_offset=(ssize_t) floor(ConstrainPixelOffset(x));
- y_offset=(ssize_t) floor(ConstrainPixelOffset(y));
+ x_offset=CastDoubleToLong(floor(x));
+ y_offset=CastDoubleToLong(floor(y));
interpolate=method;
if (interpolate == UndefinedInterpolatePixel)
interpolate=image->interpolate;
@@ -4542,8 +4533,8 @@ MagickExport MagickBooleanType InterpolatePixelChannel(
if (interpolate == Average9InterpolatePixel)
{
count=3;
- x_offset=(ssize_t) (floor(ConstrainPixelOffset(x)+0.5)-1);
- y_offset=(ssize_t) (floor(ConstrainPixelOffset(y)+0.5)-1);
+ x_offset=CastDoubleToLong(floor(x+0.5)-1.0);
+ y_offset=CastDoubleToLong(floor(y+0.5)-1.0);
}
else
if (interpolate == Average16InterpolatePixel)
@@ -4726,8 +4717,8 @@ MagickExport MagickBooleanType InterpolatePixelChannel(
}
case NearestInterpolatePixel:
{
- x_offset=(ssize_t) floor(ConstrainPixelOffset(x)+0.5);
- y_offset=(ssize_t) floor(ConstrainPixelOffset(y)+0.5);
+ x_offset=CastDoubleToLong(floor(x+0.5));
+ y_offset=CastDoubleToLong(floor(y+0.5));
p=GetCacheViewVirtualPixels(image_view,x_offset,y_offset,1,1,exception);
if (p == (const Quantum *) NULL)
{
@@ -4927,10 +4918,10 @@ MagickExport MagickBooleanType InterpolatePixelChannels(
gamma,
pixels[16];
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -4944,8 +4935,8 @@ MagickExport MagickBooleanType InterpolatePixelChannels(
assert(source->signature == MagickCoreSignature);
assert(source_view != (CacheView *) NULL);
status=MagickTrue;
- x_offset=(ssize_t) floor(ConstrainPixelOffset(x));
- y_offset=(ssize_t) floor(ConstrainPixelOffset(y));
+ x_offset=CastDoubleToLong(floor(x));
+ y_offset=CastDoubleToLong(floor(y));
interpolate=method;
if (interpolate == UndefinedInterpolatePixel)
interpolate=source->interpolate;
@@ -4962,8 +4953,8 @@ MagickExport MagickBooleanType InterpolatePixelChannels(
if (interpolate == Average9InterpolatePixel)
{
count=3;
- x_offset=(ssize_t) (floor(ConstrainPixelOffset(x)+0.5)-1);
- y_offset=(ssize_t) (floor(ConstrainPixelOffset(y)+0.5)-1);
+ x_offset=CastDoubleToLong(floor(x+0.5)-1.0);
+ y_offset=CastDoubleToLong(floor(y+0.5)-1.0);
}
else
if (interpolate == Average16InterpolatePixel)
@@ -4985,7 +4976,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(
double
sum;
- register ssize_t
+ ssize_t
j;
PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5087,7 +5078,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(
}
for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
{
- register ssize_t
+ ssize_t
j;
PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5164,7 +5155,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(
}
for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
{
- register ssize_t
+ ssize_t
j;
PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5227,8 +5218,8 @@ MagickExport MagickBooleanType InterpolatePixelChannels(
}
case NearestInterpolatePixel:
{
- x_offset=(ssize_t) floor(ConstrainPixelOffset(x)+0.5);
- y_offset=(ssize_t) floor(ConstrainPixelOffset(y)+0.5);
+ x_offset=CastDoubleToLong(floor(x+0.5));
+ y_offset=CastDoubleToLong(floor(y+0.5));
p=GetCacheViewVirtualPixels(source_view,x_offset,y_offset,1,1,exception);
if (p == (const Quantum *) NULL)
{
@@ -5371,7 +5362,7 @@ MagickExport MagickBooleanType InterpolatePixelChannels(
}
for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
{
- register ssize_t
+ ssize_t
j;
PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5494,10 +5485,10 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image,
PixelInfo
pixels[16];
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -5511,8 +5502,8 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image,
assert(image->signature == MagickCoreSignature);
assert(image_view != (CacheView *) NULL);
status=MagickTrue;
- x_offset=(ssize_t) floor(ConstrainPixelOffset(x));
- y_offset=(ssize_t) floor(ConstrainPixelOffset(y));
+ x_offset=CastDoubleToLong(floor(x));
+ y_offset=CastDoubleToLong(floor(y));
interpolate=method;
if (interpolate == UndefinedInterpolatePixel)
interpolate=image->interpolate;
@@ -5531,8 +5522,8 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image,
if (interpolate == Average9InterpolatePixel)
{
count=3;
- x_offset=(ssize_t) (floor(ConstrainPixelOffset(x)+0.5)-1);
- y_offset=(ssize_t) (floor(ConstrainPixelOffset(y)+0.5)-1);
+ x_offset=CastDoubleToLong(floor(x+0.5)-1.0);
+ y_offset=CastDoubleToLong(floor(y+0.5)-1.0);
}
else if (interpolate == Average16InterpolatePixel)
{
@@ -5856,8 +5847,8 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image,
}
case NearestInterpolatePixel:
{
- x_offset=(ssize_t) floor(ConstrainPixelOffset(x)+0.5);
- y_offset=(ssize_t) floor(ConstrainPixelOffset(y)+0.5);
+ x_offset=CastDoubleToLong(floor(x+0.5));
+ y_offset=CastDoubleToLong(floor(y+0.5));
p=GetCacheViewVirtualPixels(image_view,x_offset,y_offset,1,1,exception);
if (p == (const Quantum *) NULL)
{
@@ -5960,7 +5951,7 @@ MagickExport MagickBooleanType IsFuzzyEquivalencePixel(const Image *source,
fuzz,
pixel;
- register double
+ double
distance,
scale;
@@ -6069,7 +6060,7 @@ MagickExport MagickBooleanType IsFuzzyEquivalencePixelInfo(const PixelInfo *p,
fuzz,
pixel;
- register double
+ double
scale,
distance;
@@ -6172,7 +6163,7 @@ MagickExport MagickBooleanType IsFuzzyEquivalencePixelInfo(const PixelInfo *p,
static void LogPixelChannels(const Image *image)
{
- register ssize_t
+ ssize_t
i;
(void) LogMagickEvent(PixelEvent,GetMagickModule(),"%s[%08x]",
@@ -6285,7 +6276,7 @@ MagickExport ChannelType SetPixelChannelMask(Image *image,
ChannelType
mask;
- register ssize_t
+ ssize_t
i;
assert(image != (Image *) NULL);
diff --git a/MagickCore/pixel.h b/MagickCore/pixel.h
index 05f1cb18d..ed4762a8b 100644
--- a/MagickCore/pixel.h
+++ b/MagickCore/pixel.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/policy-private.h b/MagickCore/policy-private.h
index 465c2d360..99cd177fd 100644
--- a/MagickCore/policy-private.h
+++ b/MagickCore/policy-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/policy.c b/MagickCore/policy.c
index fed703435..a065d86ac 100644
--- a/MagickCore/policy.c
+++ b/MagickCore/policy.c
@@ -16,7 +16,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -176,7 +176,7 @@ static LinkedListInfo *AcquirePolicyCache(const char *filename,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
/*
@@ -215,7 +215,7 @@ static LinkedListInfo *AcquirePolicyCache(const char *filename,
PolicyInfo
*policy_info;
- register const PolicyMapInfo
+ const PolicyMapInfo
*p;
p=PolicyMap+i;
@@ -277,10 +277,10 @@ static PolicyInfo *GetPolicyInfo(const char *name,ExceptionInfo *exception)
PolicyDomain
domain;
- register PolicyInfo
+ PolicyInfo
*p;
- register char
+ char
*q;
assert(exception != (ExceptionInfo *) NULL);
@@ -371,10 +371,10 @@ MagickExport const PolicyInfo **GetPolicyInfoList(const char *pattern,
const PolicyInfo
**policies;
- register const PolicyInfo
+ const PolicyInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -466,10 +466,10 @@ MagickExport char **GetPolicyList(const char *pattern,size_t *number_policies,
char
**policies;
- register const PolicyInfo
+ const PolicyInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -628,7 +628,7 @@ MagickExport MagickBooleanType IsRightsAuthorized(const PolicyDomain domain,
MagickBooleanType
authorized;
- register PolicyInfo
+ PolicyInfo
*p;
if (IsEventLogging() != MagickFalse)
@@ -700,7 +700,7 @@ MagickExport MagickBooleanType ListPolicyInfo(FILE *file,
const PolicyInfo
**policy_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1037,7 +1037,7 @@ MagickPrivate MagickBooleanType PolicyComponentGenesis(void)
static void *DestroyPolicyElement(void *policy_info)
{
- register PolicyInfo
+ PolicyInfo
*p;
p=(PolicyInfo *) policy_info;
@@ -1162,7 +1162,7 @@ static MagickBooleanType SetPolicyValue(const PolicyDomain domain,
MagickBooleanType
status;
- register PolicyInfo
+ PolicyInfo
*p;
status=MagickTrue;
diff --git a/MagickCore/policy.h b/MagickCore/policy.h
index a090541cf..c6983b792 100644
--- a/MagickCore/policy.h
+++ b/MagickCore/policy.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/prepress.c b/MagickCore/prepress.c
index c5beb3af3..b9ddeaa53 100644
--- a/MagickCore/prepress.c
+++ b/MagickCore/prepress.c
@@ -17,7 +17,7 @@
% October 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -120,10 +120,10 @@ MagickExport double GetImageTotalInkDensity(Image *image,
double
density;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
diff --git a/MagickCore/prepress.h b/MagickCore/prepress.h
index 0c0a7fcde..e250a12a4 100644
--- a/MagickCore/prepress.h
+++ b/MagickCore/prepress.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/profile-private.h b/MagickCore/profile-private.h
index 17b006674..bd789f127 100644
--- a/MagickCore/profile-private.h
+++ b/MagickCore/profile-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/profile.c b/MagickCore/profile.c
index 8b3e91c7b..12cb607a0 100644
--- a/MagickCore/profile.c
+++ b/MagickCore/profile.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -401,7 +401,7 @@ static void cmsDeleteContext(cmsContext magick_unused(ContextID))
static void **DestroyPixelThreadSet(void **pixels)
{
- register ssize_t
+ ssize_t
i;
if (pixels == (void **) NULL)
@@ -416,7 +416,7 @@ static void **DestroyPixelThreadSet(void **pixels)
static void **AcquirePixelThreadSet(const size_t columns,
const size_t channels,MagickBooleanType highres)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -447,7 +447,7 @@ static void **AcquirePixelThreadSet(const size_t columns,
static cmsHTRANSFORM *DestroyTransformThreadSet(cmsHTRANSFORM *transform)
{
- register ssize_t
+ ssize_t
i;
assert(transform != (cmsHTRANSFORM *) NULL);
@@ -465,7 +465,7 @@ static cmsHTRANSFORM *AcquireTransformThreadSet(const LCMSInfo *source_info,
cmsHTRANSFORM
*transform;
- register ssize_t
+ ssize_t
i;
size_t
@@ -530,10 +530,10 @@ static void TransformDoublePixels(const int id,const Image* image,
#define SetLCMSPixel(target_info,pixel) \
ClampToQuantum(target_info->scale*QuantumRange*(pixel)+target_info->translate)
- register double
+ double
*p;
- register ssize_t
+ ssize_t
x;
p=(double *) source_info->pixels[id];
@@ -580,10 +580,10 @@ static void TransformQuantumPixels(const int id,const Image* image,
const LCMSInfo *source_info,const LCMSInfo *target_info,
const cmsHTRANSFORM *transform,Quantum *q)
{
- register Quantum
+ Quantum
*p;
- register ssize_t
+ ssize_t
x;
p=(Quantum *) source_info->pixels[id];
@@ -1354,7 +1354,7 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
MagickBooleanType
sync;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1589,7 +1589,7 @@ static void WriteTo8BimProfile(Image *image,const char *name,
*datum,
*q;
- register const unsigned char
+ const unsigned char
*p;
size_t
@@ -1697,7 +1697,7 @@ static void GetProfilesFromResourceBlock(Image *image,
const unsigned char
*datum;
- register const unsigned char
+ const unsigned char
*p;
size_t
@@ -1842,7 +1842,7 @@ static void GetProfilesFromResourceBlock(Image *image,
static void PatchCorruptProfile(const char *name,StringInfo *profile)
{
- register unsigned char
+ unsigned char
*p;
size_t
@@ -2317,7 +2317,7 @@ MagickBooleanType SyncExifProfile(Image *image,StringInfo *profile)
int
components;
- register unsigned char
+ unsigned char
*p,
*q;
@@ -2454,7 +2454,7 @@ static void UpdateClipPath(unsigned char *blob,size_t length,
const size_t old_columns,const size_t old_rows,
const RectangleInfo *new_geometry)
{
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickCore/profile.h b/MagickCore/profile.h
index 3bbcfb851..8662d5064 100644
--- a/MagickCore/profile.h
+++ b/MagickCore/profile.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/property.c b/MagickCore/property.c
index 69c42a048..af55ceb84 100644
--- a/MagickCore/property.c
+++ b/MagickCore/property.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -236,7 +236,7 @@ MagickExport MagickBooleanType DefineImageProperty(Image *image,
key[MagickPathExtent],
value[MagickPathExtent];
- register char
+ char
*p;
assert(image != (Image *) NULL);
@@ -434,7 +434,7 @@ static MagickBooleanType GetIPTCProperty(const Image *image,const char *key,
dataset,
record;
- register ssize_t
+ ssize_t
i;
size_t
@@ -513,7 +513,7 @@ static inline signed int ReadPropertyMSBLong(const unsigned char **p,
int
c;
- register ssize_t
+ ssize_t
i;
unsigned char
@@ -553,7 +553,7 @@ static inline signed short ReadPropertyMSBShort(const unsigned char **p,
int
c;
- register ssize_t
+ ssize_t
i;
unsigned char
@@ -598,7 +598,7 @@ static MagickBooleanType Get8BIMProperty(const Image *image,const char *key,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1239,7 +1239,7 @@ static MagickBooleanType GetEXIFProperty(const Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1423,7 +1423,7 @@ static MagickBooleanType GetEXIFProperty(const Image *image,
number_entries=(size_t) ReadPropertyUnsignedShort(endian,directory);
for ( ; entry < number_entries; entry++)
{
- register unsigned char
+ unsigned char
*p,
*q;
@@ -1785,7 +1785,7 @@ static MagickBooleanType GetXMPProperty(const Image *image,const char *property)
MagickBooleanType
status;
- register const char
+ const char
*p;
XMLTreeInfo
@@ -1875,7 +1875,7 @@ static char *TracePSClippath(const unsigned char *blob,size_t length)
last[3],
point[3];
- register ssize_t
+ ssize_t
i,
x;
@@ -2092,7 +2092,7 @@ static char *TraceSVGClippath(const unsigned char *blob,size_t length,
last[3],
point[3];
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2220,7 +2220,7 @@ MagickExport const char *GetImageProperty(const Image *image,
MagickBooleanType
read_from_properties;
- register const char
+ const char
*p;
size_t
@@ -2923,7 +2923,7 @@ MagickExport const char *GetMagickProperty(ImageInfo *image_info,
PointInfo
*convex_hull;
- register ssize_t
+ ssize_t
n;
size_t
@@ -3115,7 +3115,7 @@ MagickExport const char *GetMagickProperty(ImageInfo *image_info,
PointInfo
*bounding_box;
- register ssize_t
+ ssize_t
n;
size_t
@@ -3587,10 +3587,10 @@ MagickExport char *InterpretImageProperties(ImageInfo *image_info,Image *image,
MagickBooleanType
number;
- register char
+ char
*q; /* current position in interpret_text */
- register const char
+ const char
*p; /* position in embed_text string being expanded */
size_t
@@ -3771,7 +3771,7 @@ MagickExport char *InterpretImageProperties(ImageInfo *image_info,Image *image,
*key,
*string;
- register ssize_t
+ ssize_t
len;
ssize_t
@@ -4354,14 +4354,15 @@ MagickExport MagickBooleanType SetImageProperty(Image *image,
else
if ((flags & LessValue) != 0)
{
- if (image->delay < (size_t) floor(geometry_info.rho+0.5))
- image->delay=(ssize_t)
- floor(geometry_info.sigma+0.5);
+ if ((double) image->delay < floor(geometry_info.rho+0.5))
+ image->delay=CastDoubleToLong(
+ floor(geometry_info.sigma+0.5));
}
else
image->delay=(size_t) floor(geometry_info.rho+0.5);
if ((flags & SigmaValue) != 0)
- image->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+ image->ticks_per_second=CastDoubleToLong(floor(
+ geometry_info.sigma+0.5));
return(MagickTrue);
}
if (LocaleCompare("delay_units",property) == 0)
diff --git a/MagickCore/property.h b/MagickCore/property.h
index eb9c60c96..aca91078b 100644
--- a/MagickCore/property.h
+++ b/MagickCore/property.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c
index 8cee68907..75154c972 100644
--- a/MagickCore/quantize.c
+++ b/MagickCore/quantize.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -540,10 +540,10 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info,
CubeInfo
cube;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -564,10 +564,10 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info,
DoublePixelPacket
pixel;
- register const NodeInfo
+ const NodeInfo
*node_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -805,10 +805,10 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -912,10 +912,10 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info,
}
for (y++; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -1095,7 +1095,7 @@ MagickExport QuantizeInfo *CloneQuantizeInfo(const QuantizeInfo *quantize_info)
static void ClosestColor(const Image *image,CubeInfo *cube_info,
const NodeInfo *node_info)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -1113,15 +1113,15 @@ static void ClosestColor(const Image *image,CubeInfo *cube_info,
double
pixel;
- register double
+ double
alpha,
beta,
distance;
- register DoublePixelPacket
+ DoublePixelPacket
*magick_restrict q;
- register PixelInfo
+ PixelInfo
*magick_restrict p;
/*
@@ -1241,7 +1241,7 @@ MagickExport MagickBooleanType CompressImageColormap(Image *image,
static void DefineImageColormap(Image *image,CubeInfo *cube_info,
NodeInfo *node_info)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -1256,10 +1256,10 @@ static void DefineImageColormap(Image *image,CubeInfo *cube_info,
DefineImageColormap(image,cube_info,node_info->child[i]);
if (node_info->number_unique != 0)
{
- register double
+ double
alpha;
- register PixelInfo
+ PixelInfo
*magick_restrict q;
/*
@@ -1342,7 +1342,7 @@ static void DefineImageColormap(Image *image,CubeInfo *cube_info,
*/
static void DestroyCubeInfo(CubeInfo *cube_info)
{
- register Nodes
+ Nodes
*nodes;
/*
@@ -1429,7 +1429,7 @@ MagickExport QuantizeInfo *DestroyQuantizeInfo(QuantizeInfo *quantize_info)
static DoublePixelPacket **DestroyPixelThreadSet(DoublePixelPacket **pixels)
{
- register ssize_t
+ ssize_t
i;
assert(pixels != (DoublePixelPacket **) NULL);
@@ -1445,7 +1445,7 @@ static DoublePixelPacket **AcquirePixelThreadSet(const size_t count)
DoublePixelPacket
**pixels;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1533,10 +1533,10 @@ static MagickBooleanType FloydSteinbergDither(Image *image,CubeInfo *cube_info,
*current,
*previous;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -1563,7 +1563,7 @@ static MagickBooleanType FloydSteinbergDither(Image *image,CubeInfo *cube_info,
color,
pixel;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1611,10 +1611,10 @@ static MagickBooleanType FloydSteinbergDither(Image *image,CubeInfo *cube_info,
i=CacheOffset(&cube,&pixel);
if (cube.cache[i] < 0)
{
- register NodeInfo
+ NodeInfo
*node_info;
- register size_t
+ size_t
node_id;
/*
@@ -1828,7 +1828,7 @@ static MagickBooleanType RiemersmaDither(Image *image,CacheView *image_view,
MagickBooleanType
proceed;
- register CubeInfo
+ CubeInfo
*p;
size_t
@@ -1838,10 +1838,10 @@ static MagickBooleanType RiemersmaDither(Image *image,CacheView *image_view,
if ((p->x >= 0) && (p->x < (ssize_t) image->columns) &&
(p->y >= 0) && (p->y < (ssize_t) image->rows))
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
i;
/*
@@ -1867,10 +1867,10 @@ static MagickBooleanType RiemersmaDither(Image *image,CacheView *image_view,
i=CacheOffset(cube_info,&pixel);
if (p->cache[i] < 0)
{
- register NodeInfo
+ NodeInfo
*node_info;
- register size_t
+ size_t
id;
/*
@@ -1944,7 +1944,7 @@ static MagickBooleanType DitherImage(Image *image,CubeInfo *cube_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2017,7 +2017,7 @@ static CubeInfo *GetCubeInfo(const QuantizeInfo *quantize_info,
sum,
weight;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2225,10 +2225,10 @@ MagickExport MagickBooleanType GetImageQuantizeError(Image *image,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -2353,7 +2353,7 @@ typedef struct _KmeansInfo
static KmeansInfo **DestroyKmeansThreadSet(KmeansInfo **kmeans_info)
{
- register ssize_t
+ ssize_t
i;
assert(kmeans_info != (KmeansInfo **) NULL);
@@ -2369,7 +2369,7 @@ static KmeansInfo **AcquireKmeansThreadSet(const size_t number_colors)
KmeansInfo
**kmeans_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2394,7 +2394,7 @@ static KmeansInfo **AcquireKmeansThreadSet(const size_t number_colors)
static inline double KmeansMetric(const Image *magick_restrict image,
const Quantum *magick_restrict p,const PixelInfo *magick_restrict q)
{
- register double
+ double
gamma,
metric,
pixel;
@@ -2458,7 +2458,7 @@ MagickExport MagickBooleanType KmeansImage(Image *image,
verbose,
status;
- register ssize_t
+ ssize_t
n;
size_t
@@ -2517,7 +2517,7 @@ MagickExport MagickBooleanType KmeansImage(Image *image,
char
color[MagickPathExtent];
- register const char
+ const char
*p;
/*
@@ -2528,7 +2528,7 @@ MagickExport MagickBooleanType KmeansImage(Image *image,
return(status);
for (n=0, p=colors; n < (ssize_t) image->colors; n++)
{
- register const char
+ const char
*q;
for (q=p; *q != '\0'; q++)
@@ -2585,7 +2585,7 @@ MagickExport MagickBooleanType KmeansImage(Image *image,
double
distortion;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2602,10 +2602,10 @@ MagickExport MagickBooleanType KmeansImage(Image *image,
const int
id = GetOpenMPThreadId();
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2621,7 +2621,7 @@ MagickExport MagickBooleanType KmeansImage(Image *image,
double
min_distance;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2668,7 +2668,7 @@ MagickExport MagickBooleanType KmeansImage(Image *image,
*/
for (i=1; i < (ssize_t) number_threads; i++)
{
- register ssize_t
+ ssize_t
j;
for (j=0; j < (ssize_t) image->colors; j++)
@@ -2793,7 +2793,7 @@ MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels,
QuantizeInfo
*quantize_info;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2840,10 +2840,10 @@ MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2927,7 +2927,7 @@ static void PruneChild(CubeInfo *cube_info,const NodeInfo *node_info)
NodeInfo
*parent;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2980,7 +2980,7 @@ static void PruneChild(CubeInfo *cube_info,const NodeInfo *node_info)
*/
static void PruneLevel(CubeInfo *cube_info,const NodeInfo *node_info)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -3025,7 +3025,7 @@ static void PruneLevel(CubeInfo *cube_info,const NodeInfo *node_info)
*/
static void PruneToCubeDepth(CubeInfo *cube_info,const NodeInfo *node_info)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -3189,7 +3189,7 @@ MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info,
MagickProgressMonitor
progress_monitor;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3323,7 +3323,7 @@ MagickExport MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info,
static size_t QuantizeErrorFlatten(const CubeInfo *cube_info,
const NodeInfo *node_info,const ssize_t offset,double *quantize_error)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -3369,7 +3369,7 @@ static size_t QuantizeErrorFlatten(const CubeInfo *cube_info,
*/
static void Reduce(CubeInfo *cube_info,const NodeInfo *node_info)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -3734,7 +3734,7 @@ static MagickBooleanType SetGrayscaleImage(Image *image,
PixelInfo
*colormap;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3773,10 +3773,10 @@ static MagickBooleanType SetGrayscaleImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3790,7 +3790,7 @@ static MagickBooleanType SetGrayscaleImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register size_t
+ size_t
intensity;
intensity=ScaleQuantumToMap(GetPixelRed(image,q));
@@ -3853,10 +3853,10 @@ static MagickBooleanType SetGrayscaleImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
diff --git a/MagickCore/quantize.h b/MagickCore/quantize.h
index 28e5340fd..2999e8c9e 100644
--- a/MagickCore/quantize.h
+++ b/MagickCore/quantize.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/quantum-export.c b/MagickCore/quantum-export.c
index 0eee7d99a..3ab71bf8d 100644
--- a/MagickCore/quantum-export.c
+++ b/MagickCore/quantum-export.c
@@ -22,7 +22,7 @@
% October 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -176,7 +176,7 @@ static inline unsigned char *PopFloatPixel(QuantumInfo *quantum_info,
static inline unsigned char *PopQuantumPixel(QuantumInfo *quantum_info,
const QuantumAny pixel,unsigned char *magick_restrict pixels)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -209,7 +209,7 @@ static inline unsigned char *PopQuantumPixel(QuantumInfo *quantum_info,
static inline unsigned char *PopQuantumLongPixel(QuantumInfo *quantum_info,
const size_t pixel,unsigned char *magick_restrict pixels)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -245,7 +245,7 @@ static void ExportAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -255,7 +255,7 @@ static void ExportAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -269,7 +269,7 @@ static void ExportAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -294,7 +294,7 @@ static void ExportAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -351,7 +351,7 @@ static void ExportBGRQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -376,7 +376,7 @@ static void ExportBGRQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 10:
{
- register unsigned int
+ unsigned int
pixel;
range=GetQuantumRange(quantum_info->depth);
@@ -425,7 +425,7 @@ static void ExportBGRQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 12:
{
- register unsigned int
+ unsigned int
pixel;
range=GetQuantumRange(quantum_info->depth);
@@ -549,7 +549,7 @@ static void ExportBGRQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -582,7 +582,7 @@ static void ExportBGRQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -651,7 +651,7 @@ static void ExportBGRAQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -660,7 +660,7 @@ static void ExportBGRAQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -680,13 +680,13 @@ static void ExportBGRAQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 10:
{
- register unsigned int
+ unsigned int
pixel;
range=GetQuantumRange(quantum_info->depth);
if (quantum_info->pack == MagickFalse)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -775,7 +775,7 @@ static void ExportBGRAQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -812,7 +812,7 @@ static void ExportBGRAQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -895,7 +895,7 @@ static void ExportBGROQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -904,7 +904,7 @@ static void ExportBGROQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -924,13 +924,13 @@ static void ExportBGROQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 10:
{
- register unsigned int
+ unsigned int
pixel;
range=GetQuantumRange(quantum_info->depth);
if (quantum_info->pack == MagickFalse)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -1019,7 +1019,7 @@ static void ExportBGROQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1056,7 +1056,7 @@ static void ExportBGROQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1139,7 +1139,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
if (image->colorspace != CMYKColorspace)
@@ -1152,7 +1152,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1166,7 +1166,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1191,7 +1191,7 @@ static void ExportBlackQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1248,7 +1248,7 @@ static void ExportBlueQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -1257,7 +1257,7 @@ static void ExportBlueQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1271,7 +1271,7 @@ static void ExportBlueQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1296,7 +1296,7 @@ static void ExportBlueQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1353,11 +1353,11 @@ static void ExportCbYCrYQuantum(const Image *image,QuantumInfo *quantum_info,
Quantum
cbcr[4];
- register ssize_t
+ ssize_t
i,
x;
- register unsigned int
+ unsigned int
pixel;
size_t
@@ -1465,7 +1465,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info,
const MagickSizeType number_pixels,const Quantum *magick_restrict p,
unsigned char *magick_restrict q,ExceptionInfo *exception)
{
- register ssize_t
+ ssize_t
x;
if (image->colorspace != CMYKColorspace)
@@ -1478,7 +1478,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1498,7 +1498,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1535,7 +1535,7 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1610,7 +1610,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info,
const MagickSizeType number_pixels,const Quantum *magick_restrict p,
unsigned char *magick_restrict q,ExceptionInfo *exception)
{
- register ssize_t
+ ssize_t
x;
if (image->colorspace != CMYKColorspace)
@@ -1623,7 +1623,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1645,7 +1645,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1686,7 +1686,7 @@ static void ExportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1775,7 +1775,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info,
const MagickSizeType number_pixels,const Quantum *magick_restrict p,
unsigned char *magick_restrict q,ExceptionInfo *exception)
{
- register ssize_t
+ ssize_t
x;
if (image->colorspace != CMYKColorspace)
@@ -1788,7 +1788,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1810,7 +1810,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1851,7 +1851,7 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1943,7 +1943,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -1952,10 +1952,10 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 1:
{
- register double
+ double
threshold;
- register unsigned char
+ unsigned char
black,
white;
@@ -2005,7 +2005,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 4:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) (number_pixels-1) ; x+=2)
@@ -2029,7 +2029,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2046,7 +2046,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
range=GetQuantumRange(quantum_info->depth);
if (quantum_info->pack == MagickFalse)
{
- register unsigned int
+ unsigned int
pixel;
for (x=0; x < (ssize_t) (number_pixels-2); x+=3)
@@ -2084,7 +2084,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 12:
{
- register unsigned short
+ unsigned short
pixel;
range=GetQuantumRange(quantum_info->depth);
@@ -2111,7 +2111,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2136,7 +2136,7 @@ static void ExportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2201,7 +2201,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -2210,10 +2210,10 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 1:
{
- register double
+ double
threshold;
- register unsigned char
+ unsigned char
black,
pixel,
white;
@@ -2273,7 +2273,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 4:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels ; x++)
@@ -2289,7 +2289,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2305,7 +2305,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2334,7 +2334,7 @@ static void ExportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2407,7 +2407,7 @@ static void ExportGreenQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -2416,7 +2416,7 @@ static void ExportGreenQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2430,7 +2430,7 @@ static void ExportGreenQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2455,7 +2455,7 @@ static void ExportGreenQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2509,7 +2509,7 @@ static void ExportIndexQuantum(const Image *image,QuantumInfo *quantum_info,
const MagickSizeType number_pixels,const Quantum *magick_restrict p,
unsigned char *magick_restrict q,ExceptionInfo *exception)
{
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -2525,7 +2525,7 @@ static void ExportIndexQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 1:
{
- register unsigned char
+ unsigned char
pixel;
for (x=((ssize_t) number_pixels-7); x > 0; x-=8)
@@ -2571,7 +2571,7 @@ static void ExportIndexQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 4:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) (number_pixels-1) ; x+=2)
@@ -2677,7 +2677,7 @@ static void ExportIndexAlphaQuantum(const Image *image,
const Quantum *magick_restrict p,unsigned char *magick_restrict q,
ExceptionInfo *exception)
{
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -2693,7 +2693,7 @@ static void ExportIndexAlphaQuantum(const Image *image,
{
case 1:
{
- register unsigned char
+ unsigned char
pixel;
for (x=((ssize_t) number_pixels-3); x > 0; x-=4)
@@ -2742,7 +2742,7 @@ static void ExportIndexAlphaQuantum(const Image *image,
}
case 4:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels ; x++)
@@ -2758,7 +2758,7 @@ static void ExportIndexAlphaQuantum(const Image *image,
}
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2773,7 +2773,7 @@ static void ExportIndexAlphaQuantum(const Image *image,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2802,7 +2802,7 @@ static void ExportIndexAlphaQuantum(const Image *image,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2875,7 +2875,7 @@ static void ExportOpacityQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -2884,7 +2884,7 @@ static void ExportOpacityQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2898,7 +2898,7 @@ static void ExportOpacityQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2923,7 +2923,7 @@ static void ExportOpacityQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2980,7 +2980,7 @@ static void ExportRedQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -2989,7 +2989,7 @@ static void ExportRedQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -3003,7 +3003,7 @@ static void ExportRedQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3028,7 +3028,7 @@ static void ExportRedQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3085,7 +3085,7 @@ static void ExportRGBQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -3109,7 +3109,7 @@ static void ExportRGBQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 10:
{
- register unsigned int
+ unsigned int
pixel;
range=GetQuantumRange(quantum_info->depth);
@@ -3158,7 +3158,7 @@ static void ExportRGBQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 12:
{
- register unsigned int
+ unsigned int
pixel;
range=GetQuantumRange(quantum_info->depth);
@@ -3282,7 +3282,7 @@ static void ExportRGBQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3315,7 +3315,7 @@ static void ExportRGBQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3384,7 +3384,7 @@ static void ExportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -3393,7 +3393,7 @@ static void ExportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -3413,13 +3413,13 @@ static void ExportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 10:
{
- register unsigned int
+ unsigned int
pixel;
range=GetQuantumRange(quantum_info->depth);
if (quantum_info->pack == MagickFalse)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -3508,7 +3508,7 @@ static void ExportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3545,7 +3545,7 @@ static void ExportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3628,7 +3628,7 @@ static void ExportRGBOQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(exception != (ExceptionInfo *) NULL);
@@ -3637,7 +3637,7 @@ static void ExportRGBOQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 8:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < (ssize_t) number_pixels; x++)
@@ -3657,13 +3657,13 @@ static void ExportRGBOQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 10:
{
- register unsigned int
+ unsigned int
pixel;
range=GetQuantumRange(quantum_info->depth);
if (quantum_info->pack == MagickFalse)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -3752,7 +3752,7 @@ static void ExportRGBOQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 16:
{
- register unsigned short
+ unsigned short
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3789,7 +3789,7 @@ static void ExportRGBOQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 32:
{
- register unsigned int
+ unsigned int
pixel;
if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3873,13 +3873,13 @@ MagickExport size_t ExportQuantumPixels(const Image *image,
MagickSizeType
number_pixels;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*magick_restrict q;
size_t
@@ -3908,7 +3908,7 @@ MagickExport size_t ExportQuantumPixels(const Image *image,
double
Sa;
- register Quantum
+ Quantum
*magick_restrict q;
/*
@@ -3920,7 +3920,7 @@ MagickExport size_t ExportQuantumPixels(const Image *image,
q=GetAuthenticPixelQueue(image);
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
Sa=QuantumScale*GetPixelAlpha(image,q);
@@ -3940,7 +3940,7 @@ MagickExport size_t ExportQuantumPixels(const Image *image,
Quantum
quantum;
- register Quantum
+ Quantum
*magick_restrict q;
if (image_view != (CacheView *) NULL)
@@ -4073,7 +4073,7 @@ MagickExport size_t ExportQuantumPixels(const Image *image,
Quantum
quantum;
- register Quantum
+ Quantum
*magick_restrict q;
if (image_view != (CacheView *) NULL)
diff --git a/MagickCore/quantum-import.c b/MagickCore/quantum-import.c
index d30418d36..9558d266e 100644
--- a/MagickCore/quantum-import.c
+++ b/MagickCore/quantum-import.c
@@ -22,7 +22,7 @@
% October 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -242,10 +242,10 @@ static inline const unsigned char *PushQuantumFloat24Pixel(
static inline const unsigned char *PushQuantumPixel(QuantumInfo *quantum_info,
const unsigned char *magick_restrict pixels,unsigned int *quantum)
{
- register ssize_t
+ ssize_t
i;
- register size_t
+ size_t
quantum_bits;
*quantum=(QuantumAny) 0;
@@ -272,10 +272,10 @@ static inline const unsigned char *PushQuantumLongPixel(
QuantumInfo *quantum_info,const unsigned char *magick_restrict pixels,
unsigned int *quantum)
{
- register ssize_t
+ ssize_t
i;
- register size_t
+ size_t
quantum_bits;
*quantum=0UL;
@@ -305,7 +305,7 @@ static void ImportAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(image != (Image *) NULL);
@@ -442,7 +442,7 @@ static void ImportBGRQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -786,7 +786,7 @@ static void ImportBGRAQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(image != (Image *) NULL);
@@ -821,7 +821,7 @@ static void ImportBGRAQuantum(const Image *image,QuantumInfo *quantum_info,
pixel=0;
if (quantum_info->pack == MagickFalse)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -1049,7 +1049,7 @@ static void ImportBGROQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(image != (Image *) NULL);
@@ -1084,7 +1084,7 @@ static void ImportBGROQuantum(const Image *image,QuantumInfo *quantum_info,
pixel=0;
if (quantum_info->pack == MagickFalse)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -1312,7 +1312,7 @@ static void ImportBlackQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
if (image->colorspace != CMYKColorspace)
@@ -1453,7 +1453,7 @@ static void ImportBlueQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(image != (Image *) NULL);
@@ -1590,7 +1590,7 @@ static void ImportCbYCrYQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
unsigned int
@@ -1608,7 +1608,7 @@ static void ImportCbYCrYQuantum(const Image *image,QuantumInfo *quantum_info,
pixel=0;
if (quantum_info->pack == MagickFalse)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -1684,7 +1684,7 @@ static void ImportCMYKQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
if (image->colorspace != CMYKColorspace)
@@ -1875,7 +1875,7 @@ static void ImportCMYKAQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
if (image->colorspace != CMYKColorspace)
@@ -2083,7 +2083,7 @@ static void ImportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
if (image->colorspace != CMYKColorspace)
@@ -2291,7 +2291,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -2303,7 +2303,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 1:
{
- register Quantum
+ Quantum
black,
white;
@@ -2334,7 +2334,7 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 4:
{
- register unsigned char
+ unsigned char
pixel;
range=GetQuantumRange(quantum_info->depth);
@@ -2647,7 +2647,7 @@ static void ImportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -2659,7 +2659,7 @@ static void ImportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 1:
{
- register unsigned char
+ unsigned char
pixel;
bit=0;
@@ -2690,7 +2690,7 @@ static void ImportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 4:
{
- register unsigned char
+ unsigned char
pixel;
range=GetQuantumRange(quantum_info->depth);
@@ -2886,7 +2886,7 @@ static void ImportGreenQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(image != (Image *) NULL);
@@ -3023,7 +3023,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info,
MagickBooleanType
range_exception;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -3040,7 +3040,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info,
{
case 1:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < ((ssize_t) number_pixels-7); x+=8)
@@ -3076,7 +3076,7 @@ static void ImportIndexQuantum(const Image *image,QuantumInfo *quantum_info,
}
case 4:
{
- register unsigned char
+ unsigned char
pixel;
for (x=0; x < ((ssize_t) number_pixels-1); x+=2)
@@ -3260,7 +3260,7 @@ static void ImportIndexAlphaQuantum(const Image *image,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -3277,7 +3277,7 @@ static void ImportIndexAlphaQuantum(const Image *image,
{
case 1:
{
- register unsigned char
+ unsigned char
pixel;
for (x=((ssize_t) number_pixels-3); x > 0; x-=4)
@@ -3312,7 +3312,7 @@ static void ImportIndexAlphaQuantum(const Image *image,
}
case 4:
{
- register unsigned char
+ unsigned char
pixel;
range=GetQuantumRange(quantum_info->depth);
@@ -3500,7 +3500,7 @@ static void ImportOpacityQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(image != (Image *) NULL);
@@ -3637,7 +3637,7 @@ static void ImportRedQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(image != (Image *) NULL);
@@ -3774,7 +3774,7 @@ static void ImportRGBQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -4118,7 +4118,7 @@ static void ImportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(image != (Image *) NULL);
@@ -4153,7 +4153,7 @@ static void ImportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
pixel=0;
if (quantum_info->pack == MagickFalse)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -4381,7 +4381,7 @@ static void ImportRGBOQuantum(const Image *image,QuantumInfo *quantum_info,
QuantumAny
range;
- register ssize_t
+ ssize_t
x;
assert(image != (Image *) NULL);
@@ -4416,7 +4416,7 @@ static void ImportRGBOQuantum(const Image *image,QuantumInfo *quantum_info,
pixel=0;
if (quantum_info->pack == MagickFalse)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -4645,13 +4645,13 @@ MagickExport size_t ImportQuantumPixels(const Image *image,
MagickSizeType
number_pixels;
- register const unsigned char
+ const unsigned char
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
size_t
@@ -4819,7 +4819,7 @@ MagickExport size_t ImportQuantumPixels(const Image *image,
q=GetCacheViewAuthenticPixelQueue(image_view);
for (x=0; x < (ssize_t) number_pixels; x++)
{
- register ssize_t
+ ssize_t
i;
Sa=QuantumScale*GetPixelAlpha(image,q);
diff --git a/MagickCore/quantum-private.h b/MagickCore/quantum-private.h
index 317a65a64..4d6a2fffe 100644
--- a/MagickCore/quantum-private.h
+++ b/MagickCore/quantum-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -125,7 +125,7 @@ static inline float HalfToSinglePrecision(const unsigned short half)
single_precision;
} SinglePrecision;
- register unsigned int
+ unsigned int
exponent,
significand,
sign_bit;
@@ -192,7 +192,7 @@ static inline unsigned char *PopCharPixel(const unsigned char pixel,
static inline unsigned char *PopLongPixel(const EndianType endian,
const unsigned int pixel,unsigned char *magick_restrict pixels)
{
- register unsigned int
+ unsigned int
quantum;
quantum=(unsigned int) pixel;
@@ -214,7 +214,7 @@ static inline unsigned char *PopLongPixel(const EndianType endian,
static inline unsigned char *PopShortPixel(const EndianType endian,
const unsigned short pixel,unsigned char *magick_restrict pixels)
{
- register unsigned int
+ unsigned int
quantum;
quantum=pixel;
@@ -241,7 +241,7 @@ static inline const unsigned char *PushLongPixel(const EndianType endian,
const unsigned char *magick_restrict pixels,
unsigned int *magick_restrict pixel)
{
- register unsigned int
+ unsigned int
quantum;
if (endian == LSBEndian)
@@ -265,7 +265,7 @@ static inline const unsigned char *PushShortPixel(const EndianType endian,
const unsigned char *magick_restrict pixels,
unsigned short *magick_restrict pixel)
{
- register unsigned int
+ unsigned int
quantum;
if (endian == LSBEndian)
@@ -710,10 +710,10 @@ static inline unsigned short SinglePrecisionToHalf(const float value)
single_precision;
} SinglePrecision;
- register int
+ int
exponent;
- register unsigned int
+ unsigned int
significand,
sign_bit;
@@ -771,7 +771,7 @@ static inline unsigned short SinglePrecisionToHalf(const float value)
float
alpha;
- register int
+ int
i;
/*
diff --git a/MagickCore/quantum.c b/MagickCore/quantum.c
index 7f88a50e2..706b9ea0a 100644
--- a/MagickCore/quantum.c
+++ b/MagickCore/quantum.c
@@ -16,7 +16,7 @@
% October 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -156,7 +156,7 @@ MagickExport QuantumInfo *AcquireQuantumInfo(const ImageInfo *image_info,
static MagickBooleanType AcquireQuantumPixels(QuantumInfo *quantum_info,
const size_t extent)
{
- register ssize_t
+ ssize_t
i;
assert(quantum_info != (QuantumInfo *) NULL);
@@ -247,7 +247,7 @@ MagickExport QuantumInfo *DestroyQuantumInfo(QuantumInfo *quantum_info)
*/
static void DestroyQuantumPixels(QuantumInfo *quantum_info)
{
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickCore/quantum.h b/MagickCore/quantum.h
index d50b4f1bd..4d9dd8e39 100644
--- a/MagickCore/quantum.h
+++ b/MagickCore/quantum.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/random-private.h b/MagickCore/random-private.h
index 3a6cd9905..f0bd4b3ed 100644
--- a/MagickCore/random-private.h
+++ b/MagickCore/random-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -39,7 +39,7 @@ extern MagickPrivate void
static inline RandomInfo **DestroyRandomInfoThreadSet(
RandomInfo **random_info)
{
- register ssize_t
+ ssize_t
i;
assert(random_info != (RandomInfo **) NULL);
@@ -51,7 +51,7 @@ static inline RandomInfo **DestroyRandomInfoThreadSet(
static inline RandomInfo **AcquireRandomInfoThreadSet(void)
{
- register ssize_t
+ ssize_t
i;
RandomInfo
diff --git a/MagickCore/random.c b/MagickCore/random.c
index b5921438b..e197e5352 100644
--- a/MagickCore/random.c
+++ b/MagickCore/random.c
@@ -16,7 +16,7 @@
% December 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -319,7 +319,7 @@ MagickExport RandomInfo *DestroyRandomInfo(RandomInfo *random_info)
#if !defined(MAGICKCORE_WINDOWS_SUPPORT)
static ssize_t ReadRandom(int file,unsigned char *source,size_t length)
{
- register unsigned char
+ unsigned char
*q;
ssize_t
@@ -498,7 +498,7 @@ static StringInfo *GenerateEntropicChaos(RandomInfo *random_info)
*/
if (environ != (char **) NULL)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -831,7 +831,7 @@ MagickPrivate void RandomComponentTerminus(void)
static inline void IncrementRandomNonce(StringInfo *nonce)
{
- register ssize_t
+ ssize_t
i;
unsigned char
@@ -850,10 +850,10 @@ static inline void IncrementRandomNonce(StringInfo *nonce)
MagickExport void SetRandomKey(RandomInfo *random_info,const size_t length,
unsigned char *key)
{
- register size_t
+ size_t
i;
- register unsigned char
+ unsigned char
*p;
SignatureInfo
diff --git a/MagickCore/random_.h b/MagickCore/random_.h
index d72ff6a7f..6d674e284 100644
--- a/MagickCore/random_.h
+++ b/MagickCore/random_.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/registry-private.h b/MagickCore/registry-private.h
index af768e4f3..f4c05d546 100644
--- a/MagickCore/registry-private.h
+++ b/MagickCore/registry-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/registry.c b/MagickCore/registry.c
index d306f0aad..959546464 100644
--- a/MagickCore/registry.c
+++ b/MagickCore/registry.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -111,7 +111,7 @@ MagickExport MagickBooleanType DefineImageRegistry(const RegistryType type,
key[MagickPathExtent],
value[MagickPathExtent];
- register char
+ char
*p;
assert(option != (const char *) NULL);
@@ -423,7 +423,7 @@ MagickExport void ResetImageRegistryIterator(void)
static void *DestroyRegistryNode(void *registry_info)
{
- register RegistryInfo
+ RegistryInfo
*p;
p=(RegistryInfo *) registry_info;
diff --git a/MagickCore/registry.h b/MagickCore/registry.h
index 14a131471..f36addea3 100644
--- a/MagickCore/registry.h
+++ b/MagickCore/registry.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/resample-private.h b/MagickCore/resample-private.h
index c55840b4e..ec89a8611 100644
--- a/MagickCore/resample-private.h
+++ b/MagickCore/resample-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -27,7 +27,7 @@ extern "C" {
static inline ResampleFilter **DestroyResampleFilterThreadSet(
ResampleFilter **filter)
{
- register ssize_t
+ ssize_t
i;
assert(filter != (ResampleFilter **) NULL);
@@ -42,7 +42,7 @@ static inline ResampleFilter **AcquireResampleFilterThreadSet(
const Image *image,const VirtualPixelMethod method,
const MagickBooleanType interpolate,ExceptionInfo *exception)
{
- register ssize_t
+ ssize_t
i;
ResampleFilter
diff --git a/MagickCore/resample.c b/MagickCore/resample.c
index ac58f6ad8..2acb32982 100644
--- a/MagickCore/resample.c
+++ b/MagickCore/resample.c
@@ -18,7 +18,7 @@
% August 2007 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -208,7 +208,7 @@ struct _ResampleFilter
MagickExport ResampleFilter *AcquireResampleFilter(const Image *image,
ExceptionInfo *exception)
{
- register ResampleFilter
+ ResampleFilter
*resample_filter;
assert(image != (Image *) NULL);
@@ -323,8 +323,8 @@ MagickExport MagickBooleanType ResamplePixelColor(
double u1;
double U,V,Q,DQ,DDQ;
double divisor_c,divisor_m;
- register double weight;
- register const Quantum *pixels;
+ double weight;
+ const Quantum *pixels;
assert(resample_filter != (ResampleFilter *) NULL);
assert(resample_filter->signature == MagickCoreSignature);
@@ -1197,7 +1197,7 @@ MagickExport void ScaleResampleFilter(ResampleFilter *resample_filter,
}
/* Scale ellipse formula to directly index the Filter Lookup Table */
- { register double scale;
+ { double scale;
#if FILTER_LUT
/* scale so that F = WLUT_WIDTH; -- hardcoded */
scale = (double)WLUT_WIDTH/F;
@@ -1281,7 +1281,7 @@ MagickExport void SetResampleFilter(ResampleFilter *resample_filter,
#if FILTER_LUT
/* Fill the LUT with the weights from the selected filter function */
- { register int
+ { int
Q;
double
r_scale;
@@ -1336,7 +1336,7 @@ MagickExport void SetResampleFilter(ResampleFilter *resample_filter,
if (IsStringTrue(GetImageArtifact(resample_filter->image,
"resample:verbose")) != MagickFalse)
{
- register int
+ int
Q;
double
r_scale;
diff --git a/MagickCore/resample.h b/MagickCore/resample.h
index 6da90089d..ecfc55536 100644
--- a/MagickCore/resample.h
+++ b/MagickCore/resample.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/resize-private.h b/MagickCore/resize-private.h
index e29960144..336625ade 100644
--- a/MagickCore/resize-private.h
+++ b/MagickCore/resize-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index af73fa738..f309eb1ce 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -384,7 +384,7 @@ static double Lagrange(const double x,const ResizeFilter *resize_filter)
double
value;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -770,7 +770,7 @@ MagickPrivate ResizeFilter *AcquireResizeFilter(const Image *image,
C,
value;
- register ResizeFilter
+ ResizeFilter
*resize_filter;
/*
@@ -1345,7 +1345,7 @@ static double I0(double x)
t,
y;
- register ssize_t
+ ssize_t
i;
/*
@@ -1369,7 +1369,7 @@ static double J1(double x)
p,
q;
- register ssize_t
+ ssize_t
i;
static const double
@@ -1415,7 +1415,7 @@ static double P1(double x)
p,
q;
- register ssize_t
+ ssize_t
i;
static const double
@@ -1455,7 +1455,7 @@ static double Q1(double x)
p,
q;
- register ssize_t
+ ssize_t
i;
static const double
@@ -1763,10 +1763,10 @@ MagickExport Image *InterpolativeResizeImage(const Image *image,
PointInfo
offset;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1778,7 +1778,7 @@ MagickExport Image *InterpolativeResizeImage(const Image *image,
offset.y=((double) y+0.5)*scale.y-0.5;
for (x=0; x < (ssize_t) resize_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1896,7 +1896,7 @@ MagickExport Image *LiquidRescaleImage(const Image *image,const size_t columns,
MemoryInfo
*pixel_info;
- register gfloat
+ gfloat
*q;
ssize_t
@@ -1927,10 +1927,10 @@ MagickExport Image *LiquidRescaleImage(const Image *image,const size_t columns,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1943,7 +1943,7 @@ MagickExport Image *LiquidRescaleImage(const Image *image,const size_t columns,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1980,10 +1980,10 @@ MagickExport Image *LiquidRescaleImage(const Image *image,const size_t columns,
(void) lqr_carver_scan_reset(carver);
while (lqr_carver_scan_ext(carver,&x_offset,&y_offset,(void **) &packet) != 0)
{
- register Quantum
+ Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
i;
p=QueueCacheViewAuthenticPixels(rescale_view,x_offset,y_offset,1,1,
@@ -2063,7 +2063,7 @@ MagickExport Image *LiquidRescaleImage(const Image *image,
static inline void CopyPixels(const Quantum *source,const ssize_t source_offset,
Quantum *destination,const ssize_t destination_offset,const size_t channels)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) channels; i++)
@@ -2077,12 +2077,12 @@ static inline void MixPixels(const Quantum *source,const ssize_t *source_offset,
ssize_t
sum;
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) channels; i++)
{
- register ssize_t
+ ssize_t
j;
sum=0;
@@ -2105,7 +2105,7 @@ static inline void Mix2Pixels(const Quantum *source,
static inline int PixelsEqual(const Quantum *source1,ssize_t offset1,
const Quantum *source2,ssize_t offset2,const size_t channels)
{
- register ssize_t
+ ssize_t
i;
offset1*=channels;
@@ -2434,7 +2434,7 @@ static void Fish2X(const Image *source,const Quantum *pixels,Quantum *result,
be,
de;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2589,7 +2589,7 @@ static void Scale2X(const Image *source,const Quantum *pixels,Quantum *result,
if (PixelsEqual(pixels,1,pixels,7,channels) ||
PixelsEqual(pixels,3,pixels,5,channels))
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < 4; i++)
@@ -2626,7 +2626,7 @@ static void Epbx2X(const Image *source,const Quantum *pixels,
) \
)
- register ssize_t
+ ssize_t
i;
for (i=0; i < 4; i++)
@@ -2814,7 +2814,7 @@ static inline void Scale3X(const Image *source,const Quantum *pixels,
}
else
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < 9; i++)
@@ -2999,10 +2999,10 @@ MagickExport Image *MagnifyImage(const Image *image,ExceptionInfo *exception)
Quantum
r[128]; /* to hold result pixels */
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3019,13 +3019,13 @@ MagickExport Image *MagnifyImage(const Image *image,ExceptionInfo *exception)
*/
for (x=0; x < (ssize_t) source_image->columns; x++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
size_t
channels;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -3227,7 +3227,7 @@ typedef struct _ContributionInfo
static ContributionInfo **DestroyContributionThreadSet(
ContributionInfo **contribution)
{
- register ssize_t
+ ssize_t
i;
assert(contribution != (ContributionInfo **) NULL);
@@ -3241,7 +3241,7 @@ static ContributionInfo **DestroyContributionThreadSet(
static ContributionInfo **AcquireContributionThreadSet(const size_t count)
{
- register ssize_t
+ ssize_t
i;
ContributionInfo
@@ -3334,16 +3334,16 @@ static MagickBooleanType HorizontalFilter(
bisect,
density;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ContributionInfo
+ ContributionInfo
*magick_restrict contribution;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
y;
ssize_t
@@ -3369,7 +3369,7 @@ static MagickBooleanType HorizontalFilter(
continue;
if ((density != 0.0) && (density != 1.0))
{
- register ssize_t
+ ssize_t
i;
/*
@@ -3390,7 +3390,7 @@ static MagickBooleanType HorizontalFilter(
}
for (y=0; y < (ssize_t) resize_image->rows; y++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3407,7 +3407,7 @@ static MagickBooleanType HorizontalFilter(
resize_traits,
traits;
- register ssize_t
+ ssize_t
j;
ssize_t
@@ -3552,16 +3552,16 @@ static MagickBooleanType VerticalFilter(
bisect,
density;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ContributionInfo
+ ContributionInfo
*magick_restrict contribution;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -3587,7 +3587,7 @@ static MagickBooleanType VerticalFilter(
continue;
if ((density != 0.0) && (density != 1.0))
{
- register ssize_t
+ ssize_t
i;
/*
@@ -3609,7 +3609,7 @@ static MagickBooleanType VerticalFilter(
}
for (x=0; x < (ssize_t) resize_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3626,7 +3626,7 @@ static MagickBooleanType VerticalFilter(
resize_traits,
traits;
- register ssize_t
+ ssize_t
j;
ssize_t
@@ -3866,7 +3866,7 @@ MagickExport Image *SampleImage(const Image *image,const size_t columns,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
x1;
ssize_t
@@ -3942,13 +3942,13 @@ MagickExport Image *SampleImage(const Image *image,const size_t columns,
#endif
for (y=0; y < (ssize_t) sample_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -3972,7 +3972,7 @@ MagickExport Image *SampleImage(const Image *image,const size_t columns,
*/
for (x=0; x < (ssize_t) sample_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
if (GetPixelWriteMask(sample_image,q) <= (QuantumRange/2))
@@ -4083,7 +4083,7 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
scale,
span;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -4154,13 +4154,13 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
scale_view=AcquireAuthenticCacheView(scale_image,exception);
for (y=0; y < (ssize_t) scale_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
diff --git a/MagickCore/resize.h b/MagickCore/resize.h
index e5437603f..ee131a3d0 100644
--- a/MagickCore/resize.h
+++ b/MagickCore/resize.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/resource-private.h b/MagickCore/resource-private.h
index e037a62d3..b5d3f2a49 100644
--- a/MagickCore/resource-private.h
+++ b/MagickCore/resource-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/resource.c b/MagickCore/resource.c
index 53ecb8690..657927a97 100644
--- a/MagickCore/resource.c
+++ b/MagickCore/resource.c
@@ -17,7 +17,7 @@
% September 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -126,8 +126,8 @@ static ResourceInfo
MagickULLConstant(0), /* initial thread */
MagickULLConstant(0), /* initial throttle */
MagickULLConstant(0), /* initial time */
- (INT_MAX/(5*sizeof(Quantum))), /* width limit */
- (INT_MAX/(5*sizeof(Quantum))), /* height limit */
+ LONG_MAX/sizeof(Quantum)/5, /* width limit */
+ LONG_MAX/sizeof(Quantum)/5, /* height limit */
MagickResourceInfinity, /* list length limit */
MagickULLConstant(3072)*1024*1024, /* area limit */
MagickULLConstant(1536)*1024*1024, /* memory limit */
@@ -533,7 +533,7 @@ MagickExport MagickBooleanType GetPathTemplate(char *path)
directory=DestroyString(directory);
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
{
- register char
+ char
*p;
/*
@@ -561,10 +561,10 @@ MagickExport int AcquireUniqueFileResource(char *path)
c,
file;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
static const char
@@ -591,7 +591,7 @@ MagickExport int AcquireUniqueFileResource(char *path)
file=(-1);
for (i=0; i < (ssize_t) TMP_MAX; i++)
{
- register ssize_t
+ ssize_t
j;
/*
@@ -1148,7 +1148,7 @@ MagickPrivate MagickBooleanType ResourceComponentGenesis(void)
MagickSizeType
memory;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1308,7 +1308,7 @@ MagickPrivate MagickBooleanType ResourceComponentGenesis(void)
*/
MagickPrivate void ResourceComponentTerminus(void)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) NumberOfResourceTypes; i++)
@@ -1416,7 +1416,7 @@ MagickExport MagickBooleanType SetMagickResourceLimit(const ResourceType type,
resource_info.height_limit=MagickMin(limit,StringToMagickSizeType(
value,100.0));
resource_info.height_limit=MagickMin(resource_info.height_limit,
- (MagickSizeType) SSIZE_MAX);
+ (MagickSizeType) LONG_MAX);
break;
}
case ListLengthResource:
@@ -1494,7 +1494,7 @@ MagickExport MagickBooleanType SetMagickResourceLimit(const ResourceType type,
resource_info.width_limit=MagickMin(limit,StringToMagickSizeType(value,
100.0));
resource_info.width_limit=MagickMin(resource_info.width_limit,
- (MagickSizeType) SSIZE_MAX);
+ (MagickSizeType) LONG_MAX);
break;
}
default:
diff --git a/MagickCore/resource_.h b/MagickCore/resource_.h
index 80e8bc92f..ce4d8f280 100644
--- a/MagickCore/resource_.h
+++ b/MagickCore/resource_.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/segment.c b/MagickCore/segment.c
index ba10779d1..25e06954c 100644
--- a/MagickCore/segment.c
+++ b/MagickCore/segment.c
@@ -17,7 +17,7 @@
% April 1993 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -221,8 +221,7 @@ static void
% The format of the Classify method is:
%
% MagickBooleanType Classify(Image *image,short **extrema,
-% const double cluster_threshold,
-% const double weighting_exponent,
+% const double cluster_threshold,const double weighting_exponent,
% const MagickBooleanType verbose,ExceptionInfo *exception)
%
% A description of each parameter follows.
@@ -246,9 +245,8 @@ static void
%
*/
static MagickBooleanType Classify(Image *image,short **extrema,
- const double cluster_threshold,
- const double weighting_exponent,const MagickBooleanType verbose,
- ExceptionInfo *exception)
+ const double cluster_threshold,const double weighting_exponent,
+ const MagickBooleanType verbose,ExceptionInfo *exception)
{
#define SegmentImageTag "Segment/Image"
#define ThrowClassifyException(severity,tag,label) \
@@ -276,6 +274,9 @@ static MagickBooleanType Classify(Image *image,short **extrema,
*last_cluster,
*next_cluster;
+ double
+ *free_squares;
+
ExtentPacket
blue,
green,
@@ -284,16 +285,13 @@ static MagickBooleanType Classify(Image *image,short **extrema,
MagickOffsetType
progress;
- double
- *free_squares;
-
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
- register double
+ double
*squares;
size_t
@@ -331,7 +329,7 @@ static MagickBooleanType Classify(Image *image,short **extrema,
}
else
{
- cluster=(Cluster *) AcquireMagickMemory(sizeof(*cluster));
+ cluster=(Cluster *) AcquireQuantumMemory(1,sizeof(*cluster));
head=cluster;
}
if (cluster == (Cluster *) NULL)
@@ -340,11 +338,10 @@ static MagickBooleanType Classify(Image *image,short **extrema,
/*
Initialize a new class.
*/
- cluster->count=0;
+ (void) memset(cluster,0,sizeof(*cluster));
cluster->red=red;
cluster->green=green;
cluster->blue=blue;
- cluster->next=(Cluster *) NULL;
}
}
}
@@ -353,18 +350,17 @@ static MagickBooleanType Classify(Image *image,short **extrema,
/*
No classes were identified-- create one.
*/
- cluster=(Cluster *) AcquireMagickMemory(sizeof(*cluster));
+ cluster=(Cluster *) AcquireQuantumMemory(1,sizeof(*cluster));
if (cluster == (Cluster *) NULL)
ThrowClassifyException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
/*
Initialize a new class.
*/
- cluster->count=0;
+ (void) memset(cluster,0,sizeof(*cluster));
cluster->red=red;
cluster->green=green;
cluster->blue=blue;
- cluster->next=(Cluster *) NULL;
head=cluster;
}
/*
@@ -376,10 +372,10 @@ static MagickBooleanType Classify(Image *image,short **extrema,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -387,30 +383,27 @@ static MagickBooleanType Classify(Image *image,short **extrema,
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
+ PixelInfo
+ pixel;
+
+ pixel.red=(double) ScaleQuantumToChar(GetPixelRed(image,p));
+ pixel.green=(double) ScaleQuantumToChar(GetPixelGreen(image,p));
+ pixel.blue=(double) ScaleQuantumToChar(GetPixelBlue(image,p));
for (cluster=head; cluster != (Cluster *) NULL; cluster=cluster->next)
- if (((ssize_t) ScaleQuantumToChar(GetPixelRed(image,p)) >=
- (cluster->red.left-SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelRed(image,p)) <=
- (cluster->red.right+SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,p)) >=
- (cluster->green.left-SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,p)) <=
- (cluster->green.right+SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,p)) >=
- (cluster->blue.left-SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,p)) <=
- (cluster->blue.right+SafeMargin)))
+ if ((pixel.red >= (double) (cluster->red.left-SafeMargin)) &&
+ (pixel.red <= (double) (cluster->red.right+SafeMargin)) &&
+ (pixel.green >= (double) (cluster->green.left-SafeMargin)) &&
+ (pixel.green <= (double) (cluster->green.right+SafeMargin)) &&
+ (pixel.blue >= (double) (cluster->blue.left-SafeMargin)) &&
+ (pixel.blue <= (double) (cluster->blue.right+SafeMargin)))
{
/*
Count this pixel.
*/
count++;
- cluster->red.center+=(double) ScaleQuantumToChar(
- GetPixelRed(image,p));
- cluster->green.center+=(double) ScaleQuantumToChar(
- GetPixelGreen(image,p));
- cluster->blue.center+=(double) ScaleQuantumToChar(
- GetPixelBlue(image,p));
+ cluster->red.center+=pixel.red;
+ cluster->green.center+=pixel.green;
+ cluster->blue.center+=pixel.blue;
cluster->count++;
break;
}
@@ -557,15 +550,15 @@ static MagickBooleanType Classify(Image *image,short **extrema,
for (y=0; y < (ssize_t) image->rows; y++)
{
Cluster
- *clust;
+ *cluster;
- register const PixelInfo
+ const PixelInfo
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -578,30 +571,30 @@ static MagickBooleanType Classify(Image *image,short **extrema,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
+ PixelInfo
+ pixel;
+
SetPixelIndex(image,(Quantum) 0,q);
- for (clust=head; clust != (Cluster *) NULL; clust=clust->next)
+ pixel.red=(double) ScaleQuantumToChar(GetPixelRed(image,q));
+ pixel.green=(double) ScaleQuantumToChar(GetPixelGreen(image,q));
+ pixel.blue=(double) ScaleQuantumToChar(GetPixelBlue(image,q));
+ for (cluster=head; cluster != (Cluster *) NULL; cluster=cluster->next)
{
- if (((ssize_t) ScaleQuantumToChar(GetPixelRed(image,q)) >=
- (clust->red.left-SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelRed(image,q)) <=
- (clust->red.right+SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,q)) >=
- (clust->green.left-SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,q)) <=
- (clust->green.right+SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,q)) >=
- (clust->blue.left-SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,q)) <=
- (clust->blue.right+SafeMargin)))
+ if ((pixel.red >= (double) (cluster->red.left-SafeMargin)) &&
+ (pixel.red <= (double) (cluster->red.right+SafeMargin)) &&
+ (pixel.green >= (double) (cluster->green.left-SafeMargin)) &&
+ (pixel.green <= (double) (cluster->green.right+SafeMargin)) &&
+ (pixel.blue >= (double) (cluster->blue.left-SafeMargin)) &&
+ (pixel.blue <= (double) (cluster->blue.right+SafeMargin)))
{
/*
Classify this pixel.
*/
- SetPixelIndex(image,(Quantum) clust->id,q);
+ SetPixelIndex(image,(Quantum) cluster->id,q);
break;
}
}
- if (clust == (Cluster *) NULL)
+ if (cluster == (Cluster *) NULL)
{
double
distance_squared,
@@ -610,7 +603,7 @@ static MagickBooleanType Classify(Image *image,short **extrema,
ratio,
sum;
- register ssize_t
+ ssize_t
j,
k;
@@ -622,24 +615,18 @@ static MagickBooleanType Classify(Image *image,short **extrema,
{
sum=0.0;
p=image->colormap+j;
- distance_squared=squares[(ssize_t) ScaleQuantumToChar(
- GetPixelRed(image,q))-(ssize_t)
- ScaleQuantumToChar(ClampToQuantum(p->red))]+squares[(ssize_t)
- ScaleQuantumToChar(GetPixelGreen(image,q))-(ssize_t)
- ScaleQuantumToChar(ClampToQuantum(p->green))]+squares[(ssize_t)
- ScaleQuantumToChar(GetPixelBlue(image,q))-(ssize_t)
- ScaleQuantumToChar(ClampToQuantum(p->blue))];
+ distance_squared=
+ squares[(ssize_t) (pixel.red-ScaleQuantumToChar(p->red))]+
+ squares[(ssize_t) (pixel.green-ScaleQuantumToChar(p->green))]+
+ squares[(ssize_t) (pixel.blue-ScaleQuantumToChar(p->blue))];
numerator=distance_squared;
for (k=0; k < (ssize_t) image->colors; k++)
{
p=image->colormap+k;
- distance_squared=squares[(ssize_t) ScaleQuantumToChar(
- GetPixelRed(image,q))-(ssize_t)
- ScaleQuantumToChar(ClampToQuantum(p->red))]+squares[
- (ssize_t) ScaleQuantumToChar(GetPixelGreen(image,q))-(ssize_t)
- ScaleQuantumToChar(ClampToQuantum(p->green))]+squares[
- (ssize_t) ScaleQuantumToChar(GetPixelBlue(image,q))-(ssize_t)
- ScaleQuantumToChar(ClampToQuantum(p->blue))];
+ distance_squared=
+ squares[(ssize_t) (pixel.red-ScaleQuantumToChar(p->red))]+
+ squares[(ssize_t) (pixel.green-ScaleQuantumToChar(p->green))]+
+ squares[(ssize_t) (pixel.blue-ScaleQuantumToChar(p->blue))];
ratio=numerator/distance_squared;
sum+=SegmentPower(ratio);
}
@@ -717,7 +704,7 @@ static MagickBooleanType Classify(Image *image,short **extrema,
static void ConsolidateCrossings(ZeroCrossing *zero_crossing,
const size_t number_crossings)
{
- register ssize_t
+ ssize_t
i,
j,
k,
@@ -890,7 +877,7 @@ static ssize_t DefineRegion(const short *extrema,ExtentPacket *extents)
static void DerivativeHistogram(const double *histogram,
double *derivative)
{
- register ssize_t
+ ssize_t
i,
n;
@@ -967,10 +954,10 @@ MagickExport MagickBooleanType GetImageDynamicThreshold(const Image *image,
double
threshold;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -1043,7 +1030,7 @@ MagickExport MagickBooleanType GetImageDynamicThreshold(const Image *image,
}
else
{
- cluster=(Cluster *) AcquireMagickMemory(sizeof(*cluster));
+ cluster=(Cluster *) AcquireQuantumMemory(1,sizeof(*cluster));
head=cluster;
}
if (cluster == (Cluster *) NULL)
@@ -1069,7 +1056,7 @@ MagickExport MagickBooleanType GetImageDynamicThreshold(const Image *image,
/*
No classes were identified-- create one.
*/
- cluster=(Cluster *) AcquireMagickMemory(sizeof(*cluster));
+ cluster=(Cluster *) AcquireQuantumMemory(1,sizeof(*cluster));
if (cluster == (Cluster *) NULL)
{
(void) ThrowMagickException(exception,GetMagickModule(),
@@ -1097,30 +1084,27 @@ MagickExport MagickBooleanType GetImageDynamicThreshold(const Image *image,
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
+ PixelInfo
+ pixel;
+
+ pixel.red=(double) ScaleQuantumToChar(GetPixelRed(image,p));
+ pixel.green=(double) ScaleQuantumToChar(GetPixelGreen(image,p));
+ pixel.blue=(double) ScaleQuantumToChar(GetPixelBlue(image,p));
for (cluster=head; cluster != (Cluster *) NULL; cluster=cluster->next)
- if (((ssize_t) ScaleQuantumToChar(GetPixelRed(image,p)) >=
- (cluster->red.left-SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelRed(image,p)) <=
- (cluster->red.right+SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,p)) >=
- (cluster->green.left-SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,p)) <=
- (cluster->green.right+SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,p)) >=
- (cluster->blue.left-SafeMargin)) &&
- ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,p)) <=
- (cluster->blue.right+SafeMargin)))
+ if ((pixel.red >= (double) (cluster->red.left-SafeMargin)) &&
+ (pixel.red <= (double) (cluster->red.right+SafeMargin)) &&
+ (pixel.green >= (double) (cluster->green.left-SafeMargin)) &&
+ (pixel.green <= (double) (cluster->green.right+SafeMargin)) &&
+ (pixel.blue >= (double) (cluster->blue.left-SafeMargin)) &&
+ (pixel.blue <= (double) (cluster->blue.right+SafeMargin)))
{
/*
Count this pixel.
*/
count++;
- cluster->red.center+=(double) ScaleQuantumToChar(
- GetPixelRed(image,p));
- cluster->green.center+=(double) ScaleQuantumToChar(
- GetPixelGreen(image,p));
- cluster->blue.center+=(double) ScaleQuantumToChar(
- GetPixelBlue(image,p));
+ cluster->red.center+=pixel.red;
+ cluster->green.center+=pixel.green;
+ cluster->blue.center+=pixel.blue;
cluster->count++;
break;
}
@@ -1239,10 +1223,10 @@ MagickExport MagickBooleanType GetImageDynamicThreshold(const Image *image,
static void InitializeHistogram(const Image *image,ssize_t **histogram,
ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -1314,7 +1298,7 @@ static void InitializeList(IntervalTree **list,ssize_t *number_nodes,
static void MeanStability(IntervalTree *node)
{
- register IntervalTree
+ IntervalTree
*child;
if (node == (IntervalTree *) NULL)
@@ -1323,10 +1307,10 @@ static void MeanStability(IntervalTree *node)
child=node->child;
if (child != (IntervalTree *) NULL)
{
- register ssize_t
+ ssize_t
count;
- register double
+ double
sum;
sum=0.0;
@@ -1363,7 +1347,7 @@ static IntervalTree *InitializeIntervalTree(const ZeroCrossing *zero_crossing,
*node,
*root;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1524,6 +1508,13 @@ static double OptimalTau(const ssize_t *histogram,const double max_tau,
const double min_tau,const double delta_tau,const double smooth_threshold,
short *extrema)
{
+ double
+ average_tau,
+ *derivative,
+ *second_derivative,
+ tau,
+ value;
+
IntervalTree
**list,
*node,
@@ -1532,14 +1523,7 @@ static double OptimalTau(const ssize_t *histogram,const double max_tau,
MagickBooleanType
peak;
- double
- average_tau,
- *derivative,
- *second_derivative,
- tau,
- value;
-
- register ssize_t
+ ssize_t
i,
x;
@@ -1635,7 +1619,7 @@ static double OptimalTau(const ssize_t *histogram,const double max_tau,
return(0.0);
}
/*
- Find active nodes: stability is greater (or equal) to the mean stability of
+ Find active nodes: Stability is greater (or equal) to the mean stability of
its children.
*/
number_nodes=0;
@@ -1729,7 +1713,6 @@ static double OptimalTau(const ssize_t *histogram,const double max_tau,
% of pixels for each intensity of a particular color component.
%
*/
-
static void ScaleSpace(const ssize_t *histogram,const double tau,
double *scale_histogram)
{
@@ -1739,14 +1722,13 @@ static void ScaleSpace(const ssize_t *histogram,const double tau,
*gamma,
sum;
- register ssize_t
+ ssize_t
u,
x;
gamma=(double *) AcquireQuantumMemory(256,sizeof(*gamma));
if (gamma == (double *) NULL)
- ThrowFatalException(ResourceLimitFatalError,
- "UnableToAllocateGammaMap");
+ ThrowFatalException(ResourceLimitFatalError,"UnableToAllocateGammaMap");
alpha=PerceptibleReciprocal(tau*sqrt(2.0*MagickPI));
beta=(-1.0*PerceptibleReciprocal(2.0*tau*tau));
for (x=0; x <= 255; x++)
@@ -1820,7 +1802,7 @@ MagickExport MagickBooleanType SegmentImage(Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
short
@@ -1857,12 +1839,12 @@ MagickExport MagickBooleanType SegmentImage(Image *image,
previous_colorspace=image->colorspace;
(void) TransformImageColorspace(image,colorspace,exception);
InitializeHistogram(image,histogram,exception);
- (void) OptimalTau(histogram[Red],Tau,0.2,DeltaTau,
- smooth_threshold == 0.0 ? 1.0 : smooth_threshold,extrema[Red]);
- (void) OptimalTau(histogram[Green],Tau,0.2,DeltaTau,
- smooth_threshold == 0.0 ? 1.0 : smooth_threshold,extrema[Green]);
- (void) OptimalTau(histogram[Blue],Tau,0.2,DeltaTau,
- smooth_threshold == 0.0 ? 1.0 : smooth_threshold,extrema[Blue]);
+ (void) OptimalTau(histogram[Red],Tau,0.2,DeltaTau,smooth_threshold == 0.0 ?
+ 1.0 : smooth_threshold,extrema[Red]);
+ (void) OptimalTau(histogram[Green],Tau,0.2,DeltaTau,smooth_threshold == 0.0 ?
+ 1.0 : smooth_threshold,extrema[Green]);
+ (void) OptimalTau(histogram[Blue],Tau,0.2,DeltaTau,smooth_threshold == 0.0 ?
+ 1.0 : smooth_threshold,extrema[Blue]);
/*
Classify using the fuzzy c-Means technique.
*/
@@ -1913,7 +1895,7 @@ MagickExport MagickBooleanType SegmentImage(Image *image,
static void ZeroCrossHistogram(double *second_derivative,
const double smooth_threshold,short *crossings)
{
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickCore/segment.h b/MagickCore/segment.h
index 8aad589d1..7084c71f4 100644
--- a/MagickCore/segment.h
+++ b/MagickCore/segment.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/semaphore-private.h b/MagickCore/semaphore-private.h
index e72199d6d..c1940f87e 100644
--- a/MagickCore/semaphore-private.h
+++ b/MagickCore/semaphore-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/semaphore.c b/MagickCore/semaphore.c
index 9742dae8a..cd44ab70d 100644
--- a/MagickCore/semaphore.c
+++ b/MagickCore/semaphore.c
@@ -18,7 +18,7 @@
% June 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickCore/semaphore.h b/MagickCore/semaphore.h
index 4f22c29e0..f7b28a74c 100644
--- a/MagickCore/semaphore.h
+++ b/MagickCore/semaphore.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/shear.c b/MagickCore/shear.c
index 8b5ff3cd6..05703ca34 100644
--- a/MagickCore/shear.c
+++ b/MagickCore/shear.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -127,7 +127,7 @@ static MagickBooleanType CropToFitImage(Image **image,
geometry,
page;
- register ssize_t
+ ssize_t
i;
/*
@@ -163,10 +163,10 @@ static MagickBooleanType CropToFitImage(Image **image,
if (max.y < extent[i].y)
max.y=extent[i].y;
}
- geometry.x=(ssize_t) ceil(min.x-0.5);
- geometry.y=(ssize_t) ceil(min.y-0.5);
- geometry.width=(size_t) floor(max.x-min.x+0.5);
- geometry.height=(size_t) floor(max.y-min.y+0.5);
+ geometry.x=CastDoubleToLong(ceil(min.x-0.5));
+ geometry.y=CastDoubleToLong(ceil(min.y-0.5));
+ geometry.width=(size_t) CastDoubleToLong(floor(max.x-min.x+0.5));
+ geometry.height=(size_t) CastDoubleToLong(floor(max.y-min.y+0.5));
page=(*image)->page;
(void) ParseAbsoluteGeometry("0x0+0+0",&(*image)->page);
crop_image=CropImage(*image,&geometry,exception);
@@ -219,11 +219,11 @@ static void RadonProjection(const Image *image,MatrixInfo *source_matrixs,
MatrixInfo
*swap;
- register MatrixInfo
+ MatrixInfo
*p,
*q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -235,7 +235,7 @@ static void RadonProjection(const Image *image,MatrixInfo *source_matrixs,
{
for (x=0; x < (ssize_t) GetMatrixColumns(p); x+=2*(ssize_t) step)
{
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -295,7 +295,7 @@ static void RadonProjection(const Image *image,MatrixInfo *source_matrixs,
#endif
for (x=0; x < (ssize_t) GetMatrixColumns(p); x++)
{
- register ssize_t
+ ssize_t
y;
size_t
@@ -384,10 +384,10 @@ static MagickBooleanType RadonTransform(const Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
i,
x;
@@ -441,10 +441,10 @@ static MagickBooleanType RadonTransform(const Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
i,
x;
@@ -522,10 +522,10 @@ static void GetImageBackgroundColor(Image *image,const ssize_t offset,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if ((y >= offset) && (y < ((ssize_t) image->rows-offset)))
@@ -582,7 +582,7 @@ MagickExport Image *DeskewImage(const Image *image,const double threshold,
RectangleInfo
geometry;
- register ssize_t
+ ssize_t
i;
size_t
@@ -785,7 +785,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
#endif
for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
{
- register ssize_t
+ ssize_t
tile_x;
if (status == MagickFalse)
@@ -796,13 +796,13 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
y;
size_t
@@ -824,10 +824,10 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
}
for (y=0; y < (ssize_t) width; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict tile_pixels;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -843,7 +843,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
tile_pixels=p+((height-1)*width+y)*GetPixelChannels(image);
for (x=0; x < (ssize_t) height; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -886,7 +886,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
}
case 2:
{
- register ssize_t
+ ssize_t
y;
/*
@@ -901,13 +901,13 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -923,7 +923,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
q+=GetPixelChannels(rotate_image)*image->columns;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
q-=GetPixelChannels(rotate_image);
@@ -982,7 +982,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
#endif
for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
{
- register ssize_t
+ ssize_t
tile_x;
if (status == MagickFalse)
@@ -993,13 +993,13 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
y;
size_t
@@ -1021,10 +1021,10 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
}
for (y=0; y < (ssize_t) width; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict tile_pixels;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1039,7 +1039,7 @@ MagickExport Image *IntegralRotateImage(const Image *image,size_t rotations,
tile_pixels=p+((width-1)-y)*GetPixelChannels(image);
for (x=0; x < (ssize_t) height; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1184,11 +1184,11 @@ static MagickBooleanType XShearImage(Image *image,const double degrees,
area,
displacement;
- register Quantum
+ Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
i;
ShearDirection
@@ -1217,7 +1217,7 @@ static MagickBooleanType XShearImage(Image *image,const double degrees,
displacement*=(-1.0);
direction=LEFT;
}
- step=(ssize_t) floor((double) displacement);
+ step=CastDoubleToLong(floor((double) displacement));
area=(double) (displacement-step);
step++;
pixel=background;
@@ -1401,11 +1401,11 @@ static MagickBooleanType YShearImage(Image *image,const double degrees,
source,
destination;
- register Quantum
+ Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
i;
ShearDirection
@@ -1434,7 +1434,7 @@ static MagickBooleanType YShearImage(Image *image,const double degrees,
displacement*=(-1.0);
direction=UP;
}
- step=(ssize_t) floor((double) displacement);
+ step=CastDoubleToLong(floor((double) displacement));
area=(double) (displacement-step);
step++;
pixel=background;
@@ -1617,11 +1617,12 @@ MagickExport Image *ShearImage(const Image *image,const double x_shear,
/*
Compute image size.
*/
- bounds.width=image->columns+(ssize_t) floor(fabs(shear.x)*image->rows+0.5);
- bounds.x=(ssize_t) ceil((double) image->columns+((fabs(shear.x)*image->rows)-
- image->columns)/2.0-0.5);
- bounds.y=(ssize_t) ceil((double) image->rows+((fabs(shear.y)*bounds.width)-
- image->rows)/2.0-0.5);
+ bounds.width=image->columns+CastDoubleToLong(floor(fabs(shear.x)*
+ image->rows+0.5));
+ bounds.x=CastDoubleToLong(ceil((double) image->columns+((fabs(shear.x)*
+ image->rows)-image->columns)/2.0-0.5));
+ bounds.y=CastDoubleToLong(ceil((double) image->rows+((fabs(shear.y)*
+ bounds.width)-image->rows)/2.0-0.5));
/*
Surround image with border.
*/
@@ -1769,9 +1770,9 @@ MagickExport Image *ShearRotateImage(const Image *image,const double degrees,
bounds.height=(size_t) floor(fabs((double) bounds.width*shear.y)+height+0.5);
shear_width=(size_t) floor(fabs((double) bounds.height*shear.x)+
bounds.width+0.5);
- bounds.x=(ssize_t) floor((double) ((shear_width > bounds.width) ? width :
- bounds.width-shear_width+2)/2.0+0.5);
- bounds.y=(ssize_t) floor(((double) bounds.height-height+2)/2.0+0.5);
+ bounds.x=CastDoubleToLong(floor((double) ((shear_width > bounds.width) ?
+ width : bounds.width-shear_width+2)/2.0+0.5));
+ bounds.y=CastDoubleToLong(floor(((double) bounds.height-height+2)/2.0+0.5));
/*
Surround image with a border.
*/
diff --git a/MagickCore/shear.h b/MagickCore/shear.h
index 1f083dbb5..11bcc092d 100644
--- a/MagickCore/shear.h
+++ b/MagickCore/shear.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/signature-private.h b/MagickCore/signature-private.h
index f941d4786..6067e4b4b 100644
--- a/MagickCore/signature-private.h
+++ b/MagickCore/signature-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/signature.c b/MagickCore/signature.c
index f0f0e42e0..2d9b08015 100644
--- a/MagickCore/signature.c
+++ b/MagickCore/signature.c
@@ -16,7 +16,7 @@
% December 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -209,13 +209,13 @@ MagickPrivate SignatureInfo *DestroySignatureInfo(SignatureInfo *signature_info)
*/
MagickPrivate void FinalizeSignature(SignatureInfo *signature_info)
{
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*q;
- register unsigned int
+ unsigned int
*p;
size_t
@@ -479,7 +479,7 @@ MagickExport MagickBooleanType SignatureImage(Image *image,
float
pixel;
- register const Quantum
+ const Quantum
*p;
SignatureInfo
@@ -507,10 +507,10 @@ MagickExport MagickBooleanType SignatureImage(Image *image,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*q;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -522,7 +522,7 @@ MagickExport MagickBooleanType SignatureImage(Image *image,
q=pixels;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
if (GetPixelReadMask(image,p) <= (QuantumRange/2))
@@ -532,7 +532,7 @@ MagickExport MagickBooleanType SignatureImage(Image *image,
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- register ssize_t
+ ssize_t
j;
PixelChannel channel = GetPixelChannelChannel(image,i);
@@ -599,10 +599,10 @@ static void TransformSignature(SignatureInfo *signature_info)
#define Suma1(x) (RotateRight(x,6) ^ RotateRight(x,11) ^ RotateRight(x,25))
#define Trunc32(x) ((unsigned int) ((x) & 0xffffffffU))
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p;
ssize_t
@@ -766,10 +766,10 @@ RestoreMSCWarning
MagickPrivate void UpdateSignature(SignatureInfo *signature_info,
const StringInfo *message)
{
- register size_t
+ size_t
i;
- register unsigned char
+ unsigned char
*p;
size_t
diff --git a/MagickCore/signature.h b/MagickCore/signature.h
index 521d4f44a..d21696fec 100644
--- a/MagickCore/signature.h
+++ b/MagickCore/signature.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/splay-tree.c b/MagickCore/splay-tree.c
index 862266c4c..90bc9bba4 100644
--- a/MagickCore/splay-tree.c
+++ b/MagickCore/splay-tree.c
@@ -23,7 +23,7 @@
% December 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -157,7 +157,7 @@ MagickExport MagickBooleanType AddValueToSplayTree(SplayTreeInfo *splay_tree,
int
compare;
- register NodeInfo
+ NodeInfo
*node;
LockSemaphoreInfo(splay_tree->semaphore);
@@ -247,7 +247,7 @@ MagickExport MagickBooleanType AddValueToSplayTree(SplayTreeInfo *splay_tree,
static NodeInfo *LinkSplayTreeNodes(NodeInfo **nodes,const size_t low,
const size_t high)
{
- register NodeInfo
+ NodeInfo
*node;
size_t
@@ -268,7 +268,7 @@ static NodeInfo *LinkSplayTreeNodes(NodeInfo **nodes,const size_t low,
static inline int SplayTreeToNodeArray(NodeInfo *node,const void *nodes)
{
- register const NodeInfo
+ const NodeInfo
***p;
p=(const NodeInfo ***) nodes;
@@ -332,7 +332,7 @@ static void BalanceSplayTree(SplayTreeInfo *splay_tree)
static inline void *GetFirstSplayTreeNode(SplayTreeInfo *splay_tree)
{
- register NodeInfo
+ NodeInfo
*node;
node=splay_tree->root;
@@ -346,7 +346,7 @@ static inline void *GetFirstSplayTreeNode(SplayTreeInfo *splay_tree)
MagickExport SplayTreeInfo *CloneSplayTree(SplayTreeInfo *splay_tree,
void *(*clone_key)(void *),void *(*clone_value)(void *))
{
- register NodeInfo
+ NodeInfo
*next,
*node;
@@ -486,7 +486,7 @@ MagickExport int CompareSplayTreeStringInfo(const void *target,
MagickExport MagickBooleanType DeleteNodeByValueFromSplayTree(
SplayTreeInfo *splay_tree,const void *value)
{
- register NodeInfo
+ NodeInfo
*next,
*node;
@@ -517,7 +517,7 @@ MagickExport MagickBooleanType DeleteNodeByValueFromSplayTree(
int
compare;
- register NodeInfo
+ NodeInfo
*left,
*right;
@@ -606,7 +606,7 @@ MagickExport MagickBooleanType DeleteNodeFromSplayTree(
int
compare;
- register NodeInfo
+ NodeInfo
*left,
*right;
@@ -684,7 +684,7 @@ MagickExport SplayTreeInfo *DestroySplayTree(SplayTreeInfo *splay_tree)
NodeInfo
*node;
- register NodeInfo
+ NodeInfo
*active,
*pend;
@@ -768,7 +768,7 @@ MagickExport SplayTreeInfo *DestroySplayTree(SplayTreeInfo *splay_tree)
*/
MagickExport const void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
{
- register NodeInfo
+ NodeInfo
*node;
void
@@ -822,7 +822,7 @@ MagickExport const void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
*/
MagickExport const void *GetNextValueInSplayTree(SplayTreeInfo *splay_tree)
{
- register NodeInfo
+ NodeInfo
*node;
void
@@ -1030,10 +1030,10 @@ static int IterateOverSplayTree(SplayTreeInfo *splay_tree,
NodeInfo
**nodes;
- register ssize_t
+ ssize_t
i;
- register NodeInfo
+ NodeInfo
*node;
TransitionType
@@ -1190,7 +1190,7 @@ MagickExport SplayTreeInfo *NewSplayTree(
MagickExport void *RemoveNodeByValueFromSplayTree(SplayTreeInfo *splay_tree,
const void *value)
{
- register NodeInfo
+ NodeInfo
*next,
*node;
@@ -1222,7 +1222,7 @@ MagickExport void *RemoveNodeByValueFromSplayTree(SplayTreeInfo *splay_tree,
int
compare;
- register NodeInfo
+ NodeInfo
*left,
*right;
@@ -1302,7 +1302,7 @@ MagickExport void *RemoveNodeFromSplayTree(SplayTreeInfo *splay_tree,
int
compare;
- register NodeInfo
+ NodeInfo
*left,
*right;
@@ -1382,7 +1382,7 @@ MagickExport void ResetSplayTree(SplayTreeInfo *splay_tree)
NodeInfo
*node;
- register NodeInfo
+ NodeInfo
*active,
*pend;
@@ -1521,7 +1521,7 @@ static NodeInfo *Splay(SplayTreeInfo *splay_tree,const size_t depth,
NodeInfo
**next;
- register NodeInfo
+ NodeInfo
*n,
*p;
diff --git a/MagickCore/splay-tree.h b/MagickCore/splay-tree.h
index 9df4d04cc..ccb5438cb 100644
--- a/MagickCore/splay-tree.h
+++ b/MagickCore/splay-tree.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/static.c b/MagickCore/static.c
index 7f0fe2515..3f43ada26 100644
--- a/MagickCore/static.c
+++ b/MagickCore/static.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -223,7 +223,7 @@ MagickExport MagickBooleanType RegisterStaticModule(const char *module,
PolicyRights
rights;
- register const CoderInfo
+ const CoderInfo
*p;
size_t
diff --git a/MagickCore/static.h b/MagickCore/static.h
index 8e2006f0f..6a3dd02ea 100644
--- a/MagickCore/static.h
+++ b/MagickCore/static.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -69,7 +69,7 @@ extern ModuleExport size_t
RegisterEPSIImage(void),
RegisterEPTImage(void),
RegisterEXRImage(void),
- RegisterFarbfeldImage(void),
+ RegisterFARBFELDImage(void),
RegisterFAXImage(void),
RegisterFITSImage(void),
RegisterFL32Image(void),
@@ -183,6 +183,7 @@ extern ModuleExport size_t
RegisterVDAImage(void),
RegisterVICARImage(void),
RegisterVIDImage(void),
+ RegisterVIDEOImage(void),
RegisterVIFFImage(void),
RegisterVIPSImage(void),
RegisterVSTImage(void),
@@ -199,6 +200,7 @@ extern ModuleExport size_t
RegisterXTRNImage(void),
RegisterXVImage(void),
RegisterXWDImage(void),
+ RegisterYAMLImage(void),
RegisterYCBCRImage(void),
RegisterYUVImage(void);
@@ -239,7 +241,7 @@ extern ModuleExport void
UnregisterEPSIImage(void),
UnregisterEPTImage(void),
UnregisterEXRImage(void),
- UnregisterFarbfeldImage(void),
+ UnregisterFARBFELDImage(void),
UnregisterFAXImage(void),
UnregisterFITSImage(void),
UnregisterFL32Image(void),
@@ -354,6 +356,7 @@ extern ModuleExport void
UnregisterVDAImage(void),
UnregisterVICARImage(void),
UnregisterVIDImage(void),
+ UnregisterVIDEOImage(void),
UnregisterVIFFImage(void),
UnregisterVIPSImage(void),
UnregisterVSTImage(void),
@@ -370,6 +373,7 @@ extern ModuleExport void
UnregisterXTRNImage(void),
UnregisterXVImage(void),
UnregisterXWDImage(void),
+ UnregisterYAMLImage(void),
UnregisterYCBCRImage(void),
UnregisterYUVImage(void);
diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c
index 2e01690c6..ee8d5b428 100644
--- a/MagickCore/statistic.c
+++ b/MagickCore/statistic.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -140,7 +140,7 @@ typedef struct _PixelChannels
static PixelChannels **DestroyPixelThreadSet(const Image *images,
PixelChannels **pixels)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -164,7 +164,7 @@ static PixelChannels **AcquirePixelThreadSet(const Image *images)
PixelChannels
**pixels;
- register ssize_t
+ ssize_t
i;
size_t
@@ -183,7 +183,7 @@ static PixelChannels **AcquirePixelThreadSet(const Image *images)
columns=MagickMax(next->columns,columns);
for (i=0; i < (ssize_t) rows; i++)
{
- register ssize_t
+ ssize_t
j;
pixels[i]=(PixelChannels *) AcquireQuantumMemory(columns,sizeof(**pixels));
@@ -191,7 +191,7 @@ static PixelChannels **AcquirePixelThreadSet(const Image *images)
return(DestroyPixelThreadSet(images,pixels));
for (j=0; j < (ssize_t) columns; j++)
{
- register ssize_t
+ ssize_t
k;
for (k=0; k < MaxPixelChannels; k++)
@@ -221,7 +221,7 @@ static int IntensityCompare(const void *x,const void *y)
double
distance;
- register ssize_t
+ ssize_t
i;
color_1=(const PixelChannels *) x;
@@ -242,7 +242,7 @@ static double ApplyEvaluateOperator(RandomInfo *random_info,const Quantum pixel,
double
result;
- register ssize_t
+ ssize_t
i;
result=0.0;
@@ -574,13 +574,13 @@ MagickExport Image *EvaluateImages(const Image *images,
const Quantum
**p;
- register PixelChannels
+ PixelChannels
*evaluate_pixel;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -614,7 +614,7 @@ MagickExport Image *EvaluateImages(const Image *images,
evaluate_pixel=evaluate_pixels[id];
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
next=images;
@@ -688,14 +688,14 @@ MagickExport Image *EvaluateImages(const Image *images,
const Quantum
**p;
- register ssize_t
+ ssize_t
i,
x;
- register PixelChannels
+ PixelChannels
*evaluate_pixel;
- register Quantum
+ Quantum
*magick_restrict q;
ssize_t
@@ -735,7 +735,7 @@ MagickExport Image *EvaluateImages(const Image *images,
{
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(next); i++)
@@ -770,7 +770,7 @@ MagickExport Image *EvaluateImages(const Image *images,
{
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- register ssize_t
+ ssize_t
j;
for (j=0; j < (ssize_t) (number_images-1); j++)
@@ -877,10 +877,10 @@ MagickExport MagickBooleanType EvaluateImage(Image *image,
const int
id = GetOpenMPThreadId();
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -896,7 +896,7 @@ MagickExport MagickBooleanType EvaluateImage(Image *image,
double
result;
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -978,7 +978,7 @@ static Quantum ApplyFunction(Quantum pixel,const MagickFunction function,
double
result;
- register ssize_t
+ ssize_t
i;
(void) exception;
@@ -1109,10 +1109,10 @@ MagickExport MagickBooleanType FunctionImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1125,7 +1125,7 @@ MagickExport MagickBooleanType FunctionImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1432,7 +1432,7 @@ MagickExport MagickBooleanType GetImageMedian(const Image *image,double *median,
static size_t GetImageChannels(const Image *image)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -1508,10 +1508,10 @@ MagickExport ChannelMoments *GetImageMoments(const Image *image,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
/*
@@ -1522,7 +1522,7 @@ MagickExport ChannelMoments *GetImageMoments(const Image *image,
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1553,10 +1553,10 @@ MagickExport ChannelMoments *GetImageMoments(const Image *image,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
/*
@@ -1567,7 +1567,7 @@ MagickExport ChannelMoments *GetImageMoments(const Image *image,
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1775,6 +1775,7 @@ MagickExport ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
char
*colorspaces,
+ *p,
*q;
const char
@@ -1783,10 +1784,7 @@ MagickExport ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
MagickBooleanType
status;
- register char
- *p;
-
- register ssize_t
+ ssize_t
i;
perceptual_hash=(ChannelPerceptualHash *) AcquireQuantumMemory(
@@ -1910,10 +1908,10 @@ MagickExport MagickBooleanType GetImageRange(const Image *image,double *minima,
MagickBooleanType
row_initialize;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1927,7 +1925,7 @@ MagickExport MagickBooleanType GetImageRange(const Image *image,double *minima,
row_initialize=MagickTrue;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2015,7 +2013,7 @@ static ssize_t GetMedianPixel(Quantum *pixels,const size_t n)
{
#define SwapPixels(alpha,beta) \
{ \
- register Quantum gamma=(alpha); \
+ Quantum gamma=(alpha); \
(alpha)=(beta);(beta)=gamma; \
}
@@ -2085,7 +2083,7 @@ MagickExport ChannelStatistics *GetImageStatistics(const Image *image,
QuantumAny
range;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2124,10 +2122,10 @@ MagickExport ChannelStatistics *GetImageStatistics(const Image *image,
sizeof(*histogram));
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
/*
@@ -2138,7 +2136,7 @@ MagickExport ChannelStatistics *GetImageStatistics(const Image *image,
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
if (GetPixelReadMask(image,p) <= (QuantumRange/2))
@@ -2218,7 +2216,7 @@ MagickExport ChannelStatistics *GetImageStatistics(const Image *image,
double
number_bins;
- register ssize_t
+ ssize_t
j;
/*
@@ -2290,10 +2288,10 @@ MagickExport ChannelStatistics *GetImageStatistics(const Image *image,
continue;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2447,14 +2445,14 @@ MagickExport Image *PolynomialImage(const Image *images,
const int
id = GetOpenMPThreadId();
- register ssize_t
+ ssize_t
i,
x;
- register PixelChannels
+ PixelChannels
*polynomial_pixel;
- register Quantum
+ Quantum
*magick_restrict q;
ssize_t
@@ -2476,7 +2474,7 @@ MagickExport Image *PolynomialImage(const Image *images,
next=images;
for (j=0; j < (ssize_t) number_images; j++)
{
- register const Quantum
+ const Quantum
*p;
if (j >= (ssize_t) number_terms)
@@ -2490,7 +2488,7 @@ MagickExport Image *PolynomialImage(const Image *images,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(next); i++)
@@ -2519,7 +2517,7 @@ MagickExport Image *PolynomialImage(const Image *images,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2634,7 +2632,7 @@ static PixelList *DestroyPixelList(PixelList *pixel_list)
static PixelList **DestroyPixelListThreadSet(PixelList **pixel_list)
{
- register ssize_t
+ ssize_t
i;
assert(pixel_list != (PixelList **) NULL);
@@ -2671,7 +2669,7 @@ static PixelList **AcquirePixelListThreadSet(const size_t width,
PixelList
**pixel_list;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2694,10 +2692,10 @@ static PixelList **AcquirePixelListThreadSet(const size_t width,
static void AddNodePixelList(PixelList *pixel_list,const size_t color)
{
- register SkipList
+ SkipList
*p;
- register ssize_t
+ ssize_t
level;
size_t
@@ -2753,7 +2751,7 @@ static void AddNodePixelList(PixelList *pixel_list,const size_t color)
static inline void GetMedianPixelList(PixelList *pixel_list,Quantum *pixel)
{
- register SkipList
+ SkipList
*p;
size_t
@@ -2778,7 +2776,7 @@ static inline void GetMedianPixelList(PixelList *pixel_list,Quantum *pixel)
static inline void GetModePixelList(PixelList *pixel_list,Quantum *pixel)
{
- register SkipList
+ SkipList
*p;
size_t
@@ -2812,7 +2810,7 @@ static inline void GetModePixelList(PixelList *pixel_list,Quantum *pixel)
static inline void GetNonpeakPixelList(PixelList *pixel_list,Quantum *pixel)
{
- register SkipList
+ SkipList
*p;
size_t
@@ -2868,10 +2866,10 @@ static void ResetPixelList(PixelList *pixel_list)
int
level;
- register SkipNode
+ SkipNode
*root;
- register SkipList
+ SkipList
*p;
/*
@@ -2953,13 +2951,13 @@ MagickExport Image *StatisticImage(const Image *image,const StatisticType type,
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2975,7 +2973,7 @@ MagickExport Image *StatisticImage(const Image *image,const StatisticType type,
}
for (x=0; x < (ssize_t) statistic_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2990,10 +2988,10 @@ MagickExport Image *StatisticImage(const Image *image,const StatisticType type,
Quantum
pixel;
- register const Quantum
+ const Quantum
*magick_restrict pixels;
- register ssize_t
+ ssize_t
u;
ssize_t
diff --git a/MagickCore/statistic.h b/MagickCore/statistic.h
index 864b2ac22..e8beffd8f 100644
--- a/MagickCore/statistic.h
+++ b/MagickCore/statistic.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/stream-private.h b/MagickCore/stream-private.h
index 208d5d835..f890a2c63 100644
--- a/MagickCore/stream-private.h
+++ b/MagickCore/stream-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/stream.c b/MagickCore/stream.c
index f7fd20033..28fa0f25b 100644
--- a/MagickCore/stream.c
+++ b/MagickCore/stream.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -448,10 +448,10 @@ static Quantum *GetAuthenticPixelsFromStream(const Image *image)
static MagickBooleanType GetOneAuthenticPixelFromStream(Image *image,
const ssize_t x,const ssize_t y,Quantum *pixel,ExceptionInfo *exception)
{
- register Quantum
+ Quantum
*p;
- register ssize_t
+ ssize_t
i;
assert(image != (Image *) NULL);
@@ -515,7 +515,7 @@ static MagickBooleanType GetOneVirtualPixelFromStream(const Image *image,
const Quantum
*p;
- register ssize_t
+ ssize_t
i;
assert(image != (Image *) NULL);
@@ -881,6 +881,37 @@ MagickExport MagickBooleanType OpenStream(const ImageInfo *image_info,
% pixels.
%
*/
+
+static inline MagickBooleanType ValidatePixelCacheMorphology(
+ const Image *magick_restrict image)
+{
+ const CacheInfo
+ *magick_restrict cache_info;
+
+ const PixelChannelMap
+ *magick_restrict p,
+ *magick_restrict q;
+
+ /*
+ Does the image match the pixel cache morphology?
+ */
+ cache_info=(CacheInfo *) image->cache;
+ p=image->channel_map;
+ q=cache_info->channel_map;
+ if ((image->storage_class != cache_info->storage_class) ||
+ (image->colorspace != cache_info->colorspace) ||
+ (image->alpha_trait != cache_info->alpha_trait) ||
+ (image->channels != cache_info->channels) ||
+ (image->columns != cache_info->columns) ||
+ (image->rows != cache_info->rows) ||
+ (image->number_channels != cache_info->number_channels) ||
+ (memcmp(p,q,image->number_channels*sizeof(*p)) != 0) ||
+ (image->metacontent_extent != cache_info->metacontent_extent) ||
+ (cache_info->nexus_info == (NexusInfo **) NULL))
+ return(MagickFalse);
+ return(MagickTrue);
+}
+
static Quantum *QueueAuthenticPixelsStream(Image *image,const ssize_t x,
const ssize_t y,const size_t columns,const size_t rows,
ExceptionInfo *exception)
@@ -922,16 +953,20 @@ static Quantum *QueueAuthenticPixelsStream(Image *image,const ssize_t x,
}
cache_info=(CacheInfo *) image->cache;
assert(cache_info->signature == MagickCoreSignature);
- if ((image->storage_class != GetPixelCacheStorageClass(image->cache)) ||
- (image->colorspace != GetPixelCacheColorspace(image->cache)))
+ if (ValidatePixelCacheMorphology(image) == MagickFalse)
{
- if (GetPixelCacheStorageClass(image->cache) == UndefinedClass)
+ if (cache_info->storage_class == UndefinedClass)
(void) stream_handler(image,(const void *) NULL,(size_t)
cache_info->columns);
cache_info->storage_class=image->storage_class;
cache_info->colorspace=image->colorspace;
+ cache_info->alpha_trait=image->alpha_trait;
+ cache_info->channels=image->channels;
cache_info->columns=image->columns;
cache_info->rows=image->rows;
+ cache_info->number_channels=image->number_channels;
+ InitializePixelChannelMap(image);
+ ResetPixelCacheChannels(image);
image->cache=cache_info;
}
/*
@@ -1370,10 +1405,10 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
QuantumType
*quantum_map;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -1499,7 +1534,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
{
case CharPixel:
{
- register unsigned char
+ unsigned char
*q;
q=(unsigned char *) stream_info->pixels;
@@ -1583,7 +1618,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
*q++=ScaleQuantumToChar(GetPixelRed(image,p));
*q++=ScaleQuantumToChar(GetPixelGreen(image,p));
*q++=ScaleQuantumToChar(GetPixelBlue(image,p));
- *q++=ScaleQuantumToChar((Quantum) (GetPixelAlpha(image,p)));
+ *q++=ScaleQuantumToChar(GetPixelAlpha(image,p));
p+=GetPixelChannels(image);
}
break;
@@ -1633,12 +1668,12 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case AlphaQuantum:
{
- *q=ScaleQuantumToChar((Quantum) (GetPixelAlpha(image,p)));
+ *q=ScaleQuantumToChar(GetPixelAlpha(image,p));
break;
}
case OpacityQuantum:
{
- *q=ScaleQuantumToChar(GetPixelAlpha(image,p));
+ *q=ScaleQuantumToChar(GetPixelOpacity(image,p));
break;
}
case BlackQuantum:
@@ -1663,7 +1698,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case DoublePixel:
{
- register double
+ double
*q;
q=(double *) stream_info->pixels;
@@ -1827,7 +1862,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case OpacityQuantum:
{
- *q=(double) ((QuantumScale*GetPixelAlpha(image,p))*
+ *q=(double) ((QuantumScale*GetPixelOpacity(image,p))*
quantum_info->scale+quantum_info->minimum);
break;
}
@@ -1855,7 +1890,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case FloatPixel:
{
- register float
+ float
*q;
q=(float *) stream_info->pixels;
@@ -1889,7 +1924,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
quantum_info->scale+quantum_info->minimum);
*q++=(float) ((QuantumScale*GetPixelRed(image,p))*
quantum_info->scale+quantum_info->minimum);
- *q++=(float) ((QuantumScale*(Quantum) (GetPixelAlpha(image,p)))*
+ *q++=(float) ((QuantumScale*GetPixelAlpha(image,p))*
quantum_info->scale+quantum_info->minimum);
p+=GetPixelChannels(image);
}
@@ -2019,7 +2054,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case OpacityQuantum:
{
- *q=(float) ((QuantumScale*GetPixelAlpha(image,p))*
+ *q=(float) ((QuantumScale*GetPixelOpacity(image,p))*
quantum_info->scale+quantum_info->minimum);
break;
}
@@ -2047,7 +2082,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case LongPixel:
{
- register unsigned int
+ unsigned int
*q;
q=(unsigned int *) stream_info->pixels;
@@ -2075,7 +2110,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
*q++=ScaleQuantumToLong(GetPixelBlue(image,p));
*q++=ScaleQuantumToLong(GetPixelGreen(image,p));
*q++=ScaleQuantumToLong(GetPixelRed(image,p));
- *q++=ScaleQuantumToLong((Quantum) (GetPixelAlpha(image,p)));
+ *q++=ScaleQuantumToLong(GetPixelAlpha(image,p));
p+=GetPixelChannels(image);
}
break;
@@ -2131,7 +2166,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
*q++=ScaleQuantumToLong(GetPixelRed(image,p));
*q++=ScaleQuantumToLong(GetPixelGreen(image,p));
*q++=ScaleQuantumToLong(GetPixelBlue(image,p));
- *q++=ScaleQuantumToLong((Quantum) (GetPixelAlpha(image,p)));
+ *q++=ScaleQuantumToLong(GetPixelAlpha(image,p));
p+=GetPixelChannels(image);
}
break;
@@ -2181,12 +2216,12 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case AlphaQuantum:
{
- *q=ScaleQuantumToLong((Quantum) (GetPixelAlpha(image,p)));
+ *q=ScaleQuantumToLong(GetPixelAlpha(image,p));
break;
}
case OpacityQuantum:
{
- *q=ScaleQuantumToLong(GetPixelAlpha(image,p));
+ *q=ScaleQuantumToLong(GetPixelOpacity(image,p));
break;
}
case BlackQuantum:
@@ -2211,7 +2246,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case LongLongPixel:
{
- register MagickSizeType
+ MagickSizeType
*q;
q=(MagickSizeType *) stream_info->pixels;
@@ -2351,7 +2386,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case OpacityQuantum:
{
- *q=ScaleQuantumToLongLong(GetPixelAlpha(image,p));
+ *q=ScaleQuantumToLongLong(GetPixelOpacity(image,p));
break;
}
case BlackQuantum:
@@ -2377,7 +2412,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case QuantumPixel:
{
- register Quantum
+ Quantum
*q;
q=(Quantum *) stream_info->pixels;
@@ -2420,7 +2455,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
*q++=GetPixelBlue(image,p);
*q++=GetPixelGreen(image,p);
*q++=GetPixelRed(image,p);
- *q++=0;
+ *q++=(Quantum) 0;
p+=GetPixelChannels(image);
}
break;
@@ -2476,7 +2511,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
*q++=GetPixelRed(image,p);
*q++=GetPixelGreen(image,p);
*q++=GetPixelBlue(image,p);
- *q++=0U;
+ *q++=(Quantum) 0;
p+=GetPixelChannels(image);
}
break;
@@ -2511,12 +2546,12 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case AlphaQuantum:
{
- *q=(Quantum) (GetPixelAlpha(image,p));
+ *q=GetPixelAlpha(image,p);
break;
}
case OpacityQuantum:
{
- *q=GetPixelAlpha(image,p);
+ *q=GetPixelOpacity(image,p);
break;
}
case BlackQuantum:
@@ -2531,7 +2566,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
break;
}
default:
- *q=0;
+ *q=(Quantum) 0;
}
q++;
}
@@ -2541,7 +2576,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case ShortPixel:
{
- register unsigned short
+ unsigned short
*q;
q=(unsigned short *) stream_info->pixels;
@@ -2569,7 +2604,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
*q++=ScaleQuantumToShort(GetPixelBlue(image,p));
*q++=ScaleQuantumToShort(GetPixelGreen(image,p));
*q++=ScaleQuantumToShort(GetPixelRed(image,p));
- *q++=ScaleQuantumToShort((Quantum) (GetPixelAlpha(image,p)));
+ *q++=ScaleQuantumToShort(GetPixelAlpha(image,p));
p+=GetPixelChannels(image);
}
break;
@@ -2626,7 +2661,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
*q++=ScaleQuantumToShort(GetPixelRed(image,p));
*q++=ScaleQuantumToShort(GetPixelGreen(image,p));
*q++=ScaleQuantumToShort(GetPixelBlue(image,p));
- *q++=ScaleQuantumToShort((Quantum) (GetPixelAlpha(image,p)));
+ *q++=ScaleQuantumToShort(GetPixelAlpha(image,p));
p+=GetPixelChannels(image);
}
break;
@@ -2681,7 +2716,7 @@ static MagickBooleanType StreamImagePixels(const StreamInfo *stream_info,
}
case OpacityQuantum:
{
- *q=ScaleQuantumToShort(GetPixelAlpha(image,p));
+ *q=ScaleQuantumToShort(GetPixelOpacity(image,p));
break;
}
case BlackQuantum:
diff --git a/MagickCore/stream.h b/MagickCore/stream.h
index 2a0eed7a2..63cdcd286 100644
--- a/MagickCore/stream.h
+++ b/MagickCore/stream.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/string-private.h b/MagickCore/string-private.h
index b624bb551..93effdc66 100644
--- a/MagickCore/string-private.h
+++ b/MagickCore/string-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -57,7 +57,7 @@ static inline const char *StringLocateSubstring(const char *haystack,
length_needle,
length_haystack;
- register size_t
+ size_t
i;
if (!haystack || !needle)
@@ -66,7 +66,7 @@ static inline const char *StringLocateSubstring(const char *haystack,
length_haystack=strlen(haystack)-length_needle+1;
for (i=0; i < length_haystack; i++)
{
- register size_t
+ size_t
j;
for (j=0; j < length_needle; j++)
diff --git a/MagickCore/string.c b/MagickCore/string.c
index 70081f64b..9572e336b 100644
--- a/MagickCore/string.c
+++ b/MagickCore/string.c
@@ -17,7 +17,7 @@
% August 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -392,13 +392,13 @@ MagickExport int CompareStringInfo(const StringInfo *target,
MagickExport size_t ConcatenateMagickString(char *magick_restrict destination,
const char *magick_restrict source,const size_t length)
{
- register char
+ char
*magick_restrict q;
- register const char
+ const char
*magick_restrict p;
- register size_t
+ size_t
i;
size_t
@@ -603,7 +603,7 @@ MagickExport StringInfo *ConfigureFileToStringInfo(const char *filename)
}
else
{
- register size_t
+ size_t
i;
ssize_t
@@ -613,7 +613,7 @@ MagickExport StringInfo *ConfigureFileToStringInfo(const char *filename)
for (i=0; i < length; i+=count)
{
count=read(file,string+i,(size_t) MagickMin(length-i,(size_t)
- SSIZE_MAX));
+ LONG_MAX));
if (count <= 0)
{
count=0;
@@ -719,13 +719,13 @@ MagickExport char *ConstantString(const char *source)
MagickExport size_t CopyMagickString(char *magick_restrict destination,
const char *magick_restrict source,const size_t length)
{
- register char
+ char
*magick_restrict q;
- register const char
+ const char
*magick_restrict p;
- register size_t
+ size_t
n;
p=source;
@@ -840,7 +840,7 @@ MagickExport StringInfo *DestroyStringInfo(StringInfo *string_info)
*/
MagickExport char **DestroyStringList(char **list)
{
- register ssize_t
+ ssize_t
i;
assert(list != (char **) NULL);
@@ -884,10 +884,10 @@ MagickExport char *EscapeString(const char *source,const char escape)
char
*destination;
- register char
+ char
*q;
- register const char
+ const char
*p;
size_t
@@ -1058,7 +1058,7 @@ MagickExport ssize_t FormatMagickSize(const MagickSizeType size,
bytes,
extent;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1461,10 +1461,10 @@ MagickExport MagickBooleanType IsStringFalse(const char *value)
MagickExport void PrintStringInfo(FILE *file,const char *id,
const StringInfo *string_info)
{
- register const char
+ const char
*p;
- register size_t
+ size_t
i,
j;
@@ -1560,7 +1560,7 @@ MagickExport void ResetStringInfo(StringInfo *string_info)
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% SanitizeString() returns n new string removes all characters except
+% SanitizeString() returns a new string with all characters removed except
% letters, digits and !#$%&'*+-=?^_`{|}~@.[].
%
% Free the sanitized string with DestroyString().
@@ -1582,7 +1582,7 @@ MagickExport char *SanitizeString(const char *source)
const char
*q;
- register char
+ char
*p;
static char
@@ -1888,13 +1888,13 @@ MagickExport char *StringInfoToHexString(const StringInfo *string_info)
char
*string;
- register const unsigned char
+ const unsigned char
*p;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -1977,11 +1977,11 @@ MagickExport char **StringToArgv(const char *text,int *argc)
char
**argv;
- register const char
+ const char
*p,
*q;
- register ssize_t
+ ssize_t
i;
*argc=0;
@@ -2099,7 +2099,7 @@ MagickExport double *StringToArrayOfDoubles(const char *string,ssize_t *count,
double
*array;
- register ssize_t
+ ssize_t
i;
/*
@@ -2171,7 +2171,7 @@ MagickExport double *StringToArrayOfDoubles(const char *string,ssize_t *count,
% delimiter character found, or NULL. A pointer to the start of the
% string is returned, representing the token before the delimiter.
%
-% In may ways this is equivent to the strtok() C library function, but with
+% StringToken() is similar to the strtok() C library method, but with
% multiple delimiter characters rather than a delimiter string.
%
% The format of the StringToken method is:
@@ -2191,13 +2191,13 @@ MagickExport char *StringToken(const char *delimiters,char **string)
char
*q;
- register char
+ char
*p;
- register const char
+ const char
*r;
- register int
+ int
c,
d;
@@ -2285,10 +2285,10 @@ MagickExport char **StringToStrings(const char *text,size_t *count)
char
**textlist;
- register const char
+ const char
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2306,7 +2306,7 @@ MagickExport char **StringToStrings(const char *text,size_t *count)
break;
if (*p == '\0')
{
- register const char
+ const char
*q;
/*
@@ -2342,10 +2342,10 @@ MagickExport char **StringToStrings(const char *text,size_t *count)
char
hex_string[MagickPathExtent];
- register char
+ char
*q;
- register ssize_t
+ ssize_t
j;
/*
@@ -2465,7 +2465,7 @@ MagickExport StringInfo *StringToStringInfo(const char *string)
*/
MagickExport void StripString(char *message)
{
- register char
+ char
*p,
*q;
@@ -2531,7 +2531,7 @@ MagickExport MagickBooleanType SubstituteString(char **string,
MagickBooleanType
status;
- register char
+ char
*p;
size_t
diff --git a/MagickCore/string_.h b/MagickCore/string_.h
index 776518ecd..2d0cab6ad 100644
--- a/MagickCore/string_.h
+++ b/MagickCore/string_.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/studio.h b/MagickCore/studio.h
index 8898d8d26..a0e8a9a1a 100644
--- a/MagickCore/studio.h
+++ b/MagickCore/studio.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/thread-private.h b/MagickCore/thread-private.h
index 7317f251a..8153cf023 100644
--- a/MagickCore/thread-private.h
+++ b/MagickCore/thread-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/thread.c b/MagickCore/thread.c
index fd3b29175..f64805319 100644
--- a/MagickCore/thread.c
+++ b/MagickCore/thread.c
@@ -16,7 +16,7 @@
% March 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -147,7 +147,7 @@ MagickExport MagickBooleanType DeleteMagickThreadKey(MagickThreadKey key)
MagickThreadValue
*keys;
- register ssize_t
+ ssize_t
i;
keys=(MagickThreadValue *) key;
diff --git a/MagickCore/thread_.h b/MagickCore/thread_.h
index 7bac0eb2a..08bad9e7a 100644
--- a/MagickCore/thread_.h
+++ b/MagickCore/thread_.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 29ba04c87..cdd730d1c 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -17,7 +17,7 @@
% October 1996 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -243,14 +243,14 @@ MagickExport Image *AdaptiveThresholdImage(const Image *image,
channel_bias[MaxPixelChannels],
channel_sum[MaxPixelChannels];
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict pixels;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
i,
x;
@@ -404,7 +404,7 @@ static double KapurThreshold(const Image *image,const double *histogram,
maximum_entropy,
*white_entropy;
- register ssize_t
+ ssize_t
i,
j;
@@ -501,7 +501,7 @@ static double OTSUThreshold(const Image *image,const double *histogram,
*sigma,
threshold;
- register ssize_t
+ ssize_t
i;
/*
@@ -585,7 +585,7 @@ static double TriangleThreshold(const double *histogram)
y1,
y2;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -677,7 +677,7 @@ MagickExport MagickBooleanType AutoThresholdImage(Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -700,10 +700,10 @@ MagickExport MagickBooleanType AutoThresholdImage(Image *image,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -841,10 +841,10 @@ MagickExport MagickBooleanType BilevelImage(Image *image,const double threshold,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -860,7 +860,7 @@ MagickExport MagickBooleanType BilevelImage(Image *image,const double threshold,
double
pixel;
- register ssize_t
+ ssize_t
i;
pixel=GetPixelIntensity(image,q);
@@ -1002,10 +1002,10 @@ MagickExport MagickBooleanType BlackThresholdImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1021,7 +1021,7 @@ MagickExport MagickBooleanType BlackThresholdImage(Image *image,
double
pixel;
- register ssize_t
+ ssize_t
i;
pixel=GetPixelIntensity(image,q);
@@ -1108,10 +1108,10 @@ MagickExport MagickBooleanType ClampImage(Image *image,ExceptionInfo *exception)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
if (image->storage_class == PseudoClass)
{
- register ssize_t
+ ssize_t
i;
- register PixelInfo
+ PixelInfo
*magick_restrict q;
q=image->colormap;
@@ -1137,10 +1137,10 @@ MagickExport MagickBooleanType ClampImage(Image *image,ExceptionInfo *exception)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1153,7 +1153,7 @@ MagickExport MagickBooleanType ClampImage(Image *image,ExceptionInfo *exception)
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1325,10 +1325,10 @@ MagickExport MagickBooleanType ColorThresholdImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1344,7 +1344,7 @@ MagickExport MagickBooleanType ColorThresholdImage(Image *image,
MagickBooleanType
foreground = MagickTrue;
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1519,7 +1519,7 @@ static ThresholdMap *GetThresholdMapFile(const char *xml,const char *filename,
double
value;
- register ssize_t
+ ssize_t
i;
ThresholdMap
@@ -1896,7 +1896,7 @@ MagickExport MagickBooleanType OrderedDitherImage(Image *image,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1964,10 +1964,10 @@ MagickExport MagickBooleanType OrderedDitherImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1980,7 +1980,7 @@ MagickExport MagickBooleanType OrderedDitherImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2098,10 +2098,10 @@ MagickExport MagickBooleanType PerceptibleImage(Image *image,
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
if (image->storage_class == PseudoClass)
{
- register ssize_t
+ ssize_t
i;
- register PixelInfo
+ PixelInfo
*magick_restrict q;
q=image->colormap;
@@ -2131,10 +2131,10 @@ MagickExport MagickBooleanType PerceptibleImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2147,7 +2147,7 @@ MagickExport MagickBooleanType PerceptibleImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2265,10 +2265,10 @@ MagickExport MagickBooleanType RandomThresholdImage(Image *image,
const int
id = GetOpenMPThreadId();
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2281,7 +2281,7 @@ MagickExport MagickBooleanType RandomThresholdImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2399,10 +2399,10 @@ MagickExport MagickBooleanType RangeThresholdImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2418,7 +2418,7 @@ MagickExport MagickBooleanType RangeThresholdImage(Image *image,
double
pixel;
- register ssize_t
+ ssize_t
i;
pixel=GetPixelIntensity(image,q);
@@ -2577,10 +2577,10 @@ MagickExport MagickBooleanType WhiteThresholdImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2596,7 +2596,7 @@ MagickExport MagickBooleanType WhiteThresholdImage(Image *image,
double
pixel;
- register ssize_t
+ ssize_t
i;
pixel=GetPixelIntensity(image,q);
diff --git a/MagickCore/threshold.h b/MagickCore/threshold.h
index 12688884b..f6a833c79 100644
--- a/MagickCore/threshold.h
+++ b/MagickCore/threshold.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/timer-private.h b/MagickCore/timer-private.h
index 52abea6d8..eae6d6490 100644
--- a/MagickCore/timer-private.h
+++ b/MagickCore/timer-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/timer.c b/MagickCore/timer.c
index 6136adf26..f1165efe8 100644
--- a/MagickCore/timer.c
+++ b/MagickCore/timer.c
@@ -17,7 +17,7 @@
% January 1993 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickCore/timer.h b/MagickCore/timer.h
index df71739b3..5c4f5146c 100644
--- a/MagickCore/timer.h
+++ b/MagickCore/timer.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/token-private.h b/MagickCore/token-private.h
index bb5ec2dd3..33c233e21 100644
--- a/MagickCore/token-private.h
+++ b/MagickCore/token-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -57,10 +57,10 @@ static inline unsigned char *ConvertLatin1ToUTF8(
int
c;
- register const unsigned char
+ const unsigned char
*magick_restrict p;
- register unsigned char
+ unsigned char
*magick_restrict q;
size_t
@@ -99,10 +99,10 @@ static inline int GetNextUTFCode(const char *magick_restrict text,
int
code;
- register ssize_t
+ ssize_t
i;
- register int
+ int
c,
unicode;
diff --git a/MagickCore/token.c b/MagickCore/token.c
index 990652cc7..c119c8e11 100644
--- a/MagickCore/token.c
+++ b/MagickCore/token.c
@@ -17,7 +17,7 @@
% January 1993 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -178,13 +178,13 @@ MagickExport magick_hot_spot size_t GetNextToken(
double
value;
- register char
+ char
*magick_restrict q;
- register const char
+ const char
*magick_restrict p;
- register ssize_t
+ ssize_t
i;
assert(start != (const char *) NULL);
@@ -202,7 +202,7 @@ MagickExport magick_hot_spot size_t GetNextToken(
case '`':
case '{':
{
- register char
+ char
escape;
switch (*p)
@@ -360,7 +360,7 @@ MagickExport MagickBooleanType GlobExpression(
done,
match;
- register const char
+ const char
*magick_restrict p;
/*
@@ -511,7 +511,7 @@ MagickExport MagickBooleanType GlobExpression(
char
*target;
- register char
+ char
*p;
target=AcquireString(pattern);
@@ -602,7 +602,7 @@ MagickPrivate MagickBooleanType IsGlob(const char *path)
MagickBooleanType
status = MagickFalse;
- register const char
+ const char
*p;
if (IsPathAccessible(path) != MagickFalse)
@@ -797,7 +797,7 @@ MagickPrivate MagickBooleanType IsGlob(const char *path)
static ssize_t sindex(int c,const char *string)
{
- register const char
+ const char
*p;
for (p=string; *p != '\0'; p++)
@@ -809,7 +809,7 @@ static ssize_t sindex(int c,const char *string)
static void StoreToken(TokenInfo *token_info,char *string,
size_t max_token_length,int c)
{
- register ssize_t
+ ssize_t
i;
if ((token_info->offset < 0) ||
@@ -844,7 +844,7 @@ MagickExport int Tokenizer(TokenInfo *token_info,const unsigned flag,
int
c;
- register ssize_t
+ ssize_t
i;
*breaker='\0';
diff --git a/MagickCore/token.h b/MagickCore/token.h
index bd04b7921..36d205c38 100644
--- a/MagickCore/token.h
+++ b/MagickCore/token.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/transform-private.h b/MagickCore/transform-private.h
index 21610f828..dd48dcfd0 100644
--- a/MagickCore/transform-private.h
+++ b/MagickCore/transform-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/transform.c b/MagickCore/transform.c
index dc993c99d..88990eb2a 100644
--- a/MagickCore/transform.c
+++ b/MagickCore/transform.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -258,13 +258,13 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info,
#endif
for (y=0; y < (ssize_t) extent.y; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -281,7 +281,7 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info,
{
if ((x < extent.x) || (x >= (ssize_t) (extent.x+extent.width)))
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -323,13 +323,13 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info,
#endif
for (y=0; y < (ssize_t) (image->rows-(extent.y+extent.height)); y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -347,7 +347,7 @@ MagickExport Image *ChopImage(const Image *image,const RectangleInfo *chop_info,
{
if ((x < extent.x) || (x >= (ssize_t) (extent.x+extent.width)))
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -424,7 +424,7 @@ MagickExport Image *ConsolidateCMYKImages(const Image *images,
*cmyk_image,
*cmyk_images;
- register ssize_t
+ ssize_t
j;
ssize_t
@@ -442,7 +442,7 @@ MagickExport Image *ConsolidateCMYKImages(const Image *images,
cmyk_images=NewImageList();
for (j=0; j < (ssize_t) GetImageListLength(images); j+=4)
{
- register ssize_t
+ ssize_t
i;
assert(images != (Image *) NULL);
@@ -459,13 +459,13 @@ MagickExport Image *ConsolidateCMYKImages(const Image *images,
cmyk_view=AcquireAuthenticCacheView(cmyk_image,exception);
for (y=0; y < (ssize_t) images->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
p=GetCacheViewVirtualPixels(image_view,0,y,images->columns,1,exception);
@@ -677,13 +677,13 @@ MagickExport Image *CropImage(const Image *image,const RectangleInfo *geometry,
#endif
for (y=0; y < (ssize_t) crop_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -699,7 +699,7 @@ MagickExport Image *CropImage(const Image *image,const RectangleInfo *geometry,
}
for (x=0; x < (ssize_t) crop_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -769,10 +769,10 @@ MagickExport Image *CropImage(const Image *image,const RectangleInfo *geometry,
static inline double ConstrainPixelOffset(double x)
{
- if (x < (double) -(SSIZE_MAX-512))
- return((double) -(SSIZE_MAX-512));
- if (x > (double) (SSIZE_MAX-512))
- return((double) (SSIZE_MAX-512));
+ if (x < (double) -(LONG_MAX-512))
+ return((double) -(LONG_MAX-512));
+ if (x > (double) (LONG_MAX-512))
+ return((double) (LONG_MAX-512));
return(x);
}
@@ -1033,13 +1033,13 @@ MagickExport Image *ExcerptImage(const Image *image,
#endif
for (y=0; y < (ssize_t) excerpt_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1055,7 +1055,7 @@ MagickExport Image *ExcerptImage(const Image *image,
}
for (x=0; x < (ssize_t) excerpt_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1232,13 +1232,13 @@ MagickExport Image *FlipImage(const Image *image,ExceptionInfo *exception)
#endif
for (y=0; y < (ssize_t) flip_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1253,7 +1253,7 @@ MagickExport Image *FlipImage(const Image *image,ExceptionInfo *exception)
}
for (x=0; x < (ssize_t) flip_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1367,13 +1367,13 @@ MagickExport Image *FlopImage(const Image *image,ExceptionInfo *exception)
#endif
for (y=0; y < (ssize_t) flop_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1389,7 +1389,7 @@ MagickExport Image *FlopImage(const Image *image,ExceptionInfo *exception)
q+=GetPixelChannels(flop_image)*flop_image->columns;
for (x=0; x < (ssize_t) flop_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
q-=GetPixelChannels(flop_image);
@@ -1489,13 +1489,13 @@ static MagickBooleanType CopyImageRegion(Image *destination,const Image *source,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
/*
@@ -1512,7 +1512,7 @@ static MagickBooleanType CopyImageRegion(Image *destination,const Image *source,
}
for (x=0; x < (ssize_t) columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
@@ -1811,13 +1811,13 @@ MagickExport Image *SpliceImage(const Image *image,
#endif
for (y=0; y < (ssize_t) splice_geometry.y; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1833,7 +1833,7 @@ MagickExport Image *SpliceImage(const Image *image,
}
for (x=0; x < columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1857,7 +1857,7 @@ MagickExport Image *SpliceImage(const Image *image,
q+=GetPixelChannels(splice_image);
for ( ; x < (ssize_t) splice_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1901,13 +1901,13 @@ MagickExport Image *SpliceImage(const Image *image,
for (y=(ssize_t) (splice_geometry.y+splice_geometry.height);
y < (ssize_t) splice_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1925,7 +1925,7 @@ MagickExport Image *SpliceImage(const Image *image,
}
for (x=0; x < columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1949,7 +1949,7 @@ MagickExport Image *SpliceImage(const Image *image,
q+=GetPixelChannels(splice_image);
for ( ; x < (ssize_t) splice_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2164,13 +2164,13 @@ MagickExport Image *TransposeImage(const Image *image,ExceptionInfo *exception)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2186,7 +2186,7 @@ MagickExport Image *TransposeImage(const Image *image,ExceptionInfo *exception)
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2305,13 +2305,13 @@ MagickExport Image *TransverseImage(const Image *image,ExceptionInfo *exception)
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2327,7 +2327,7 @@ MagickExport Image *TransverseImage(const Image *image,ExceptionInfo *exception)
q+=GetPixelChannels(transverse_image)*image->columns;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
q-=GetPixelChannels(transverse_image);
diff --git a/MagickCore/transform.h b/MagickCore/transform.h
index 9afbd46a7..f377e7795 100644
--- a/MagickCore/transform.h
+++ b/MagickCore/transform.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/type-private.h b/MagickCore/type-private.h
index 5039b3478..842c2e222 100644
--- a/MagickCore/type-private.h
+++ b/MagickCore/type-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/type.c b/MagickCore/type.c
index 50f830b3c..c474737fd 100644
--- a/MagickCore/type.c
+++ b/MagickCore/type.c
@@ -17,7 +17,7 @@
% May 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -162,7 +162,7 @@ static MagickBooleanType
static void *DestroyTypeNode(void *type_info)
{
- register TypeInfo
+ TypeInfo
*p;
p=(TypeInfo *) type_info;
@@ -333,10 +333,10 @@ MagickExport const TypeInfo *GetTypeInfoByFamily(const char *family,
const TypeInfo
*type_info;
- register const TypeInfo
+ const TypeInfo
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -555,10 +555,10 @@ MagickExport const TypeInfo **GetTypeInfoList(const char *pattern,
const TypeInfo
**fonts;
- register const TypeInfo
+ const TypeInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -629,7 +629,7 @@ extern "C" {
static int TypeCompare(const void *x,const void *y)
{
- register const char
+ const char
**p,
**q;
@@ -648,10 +648,10 @@ MagickExport char **GetTypeList(const char *pattern,size_t *number_fonts,
char
**fonts;
- register const TypeInfo
+ const TypeInfo
*p;
- register ssize_t
+ ssize_t
i;
/*
@@ -753,7 +753,7 @@ MagickExport MagickBooleanType LoadFontConfigFonts(SplayTreeInfo *type_cache,
width,
weight;
- register ssize_t
+ ssize_t
i;
TypeInfo
@@ -947,7 +947,7 @@ MagickExport MagickBooleanType ListTypeInfo(FILE *file,ExceptionInfo *exception)
const TypeInfo
**type_info;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickCore/type.h b/MagickCore/type.h
index 047dece54..976b71bed 100644
--- a/MagickCore/type.h
+++ b/MagickCore/type.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/utility-private.h b/MagickCore/utility-private.h
index 33f66c08e..e39d94f75 100644
--- a/MagickCore/utility-private.h
+++ b/MagickCore/utility-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -68,7 +68,8 @@ static inline wchar_t *create_wchar_path(const char *utf8)
*wideChar;
count=MultiByteToWideChar(CP_UTF8,0,utf8,-1,NULL,0);
- if ((count > MAX_PATH) && (NTLongPathsEnabled() == MagickFalse))
+ if ((count > MAX_PATH) && (strncmp(utf8,"\\\\?\\",4) != 0) &&
+ (NTLongPathsEnabled() == MagickFalse))
{
char
buffer[MagickPathExtent];
diff --git a/MagickCore/utility.c b/MagickCore/utility.c
index 01f8571a2..f274c4bf3 100644
--- a/MagickCore/utility.c
+++ b/MagickCore/utility.c
@@ -17,7 +17,7 @@
% January 1993 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -348,11 +348,11 @@ MagickExport unsigned char *Base64Decode(const char *source,size_t *length)
int
state;
- register const char
+ const char
*p,
*q;
- register size_t
+ size_t
i;
unsigned char
@@ -504,10 +504,10 @@ MagickExport char *Base64Encode(const unsigned char *blob,
char
*encode;
- register const unsigned char
+ const unsigned char
*p;
- register size_t
+ size_t
i;
size_t
@@ -583,7 +583,7 @@ MagickExport char *Base64Encode(const unsigned char *blob,
*/
MagickPrivate void ChopPathComponents(char *path,const size_t components)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) components; i++)
@@ -652,7 +652,7 @@ MagickPrivate void ExpandFilename(char *path)
#endif
username[MagickPathExtent];
- register char
+ char
*p;
struct passwd
@@ -751,7 +751,7 @@ MagickExport MagickBooleanType ExpandFilenames(int *number_arguments,
home_directory[MagickPathExtent],
**vector;
- register ssize_t
+ ssize_t
i,
j;
@@ -1226,7 +1226,7 @@ MagickExport void GetPathComponent(const char *path,PathType type,
char
*q;
- register char
+ char
*p;
size_t
@@ -1417,11 +1417,11 @@ MagickPrivate char **GetPathComponents(const char *path,
char
**components;
- register const char
+ const char
*p,
*q;
- register ssize_t
+ ssize_t
i;
if (path == (char *) NULL)
@@ -1578,7 +1578,7 @@ extern "C" {
static int FileCompare(const void *x,const void *y)
{
- register const char
+ const char
**p,
**q;
@@ -1661,7 +1661,7 @@ MagickPrivate char **ListFiles(const char *directory,const char *pattern,
}
#if defined(vms)
{
- register char
+ char
*p;
p=strchr(entry->d_name,';');
@@ -1839,7 +1839,7 @@ MagickPrivate MagickBooleanType ShredFile(const char *path)
MagickSizeType
length;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1892,7 +1892,7 @@ MagickPrivate MagickBooleanType ShredFile(const char *path)
RandomInfo
*random_info;
- register MagickOffsetType
+ MagickOffsetType
j;
ssize_t
diff --git a/MagickCore/utility.h b/MagickCore/utility.h
index 27f2c73b5..ecf85d9e7 100644
--- a/MagickCore/utility.h
+++ b/MagickCore/utility.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/version-private.h b/MagickCore/version-private.h
index 1e0a96f4f..e1e6cbdfa 100644
--- a/MagickCore/version-private.h
+++ b/MagickCore/version-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/version.c b/MagickCore/version.c
index 4891797af..0b86bfe9f 100644
--- a/MagickCore/version.c
+++ b/MagickCore/version.c
@@ -17,7 +17,7 @@
% September 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -498,7 +498,7 @@ MagickExport const char *GetMagickReleaseDate(void)
static unsigned int CRC32(const unsigned char *message,const size_t length)
{
- register ssize_t
+ ssize_t
i;
static MagickBooleanType
@@ -515,7 +515,7 @@ static unsigned int CRC32(const unsigned char *message,const size_t length)
*/
if (crc_initial == MagickFalse)
{
- register unsigned int
+ unsigned int
j;
unsigned int
@@ -523,7 +523,7 @@ static unsigned int CRC32(const unsigned char *message,const size_t length)
for (j=0; j < 256; j++)
{
- register ssize_t
+ ssize_t
k;
alpha=j;
@@ -541,7 +541,7 @@ static unsigned int CRC32(const unsigned char *message,const size_t length)
MagickExport unsigned int GetMagickSignature(const StringInfo *nonce)
{
- register unsigned char
+ unsigned char
*p;
StringInfo
diff --git a/MagickCore/version.h.in b/MagickCore/version.h.in
index dc45923be..a9bc8662f 100644
--- a/MagickCore/version.h.in
+++ b/MagickCore/version.h.in
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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.
diff --git a/MagickCore/vision.c b/MagickCore/vision.c
index 0282af4af..9e6699e0d 100644
--- a/MagickCore/vision.c
+++ b/MagickCore/vision.c
@@ -17,7 +17,7 @@
% September 2014 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -167,7 +167,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
RectangleInfo
bounding_box;
- register ssize_t
+ ssize_t
i;
size_t
@@ -251,10 +251,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
dy=connectivity > 4 ? connect8[n][0] : connect4[n][0];
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -353,13 +353,13 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
component_view=AcquireAuthenticCacheView(component_image,exception);
for (y=0; y < (ssize_t) component_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -477,7 +477,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
artifact=GetImageArtifact(image,"connected-components:keep-colors");
if (artifact != (const char *) NULL)
{
- register const char
+ const char
*p;
/*
@@ -493,7 +493,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
PixelInfo
pixel;
- register const char
+ const char
*q;
for (q=p; *q != '\0'; q++)
@@ -572,7 +572,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
artifact=GetImageArtifact(image,"connected-components:remove-colors");
if (artifact != (const char *) NULL)
{
- register const char
+ const char
*p;
/*
@@ -586,7 +586,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
PixelInfo
pixel;
- register const char
+ const char
*q;
for (q=p; *q != '\0'; q++)
@@ -665,10 +665,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
bounding_box=object[i].bounding_box;
for (y=(-1); y < (ssize_t) bounding_box.height+1; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -685,7 +685,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
Quantum
pixels[4];
- register ssize_t
+ ssize_t
v;
size_t
@@ -698,7 +698,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
foreground=0;
for (v=0; v < 2; v++)
{
- register ssize_t
+ ssize_t
u;
for (u=0; u < 2; u++)
@@ -777,10 +777,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
bounding_box=object[i].bounding_box;
for (y=(-1); y < (ssize_t) bounding_box.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -797,7 +797,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
Quantum
pixels[4];
- register ssize_t
+ ssize_t
v;
size_t
@@ -810,7 +810,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
foreground=0;
for (v=0; v < 2; v++)
{
- register ssize_t
+ ssize_t
u;
for (u=0; u < 2; u++)
@@ -903,10 +903,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
RectangleInfo
bounding_box;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1005,10 +1005,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
RectangleInfo
bounding_box;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1109,10 +1109,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
RectangleInfo
bounding_box;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1215,10 +1215,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
RectangleInfo
bounding_box;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -1312,7 +1312,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
object_view=AcquireVirtualCacheView(component_image,exception);
for (i=0; i < (ssize_t) component_image->colors; i++)
{
- register ssize_t
+ ssize_t
j;
size_t
@@ -1330,10 +1330,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
bounding_box=object[i].bounding_box;
for (y=0; y < (ssize_t) bounding_box.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1347,7 +1347,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
}
for (x=0; x < (ssize_t) bounding_box.width; x++)
{
- register ssize_t
+ ssize_t
n;
if (status == MagickFalse)
@@ -1356,7 +1356,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
if (j == i)
for (n=0; n < (ssize_t) (connectivity > 4 ? 4 : 2); n++)
{
- register const Quantum
+ const Quantum
*p;
/*
@@ -1390,10 +1390,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
object[i].area=0.0;
for (y=0; y < (ssize_t) bounding_box.height; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1448,10 +1448,10 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
component_view=AcquireVirtualCacheView(component_image,exception);
for (y=0; y < (ssize_t) component_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -1495,7 +1495,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
CCObjectInfoCompare);
if (objects == (CCObjectInfo **) NULL)
{
- register ssize_t
+ ssize_t
j;
artifact=GetImageArtifact(image,
diff --git a/MagickCore/vision.h b/MagickCore/vision.h
index cf660ec41..0ab1e0ece 100644
--- a/MagickCore/vision.h
+++ b/MagickCore/vision.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/visual-effects.c b/MagickCore/visual-effects.c
index e8b13aaec..af8ce735e 100644
--- a/MagickCore/visual-effects.c
+++ b/MagickCore/visual-effects.c
@@ -24,7 +24,7 @@
% %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -206,13 +206,13 @@ MagickExport Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -227,7 +227,7 @@ MagickExport Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -363,13 +363,13 @@ MagickExport Image *BlueShiftImage(const Image *image,const double factor,
Quantum
quantum;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -622,10 +622,10 @@ MagickExport Image *ColorizeImage(const Image *image,const char *blend,
MagickBooleanType
sync;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -639,7 +639,7 @@ MagickExport Image *ColorizeImage(const Image *image,const char *blend,
}
for (x=0; x < (ssize_t) colorize_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(colorize_image); i++)
@@ -747,7 +747,7 @@ MagickExport Image *ColorMatrixImage(const Image *image,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -823,13 +823,13 @@ MagickExport Image *ColorMatrixImage(const Image *image,
PixelInfo
pixel;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -845,7 +845,7 @@ MagickExport Image *ColorMatrixImage(const Image *image,
GetPixelInfo(image,&pixel);
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
v;
size_t
@@ -1032,13 +1032,13 @@ MagickExport Image *ImplodeImage(const Image *image,const double amount,
PointInfo
delta;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1055,7 +1055,7 @@ MagickExport Image *ImplodeImage(const Image *image,const double amount,
delta.y=scale.y*(double) (y-center.y);
for (x=0; x < (ssize_t) canvas_image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -1170,10 +1170,10 @@ MagickExport Image *MorphImages(const Image *image,const size_t number_frames,
MagickOffsetType
scene;
- register const Image
+ const Image
*next;
- register ssize_t
+ ssize_t
n;
ssize_t
@@ -1268,13 +1268,13 @@ MagickExport Image *MorphImages(const Image *image,const size_t number_frames,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1290,7 +1290,7 @@ MagickExport Image *MorphImages(const Image *image,const size_t number_frames,
}
for (x=0; x < (ssize_t) morph_images->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(morph_image); i++)
@@ -1408,14 +1408,14 @@ static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
MagickStatusType
status;
- register const Quantum
+ const Quantum
*magick_restrict u,
*magick_restrict v;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1437,8 +1437,8 @@ static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
*/
depth--;
attenuate++;
- x_mid=(ssize_t) ceil((segment->x1+segment->x2)/2-0.5);
- y_mid=(ssize_t) ceil((segment->y1+segment->y2)/2-0.5);
+ x_mid=CastDoubleToLong(ceil((segment->x1+segment->x2)/2-0.5));
+ y_mid=CastDoubleToLong(ceil((segment->y1+segment->y2)/2-0.5));
local_info=(*segment);
local_info.x2=(double) x_mid;
local_info.y2=(double) y_mid;
@@ -1461,8 +1461,8 @@ static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
&local_info,attenuate,depth,exception);
return(status == 0 ? MagickFalse : MagickTrue);
}
- x_mid=(ssize_t) ceil((segment->x1+segment->x2)/2-0.5);
- y_mid=(ssize_t) ceil((segment->y1+segment->y2)/2-0.5);
+ x_mid=CastDoubleToLong(ceil((segment->x1+segment->x2)/2-0.5));
+ y_mid=CastDoubleToLong(ceil((segment->y1+segment->y2)/2-0.5));
if ((fabs(segment->x1-x_mid) < MagickEpsilon) &&
(fabs(segment->x2-x_mid) < MagickEpsilon) &&
(fabs(segment->y1-y_mid) < MagickEpsilon) &&
@@ -1479,11 +1479,11 @@ static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
/*
Left pixel.
*/
- x=(ssize_t) ceil(segment->x1-0.5);
- u=GetCacheViewVirtualPixels(u_view,x,(ssize_t) ceil(segment->y1-0.5),1,1,
- exception);
- v=GetCacheViewVirtualPixels(v_view,x,(ssize_t) ceil(segment->y2-0.5),1,1,
- exception);
+ x=CastDoubleToLong(ceil(segment->x1-0.5));
+ u=GetCacheViewVirtualPixels(u_view,x,CastDoubleToLong(ceil(
+ segment->y1-0.5)),1,1,exception);
+ v=GetCacheViewVirtualPixels(v_view,x,CastDoubleToLong(ceil(
+ segment->y2-0.5)),1,1,exception);
q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
@@ -1502,11 +1502,11 @@ static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
/*
Right pixel.
*/
- x=(ssize_t) ceil(segment->x2-0.5);
- u=GetCacheViewVirtualPixels(u_view,x,(ssize_t) ceil(segment->y1-0.5),
- 1,1,exception);
- v=GetCacheViewVirtualPixels(v_view,x,(ssize_t) ceil(segment->y2-0.5),
- 1,1,exception);
+ x=CastDoubleToLong(ceil(segment->x2-0.5));
+ u=GetCacheViewVirtualPixels(u_view,x,CastDoubleToLong(ceil(
+ segment->y1-0.5)),1,1,exception);
+ v=GetCacheViewVirtualPixels(v_view,x,CastDoubleToLong(ceil(
+ segment->y2-0.5)),1,1,exception);
q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
@@ -1531,11 +1531,11 @@ static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
/*
Bottom pixel.
*/
- y=(ssize_t) ceil(segment->y2-0.5);
- u=GetCacheViewVirtualPixels(u_view,(ssize_t) ceil(segment->x1-0.5),y,
- 1,1,exception);
- v=GetCacheViewVirtualPixels(v_view,(ssize_t) ceil(segment->x2-0.5),y,
- 1,1,exception);
+ y=CastDoubleToLong(ceil(segment->y2-0.5));
+ u=GetCacheViewVirtualPixels(u_view,CastDoubleToLong(ceil(
+ segment->x1-0.5)),y,1,1,exception);
+ v=GetCacheViewVirtualPixels(v_view,CastDoubleToLong(ceil(
+ segment->x2-0.5)),y,1,1,exception);
q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
@@ -1555,11 +1555,11 @@ static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
/*
Top pixel.
*/
- y=(ssize_t) ceil(segment->y1-0.5);
- u=GetCacheViewVirtualPixels(u_view,(ssize_t) ceil(segment->x1-0.5),y,
- 1,1,exception);
- v=GetCacheViewVirtualPixels(v_view,(ssize_t) ceil(segment->x2-0.5),y,
- 1,1,exception);
+ y=CastDoubleToLong(ceil(segment->y1-0.5));
+ u=GetCacheViewVirtualPixels(u_view,CastDoubleToLong(ceil(
+ segment->x1-0.5)),y,1,1,exception);
+ v=GetCacheViewVirtualPixels(v_view,CastDoubleToLong(ceil(
+ segment->x2-0.5)),y,1,1,exception);
q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
(q == (Quantum *) NULL))
@@ -1581,11 +1581,11 @@ static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
/*
Middle pixel.
*/
- x=(ssize_t) ceil(segment->x1-0.5);
- y=(ssize_t) ceil(segment->y1-0.5);
+ x=CastDoubleToLong(ceil(segment->x1-0.5));
+ y=CastDoubleToLong(ceil(segment->y1-0.5));
u=GetCacheViewVirtualPixels(u_view,x,y,1,1,exception);
- x=(ssize_t) ceil(segment->x2-0.5);
- y=(ssize_t) ceil(segment->y2-0.5);
+ x=CastDoubleToLong(ceil(segment->x2-0.5));
+ y=CastDoubleToLong(ceil(segment->y2-0.5));
v=GetCacheViewVirtualPixels(v_view,x,y,1,1,exception);
q=QueueCacheViewAuthenticPixels(image_view,x_mid,y_mid,1,1,exception);
if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
@@ -1916,13 +1916,13 @@ MagickExport Image *SepiaToneImage(const Image *image,const double threshold,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2082,10 +2082,10 @@ MagickExport Image *ShadowImage(const Image *image,const double alpha,
image_view=AcquireAuthenticCacheView(border_image,exception);
for (y=0; y < (ssize_t) border_image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2213,10 +2213,10 @@ MagickExport Image *SketchImage(const Image *image,const double radius,
const int
id = GetOpenMPThreadId();
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -2233,7 +2233,7 @@ MagickExport Image *SketchImage(const Image *image,const double radius,
double
value;
- register ssize_t
+ ssize_t
i;
value=GetPseudoRandomValue(random_info[id]);
@@ -2351,7 +2351,7 @@ MagickExport MagickBooleanType SolarizeImage(Image *image,
(void) SetImageColorspace(image,sRGBColorspace,exception);
if (image->storage_class == PseudoClass)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -2380,10 +2380,10 @@ MagickExport MagickBooleanType SolarizeImage(Image *image,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2396,7 +2396,7 @@ MagickExport MagickBooleanType SolarizeImage(Image *image,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2483,10 +2483,10 @@ MagickExport Image *SteganoImage(const Image *image,const Image *watermark,
PixelInfo
pixel;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -2696,14 +2696,14 @@ MagickExport Image *StereoAnaglyphImage(const Image *left_image,
status=MagickTrue;
for (y=0; y < (ssize_t) stereo_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict r;
p=GetVirtualPixels(left_image,-x_offset,y-y_offset,image->columns,1,
@@ -2864,13 +2864,13 @@ MagickExport Image *SwirlImage(const Image *image,double degrees,
PointInfo
delta;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -2894,7 +2894,7 @@ MagickExport Image *SwirlImage(const Image *image,double degrees,
distance=delta.x*delta.x+delta.y*delta.y;
if (distance >= (radius*radius))
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < (ssize_t) GetPixelChannels(canvas_image); i++)
@@ -3086,13 +3086,13 @@ MagickExport Image *TintImage(const Image *image,const char *blend,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3311,7 +3311,7 @@ MagickExport Image *WaveImage(const Image *image,const double amplitude,
MagickOffsetType
progress;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -3374,13 +3374,13 @@ MagickExport Image *WaveImage(const Image *image,const double amplitude,
#endif
for (y=0; y < (ssize_t) wave_image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -3472,7 +3472,7 @@ static inline void HatTransform(const float *magick_restrict pixels,
*magick_restrict q,
*magick_restrict r;
- register ssize_t
+ ssize_t
i;
p=pixels;
@@ -3574,7 +3574,7 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
noise_view=AcquireAuthenticCacheView(noise_image,exception);
for (channel=0; channel < (ssize_t) GetPixelChannels(image); channel++)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -3607,7 +3607,7 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
i=0;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
ssize_t
@@ -3650,11 +3650,11 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
const int
id = GetOpenMPThreadId();
- register float
+ float
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
p=kernel+id*image->columns;
@@ -3673,11 +3673,11 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
const int
id = GetOpenMPThreadId();
- register float
+ float
*magick_restrict p,
*magick_restrict q;
- register ssize_t
+ ssize_t
y;
p=kernel+id*image->rows;
@@ -3718,10 +3718,10 @@ MagickExport Image *WaveletDenoiseImage(const Image *image,
MagickBooleanType
sync;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
ssize_t
diff --git a/MagickCore/visual-effects.h b/MagickCore/visual-effects.h
index b5d4a7bfb..ae28b6f77 100644
--- a/MagickCore/visual-effects.h
+++ b/MagickCore/visual-effects.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/vms.c b/MagickCore/vms.c
index 06f65a2a7..771291470 100644
--- a/MagickCore/vms.c
+++ b/MagickCore/vms.c
@@ -17,7 +17,7 @@
% October 1994 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -171,10 +171,10 @@ struct dirent *readdir(DIR *directory)
int
status;
- register char
+ char
*p;
- register int
+ int
i;
struct dsc$descriptor_s
diff --git a/MagickCore/vms.h b/MagickCore/vms.h
index e30237869..b5f800eaa 100644
--- a/MagickCore/vms.h
+++ b/MagickCore/vms.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/widget-private.h b/MagickCore/widget-private.h
index a2afdd60c..93b1b23aa 100644
--- a/MagickCore/widget-private.h
+++ b/MagickCore/widget-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/widget.c b/MagickCore/widget.c
index 07077feaa..f12dfafa5 100644
--- a/MagickCore/widget.c
+++ b/MagickCore/widget.c
@@ -18,7 +18,7 @@
% September 1993 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -512,7 +512,7 @@ static void XDrawMatteText(Display *display,const XWindowInfo *window_info,
x,
y;
- register int
+ int
i;
unsigned int
@@ -1138,11 +1138,11 @@ static void XEditText(Display *display,XWidgetInfo *text_info,
}
default:
{
- register char
+ char
*p,
*q;
- register int
+ int
i;
if (state & ControlState)
@@ -1625,7 +1625,7 @@ MagickPrivate void XColorBrowserWidget(Display *display,XWindows *windows,
x,
y;
- register int
+ int
i;
static char
@@ -2895,7 +2895,7 @@ MagickPrivate int XCommandWidget(Display *display,XWindows *windows,
id,
y;
- register int
+ int
i;
static unsigned int
@@ -3643,7 +3643,7 @@ MagickPrivate int XDialogWidget(Display *display,XWindows *windows,
int
x;
- register int
+ int
i;
static MagickBooleanType
@@ -4230,7 +4230,7 @@ MagickPrivate void XFileBrowserWidget(Display *display,XWindows *windows,
x,
y;
- register ssize_t
+ ssize_t
i;
static char
@@ -4410,7 +4410,7 @@ MagickPrivate void XFileBrowserWidget(Display *display,XWindows *windows,
special_info.y=action_info.y;
if (anomaly == MagickFalse)
{
- register char
+ char
*p;
special_info.text=(char *) FormatButtonText;
@@ -4787,7 +4787,7 @@ MagickPrivate void XFileBrowserWidget(Display *display,XWindows *windows,
XDrawMatteText(display,&windows->widget,&reply_info);
if (id == list_info.id)
{
- register char
+ char
*p;
p=reply_info.text+strlen(reply_info.text)-1;
@@ -5450,7 +5450,7 @@ extern "C" {
static int FontCompare(const void *x,const void *y)
{
- register char
+ char
*p,
*q;
@@ -5490,7 +5490,7 @@ MagickPrivate void XFontBrowserWidget(Display *display,XWindows *windows,
x,
y;
- register int
+ int
i;
static char
@@ -6759,7 +6759,7 @@ MagickPrivate void XListBrowserWidget(Display *display,XWindows *windows,
int
x;
- register int
+ int
i;
static MagickStatusType
@@ -8446,7 +8446,7 @@ MagickPrivate MagickBooleanType XPreferencesWidget(Display *display,
x,
y;
- register int
+ int
i;
Status
@@ -8966,7 +8966,7 @@ MagickPrivate void XTextViewWidget(Display *display,
char
primary_selection[MagickPathExtent];
- register int
+ int
i;
static MagickStatusType
diff --git a/MagickCore/widget.h b/MagickCore/widget.h
index ea79c3e7f..e0be6cb11 100644
--- a/MagickCore/widget.h
+++ b/MagickCore/widget.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/xml-tree-private.h b/MagickCore/xml-tree-private.h
index da07f875c..9f409aa80 100644
--- a/MagickCore/xml-tree-private.h
+++ b/MagickCore/xml-tree-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/xml-tree.c b/MagickCore/xml-tree.c
index e655c2053..d9eb1f9bd 100644
--- a/MagickCore/xml-tree.c
+++ b/MagickCore/xml-tree.c
@@ -23,7 +23,7 @@
% December 2004 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -220,7 +220,7 @@ MagickPrivate XMLTreeInfo *AddPathToXMLTree(XMLTreeInfo *xml_info,
subnode[MagickPathExtent],
tag[MagickPathExtent];
- register ssize_t
+ ssize_t
i;
size_t
@@ -304,10 +304,10 @@ MagickPrivate char *CanonicalXMLContent(const char *content,
*base64,
*canonical_content;
- register const unsigned char
+ const unsigned char
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -438,7 +438,7 @@ MagickPrivate char *CanonicalXMLContent(const char *content,
static char **DestroyXMLTreeAttributes(char **attributes)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -497,7 +497,7 @@ static void DestroyXMLTreeRoot(XMLTreeInfo *xml_info)
char
**attributes;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -607,7 +607,7 @@ MagickPrivate char *FileToXML(const char *filename,const size_t extent)
MagickOffsetType
offset;
- register size_t
+ size_t
i;
size_t
@@ -696,7 +696,7 @@ MagickPrivate char *FileToXML(const char *filename,const size_t extent)
(void) lseek(file,0,SEEK_SET);
for (i=0; i < length; i+=count)
{
- count=read(file,xml+i,(size_t) MagickMin(length-i,(size_t) SSIZE_MAX));
+ count=read(file,xml+i,(size_t) MagickMin(length-i,(size_t) LONG_MAX));
if (count <= 0)
{
count=0;
@@ -779,7 +779,7 @@ MagickExport XMLTreeInfo *GetNextXMLTreeTag(XMLTreeInfo *xml_info)
MagickExport const char *GetXMLTreeAttribute(XMLTreeInfo *xml_info,
const char *tag)
{
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -848,7 +848,7 @@ MagickExport const char *GetXMLTreeAttribute(XMLTreeInfo *xml_info,
MagickPrivate MagickBooleanType GetXMLTreeAttributes(
const XMLTreeInfo *xml_info,SplayTreeInfo *attributes)
{
- register ssize_t
+ ssize_t
i;
assert(xml_info != (XMLTreeInfo *) NULL);
@@ -1008,7 +1008,7 @@ MagickPrivate XMLTreeInfo *GetXMLTreePath(XMLTreeInfo *xml_info,
subnode[MagickPathExtent],
tag[MagickPathExtent];
- register ssize_t
+ ssize_t
i;
size_t
@@ -1079,7 +1079,7 @@ MagickPrivate XMLTreeInfo *GetXMLTreePath(XMLTreeInfo *xml_info,
MagickPrivate const char **GetXMLTreeProcessingInstructions(
XMLTreeInfo *xml_info,const char *target)
{
- register ssize_t
+ ssize_t
i;
XMLTreeRoot
@@ -1298,7 +1298,7 @@ static char *ConvertUTF16ToUTF8(const char *content,size_t *length)
c,
encoding;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1377,11 +1377,11 @@ static char *ParseEntities(char *xml,char **entities,int state)
byte,
c;
- register char
+ char
*p,
*q;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1588,7 +1588,7 @@ static XMLTreeInfo *ParseCloseTag(XMLTreeRoot *root,char *tag,
static MagickBooleanType ValidateEntities(char *tag,char *xml,
const size_t depth,char **entities)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -1620,7 +1620,7 @@ static void ParseProcessingInstructions(XMLTreeRoot *root,char *xml,
char
*target;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1701,7 +1701,7 @@ static MagickBooleanType ParseInternalDoctype(XMLTreeRoot *root,char *xml,
*t,
*v;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1940,7 +1940,7 @@ static const char
static inline MagickBooleanType IsSkipTag(const char *tag)
{
- register ssize_t
+ ssize_t
i;
i=0;
@@ -1968,10 +1968,10 @@ MagickExport XMLTreeInfo *NewXMLTree(const char *xml,ExceptionInfo *exception)
MagickBooleanType
status;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2492,7 +2492,7 @@ MagickPrivate XMLTreeInfo *PruneTagFromXMLTree(XMLTreeInfo *xml_info)
MagickPrivate XMLTreeInfo *SetXMLTreeAttribute(XMLTreeInfo *xml_info,
const char *tag,const char *value)
{
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2661,7 +2661,7 @@ static char *XMLTreeTagToXML(XMLTreeInfo *xml_info,char **source,size_t *length,
const char
*attribute;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2763,11 +2763,11 @@ MagickExport char *XMLTreeInfoToXML(XMLTreeInfo *xml_info)
char
*xml;
- register char
+ char
*p,
*q;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickCore/xml-tree.h b/MagickCore/xml-tree.h
index 9e6c93adc..f60336e32 100644
--- a/MagickCore/xml-tree.h
+++ b/MagickCore/xml-tree.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/xwindow-private.h b/MagickCore/xwindow-private.h
index a219fc350..787308bae 100644
--- a/MagickCore/xwindow-private.h
+++ b/MagickCore/xwindow-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c
index f8b60c8b7..342411489 100644
--- a/MagickCore/xwindow.c
+++ b/MagickCore/xwindow.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -246,7 +246,7 @@ static Window
*/
MagickExport void DestroyXResources(void)
{
- register int
+ int
i;
unsigned int
@@ -569,10 +569,10 @@ MagickPrivate MagickBooleanType XAnnotateImage(Display *display,
annotate_view=AcquireAuthenticCacheView(annotate_image,exception);
for (y=0; y < (int) annotate_image->rows; y++)
{
- register int
+ int
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(annotate_view,0,(ssize_t) y,
@@ -747,11 +747,11 @@ static char **FontToList(char *font)
char
**fontlist;
- register char
+ char
*p,
*q;
- register int
+ int
i;
unsigned int
@@ -820,7 +820,7 @@ MagickPrivate XFontStruct *XBestFont(Display *display,
char
*font_name;
- register const char
+ const char
**p;
XFontStruct
@@ -835,7 +835,7 @@ MagickPrivate XFontStruct *XBestFont(Display *display,
char
**fontlist;
- register int
+ int
i;
/*
@@ -1040,10 +1040,10 @@ MagickPrivate void XBestPixel(Display *display,const Colormap colormap,
double
min_distance;
- register double
+ double
distance;
- register int
+ int
i,
j;
@@ -1165,7 +1165,7 @@ MagickPrivate XVisualInfo *XBestVisualInfo(Display *display,
int
visual_mask;
- register int
+ int
i;
size_t
@@ -1962,7 +1962,7 @@ MagickPrivate void XDisplayImageInfo(Display *display,
int
unique_file;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2139,13 +2139,13 @@ static void XDitherImage(Image *image,XImage *ximage,ExceptionInfo *exception)
PixelInfo
color;
- register char
+ char
*q;
- register const Quantum
+ const Quantum
*p;
- register int
+ int
i,
j,
x;
@@ -2153,7 +2153,7 @@ static void XDitherImage(Image *image,XImage *ximage,ExceptionInfo *exception)
unsigned int
scanline_pad;
- register size_t
+ size_t
pixel;
unsigned char
@@ -2468,10 +2468,10 @@ MagickPrivate MagickBooleanType XDrawImage(Display *display,
draw_view=AcquireAuthenticCacheView(draw_image,exception);
for (y=0; y < (int) draw_image->rows; y++)
{
- register int
+ int
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueCacheViewAuthenticPixels(draw_view,0,(ssize_t) y,draw_image->columns,
@@ -2594,10 +2594,10 @@ MagickPrivate MagickBooleanType XDrawImage(Display *display,
draw_view=AcquireAuthenticCacheView(draw_image,exception);
for (y=0; y < (int) draw_image->rows; y++)
{
- register int
+ int
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=GetCacheViewAuthenticPixels(draw_view,0,(ssize_t) y,draw_image->columns,1,
@@ -3032,7 +3032,7 @@ MagickPrivate void XGetPixelInfo(Display *display,
Colormap
colormap;
- register ssize_t
+ ssize_t
i;
Status
@@ -3356,7 +3356,7 @@ MagickExport XrmDatabase XGetResourceDatabase(Display *display,
int
c;
- register const char
+ const char
*p;
XrmDatabase
@@ -4000,7 +4000,7 @@ static Image *XGetWindowImage(Display *display,const Window window,
RectangleInfo
crop_info;
- register int
+ int
i;
static ColormapInfo
@@ -4158,14 +4158,14 @@ static Image *XGetWindowImage(Display *display,const Window window,
MagickBooleanType
import;
- register int
+ int
j,
x;
- register Quantum
+ Quantum
*magick_restrict q;
- register size_t
+ size_t
pixel;
unsigned int
@@ -4326,7 +4326,7 @@ static Image *XGetWindowImage(Display *display,const Window window,
case DirectClass:
default:
{
- register size_t
+ size_t
color,
index;
@@ -5859,13 +5859,13 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info,
int
y;
- register const Quantum
+ const Quantum
*p;
- register int
+ int
x;
- register unsigned char
+ unsigned char
*q;
unsigned char
@@ -5929,7 +5929,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info,
canvas_view=AcquireVirtualCacheView(canvas,exception);
if (ximage->format == XYBitmap)
{
- register unsigned short
+ unsigned short
polarity;
unsigned char
@@ -5985,7 +5985,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info,
{
case 2:
{
- register unsigned int
+ unsigned int
nibble;
/*
@@ -6037,7 +6037,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info,
}
case 4:
{
- register unsigned int
+ unsigned int
nibble;
/*
@@ -6105,10 +6105,10 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info,
}
default:
{
- register int
+ int
k;
- register unsigned int
+ unsigned int
bytes_per_pixel;
/*
@@ -6141,7 +6141,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info,
{
case 2:
{
- register unsigned int
+ unsigned int
nibble;
/*
@@ -6194,7 +6194,7 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info,
}
case 4:
{
- register unsigned int
+ unsigned int
nibble;
/*
@@ -6352,10 +6352,10 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info,
}
else
{
- register int
+ int
k;
- register unsigned int
+ unsigned int
bytes_per_pixel;
/*
@@ -6476,13 +6476,13 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info,
int
y;
- register int
+ int
x;
- register const Quantum
+ const Quantum
*p;
- register unsigned char
+ unsigned char
*q;
unsigned char
@@ -6546,7 +6546,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info,
canvas_view=AcquireVirtualCacheView(canvas,exception);
if (ximage->format == XYBitmap)
{
- register unsigned short
+ unsigned short
polarity;
unsigned char
@@ -6602,7 +6602,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info,
{
case 2:
{
- register unsigned int
+ unsigned int
nibble;
/*
@@ -6655,7 +6655,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info,
}
case 4:
{
- register unsigned int
+ unsigned int
nibble;
/*
@@ -6724,10 +6724,10 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info,
}
default:
{
- register int
+ int
k;
- register unsigned int
+ unsigned int
bytes_per_pixel;
unsigned char
@@ -6766,7 +6766,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info,
{
case 2:
{
- register unsigned int
+ unsigned int
nibble;
/*
@@ -6819,7 +6819,7 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info,
}
case 4:
{
- register unsigned int
+ unsigned int
nibble;
/*
@@ -6977,10 +6977,10 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info,
}
else
{
- register int
+ int
k;
- register unsigned int
+ unsigned int
bytes_per_pixel;
unsigned char
@@ -7094,13 +7094,13 @@ MagickPrivate void XMakeMagnifyImage(Display *display,XWindows *windows,
PixelInfo
pixel;
- register int
+ int
x;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p,
*q;
@@ -7195,14 +7195,14 @@ MagickPrivate void XMakeMagnifyImage(Display *display,XWindows *windows,
((width*windows->magnify.ximage->bits_per_pixel) >> 3));
if (ximage->bits_per_pixel < 8)
{
- register unsigned char
+ unsigned char
background,
byte,
foreground,
p_bit,
q_bit;
- register unsigned int
+ unsigned int
plane;
XPixelInfo
@@ -7391,7 +7391,7 @@ MagickPrivate void XMakeMagnifyImage(Display *display,XWindows *windows,
}
default:
{
- register unsigned int
+ unsigned int
bytes_per_pixel,
m;
@@ -7714,7 +7714,7 @@ MagickPrivate void XMakeStandardColormap(Display *display,
Colormap
colormap;
- register ssize_t
+ ssize_t
i;
Status
@@ -7756,7 +7756,7 @@ MagickPrivate void XMakeStandardColormap(Display *display,
Image
*affinity_image;
- register Quantum
+ Quantum
*magick_restrict q;
/*
@@ -7939,7 +7939,7 @@ MagickPrivate void XMakeStandardColormap(Display *display,
int
y;
- register int
+ int
x;
unsigned short
@@ -7967,10 +7967,10 @@ MagickPrivate void XMakeStandardColormap(Display *display,
image_view=AcquireAuthenticCacheView(image,exception);
for (y=0; y < (int) image->rows; y++)
{
- register int
+ int
x;
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetCacheViewAuthenticPixels(image_view,0,(ssize_t) y,
@@ -8391,7 +8391,7 @@ MagickPrivate void XMakeWindow(Display *display,Window parent,char **argv,
int
flags;
- register char
+ char
*p;
/*
@@ -8581,7 +8581,7 @@ static const char *GetLocaleMonitorMessage(const char *text)
const char
*locale_message;
- register char
+ char
*p;
(void) CopyMagickString(tag,text,MagickPathExtent);
@@ -9694,7 +9694,7 @@ MagickPrivate Window XWindowByID(Display *display,const Window root_window,
RectangleInfo
rectangle_info;
- register int
+ int
i;
Status
@@ -9769,7 +9769,7 @@ MagickPrivate Window XWindowByID(Display *display,const Window root_window,
MagickPrivate Window XWindowByName(Display *display,const Window root_window,
const char *name)
{
- register int
+ int
i;
Status
diff --git a/MagickCore/xwindow.h b/MagickCore/xwindow.h
index 7c8897c33..d5f8f9318 100644
--- a/MagickCore/xwindow.h
+++ b/MagickCore/xwindow.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/MagickWand.h b/MagickWand/MagickWand.h
index c1516ba07..06f9e6992 100644
--- a/MagickWand/MagickWand.h
+++ b/MagickWand/MagickWand.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/Makefile.am b/MagickWand/Makefile.am
index fb75e96e7..1e61eceeb 100644
--- a/MagickWand/Makefile.am
+++ b/MagickWand/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/MagickWand/animate.c b/MagickWand/animate.c
index e2f48a48d..02eabc985 100644
--- a/MagickWand/animate.c
+++ b/MagickWand/animate.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -264,7 +264,7 @@ WandExport MagickBooleanType AnimateImageCommand(ImageInfo *image_info,
QuantizeInfo
*quantize_info;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickWand/animate.h b/MagickWand/animate.h
index 7355fb522..64b7efae5 100644
--- a/MagickWand/animate.h
+++ b/MagickWand/animate.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/compare.c b/MagickWand/compare.c
index aa5e87768..222b9dad8 100644
--- a/MagickWand/compare.c
+++ b/MagickWand/compare.c
@@ -17,7 +17,7 @@
% December 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -265,7 +265,7 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
RectangleInfo
offset;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickWand/compare.h b/MagickWand/compare.h
index ddc6e6b39..0d8c5f2e4 100644
--- a/MagickWand/compare.h
+++ b/MagickWand/compare.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/composite.c b/MagickWand/composite.c
index 69e71f321..01c0ede57 100644
--- a/MagickWand/composite.c
+++ b/MagickWand/composite.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -456,7 +456,7 @@ WandExport MagickBooleanType CompositeImageCommand(ImageInfo *image_info,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickWand/composite.h b/MagickWand/composite.h
index 1a52d5d46..874a0b874 100644
--- a/MagickWand/composite.h
+++ b/MagickWand/composite.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/conjure.c b/MagickWand/conjure.c
index f189872c4..d096e0d72 100644
--- a/MagickWand/conjure.c
+++ b/MagickWand/conjure.c
@@ -17,7 +17,7 @@
% December 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -151,7 +151,7 @@ WandExport MagickBooleanType ConjureImageCommand(ImageInfo *image_info,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickWand/conjure.h b/MagickWand/conjure.h
index 51e06f351..669286565 100644
--- a/MagickWand/conjure.h
+++ b/MagickWand/conjure.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/convert.c b/MagickWand/convert.c
index b9340e319..276666fb0 100644
--- a/MagickWand/convert.c
+++ b/MagickWand/convert.c
@@ -17,7 +17,7 @@
% April 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -96,7 +96,7 @@ static MagickBooleanType ConcatenateImages(int argc,char **argv,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
/*
@@ -525,7 +525,7 @@ WandExport MagickBooleanType ConvertImageCommand(ImageInfo *image_info,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickWand/convert.h b/MagickWand/convert.h
index ca4ee1cce..25295cc93 100644
--- a/MagickWand/convert.h
+++ b/MagickWand/convert.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/deprecate.c b/MagickWand/deprecate.c
index 600f33440..fc6f0d803 100644
--- a/MagickWand/deprecate.c
+++ b/MagickWand/deprecate.c
@@ -17,7 +17,7 @@
% October 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickWand/deprecate.h b/MagickWand/deprecate.h
index 5f287a016..b6c73b727 100644
--- a/MagickWand/deprecate.h
+++ b/MagickWand/deprecate.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/display.c b/MagickWand/display.c
index abeaafa08..081ebd15f 100644
--- a/MagickWand/display.c
+++ b/MagickWand/display.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -304,7 +304,7 @@ WandExport MagickBooleanType DisplayImageCommand(ImageInfo *image_info,
QuantizeInfo
*quantize_info;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/MagickWand/display.h b/MagickWand/display.h
index 41e9e5729..ef76951df 100644
--- a/MagickWand/display.h
+++ b/MagickWand/display.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/drawing-wand.c b/MagickWand/drawing-wand.c
index 2f7243c18..e9fd5372c 100644
--- a/MagickWand/drawing-wand.c
+++ b/MagickWand/drawing-wand.c
@@ -23,7 +23,7 @@
% March 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -50,6 +50,7 @@
#include "MagickWand/MagickWand.h"
#include "MagickWand/magick-wand-private.h"
#include "MagickWand/wand.h"
+#include "MagickCore/image-private.h"
#include "MagickCore/string-private.h"
/*
@@ -487,7 +488,7 @@ WandExport DrawingWand *CloneDrawingWand(const DrawingWand *wand)
DrawingWand
*clone_wand;
- register ssize_t
+ ssize_t
i;
assert(wand != (DrawingWand *) NULL);
@@ -1013,10 +1014,10 @@ WandExport MagickBooleanType DrawComposite(DrawingWand *wand,
*clone_image,
*image;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1931,13 +1932,13 @@ WandExport double *DrawGetStrokeDashArray(const DrawingWand *wand,
double
*dasharray;
- register const double
+ const double
*p;
- register double
+ double
*q;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2538,7 +2539,7 @@ WandExport char *DrawGetVectorGraphics(DrawingWand *wand)
PixelInfo
pixel;
- register ssize_t
+ ssize_t
i;
XMLTreeInfo
@@ -4284,10 +4285,10 @@ WandExport MagickBooleanType DrawPushPattern(DrawingWand *wand,
x,y,width,height);
wand->indent_depth++;
wand->pattern_id=AcquireString(pattern_id);
- wand->pattern_bounds.x=(ssize_t) ceil(x-0.5);
- wand->pattern_bounds.y=(ssize_t) ceil(y-0.5);
- wand->pattern_bounds.width=(size_t) floor(width+0.5);
- wand->pattern_bounds.height=(size_t) floor(height+0.5);
+ wand->pattern_bounds.x=CastDoubleToLong(ceil(x-0.5));
+ wand->pattern_bounds.y=CastDoubleToLong(ceil(y-0.5));
+ wand->pattern_bounds.width=(size_t) CastDoubleToLong(floor(width+0.5));
+ wand->pattern_bounds.height=(size_t) CastDoubleToLong(floor(height+0.5));
wand->pattern_offset=wand->mvg_length;
return(MagickTrue);
}
@@ -5532,13 +5533,13 @@ WandExport MagickBooleanType DrawSetStrokeDashArray(DrawingWand *wand,
MagickBooleanType
update;
- register const double
+ const double
*p;
- register double
+ double
*q;
- register ssize_t
+ ssize_t
i;
size_t
@@ -6444,7 +6445,7 @@ WandExport MagickBooleanType DrawSetVectorGraphics(DrawingWand *wand,
const char
*q;
- register ssize_t
+ ssize_t
x;
ssize_t
diff --git a/MagickWand/drawing-wand.h b/MagickWand/drawing-wand.h
index e9f3c2d22..ee1936eb6 100644
--- a/MagickWand/drawing-wand.h
+++ b/MagickWand/drawing-wand.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/identify.c b/MagickWand/identify.c
index bc2f1fc0f..c770b43d7 100644
--- a/MagickWand/identify.c
+++ b/MagickWand/identify.c
@@ -17,7 +17,7 @@
% September 1994 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -212,7 +212,7 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -338,6 +338,7 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info,
continue;
}
pend=image != (Image *) NULL ? MagickTrue : MagickFalse;
+ image_info->ping=MagickFalse;
switch (*(option+1))
{
case 'a':
@@ -445,7 +446,6 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info,
ThrowIdentifyException(OptionError,"MissingArgument",option);
if (IsGeometry(argv[i]) == MagickFalse)
ThrowIdentifyInvalidArgumentException(option,argv[i]);
- image_info->ping=MagickFalse;
break;
}
if (LocaleCompare("concurrent",option+1) == 0)
@@ -486,8 +486,6 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info,
ThrowIdentifyException(OptionError,"NoSuchOption",argv[i]);
break;
}
- if (LocaleNCompare("identify:locate",argv[i],15) == 0)
- image_info->ping=MagickFalse;
break;
}
if (LocaleCompare("density",option+1) == 0)
@@ -649,8 +647,8 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info,
interlace=ParseCommandOption(MagickInterlaceOptions,MagickFalse,
argv[i]);
if (interlace < 0)
- ThrowIdentifyException(OptionError,
- "UnrecognizedInterlaceType",argv[i]);
+ ThrowIdentifyException(OptionError,"UnrecognizedInterlaceType",
+ argv[i]);
break;
}
if (LocaleCompare("interpolate",option+1) == 0)
@@ -763,7 +761,10 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info,
case 'p':
{
if (LocaleCompare("ping",option+1) == 0)
- break;
+ {
+ image_info->ping=MagickTrue;
+ break;
+ }
if (LocaleCompare("precision",option+1) == 0)
{
if (*option == '+')
diff --git a/MagickWand/identify.h b/MagickWand/identify.h
index f4588168d..6ac6c6e7c 100644
--- a/MagickWand/identify.h
+++ b/MagickWand/identify.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/import.c b/MagickWand/import.c
index b301e5fb8..271dee468 100644
--- a/MagickWand/import.c
+++ b/MagickWand/import.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -258,7 +258,7 @@ WandExport MagickBooleanType ImportImageCommand(ImageInfo *image_info,
QuantizeInfo
*quantize_info;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickWand/import.h b/MagickWand/import.h
index ac361bd9f..659af40b8 100644
--- a/MagickWand/import.h
+++ b/MagickWand/import.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/magick-cli.c b/MagickWand/magick-cli.c
index 793275432..f6f81f424 100644
--- a/MagickWand/magick-cli.c
+++ b/MagickWand/magick-cli.c
@@ -22,7 +22,7 @@
% January 2012 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -653,7 +653,7 @@ static MagickBooleanType ConcatenateImages(int argc,char **argv,
int
c;
- register ssize_t
+ ssize_t
i;
if (ExpandFilenames(&argc,&argv) == MagickFalse)
diff --git a/MagickWand/magick-cli.h b/MagickWand/magick-cli.h
index b391e78b1..de1f7f428 100644
--- a/MagickWand/magick-cli.h
+++ b/MagickWand/magick-cli.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c
index 82e98d98c..ba1634e1f 100644
--- a/MagickWand/magick-image.c
+++ b/MagickWand/magick-image.c
@@ -23,7 +23,7 @@
% August 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -5333,7 +5333,7 @@ WandExport PixelWand **MagickGetImageHistogram(MagickWand *wand,
PixelWand
**pixel_wands;
- register ssize_t
+ ssize_t
i;
assert(wand != (MagickWand *) NULL);
@@ -5658,7 +5658,7 @@ WandExport MagickBooleanType MagickGetImagePage(MagickWand *wand,
WandExport MagickBooleanType MagickGetImagePixelColor(MagickWand *wand,
const ssize_t x,const ssize_t y,PixelWand *color)
{
- register const Quantum
+ const Quantum
*p;
CacheView
@@ -6584,8 +6584,8 @@ WandExport MagickBooleanType MagickImplodeImage(MagickWand *wand,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% 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,
+% location you specify. The method returns MagickTrue on success otherwise
+% MagickFalse 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
@@ -11045,7 +11045,7 @@ WandExport MagickBooleanType MagickSetImagePage(MagickWand *wand,
WandExport MagickBooleanType MagickSetImagePixelColor(MagickWand *wand,
const ssize_t x,const ssize_t y,const PixelWand *color)
{
- register Quantum
+ Quantum
*q;
CacheView
diff --git a/MagickWand/magick-image.h b/MagickWand/magick-image.h
index c13f0940d..50365fcc3 100644
--- a/MagickWand/magick-image.h
+++ b/MagickWand/magick-image.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/magick-property.c b/MagickWand/magick-property.c
index 4e2589197..c16046af5 100644
--- a/MagickWand/magick-property.c
+++ b/MagickWand/magick-property.c
@@ -23,7 +23,7 @@
% August 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -600,7 +600,7 @@ WandExport char **MagickGetImageArtifacts(MagickWand *wand,
const char
*artifact;
- register ssize_t
+ ssize_t
i;
size_t
@@ -752,7 +752,7 @@ WandExport char **MagickGetImageProfiles(MagickWand *wand,const char *pattern,
const char
*property;
- register ssize_t
+ ssize_t
i;
size_t
@@ -889,7 +889,7 @@ WandExport char **MagickGetImageProperties(MagickWand *wand,
const char
*property;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1091,7 +1091,7 @@ WandExport char **MagickGetOptions(MagickWand *wand,const char *pattern,
const char
*option;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1497,10 +1497,10 @@ WandExport double *MagickGetSamplingFactors(MagickWand *wand,
double
*sampling_factors;
- register const char
+ const char
*p;
- register ssize_t
+ ssize_t
i;
assert(wand != (MagickWand *) NULL);
@@ -2210,13 +2210,17 @@ WandExport MagickBooleanType MagickSetGravity(MagickWand *wand,
% %
% %
% %
-% M a g i c k S e t I m a g e A r t i f r c t %
+% M a g i c k S e t I m a g e A r t i f a c t %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% MagickSetImageArtifact() associates a artifact with an image.
+% MagickSetImageArtifact() sets a key-value pair in the image artifact
+% namespace. Artifacts differ from properties. Properties are public and are
+% generally exported to an external image format if the format supports it.
+% Artifacts are private and are utilized by the internal ImageMagick API to
+% modify the behavior of certain algorithms.
%
% The format of the MagickSetImageArtifact method is:
%
@@ -2775,7 +2779,7 @@ WandExport MagickBooleanType MagickSetSamplingFactors(MagickWand *wand,
char
sampling_factor[MagickPathExtent];
- register ssize_t
+ ssize_t
i;
assert(wand != (MagickWand *) NULL);
diff --git a/MagickWand/magick-property.h b/MagickWand/magick-property.h
index 4c285c399..03cfe0dca 100644
--- a/MagickWand/magick-property.h
+++ b/MagickWand/magick-property.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/magick-wand-private.h b/MagickWand/magick-wand-private.h
index f0b1bd41c..30d638f35 100644
--- a/MagickWand/magick-wand-private.h
+++ b/MagickWand/magick-wand-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/magick-wand.c b/MagickWand/magick-wand.c
index ee1b16a9c..cd84116a6 100644
--- a/MagickWand/magick-wand.c
+++ b/MagickWand/magick-wand.c
@@ -23,7 +23,7 @@
% August 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickWand/method-attribute.h b/MagickWand/method-attribute.h
index 5198d02ca..127ca6194 100644
--- a/MagickWand/method-attribute.h
+++ b/MagickWand/method-attribute.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/mogrify-private.h b/MagickWand/mogrify-private.h
index e62044aa1..aa2790bd3 100644
--- a/MagickWand/mogrify-private.h
+++ b/MagickWand/mogrify-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 08a1b2e84..8cad37b95 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -142,7 +142,7 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
regard_warnings,
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -422,7 +422,7 @@ static MagickBooleanType MonitorProgress(const char *text,
const char
*locale_message;
- register char
+ char
*p;
magick_unreferenced(client_data);
@@ -475,7 +475,7 @@ static Image *SparseColorOption(const Image *image,
MagickBooleanType
error;
- register size_t
+ size_t
x;
size_t
@@ -744,7 +744,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
geometry,
region_geometry;
- register ssize_t
+ ssize_t
i;
/*
@@ -956,10 +956,10 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
if ((flags & SigmaValue) == 0)
geometry_info.sigma=geometry_info.rho;
if ((flags & XiValue) == 0)
- geometry_info.xi=2.0*sqrt(geometry_info.rho*geometry_info.rho+
+ geometry_info.xi=1.0*sqrt(geometry_info.rho*geometry_info.rho+
geometry_info.sigma*geometry_info.sigma);
if ((flags & PsiValue) == 0)
- geometry_info.psi=0.5*sqrt(geometry_info.rho*geometry_info.rho+
+ geometry_info.psi=0.25*sqrt(geometry_info.rho*geometry_info.rho+
geometry_info.sigma*geometry_info.sigma);
mogrify_image=BilateralBlurImage(*image,(size_t) geometry_info.rho,
(size_t) geometry_info.sigma,geometry_info.xi,geometry_info.psi,
@@ -1314,7 +1314,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
KernelInfo
*kernel_info;
- register ssize_t
+ ssize_t
j;
size_t
@@ -1442,7 +1442,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
double
*arguments;
- register ssize_t
+ ssize_t
x;
size_t
@@ -1762,7 +1762,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
MagickFunction
function;
- register ssize_t
+ ssize_t
x;
size_t
@@ -3933,7 +3933,7 @@ WandExport MagickBooleanType MogrifyImageCommand(ImageInfo *image_info,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -6734,7 +6734,7 @@ WandExport MagickBooleanType MogrifyImageInfo(ImageInfo *image_info,
ssize_t
count;
- register ssize_t
+ ssize_t
i;
/*
@@ -7122,12 +7122,6 @@ WandExport MagickBooleanType MogrifyImageInfo(ImageInfo *image_info,
}
if (LocaleCompare("format",option+1) == 0)
{
- register const char
- *q;
-
- for (q=strchr(argv[i+1],'%'); q != (char *) NULL; q=strchr(q+1,'%'))
- if (strchr("Agkrz@[#",*(q+1)) != (char *) NULL)
- image_info->ping=MagickFalse;
(void) SetImageOption(image_info,option+1,argv[i+1]);
break;
}
@@ -7852,7 +7846,7 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
QuantizeInfo
*quantize_info;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -8757,7 +8751,7 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
Image
*polynomial_image;
- register ssize_t
+ ssize_t
x;
size_t
@@ -9068,7 +9062,7 @@ WandExport MagickBooleanType MogrifyImages(ImageInfo *image_info,
size_t
n;
- register ssize_t
+ ssize_t
i;
assert(image_info != (ImageInfo *) NULL);
diff --git a/MagickWand/mogrify.h b/MagickWand/mogrify.h
index f11e2bc91..590bd783d 100644
--- a/MagickWand/mogrify.h
+++ b/MagickWand/mogrify.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/montage.c b/MagickWand/montage.c
index fe21c9d36..028b5283e 100644
--- a/MagickWand/montage.c
+++ b/MagickWand/montage.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -297,7 +297,7 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info,
MontageInfo
*montage_info;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickWand/montage.h b/MagickWand/montage.h
index b15915149..9891900ee 100644
--- a/MagickWand/montage.h
+++ b/MagickWand/montage.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/operation-private.h b/MagickWand/operation-private.h
index 30d93713c..794c343a8 100644
--- a/MagickWand/operation-private.h
+++ b/MagickWand/operation-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/operation.c b/MagickWand/operation.c
index 6258894d1..3c2dfddd3 100644
--- a/MagickWand/operation.c
+++ b/MagickWand/operation.c
@@ -17,7 +17,7 @@
% September 2011 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -104,7 +104,7 @@ static MagickBooleanType MonitorProgress(const char *text,
const char
*locale_message;
- register char
+ char
*p;
magick_unreferenced(client_data);
@@ -201,7 +201,7 @@ static Image *SparseColorOption(const Image *image,
MagickBooleanType
error;
- register size_t
+ size_t
x;
size_t
@@ -909,15 +909,6 @@ WandPrivate void CLISettingOptionInfo(MagickCLI *cli_wand,
}
if (LocaleCompare("format",option+1) == 0)
{
- /* FUTURE: why the ping test, you could set ping after this! */
- /*
- register const char
- *q;
-
- for (q=strchr(arg1,'%'); q != (char *) NULL; q=strchr(q+1,'%'))
- if (strchr("Agkrz@[#",*(q+1)) != (char *) NULL)
- _image_info->ping=MagickFalse;
- */
(void) SetImageOption(_image_info,option+1,ArgOption(NULL));
break;
}
@@ -1226,7 +1217,7 @@ WandPrivate void CLISettingOptionInfo(MagickCLI *cli_wand,
}
if (LocaleCompare("ping",option+1) == 0)
{
- _image_info->ping = ArgBoolean;
+ _image_info->ping=ArgBoolean;
break;
}
if (LocaleCompare("pointsize",option+1) == 0)
@@ -1848,10 +1839,10 @@ static MagickBooleanType CLISimpleOperatorImage(MagickCLI *cli_wand,
if ((flags & SigmaValue) == 0)
geometry_info.sigma=geometry_info.rho;
if ((flags & XiValue) == 0)
- geometry_info.xi=2.0*sqrt(geometry_info.rho*geometry_info.rho+
+ geometry_info.xi=1.0*sqrt(geometry_info.rho*geometry_info.rho+
geometry_info.sigma*geometry_info.sigma);
if ((flags & PsiValue) == 0)
- geometry_info.psi=0.5*sqrt(geometry_info.rho*geometry_info.rho+
+ geometry_info.psi=0.25*sqrt(geometry_info.rho*geometry_info.rho+
geometry_info.sigma*geometry_info.sigma);
new_image=BilateralBlurImage(_image,(size_t) geometry_info.rho,
(size_t) geometry_info.sigma,geometry_info.xi,geometry_info.psi,
@@ -2164,7 +2155,7 @@ static MagickBooleanType CLISimpleOperatorImage(MagickCLI *cli_wand,
KernelInfo
*kernel_info;
- register ssize_t
+ ssize_t
j;
kernel_info=AcquireKernelInfo(arg1,exception);
@@ -2374,6 +2365,18 @@ static MagickBooleanType CLISimpleOperatorImage(MagickCLI *cli_wand,
}
case 'f':
{
+ if (LocaleCompare("features",option+1) == 0)
+ {
+ CLIWandWarnReplaced("-version -define identify:features=");
+ if (*option == '+')
+ {
+ (void) DeleteImageArtifact(_image,"identify:features");
+ break;
+ }
+ (void) SetImageArtifact(_image,"identify:features",arg1);
+ (void) SetImageArtifact(_image,"verbose","true");
+ break;
+ }
if (LocaleCompare("flip",option+1) == 0)
{
new_image=FlipImage(_image,_exception);
diff --git a/MagickWand/operation.h b/MagickWand/operation.h
index 367a06b28..71595689f 100644
--- a/MagickWand/operation.h
+++ b/MagickWand/operation.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/pixel-iterator.c b/MagickWand/pixel-iterator.c
index 97b8ad8c7..5b7808269 100644
--- a/MagickWand/pixel-iterator.c
+++ b/MagickWand/pixel-iterator.c
@@ -23,7 +23,7 @@
% March 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -488,10 +488,10 @@ WandExport PixelIterator *NewPixelRegionIterator(MagickWand *wand,
WandExport PixelWand **PixelGetCurrentIteratorRow(PixelIterator *iterator,
size_t *number_wands)
{
- register const Quantum
+ const Quantum
*pixels;
- register ssize_t
+ ssize_t
x;
assert(iterator != (PixelIterator *) NULL);
@@ -667,10 +667,10 @@ WandExport ssize_t PixelGetIteratorRow(PixelIterator *iterator)
WandExport PixelWand **PixelGetNextIteratorRow(PixelIterator *iterator,
size_t *number_wands)
{
- register const Quantum
+ const Quantum
*pixels;
- register ssize_t
+ ssize_t
x;
assert(iterator != (PixelIterator *) NULL);
@@ -726,10 +726,10 @@ WandExport PixelWand **PixelGetNextIteratorRow(PixelIterator *iterator,
WandExport PixelWand **PixelGetPreviousIteratorRow(PixelIterator *iterator,
size_t *number_wands)
{
- register const Quantum
+ const Quantum
*pixels;
- register ssize_t
+ ssize_t
x;
assert(iterator != (PixelIterator *) NULL);
@@ -918,10 +918,10 @@ WandExport MagickBooleanType PixelSyncIterator(PixelIterator *iterator)
MagickBooleanType
status;
- register Quantum
+ Quantum
*magick_restrict pixels;
- register ssize_t
+ ssize_t
x;
assert(iterator != (const PixelIterator *) NULL);
diff --git a/MagickWand/pixel-iterator.h b/MagickWand/pixel-iterator.h
index b53e7d8cd..6bb4ebc59 100644
--- a/MagickWand/pixel-iterator.h
+++ b/MagickWand/pixel-iterator.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/pixel-wand-private.h b/MagickWand/pixel-wand-private.h
index 828d3517a..e83a88448 100644
--- a/MagickWand/pixel-wand-private.h
+++ b/MagickWand/pixel-wand-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/pixel-wand.c b/MagickWand/pixel-wand.c
index 0d0895221..b21e2ecee 100644
--- a/MagickWand/pixel-wand.c
+++ b/MagickWand/pixel-wand.c
@@ -23,7 +23,7 @@
% March 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -195,7 +195,7 @@ WandExport PixelWand *ClonePixelWand(const PixelWand *wand)
WandExport PixelWand **ClonePixelWands(const PixelWand **wands,
const size_t number_wands)
{
- register ssize_t
+ ssize_t
i;
PixelWand
@@ -275,7 +275,7 @@ WandExport PixelWand *DestroyPixelWand(PixelWand *wand)
WandExport PixelWand **DestroyPixelWands(PixelWand **wand,
const size_t number_wands)
{
- register ssize_t
+ ssize_t
i;
assert(wand != (PixelWand **) NULL);
@@ -441,7 +441,7 @@ WandExport PixelWand *NewPixelWand(void)
*/
WandExport PixelWand **NewPixelWands(const size_t number_wands)
{
- register ssize_t
+ ssize_t
i;
PixelWand
diff --git a/MagickWand/pixel-wand.h b/MagickWand/pixel-wand.h
index 6c75bef73..26eb7eb66 100644
--- a/MagickWand/pixel-wand.h
+++ b/MagickWand/pixel-wand.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/script-token.c b/MagickWand/script-token.c
index 38da680eb..4397cbba6 100644
--- a/MagickWand/script-token.c
+++ b/MagickWand/script-token.c
@@ -15,7 +15,7 @@
% January 2012 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickWand/script-token.h b/MagickWand/script-token.h
index dd52eec36..fbfeee0e4 100644
--- a/MagickWand/script-token.h
+++ b/MagickWand/script-token.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/stream.c b/MagickWand/stream.c
index b3d2450f0..401f7db44 100644
--- a/MagickWand/stream.c
+++ b/MagickWand/stream.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -194,7 +194,7 @@ WandExport MagickBooleanType StreamImageCommand(ImageInfo *image_info,
MagickStatusType
status;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/MagickWand/stream.h b/MagickWand/stream.h
index 87add7f1f..4fe9b8536 100644
--- a/MagickWand/stream.h
+++ b/MagickWand/stream.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/studio.h b/MagickWand/studio.h
index 57e8ab4b4..4daf7e894 100644
--- a/MagickWand/studio.h
+++ b/MagickWand/studio.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/tests/script-token-test.c b/MagickWand/tests/script-token-test.c
index b693e89e9..5ea45a492 100644
--- a/MagickWand/tests/script-token-test.c
+++ b/MagickWand/tests/script-token-test.c
@@ -21,7 +21,7 @@
% January 2012 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickWand/wand-view.c b/MagickWand/wand-view.c
index b113d5230..c567425f2 100644
--- a/MagickWand/wand-view.c
+++ b/MagickWand/wand-view.c
@@ -22,7 +22,7 @@
% March 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -120,7 +120,7 @@ WandExport WandView *CloneWandView(const WandView *wand_view)
WandView
*clone_view;
- register ssize_t
+ ssize_t
i;
assert(wand_view != (WandView *) NULL);
@@ -178,7 +178,7 @@ WandExport WandView *CloneWandView(const WandView *wand_view)
static PixelWand ***DestroyPixelsThreadSet(PixelWand ***pixel_wands,
const size_t number_wands)
{
- register ssize_t
+ ssize_t
i;
assert(pixel_wands != (PixelWand ***) NULL);
@@ -302,14 +302,14 @@ WandExport MagickBooleanType DuplexTransferWandViewIterator(WandView *source,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict duplex_pixels,
*magick_restrict pixels;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict destination_pixels;
if (status == MagickFalse)
@@ -553,10 +553,10 @@ WandExport MagickBooleanType GetWandViewIterator(WandView *source,
const int
id = GetOpenMPThreadId();
- register const Quantum
+ const Quantum
*pixels;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -721,7 +721,7 @@ static PixelWand ***AcquirePixelsThreadSet(const size_t number_wands)
PixelWand
***pixel_wands;
- register ssize_t
+ ssize_t
i;
size_t
@@ -960,10 +960,10 @@ WandExport MagickBooleanType SetWandViewIterator(WandView *destination,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict pixels;
if (status == MagickFalse)
@@ -1098,13 +1098,13 @@ WandExport MagickBooleanType TransferWandViewIterator(WandView *source,
MagickBooleanType
sync;
- register const Quantum
+ const Quantum
*magick_restrict pixels;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict destination_pixels;
if (status == MagickFalse)
@@ -1253,10 +1253,10 @@ WandExport MagickBooleanType UpdateWandViewIterator(WandView *source,
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict pixels;
if (status == MagickFalse)
diff --git a/MagickWand/wand-view.h b/MagickWand/wand-view.h
index 5c95d8f20..d23d04527 100644
--- a/MagickWand/wand-view.h
+++ b/MagickWand/wand-view.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/wand.c b/MagickWand/wand.c
index 290510256..e36d0b654 100644
--- a/MagickWand/wand.c
+++ b/MagickWand/wand.c
@@ -17,7 +17,7 @@
% May 2004 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickWand/wand.h b/MagickWand/wand.h
index 99d6ff776..d4817389c 100644
--- a/MagickWand/wand.h
+++ b/MagickWand/wand.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/wandcli-private.h b/MagickWand/wandcli-private.h
index b8481380c..5df6230ed 100644
--- a/MagickWand/wandcli-private.h
+++ b/MagickWand/wandcli-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/MagickWand/wandcli.c b/MagickWand/wandcli.c
index f9b52ca2d..5445281b4 100644
--- a/MagickWand/wandcli.c
+++ b/MagickWand/wandcli.c
@@ -15,7 +15,7 @@
% Anthony Thyssen %
% April 2011 %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/MagickWand/wandcli.h b/MagickWand/wandcli.h
index 9f8ef3b38..f2d2a9078 100644
--- a/MagickWand/wandcli.h
+++ b/MagickWand/wandcli.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/Makefile.am b/Makefile.am
index 10acf268a..f4732d93c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/Makefile.in b/Makefile.in
index 05f718304..f686ad62e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.2 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,7 @@
@SET_MAKE@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -33,7 +33,7 @@
# Top-Level Makefile for building ImageMagick.
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -49,7 +49,7 @@
#
# Makefile for building ImageMagick m4 macros.
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -65,7 +65,7 @@
#
# Makefile for Magick ImageMagick configuration files.
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -81,7 +81,7 @@
#
# Makefile for building ImageMagick Coder library.
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -98,7 +98,7 @@
# Makefile for building the MagickCore API.
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -123,7 +123,7 @@
# AM_CPPFLAGS += -I$(top_srcdir)/Magick++/lib
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -139,7 +139,7 @@
#
# Makefile for building ImageMagick filter modules.
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -155,7 +155,7 @@
#
# Makefile for building ImageMagick utilities.
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -589,13 +589,14 @@ am__MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURC
coders/wpg.c coders/wpg.h coders/xbm.c coders/xbm.h \
coders/xc.c coders/xcf.c coders/xcf.h coders/xc.h coders/x.h \
coders/xpm.c coders/xpm.h coders/xps.c coders/xps.h \
- coders/xtrn.c coders/xtrn.h coders/xwd.h coders/ycbcr.c \
- coders/ycbcr.h coders/yuv.c coders/yuv.h coders/dps.c \
- coders/djvu.c coders/exr.c coders/flif.c coders/fpx.c \
- coders/clipboard.c coders/emf.c coders/heic.c coders/jbig.c \
- coders/jpeg.c coders/jp2.c coders/jxl.c coders/png.c \
- coders/ept.c coders/tiff.c coders/webp.c coders/wmf.c \
- coders/x.c coders/xwd.c filters/analyze.c
+ coders/xtrn.c coders/xtrn.h coders/xwd.h coders/yaml.c \
+ coders/yaml.h coders/ycbcr.c coders/ycbcr.h coders/yuv.c \
+ coders/yuv.h coders/dps.c coders/djvu.c coders/exr.c \
+ coders/flif.c coders/fpx.c coders/clipboard.c coders/emf.c \
+ coders/heic.c coders/jbig.c coders/jpeg.c coders/jp2.c \
+ coders/jxl.c coders/png.c coders/ept.c coders/tiff.c \
+ coders/webp.c coders/wmf.c coders/x.c coders/xwd.c \
+ filters/analyze.c
am__objects_1 = MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-accelerate.lo \
MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-animate.lo \
MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-annotate.lo \
@@ -825,6 +826,7 @@ am__objects_19 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xpm.lo \
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.lo \
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.lo \
+ coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo \
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo \
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.lo \
$(am__objects_3) $(am__objects_4) $(am__objects_5) \
@@ -1921,7 +1923,7 @@ coders_xps_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(coders_xps_la_LDFLAGS) $(LDFLAGS) -o $@
@WITH_MODULES_TRUE@am_coders_xps_la_rpath = -rpath $(codersdir)
-coders_xtrn_la_DEPENDENCIES = $(MAGICKCORE_LIBS) $(am__DEPENDENCIES_1)
+coders_xtrn_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
am_coders_xtrn_la_OBJECTS = coders/xtrn_la-xtrn.lo
coders_xtrn_la_OBJECTS = $(am_coders_xtrn_la_OBJECTS)
coders_xtrn_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -1937,6 +1939,14 @@ coders_xwd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(coders_xwd_la_LDFLAGS) $(LDFLAGS) -o $@
@WITH_MODULES_TRUE@@X11_DELEGATE_TRUE@am_coders_xwd_la_rpath = -rpath \
@WITH_MODULES_TRUE@@X11_DELEGATE_TRUE@ $(codersdir)
+coders_yaml_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
+am_coders_yaml_la_OBJECTS = coders/yaml_la-yaml.lo
+coders_yaml_la_OBJECTS = $(am_coders_yaml_la_OBJECTS)
+coders_yaml_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(coders_yaml_la_LDFLAGS) $(LDFLAGS) -o \
+ $@
+@WITH_MODULES_TRUE@am_coders_yaml_la_rpath = -rpath $(codersdir)
coders_ycbcr_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
am_coders_ycbcr_la_OBJECTS = coders/ycbcr_la-ycbcr.lo
coders_ycbcr_la_OBJECTS = $(am_coders_ycbcr_la_OBJECTS)
@@ -2404,6 +2414,7 @@ am__depfiles_remade = Magick++/demo/$(DEPDIR)/analyze-analyze.Po \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.Plo \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.Plo \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwd.Plo \
+ coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.Plo \
coders/$(DEPDIR)/aai_la-aai.Plo \
@@ -2537,6 +2548,7 @@ am__depfiles_remade = Magick++/demo/$(DEPDIR)/analyze-analyze.Po \
coders/$(DEPDIR)/xps_la-xps.Plo \
coders/$(DEPDIR)/xtrn_la-xtrn.Plo \
coders/$(DEPDIR)/xwd_la-xwd.Plo \
+ coders/$(DEPDIR)/yaml_la-yaml.Plo \
coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo \
coders/$(DEPDIR)/yuv_la-yuv.Plo \
filters/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.Plo \
@@ -2652,9 +2664,9 @@ SOURCES = $(Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_
$(coders_xbm_la_SOURCES) $(coders_xc_la_SOURCES) \
$(coders_xcf_la_SOURCES) $(coders_xpm_la_SOURCES) \
$(coders_xps_la_SOURCES) $(coders_xtrn_la_SOURCES) \
- $(coders_xwd_la_SOURCES) $(coders_ycbcr_la_SOURCES) \
- $(coders_yuv_la_SOURCES) $(filters_analyze_la_SOURCES) \
- $(Magick___demo_analyze_SOURCES) \
+ $(coders_xwd_la_SOURCES) $(coders_yaml_la_SOURCES) \
+ $(coders_ycbcr_la_SOURCES) $(coders_yuv_la_SOURCES) \
+ $(filters_analyze_la_SOURCES) $(Magick___demo_analyze_SOURCES) \
$(Magick___demo_button_SOURCES) $(Magick___demo_demo_SOURCES) \
$(Magick___demo_detrans_SOURCES) $(Magick___demo_flip_SOURCES) \
$(Magick___demo_gravity_SOURCES) \
@@ -2744,9 +2756,9 @@ DIST_SOURCES = $(Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUF
$(coders_xbm_la_SOURCES) $(coders_xc_la_SOURCES) \
$(coders_xcf_la_SOURCES) $(coders_xpm_la_SOURCES) \
$(coders_xps_la_SOURCES) $(coders_xtrn_la_SOURCES) \
- $(coders_xwd_la_SOURCES) $(coders_ycbcr_la_SOURCES) \
- $(coders_yuv_la_SOURCES) $(filters_analyze_la_SOURCES) \
- $(Magick___demo_analyze_SOURCES) \
+ $(coders_xwd_la_SOURCES) $(coders_yaml_la_SOURCES) \
+ $(coders_ycbcr_la_SOURCES) $(coders_yuv_la_SOURCES) \
+ $(filters_analyze_la_SOURCES) $(Magick___demo_analyze_SOURCES) \
$(Magick___demo_button_SOURCES) $(Magick___demo_demo_SOURCES) \
$(Magick___demo_detrans_SOURCES) $(Magick___demo_flip_SOURCES) \
$(Magick___demo_gravity_SOURCES) \
@@ -3285,7 +3297,6 @@ NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
-OLE_LIBS = @OLE_LIBS@
OPENEXR_CFLAGS = @OPENEXR_CFLAGS@
OPENEXR_LIBS = @OPENEXR_LIBS@
OPENMP_CFLAGS = @OPENMP_CFLAGS@
@@ -3377,7 +3388,6 @@ WEBP_CFLAGS = @WEBP_CFLAGS@
WEBP_LIBS = @WEBP_LIBS@
WMF_CFLAGS = @WMF_CFLAGS@
WMF_LIBS = @WMF_LIBS@
-WS2_32_LIBS = @WS2_32_LIBS@
WWWDecodeDelegate = @WWWDecodeDelegate@
WebPDecodeDelegate = @WebPDecodeDelegate@
WebPEncodeDelegate = @WebPEncodeDelegate@
@@ -3944,6 +3954,8 @@ MAGICKCORE_CODER_SRCS = \
coders/xtrn.c \
coders/xtrn.h \
coders/xwd.h \
+ coders/yaml.c \
+ coders/yaml.h \
coders/ycbcr.c \
coders/ycbcr.h \
coders/yuv.c \
@@ -4106,6 +4118,7 @@ CODERS_NOINST_HDRS = \
coders/xps.h \
coders/xtrn.h \
coders/xwd.h \
+ coders/yaml.h \
coders/ycbcr.h \
coders/yuv.h
@@ -4225,6 +4238,7 @@ CODERS_NOINST_HDRS = \
@WITH_MODULES_TRUE@ coders/xpm.la \
@WITH_MODULES_TRUE@ coders/xps.la \
@WITH_MODULES_TRUE@ coders/xtrn.la \
+@WITH_MODULES_TRUE@ coders/yaml.la \
@WITH_MODULES_TRUE@ coders/ycbcr.la \
@WITH_MODULES_TRUE@ coders/yuv.la \
@WITH_MODULES_TRUE@ $(MAGICKCORE_DPS_MODULES) \
@@ -5043,6 +5057,12 @@ coders_xwd_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
coders_xwd_la_LDFLAGS = $(MODULECOMMONFLAGS)
coders_xwd_la_LIBADD = $(MAGICKCORE_LIBS) $(X11_LIBS)
+# YAML coder module
+coders_yaml_la_SOURCES = coders/yaml.c
+coders_yaml_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
+coders_yaml_la_LDFLAGS = $(MODULECOMMONFLAGS)
+coders_yaml_la_LIBADD = $(MAGICKCORE_LIBS)
+
# YCBCR coder module
coders_ycbcr_la_SOURCES = coders/ycbcr.c
coders_ycbcr_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
@@ -5956,7 +5976,7 @@ filters_analyze_la_LIBADD = $(MAGICKCORE_LIBS) $(MATH_LIBS)
UTILITIES_INSTALL_EXEC_LOCAL_TARGETS = install-exec-local-utilities
UTILITIES_UNINSTALL_LOCAL_TARGETS = uninstall-local-utilities
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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.
@@ -7005,6 +7025,8 @@ coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xp
coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.lo: \
coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo: \
+ coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo: \
coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.lo: \
@@ -7806,6 +7828,11 @@ coders/xwd_la-xwd.lo: coders/$(am__dirstamp) \
coders/xwd.la: $(coders_xwd_la_OBJECTS) $(coders_xwd_la_DEPENDENCIES) $(EXTRA_coders_xwd_la_DEPENDENCIES) coders/$(am__dirstamp)
$(AM_V_CCLD)$(coders_xwd_la_LINK) $(am_coders_xwd_la_rpath) $(coders_xwd_la_OBJECTS) $(coders_xwd_la_LIBADD) $(LIBS)
+coders/yaml_la-yaml.lo: coders/$(am__dirstamp) \
+ coders/$(DEPDIR)/$(am__dirstamp)
+
+coders/yaml.la: $(coders_yaml_la_OBJECTS) $(coders_yaml_la_DEPENDENCIES) $(EXTRA_coders_yaml_la_DEPENDENCIES) coders/$(am__dirstamp)
+ $(AM_V_CCLD)$(coders_yaml_la_LINK) $(am_coders_yaml_la_rpath) $(coders_yaml_la_OBJECTS) $(coders_yaml_la_LIBADD) $(LIBS)
coders/ycbcr_la-ycbcr.lo: coders/$(am__dirstamp) \
coders/$(DEPDIR)/$(am__dirstamp)
@@ -8365,6 +8392,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwd.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/aai_la-aai.Plo@am__quote@ # am--include-marker
@@ -8501,6 +8529,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/xps_la-xps.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/xtrn_la-xtrn.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/xwd_la-xwd.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/yaml_la-yaml.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/yuv_la-yuv.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@filters/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.Plo@am__quote@ # am--include-marker
@@ -10003,6 +10032,13 @@ coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xt
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.lo `test -f 'coders/xtrn.c' || echo '$(srcdir)/'`coders/xtrn.c
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo: coders/yaml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo `test -f 'coders/yaml.c' || echo '$(srcdir)/'`coders/yaml.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='coders/yaml.c' object='coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo `test -f 'coders/yaml.c' || echo '$(srcdir)/'`coders/yaml.c
+
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo: coders/ycbcr.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo `test -f 'coders/ycbcr.c' || echo '$(srcdir)/'`coders/ycbcr.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo
@@ -11263,6 +11299,13 @@ coders/xwd_la-xwd.lo: coders/xwd.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_xwd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/xwd_la-xwd.lo `test -f 'coders/xwd.c' || echo '$(srcdir)/'`coders/xwd.c
+coders/yaml_la-yaml.lo: coders/yaml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_yaml_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/yaml_la-yaml.lo -MD -MP -MF coders/$(DEPDIR)/yaml_la-yaml.Tpo -c -o coders/yaml_la-yaml.lo `test -f 'coders/yaml.c' || echo '$(srcdir)/'`coders/yaml.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/yaml_la-yaml.Tpo coders/$(DEPDIR)/yaml_la-yaml.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='coders/yaml.c' object='coders/yaml_la-yaml.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_yaml_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/yaml_la-yaml.lo `test -f 'coders/yaml.c' || echo '$(srcdir)/'`coders/yaml.c
+
coders/ycbcr_la-ycbcr.lo: coders/ycbcr.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_ycbcr_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/ycbcr_la-ycbcr.lo -MD -MP -MF coders/$(DEPDIR)/ycbcr_la-ycbcr.Tpo -c -o coders/ycbcr_la-ycbcr.lo `test -f 'coders/ycbcr.c' || echo '$(srcdir)/'`coders/ycbcr.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/ycbcr_la-ycbcr.Tpo coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo
@@ -12370,6 +12413,10 @@ dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
+dist-zstd: distdir
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+ $(am__post_remove_distdir)
+
dist-tarZ: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@@ -12411,6 +12458,8 @@ distcheck: dist
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
+ *.tar.zst*) \
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
@@ -12848,6 +12897,7 @@ distclean: distclean-am
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwd.Plo
+ -rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.Plo
-rm -f coders/$(DEPDIR)/aai_la-aai.Plo
@@ -12984,6 +13034,7 @@ distclean: distclean-am
-rm -f coders/$(DEPDIR)/xps_la-xps.Plo
-rm -f coders/$(DEPDIR)/xtrn_la-xtrn.Plo
-rm -f coders/$(DEPDIR)/xwd_la-xwd.Plo
+ -rm -f coders/$(DEPDIR)/yaml_la-yaml.Plo
-rm -f coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo
-rm -f coders/$(DEPDIR)/yuv_la-yuv.Plo
-rm -f filters/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.Plo
@@ -13340,6 +13391,7 @@ maintainer-clean: maintainer-clean-am
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwd.Plo
+ -rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.Plo
-rm -f coders/$(DEPDIR)/aai_la-aai.Plo
@@ -13476,6 +13528,7 @@ maintainer-clean: maintainer-clean-am
-rm -f coders/$(DEPDIR)/xps_la-xps.Plo
-rm -f coders/$(DEPDIR)/xtrn_la-xtrn.Plo
-rm -f coders/$(DEPDIR)/xwd_la-xwd.Plo
+ -rm -f coders/$(DEPDIR)/yaml_la-yaml.Plo
-rm -f coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo
-rm -f coders/$(DEPDIR)/yuv_la-yuv.Plo
-rm -f filters/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.Plo
@@ -13523,7 +13576,7 @@ uninstall-man: uninstall-man1
clean-libtool clean-local clean-noinstLTLIBRARIES cscope \
cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
- dist-zip distcheck distclean distclean-compile \
+ dist-zip dist-zstd distcheck distclean distclean-compile \
distclean-generic distclean-hdr distclean-libtool \
distclean-local distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am html-local info \
diff --git a/NOTICE b/NOTICE
index 967481db4..b61e06376 100644
--- a/NOTICE
+++ b/NOTICE
@@ -2,7 +2,7 @@
1. ImageMagick copyright:
-Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization dedicated
+Copyright 1999-2021 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
diff --git a/PerlMagick/Magick.pm b/PerlMagick/Magick.pm
index 7a0aa9857..ab75eb4bb 100644
--- a/PerlMagick/Magick.pm
+++ b/PerlMagick/Magick.pm
@@ -1,6 +1,6 @@
package Image::Magick;
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs
index 8a66b553d..1a307eaa7 100644
--- a/PerlMagick/Magick.xs
+++ b/PerlMagick/Magick.xs
@@ -23,7 +23,7 @@
% February 1997 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -904,7 +904,7 @@ static Image *GetList(pTHX_ SV *reference,SV ***reference_vector,
*head,
*previous;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1635,7 +1635,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
long
index;
- register Quantum
+ Quantum
*q;
CacheView
@@ -1872,7 +1872,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
PixelInfo
pixel;
- register Quantum
+ Quantum
*q;
CacheView
@@ -2424,7 +2424,7 @@ static ssize_t strEQcase(const char *p,const char *q)
char
c;
- register ssize_t
+ ssize_t
i;
for (i=0 ; (c=(*q)) != 0; i++)
@@ -2503,7 +2503,7 @@ Animate(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -2591,7 +2591,7 @@ Append(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2828,10 +2828,10 @@ BlobToImage(ref,...)
Image
*image;
- register char
+ char
**p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2988,7 +2988,7 @@ ChannelFx(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -3226,7 +3226,7 @@ CLONE(ref,...)
PERL_UNUSED_VAR(ref);
if (magick_registry != (SplayTreeInfo *) NULL)
{
- register Image
+ Image
*p;
ResetSplayTreeIterator(magick_registry);
@@ -3373,7 +3373,7 @@ Compare(ref,...)
MetricType
metric;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -3563,7 +3563,7 @@ ComplexImages(ref)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -3720,7 +3720,7 @@ CompareLayers(ref)
LayerMethod
method;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -3929,7 +3929,7 @@ Display(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -4020,7 +4020,7 @@ EvaluateImages(ref)
MagickEvaluateOperator
op;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -4224,7 +4224,7 @@ Features(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -4287,7 +4287,7 @@ Features(ref,...)
count=0;
for ( ; image; image=image->next)
{
- register ssize_t
+ ssize_t
j;
channel_features=GetImageFeatures(image,distance,exception);
@@ -4356,7 +4356,7 @@ Flatten(ref)
PixelInfo
background_color;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -4494,7 +4494,7 @@ Fx(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -4655,7 +4655,7 @@ Get(ref,...)
long
j;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -5271,7 +5271,7 @@ Get(ref,...)
x,
y;
- register const Quantum
+ const Quantum
*p;
CacheView
@@ -5537,7 +5537,7 @@ Get(ref,...)
x,
y;
- register const Quantum
+ const Quantum
*p;
if (image == (Image *) NULL)
@@ -6399,7 +6399,7 @@ Histogram(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -6515,10 +6515,10 @@ GetPixel(ref,...)
RectangleInfo
region;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -6716,7 +6716,7 @@ GetPixels(ref,...)
RectangleInfo
region;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -6954,7 +6954,7 @@ ImageToBlob(ref,...)
*image,
*next;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -7073,7 +7073,7 @@ Layers(ref,...)
LayerMethod
method;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -7720,7 +7720,7 @@ Mogrify(ref,...)
geometry,
region_info;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -8727,10 +8727,10 @@ Mogrify(ref,...)
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -11585,10 +11585,10 @@ Mogrify(ref,...)
if ((flags & SigmaValue) == 0)
geometry_info.sigma=geometry_info.rho;
if ((flags & XiValue) == 0)
- geometry_info.xi=2.0*sqrt(geometry_info.rho*geometry_info.rho+
+ geometry_info.xi=1.0*sqrt(geometry_info.rho*geometry_info.rho+
geometry_info.sigma*geometry_info.sigma);
if ((flags & PsiValue) == 0)
- geometry_info.psi=0.5*sqrt(geometry_info.rho*geometry_info.rho+
+ geometry_info.psi=0.25*sqrt(geometry_info.rho*geometry_info.rho+
geometry_info.sigma*geometry_info.sigma);
}
if (attribute_flag[1] != 0)
@@ -11685,7 +11685,7 @@ Montage(ref,...)
MontageInfo
*montage_info;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -12090,7 +12090,7 @@ Morph(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -12315,10 +12315,10 @@ Ping(ref,...)
MagickBooleanType
status;
- register char
+ char
**p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -12611,7 +12611,7 @@ QueryColor(ref,...)
PixelInfo
color;
- register ssize_t
+ ssize_t
i;
SV
@@ -12697,7 +12697,7 @@ QueryColorname(ref,...)
PixelInfo
target_color;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -12764,7 +12764,7 @@ QueryFont(ref,...)
ExceptionInfo
*exception;
- register ssize_t
+ ssize_t
i;
SV
@@ -12909,7 +12909,7 @@ QueryFontMetrics(ref,...)
MagickStatusType
flags;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -13320,7 +13320,7 @@ QueryMultilineFontMetrics(ref,...)
MagickStatusType
flags;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -13667,7 +13667,7 @@ QueryFormat(ref,...)
ExceptionInfo
*exception;
- register ssize_t
+ ssize_t
i;
SV
@@ -13754,7 +13754,7 @@ QueryOption(ref,...)
ExceptionInfo
*exception;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -13832,10 +13832,10 @@ Read(ref,...)
MagickBooleanType
status;
- register char
+ char
**p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -14034,7 +14034,7 @@ Remote(ref,...)
ExceptionInfo
*exception;
- register ssize_t
+ ssize_t
i;
SV
@@ -14089,7 +14089,7 @@ Set(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -14168,10 +14168,10 @@ SetPixel(ref,...)
RectangleInfo
region;
- register ssize_t
+ ssize_t
i;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -14325,7 +14325,7 @@ SetPixel(ref,...)
double
scale;
- register ssize_t
+ ssize_t
i;
i=0;
@@ -14416,10 +14416,10 @@ SetPixels(ref,...)
RectangleInfo
region;
- register ssize_t
+ ssize_t
i;
- register Quantum
+ Quantum
*q;
struct PackageInfo
@@ -14574,7 +14574,7 @@ SetPixels(ref,...)
double
scale;
- register ssize_t
+ ssize_t
i,
n,
number_pixels;
@@ -14669,7 +14669,7 @@ Smush(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -14884,7 +14884,7 @@ Statistics(ref,...)
count=0;
for ( ; image; image=image->next)
{
- register size_t
+ size_t
i;
channel_statistics=GetImageStatistics(image,exception);
@@ -15010,7 +15010,7 @@ Write(ref,...)
*image,
*next;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/PerlMagick/Makefile.PL.in b/PerlMagick/Makefile.PL.in
index 64d82db22..61d65e381 100644
--- a/PerlMagick/Makefile.PL.in
+++ b/PerlMagick/Makefile.PL.in
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/Makefile.am b/PerlMagick/Makefile.am
index 2cfc6ed49..9ffd8b273 100644
--- a/PerlMagick/Makefile.am
+++ b/PerlMagick/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/check.sh.in b/PerlMagick/check.sh.in
index 418f84333..fc86227d6 100644
--- a/PerlMagick/check.sh.in
+++ b/PerlMagick/check.sh.in
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/default/Magick.pm.in b/PerlMagick/default/Magick.pm.in
index 0fdd8aec0..448199436 100644
--- a/PerlMagick/default/Magick.pm.in
+++ b/PerlMagick/default/Magick.pm.in
@@ -1,6 +1,6 @@
package Image::Magick;
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/default/Makefile.PL.in b/PerlMagick/default/Makefile.PL.in
index 4cbdaa564..6a4271e33 100644
--- a/PerlMagick/default/Makefile.PL.in
+++ b/PerlMagick/default/Makefile.PL.in
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/demo/demo.pl b/PerlMagick/demo/demo.pl
index 27cdfa394..85a762684 100644
--- a/PerlMagick/demo/demo.pl
+++ b/PerlMagick/demo/demo.pl
@@ -85,6 +85,12 @@ $example->Label('Auto Threshold');
$example->AutoThreshold();
push(@$images,$example);
+print "Blilateral Blur...\n";
+$example=$model->Clone();
+$example->Label('Blilateral Blur');
+$example->BilateralBlur('8x8');
+push(@$images,$example);
+
print "Blur...\n";
$example=$model->Clone();
$example->Label('Blur');
diff --git a/PerlMagick/demo/shadow-text.pl b/PerlMagick/demo/shadow-text.pl
index b35af1ff1..e32f3a963 100644
--- a/PerlMagick/demo/shadow-text.pl
+++ b/PerlMagick/demo/shadow-text.pl
@@ -4,7 +4,7 @@
#
use Image::Magick;
-$image=Image::Magick->new(size=>'500x120');
+$image=Image::Magick->new(size=>'525x125');
$image->Read('xc:white');
$image->Annotate(fill=>'rgba(100,100,100,0.8)',pointsize=>60,
text=>'Works like magick!',geometry=>'+8+90');
diff --git a/PerlMagick/quantum/Makefile.PL.in b/PerlMagick/quantum/Makefile.PL.in
index a2023f4bb..a7d239219 100644
--- a/PerlMagick/quantum/Makefile.PL.in
+++ b/PerlMagick/quantum/Makefile.PL.in
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/quantum/quantum.pm b/PerlMagick/quantum/quantum.pm
index c48dd29d6..74f58a39c 100644
--- a/PerlMagick/quantum/quantum.pm
+++ b/PerlMagick/quantum/quantum.pm
@@ -1,6 +1,6 @@
package Image::Magick::Q16HDRI;
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/quantum/quantum.pm.in b/PerlMagick/quantum/quantum.pm.in
index 5f6ca5078..7a854da28 100644
--- a/PerlMagick/quantum/quantum.pm.in
+++ b/PerlMagick/quantum/quantum.pm.in
@@ -1,6 +1,6 @@
package Image::Magick::@MAGICK_ABI_SUFFIX@;
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/quantum/quantum.xs.in b/PerlMagick/quantum/quantum.xs.in
index 29ac323fb..0c2e19b2d 100644
--- a/PerlMagick/quantum/quantum.xs.in
+++ b/PerlMagick/quantum/quantum.xs.in
@@ -23,7 +23,7 @@
% February 1997 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -904,7 +904,7 @@ static Image *GetList(pTHX_ SV *reference,SV ***reference_vector,
*head,
*previous;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1635,7 +1635,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
long
index;
- register Quantum
+ Quantum
*q;
CacheView
@@ -1869,7 +1869,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image,
PixelInfo
pixel;
- register Quantum
+ Quantum
*q;
CacheView
@@ -2421,7 +2421,7 @@ static ssize_t strEQcase(const char *p,const char *q)
char
c;
- register ssize_t
+ ssize_t
i;
for (i=0 ; (c=(*q)) != 0; i++)
@@ -2500,7 +2500,7 @@ Animate(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -2588,7 +2588,7 @@ Append(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2825,10 +2825,10 @@ BlobToImage(ref,...)
Image
*image;
- register char
+ char
**p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2985,7 +2985,7 @@ ChannelFx(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -3223,7 +3223,7 @@ CLONE(ref,...)
PERL_UNUSED_VAR(ref);
if (magick_registry != (SplayTreeInfo *) NULL)
{
- register Image
+ Image
*p;
ResetSplayTreeIterator(magick_registry);
@@ -3370,7 +3370,7 @@ Compare(ref,...)
MetricType
metric;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -3560,7 +3560,7 @@ ComplexImages(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -3717,7 +3717,7 @@ CompareLayers(ref,...)
LayerMethod
method;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -3926,7 +3926,7 @@ Display(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -4017,7 +4017,7 @@ EvaluateImages(ref,...)
MagickEvaluateOperator
op;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -4221,7 +4221,7 @@ Features(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -4284,7 +4284,7 @@ Features(ref,...)
count=0;
for ( ; image; image=image->next)
{
- register ssize_t
+ ssize_t
j;
channel_features=GetImageFeatures(image,distance,exception);
@@ -4353,7 +4353,7 @@ Flatten(ref,...)
PixelInfo
background_color;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -4491,7 +4491,7 @@ Fx(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -4653,7 +4653,7 @@ Get(ref,...)
long
j;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -5270,7 +5270,7 @@ Get(ref,...)
x,
y;
- register const Quantum
+ const Quantum
*p;
CacheView
@@ -5536,7 +5536,7 @@ Get(ref,...)
x,
y;
- register const Quantum
+ const Quantum
*p;
if (image == (Image *) NULL)
@@ -6398,7 +6398,7 @@ Histogram(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -6514,10 +6514,10 @@ GetPixel(ref,...)
RectangleInfo
region;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -6715,7 +6715,7 @@ GetPixels(ref,...)
RectangleInfo
region;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -6953,7 +6953,7 @@ ImageToBlob(ref,...)
*image,
*next;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -7072,7 +7072,7 @@ Layers(ref,...)
LayerMethod
method;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -7719,7 +7719,7 @@ Mogrify(ref,...)
geometry,
region_info;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -8730,10 +8730,10 @@ Mogrify(ref,...)
MagickBooleanType
sync;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -11591,10 +11591,10 @@ Mogrify(ref,...)
if ((flags & SigmaValue) == 0)
geometry_info.sigma=geometry_info.rho;
if ((flags & XiValue) == 0)
- geometry_info.xi=2.0*sqrt(geometry_info.rho*geometry_info.rho+
+ geometry_info.xi=1.0*sqrt(geometry_info.rho*geometry_info.rho+
geometry_info.sigma*geometry_info.sigma);
if ((flags & PsiValue) == 0)
- geometry_info.xi=0.5*sqrt(geometry_info.rho*geometry_info.rho+
+ geometry_info.xi=0.25*sqrt(geometry_info.rho*geometry_info.rho+
geometry_info.sigma*geometry_info.sigma);
}
if (attribute_flag[1] != 0)
@@ -11691,7 +11691,7 @@ Montage(ref,...)
PixelInfo
transparent_color;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -12096,7 +12096,7 @@ Morph(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -12350,7 +12350,7 @@ PerceptualHash(ref)
count=0;
for ( ; image; image=image->next)
{
- register size_t
+ size_t
i;
channel_phash=GetImagePerceptualHash(image,exception);
@@ -12370,7 +12370,7 @@ PerceptualHash(ref)
channel_phash[0].number_colorspaces*(i+1)*count);
for (j=0; j < MaximumNumberOfPerceptualHashes; j++)
{
- register ssize_t
+ ssize_t
k;
for (k=0; k < (ssize_t) channel_phash[0].number_colorspaces; k++)
@@ -12432,10 +12432,10 @@ Ping(ref,...)
MagickBooleanType
status;
- register char
+ char
**p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -12728,7 +12728,7 @@ QueryColor(ref,...)
PixelInfo
color;
- register ssize_t
+ ssize_t
i;
SV
@@ -12814,7 +12814,7 @@ QueryColorname(ref,...)
PixelInfo
target_color;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -12881,7 +12881,7 @@ QueryFont(ref,...)
ExceptionInfo
*exception;
- register ssize_t
+ ssize_t
i;
SV
@@ -13026,7 +13026,7 @@ QueryFontMetrics(ref,...)
MagickStatusType
flags;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -13437,7 +13437,7 @@ QueryMultilineFontMetrics(ref,...)
MagickStatusType
flags;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -13784,7 +13784,7 @@ QueryFormat(ref,...)
ExceptionInfo
*exception;
- register ssize_t
+ ssize_t
i;
SV
@@ -13871,7 +13871,7 @@ QueryOption(ref,...)
ExceptionInfo
*exception;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -13949,10 +13949,10 @@ Read(ref,...)
MagickBooleanType
status;
- register char
+ char
**p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -14151,7 +14151,7 @@ Remote(ref,...)
ExceptionInfo
*exception;
- register ssize_t
+ ssize_t
i;
SV
@@ -14206,7 +14206,7 @@ Set(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
struct PackageInfo
@@ -14285,10 +14285,10 @@ SetPixel(ref,...)
RectangleInfo
region;
- register ssize_t
+ ssize_t
i;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -14442,7 +14442,7 @@ SetPixel(ref,...)
double
scale;
- register ssize_t
+ ssize_t
i;
i=0;
@@ -14533,10 +14533,10 @@ SetPixels(ref,...)
RectangleInfo
region;
- register ssize_t
+ ssize_t
i;
- register Quantum
+ Quantum
*q;
struct PackageInfo
@@ -14691,7 +14691,7 @@ SetPixels(ref,...)
double
scale;
- register ssize_t
+ ssize_t
i,
n,
number_pixels;
@@ -14786,7 +14786,7 @@ Smush(ref,...)
Image
*image;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -15001,7 +15001,7 @@ Statistics(ref)
count=0;
for ( ; image; image=image->next)
{
- register size_t
+ size_t
i;
channel_statistics=GetImageStatistics(image,exception);
@@ -15128,7 +15128,7 @@ Write(ref,...)
*image,
*next;
- register ssize_t
+ ssize_t
i;
ssize_t
diff --git a/PerlMagick/t/blob.t b/PerlMagick/t/blob.t
index 58a078a25..cfa57466a 100644
--- a/PerlMagick/t/blob.t
+++ b/PerlMagick/t/blob.t
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/t/filter.t b/PerlMagick/t/filter.t
index 6682c7a32..96fa8d208 100644
--- a/PerlMagick/t/filter.t
+++ b/PerlMagick/t/filter.t
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/t/getattribute.t b/PerlMagick/t/getattribute.t
index 6e61d97db..618c89e53 100644
--- a/PerlMagick/t/getattribute.t
+++ b/PerlMagick/t/getattribute.t
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/t/montage.t b/PerlMagick/t/montage.t
index 62aed2c85..0880b92cb 100644
--- a/PerlMagick/t/montage.t
+++ b/PerlMagick/t/montage.t
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/t/ping.t b/PerlMagick/t/ping.t
index fa3cd33fd..1a63bd25a 100644
--- a/PerlMagick/t/ping.t
+++ b/PerlMagick/t/ping.t
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/t/read.t b/PerlMagick/t/read.t
index 8d3944185..80b0f0fd5 100644
--- a/PerlMagick/t/read.t
+++ b/PerlMagick/t/read.t
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/t/setattribute.t b/PerlMagick/t/setattribute.t
index 8215e4a2b..d5aac6fde 100644
--- a/PerlMagick/t/setattribute.t
+++ b/PerlMagick/t/setattribute.t
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/t/subroutines.pl b/PerlMagick/t/subroutines.pl
index ad30560e9..9a88a720f 100644
--- a/PerlMagick/t/subroutines.pl
+++ b/PerlMagick/t/subroutines.pl
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/PerlMagick/t/write.t b/PerlMagick/t/write.t
index 74da70451..d26412a4f 100644
--- a/PerlMagick/t/write.t
+++ b/PerlMagick/t/write.t
@@ -1,5 +1,5 @@
#!/usr/bin/perl
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/README.md b/README.md
index 297d2eece..91616564b 100644
--- a/README.md
+++ b/README.md
@@ -20,9 +20,9 @@ ImageMagick is free software delivered as a ready-to-run binary distribution or
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 prevent security vulnerabilities.
-The current release is the ImageMagick 7.0.9 series. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.
+The current release is the ImageMagick 7.0.10 series. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.
-The authoritative ImageMagick web site is https://imagemagick.org. The authoritative source code repository is https://github.com/ImageMagick. We maintain a source code mirror at https://gitlab.com/ImageMagick.
+The authoritative ImageMagick web site is https://imagemagick.org. The authoritative source code repository is https://github.com/ImageMagick/ImageMagick.
We continue to maintain the legacy release of ImageMagick, version 6, at https://legacy.imagemagick.org.
@@ -51,6 +51,7 @@ Here are just a few examples of what ImageMagick can do:
* [Perceptual hash](http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/index.html): maps visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking.
* [Complex text layout](https://en.wikipedia.org/wiki/Complex_text_layout) bidirectional text support and shaping.
* [Color management](https://imagemagick.org/script/color-management.php): accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.
+* [Bilateral Blur](https://imagemagick.org/script/command-line-options.php#bilateral-blur): non-linear, edge-preserving, and noise-reducing smoothing filter.
* [High dynamic-range images](https://imagemagick.org/script/high-dynamic-range.php): accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.
* [Encipher or decipher an image](https://imagemagick.org/script/cipher.php): convert ordinary images into unintelligible gibberish and back again.
* [Virtual pixel support](https://imagemagick.org/script/architecture.php#virtual-pixels): convenient access to pixels outside the image region.
@@ -64,16 +65,15 @@ Here are just a few examples of what ImageMagick can do:
#### News
-Now that ImageMagick [version 7](https://imagemagick.org) is released, we continue to maintain the legacy release of ImageMagick, [version 6](https://legacy.imagemagick.org). Learn how ImageMagick version 7 differs from previous versions with our [porting guide](https://imagemagick.org/script/porting.php).
-
ImageMagick best practices **strongly** encourages you to configure a [security policy](https://imagemagick.org/script/security-policy.php) 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).
+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](https://imagemagick.org/script/porting.php).
Want more performance from ImageMagick? Try these options:
- * Add more memory to your system, see the pixel cache;
- * Add more cores to your system, see threads of execution support;
- * push large images to a solid-state drive, see large image support.
+* add more memory to your system, see the pixel cache;
+* add more cores to your system, see threads of execution support;
+* reduce lock contention with the tcmalloc memory allocation library;
+* push large images to a solid-state drive, see large image support.
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 precision 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 precision 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.
diff --git a/README.txt b/README.txt
index db42598c3..d27506ed3 100644
--- a/README.txt
+++ b/README.txt
@@ -30,12 +30,12 @@ Introduction to ImageMagick
that includes memory error and thread data race detection to prevent
security vulnerabilities.
- The current release is the ImageMagick 7.0.9-* series. It runs on Linux,
+ The current release is the ImageMagick 7.0.10-* series. It runs on Linux,
Windows, Mac Os X, iOS, Android OS, and others.
The authoritative ImageMagick web site is https://imagemagick.org. The
- authoritative source code repository is https://github.com/ImageMagick. We
- maintain a source code mirror at https://gitlab.com/ImageMagick.
+ authoritative source code repository is
+ https://github.com/ImageMagick/ImageMagick.
We continue to maintain the legacy release of ImageMagick, version 6,
at https://legacy.imagemagick.org.
@@ -78,6 +78,8 @@ Features and Capabilities
* Color management: accurate color management with color profiles or in
lieu of-- built-in gamma compression or expansion as demanded by the
colorspace.
+ * Bilateral blur: non-linear, edge-preserving, and noise-reducing
+ smoothing filter.
* 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.
@@ -110,23 +112,20 @@ Features and Capabilities
News
+ ImageMagick best practices strongly encourages you to configure a security
+ policy that suits your local environment.
+
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:
- Add more memory to your system, see the pixel cache; Add more cores to
- your system, see threads of execution support; push large images to a
- solid-state drive, see large image support.
+ * add more memory to your system, see the pixel cache;
+ * add more cores to your system, see threads of execution support;
+ * reduce lock contention with the tcmalloc memory allocation library;
+ * push large images to a solid-state drive, see large image support.
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
diff --git a/aclocal.m4 b/aclocal.m4
index 4420eb0f5..4736e0fd2 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.16.1], [],
+m4_if([$1], [1.16.2], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,12 +51,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.2])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -118,7 +118,7 @@ AC_SUBST([AR])dnl
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -170,7 +170,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -201,7 +201,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -392,7 +392,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -431,7 +431,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
done
if test $am_rc -ne 0; then
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).])
fi
@@ -457,7 +459,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -481,7 +483,7 @@ fi], [AC_MSG_RESULT([no])])
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -678,7 +680,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -699,7 +701,7 @@ if test x"${install_sh+set}" != xset; then
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -721,7 +723,7 @@ AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -756,7 +758,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -799,7 +801,7 @@ AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -838,7 +840,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -867,7 +869,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -914,7 +916,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -933,7 +935,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1014,7 +1016,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1074,7 +1076,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1102,7 +1104,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1121,7 +1123,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/coders/Makefile.am b/coders/Makefile.am
index b909440f1..07a36a4f8 100644
--- a/coders/Makefile.am
+++ b/coders/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -358,6 +358,8 @@ MAGICKCORE_CODER_SRCS = \
coders/xtrn.c \
coders/xtrn.h \
coders/xwd.h \
+ coders/yaml.c \
+ coders/yaml.h \
coders/ycbcr.c \
coders/ycbcr.h \
coders/yuv.c \
@@ -520,6 +522,7 @@ CODERS_NOINST_HDRS = \
coders/xps.h \
coders/xtrn.h \
coders/xwd.h \
+ coders/yaml.h \
coders/ycbcr.h \
coders/yuv.h
@@ -639,6 +642,7 @@ coders_LTLIBRARIES = \
coders/xpm.la \
coders/xps.la \
coders/xtrn.la \
+ coders/yaml.la \
coders/ycbcr.la \
coders/yuv.la \
$(MAGICKCORE_DPS_MODULES) \
@@ -1459,6 +1463,12 @@ coders_xwd_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
coders_xwd_la_LDFLAGS = $(MODULECOMMONFLAGS)
coders_xwd_la_LIBADD = $(MAGICKCORE_LIBS) $(X11_LIBS)
+# YAML coder module
+coders_yaml_la_SOURCES = coders/yaml.c
+coders_yaml_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
+coders_yaml_la_LDFLAGS = $(MODULECOMMONFLAGS)
+coders_yaml_la_LIBADD = $(MAGICKCORE_LIBS)
+
# YCBCR coder module
coders_ycbcr_la_SOURCES = coders/ycbcr.c
coders_ycbcr_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
diff --git a/coders/aai.c b/coders/aai.c
index 3e684fe02..a06bf5242 100644
--- a/coders/aai.c
+++ b/coders/aai.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -101,13 +101,13 @@ static Image *ReadAAIImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -334,13 +334,13 @@ static MagickBooleanType WriteAAIImage(const ImageInfo *image_info,Image *image,
MagickOffsetType
scene;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*magick_restrict q;
size_t
diff --git a/coders/aai.h b/coders/aai.h
index d9157c0c8..1fa1b594f 100644
--- a/coders/aai.h
+++ b/coders/aai.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/art.c b/coders/art.c
index 1872dc728..5d53e329b 100644
--- a/coders/art.c
+++ b/coders/art.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -163,7 +163,7 @@ static Image *ReadARTImage(const ImageInfo *image_info,ExceptionInfo *exception)
const void
*stream;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -289,7 +289,7 @@ static MagickBooleanType WriteARTImage(const ImageInfo *image_info,Image *image,
QuantumInfo
*quantum_info;
- register const Quantum
+ const Quantum
*p;
size_t
diff --git a/coders/art.h b/coders/art.h
index 854d4e397..c9c92f0d7 100644
--- a/coders/art.h
+++ b/coders/art.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/ashlar.c b/coders/ashlar.c
index 1ba999f56..02710fc98 100644
--- a/coders/ashlar.c
+++ b/coders/ashlar.c
@@ -17,7 +17,7 @@
% July 2020 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -230,7 +230,7 @@ static ssize_t FindMinimumTileLocation(NodeInfo *first,const ssize_t x,
y=0;
extent=0;
node=first;
- while (node->x < (x+width))
+ while (node->x < (ssize_t) (x+width))
{
if (node->y > y)
{
@@ -283,9 +283,9 @@ static TileInfo AssignBestTileLocation(AshlarInfo *ashlar_info,
tile.y=0;
return(tile);
}
- tile.x=(ssize_t) SSIZE_MAX;
- tile.y=(ssize_t) SSIZE_MAX;
- min_excess=(ssize_t) SSIZE_MAX;
+ tile.x=(ssize_t) LONG_MAX;
+ tile.y=(ssize_t) LONG_MAX;
+ min_excess=(ssize_t) LONG_MAX;
node=ashlar_info->current;
previous=(&ashlar_info->current);
while ((width+node->x) <= ashlar_info->width)
@@ -374,7 +374,7 @@ static TileInfo AssignTileLocation(AshlarInfo *ashlar_info,const size_t width,
*/
tile=AssignBestTileLocation(ashlar_info,width,height);
if ((tile.previous == (NodeInfo **) NULL) ||
- ((tile.y+height) > (ssize_t) ashlar_info->height) ||
+ ((tile.y+(ssize_t) height) > (ssize_t) ashlar_info->height) ||
(ashlar_info->free == (NodeInfo *) NULL))
{
tile.previous=(NodeInfo **) NULL;
@@ -400,7 +400,7 @@ static TileInfo AssignTileLocation(AshlarInfo *ashlar_info,const size_t width,
current=next;
}
while ((current->next != (NodeInfo *) NULL) &&
- (current->next->x <= (tile.x+width)))
+ (current->next->x <= (tile.x+(ssize_t) width)))
{
/*
Push current node to free list.
@@ -411,7 +411,7 @@ static TileInfo AssignTileLocation(AshlarInfo *ashlar_info,const size_t width,
current=next;
}
node->next=current;
- if (current->x < (tile.x+width))
+ if (current->x < (tile.x+(ssize_t) width))
current->x=(ssize_t) (tile.x+width);
return(tile);
}
@@ -448,7 +448,7 @@ static MagickBooleanType PackAshlarTiles(AshlarInfo *ashlar_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
/*
@@ -472,8 +472,8 @@ static MagickBooleanType PackAshlarTiles(AshlarInfo *ashlar_info,
tiles[i].y=(ssize_t) tile_info.y;
if (tile_info.previous == (NodeInfo **) NULL)
{
- tiles[i].x=(ssize_t) SSIZE_MAX;
- tiles[i].y=(ssize_t) SSIZE_MAX;
+ tiles[i].x=(ssize_t) LONG_MAX;
+ tiles[i].y=(ssize_t) LONG_MAX;
}
}
}
@@ -481,8 +481,8 @@ static MagickBooleanType PackAshlarTiles(AshlarInfo *ashlar_info,
status=MagickTrue;
for (i=0; i < (ssize_t) number_tiles; i++)
{
- tiles[i].order=(ssize_t) ((tiles[i].x != (ssize_t) SSIZE_MAX) ||
- (tiles[i].y != (ssize_t) SSIZE_MAX) ? 1 : 0);
+ tiles[i].order=(ssize_t) ((tiles[i].x != (ssize_t) LONG_MAX) ||
+ (tiles[i].y != (ssize_t) LONG_MAX) ? 1 : 0);
if (tiles[i].order == 0)
status=MagickFalse;
}
@@ -580,7 +580,7 @@ static MagickBooleanType WriteASHLARImage(const ImageInfo *image_info,
value=GetImageOption(image_info,"ashlar:best-fit");
for (i=20; i > 0; i--)
{
- register ssize_t
+ ssize_t
j;
n=0;
@@ -606,7 +606,7 @@ static MagickBooleanType WriteASHLARImage(const ImageInfo *image_info,
ashlar_info.head.y=0;
ashlar_info.head.next=(&ashlar_info.sentinal);
ashlar_info.sentinal.x=(ssize_t) geometry.width;
- ashlar_info.sentinal.y=(ssize_t) SSIZE_MAX;
+ ashlar_info.sentinal.y=(ssize_t) LONG_MAX;
ashlar_info.sentinal.next=(NodeInfo *) NULL;
status=PackAshlarTiles(&ashlar_info,tiles,(size_t) n);
if (status != MagickFalse)
@@ -623,8 +623,8 @@ static MagickBooleanType WriteASHLARImage(const ImageInfo *image_info,
Image
*tile_image;
- if ((tiles[i].x == (ssize_t) SSIZE_MAX) ||
- (tiles[i].y == (ssize_t) SSIZE_MAX))
+ if ((tiles[i].x == (ssize_t) LONG_MAX) ||
+ (tiles[i].y == (ssize_t) LONG_MAX))
continue;
tile_image=ResizeImage(GetImageFromList(image,tiles[i].id),(size_t)
(tiles[i].width-2*geometry.x),(size_t) (tiles[i].height-2*geometry.y),
diff --git a/coders/ashlar.h b/coders/ashlar.h
index 6a081b2d3..e2f35fcb8 100644
--- a/coders/ashlar.h
+++ b/coders/ashlar.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/avs.c b/coders/avs.c
index 38344195d..e7a5d2b54 100644
--- a/coders/avs.c
+++ b/coders/avs.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -103,13 +103,13 @@ static Image *ReadAVSImage(const ImageInfo *image_info,ExceptionInfo *exception)
MemoryInfo
*pixel_info;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -336,13 +336,13 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image,
MemoryInfo
*pixel_info;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*magick_restrict q;
size_t
diff --git a/coders/avs.h b/coders/avs.h
index 0f1793555..080aee3a6 100644
--- a/coders/avs.h
+++ b/coders/avs.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/bgr.c b/coders/bgr.c
index 89874731c..92f777e42 100644
--- a/coders/bgr.c
+++ b/coders/bgr.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -118,7 +118,7 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
size_t
@@ -231,13 +231,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -311,13 +311,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -410,13 +410,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -463,13 +463,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -516,13 +516,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -577,13 +577,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -669,13 +669,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -740,13 +740,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -811,13 +811,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -884,13 +884,13 @@ static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -1165,7 +1165,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1193,7 +1193,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1239,7 +1239,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1259,7 +1259,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1279,7 +1279,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1301,7 +1301,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
{
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1343,7 +1343,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1369,7 +1369,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1395,7 +1395,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1424,7 +1424,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/bgr.h b/coders/bgr.h
index 866c2c729..4e56c35cf 100644
--- a/coders/bgr.h
+++ b/coders/bgr.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/bmp.c b/coders/bmp.c
index d7cb82875..b07dc5fc8 100644
--- a/coders/bmp.c
+++ b/coders/bmp.c
@@ -18,7 +18,7 @@
% December 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -206,11 +206,11 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression,
byte,
count;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*p,
*q;
@@ -383,14 +383,14 @@ static size_t EncodeImage(Image *image,const size_t bytes_per_line,
MagickBooleanType
status;
- register const unsigned char
+ const unsigned char
*p;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
ssize_t
@@ -533,14 +533,14 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
Quantum
index;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -1060,7 +1060,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
(void) memset(&quantum_bits,0,sizeof(quantum_bits));
if ((bmp_info.bits_per_pixel == 16) || (bmp_info.bits_per_pixel == 32))
{
- register unsigned int
+ unsigned int
sample;
/*
@@ -1664,14 +1664,14 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image,
MemoryInfo
*pixel_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -1705,8 +1705,8 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image,
status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
if (status == MagickFalse)
return(status);
- if (((image->columns << 3) != (int) (image->columns << 3)) ||
- ((image->rows << 3) != (int) (image->rows << 3)))
+ if (((image->columns << 3) != (size_t) ((int) (image->columns << 3))) ||
+ ((image->rows << 3) != (size_t) ((int) (image->rows << 3))))
ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
type=4;
if (LocaleCompare(image_info->magick,"BMP2") == 0)
diff --git a/coders/bmp.h b/coders/bmp.h
index d414f0b11..ed40a5c31 100644
--- a/coders/bmp.h
+++ b/coders/bmp.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/braille.c b/coders/braille.c
index 8e2e0495d..8f40931cb 100644
--- a/coders/braille.c
+++ b/coders/braille.c
@@ -15,7 +15,7 @@
% February 2008 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -201,10 +201,10 @@ static MagickBooleanType WriteBRAILLEImage(const ImageInfo *image_info,
Quantum
polarity;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
size_t
diff --git a/coders/braille.h b/coders/braille.h
index c8ea23a7d..196983a70 100644
--- a/coders/braille.h
+++ b/coders/braille.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/bytebuffer-private.h b/coders/bytebuffer-private.h
index 9d646773d..ab0cbc2db 100644
--- a/coders/bytebuffer-private.h
+++ b/coders/bytebuffer-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/cals.c b/coders/cals.c
index 9c677d1c6..bd84a1884 100644
--- a/coders/cals.c
+++ b/coders/cals.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -164,7 +164,7 @@ static Image *ReadCALSImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
unsigned long
@@ -397,10 +397,10 @@ static ssize_t WriteCALSRecord(Image *image,const char *data)
char
pad[128];
- register const char
+ const char
*p;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -438,7 +438,7 @@ static MagickBooleanType WriteCALSImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/cals.h b/coders/cals.h
index f2ee57e2c..4568bbdb3 100644
--- a/coders/cals.h
+++ b/coders/cals.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/caption.c b/coders/caption.c
index 44f3b7a4a..67a3fb48c 100644
--- a/coders/caption.c
+++ b/coders/caption.c
@@ -17,7 +17,7 @@
% February 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -113,7 +113,7 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info,
split,
status;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/caption.h b/coders/caption.h
index 32959a4d9..6d62c3bf6 100644
--- a/coders/caption.h
+++ b/coders/caption.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/cin.c b/coders/cin.c
index ec466dd00..b62cafd1c 100644
--- a/coders/cin.c
+++ b/coders/cin.c
@@ -20,7 +20,7 @@
% October 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -403,10 +403,10 @@ static Image *ReadCINImage(const ImageInfo *image_info,ExceptionInfo *exception)
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
- register Quantum
+ Quantum
*q;
size_t
@@ -921,10 +921,10 @@ static MagickBooleanType WriteCINImage(const ImageInfo *image_info,Image *image,
QuantumType
quantum_type;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/cin.h b/coders/cin.h
index 31f454e7c..d4ebddd40 100644
--- a/coders/cin.h
+++ b/coders/cin.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/cip.c b/coders/cip.c
index 2050c75e7..e662b00cf 100644
--- a/coders/cip.c
+++ b/coders/cip.c
@@ -16,7 +16,7 @@
% April 2004 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -169,10 +169,10 @@ static MagickBooleanType WriteCIPImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
diff --git a/coders/cip.h b/coders/cip.h
index a7bb20a42..0e91be5be 100644
--- a/coders/cip.h
+++ b/coders/cip.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/clip.c b/coders/clip.c
index c05c4f64c..14a85ec79 100644
--- a/coders/clip.c
+++ b/coders/clip.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/clip.h b/coders/clip.h
index 6e0966183..18c52fe06 100644
--- a/coders/clip.h
+++ b/coders/clip.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/clipboard.c b/coders/clipboard.c
index e423669af..d7ea80352 100644
--- a/coders/clipboard.c
+++ b/coders/clipboard.c
@@ -17,7 +17,7 @@
% May 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -122,22 +122,10 @@ static Image *ReadCLIPBOARDImage(const ImageInfo *image_info,
LPVOID
clip_mem;
- MagickBooleanType
- status;
-
- register ssize_t
- x;
-
- register Quantum
- *q;
-
size_t
clip_size,
total_size;
- ssize_t
- y;
-
unsigned char
offset;
diff --git a/coders/clipboard.h b/coders/clipboard.h
index e344ba9ad..f0ba1cdd3 100644
--- a/coders/clipboard.h
+++ b/coders/clipboard.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/cmyk.c b/coders/cmyk.c
index 964145656..2b256bbd2 100644
--- a/coders/cmyk.c
+++ b/coders/cmyk.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -118,7 +118,7 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
size_t
@@ -230,13 +230,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -313,13 +313,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
{
for (i=0; i < (ssize_t) (image->alpha_trait != UndefinedPixelTrait ? 5 : 4); i++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -409,13 +409,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -461,13 +461,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -513,13 +513,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -565,13 +565,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -619,13 +619,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
{
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -710,13 +710,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -780,13 +780,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -850,13 +850,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -921,13 +921,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -994,13 +994,13 @@ static Image *ReadCMYKImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -1263,7 +1263,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1291,7 +1291,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1342,7 +1342,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1362,7 +1362,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1382,7 +1382,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1402,7 +1402,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1424,7 +1424,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
{
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1466,7 +1466,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1492,7 +1492,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1518,7 +1518,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1544,7 +1544,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1572,7 +1572,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/cmyk.h b/coders/cmyk.h
index d8b37a85b..11f82d289 100644
--- a/coders/cmyk.h
+++ b/coders/cmyk.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/coders-list.h b/coders/coders-list.h
index 37c44c496..184acc32b 100644
--- a/coders/coders-list.h
+++ b/coders/coders-list.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -194,6 +194,7 @@ AddMagickCoder(XTRN)
#if defined(MAGICKCORE_X11_DELEGATE)
AddMagickCoder(XWD)
#endif
+AddMagickCoder(YAML)
AddMagickCoder(YCBCR)
AddMagickCoder(YUV)
#endif
diff --git a/coders/coders-private.h b/coders/coders-private.h
index b231676c1..867ab7c74 100644
--- a/coders/coders-private.h
+++ b/coders/coders-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/coders.h b/coders/coders.h
index 70184f3c6..b41829b51 100644
--- a/coders/coders.h
+++ b/coders/coders.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -193,5 +193,6 @@
#if defined(MAGICKCORE_X11_DELEGATE)
#include "coders/xwd.h"
#endif
+#include "coders/yaml.h"
#include "coders/ycbcr.h"
#include "coders/yuv.h"
diff --git a/coders/cube.c b/coders/cube.c
index 198a65f40..41a8060b8 100644
--- a/coders/cube.c
+++ b/coders/cube.c
@@ -17,7 +17,7 @@
% July 2018 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -124,7 +124,7 @@ static Image *ReadCUBEImage(const ImageInfo *image_info,
MemoryInfo
*cube_info;
- register char
+ char
*p;
size_t
@@ -240,17 +240,17 @@ static Image *ReadCUBEImage(const ImageInfo *image_info,
}
for (b=0; b < (ssize_t) (hald_level*hald_level); b++)
{
- register ssize_t
+ ssize_t
g;
if (status == MagickFalse)
continue;
for (g=0; g < (ssize_t) (hald_level*hald_level); g++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
r;
if (status == MagickFalse)
diff --git a/coders/cube.h b/coders/cube.h
index 7c665cde4..6bc7b644b 100644
--- a/coders/cube.h
+++ b/coders/cube.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/cut.c b/coders/cut.c
index c4f2768cb..06f4b2ae2 100644
--- a/coders/cut.c
+++ b/coders/cut.c
@@ -104,7 +104,7 @@ static MagickBooleanType InsertRow(Image *image,ssize_t bpp,unsigned char *p,
Quantum
index;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -265,7 +265,7 @@ static int GetCutColors(Image *image,ExceptionInfo *exception)
intensity,
scale_intensity;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -347,7 +347,7 @@ static Image *ReadCUTImage(const ImageInfo *image_info,ExceptionInfo *exception)
ssize_t i,j;
ssize_t ldblk;
unsigned char *BImgBuff=NULL,*ptrB;
- register Quantum *q;
+ Quantum *q;
/*
Open image file.
@@ -618,7 +618,7 @@ static Image *ReadCUTImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
for (i=0; i < (ssize_t)image->colors; i++)
{
- register Quantum
+ Quantum
sample;
sample=ScaleCharToQuantum((unsigned char) i);
if(image->colormap[i].red!=sample) goto Finish;
diff --git a/coders/cut.h b/coders/cut.h
index d459e0912..86d58fe19 100644
--- a/coders/cut.h
+++ b/coders/cut.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/dcm.c b/coders/dcm.c
index 447f289ca..25048d43e 100644
--- a/coders/dcm.c
+++ b/coders/dcm.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -2841,11 +2841,11 @@ static MagickBooleanType ReadDCMPixels(Image *image,DCMInfo *info,
PixelPacket
pixel;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -3060,10 +3060,10 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickOffsetType
offset;
- register unsigned char
+ unsigned char
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -4157,10 +4157,10 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
if ((info.samples_per_pixel > 1) && (image->interlace == PlaneInterlace))
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
diff --git a/coders/dcm.h b/coders/dcm.h
index bad57c6ce..7658bbf1b 100644
--- a/coders/dcm.h
+++ b/coders/dcm.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/dds.c b/coders/dds.c
index 7db07b945..af314cb17 100644
--- a/coders/dds.c
+++ b/coders/dds.c
@@ -19,7 +19,7 @@
% September 2013 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -1008,7 +1008,7 @@ static MagickBooleanType ReadDDSInfo(Image *image, DDSInfo *dds_info)
static MagickBooleanType SetDXT1Pixels(Image *image,ssize_t x,ssize_t y,
DDSColors colors,size_t bits,Quantum *q)
{
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1059,7 +1059,7 @@ static MagickBooleanType ReadMipmaps(const ImageInfo *image_info,Image *image,
&& (dds_info->ddscaps1 & DDSCAPS_TEXTURE
|| dds_info->ddscaps2 & DDSCAPS2_CUBEMAP))
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -1135,10 +1135,10 @@ static MagickBooleanType ReadDXT1Pixels(Image *image,
DDSColors
colors;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -1213,7 +1213,7 @@ static MagickBooleanType SkipDXTMipmaps(Image *image,DDSInfo *dds_info,
MagickOffsetType
offset;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1259,10 +1259,10 @@ static MagickBooleanType ReadDXT3Pixels(Image *image,
DDSColors
colors;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
@@ -1363,10 +1363,10 @@ static MagickBooleanType ReadDXT5Pixels(Image *image,
MagickSizeType
alpha_bits;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
@@ -1472,7 +1472,7 @@ static MagickBooleanType ReadDXT5(const ImageInfo *image_info,Image *image,
static MagickBooleanType ReadUncompressedRGBPixels(Image *image,
DDSInfo *dds_info,ExceptionInfo *exception)
{
- register Quantum
+ Quantum
*q;
ssize_t
@@ -1545,7 +1545,7 @@ static MagickBooleanType SkipRGBMipmaps(Image *image,DDSInfo *dds_info,
MagickOffsetType
offset;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1596,7 +1596,7 @@ static MagickBooleanType ReadUncompressedRGB(const ImageInfo *image_info,
static MagickBooleanType ReadUncompressedRGBAPixels(Image *image,
DDSInfo *dds_info,ExceptionInfo *exception)
{
- register Quantum
+ Quantum
*q;
ssize_t
@@ -1955,7 +1955,7 @@ ModuleExport size_t RegisterDDSImage(void)
static void RemapIndices(const ssize_t *map, const unsigned char *source,
unsigned char *target)
{
- register ssize_t
+ ssize_t
i;
for (i = 0; i < 16; i++)
@@ -2024,7 +2024,7 @@ static size_t CompressAlpha(const size_t min, const size_t max,
unsigned char
codes[8];
- register ssize_t
+ ssize_t
i;
size_t
@@ -2084,7 +2084,7 @@ static MagickBooleanType ConstructOrdering(const size_t count,
dps[16],
f;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2413,7 +2413,7 @@ static void CompressRangeFit(const size_t count,
half,
dist;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2502,7 +2502,7 @@ static void ComputeEndPoints(const DDSSingleColorLookup *lookup[],
const unsigned char *color, DDSVector3 *start, DDSVector3 *end,
unsigned char *index)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -2548,7 +2548,7 @@ static void ComputePrincipleComponent(const float *covariance,
row2,
v;
- register ssize_t
+ ssize_t
i;
row0.x = covariance[0];
@@ -2661,7 +2661,7 @@ static void ComputeWeightedCovariance(const size_t count,
static void WriteAlphas(Image *image, const ssize_t *alphas, size_t min5,
size_t max5, size_t min7, size_t max7)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -2724,7 +2724,7 @@ static void WriteAlphas(Image *image, const ssize_t *alphas, size_t min5,
static void WriteIndices(Image *image, const DDSVector3 start,
const DDSVector3 end, unsigned char *indices)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -2805,7 +2805,7 @@ static void WriteSingleColorFit(Image *image, const DDSVector4 *points,
start,
end;
- register ssize_t
+ ssize_t
i;
unsigned char
@@ -2831,7 +2831,7 @@ static void WriteFourCC(Image *image, const size_t compression,
const MagickBooleanType clusterFit, const MagickBooleanType weightByAlpha,
ExceptionInfo *exception)
{
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -2840,7 +2840,7 @@ static void WriteFourCC(Image *image, const size_t compression,
bx,
by;
- register const Quantum
+ const Quantum
*p;
for (y=0; y < (ssize_t) image->rows; y+=4)
@@ -2958,10 +2958,10 @@ static void WriteFourCC(Image *image, const size_t compression,
static void WriteUncompressed(Image *image, ExceptionInfo *exception)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -3011,7 +3011,7 @@ static MagickBooleanType WriteMipmaps(Image *image,const ImageInfo *image_info,
fast_mipmaps,
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3081,7 +3081,7 @@ static void WriteDDSInfo(Image *image, const size_t pixelFormat,
char
software[MagickPathExtent];
- register ssize_t
+ ssize_t
i;
unsigned int
diff --git a/coders/dds.h b/coders/dds.h
index abe42496b..4d83084c1 100644
--- a/coders/dds.h
+++ b/coders/dds.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/debug.c b/coders/debug.c
index b8ed09438..2b0edba2b 100644
--- a/coders/debug.c
+++ b/coders/debug.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -181,10 +181,10 @@ static MagickBooleanType WriteDEBUGImage(const ImageInfo *image_info,
PixelInfo
pixel;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
size_t
diff --git a/coders/debug.h b/coders/debug.h
index 3a5347268..739ec0a12 100644
--- a/coders/debug.h
+++ b/coders/debug.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/dib.c b/coders/dib.c
index 4fe1c316c..bad4e5a70 100644
--- a/coders/dib.c
+++ b/coders/dib.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -170,11 +170,11 @@ static MagickBooleanType DecodeImage(Image *image,
ssize_t
y;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*p,
*q;
@@ -344,14 +344,14 @@ static size_t EncodeImage(Image *image,const size_t bytes_per_line,
ssize_t
y;
- register const unsigned char
+ const unsigned char
*p;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
/*
@@ -473,16 +473,16 @@ static Image *ReadDIBImage(const ImageInfo *image_info,ExceptionInfo *exception)
Quantum
index;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -1097,14 +1097,14 @@ static MagickBooleanType WriteDIBImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -1131,8 +1131,8 @@ static MagickBooleanType WriteDIBImage(const ImageInfo *image_info,Image *image,
status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
if (status == MagickFalse)
return(status);
- if (((image->columns << 3) != (int) (image->columns << 3)) ||
- ((image->rows << 3) != (int) (image->rows << 3)))
+ if (((image->columns << 3) != (size_t) ((int) (image->columns << 3))) ||
+ ((image->rows << 3) != (size_t) ((int) (image->rows << 3))))
ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
/*
Initialize DIB raster file header.
@@ -1198,7 +1198,7 @@ static MagickBooleanType WriteDIBImage(const ImageInfo *image_info,Image *image,
{
case 1:
{
- register unsigned char
+ unsigned char
bit,
byte;
diff --git a/coders/dib.h b/coders/dib.h
index 1398bd603..5c0874b25 100644
--- a/coders/dib.h
+++ b/coders/dib.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/djvu.c b/coders/djvu.c
index 881515c22..d4c8c4ed7 100644
--- a/coders/djvu.c
+++ b/coders/djvu.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -428,7 +428,7 @@ get_page_image(LoadContext *lc, ddjvu_page_t *page, int x, int y, int w, int h,
/* old: */
char* r;
#else
- register Quantum *r;
+ Quantum *r;
unsigned char *s;
#endif
s=q;
@@ -575,7 +575,7 @@ static Image *ReadOneDJVUImage(LoadContext* lc,const int pagenum,
/* Read one DJVU image */
image = lc->image;
- /* register Quantum *q; */
+ /* Quantum *q; */
logging=LogMagickEvent(CoderEvent,GetMagickModule(), " enter ReadOneDJVUImage()");
(void) logging;
@@ -759,7 +759,7 @@ static Image *ReadDJVUImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
/*
diff --git a/coders/djvu.h b/coders/djvu.h
index 29e9fb2cb..e0261c603 100644
--- a/coders/djvu.h
+++ b/coders/djvu.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/dng.c b/coders/dng.c
index 74dd48a95..af0f8a29e 100644
--- a/coders/dng.c
+++ b/coders/dng.c
@@ -17,7 +17,7 @@
% July 1999 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -385,7 +385,7 @@ static Image *ReadDNGImage(const ImageInfo *image_info,ExceptionInfo *exception)
libraw_processed_image_t
*raw_image;
- register ssize_t
+ ssize_t
y;
StringInfo
@@ -482,10 +482,10 @@ static Image *ReadDNGImage(const ImageInfo *image_info,ExceptionInfo *exception)
p=(unsigned short *) raw_image->data;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/dng.h b/coders/dng.h
index 6bed2ffcf..ca0abec37 100644
--- a/coders/dng.h
+++ b/coders/dng.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/dot.c b/coders/dot.c
index e459cd260..252308cd3 100644
--- a/coders/dot.c
+++ b/coders/dot.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/dot.h b/coders/dot.h
index bcd6ef1bf..d92cffe73 100644
--- a/coders/dot.h
+++ b/coders/dot.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/dps.c b/coders/dps.c
index 05774252c..7d208b0e2 100644
--- a/coders/dps.c
+++ b/coders/dps.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -113,13 +113,13 @@ static Image *ReadDPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
Pixmap
pixmap;
- register ssize_t
+ ssize_t
i;
- register Quantum
+ Quantum
*q;
- register size_t
+ size_t
pixel;
Screen
@@ -338,7 +338,7 @@ static Image *ReadDPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
case DirectClass:
default:
{
- register size_t
+ size_t
color,
index;
diff --git a/coders/dps.h b/coders/dps.h
index a5491cc7a..4b96d9963 100644
--- a/coders/dps.h
+++ b/coders/dps.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/dpx.c b/coders/dpx.c
index 4a54f3bf2..5d07c965f 100644
--- a/coders/dpx.c
+++ b/coders/dpx.c
@@ -17,7 +17,7 @@
% March 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -635,7 +635,7 @@ static void TimeCodeToString(const size_t timestamp,char *code)
unsigned int
shift;
- register ssize_t
+ ssize_t
i;
*code='\0';
@@ -676,7 +676,7 @@ static Image *ReadDPXImage(const ImageInfo *image_info,ExceptionInfo *exception)
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1252,7 +1252,7 @@ static Image *ReadDPXImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
sync;
- register Quantum
+ Quantum
*q;
size_t
@@ -1420,7 +1420,7 @@ static unsigned int StringToTimeCode(const char *key)
char
buffer[2];
- register ssize_t
+ ssize_t
i;
unsigned int
@@ -1486,10 +1486,10 @@ static MagickBooleanType WriteDPXImage(const ImageInfo *image_info,Image *image,
QuantumType
quantum_type;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/dpx.h b/coders/dpx.h
index 47c8f0907..6be610f8c 100644
--- a/coders/dpx.h
+++ b/coders/dpx.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/emf.c b/coders/emf.c
index 7ae6c1982..2dc4c76e8 100644
--- a/coders/emf.c
+++ b/coders/emf.c
@@ -18,7 +18,7 @@
% Dirk Lemstra %
% January 2014 %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -177,12 +177,12 @@ static MagickBooleanType IsWMF(const unsigned char *magick,const size_t length)
# if defined(MAGICKCORE_HAVE__WFOPEN)
static size_t UTF8ToUTF16(const unsigned char *utf8,wchar_t *utf16)
{
- register const unsigned char
+ const unsigned char
*p;
if (utf16 != (wchar_t *) NULL)
{
- register wchar_t
+ wchar_t
*q;
wchar_t
@@ -269,7 +269,7 @@ static wchar_t *ConvertUTF8ToUTF16(const unsigned char *source)
length=UTF8ToUTF16(source,(wchar_t *) NULL);
if (length == 0)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -463,10 +463,10 @@ static Image *ReadEMFImage(const ImageInfo *image_info,ExceptionInfo *exception)
RECT
rect;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
RGBQUAD
@@ -521,7 +521,7 @@ static Image *ReadEMFImage(const ImageInfo *image_info,ExceptionInfo *exception)
char
*geometry;
- register char
+ char
*p;
MagickStatusType
@@ -685,10 +685,10 @@ static Image *ReadEMFImage(const ImageInfo *image_info,
MagickStatusType
flags;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
ssize_t
diff --git a/coders/emf.h b/coders/emf.h
index ef753cdec..4399496c3 100644
--- a/coders/emf.h
+++ b/coders/emf.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/ept.c b/coders/ept.c
index 7c3253200..f38275322 100644
--- a/coders/ept.c
+++ b/coders/ept.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/ept.h b/coders/ept.h
index 22a3d26d5..2113bc374 100644
--- a/coders/ept.h
+++ b/coders/ept.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/exr.c b/coders/exr.c
index 91c8aa4ad..33dd47a1b 100644
--- a/coders/exr.c
+++ b/coders/exr.c
@@ -17,7 +17,7 @@
% April 2007 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -169,7 +169,7 @@ static Image *ReadEXRImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register Quantum
+ Quantum
*q;
size_t
@@ -269,7 +269,7 @@ static Image *ReadEXRImage(const ImageInfo *image_info,ExceptionInfo *exception)
int
yy;
- register ssize_t
+ ssize_t
x;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -456,10 +456,10 @@ static MagickBooleanType WriteEXRImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
ssize_t
diff --git a/coders/exr.h b/coders/exr.h
index 8121126d6..3abb05958 100644
--- a/coders/exr.h
+++ b/coders/exr.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/farbfeld.c b/coders/farbfeld.c
index f4e8b8293..2d1a37ace 100644
--- a/coders/farbfeld.c
+++ b/coders/farbfeld.c
@@ -18,7 +18,7 @@
% November 2020 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -201,7 +201,7 @@ static Image *ReadFARBFELDImage(const ImageInfo *image_info,
const void
*stream;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -333,7 +333,7 @@ static MagickBooleanType WriteFARBFELDImage(const ImageInfo *image_info,
QuantumInfo
*quantum_info;
- register const Quantum
+ const Quantum
*p;
size_t
diff --git a/coders/farbfeld.h b/coders/farbfeld.h
index e27754fba..7ce03e4b2 100644
--- a/coders/farbfeld.h
+++ b/coders/farbfeld.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/fax.c b/coders/fax.c
index 111300c15..5c0f4075b 100644
--- a/coders/fax.c
+++ b/coders/fax.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/fax.h b/coders/fax.h
index f0164fa74..02212e5ba 100644
--- a/coders/fax.h
+++ b/coders/fax.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/fits.c b/coders/fits.c
index eea7a30e9..045fa5cae 100644
--- a/coders/fits.c
+++ b/coders/fits.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -179,7 +179,7 @@ static MagickOffsetType GetFITSPixelExtrema(Image *image,
MagickSizeType
number_pixels;
- register MagickOffsetType
+ MagickOffsetType
i;
offset=TellBlob(image);
@@ -207,7 +207,7 @@ static inline double GetFITSPixelRange(const size_t depth)
static void SetFITSUnsignedPixels(const size_t length,
const size_t bits_per_pixel,const EndianType endian,unsigned char *pixels)
{
- register ssize_t
+ ssize_t
i;
if (endian != MSBEndian)
@@ -270,11 +270,11 @@ static Image *ReadFITSImage(const ImageInfo *image_info,
MagickSizeType
number_pixels;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -321,7 +321,7 @@ static Image *ReadFITSImage(const ImageInfo *image_info,
{
for ( ; EOFBlob(image) == MagickFalse; )
{
- register char
+ char
*p;
count=ReadBlob(image,8,(unsigned char *) keyword);
@@ -643,7 +643,7 @@ static MagickBooleanType WriteFITSImage(const ImageInfo *image_info,
QuantumInfo
*quantum_info;
- register const Quantum
+ const Quantum
*p;
size_t
diff --git a/coders/fits.h b/coders/fits.h
index 539bf900d..5b435c551 100644
--- a/coders/fits.h
+++ b/coders/fits.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/fl32.c b/coders/fl32.c
index 10e22d626..ff35cdcc9 100644
--- a/coders/fl32.c
+++ b/coders/fl32.c
@@ -18,7 +18,7 @@
% November 2020 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -242,7 +242,7 @@ static Image *ReadFL32Image(const ImageInfo *image_info,
const void
*stream;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -370,7 +370,7 @@ static MagickBooleanType WriteFL32Image(const ImageInfo *image_info,
QuantumType
quantum_type;
- register const Quantum
+ const Quantum
*p;
size_t
diff --git a/coders/fl32.h b/coders/fl32.h
index eba76047d..ad85a6823 100644
--- a/coders/fl32.h
+++ b/coders/fl32.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/flif.c b/coders/flif.c
index dcb37783e..ba6ccaffb 100644
--- a/coders/flif.c
+++ b/coders/flif.c
@@ -17,7 +17,7 @@
% April 2016 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -118,13 +118,13 @@ static Image *ReadFLIFImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
- register unsigned short
+ unsigned short
*p;
size_t
@@ -395,16 +395,16 @@ static MagickBooleanType WriteFLIFImage(const ImageInfo *image_info,
MagickOffsetType
scene;
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*magick_restrict qc;
- register unsigned short
+ unsigned short
*magick_restrict qs;
size_t
diff --git a/coders/flif.h b/coders/flif.h
index ef51e439e..56e20bc13 100644
--- a/coders/flif.h
+++ b/coders/flif.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/fpx.c b/coders/fpx.c
index e5dc10576..841e0d0f7 100644
--- a/coders/fpx.c
+++ b/coders/fpx.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -147,14 +147,14 @@ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception)
Quantum
index;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*a,
*b,
*g,
@@ -790,10 +790,10 @@ static MagickBooleanType WriteFPXImage(const ImageInfo *image_info,Image *image,
QuantumType
quantum_type;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/fpx.h b/coders/fpx.h
index 3c1fa09a3..630e8b120 100644
--- a/coders/fpx.h
+++ b/coders/fpx.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/ghostscript-private.h b/coders/ghostscript-private.h
index 8f48be10d..66eff852b 100644
--- a/coders/ghostscript-private.h
+++ b/coders/ghostscript-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -58,6 +58,24 @@ static double GhostscriptVersion(const GhostInfo *ghost_info)
}
#endif
+static inline MagickBooleanType ExecuteGhostscriptCommand(
+ const MagickBooleanType verbose,const char *command,char *message,
+ ExceptionInfo *exception)
+{
+ int
+ status;
+
+ status=ExternalDelegateCommand(MagickFalse,verbose,command,message,
+ exception);
+ if (status == 0)
+ return(MagickTrue);
+ if (status < 0)
+ return(MagickFalse);
+ (void) ThrowMagickException(exception,GetMagickModule(),DelegateError,
+ "FailedToExecuteCommand","`%s' (%d)",command,status);
+ return(MagickFalse);
+}
+
static inline MagickBooleanType InvokeGhostscriptDelegate(
const MagickBooleanType verbose,const char *command,char *message,
ExceptionInfo *exception)
@@ -79,19 +97,6 @@ static inline MagickBooleanType InvokeGhostscriptDelegate(
} \
}
-#define ExecuteGhostscriptCommand(command,status) \
-{ \
- status=ExternalDelegateCommand(MagickFalse,verbose,command,message, \
- exception); \
- if (status == 0) \
- return(MagickTrue); \
- if (status < 0) \
- return(MagickFalse); \
- (void) ThrowMagickException(exception,GetMagickModule(),DelegateError, \
- "FailedToExecuteCommand","`%s' (%d)",command,status); \
- return(MagickFalse); \
-}
-
char
**argv,
*errors;
@@ -109,7 +114,7 @@ static inline MagickBooleanType InvokeGhostscriptDelegate(
argc,
code;
- register ssize_t
+ ssize_t
i;
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
@@ -135,7 +140,7 @@ static inline MagickBooleanType InvokeGhostscriptDelegate(
ghost_info_struct.revision=(int (*)(gsapi_revision_t *,int)) gsapi_revision;
#endif
if (ghost_info == (GhostInfo *) NULL)
- ExecuteGhostscriptCommand(command,status);
+ return(ExecuteGhostscriptCommand(verbose,command,message,exception));
if (verbose != MagickFalse)
{
(void) fprintf(stdout,"[ghostscript library %.2f]",
@@ -147,7 +152,7 @@ static inline MagickBooleanType InvokeGhostscriptDelegate(
errors=(char *) NULL;
status=(ghost_info->new_instance)(&interpreter,(void *) &errors);
if (status < 0)
- ExecuteGhostscriptCommand(command,status);
+ return(ExecuteGhostscriptCommand(verbose,command,message,exception));
code=0;
argv=StringToArgv(command,&argc);
if (argv == (char **) NULL)
@@ -226,7 +231,7 @@ static inline void ReadGhostScriptXMPProfile(MagickByteBuffer *buffer,
found_end,
status;
- register char
+ char
*p;
size_t
diff --git a/coders/gif.c b/coders/gif.c
index 7ebb3592c..68f892d93 100644
--- a/coders/gif.c
+++ b/coders/gif.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -202,7 +202,7 @@ static LZWInfo *AcquireLZWInfo(Image *image,const size_t data_size)
LZWInfo
*lzw_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -267,7 +267,7 @@ static inline int GetNextLZWCode(LZWInfo *lzw_info,const size_t bits)
int
code;
- register ssize_t
+ ssize_t
i;
size_t
@@ -430,10 +430,10 @@ static MagickBooleanType DecodeImage(Image *image,const ssize_t opacity,
offset=0;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueAuthenticPixels(image,0,offset,image->columns,1,exception);
@@ -654,10 +654,10 @@ static MagickBooleanType EncodeImage(const ImageInfo *image_info,Image *image,
waiting_code=0;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,offset,image->columns,1,exception);
@@ -978,10 +978,10 @@ static Image *ReadGIFImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -1526,10 +1526,10 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image,
RectangleInfo
page;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -1729,7 +1729,7 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image,
value=GetImageProperty(image,"comment",exception);
if (value != (const char *) NULL)
{
- register const char
+ const char
*p;
size_t
diff --git a/coders/gif.h b/coders/gif.h
index 597eb1180..94a704daa 100644
--- a/coders/gif.h
+++ b/coders/gif.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/gradient.c b/coders/gradient.c
index f8eaefab4..448bcdfcd 100644
--- a/coders/gradient.c
+++ b/coders/gradient.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -104,10 +104,10 @@ static Image *ReadXCImage(const ImageInfo *image_info,ExceptionInfo *exception)
PixelInfo
pixel;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -196,7 +196,7 @@ static Image *ReadGRADIENTImage(const ImageInfo *image_info,
(void) CopyMagickString(stop_color,"black",MagickPathExtent);
if (*image_info->filename != '\0')
{
- register char
+ char
*p;
(void) CopyMagickString(start_color,image_info->filename,
diff --git a/coders/gradient.h b/coders/gradient.h
index 73e20f0cb..e26d902f9 100644
--- a/coders/gradient.h
+++ b/coders/gradient.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/gray.c b/coders/gray.c
index c4643f353..8c33b4713 100644
--- a/coders/gray.c
+++ b/coders/gray.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -119,7 +119,7 @@ static Image *ReadGRAYImage(const ImageInfo *image_info,
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
size_t
@@ -227,13 +227,13 @@ static Image *ReadGRAYImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -306,13 +306,13 @@ static Image *ReadGRAYImage(const ImageInfo *image_info,
{
for (i=0; i < (ssize_t) (image->alpha_trait != UndefinedPixelTrait ? 4 : 3); i++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -387,13 +387,13 @@ static Image *ReadGRAYImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -441,13 +441,13 @@ static Image *ReadGRAYImage(const ImageInfo *image_info,
{
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -532,13 +532,13 @@ static Image *ReadGRAYImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -605,13 +605,13 @@ static Image *ReadGRAYImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -870,7 +870,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -898,7 +898,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -934,7 +934,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -956,7 +956,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info,
{
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -998,7 +998,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1027,7 +1027,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/gray.h b/coders/gray.h
index 2b08acd2f..a0833faca 100644
--- a/coders/gray.h
+++ b/coders/gray.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/hald.c b/coders/hald.c
index b18e6dce5..492fdad16 100644
--- a/coders/hald.c
+++ b/coders/hald.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -138,7 +138,7 @@ static Image *ReadHALDImage(const ImageInfo *image_info,
green,
red;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
diff --git a/coders/hald.h b/coders/hald.h
index 3d062b46f..df691e124 100644
--- a/coders/hald.h
+++ b/coders/hald.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/hdr.c b/coders/hdr.c
index a40744c20..945426010 100644
--- a/coders/hdr.c
+++ b/coders/hdr.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -153,10 +153,10 @@ static Image *ReadHDRImage(const ImageInfo *image_info,ExceptionInfo *exception)
status,
value_expected;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
@@ -197,14 +197,14 @@ static Image *ReadHDRImage(const ImageInfo *image_info,ExceptionInfo *exception)
image=DestroyImage(image);
return((Image *) NULL);
}
- while (isgraph(c) && (image->columns == 0) && (image->rows == 0))
+ while (isgraph((int) ((unsigned char) c)) && (image->columns == 0) && (image->rows == 0))
{
if (c == (int) '#')
{
char
*comment;
- register char
+ char
*p;
size_t
@@ -240,11 +240,11 @@ static Image *ReadHDRImage(const ImageInfo *image_info,ExceptionInfo *exception)
c=ReadBlobByte(image);
}
else
- if (isalnum(c) == MagickFalse)
+ if (isalnum((int) ((unsigned char) c)) == 0)
c=ReadBlobByte(image);
else
{
- register char
+ char
*p;
/*
@@ -256,10 +256,10 @@ static Image *ReadHDRImage(const ImageInfo *image_info,ExceptionInfo *exception)
if ((size_t) (p-keyword) < (MagickPathExtent-1))
*p++=c;
c=ReadBlobByte(image);
- } while (isalnum(c) || (c == '_'));
+ } while (isalnum((int) ((unsigned char) c)) || (c == '_'));
*p='\0';
value_expected=MagickFalse;
- while ((isspace(c) != 0) || (c == '='))
+ while ((isspace((int) ((unsigned char) c)) != 0) || (c == '='))
{
if (c == '=')
value_expected=MagickTrue;
@@ -371,7 +371,7 @@ static Image *ReadHDRImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
}
if ((image->columns == 0) && (image->rows == 0))
- while (isspace(c) != 0)
+ while (isspace((int) ((unsigned char) c)) != 0)
c=ReadBlobByte(image);
}
if ((LocaleCompare(format,"32-bit_rle_rgbe") != 0) &&
@@ -424,7 +424,7 @@ static Image *ReadHDRImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
else
{
- register unsigned char
+ unsigned char
*p;
p=pixels;
@@ -598,7 +598,7 @@ static size_t HDRWriteRunlengthPixels(Image *image,unsigned char *pixels)
{
#define MinimumRunlength 4
- register size_t
+ size_t
p,
q;
@@ -670,10 +670,10 @@ static MagickBooleanType WriteHDRImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
diff --git a/coders/hdr.h b/coders/hdr.h
index aeaff7c35..b8d9047a3 100644
--- a/coders/hdr.h
+++ b/coders/hdr.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/heic.c b/coders/heic.c
index 56273315e..7910247ca 100644
--- a/coders/heic.c
+++ b/coders/heic.c
@@ -22,7 +22,7 @@
% %
% Copyright 2017-2018 YANDEX LLC. %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -126,7 +126,8 @@ static MagickBooleanType
% o exception: return any errors or warnings in this structure.
%
*/
-static MagickBooleanType IsHeifSuccess(struct heif_error *error,Image *image,
+
+static MagickBooleanType IsHeifSuccess(Image *image,struct heif_error *error,
ExceptionInfo *exception)
{
if (error->code == 0)
@@ -140,6 +141,9 @@ static MagickBooleanType ReadHEICColorProfile(Image *image,
size_t
length;
+ /*
+ Read color profile.
+ */
#if LIBHEIF_NUMERIC_VERSION >= 0x01040000
length=heif_image_handle_get_raw_color_profile_size(image_handle);
if (length > 0)
@@ -147,9 +151,6 @@ static MagickBooleanType ReadHEICColorProfile(Image *image,
unsigned char
*color_buffer;
- /*
- Read color profile.
- */
if ((MagickSizeType) length > GetBlobSize(image))
ThrowBinaryException(CorruptImageError,"InsufficientImageDataInFile",
image->filename);
@@ -189,6 +190,9 @@ static MagickBooleanType ReadHEICExifProfile(Image *image,
int
count;
+ /*
+ Read Exif profile.
+ */
count=heif_image_handle_get_list_of_metadata_block_IDs(image_handle,"Exif",
&exif_id,1);
if (count > 0)
@@ -199,9 +203,6 @@ static MagickBooleanType ReadHEICExifProfile(Image *image,
unsigned char
*exif_buffer;
- /*
- Read Exif profile.
- */
exif_size=heif_image_handle_get_metadata_size(image_handle,exif_id);
if ((MagickSizeType) exif_size > GetBlobSize(image))
ThrowBinaryException(CorruptImageError,"InsufficientImageDataInFile",
@@ -220,8 +221,7 @@ static MagickBooleanType ReadHEICExifProfile(Image *image,
*profile;
/*
- The first 4 byte should be skipped since they indicate the
- offset to the start of the TIFF header of the Exif data.
+ Skip first 4 bytes, the offset to the TIFF header.
*/
profile=(StringInfo*) NULL;
if (exif_size > 8)
@@ -253,14 +253,20 @@ static inline MagickBooleanType HEICSkipImage(const ImageInfo *image_info,
}
static MagickBooleanType ReadHEICImageByID(const ImageInfo *image_info,
- Image *image,struct heif_context *heif_context,heif_item_id image_id,
+ Image *image,struct heif_image_handle *image_handle,
ExceptionInfo *exception)
{
+ const uint8_t
+ *p_y,
+ *p_cb,
+ *p_cr,
+ *p_a;
+
int
- stride_y,
- stride_cb,
- stride_cr,
- stride_a;
+ stride_y = 0,
+ stride_cb = 0,
+ stride_cr = 0,
+ stride_a = 0;
MagickBooleanType
preserve_orientation,
@@ -278,65 +284,36 @@ static MagickBooleanType ReadHEICImageByID(const ImageInfo *image_info,
struct heif_image
*heif_image;
- struct heif_image_handle
- *image_handle;
-
- const uint8_t
- *p_y,
- *p_cb,
- *p_cr,
- *p_a;
-
- error=heif_context_get_image_handle(heif_context,image_id,&image_handle);
- if (IsHeifSuccess(&error,image,exception) == MagickFalse)
- return(MagickFalse);
- if (ReadHEICColorProfile(image,image_handle,exception) == MagickFalse)
- {
- heif_image_handle_release(image_handle);
- return(MagickFalse);
- }
- if (ReadHEICExifProfile(image,image_handle,exception) == MagickFalse)
- {
- heif_image_handle_release(image_handle);
- return(MagickFalse);
- }
/*
- Set image size.
+ Read HEIC image from container.
*/
image->columns=(size_t) heif_image_handle_get_width(image_handle);
image->rows=(size_t) heif_image_handle_get_height(image_handle);
+ image->depth=8;
#if LIBHEIF_NUMERIC_VERSION > 0x01040000
image->depth=(size_t) heif_image_handle_get_luma_bits_per_pixel(image_handle);
-#else
- image->depth=8;
#endif
+ image->colorspace=YCbCrColorspace;
if (heif_image_handle_has_alpha_channel(image_handle))
image->alpha_trait=BlendPixelTrait;
preserve_orientation=IsStringTrue(GetImageOption(image_info,
"heic:preserve-orientation"));
if (preserve_orientation == MagickFalse)
(void) SetImageProperty(image,"exif:Orientation","1",exception);
+ if (ReadHEICColorProfile(image,image_handle,exception) == MagickFalse)
+ return(MagickFalse);
+ if (ReadHEICExifProfile(image,image_handle,exception) == MagickFalse)
+ return(MagickFalse);
if (image_info->ping != MagickFalse)
- {
- image->colorspace=YCbCrColorspace;
- heif_image_handle_release(image_handle);
- return(MagickTrue);
- }
+ return(MagickTrue);
if (HEICSkipImage(image_info,image) != MagickFalse)
- {
- heif_image_handle_release(image_handle);
- return(MagickTrue);
- }
+ return(MagickTrue);
status=SetImageExtent(image,image->columns,image->rows,exception);
if (status == MagickFalse)
- {
- heif_image_handle_release(image_handle);
- return(MagickFalse);
- }
+ return(MagickFalse);
/*
- Copy HEIF image into ImageMagick data structures.
+ Convert HEIC format to ImageMagick YCrCb image.
*/
- (void) SetImageColorspace(image,YCbCrColorspace,exception);
decode_options=heif_decoding_options_alloc();
#if LIBHEIF_NUMERIC_VERSION > 0x01070000
decode_options->convert_hdr_to_8bit=1;
@@ -346,28 +323,20 @@ static MagickBooleanType ReadHEICImageByID(const ImageInfo *image_info,
error=heif_decode_image(image_handle,&heif_image,heif_colorspace_YCbCr,
heif_chroma_420,decode_options);
heif_decoding_options_free(decode_options);
- if (IsHeifSuccess(&error,image,exception) == MagickFalse)
- {
- heif_image_handle_release(image_handle);
- return(MagickFalse);
- }
- /*
- Correct the width and height of the image.
- */
+ if (IsHeifSuccess(image,&error,exception) == MagickFalse)
+ return(MagickFalse);
image->columns=(size_t) heif_image_get_width(heif_image,heif_channel_Y);
image->rows=(size_t) heif_image_get_height(heif_image,heif_channel_Y);
status=SetImageExtent(image,image->columns,image->rows,exception);
if (status == MagickFalse)
{
heif_image_release(heif_image);
- heif_image_handle_release(image_handle);
return(MagickFalse);
}
p_y=heif_image_get_plane_readonly(heif_image,heif_channel_Y,&stride_y);
p_cb=heif_image_get_plane_readonly(heif_image,heif_channel_Cb,&stride_cb);
p_cr=heif_image_get_plane_readonly(heif_image,heif_channel_Cr,&stride_cr);
p_a=(const uint8_t *) NULL;
- stride_a=0;
if (image->alpha_trait != UndefinedPixelTrait)
p_a=heif_image_get_plane_readonly(heif_image,heif_channel_Alpha,&stride_a);
for (y=0; y < (ssize_t) image->rows; y++)
@@ -375,7 +344,7 @@ static MagickBooleanType ReadHEICImageByID(const ImageInfo *image_info,
Quantum
*q;
- register ssize_t
+ ssize_t
x;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -383,22 +352,21 @@ static MagickBooleanType ReadHEICImageByID(const ImageInfo *image_info,
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- SetPixelRed(image,ScaleCharToQuantum((unsigned char) p_y[y*
- stride_y+x]),q);
- SetPixelGreen(image,ScaleCharToQuantum((unsigned char) p_cb[(y/2)*
- stride_cb+x/2]),q);
- SetPixelBlue(image,ScaleCharToQuantum((unsigned char) p_cr[(y/2)*
- stride_cr+x/2]),q);
+ SetPixelRed(image,ScaleCharToQuantum((unsigned char)
+ p_y[y*stride_y+x]),q);
+ SetPixelGreen(image,ScaleCharToQuantum((unsigned char)
+ p_cb[(y/2)*stride_cb+x/2]),q);
+ SetPixelBlue(image,ScaleCharToQuantum((unsigned char)
+ p_cr[(y/2)*stride_cr+x/2]),q);
if (p_a != (const uint8_t *) NULL)
- SetPixelAlpha(image,ScaleCharToQuantum((unsigned char) p_a[y*
- stride_a+x]),q);
+ SetPixelAlpha(image,ScaleCharToQuantum((unsigned char)
+ p_a[y*stride_a+x]),q);
q+=GetPixelChannels(image);
}
if (SyncAuthenticPixels(image,exception) == MagickFalse)
break;
}
heif_image_release(heif_image);
- heif_image_handle_release(image_handle);
return(MagickTrue);
}
@@ -428,6 +396,9 @@ static Image *ReadHEICImage(const ImageInfo *image_info,
struct heif_error
error;
+ struct heif_image_handle
+ *image_handle;
+
void
*file_data;
@@ -445,7 +416,7 @@ static Image *ReadHEICImage(const ImageInfo *image_info,
status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
if (status == MagickFalse)
return(DestroyImageList(image));
- if (GetBlobSize(image) > (MagickSizeType) SSIZE_MAX)
+ if (GetBlobSize(image) > (MagickSizeType) LONG_MAX)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
length=(size_t) GetBlobSize(image);
file_data=AcquireMagickMemory(length);
@@ -457,39 +428,48 @@ static Image *ReadHEICImage(const ImageInfo *image_info,
ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
}
/*
- Decode HEIF file
+ Decode HEIF image.
*/
heif_context=heif_context_alloc();
error=heif_context_read_from_memory_without_copy(heif_context,file_data,
length,NULL);
- if (IsHeifSuccess(&error,image,exception) == MagickFalse)
+ if (IsHeifSuccess(image,&error,exception) == MagickFalse)
{
heif_context_free(heif_context);
file_data=RelinquishMagickMemory(file_data);
return(DestroyImageList(image));
}
error=heif_context_get_primary_image_ID(heif_context,&primary_image_id);
- if (IsHeifSuccess(&error,image,exception) == MagickFalse)
+ if (IsHeifSuccess(image,&error,exception) == MagickFalse)
+ {
+ heif_context_free(heif_context);
+ file_data=RelinquishMagickMemory(file_data);
+ return(DestroyImageList(image));
+ }
+ error=heif_context_get_image_handle(heif_context,primary_image_id,
+ &image_handle);
+ if (IsHeifSuccess(image,&error,exception) == MagickFalse)
{
heif_context_free(heif_context);
file_data=RelinquishMagickMemory(file_data);
return(DestroyImageList(image));
}
- status=ReadHEICImageByID(image_info,image,heif_context,primary_image_id,
- exception);
+ status=ReadHEICImageByID(image_info,image,image_handle,exception);
image_ids=(heif_item_id *) NULL;
count=(size_t) heif_context_get_number_of_top_level_images(heif_context);
if ((status != MagickFalse) && (count > 1))
{
- register size_t
+ size_t
i;
image_ids=(heif_item_id *) AcquireQuantumMemory((size_t) count,
sizeof(*image_ids));
if (image_ids == (heif_item_id *) NULL)
{
+ heif_image_handle_release(image_handle);
heif_context_free(heif_context);
- ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+ file_data=RelinquishMagickMemory(file_data);
+ return(DestroyImageList(image));
}
(void) heif_context_get_list_of_top_level_image_IDs(heif_context,
image_ids,(int) count);
@@ -507,8 +487,14 @@ static Image *ReadHEICImage(const ImageInfo *image_info,
break;
}
image=SyncNextImageInList(image);
- status=ReadHEICImageByID(image_info,image,heif_context,image_ids[i],
- exception);
+ error=heif_context_get_image_handle(heif_context,primary_image_id,
+ &image_handle);
+ if (IsHeifSuccess(image,&error,exception) == MagickFalse)
+ {
+ status=MagickFalse;
+ break;
+ }
+ status=ReadHEICImageByID(image_info,image,image_handle,exception);
if (status == MagickFalse)
break;
if (image_info->number_scenes != 0)
@@ -516,15 +502,54 @@ static Image *ReadHEICImage(const ImageInfo *image_info,
break;
}
}
+ heif_image_handle_release(image_handle);
+ error=heif_context_get_image_handle(heif_context,primary_image_id,
+ &image_handle);
+ if (IsHeifSuccess(image,&error,exception) == MagickFalse)
+ {
+ heif_context_free(heif_context);
+ file_data=RelinquishMagickMemory(file_data);
+ return(DestroyImageList(image));
+ }
+ if (heif_image_handle_has_depth_image(image_handle) != 0)
+ {
+ heif_item_id
+ depth_id;
+
+ int
+ number_images;
+
+ /*
+ Read depth image.
+ */
+ number_images=heif_image_handle_get_list_of_depth_image_IDs(image_handle,
+ &depth_id,1);
+ if (number_images > 0)
+ {
+ struct heif_image_handle
+ *depth_handle;
+
+ error=heif_image_handle_get_depth_image_handle(image_handle,depth_id,
+ &depth_handle);
+ if (IsHeifSuccess(image,&error,exception) != MagickFalse)
+ {
+ AcquireNextImage(image_info,image,exception);
+ if (GetNextImageInList(image) == (Image *) NULL)
+ status=MagickFalse;
+ image=SyncNextImageInList(image);
+ status=ReadHEICImageByID(image_info,image,depth_handle,
+ exception);
+ heif_image_handle_release(depth_handle);
+ }
+ }
+ }
+ heif_image_handle_release(image_handle);
if (image_ids != (heif_item_id *) NULL)
(void) RelinquishMagickMemory(image_ids);
heif_context_free(heif_context);
file_data=RelinquishMagickMemory(file_data);
if (status == MagickFalse)
return(DestroyImageList(image));
- /*
- Change image colorspace if it contains a color profile.
- */
image=GetFirstImageInList(image);
profile=GetImageProfile(image,"icc");
if (profile != (const StringInfo *) NULL)
@@ -532,9 +557,10 @@ static Image *ReadHEICImage(const ImageInfo *image_info,
Image
*next;
- next=image;
- while (next != (Image *) NULL)
- {
+ /*
+ Change image colorspace if it contains a color profile.
+ */
+ for (next=image; next != (Image *) NULL; next=GetNextImageInList(next))
if (HEICSkipImage(image_info,next) != MagickFalse)
{
if (image_info->ping == MagickFalse)
@@ -542,8 +568,6 @@ static Image *ReadHEICImage(const ImageInfo *image_info,
else
next->colorspace=sRGBColorspace;
}
- next=GetNextImageInList(next);
- }
}
return(image);
}
@@ -736,7 +760,7 @@ static void WriteProfile(struct heif_context *context,Image *image,
const StringInfo
*profile;
- register ssize_t
+ ssize_t
i;
size_t
@@ -773,8 +797,8 @@ static void WriteProfile(struct heif_context *context,Image *image,
image->filename);
length=65533L;
}
- (void) heif_context_add_exif_metadata(context,image_handle,
- (void*) GetStringInfoDatum(profile),(int) length);
+ (void) heif_context_add_exif_metadata(context,image_handle,
+ (void*) GetStringInfoDatum(profile),(int) length);
}
if (LocaleCompare(name,"XMP") == 0)
{
@@ -828,20 +852,17 @@ static struct heif_error heif_write_func(struct heif_context *context,
static MagickBooleanType WriteHEICImageYCbCr(Image *image,
struct heif_image *heif_image,ExceptionInfo *exception)
{
+ int
+ p_y,
+ p_cb,
+ p_cr;
+
MagickBooleanType
status;
ssize_t
y;
- const Quantum
- *p;
-
- int
- p_y,
- p_cb,
- p_cr;
-
struct heif_error
error;
@@ -851,22 +872,21 @@ static MagickBooleanType WriteHEICImageYCbCr(Image *image,
*q_cr;
status=MagickTrue;
-
error=heif_image_add_plane(heif_image,heif_channel_Y,(int) image->columns,
(int) image->rows,8);
- status=IsHeifSuccess(&error,image,exception);
+ status=IsHeifSuccess(image,&error,exception);
if (status == MagickFalse)
- return status;
+ return(status);
error=heif_image_add_plane(heif_image,heif_channel_Cb,
((int) image->columns+1)/2,((int) image->rows+1)/2,8);
- status=IsHeifSuccess(&error,image,exception);
+ status=IsHeifSuccess(image,&error,exception);
if (status == MagickFalse)
- return status;
+ return(status);
error=heif_image_add_plane(heif_image,heif_channel_Cr,
((int) image->columns+1)/2,((int) image->rows+1)/2,8);
- status=IsHeifSuccess(&error,image,exception);
+ status=IsHeifSuccess(image,&error,exception);
if (status == MagickFalse)
- return status;
+ return(status);
q_y=heif_image_get_plane(heif_image,heif_channel_Y,&p_y);
q_cb=heif_image_get_plane(heif_image,heif_channel_Cb,&p_cb);
q_cr=heif_image_get_plane(heif_image,heif_channel_Cr,&p_cr);
@@ -875,7 +895,10 @@ static MagickBooleanType WriteHEICImageYCbCr(Image *image,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ const Quantum
+ *p;
+
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -884,7 +907,13 @@ static MagickBooleanType WriteHEICImageYCbCr(Image *image,
status=MagickFalse;
break;
}
- if ((y & 0x01) == 0)
+ if ((y & 0x01) != 0)
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ q_y[y*p_y+x]=ScaleQuantumToChar(GetPixelRed(image,p));
+ p+=GetPixelChannels(image);
+ }
+ else
for (x=0; x < (ssize_t) image->columns; x+=2)
{
q_y[y*p_y+x]=ScaleQuantumToChar(GetPixelRed(image,p));
@@ -897,12 +926,6 @@ static MagickBooleanType WriteHEICImageYCbCr(Image *image,
p+=GetPixelChannels(image);
}
}
- else
- for (x=0; x < (ssize_t) image->columns; x++)
- {
- q_y[y*p_y+x]=ScaleQuantumToChar(GetPixelRed(image,p));
- p+=GetPixelChannels(image);
- }
if (image->previous == (Image *) NULL)
{
status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
@@ -939,7 +962,7 @@ static MagickBooleanType WriteHEICImageRGBA(Image *image,
status=MagickTrue;
error=heif_image_add_plane(heif_image,heif_channel_interleaved,
(int) image->columns,(int) image->rows,8);
- status=IsHeifSuccess(&error,image,exception);
+ status=IsHeifSuccess(image,&error,exception);
if (status == MagickFalse)
return status;
plane=heif_image_get_plane(heif_image,heif_channel_interleaved,&stride);
@@ -948,7 +971,7 @@ static MagickBooleanType WriteHEICImageRGBA(Image *image,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1019,7 +1042,6 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,
heif_context=heif_context_alloc();
heif_image=(struct heif_image*) NULL;
heif_encoder=(struct heif_encoder*) NULL;
-
do
{
#if LIBHEIF_NUMERIC_VERSION >= 0x01040000
@@ -1054,7 +1076,7 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,
#endif
error=heif_context_get_encoder_for_format(heif_context,
heif_compression_HEVC,&heif_encoder);
- status=IsHeifSuccess(&error,image,exception);
+ status=IsHeifSuccess(image,&error,exception);
if (status == MagickFalse)
break;
if ((colorspace == heif_colorspace_YCbCr) &&
@@ -1067,9 +1089,9 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,
/*
Initialize HEIF encoder context.
*/
- error=heif_image_create((int) image->columns,(int) image->rows,
- colorspace,chroma,&heif_image);
- status=IsHeifSuccess(&error,image,exception);
+ error=heif_image_create((int) image->columns,(int) image->rows,colorspace,
+ chroma,&heif_image);
+ status=IsHeifSuccess(image,&error,exception);
if (status == MagickFalse)
break;
#if LIBHEIF_NUMERIC_VERSION >= 0x01040000
@@ -1091,14 +1113,14 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,
{
error=heif_encoder_set_lossy_quality(heif_encoder,(int)
image_info->quality);
- status=IsHeifSuccess(&error,image,exception);
+ status=IsHeifSuccess(image,&error,exception);
if (status == MagickFalse)
break;
}
error=heif_context_encode_image(heif_context,heif_image,heif_encoder,
(const struct heif_encoding_options *) NULL,
(struct heif_image_handle **) NULL);
- status=IsHeifSuccess(&error,image,exception);
+ status=IsHeifSuccess(image,&error,exception);
if (status == MagickFalse)
break;
#if LIBHEIF_NUMERIC_VERSION >= 0x01030000
@@ -1125,7 +1147,7 @@ static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,
WriteProfile(heif_context,image,exception);
#endif
error=heif_context_write(heif_context,&writer,image);
- status=IsHeifSuccess(&error,image,exception);
+ status=IsHeifSuccess(image,&error,exception);
if (heif_encoder != (struct heif_encoder*) NULL)
heif_encoder_release(heif_encoder);
if (heif_image != (struct heif_image*) NULL)
diff --git a/coders/heic.h b/coders/heic.h
index a61b80e37..81f1d1d60 100644
--- a/coders/heic.h
+++ b/coders/heic.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/histogram.c b/coders/histogram.c
index 1f2a31a9b..40a7198e7 100644
--- a/coders/histogram.c
+++ b/coders/histogram.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -199,14 +199,14 @@ static MagickBooleanType WriteHISTOGRAMImage(const ImageInfo *image_info,
RectangleInfo
geometry;
- register const Quantum
+ const Quantum
*p;
- register Quantum
+ Quantum
*q,
*r;
- register ssize_t
+ ssize_t
x;
size_t
@@ -295,7 +295,8 @@ static MagickBooleanType WriteHISTOGRAMImage(const ImageInfo *image_info,
break;
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
{
- y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].red-0.5);
+ y=CastDoubleToLong(ceil(histogram_image->rows-scale*
+ histogram[x].red-0.5));
r=q+y*GetPixelChannels(histogram_image);
for ( ; y < (ssize_t) histogram_image->rows; y++)
{
@@ -305,7 +306,8 @@ static MagickBooleanType WriteHISTOGRAMImage(const ImageInfo *image_info,
}
if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
{
- y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].green-0.5);
+ y=CastDoubleToLong(ceil(histogram_image->rows-scale*
+ histogram[x].green-0.5));
r=q+y*GetPixelChannels(histogram_image);
for ( ; y < (ssize_t) histogram_image->rows; y++)
{
@@ -315,7 +317,8 @@ static MagickBooleanType WriteHISTOGRAMImage(const ImageInfo *image_info,
}
if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
{
- y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].blue-0.5);
+ y=CastDoubleToLong(ceil(histogram_image->rows-scale*
+ histogram[x].blue-0.5));
r=q+y*GetPixelChannels(histogram_image);
for ( ; y < (ssize_t) histogram_image->rows; y++)
{
diff --git a/coders/histogram.h b/coders/histogram.h
index b9276dbdc..4090567aa 100644
--- a/coders/histogram.h
+++ b/coders/histogram.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/hrz.c b/coders/hrz.c
index 87f18c946..8eb010fb6 100644
--- a/coders/hrz.c
+++ b/coders/hrz.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -100,13 +100,13 @@ static Image *ReadHRZImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
ssize_t
@@ -278,14 +278,14 @@ static MagickBooleanType WriteHRZImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x,
y;
- register unsigned char
+ unsigned char
*q;
ssize_t
diff --git a/coders/hrz.h b/coders/hrz.h
index d1f502e19..9e81ea8c8 100644
--- a/coders/hrz.h
+++ b/coders/hrz.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/html.c b/coders/html.c
index 062197dc3..f305fbdae 100644
--- a/coders/html.c
+++ b/coders/html.c
@@ -18,7 +18,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -225,7 +225,7 @@ static MagickBooleanType WriteHTMLImage(const ImageInfo *image_info,
RectangleInfo
geometry;
- register char
+ char
*p;
/*
diff --git a/coders/html.h b/coders/html.h
index 2ee8de837..e6cf8d041 100644
--- a/coders/html.h
+++ b/coders/html.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/icon.c b/coders/icon.c
index 53744b3d2..2ccbc82b1 100644
--- a/coders/icon.c
+++ b/coders/icon.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -190,14 +190,14 @@ static Image *ReadICONImage(const ImageInfo *image_info,
MagickSizeType
extent;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -372,7 +372,7 @@ static Image *ReadICONImage(const ImageInfo *image_info,
}
if (image->storage_class == PseudoClass)
{
- register ssize_t
+ ssize_t
j;
unsigned char
@@ -815,7 +815,7 @@ static Image *AutoResizeImage(const Image *image,const char *option,
*images,
*resized;
- register ssize_t
+ ssize_t
i;
size_t
@@ -879,14 +879,14 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info,
offset,
scene;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
size_t
diff --git a/coders/icon.h b/coders/icon.h
index 4f494a745..a092f5392 100644
--- a/coders/icon.h
+++ b/coders/icon.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/info.c b/coders/info.c
index 4ec814337..e6bc46c5a 100644
--- a/coders/info.c
+++ b/coders/info.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/info.h b/coders/info.h
index ff2b4241b..ed0d0deac 100644
--- a/coders/info.h
+++ b/coders/info.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/inline.c b/coders/inline.c
index fb1fb9a81..c62abfbe2 100644
--- a/coders/inline.c
+++ b/coders/inline.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -101,7 +101,7 @@ static Image *ReadINLINEImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register size_t
+ size_t
i;
size_t
diff --git a/coders/inline.h b/coders/inline.h
index 9e793bc45..0cedb95a1 100644
--- a/coders/inline.h
+++ b/coders/inline.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/ipl.c b/coders/ipl.c
index 1b83116c7..8d29f365c 100644
--- a/coders/ipl.c
+++ b/coders/ipl.c
@@ -13,7 +13,7 @@
% 2008.05.07 %
% v 0.9 %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -175,7 +175,7 @@ static Image *ReadIPLImage(const ImageInfo *image_info,ExceptionInfo *exception)
Image *image;
MagickBooleanType status;
- register Quantum *q;
+ Quantum *q;
unsigned char magick[12], *pixels;
ssize_t count;
ssize_t y;
@@ -515,7 +515,7 @@ static MagickBooleanType WriteIPLImage(const ImageInfo *image_info,Image *image,
MagickOffsetType
scene;
- register const Quantum
+ const Quantum
*p;
QuantumInfo
diff --git a/coders/ipl.h b/coders/ipl.h
index c45f94b2b..308272902 100644
--- a/coders/ipl.h
+++ b/coders/ipl.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/jbig.c b/coders/jbig.c
index 7a38a9ecd..41e5e5a2b 100644
--- a/coders/jbig.c
+++ b/coders/jbig.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -124,13 +124,13 @@ static Image *ReadJBIGImage(const ImageInfo *image_info,
Quantum
index;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
ssize_t
@@ -419,13 +419,13 @@ static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info,
MemoryInfo
*pixel_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*q;
size_t
diff --git a/coders/jbig.h b/coders/jbig.h
index 25aef7728..016a7af73 100644
--- a/coders/jbig.h
+++ b/coders/jbig.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/jnx.c b/coders/jnx.c
index b53b5424e..6a160d0db 100644
--- a/coders/jnx.c
+++ b/coders/jnx.c
@@ -16,7 +16,7 @@
% July 2012 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -141,7 +141,7 @@ static Image *ReadJNXImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
/*
@@ -202,7 +202,7 @@ static Image *ReadJNXImage(const ImageInfo *image_info,ExceptionInfo *exception)
*jnx_level_info[i].copyright='\0';
if (jnx_info.version > 3)
{
- register ssize_t
+ ssize_t
j;
unsigned short
@@ -227,7 +227,7 @@ static Image *ReadJNXImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickOffsetType
offset;
- register ssize_t
+ ssize_t
j;
offset=SeekBlob(image,(MagickOffsetType) jnx_level_info[i].offset,SEEK_SET);
diff --git a/coders/jnx.h b/coders/jnx.h
index 4fef1d6d5..5482a6cd4 100644
--- a/coders/jnx.h
+++ b/coders/jnx.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/jp2.c b/coders/jp2.c
index 3dee8d920..519499212 100644
--- a/coders/jp2.c
+++ b/coders/jp2.c
@@ -17,7 +17,7 @@
% June 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -277,7 +277,7 @@ static Image *ReadJP2Image(const ImageInfo *image_info,ExceptionInfo *exception)
opj_stream_t
*jp2_stream;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -398,6 +398,7 @@ static Image *ReadJP2Image(const ImageInfo *image_info,ExceptionInfo *exception)
{
if ((jp2_image->comps[i].dx == 0) || (jp2_image->comps[i].dy == 0) ||
(jp2_image->comps[0].prec != jp2_image->comps[i].prec) ||
+ (jp2_image->comps[0].prec > 64) ||
(jp2_image->comps[0].sgnd != jp2_image->comps[i].sgnd) ||
((image->ping == MagickFalse) && (jp2_image->comps[i].data == NULL)))
{
@@ -455,10 +456,10 @@ static Image *ReadJP2Image(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -833,7 +834,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image,
opj_stream_t
*jp2_stream;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -906,7 +907,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image,
option=GetImageOption(image_info,"jp2:quality");
if (option != (const char *) NULL)
{
- register const char
+ const char
*p;
/*
@@ -944,7 +945,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image,
option=GetImageOption(image_info,"jp2:rate");
if (option != (const char *) NULL)
{
- register const char
+ const char
*p;
/*
@@ -1034,7 +1035,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
ssize_t
@@ -1050,7 +1051,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image,
double
scale;
- register int
+ int
*q;
scale=(double) (((size_t) 1UL << jp2_image->comps[i].prec)-1)/
diff --git a/coders/jp2.h b/coders/jp2.h
index 3da5ea367..edefd9eba 100644
--- a/coders/jp2.h
+++ b/coders/jp2.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/jpeg.c b/coders/jpeg.c
index 7120f5bf0..db385358b 100644
--- a/coders/jpeg.c
+++ b/coders/jpeg.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -427,10 +427,10 @@ static boolean ReadProfileData(j_decompress_ptr jpeg_info,const size_t index,
Image
*image;
- register unsigned char
+ unsigned char
*p;
- register ssize_t
+ ssize_t
i;
error_manager=(ErrorManager *) jpeg_info->client_data;
@@ -515,7 +515,7 @@ static boolean ReadICCProfile(j_decompress_ptr jpeg_info)
char
magick[13];
- register ssize_t
+ ssize_t
i;
size_t
@@ -559,7 +559,7 @@ static boolean ReadIPTCProfile(j_decompress_ptr jpeg_info)
char
magick[MagickPathExtent];
- register ssize_t
+ ssize_t
i;
size_t
@@ -643,7 +643,7 @@ static boolean ReadXmlProfile(j_decompress_ptr jpeg_info)
MagickBooleanType
status;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -762,7 +762,7 @@ static void JPEGSetImageQuality(struct jpeg_decompress_struct *jpeg_info,
qvalue,
sum;
- register ssize_t
+ ssize_t
i;
/*
@@ -947,7 +947,7 @@ static void JPEGDestroyDecompress(j_decompress_ptr jpeg_info)
ErrorManager
*error_manager;
- register size_t
+ size_t
i;
error_manager=(ErrorManager *) jpeg_info->client_data;
@@ -970,15 +970,12 @@ static MagickBooleanType JPEGSetImageProfiles(ErrorManager *error_manager)
MagickBooleanType
status;
- register unsigned char
+ unsigned char
*p;
- register ssize_t
+ ssize_t
i;
- size_t
- length;
-
StringInfo
*profile;
@@ -1063,7 +1060,7 @@ static Image *ReadJPEGImage_(const ImageInfo *image_info,
Quantum
index;
- register ssize_t
+ ssize_t
i;
struct jpeg_error_mgr
@@ -1072,7 +1069,7 @@ static Image *ReadJPEGImage_(const ImageInfo *image_info,
struct jpeg_progress_mgr
jpeg_progress;
- register JSAMPLE
+ JSAMPLE
*p;
size_t
@@ -1122,8 +1119,7 @@ static Image *ReadJPEGImage_(const ImageInfo *image_info,
{
JPEGDestroyDecompress(jpeg_info);
(void) CloseBlob(image);
- number_pixels=(MagickSizeType) image->columns*image->rows;
- if (number_pixels != 0)
+ if (exception->severity < ErrorException)
return(GetFirstImageInList(image));
return(DestroyImage(image));
}
@@ -1418,10 +1414,10 @@ static Image *ReadJPEGImage_(const ImageInfo *image_info,
scanline[0]=(JSAMPROW) jpeg_pixels;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (jpeg_read_scanlines(jpeg_info,scanline,1) != 1)
@@ -1780,7 +1776,7 @@ static QuantizationTable *GetQuantizationTable(const char *filename,
double
value;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2003,7 +1999,7 @@ static void WriteProfile(j_compress_ptr jpeg_info,Image *image,
MagickBooleanType
iptc;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2048,7 +2044,7 @@ static void WriteProfile(j_compress_ptr jpeg_info,Image *image,
}
if (LocaleCompare(name,"ICC") == 0)
{
- register unsigned char
+ unsigned char
*p;
tag_length=strlen(ICC_PROFILE);
@@ -2069,7 +2065,7 @@ static void WriteProfile(j_compress_ptr jpeg_info,Image *image,
if (((LocaleCompare(name,"IPTC") == 0) ||
(LocaleCompare(name,"8BIM") == 0)) && (iptc == MagickFalse))
{
- register unsigned char
+ unsigned char
*p;
size_t
@@ -2148,13 +2144,13 @@ static char **SamplingFactorToList(const char *text)
char
**textlist;
- register char
+ char
*q;
- register const char
+ const char
*p;
- register ssize_t
+ ssize_t
i;
if (text == (char *) NULL)
@@ -2219,10 +2215,10 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info,
MemoryInfo
*memory_info;
- register JSAMPLE
+ JSAMPLE
*q;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2812,10 +2808,10 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info,
(jpeg_info->in_color_space == JCS_YCbCr))
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2839,10 +2835,10 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info,
if (jpeg_info->in_color_space == JCS_GRAYSCALE)
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2864,10 +2860,10 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info,
else
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2900,10 +2896,10 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info,
if (jpeg_info->in_color_space == JCS_GRAYSCALE)
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2927,10 +2923,10 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info,
(jpeg_info->in_color_space == JCS_YCbCr))
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2953,10 +2949,10 @@ static MagickBooleanType WriteJPEGImage_(const ImageInfo *image_info,
else
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/jpeg.h b/coders/jpeg.h
index f7dd41fe2..c16a62c1e 100644
--- a/coders/jpeg.h
+++ b/coders/jpeg.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/json.c b/coders/json.c
index d61c3d316..7eb67180e 100644
--- a/coders/json.c
+++ b/coders/json.c
@@ -17,7 +17,7 @@
% January 2014 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -193,10 +193,10 @@ static void JSONFormatLocaleFile(FILE *file,const char *format,
char
*escaped_json;
- register char
+ char
*q;
- register const char
+ const char
*p;
size_t
@@ -319,7 +319,7 @@ static ChannelStatistics *GetLocationStatistics(const Image *image,
ChannelStatistics
*channel_statistics;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -354,10 +354,10 @@ static ChannelStatistics *GetLocationStatistics(const Image *image,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -365,7 +365,7 @@ static ChannelStatistics *GetLocationStatistics(const Image *image,
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
if (GetPixelReadMask(image,p) <= (QuantumRange/2))
@@ -573,7 +573,7 @@ static ssize_t PrintChannelLocations(FILE *file,const Image *image,
n=0;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
ssize_t
@@ -620,7 +620,7 @@ static ssize_t PrintChannelMoments(FILE *file,const PixelChannel channel,
const char *name,const MagickBooleanType separator,
const ChannelMoments *channel_moments)
{
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -658,7 +658,7 @@ static ssize_t PrintChannelMoments(FILE *file,const PixelChannel channel,
static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
const ChannelPerceptualHash *channel_phash)
{
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -675,7 +675,7 @@ static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
(void) FormatLocaleFile(file,"],\n");
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- register ssize_t
+ ssize_t
j;
PixelChannel channel = GetPixelChannelChannel(image,i);
@@ -685,7 +685,7 @@ static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
n=FormatLocaleFile(file," \"Channel%.20g\": {\n",(double) channel);
for (j=0; j < MaximumNumberOfPerceptualHashes; j++)
{
- register ssize_t
+ ssize_t
k;
n+=FormatLocaleFile(file," \"PH%.20g\": [",(double) j+1);
@@ -754,7 +754,7 @@ static void EncodeIptcProfile(FILE *file,const StringInfo *profile)
record,
sentinel;
- register ssize_t
+ ssize_t
i,
j,
k;
@@ -954,10 +954,10 @@ static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
MagickBooleanType
ping;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -1081,37 +1081,37 @@ static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
return(MagickFalse);
(void) FormatLocaleFile(file," \"channel%s\": {\n",locate);
if (image->alpha_trait != UndefinedPixelTrait)
- (void) PrintChannelLocations(file,image,AlphaPixelChannel,"Alpha",
+ (void) PrintChannelLocations(file,image,AlphaPixelChannel,"alpha",
type,max_locations,MagickTrue,channel_statistics);
switch (image->colorspace)
{
case RGBColorspace:
default:
{
- (void) PrintChannelLocations(file,image,RedPixelChannel,"Red",
+ (void) PrintChannelLocations(file,image,RedPixelChannel,"red",
type,max_locations,MagickTrue,channel_statistics);
- (void) PrintChannelLocations(file,image,GreenPixelChannel,"Green",
+ (void) PrintChannelLocations(file,image,GreenPixelChannel,"green",
type,max_locations,MagickTrue,channel_statistics);
- (void) PrintChannelLocations(file,image,BluePixelChannel,"Blue",
+ (void) PrintChannelLocations(file,image,BluePixelChannel,"blue",
type,max_locations,MagickFalse,channel_statistics);
break;
}
case CMYKColorspace:
{
- (void) PrintChannelLocations(file,image,CyanPixelChannel,"Cyan",
+ (void) PrintChannelLocations(file,image,CyanPixelChannel,"cyan",
type,max_locations,MagickTrue,channel_statistics);
(void) PrintChannelLocations(file,image,MagentaPixelChannel,
- "Magenta",type,max_locations,MagickTrue,channel_statistics);
- (void) PrintChannelLocations(file,image,YellowPixelChannel,"Yellow",
+ "magenta",type,max_locations,MagickTrue,channel_statistics);
+ (void) PrintChannelLocations(file,image,YellowPixelChannel,"yellow",
type,max_locations,MagickTrue,channel_statistics);
- (void) PrintChannelLocations(file,image,BlackPixelChannel,"Black",
+ (void) PrintChannelLocations(file,image,BlackPixelChannel,"black",
type,max_locations,MagickFalse,channel_statistics);
break;
}
case LinearGRAYColorspace:
case GRAYColorspace:
{
- (void) PrintChannelLocations(file,image,GrayPixelChannel,"Gray",
+ (void) PrintChannelLocations(file,image,GrayPixelChannel,"gray",
type,max_locations,MagickFalse,channel_statistics);
break;
}
@@ -1210,37 +1210,37 @@ static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
}
(void) FormatLocaleFile(file," \"channelStatistics\": {\n");
if (image->alpha_trait != UndefinedPixelTrait)
- (void) PrintChannelStatistics(file,AlphaPixelChannel,"Alpha",1.0/scale,
+ (void) PrintChannelStatistics(file,AlphaPixelChannel,"alpha",1.0/scale,
MagickTrue,channel_statistics);
switch (image->colorspace)
{
case RGBColorspace:
default:
{
- (void) PrintChannelStatistics(file,RedPixelChannel,"Red",1.0/scale,
+ (void) PrintChannelStatistics(file,RedPixelChannel,"red",1.0/scale,
MagickTrue,channel_statistics);
- (void) PrintChannelStatistics(file,GreenPixelChannel,"Green",1.0/
+ (void) PrintChannelStatistics(file,GreenPixelChannel,"green",1.0/
scale,MagickTrue,channel_statistics);
- (void) PrintChannelStatistics(file,BluePixelChannel,"Blue",1.0/scale,
+ (void) PrintChannelStatistics(file,BluePixelChannel,"blue",1.0/scale,
MagickFalse,channel_statistics);
break;
}
case CMYKColorspace:
{
- (void) PrintChannelStatistics(file,CyanPixelChannel,"Cyan",1.0/scale,
+ (void) PrintChannelStatistics(file,CyanPixelChannel,"cyan",1.0/scale,
MagickTrue,channel_statistics);
- (void) PrintChannelStatistics(file,MagentaPixelChannel,"Magenta",1.0/
+ (void) PrintChannelStatistics(file,MagentaPixelChannel,"magenta",1.0/
scale,MagickTrue,channel_statistics);
- (void) PrintChannelStatistics(file,YellowPixelChannel,"Yellow",1.0/
+ (void) PrintChannelStatistics(file,YellowPixelChannel,"yellow",1.0/
scale,MagickTrue,channel_statistics);
- (void) PrintChannelStatistics(file,BlackPixelChannel,"Black",1.0/
+ (void) PrintChannelStatistics(file,BlackPixelChannel,"black",1.0/
scale,MagickFalse,channel_statistics);
break;
}
case LinearGRAYColorspace:
case GRAYColorspace:
{
- (void) PrintChannelStatistics(file,GrayPixelChannel,"Gray",1.0/scale,
+ (void) PrintChannelStatistics(file,GrayPixelChannel,"gray",1.0/scale,
MagickFalse,channel_statistics);
break;
}
@@ -1253,37 +1253,37 @@ static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
{
(void) FormatLocaleFile(file," \"channelMoments\": {\n");
if (image->alpha_trait != UndefinedPixelTrait)
- (void) PrintChannelMoments(file,AlphaPixelChannel,"Alpha",MagickTrue,
+ (void) PrintChannelMoments(file,AlphaPixelChannel,"alpha",MagickTrue,
channel_moments);
switch (image->colorspace)
{
case RGBColorspace:
default:
{
- (void) PrintChannelMoments(file,RedPixelChannel,"Red",MagickTrue,
+ (void) PrintChannelMoments(file,RedPixelChannel,"red",MagickTrue,
channel_moments);
- (void) PrintChannelMoments(file,GreenPixelChannel,"Green",MagickTrue,
+ (void) PrintChannelMoments(file,GreenPixelChannel,"green",MagickTrue,
channel_moments);
- (void) PrintChannelMoments(file,BluePixelChannel,"Blue",MagickFalse,
+ (void) PrintChannelMoments(file,BluePixelChannel,"blue",MagickFalse,
channel_moments);
break;
}
case CMYKColorspace:
{
- (void) PrintChannelMoments(file,CyanPixelChannel,"Cyan",MagickTrue,
+ (void) PrintChannelMoments(file,CyanPixelChannel,"cyan",MagickTrue,
channel_moments);
- (void) PrintChannelMoments(file,MagentaPixelChannel,"Magenta",
+ (void) PrintChannelMoments(file,MagentaPixelChannel,"magenta",
MagickTrue,channel_moments);
- (void) PrintChannelMoments(file,YellowPixelChannel,"Yellow",
+ (void) PrintChannelMoments(file,YellowPixelChannel,"yellow",
MagickTrue,channel_moments);
- (void) PrintChannelMoments(file,BlackPixelChannel,"Black",
+ (void) PrintChannelMoments(file,BlackPixelChannel,"black",
MagickFalse,channel_moments);
break;
}
case LinearGRAYColorspace:
case GRAYColorspace:
{
- (void) PrintChannelMoments(file,GrayPixelChannel,"Gray",MagickFalse,
+ (void) PrintChannelMoments(file,GrayPixelChannel,"gray",MagickFalse,
channel_moments);
break;
}
@@ -1304,37 +1304,37 @@ static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
{
(void) FormatLocaleFile(file," \"channelFeatures\": {\n");
if (image->alpha_trait != UndefinedPixelTrait)
- (void) PrintChannelFeatures(file,AlphaPixelChannel,"Alpha",MagickTrue,
+ (void) PrintChannelFeatures(file,AlphaPixelChannel,"alpha",MagickTrue,
channel_features);
switch (image->colorspace)
{
case RGBColorspace:
default:
{
- (void) PrintChannelFeatures(file,RedPixelChannel,"Red",MagickTrue,
+ (void) PrintChannelFeatures(file,RedPixelChannel,"red",MagickTrue,
channel_features);
- (void) PrintChannelFeatures(file,GreenPixelChannel,"Green",
+ (void) PrintChannelFeatures(file,GreenPixelChannel,"green",
MagickTrue,channel_features);
- (void) PrintChannelFeatures(file,BluePixelChannel,"Blue",MagickFalse,
+ (void) PrintChannelFeatures(file,BluePixelChannel,"blue",MagickFalse,
channel_features);
break;
}
case CMYKColorspace:
{
- (void) PrintChannelFeatures(file,CyanPixelChannel,"Cyan",MagickTrue,
+ (void) PrintChannelFeatures(file,CyanPixelChannel,"cyan",MagickTrue,
channel_features);
- (void) PrintChannelFeatures(file,MagentaPixelChannel,"Magenta",
+ (void) PrintChannelFeatures(file,MagentaPixelChannel,"magenta",
MagickTrue,channel_features);
- (void) PrintChannelFeatures(file,YellowPixelChannel,"Yellow",
+ (void) PrintChannelFeatures(file,YellowPixelChannel,"yellow",
MagickTrue,channel_features);
- (void) PrintChannelFeatures(file,BlackPixelChannel,"Black",
+ (void) PrintChannelFeatures(file,BlackPixelChannel,"black",
MagickFalse,channel_features);
break;
}
case LinearGRAYColorspace:
case GRAYColorspace:
{
- (void) PrintChannelFeatures(file,GrayPixelChannel,"Gray",MagickFalse,
+ (void) PrintChannelFeatures(file,GrayPixelChannel,"gray",MagickFalse,
channel_features);
break;
}
@@ -1350,7 +1350,7 @@ static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
x=0;
if (image->alpha_trait != UndefinedPixelTrait)
{
- register const Quantum
+ const Quantum
*p;
p=(const Quantum *) NULL;
@@ -1381,7 +1381,7 @@ static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
}
if (image->storage_class == PseudoClass)
{
- register PixelInfo
+ PixelInfo
*magick_restrict p;
(void) FormatLocaleFile(file," \"colormapEntries\": %.20g,\n",
@@ -1502,7 +1502,7 @@ static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
ImageInfo
*image_info;
- register char
+ char
*p,
*q;
@@ -1704,7 +1704,7 @@ static MagickBooleanType WriteJSONImage(const ImageInfo *image_info,
scene;
size_t
- imageListLength;
+ number_scenes;
/*
Open output image file.
@@ -1722,7 +1722,7 @@ static MagickBooleanType WriteJSONImage(const ImageInfo *image_info,
if (file == (FILE *) NULL)
file=stdout;
scene=0;
- imageListLength=GetImageListLength(image);
+ number_scenes=GetImageListLength(image);
do
{
if (scene == 0)
@@ -1737,7 +1737,7 @@ static MagickBooleanType WriteJSONImage(const ImageInfo *image_info,
}
(void) WriteBlobString(image,",\n");
image=SyncNextImageInList(image);
- status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
+ status=SetImageProgress(image,SaveImagesTag,scene++,number_scenes);
if (status == MagickFalse)
break;
} while (image_info->adjoin != MagickFalse);
diff --git a/coders/json.h b/coders/json.h
index 1c3810da6..1ebdc5d4d 100644
--- a/coders/json.h
+++ b/coders/json.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/jxl.c b/coders/jxl.c
index 1f441e756..d3450061a 100644
--- a/coders/jxl.c
+++ b/coders/jxl.c
@@ -12,11 +12,11 @@
% %
% Read/Write JPEG XL Lossless JPEG1 Recompression %
% %
-% The JPEG XL Project %
-% September 2019 %
+% Dirk Lemstra %
+% December 2020 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -56,17 +56,70 @@
#include "MagickCore/string_.h"
#include "MagickCore/module.h"
#if defined(MAGICKCORE_JXL_DELEGATE)
-#include <brunsli/decode.h>
-#include <brunsli/encode.h>
+#include <jxl/decode.h>
+#include <jxl/encode.h>
+#endif
+
+/*
+ Typedef declarations.
+*/
+typedef struct MemoryManagerInfo
+{
+ Image
+ *image;
+
+ ExceptionInfo
+ *exception;
+} MemoryManagerInfo;
/*
Forward declarations.
*/
static MagickBooleanType
- WriteJXLImage(const ImageInfo *,Image *);
-#endif
+ WriteJXLImage(const ImageInfo *,Image *,ExceptionInfo *);
#if defined(MAGICKCORE_JXL_DELEGATE)
+static void *JXLAcquireMemory(void *opaque, size_t size)
+{
+ unsigned char
+ *data;
+
+ data=(unsigned char *) AcquireQuantumMemory(size,sizeof(*data));
+ if (data == (unsigned char *) NULL)
+ {
+ MemoryManagerInfo
+ *memory_manager_info;
+
+ memory_manager_info=(MemoryManagerInfo *) opaque;
+ (void) ThrowMagickException(memory_manager_info->exception,
+ GetMagickModule(),CoderError,"MemoryAllocationFailed","`%s'",
+ memory_manager_info->image->filename);
+ }
+ return(data);
+}
+
+static void JXLRelinquishMemory(void *magick_unused(opaque),void *address)
+{
+ magick_unreferenced(opaque);
+ (void) RelinquishMagickMemory(address);
+}
+
+static inline void JXLSetMemoryManager(JxlMemoryManager *memory_manager,
+ MemoryManagerInfo *memory_manager_info,Image *image,ExceptionInfo *exception)
+{
+ memory_manager_info->image=image;
+ memory_manager_info->exception=exception;
+ memory_manager->opaque=memory_manager_info;
+ memory_manager->alloc=JXLAcquireMemory;
+ memory_manager->free=JXLRelinquishMemory;
+}
+
+static inline void JXLSetFormat(Image *image,JxlPixelFormat *format)
+{
+ format->num_channels=(image->alpha_trait == BlendPixelTrait) ? 4 : 3;
+ format->data_type=(image->depth > 8) ? JXL_TYPE_FLOAT : JXL_TYPE_UINT8;
+}
+
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -94,84 +147,233 @@ static MagickBooleanType
% o exception: return any errors or warnings in this structure.
%
*/
-
-/*
- Typedef declarations.
-*/
-typedef struct OutBuffer
+static inline OrientationType JXLOrientationToOrientation(
+ JxlOrientation orientation)
{
- unsigned char
- *data;
-
- size_t
- size;
-} OutBuffer;
-
-static size_t AllocOutput(void* data, const uint8_t* buf, size_t count)
-{
- OutBuffer *buffer=(OutBuffer *) data;
- buffer->data=ResizeQuantumMemory(buffer->data,buffer->size+count,
- sizeof(*buffer->data));
- if (!buffer->data) return 0;
- memcpy(buffer->data+buffer->size, buf, count);
- buffer->size+=count;
- return(count);
+ switch (orientation)
+ {
+ default:
+ case JXL_ORIENT_IDENTITY:
+ return TopLeftOrientation;
+ case JXL_ORIENT_FLIP_HORIZONTAL:
+ return TopRightOrientation;
+ case JXL_ORIENT_ROTATE_180:
+ return BottomRightOrientation;
+ case JXL_ORIENT_FLIP_VERTICAL:
+ return BottomLeftOrientation;
+ case JXL_ORIENT_TRANSPOSE:
+ return LeftTopOrientation;
+ case JXL_ORIENT_ROTATE_90_CW:
+ return RightTopOrientation;
+ case JXL_ORIENT_ANTI_TRANSPOSE:
+ return RightBottomOrientation;
+ case JXL_ORIENT_ROTATE_90_CCW:
+ return LeftBottomOrientation;
+ }
}
static Image *ReadJXLImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
Image
- *temp_image,
- *result;
+ *image;
+
+ JxlPixelFormat
+ format;
+
+ JxlDecoderStatus
+ events_wanted;
+
+ JxlDecoder
+ *decoder;
+
+ JxlDecoderStatus
+ decoder_status;
+
+ JxlMemoryManager
+ memory_manager;
MagickBooleanType
status;
- OutBuffer
- b;
+ MemoryManagerInfo
+ memory_manager_info;
+
+ size_t
+ input_size;
unsigned char
- *jxl;
+ *input_buffer,
+ *output_buffer;
/*
- TODO: do we need an Image here? No pixels are needed, but OpenBlob
- needs an Image.
+ Open image file.
*/
- temp_image=AcquireImage(image_info, exception);
- status=OpenBlob(image_info,temp_image,ReadBinaryBlobMode,exception);
- jxl=NULL;
- size_t jxlsize = 0;
- if (status == MagickTrue)
+ 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);
+ }
+ JXLSetMemoryManager(&memory_manager,&memory_manager_info,image,exception);
+ decoder=JxlDecoderCreate(&memory_manager);
+ if (decoder == (JxlDecoder *) NULL)
+ ThrowReaderException(CoderError,"MemoryAllocationFailed");
+ events_wanted=JXL_DEC_BASIC_INFO;
+ if (image_info->ping == MagickFalse)
+ events_wanted|=JXL_DEC_FULL_IMAGE | JXL_DEC_COLOR_ENCODING;
+ if (JxlDecoderSubscribeEvents(decoder,events_wanted) != JXL_DEC_SUCCESS)
+ {
+ JxlDecoderDestroy(decoder);
+ ThrowReaderException(CoderError,"UnableToReadImageData");
+ }
+ input_buffer=AcquireQuantumMemory(MagickMaxBufferExtent,
+ sizeof(*input_buffer));
+ if (input_buffer == (unsigned char *) NULL)
+ {
+ JxlDecoderDestroy(decoder);
+ ThrowReaderException(CoderError,"MemoryAllocationFailed");
+ }
+ output_buffer=(unsigned char *) NULL;
+ memset(&format,0,sizeof(format));
+ input_size=0;
+ decoder_status=JXL_DEC_NEED_MORE_INPUT;
+ while ((decoder_status != JXL_DEC_SUCCESS) &&
+ (decoder_status != JXL_DEC_ERROR))
{
- jxlsize=(size_t) GetBlobSize(temp_image);
- jxl=(unsigned char *) AcquireQuantumMemory(1,jxlsize);
- size_t num_read=ReadBlob(temp_image,jxlsize,jxl);
- if (num_read != jxlsize) status=MagickFalse;
- }
- (void) DestroyImage(temp_image);
+ const uint8_t
+ *p;
- b.data=NULL;
- b.size=0;
+ size_t
+ size;
- if (status == MagickTrue)
- {
- status=DecodeBrunsli(jxlsize,jxl,&b,AllocOutput) == 1 ?
- MagickTrue : MagickFalse;
- }
- (void) RelinquishMagickMemory(jxl);
+ size=input_size;
+ p=input_buffer;
+ decoder_status=JxlDecoderProcessInput(decoder,&p,&input_size);
+ if ((input_size > 0) && ((size-input_size) > 0))
+ (void) memmove(input_buffer,input_buffer+(size-input_size),input_size);
+ switch (decoder_status)
+ {
+ case JXL_DEC_NEED_MORE_INPUT:
+ {
+ input_size+=ReadBlob(image,MagickMaxBufferExtent-input_size,
+ input_buffer+input_size);
+ if (input_size == 0)
+ {
+ decoder_status=JXL_DEC_SUCCESS;
+ ThrowMagickException(exception,GetMagickModule(),CoderError,
+ "InsufficientImageDataInFile","`%s'",image->filename);
+ break;
+ }
+ break;
+ }
+ case JXL_DEC_BASIC_INFO:
+ {
+ JxlBasicInfo
+ basic_info;
- result=NULL;
+ decoder_status=JxlDecoderGetBasicInfo(decoder,&basic_info);
+ if (decoder_status != JXL_DEC_SUCCESS)
+ break;
+ /* For now we dont support images with an animation */
+ if (basic_info.have_animation == 1)
+ {
+ ThrowMagickException(exception,GetMagickModule(),
+ MissingDelegateError,"NoDecodeDelegateForThisImageFormat",
+ "`%s'",image->filename);
+ break;
+ }
+ image->columns=basic_info.xsize;
+ image->rows=basic_info.ysize;
+ image->depth=basic_info.bits_per_sample;
+ if (basic_info.alpha_bits != 0)
+ image->alpha_trait=BlendPixelTrait;
+ image->orientation=JXLOrientationToOrientation(basic_info.orientation);
+ decoder_status=JXL_DEC_BASIC_INFO;
+ break;
+ }
+ case JXL_DEC_COLOR_ENCODING:
+ {
+ size_t
+ profile_size;
- if (status == MagickTrue)
- {
- ImageInfo* temp_info=AcquireImageInfo();
- SetImageInfoBlob(temp_info,b.data,b.size);
- result=BlobToImage(temp_info,b.data,b.size,exception);
- (void) DestroyImageInfo(temp_info);
- }
- (void) RelinquishMagickMemory(b.data);
+ StringInfo
+ *profile;
- return(result);
+ decoder_status=JxlDecoderGetICCProfileSize(decoder,&format,
+ JXL_COLOR_PROFILE_TARGET_ORIGINAL,&profile_size);
+ if (decoder_status != JXL_DEC_SUCCESS)
+ break;
+ profile=AcquireStringInfo(profile_size);
+ decoder_status=JxlDecoderGetColorAsICCProfile(decoder,&format,
+ JXL_COLOR_PROFILE_TARGET_ORIGINAL,GetStringInfoDatum(profile),
+ profile_size);
+ if (decoder_status != JXL_DEC_SUCCESS)
+ break;
+ decoder_status=JXL_DEC_COLOR_ENCODING;
+ break;
+ }
+ case JXL_DEC_NEED_IMAGE_OUT_BUFFER:
+ {
+ size_t
+ output_size;
+
+ JXLSetFormat(image,&format);
+ decoder_status=JxlDecoderImageOutBufferSize(decoder,&format,
+ &output_size);
+ if (decoder_status != JXL_DEC_SUCCESS)
+ break;
+ status=SetImageExtent(image,image->columns,image->rows,exception);
+ if (status == MagickFalse)
+ break;
+ output_buffer=AcquireQuantumMemory(output_size,sizeof(*output_buffer));
+ if (output_buffer == (unsigned char *) NULL)
+ {
+ ThrowMagickException(exception,GetMagickModule(),CoderError,
+ "MemoryAllocationFailed","`%s'",image->filename);
+ break;
+ }
+ decoder_status=JxlDecoderSetImageOutBuffer(decoder,&format,
+ output_buffer,output_size);
+ if (decoder_status != JXL_DEC_SUCCESS)
+ break;
+ decoder_status=JXL_DEC_NEED_IMAGE_OUT_BUFFER;
+ }
+ case JXL_DEC_FULL_IMAGE:
+ if (output_buffer == (unsigned char *) NULL)
+ {
+ ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
+ "UnableToReadImageData","`%s'",image->filename);
+ break;
+ }
+ status=ImportImagePixels(image,0,0,image->columns,image->rows,
+ image->alpha_trait == BlendPixelTrait ? "RGBA" : "RGB",
+ format.data_type == JXL_TYPE_FLOAT ? FloatPixel : CharPixel,
+ output_buffer,exception);
+ if (status == MagickFalse)
+ decoder_status=JXL_DEC_ERROR;
+ break;
+ case JXL_DEC_SUCCESS:
+ case JXL_DEC_ERROR:
+ break;
+ default:
+ decoder_status=JXL_DEC_ERROR;
+ break;
+ }
+ }
+ output_buffer=(unsigned char *) RelinquishMagickMemory(output_buffer);
+ input_buffer=(unsigned char *) RelinquishMagickMemory(input_buffer);
+ JxlDecoderDestroy(decoder);
+ if (decoder_status == JXL_DEC_ERROR)
+ ThrowReaderException(CorruptImageError,"UnableToReadImageData");
+ return(image);
}
#endif
@@ -208,9 +410,7 @@ ModuleExport size_t RegisterJXLImage(void)
entry->decoder=(DecodeImageHandler *) ReadJXLImage;
entry->encoder=(EncodeImageHandler *) WriteJXLImage;
#endif
- entry->note=ConstantString(
- "JPEG1 recompression as specified in https://arxiv.org/pdf/1908.03565.pdf"
- " page 135. Full JPEG XL support will be implemented in this coder later.");
+ entry->flags^=CoderAdjoinFlag;
(void) RegisterMagickInfo(entry);
return(MagickImageCoderSignature);
}
@@ -266,62 +466,127 @@ ModuleExport void UnregisterJXLImage(void)
%
% o image: The image.
%
-%
*/
-static MagickBooleanType WriteJXLImage(const ImageInfo *image_info,
- Image *image)
+static MagickBooleanType WriteJXLImage(const ImageInfo *image_info,Image *image,
+ ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
+ JxlEncoder
+ *encoder;
- Image
- *temp_image;
+ JxlEncoderOptions
+ *encoder_options;
- ImageInfo
- *temp_info;
+ JxlEncoderStatus
+ encoder_status;
+
+ JxlMemoryManager
+ memory_manager;
+
+ JxlPixelFormat
+ format;
MagickBooleanType
status;
- OutBuffer
- b;
+ MemoryManagerInfo
+ memory_manager_info;
size_t
- jpegsize;
+ bytes_per_row;
unsigned char
- *jpeg;
-
- exception=AcquireExceptionInfo();
+ *input_buffer;
/*
- TODO: can cloning the image be avoided? The pixels don't need to be cloned,
- only filename or blob information. ImageToBlob overwrites this information.
+ Open output image file.
*/
- temp_image=CloneImage(image, 0, 0, MagickTrue, exception);
- temp_info=AcquireImageInfo();
- (void) CopyMagickString(temp_image->magick,"JPG",MaxTextExtent);
- jpeg=ImageToBlob(temp_info,temp_image,&jpegsize,exception);
- (void) DestroyImage(temp_image);
- (void) DestroyImageInfo(temp_info);
-
- b.data=NULL;
- b.size=0;
- status=EncodeBrunsli(jpegsize,jpeg,&b,AllocOutput) == 1 ?
- MagickTrue : MagickFalse;
- if (status == MagickTrue)
- {
- status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
- }
+ 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);
+ assert(exception != (ExceptionInfo *) NULL);
+ assert(exception->signature == MagickCoreSignature);
+ status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
+ if (status == MagickFalse)
+ return(status);
+ JXLSetMemoryManager(&memory_manager,&memory_manager_info,image,exception);
+ encoder=JxlEncoderCreate(&memory_manager);
+ if (encoder == (JxlEncoder *) NULL)
+ ThrowWriterException(CoderError,"MemoryAllocationFailed");
+ memset(&format,0,sizeof(format));
+ JXLSetFormat(image,&format);
+ encoder_status=JxlEncoderSetDimensions(encoder,image->columns,image->rows);
+ if (encoder_status != JXL_ENC_SUCCESS)
+ {
+ JxlEncoderDestroy(encoder);
+ return(MagickFalse);
+ }
+ encoder_options=JxlEncoderOptionsCreate(encoder,(JxlEncoderOptions *) NULL);
+ if (encoder_options == (JxlEncoderOptions *) NULL)
+ {
+ JxlEncoderDestroy(encoder);
+ return(MagickFalse);
+ }
+ if (image->quality == 100)
+ JxlEncoderOptionsSetLossless(encoder_options,JXL_TRUE);
+ bytes_per_row=image->columns*
+ ((image->alpha_trait == BlendPixelTrait) ? 4 : 3)*
+ ((format.data_type == JXL_TYPE_FLOAT) ? sizeof(float) : sizeof(char));
+ input_buffer=AcquireQuantumMemory(bytes_per_row,image->rows*
+ sizeof(*input_buffer));
+ if (input_buffer == (unsigned char *) NULL)
+ {
+ JxlEncoderDestroy(encoder);
+ return(MagickFalse);
+ }
+ status=ExportImagePixels(image,0,0,image->columns,image->rows,
+ image->alpha_trait == BlendPixelTrait ? "RGBA" : "RGB",
+ format.data_type == JXL_TYPE_FLOAT ? FloatPixel : CharPixel,
+ input_buffer,exception);
+ if (status == MagickFalse)
+ {
+ input_buffer=(unsigned char *) RelinquishMagickMemory(input_buffer);
+ JxlEncoderDestroy(encoder);
+ return(MagickFalse);
+ }
+ encoder_status=JxlEncoderAddImageFrame(encoder_options,&format,input_buffer,
+ bytes_per_row*image->rows);
+ if (encoder_status == JXL_ENC_SUCCESS)
+ {
+ unsigned char
+ *output_buffer;
- if (status == MagickTrue)
- {
- WriteBlob(image,b.size,b.data);
- CloseBlob(image);
- }
- (void) RelinquishMagickMemory(b.data);
+ output_buffer=AcquireQuantumMemory(MagickMaxBufferExtent,
+ sizeof(*output_buffer));
+ if (output_buffer == (unsigned char *) NULL)
+ {
+ input_buffer=(unsigned char *) RelinquishMagickMemory(input_buffer);
+ JxlEncoderDestroy(encoder);
+ return(MagickFalse);
+ }
+ encoder_status=JXL_ENC_NEED_MORE_OUTPUT;
+ while (encoder_status == JXL_ENC_NEED_MORE_OUTPUT)
+ {
+ size_t
+ count;
+
+ unsigned char
+ *p;
- if(exception) exception=DestroyExceptionInfo(exception);
+ count=MagickMaxBufferExtent;
+ p=output_buffer;
+ encoder_status=JxlEncoderProcessOutput(encoder,&p,&count);
+ (void) WriteBlob(image,MagickMaxBufferExtent-count,output_buffer);
+ }
+ output_buffer=(unsigned char *) RelinquishMagickMemory(output_buffer);
+ }
+ input_buffer=(unsigned char *) RelinquishMagickMemory(input_buffer);
+ JxlEncoderDestroy(encoder);
+ if (encoder_status != JXL_ENC_SUCCESS)
+ ThrowWriterException(CoderError,"UnableToWriteImageData");
+ (void) CloseBlob(image);
return(status);
}
#endif
diff --git a/coders/jxl.h b/coders/jxl.h
index 4c44b06cc..2c56874b5 100644
--- a/coders/jxl.h
+++ b/coders/jxl.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -16,10 +16,9 @@
#include "coders/coders-private.h"
-// The pattern for JXL JPEG1 recompression for now, the main pattern will be
-// added when full decoder support is added.
#define MagickJXLHeaders \
- MagickCoderHeader("JXL", 0, "\x0a\x04\x42\xd2\xd5\x4e")
+ MagickCoderHeader("JXL", 0, "\xff\x0a") \
+ MagickCoderHeader("JXL", 0, "\x00\x00\x00\x0c\x4a\x58\x4c\x20\x0d\x0a\x87\x0a")
#define MagickJXLAliases
diff --git a/coders/kernel.c b/coders/kernel.c
index fcd4c7fe5..9ba71e918 100644
--- a/coders/kernel.c
+++ b/coders/kernel.c
@@ -17,7 +17,7 @@
% October 2020 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -190,10 +190,10 @@ static MagickBooleanType WriteKERNELImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/kernel.h b/coders/kernel.h
index 0b013eb5c..44b20baf1 100644
--- a/coders/kernel.h
+++ b/coders/kernel.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/label.c b/coders/label.c
index e7c676a7b..b6c25036f 100644
--- a/coders/label.c
+++ b/coders/label.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/label.h b/coders/label.h
index 786a54d32..e79255639 100644
--- a/coders/label.h
+++ b/coders/label.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/mac.c b/coders/mac.c
index a159bb1dd..3071c98cf 100644
--- a/coders/mac.c
+++ b/coders/mac.c
@@ -18,7 +18,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -95,13 +95,13 @@ static Image *ReadMACImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -163,9 +163,10 @@ static Image *ReadMACImage(const ImageInfo *image_info,ExceptionInfo *exception)
Convert MAC raster image to pixel packets.
*/
length=(image->columns+7)/8;
- pixels=(unsigned char *) AcquireQuantumMemory(length+1,sizeof(*pixels));
+ pixels=(unsigned char *) AcquireQuantumMemory(length+257,sizeof(*pixels));
if (pixels == (unsigned char *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+ (void) memset(pixels,0,(length+257)*sizeof(*pixels));
p=pixels;
offset=0;
for (y=0; y < (ssize_t) image->rows; )
diff --git a/coders/mac.h b/coders/mac.h
index 899777fb7..fb3c61250 100644
--- a/coders/mac.h
+++ b/coders/mac.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/magick.c b/coders/magick.c
index b485e2e1e..69f7946f7 100644
--- a/coders/magick.c
+++ b/coders/magick.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -13044,7 +13044,7 @@ static Image *ReadMAGICKImage(const ImageInfo *image_info,
ImageInfo
*blob_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -13231,10 +13231,10 @@ static MagickBooleanType WriteMAGICKImage(const ImageInfo *image_info,
size_t
length;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
void
diff --git a/coders/magick.h b/coders/magick.h
index e766832bf..0b689eaf1 100644
--- a/coders/magick.h
+++ b/coders/magick.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/map.c b/coders/map.c
index a279ff7f5..cf5528967 100644
--- a/coders/map.c
+++ b/coders/map.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -108,16 +108,16 @@ static Image *ReadMAPImage(const ImageInfo *image_info,ExceptionInfo *exception)
Quantum
index;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -353,14 +353,14 @@ static MagickBooleanType WriteMAPImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
size_t
diff --git a/coders/map.h b/coders/map.h
index ef7a732fb..7d4d36326 100644
--- a/coders/map.h
+++ b/coders/map.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/mask.c b/coders/mask.c
index 59ccb2e30..b7c6a3e48 100644
--- a/coders/mask.c
+++ b/coders/mask.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -245,13 +245,13 @@ static Image *MaskImage(const Image *image,ExceptionInfo *exception)
mask_view=AcquireAuthenticCacheView(mask_image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
diff --git a/coders/mask.h b/coders/mask.h
index fd8b353ed..ea3e1b856 100644
--- a/coders/mask.h
+++ b/coders/mask.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/mat.c b/coders/mat.c
index 2ddeb06a5..cb6e77916 100644
--- a/coders/mat.c
+++ b/coders/mat.c
@@ -189,7 +189,7 @@ static void InsertComplexDoubleRow(Image *image,double *p,int y,double MinVal,
{
double f;
int x;
- register Quantum *q;
+ Quantum *q;
if (MinVal >= 0)
MinVal = -1;
@@ -252,7 +252,7 @@ static void InsertComplexFloatRow(Image *image,float *p,int y,double MinVal,
{
double f;
int x;
- register Quantum *q;
+ Quantum *q;
if (MinVal >= 0)
MinVal = -1;
@@ -624,7 +624,7 @@ static Image *ReadMATImageV4(const ImageInfo *image_info,Image *image,
QuantumFormatType
format_type;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -752,7 +752,7 @@ static Image *ReadMATImageV4(const ImageInfo *image_info,Image *image,
pixels=(unsigned char *) GetQuantumPixels(quantum_info);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
count=ReadBlob(image,depth/8*image->columns,(char *) pixels);
@@ -874,7 +874,7 @@ static Image *ReadMATImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
Image *image, *image2=NULL,
*rotated_image;
- register Quantum *q;
+ Quantum *q;
unsigned int status;
MATHeader MATLAB_HDR;
diff --git a/coders/mat.h b/coders/mat.h
index 675c3c2d2..074ed6880 100644
--- a/coders/mat.h
+++ b/coders/mat.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/matte.c b/coders/matte.c
index 0bf3ce6b6..0688782a5 100644
--- a/coders/matte.c
+++ b/coders/matte.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -164,13 +164,13 @@ static MagickBooleanType WriteMATTEImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
diff --git a/coders/matte.h b/coders/matte.h
index e6ef265b5..e81a9b716 100644
--- a/coders/matte.h
+++ b/coders/matte.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/meta.c b/coders/meta.c
index 8045895ae..c83a7274f 100644
--- a/coders/meta.c
+++ b/coders/meta.c
@@ -17,7 +17,7 @@
% July 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -161,7 +161,7 @@ static const struct
static int stringnicmp(const char *p,const char *q,size_t n)
{
- register ssize_t
+ ssize_t
i,
j;
@@ -176,10 +176,10 @@ static int stringnicmp(const char *p,const char *q,size_t n)
if ((*p == '\0') || (*q == '\0'))
break;
i=(*p);
- if (islower(i))
+ if (islower((int) ((unsigned char) i)) != 0)
i=LocaleUppercase(i);
j=(*q);
- if (islower(j))
+ if (islower((int) ((unsigned char) j)) != 0)
j=LocaleUppercase(j);
if (i != j)
break;
@@ -197,7 +197,7 @@ static size_t convertHTMLcodes(char *s)
int
value;
- register size_t
+ size_t
i;
size_t
@@ -242,10 +242,12 @@ static size_t convertHTMLcodes(char *s)
return(0);
}
-static char *super_fgets(char **b, int *blen, Image *file)
+static char *super_fgets(char **b, size_t *blen, Image *file)
{
int
- c,
+ c;
+
+ size_t
len;
unsigned char
@@ -259,34 +261,41 @@ static char *super_fgets(char **b, int *blen, Image *file)
c=ReadBlobByte(file);
if (c == EOF || c == '\n')
break;
- if ((q-p+1) >= (int) len)
+ if ((size_t) (q-p+1) >= len)
{
- int
+ size_t
tlen;
- tlen=q-p;
+ unsigned char
+ *buffer;
+
+ tlen=(size_t) (q-p);
len<<=1;
- p=(unsigned char *) ResizeQuantumMemory(p,(size_t) len+2UL,sizeof(*p));
- *b=(char *) p;
- if (p == (unsigned char *) NULL)
- break;
+ buffer=(unsigned char *) ResizeQuantumMemory(p,len+2UL,sizeof(*p));
+ if (buffer == (unsigned char *) NULL)
+ {
+ p=(unsigned char *) RelinquishMagickMemory(p);
+ break;
+ }
+ p=buffer;
q=p+tlen;
}
*q=(unsigned char) c;
}
+ *b=(char *) p;
*blen=0;
if (p != (unsigned char *) NULL)
{
- int
+ size_t
tlen;
- tlen=q-p;
+ tlen=(size_t) (q-p);
if (tlen == 0)
return (char *) NULL;
p[tlen] = '\0';
*blen=++tlen;
}
- return((char *) p);
+ return(*b);
}
#define IPTC_ID 1028
@@ -312,13 +321,13 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile)
unsigned int
recnum;
- int
- inputlen = MagickPathExtent;
-
MagickOffsetType
savedpos,
currentpos;
+ size_t
+ inputlen = MagickPathExtent;
+
ssize_t
savedolen = 0L,
outputlen = 0L;
@@ -328,7 +337,7 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile)
dataset = 0;
recnum = 0;
- line = (char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*line));
+ line = (char *) AcquireQuantumMemory(inputlen,sizeof(*line));
if (line == (char *) NULL)
return(-1);
newstr = name = token = (char *) NULL;
@@ -339,13 +348,13 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile)
state=0;
next=0;
- token=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*token));
+ token=(char *) AcquireQuantumMemory(inputlen,sizeof(*token));
if (token == (char *) NULL)
break;
- newstr=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*newstr));
+ newstr=(char *) AcquireQuantumMemory(inputlen,sizeof(*newstr));
if (newstr == (char *) NULL)
break;
- while (Tokenizer(token_info,0,token,(size_t) inputlen,line,"","=","\"",0,
+ while (Tokenizer(token_info,0,token,inputlen,line,"","=","\"",0,
&brkused,&next,&quoted)==0)
{
if (state == 0)
@@ -360,7 +369,7 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile)
state=0;
next=0;
- while (Tokenizer(token_info,0,newstr,(size_t) inputlen,token,"","#",
+ while (Tokenizer(token_info,0,newstr,inputlen,token,"","#",
"", 0,&brkused,&next,&quoted)==0)
{
switch (state)
@@ -399,7 +408,7 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile)
next=0;
len = (ssize_t) strlen(token);
- while (Tokenizer(token_info,0,newstr,(size_t) inputlen,token,"","&",
+ while (Tokenizer(token_info,0,newstr,inputlen,token,"","&",
"",0,&brkused,&next,&quoted)==0)
{
if (brkused && next > 0)
@@ -555,10 +564,12 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile)
return outputlen;
}
-static char *super_fgets_w(char **b, int *blen, Image *file)
+static char *super_fgets_w(char **b, size_t *blen, Image *file)
{
int
- c,
+ c;
+
+ size_t
len;
unsigned char
@@ -574,34 +585,38 @@ static char *super_fgets_w(char **b, int *blen, Image *file)
break;
if (EOFBlob(file))
break;
- if ((q-p+1) >= (int) len)
+ if ((size_t) (q-p+1) >= len)
{
- int
+ size_t
tlen;
- tlen=q-p;
+ unsigned char
+ *buffer;
+
+ tlen=(size_t) (q-p);
len<<=1;
- p=(unsigned char *) ResizeQuantumMemory(p,(size_t) (len+2),sizeof(*p));
- *b=(char *) p;
- if (p == (unsigned char *) NULL)
+ buffer=(unsigned char *) ResizeQuantumMemory(p,len+2,sizeof(*p));
+ if (buffer == (unsigned char *) NULL)
break;
+ p=buffer;
q=p+tlen;
}
*q=(unsigned char) c;
}
+ *b=(char *) p;
*blen=0;
if ((*b) != (char *) NULL)
{
- int
+ size_t
tlen;
- tlen=q-p;
+ tlen=(size_t) (q-p);
if (tlen == 0)
return (char *) NULL;
- p[tlen] = '\0';
+ p[tlen]='\0';
*blen=++tlen;
}
- return((char *) p);
+ return(*b);
}
static ssize_t parse8BIMW(Image *ifile, Image *ofile)
@@ -624,7 +639,7 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile)
unsigned int
recnum;
- int
+ size_t
inputlen = MagickPathExtent;
ssize_t
@@ -640,7 +655,7 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile)
dataset = 0;
recnum = 0;
- line=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*line));
+ line=(char *) AcquireQuantumMemory(inputlen,sizeof(*line));
if (line == (char *) NULL)
return(-1);
newstr = name = token = (char *) NULL;
@@ -651,13 +666,13 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile)
state=0;
next=0;
- token=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*token));
+ token=(char *) AcquireQuantumMemory(inputlen,sizeof(*token));
if (token == (char *) NULL)
break;
- newstr=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*newstr));
+ newstr=(char *) AcquireQuantumMemory(inputlen,sizeof(*newstr));
if (newstr == (char *) NULL)
break;
- while (Tokenizer(token_info,0,token,(size_t) inputlen,line,"","=","\"",0,
+ while (Tokenizer(token_info,0,token,inputlen,line,"","=","\"",0,
&brkused,&next,&quoted)==0)
{
if (state == 0)
@@ -672,7 +687,7 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile)
state=0;
next=0;
- while (Tokenizer(token_info,0,newstr,(size_t) inputlen,token,"","#",
+ while (Tokenizer(token_info,0,newstr,inputlen,token,"","#",
"",0,&brkused,&next,&quoted)==0)
{
switch (state)
@@ -711,7 +726,7 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile)
next=0;
len = (ssize_t) strlen(token);
- while (Tokenizer(token_info,0,newstr,(size_t) inputlen,token,"","&",
+ while (Tokenizer(token_info,0,newstr,inputlen,token,"","&",
"",0,&brkused,&next,&quoted)==0)
{
if (brkused && next > 0)
@@ -1180,7 +1195,7 @@ static Image *ReadMETAImage(const ImageInfo *image_info,
size_t
length;
- void
+ unsigned char
*blob;
/*
@@ -1616,10 +1631,10 @@ static size_t GetIPTCStream(unsigned char **info,size_t length)
int
c;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -1776,7 +1791,7 @@ iptc_find:
return(info_length);
}
-static void formatString(Image *ofile, const char *s, int len)
+static void formatString(Image *ofile, const char *s, ssize_t len)
{
char
temp[MagickPathExtent];
@@ -1800,7 +1815,7 @@ static void formatString(Image *ofile, const char *s, int len)
(void) WriteBlobString(ofile,"&quot;");
break;
default:
- if (isprint(c))
+ if (isprint((int) ((unsigned char) c)) != 0)
(void) WriteBlobByte(ofile,(unsigned char) *s);
else
{
diff --git a/coders/meta.h b/coders/meta.h
index 4be842c5b..7c1f4533f 100644
--- a/coders/meta.h
+++ b/coders/meta.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/miff.c b/coders/miff.c
index cbcc50f95..21b91d088 100644
--- a/coders/miff.c
+++ b/coders/miff.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -481,7 +481,7 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
size_t
@@ -550,9 +550,9 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
colors=0;
image->depth=8UL;
image->compression=NoCompression;
- while ((isgraph(c) != MagickFalse) && (c != (int) ':'))
+ while ((isgraph((int) ((unsigned char) c)) != 0) && (c != (int) ':'))
{
- register char
+ char
*p;
if (c == (int) '{')
@@ -596,7 +596,7 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
c=ReadBlobByte(image);
}
else
- if (isalnum(c) != MagickFalse)
+ if (isalnum((int) ((unsigned char) c)) != MagickFalse)
{
/*
Get the keyword.
@@ -1127,7 +1127,7 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
}
if (image->montage != (char *) NULL)
{
- register char
+ char
*p;
/*
@@ -1425,10 +1425,10 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
length=0;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
if (status == MagickFalse)
@@ -1700,7 +1700,7 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
do
{
c=ReadBlobByte(image);
- } while ((isgraph(c) == MagickFalse) && (c != EOF));
+ } while ((isgraph((int) ((unsigned char) c)) == 0) && (c != EOF));
if (c != EOF)
{
/*
@@ -2032,7 +2032,7 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2439,7 +2439,7 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
case 32:
default:
{
- register unsigned int
+ unsigned int
long_pixel;
long_pixel=ScaleQuantumToLong((Quantum)
@@ -2455,7 +2455,7 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
}
case 16:
{
- register unsigned short
+ unsigned short
short_pixel;
short_pixel=ScaleQuantumToShort((Quantum)
@@ -2471,7 +2471,7 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
}
case 8:
{
- register unsigned char
+ unsigned char
char_pixel;
char_pixel=(unsigned char) ScaleQuantumToChar((Quantum)
@@ -2556,10 +2556,10 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
pixels=(unsigned char *) GetQuantumPixels(quantum_info);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
diff --git a/coders/miff.h b/coders/miff.h
index 235be4a2e..d1d33ad1d 100644
--- a/coders/miff.h
+++ b/coders/miff.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/mono.c b/coders/mono.c
index e8237564a..29eec3e4b 100644
--- a/coders/mono.c
+++ b/coders/mono.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -105,10 +105,10 @@ static Image *ReadMONOImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -288,10 +288,10 @@ static MagickBooleanType WriteMONOImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
size_t
diff --git a/coders/mono.h b/coders/mono.h
index c355b6e49..500a0a14e 100644
--- a/coders/mono.h
+++ b/coders/mono.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/mpc.c b/coders/mpc.c
index 92374172a..407b93599 100644
--- a/coders/mpc.c
+++ b/coders/mpc.c
@@ -17,7 +17,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -174,7 +174,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickStatusType
flags;
- register ssize_t
+ ssize_t
i;
size_t
@@ -228,9 +228,9 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)
signature=GetMagickSignature((const StringInfo *) NULL);
image->depth=8;
image->compression=NoCompression;
- while ((isgraph(c) != MagickFalse) && (c != (int) ':'))
+ while ((isgraph((int) ((unsigned char) c)) != 0) && (c != (int) ':'))
{
- register char
+ char
*p;
if (c == (int) '{')
@@ -275,7 +275,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)
c=ReadBlobByte(image);
}
else
- if (isalnum(c) != MagickFalse)
+ if (isalnum((int) ((unsigned char) c)) != MagickFalse)
{
/*
Get the keyword.
@@ -292,7 +292,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)
} while (c != EOF);
*p='\0';
p=options;
- while (isspace(c) != 0)
+ while (isspace((int) ((unsigned char) c)) != 0)
c=ReadBlobByte(image);
if (c == (int) '=')
{
@@ -324,7 +324,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
}
if (*options != '{')
- if (isspace(c) != 0)
+ if (isspace((int) ((unsigned char) c)) != 0)
break;
}
if (options == (char *) NULL)
@@ -775,7 +775,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
else
c=ReadBlobByte(image);
- while (isspace(c) != 0)
+ while (isspace((int) ((unsigned char) c)) != 0)
c=ReadBlobByte(image);
}
options=DestroyString(options);
@@ -804,7 +804,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
if (image->montage != (char *) NULL)
{
- register char
+ char
*p;
/*
@@ -1006,7 +1006,7 @@ static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)
do
{
c=ReadBlobByte(image);
- } while ((isgraph(c) == MagickFalse) && (c != EOF));
+ } while ((isgraph((int) ((unsigned char) c)) == 0) && (c != EOF));
if (c != EOF)
{
/*
@@ -1142,7 +1142,7 @@ static MagickBooleanType WriteMPCImage(const ImageInfo *image_info,Image *image,
offset,
scene;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/mpc.h b/coders/mpc.h
index 74e73712e..14ab579b1 100644
--- a/coders/mpc.h
+++ b/coders/mpc.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/mpr.c b/coders/mpr.c
index fcc8e5bbf..2790cf829 100644
--- a/coders/mpr.c
+++ b/coders/mpr.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/mpr.h b/coders/mpr.h
index 3473ebf6c..48032be8f 100644
--- a/coders/mpr.h
+++ b/coders/mpr.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/msl.c b/coders/msl.c
index ea2329132..68abd7d18 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -19,7 +19,7 @@
% December 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -660,7 +660,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
RectangleInfo
geometry;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1955,10 +1955,10 @@ static void MSLStartElement(void *context,const xmlChar *tag,
opacity,
y;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
CacheView
@@ -3418,7 +3418,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
msl_info->image[n]=next_image;
else
{
- register Image
+ Image
*p;
/*
@@ -4452,7 +4452,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
name[MagickPathExtent],
filename[MagickPathExtent];
- register char
+ char
*p;
StringInfo
@@ -4464,7 +4464,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
if ((*p == ':') && (IsPathDirectory(keyword) < 0) &&
(IsPathAccessible(keyword) == MagickFalse))
{
- register char
+ char
*q;
/*
@@ -7532,10 +7532,10 @@ static void MSLCharacters(void *context,const xmlChar *c,int length)
MSLInfo
*msl_info;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
/*
diff --git a/coders/msl.h b/coders/msl.h
index 305a4735f..c8174ae3b 100644
--- a/coders/msl.h
+++ b/coders/msl.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/mtv.c b/coders/mtv.c
index 118a63d97..dda953c43 100644
--- a/coders/mtv.c
+++ b/coders/mtv.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -103,13 +103,13 @@ static Image *ReadMTVImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
ssize_t
@@ -339,13 +339,13 @@ static MagickBooleanType WriteMTVImage(const ImageInfo *image_info,Image *image,
MagickOffsetType
scene;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*q;
size_t
diff --git a/coders/mtv.h b/coders/mtv.h
index 4b4f7faa6..52548ca73 100644
--- a/coders/mtv.h
+++ b/coders/mtv.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/mvg.c b/coders/mvg.c
index 3e7db1014..e75536f59 100644
--- a/coders/mvg.c
+++ b/coders/mvg.c
@@ -17,7 +17,7 @@
% April 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -157,7 +157,7 @@ static Image *ReadMVGImage(const ImageInfo *image_info,ExceptionInfo *exception)
char
primitive[MagickPathExtent];
- register char
+ char
*p;
SegmentInfo
diff --git a/coders/mvg.h b/coders/mvg.h
index 0667d3b9b..9296aaf71 100644
--- a/coders/mvg.h
+++ b/coders/mvg.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/null.c b/coders/null.c
index ff88c63d0..19746a038 100644
--- a/coders/null.c
+++ b/coders/null.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -106,10 +106,10 @@ static Image *ReadNULLImage(const ImageInfo *image_info,
PixelInfo
background;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
diff --git a/coders/null.h b/coders/null.h
index 474a1b367..d88616a48 100644
--- a/coders/null.h
+++ b/coders/null.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/ora.c b/coders/ora.c
index f5c64ffe7..43443bad7 100644
--- a/coders/ora.c
+++ b/coders/ora.c
@@ -20,7 +20,7 @@
% August 2020 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/ora.h b/coders/ora.h
index 21eeb8b4f..421957793 100644
--- a/coders/ora.h
+++ b/coders/ora.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/otb.c b/coders/otb.c
index 24fb92794..3fec869f1 100644
--- a/coders/otb.c
+++ b/coders/otb.c
@@ -17,7 +17,7 @@
% January 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -108,10 +108,10 @@ static Image *ReadOTBImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -307,10 +307,10 @@ static MagickBooleanType WriteOTBImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
ssize_t
diff --git a/coders/otb.h b/coders/otb.h
index d51654164..9cec029e6 100644
--- a/coders/otb.h
+++ b/coders/otb.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/palm.c b/coders/palm.c
index 6a3c674dd..32716dedb 100644
--- a/coders/palm.c
+++ b/coders/palm.c
@@ -191,7 +191,7 @@ static MagickBooleanType
*/
static ssize_t FindColor(PixelInfo *packet)
{
- register ssize_t
+ ssize_t
i;
for (i=0; i < 256; i++)
@@ -248,11 +248,11 @@ static Image *ReadPALMImage(const ImageInfo *image_info,
Quantum
index;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
size_t
@@ -708,13 +708,13 @@ static MagickBooleanType WritePALMImage(const ImageInfo *image_info,
QuantizeInfo
*quantize_info;
- register ssize_t
+ ssize_t
x;
- register const Quantum
+ const Quantum
*p;
- register Quantum
+ Quantum
*q;
ssize_t
diff --git a/coders/palm.h b/coders/palm.h
index db3a8f22f..4ebc6af09 100644
--- a/coders/palm.h
+++ b/coders/palm.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pango.c b/coders/pango.c
index ed4460e93..d6b2cda16 100644
--- a/coders/pango.c
+++ b/coders/pango.c
@@ -17,7 +17,7 @@
% March 2012 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -161,7 +161,7 @@ static Image *ReadPANGOImage(const ImageInfo *image_info,
RectangleInfo
page;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -434,10 +434,10 @@ static Image *ReadPANGOImage(const ImageInfo *image_info,
GetPixelInfo(image,&fill_color);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/pango.h b/coders/pango.h
index 315c91c6f..9add6774b 100644
--- a/coders/pango.h
+++ b/coders/pango.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pattern.c b/coders/pattern.c
index 846bfdd14..889e1beba 100644
--- a/coders/pattern.c
+++ b/coders/pattern.c
@@ -17,7 +17,7 @@
% May 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -949,7 +949,7 @@ static Image *ReadPATTERNImage(const ImageInfo *image_info,
ImageInfo
*blob_info;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/pattern.h b/coders/pattern.h
index 5c2c053d1..0f83c296f 100644
--- a/coders/pattern.h
+++ b/coders/pattern.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pcd.c b/coders/pcd.c
index 1ed583435..38bd402c5 100644
--- a/coders/pcd.c
+++ b/coders/pcd.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -147,14 +147,14 @@ static MagickBooleanType DecodeImage(Image *image,unsigned char *luma,
PCDTable
*pcd_table[3];
- register ssize_t
+ ssize_t
i,
j;
- register PCDTable
+ PCDTable
*r;
- register unsigned char
+ unsigned char
*p,
*q;
@@ -404,7 +404,7 @@ static Image *OverviewImage(const ImageInfo *image_info,Image *image,
MontageInfo
*montage_info;
- register Image
+ Image
*p;
/*
@@ -429,11 +429,11 @@ static Image *OverviewImage(const ImageInfo *image_info,Image *image,
static void Upsample(const size_t width,const size_t height,
const size_t scaled_width,unsigned char *pixels)
{
- register ssize_t
+ ssize_t
x,
y;
- register unsigned char
+ unsigned char
*p,
*q,
*r;
@@ -505,14 +505,14 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickSizeType
number_pixels;
- register ssize_t
+ ssize_t
i,
y;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*c1,
*c2,
*yy;
@@ -661,7 +661,7 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickProgressMonitor
progress_monitor;
- register ssize_t
+ ssize_t
j;
/*
@@ -1001,11 +1001,11 @@ static MagickBooleanType WritePCDTile(Image *image,const char *page_geometry,
RectangleInfo
geometry;
- register const Quantum
+ const Quantum
*p,
*q;
- register ssize_t
+ ssize_t
i,
x;
@@ -1123,7 +1123,7 @@ static MagickBooleanType WritePCDImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
assert(image_info != (const ImageInfo *) NULL);
diff --git a/coders/pcd.h b/coders/pcd.h
index 50e8a6563..3997eebd5 100644
--- a/coders/pcd.h
+++ b/coders/pcd.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pcl.c b/coders/pcl.c
index a200af4d3..a6e64f3da 100644
--- a/coders/pcl.c
+++ b/coders/pcl.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -179,10 +179,10 @@ static Image *ReadPCLImage(const ImageInfo *image_info,ExceptionInfo *exception)
bounding_box,
page;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
c;
SegmentInfo
@@ -331,6 +331,8 @@ static Image *ReadPCLImage(const ImageInfo *image_info,ExceptionInfo *exception)
options=AcquireString("");
(void) FormatLocaleString(density,MagickPathExtent,"%gx%g",
image->resolution.x,image->resolution.y);
+ if (image_info->ping != MagickFalse)
+ (void) FormatLocaleString(density,MagickPathExtent,"2.0x2.0");
page.width=(size_t) floor(page.width*image->resolution.x/delta.x+0.5);
page.height=(size_t) floor(page.height*image->resolution.y/delta.y+0.5);
(void) FormatLocaleString(options,MagickPathExtent,"-g%.20gx%.20g ",(double)
@@ -384,6 +386,13 @@ static Image *ReadPCLImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
(void) CopyMagickString(image->filename,filename,MagickPathExtent);
image->page=page;
+ if (image_info->ping != MagickFalse)
+ {
+ image->magick_columns*=image->resolution.x/2.0;
+ image->magick_rows*=image->resolution.y/2.0;
+ image->columns*=image->resolution.x/2.0;
+ image->rows*=image->resolution.y/2.0;
+ }
next_image=SyncNextImageInList(image);
if (next_image != (Image *) NULL)
image=next_image;
@@ -491,11 +500,11 @@ static size_t PCLDeltaCompressImage(const size_t length,
j,
replacement;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
q=compress_pixels;
@@ -559,10 +568,10 @@ static size_t PCLPackbitsCompressImage(const size_t length,
int
count;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*q;
ssize_t
@@ -672,11 +681,11 @@ static MagickBooleanType WritePCLImage(const ImageInfo *image_info,Image *image,
MagickOffsetType
scene;
- register const Quantum *p;
+ const Quantum *p;
- register ssize_t i, x;
+ ssize_t i, x;
- register unsigned char *q;
+ unsigned char *q;
size_t
density,
@@ -863,7 +872,7 @@ static MagickBooleanType WritePCLImage(const ImageInfo *image_info,Image *image,
{
case 1:
{
- register unsigned char
+ unsigned char
bit,
byte;
diff --git a/coders/pcl.h b/coders/pcl.h
index 54f68e283..550f6e650 100644
--- a/coders/pcl.h
+++ b/coders/pcl.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pcx.c b/coders/pcx.c
index 4332dc0ad..572ae0619 100644
--- a/coders/pcx.c
+++ b/coders/pcx.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -234,16 +234,16 @@ static Image *ReadPCXImage(const ImageInfo *image_info,ExceptionInfo *exception)
PCXInfo
pcx_info;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p,
*r;
@@ -568,7 +568,7 @@ static Image *ReadPCXImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
case 1:
{
- register ssize_t
+ ssize_t
bit;
for (x=0; x < ((ssize_t) image->columns-7); x+=8)
@@ -804,10 +804,10 @@ ModuleExport void UnregisterPCXImage(void)
static MagickBooleanType PCXWritePixels(PCXInfo *pcx_info,
const unsigned char *pixels,Image *image)
{
- register const unsigned char
+ const unsigned char
*q;
- register ssize_t
+ ssize_t
i,
x;
@@ -875,14 +875,14 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image,
PCXInfo
pcx_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -1128,7 +1128,7 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image,
}
else
{
- register unsigned char
+ unsigned char
bit,
byte;
diff --git a/coders/pcx.h b/coders/pcx.h
index a72685015..151c85537 100644
--- a/coders/pcx.h
+++ b/coders/pcx.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pdb.c b/coders/pdb.c
index 6be33140c..11fd2f343 100644
--- a/coders/pdb.c
+++ b/coders/pdb.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -288,13 +288,13 @@ static Image *ReadPDBImage(const ImageInfo *image_info,ExceptionInfo *exception)
Quantum
index;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -586,7 +586,7 @@ static Image *ReadPDBImage(const ImageInfo *image_info,ExceptionInfo *exception)
int
c;
- register char
+ char
*p;
size_t
@@ -762,13 +762,13 @@ static MagickBooleanType WritePDBImage(const ImageInfo *image_info,Image *image,
QuantumInfo
*quantum_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*q;
size_t
diff --git a/coders/pdb.h b/coders/pdb.h
index 43ff3051b..5ab81a9c1 100644
--- a/coders/pdb.h
+++ b/coders/pdb.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pdf.c b/coders/pdf.c
index ebca89739..f82d7c005 100644
--- a/coders/pdf.c
+++ b/coders/pdf.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -207,10 +207,10 @@ static void ReadPDFInfo(const ImageInfo *image_info,Image *image,
MagickByteBuffer
buffer;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
SegmentInfo
@@ -292,7 +292,7 @@ static void ReadPDFInfo(const ImageInfo *image_info,Image *image,
SkipMagickByteBuffer(&buffer,strlen(SpotColor)+1);
for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
{
- if ((isspace(c) != 0) || (c == '/') || ((i+1) == MagickPathExtent))
+ if ((isspace((int) ((unsigned char) c)) != 0) || (c == '/') || ((i+1) == MagickPathExtent))
break;
name[i++]=(char) c;
}
@@ -376,7 +376,7 @@ static char *SanitizeDelegateString(const char *source)
const char
*q;
- register char
+ char
*p;
static char
@@ -445,7 +445,7 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
RectangleInfo
page;
- register ssize_t
+ ssize_t
i;
size_t
@@ -481,6 +481,7 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
delta.x=DefaultResolution;
delta.y=DefaultResolution;
+ (void) memset(&page,0,sizeof(page));
if ((image->resolution.x == 0.0) || (image->resolution.y == 0.0))
{
flags=ParseGeometry(PSDensityGeometry,&geometry_info);
@@ -497,7 +498,6 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
if ((flags & SigmaValue) == 0)
image->resolution.y=image->resolution.x;
}
- (void) memset(&page,0,sizeof(page));
(void) ParseAbsoluteGeometry(PSPageGeometry,&page);
if (image_info->page != (char *) NULL)
(void) ParseAbsoluteGeometry(image_info->page,&page);
@@ -567,6 +567,7 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
file=AcquireUniqueFileResource(postscript_filename);
if (file == -1)
{
+ (void) RelinquishUniqueFileResource(input_filename);
ThrowFileException(exception,FileOpenError,"UnableToCreateTemporaryFile",
image_info->filename);
CleanupPDFInfo(&pdf_info);
@@ -576,6 +577,7 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
if (write(file," ",1) != 1)
{
file=close(file)-1;
+ (void) RelinquishUniqueFileResource(input_filename);
(void) RelinquishUniqueFileResource(postscript_filename);
CleanupPDFInfo(&pdf_info);
image=DestroyImage(image);
@@ -594,6 +596,7 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
delegate_info=GetDelegateInfo("ps:alpha",(char *) NULL,exception);
if (delegate_info == (const DelegateInfo *) NULL)
{
+ (void) RelinquishUniqueFileResource(input_filename);
(void) RelinquishUniqueFileResource(postscript_filename);
CleanupPDFInfo(&pdf_info);
image=DestroyImage(image);
@@ -603,6 +606,8 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
options=AcquireString("");
(void) FormatLocaleString(density,MagickPathExtent,"%gx%g",
image->resolution.x,image->resolution.y);
+ if (image_info->ping != MagickFalse)
+ (void) FormatLocaleString(density,MagickPathExtent,"2.0x2.0");
if ((image_info->page != (char *) NULL) || (fitPage != MagickFalse))
(void) FormatLocaleString(options,MagickPathExtent,"-g%.20gx%.20g ",(double)
page.width,(double) page.height);
@@ -747,6 +752,13 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
(void) CopyMagickString(pdf_image->filename,filename,MagickPathExtent);
(void) CopyMagickString(pdf_image->magick,image->magick,MagickPathExtent);
pdf_image->page=page;
+ if (image_info->ping != MagickFalse)
+ {
+ pdf_image->magick_columns*=image->resolution.x/2.0;
+ pdf_image->magick_rows*=image->resolution.y/2.0;
+ pdf_image->columns*=image->resolution.x/2.0;
+ pdf_image->rows*=image->resolution.y/2.0;
+ }
(void) CloneImageProfiles(pdf_image,image);
(void) CloneImageProperties(pdf_image,image);
next=SyncNextImageInList(pdf_image);
@@ -901,10 +913,10 @@ static char *EscapeParenthesis(const char *source)
char
*destination;
- register char
+ char
*q;
- register const char
+ const char
*p;
size_t
@@ -942,12 +954,12 @@ static char *EscapeParenthesis(const char *source)
static size_t UTF8ToUTF16(const unsigned char *utf8,wchar_t *utf16)
{
- register const unsigned char
+ const unsigned char
*p;
if (utf16 != (wchar_t *) NULL)
{
- register wchar_t
+ wchar_t
*q;
wchar_t
@@ -1031,7 +1043,7 @@ static wchar_t *ConvertUTF8ToUTF16(const unsigned char *source,size_t *length)
*length=UTF8ToUTF16(source,(wchar_t *) NULL);
if (*length == 0)
{
- register ssize_t
+ ssize_t
i;
/*
@@ -1104,7 +1116,7 @@ static MagickBooleanType WritePOCKETMODImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
assert(image_info != (const ImageInfo *) NULL);
@@ -1287,13 +1299,13 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
media_info,
page_info;
- register const Quantum
+ const Quantum
*p;
- register unsigned char
+ unsigned char
*q;
- register ssize_t
+ ssize_t
i,
x;
diff --git a/coders/pdf.h b/coders/pdf.h
index 2df5d9c51..6762f8e4d 100644
--- a/coders/pdf.h
+++ b/coders/pdf.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pes.c b/coders/pes.c
index 7b5863654..670f640dc 100644
--- a/coders/pes.c
+++ b/coders/pes.c
@@ -17,7 +17,7 @@
% July 2009 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -452,7 +452,7 @@ static Image *ReadPESImage(const ImageInfo *image_info,ExceptionInfo *exception)
SegmentInfo
bounds;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/pes.h b/coders/pes.h
index 6f4adbb88..45f2107dd 100644
--- a/coders/pes.h
+++ b/coders/pes.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pgx.c b/coders/pgx.c
index e820c77fe..e952c3177 100644
--- a/coders/pgx.c
+++ b/coders/pgx.c
@@ -17,7 +17,7 @@
% July 2016 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -213,7 +213,7 @@ static Image *ReadPGXImage(const ImageInfo *image_info,ExceptionInfo *exception)
const void
*stream;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -339,7 +339,7 @@ static MagickBooleanType WritePGXImage(const ImageInfo *image_info,Image *image,
QuantumInfo
*quantum_info;
- register const Quantum
+ const Quantum
*p;
size_t
diff --git a/coders/pgx.h b/coders/pgx.h
index cd8f7693d..23986b363 100644
--- a/coders/pgx.h
+++ b/coders/pgx.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pict.c b/coders/pict.c
index 08c466742..a66540b96 100644
--- a/coders/pict.c
+++ b/coders/pict.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -329,13 +329,13 @@ static const unsigned char *UnpackScanline(
const unsigned char *magick_restrict pixels,const unsigned int bits_per_pixel,
unsigned char *scanline,MagickSizeType *bytes_per_line)
{
- register const unsigned char
+ const unsigned char
*p;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*q;
p=pixels;
@@ -402,13 +402,13 @@ static unsigned char *DecodeImage(Image *blob,Image *image,
MagickSizeType
number_pixels;
- register const unsigned char
+ const unsigned char
*p;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -586,13 +586,13 @@ static size_t EncodeImage(Image *image,const unsigned char *scanline,
#define MaxCount 128
#define MaxPackbitsRunlength 128
- register const unsigned char
+ const unsigned char
*p;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -857,10 +857,10 @@ static Image *ReadPICTImage(const ImageInfo *image_info,
Quantum
index;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
@@ -1143,7 +1143,7 @@ static Image *ReadPICTImage(const ImageInfo *image_info,
source,
destination;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -1688,10 +1688,10 @@ static MagickBooleanType WritePICTImage(const ImageInfo *image_info,
size_rectangle,
source_rectangle;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -2056,7 +2056,7 @@ static MagickBooleanType WritePICTImage(const ImageInfo *image_info,
}
else
{
- register unsigned char
+ unsigned char
*blue,
*green,
*opacity,
diff --git a/coders/pict.h b/coders/pict.h
index 36442723d..686bbb865 100644
--- a/coders/pict.h
+++ b/coders/pict.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pix.c b/coders/pix.c
index bb42bd793..744e1a7db 100644
--- a/coders/pix.c
+++ b/coders/pix.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -100,10 +100,10 @@ static Image *ReadPIXImage(const ImageInfo *image_info,ExceptionInfo *exception)
index,
red;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
size_t
diff --git a/coders/pix.h b/coders/pix.h
index 80db7ba9e..d6d28fe03 100644
--- a/coders/pix.h
+++ b/coders/pix.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/plasma.c b/coders/plasma.c
index de62ca6dd..1ef40bff0 100644
--- a/coders/plasma.c
+++ b/coders/plasma.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -96,7 +96,7 @@ static inline MagickBooleanType PlasmaPixel(Image *image,
RandomInfo *magick_restrict random_info,const double x,const double y,
ExceptionInfo *exception)
{
- register Quantum
+ Quantum
*q;
q=GetAuthenticPixels(image,(ssize_t) (x+0.5),(ssize_t) (y+0.5),1,1,
@@ -124,13 +124,13 @@ static Image *ReadPlasmaImage(const ImageInfo *image_info,
MagickStatusType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register size_t
+ size_t
i;
SegmentInfo
diff --git a/coders/plasma.h b/coders/plasma.h
index 00f224753..a158e488b 100644
--- a/coders/plasma.h
+++ b/coders/plasma.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/png.c b/coders/png.c
index f4445829b..dadb28b22 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -18,7 +18,7 @@
% November 1997 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -908,7 +908,7 @@ LosslessReduceDepthOK(Image *image,ExceptionInfo *exception)
ssize_t
y;
- register ssize_t
+ ssize_t
x;
for (y=0; y < (ssize_t) image->rows; y++)
@@ -1448,7 +1448,7 @@ static void mng_get_data(png_structp png_ptr,png_bytep data,png_size_t length)
png_size_t
check;
- register ssize_t
+ ssize_t
i;
i=0;
@@ -1599,7 +1599,7 @@ static void MngInfoDiscardObject(MngInfo *mng_info,int i)
static MngInfo *MngInfoFreeStruct(MngInfo *mng_info)
{
- register ssize_t
+ ssize_t
i;
if (mng_info == (MngInfo *) NULL)
@@ -1782,13 +1782,13 @@ Magick_png_read_raw_profile(png_struct *ping,Image *image,
png_charp
ep;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*dp;
- register png_charp
+ png_charp
sp;
size_t
@@ -2227,14 +2227,14 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
ssize_t
y;
- register unsigned char
+ unsigned char
*p;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
size_t
@@ -3584,7 +3584,7 @@ static Image *ReadOnePNGImage(MngInfo *mng_info,
for (pass=0; pass < num_passes; pass++)
{
- register Quantum
+ Quantum
*r;
/*
@@ -4467,17 +4467,17 @@ static Image *ReadOneJNGImage(MngInfo *mng_info,
jng_alpha_filter_method,
jng_alpha_interlace_method;
- register const Quantum
+ const Quantum
*s;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
unsigned int
@@ -5091,7 +5091,8 @@ static Image *ReadOneJNGImage(MngInfo *mng_info,
jng_image=DestroyImage(jng_image);
- if ((image_info->ping == MagickFalse) && (jng_color_type >= 12))
+ if ((image_info->ping == MagickFalse) && (alpha_image != (Image *) NULL) &&
+ (jng_color_type >= 12))
{
if (jng_alpha_compression_method == 0)
{
@@ -5351,10 +5352,10 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info,
mng_background_color;
#endif
- register unsigned char
+ unsigned char
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -6180,7 +6181,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info,
else
{
- register ssize_t
+ ssize_t
j;
for (j=1; j < (ssize_t) length; j+=2)
@@ -6926,11 +6927,11 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info,
m,
y;
- register Quantum
+ Quantum
*n,
*q;
- register ssize_t
+ ssize_t
x;
/* Allocate next image structure. */
@@ -7065,7 +7066,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info,
for (i=0; i < m; i++, yy++)
{
- register Quantum
+ Quantum
*pixels;
assert(yy < (ssize_t) large_image->rows);
@@ -7221,7 +7222,7 @@ static Image *ReadOneMNGImage(MngInfo* mng_info, const ImageInfo *image_info,
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*pixels;
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -8176,7 +8177,7 @@ Magick_png_write_raw_profile(const ImageInfo *image_info,png_struct *ping,
allocated_length,
description_length;
- register ssize_t
+ ssize_t
i;
unsigned char
@@ -8496,7 +8497,7 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
PNGErrorInfo
error_info;
- register ssize_t
+ ssize_t
i,
x;
@@ -8802,7 +8803,7 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
/* Respect the -depth option */
if (image->depth < 4)
{
- register Quantum
+ Quantum
*r;
if (image->depth > 2)
@@ -8996,10 +8997,10 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
semitransparent[260],
transparent[260];
- register const Quantum
+ const Quantum
*r;
- register Quantum
+ Quantum
*q;
if (logging != MagickFalse)
@@ -9787,7 +9788,7 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
else if (image_colors == 0 || image_colors > 256 ||
image->colormap == NULL)
{
- register const Quantum
+ const Quantum
*q;
for (y=0; y < (ssize_t) image->rows; y++)
@@ -11427,7 +11428,7 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
QuantumType
quantum_type;
- register const Quantum
+ const Quantum
*p;
quantum_type=RedQuantum;
@@ -11485,7 +11486,7 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
(ping_bit_depth >= MAGICKCORE_QUANTUM_DEPTH)) &&
(mng_info->IsPalette) && ping_have_color == MagickFalse)
{
- register const Quantum
+ const Quantum
*p;
for (pass=0; pass < num_passes; pass++)
@@ -11541,7 +11542,7 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info,
else
{
- register const Quantum
+ const Quantum
*p;
for (pass=0; pass < num_passes; pass++)
@@ -13190,7 +13191,7 @@ static MagickBooleanType WriteOneJNGImage(MngInfo *mng_info,
{
if (jng_alpha_compression_method==0)
{
- register ssize_t
+ ssize_t
i;
size_t
@@ -13446,7 +13447,7 @@ static MagickBooleanType WriteMNGImage(const ImageInfo *image_info,
need_defi,
use_global_plte;
- register ssize_t
+ ssize_t
i;
unsigned char
diff --git a/coders/png.h b/coders/png.h
index dc2159319..42da37784 100644
--- a/coders/png.h
+++ b/coders/png.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pnm.c b/coders/pnm.c
index 771cfb914..bf524f170 100644
--- a/coders/pnm.c
+++ b/coders/pnm.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -116,7 +116,8 @@ static MagickBooleanType IsPNM(const unsigned char *magick,const size_t extent)
if ((*magick == (unsigned char) 'P') &&
((magick[1] == '1') || (magick[1] == '2') || (magick[1] == '3') ||
(magick[1] == '4') || (magick[1] == '5') || (magick[1] == '6') ||
- (magick[1] == '7') || (magick[1] == 'F') || (magick[1] == 'f')))
+ (magick[1] == '7') || (magick[1] == 'F') || (magick[1] == 'f') ||
+ (magick[1] == 'H') || (magick[1] == 'h')))
return(MagickTrue);
return(MagickFalse);
}
@@ -154,7 +155,7 @@ static int PNMComment(Image *image,CommentInfo *comment_info,
int
c;
- register char
+ char
*p;
/*
@@ -210,7 +211,7 @@ static unsigned int PNMInteger(Image *image,CommentInfo *comment_info,
Evaluate number.
*/
value=0;
- while (isdigit(c) != 0)
+ while (isdigit((int) ((unsigned char) c)) != 0)
{
if (value <= (unsigned int) (INT_MAX/10))
{
@@ -227,6 +228,31 @@ static unsigned int PNMInteger(Image *image,CommentInfo *comment_info,
return(value);
}
+static char *PNMString(Image *image,char *string,const size_t extent)
+{
+ int
+ c;
+
+ size_t
+ i;
+
+ for (i=0; i < (extent-1L); i++)
+ {
+ c=ReadBlobByte(image);
+ if (c == EOF)
+ {
+ if (i == 0)
+ return((char *) NULL);
+ break;
+ }
+ string[i]=c;
+ if (c == '\n' || c == '\r')
+ break;
+ }
+ string[i]='\0';
+ return(string);
+}
+
static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
#define ThrowPNMException(exception,message) \
@@ -315,14 +341,17 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
PBM, PGM, PPM, and PNM.
*/
+ if (ReadBlobByte(image) == '4')
+ image->alpha_trait=BlendPixelTrait;
image->columns=(size_t) PNMInteger(image,&comment_info,10,exception);
image->rows=(size_t) PNMInteger(image,&comment_info,10,exception);
- if ((format == 'f') || (format == 'F'))
+ if ((format == 'f') || (format == 'F') || (format == 'h') ||
+ (format == 'H'))
{
char
- scale[MagickPathExtent];
+ scale[32];
- if (ReadBlobString(image,scale) != (char *) NULL)
+ if (PNMString(image,scale,sizeof(scale)) != (char *) NULL)
quantum_scale=StringToDouble(scale,(char **) NULL);
}
else
@@ -343,7 +372,7 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
int
c;
- register char
+ char
*p;
/*
@@ -351,7 +380,7 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
for (c=ReadBlobByte(image); c != EOF; c=ReadBlobByte(image))
{
- while (isspace(c) != 0)
+ while (isspace((int) ((unsigned char) c)) != 0)
c=ReadBlobByte(image);
if (c == '#')
{
@@ -360,7 +389,7 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
c=PNMComment(image,&comment_info,exception);
c=ReadBlobByte(image);
- while (isspace(c) != 0)
+ while (isspace((int) ((unsigned char) c)) != 0)
c=ReadBlobByte(image);
}
p=keyword;
@@ -369,14 +398,14 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
if ((size_t) (p-keyword) < (MagickPathExtent-1))
*p++=c;
c=ReadBlobByte(image);
- } while (isalnum(c));
+ } while (isalnum((int) ((unsigned char) c)));
*p='\0';
if (LocaleCompare(keyword,"endhdr") == 0)
break;
- while (isspace(c) != 0)
+ while (isspace((int) ((unsigned char) c)) != 0)
c=ReadBlobByte(image);
p=value;
- while (isalnum(c) || (c == '_'))
+ while (isalnum((int) ((unsigned char) c)) || (c == '_'))
{
if ((size_t) (p-value) < (MagickPathExtent-1))
*p++=c;
@@ -474,10 +503,10 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
(void) SetImageColorspace(image,GRAYColorspace,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -517,10 +546,10 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
(void) SetImageColorspace(image,GRAYColorspace,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -557,10 +586,10 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -618,7 +647,7 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
sync;
- register Quantum
+ Quantum
*magick_restrict q;
ssize_t
@@ -675,13 +704,13 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
sync;
- register const unsigned char
+ const unsigned char
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
ssize_t
@@ -783,13 +812,13 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
sync;
- register const unsigned char
+ const unsigned char
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
ssize_t
@@ -968,13 +997,13 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
sync;
- register const unsigned char
+ const unsigned char
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
ssize_t
@@ -1269,17 +1298,89 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Convert PFM raster image to pixel packets.
*/
- if (format == 'f')
- (void) SetImageColorspace(image,GRAYColorspace,exception);
- quantum_type=format == 'f' ? GrayQuantum : RGBQuantum;
+ if (format != 'f')
+ quantum_type=image->alpha_trait != UndefinedPixelTrait ? RGBAQuantum :
+ RGBQuantum;
+ else
+ {
+ (void) SetImageColorspace(image,GRAYColorspace,exception);
+ quantum_type=GrayQuantum;
+ }
image->endian=quantum_scale < 0.0 ? LSBEndian : MSBEndian;
image->depth=32;
quantum_info=AcquireQuantumInfo(image_info,image);
if (quantum_info == (QuantumInfo *) NULL)
ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
- status=SetQuantumDepth(image,quantum_info,32);
+ status=SetQuantumFormat(image,quantum_info,FloatingPointQuantumFormat);
if (status == MagickFalse)
ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
+ SetQuantumScale(quantum_info,(double) QuantumRange*fabs(quantum_scale));
+ extent=GetQuantumExtent(image,quantum_info,quantum_type);
+ pixels=GetQuantumPixels(quantum_info);
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ MagickBooleanType
+ sync;
+
+ Quantum
+ *magick_restrict q;
+
+ ssize_t
+ offset;
+
+ size_t
+ length;
+
+ stream=ReadBlobStream(image,extent,pixels,&count);
+ if (count != (ssize_t) extent)
+ break;
+ if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
+ (image->previous == (Image *) NULL))
+ {
+ MagickBooleanType
+ proceed;
+
+ proceed=SetImageProgress(image,LoadImageTag,(MagickOffsetType)
+ row,image->rows);
+ if (proceed == MagickFalse)
+ break;
+ }
+ offset=row++;
+ q=QueueAuthenticPixels(image,0,(ssize_t) (image->rows-offset-1),
+ image->columns,1,exception);
+ if (q == (Quantum *) NULL)
+ break;
+ length=ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
+ quantum_type,(unsigned char *) stream,exception);
+ if (length != extent)
+ break;
+ sync=SyncAuthenticPixels(image,exception);
+ if (sync == MagickFalse)
+ break;
+ }
+ quantum_info=DestroyQuantumInfo(quantum_info);
+ SetQuantumImageType(image,quantum_type);
+ break;
+ }
+ case 'H':
+ case 'h':
+ {
+ /*
+ Convert PFM raster image to pixel packets.
+ */
+ if (format != 'h')
+ quantum_type=image->alpha_trait != UndefinedPixelTrait ? RGBAQuantum :
+ RGBQuantum;
+ else
+ {
+ (void) SetImageColorspace(image,GRAYColorspace,exception);
+ quantum_type=GrayQuantum;
+ }
+ image->endian=quantum_scale < 0.0 ? LSBEndian : MSBEndian;
+ image->depth=16;
+ quantum_info=AcquireQuantumInfo(image_info,image);
+ if (quantum_info == (QuantumInfo *) NULL)
+ ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
status=SetQuantumFormat(image,quantum_info,FloatingPointQuantumFormat);
if (status == MagickFalse)
ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
@@ -1291,7 +1392,7 @@ static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
sync;
- register Quantum
+ Quantum
*magick_restrict q;
ssize_t
@@ -1441,6 +1542,12 @@ ModuleExport size_t RegisterPNMImage(void)
entry->mime_type=ConstantString("image/x-portable-greymap");
entry->flags|=CoderDecoderSeekableStreamFlag;
(void) RegisterMagickInfo(entry);
+ entry=AcquireMagickInfo("PNM","PHM","Portable half float format");
+ entry->decoder=(DecodeImageHandler *) ReadPNMImage;
+ entry->encoder=(EncodeImageHandler *) WritePNMImage;
+ entry->flags|=CoderEndianSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
+ (void) RegisterMagickInfo(entry);
entry=AcquireMagickInfo("PNM","PNM","Portable anymap");
entry->decoder=(DecodeImageHandler *) ReadPNMImage;
entry->encoder=(EncodeImageHandler *) WritePNMImage;
@@ -1541,7 +1648,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
QuantumType
quantum_type;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -1614,6 +1721,15 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
format='2';
break;
}
+ case 'H':
+ case 'h':
+ {
+ format='H';
+ if ((image_info->type != TrueColorType) &&
+ (SetImageGray(image,exception) != MagickFalse))
+ format='h';
+ break;
+ }
case 'N':
case 'n':
{
@@ -1645,7 +1761,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
value=GetImageProperty(image,"comment",exception);
if (value != (const char *) NULL)
{
- register const char
+ const char
*p;
/*
@@ -1739,10 +1855,10 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
q=pixels;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1797,10 +1913,10 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
q=pixels;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1867,10 +1983,10 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
q=pixels;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1925,7 +2041,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
}
case '4':
{
- register unsigned char
+ unsigned char
*pixels;
/*
@@ -1941,7 +2057,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
pixels=GetQuantumPixels(quantum_info);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1965,7 +2081,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
}
case '5':
{
- register unsigned char
+ unsigned char
*pixels;
/*
@@ -1984,10 +2100,10 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
extent=GetQuantumExtent(image,quantum_info,GrayQuantum);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2083,7 +2199,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
}
case '6':
{
- register unsigned char
+ unsigned char
*pixels;
/*
@@ -2103,10 +2219,10 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
extent=GetQuantumExtent(image,quantum_info,quantum_type);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2185,7 +2301,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
}
case '7':
{
- register unsigned char
+ unsigned char
*pixels;
/*
@@ -2200,10 +2316,10 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
pixels=GetQuantumPixels(quantum_info);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2435,7 +2551,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
case 'F':
case 'f':
{
- register unsigned char
+ unsigned char
*pixels;
(void) WriteBlobString(image,image->endian == LSBEndian ? "-1.0\n" :
@@ -2451,7 +2567,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
pixels=GetQuantumPixels(quantum_info);
for (y=(ssize_t) image->rows-1; y >= 0; y--)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2471,6 +2587,47 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
quantum_info=DestroyQuantumInfo(quantum_info);
break;
}
+ case 'H':
+ case 'h':
+ {
+ unsigned char
+ *pixels;
+
+ (void) WriteBlobString(image,image->endian == LSBEndian ? "-1.0\n" :
+ "1.0\n");
+ image->depth=16;
+ quantum_type=format == 'h' ? GrayQuantum : RGBQuantum;
+ quantum_info=AcquireQuantumInfo(image_info,image);
+ if (quantum_info == (QuantumInfo *) NULL)
+ ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+ status=SetQuantumFormat(image,quantum_info,FloatingPointQuantumFormat);
+ if (status == MagickFalse)
+ ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+ pixels=GetQuantumPixels(quantum_info);
+ for (y=(ssize_t) image->rows-1; y >= 0; y--)
+ {
+ const Quantum
+ *magick_restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+ if (p == (const Quantum *) NULL)
+ break;
+ extent=ExportQuantumPixels(image,(CacheView *) NULL,quantum_info,
+ quantum_type,pixels,exception);
+ (void) WriteBlob(image,extent,pixels);
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
+ image->rows);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ quantum_info=DestroyQuantumInfo(quantum_info);
+ break;
+ }
+ default:
+ break;
}
if (GetNextImageInList(image) == (Image *) NULL)
break;
diff --git a/coders/pnm.h b/coders/pnm.h
index b89792c6b..0a27828dc 100644
--- a/coders/pnm.h
+++ b/coders/pnm.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -25,12 +25,15 @@
MagickCoderHeader("PPM", 0, "P6") \
MagickCoderHeader("PAM", 0, "P7") \
MagickCoderHeader("PFM", 0, "PF") \
- MagickCoderHeader("PFM", 0, "Pf")
+ MagickCoderHeader("PFM", 0, "Pf") \
+ MagickCoderHeader("PHM", 0, "PH") \
+ MagickCoderHeader("PHM", 0, "Ph")
#define MagickPNMAliases \
MagickCoderAlias("PNM", "PAM") \
MagickCoderAlias("PNM", "PBM") \
MagickCoderAlias("PNM", "PFM") \
+ MagickCoderAlias("PNM", "PHM") \
MagickCoderAlias("PNM", "PGM") \
MagickCoderAlias("PNM", "PPM")
@@ -42,4 +45,4 @@ MagickCoderExports(PNM)
#if defined(__cplusplus) || defined(c_plusplus)
}
-#endif \ No newline at end of file
+#endif
diff --git a/coders/ps.c b/coders/ps.c
index 54607c652..3925b314d 100644
--- a/coders/ps.c
+++ b/coders/ps.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -179,7 +179,7 @@ static inline int ProfileInteger(MagickByteBuffer *buffer,short int *hex_digits)
l,
value;
- register ssize_t
+ ssize_t
i;
l=0;
@@ -235,10 +235,10 @@ static void ReadPSInfo(const ImageInfo *image_info,Image *image,
MagickByteBuffer
buffer;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
SegmentInfo
@@ -385,7 +385,7 @@ static void ReadPSInfo(const ImageInfo *image_info,Image *image,
i=0;
for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
{
- if ((isspace(c) != 0) || ((i+1) == sizeof(name)))
+ if ((isspace((int) ((unsigned char) c)) != 0) || ((i+1) == sizeof(name)))
break;
name[i++]=(char) c;
}
@@ -574,7 +574,7 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
RectangleInfo
page;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -732,6 +732,8 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
options=AcquireString("");
(void) FormatLocaleString(density,MagickPathExtent,"%gx%g",resolution.x,
resolution.y);
+ if (image_info->ping != MagickFalse)
+ (void) FormatLocaleString(density,MagickPathExtent,"2.0x2.0");
(void) FormatLocaleString(options,MagickPathExtent,"-g%.20gx%.20g ",(double)
page.width,(double) page.height);
read_info=CloneImageInfo(image_info);
@@ -865,6 +867,13 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
if (info.rows != 0)
postscript_image->magick_rows=info.rows;
postscript_image->page=page;
+ if (image_info->ping != MagickFalse)
+ {
+ postscript_image->magick_columns*=image->resolution.x/2.0;
+ postscript_image->magick_rows*=image->resolution.y/2.0;
+ postscript_image->columns*=image->resolution.x/2.0;
+ postscript_image->rows*=image->resolution.y/2.0;
+ }
(void) CloneImageProfiles(postscript_image,image);
(void) CloneImageProperties(postscript_image,image);
next=SyncNextImageInList(postscript_image);
@@ -1020,7 +1029,7 @@ ModuleExport void UnregisterPSImage(void)
static inline unsigned char *PopHexPixel(const char hex_digits[][3],
const size_t pixel,unsigned char *pixels)
{
- register const char
+ const char
*hex;
hex=hex_digits[pixel];
@@ -1372,14 +1381,14 @@ static MagickBooleanType WritePSImage(const ImageInfo *image_info,Image *image,
media_info,
page_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
SegmentInfo
@@ -1583,7 +1592,7 @@ static MagickBooleanType WritePSImage(const ImageInfo *image_info,Image *image,
Quantum
pixel;
- register ssize_t
+ ssize_t
x;
ssize_t
diff --git a/coders/ps.h b/coders/ps.h
index 847c04acb..a844b9424 100644
--- a/coders/ps.h
+++ b/coders/ps.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/ps2.c b/coders/ps2.c
index 98cbc8741..16c10ca8b 100644
--- a/coders/ps2.c
+++ b/coders/ps2.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -420,13 +420,13 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
media_info,
page_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register ssize_t
+ ssize_t
i;
SegmentInfo
@@ -769,7 +769,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
MemoryInfo
*pixel_info;
- register unsigned char
+ unsigned char
*q;
/*
@@ -868,7 +868,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
MemoryInfo
*pixel_info;
- register unsigned char
+ unsigned char
*q;
/*
@@ -1019,7 +1019,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
MemoryInfo
*pixel_info;
- register unsigned char
+ unsigned char
*q;
/*
diff --git a/coders/ps2.h b/coders/ps2.h
index cc5b75fc0..56671998f 100644
--- a/coders/ps2.h
+++ b/coders/ps2.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/ps3.c b/coders/ps3.c
index 45affdb4d..02795ca31 100644
--- a/coders/ps3.c
+++ b/coders/ps3.c
@@ -18,7 +18,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -244,13 +244,13 @@ static MagickBooleanType SerializeImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*q;
ssize_t
@@ -267,6 +267,7 @@ static MagickBooleanType SerializeImage(const ImageInfo *image_info,
if (*pixel_info == (MemoryInfo *) NULL)
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
q=(unsigned char *) GetVirtualMemoryBlob(*pixel_info);
+ (void) memset(q,0,*length*sizeof(*q));
for (y=0; y < (ssize_t) image->rows; y++)
{
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -308,13 +309,13 @@ static MagickBooleanType SerializeImageChannel(const ImageInfo *image_info,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -385,13 +386,13 @@ static MagickBooleanType SerializeImageIndexes(const ImageInfo *image_info,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*q;
ssize_t
@@ -450,7 +451,7 @@ static MagickBooleanType WritePS3MaskImage(const ImageInfo *image_info,
MemoryInfo
*pixel_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -854,7 +855,7 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
media_info,
page_info;
- register ssize_t
+ ssize_t
i;
SegmentInfo
diff --git a/coders/ps3.h b/coders/ps3.h
index 1b2a10fda..0ac43b7ac 100644
--- a/coders/ps3.h
+++ b/coders/ps3.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/psd-private.h b/coders/psd-private.h
index 617e72626..b090cac8f 100644
--- a/coders/psd-private.h
+++ b/coders/psd-private.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/psd.c b/coders/psd.c
index 9691027ff..319628061 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -20,7 +20,7 @@
% December 2013 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -325,10 +325,10 @@ static MagickBooleanType CorrectPSDAlphaBlend(const ImageInfo *image_info,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -344,7 +344,7 @@ static MagickBooleanType CorrectPSDAlphaBlend(const ImageInfo *image_info,
double
gamma;
- register ssize_t
+ ssize_t
i;
gamma=QuantumScale*GetPixelAlpha(image, q);
@@ -404,10 +404,10 @@ static MagickBooleanType ApplyPSDLayerOpacity(Image *image,Quantum opacity,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -476,13 +476,13 @@ static MagickBooleanType ApplyPSDOpacityMask(Image *image,const Image *mask,
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register Quantum
+ Quantum
*p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
@@ -563,7 +563,7 @@ static ssize_t DecodePSDPixels(const size_t number_compact_pixels,
int
pixel;
- register ssize_t
+ ssize_t
i,
j;
@@ -1003,13 +1003,13 @@ static MagickBooleanType ReadPSDChannelPixels(Image *image,
Quantum
pixel;
- register const unsigned char
+ const unsigned char
*p;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
size_t
@@ -1216,7 +1216,7 @@ static MagickBooleanType ReadPSDChannelRLE(Image *image,const PSDInfo *psd_info,
static void Unpredict8Bit(const Image *image,unsigned char *pixels,
const size_t count,const size_t row_size)
{
- register unsigned char
+ unsigned char
*p;
size_t
@@ -1241,7 +1241,7 @@ static void Unpredict8Bit(const Image *image,unsigned char *pixels,
static void Unpredict16Bit(const Image *image,unsigned char *pixels,
const size_t count,const size_t row_size)
{
- register unsigned char
+ unsigned char
*p;
size_t
@@ -1267,11 +1267,11 @@ static void Unpredict16Bit(const Image *image,unsigned char *pixels,
static void Unpredict32Bit(const Image *image,unsigned char *pixels,
unsigned char *output_pixels,const size_t row_size)
{
- register unsigned char
+ unsigned char
*p,
*q;
- register ssize_t
+ ssize_t
y;
size_t
@@ -1320,7 +1320,7 @@ static MagickBooleanType ReadPSDChannelZip(Image *image,const size_t channels,
MagickBooleanType
status;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -1328,7 +1328,7 @@ static MagickBooleanType ReadPSDChannelZip(Image *image,const size_t channels,
packet_size,
row_size;
- register ssize_t
+ ssize_t
y;
unsigned char
@@ -1642,7 +1642,7 @@ static MagickBooleanType CheckPSDChannels(const PSDInfo *psd_info,
int
channel_type;
- register ssize_t
+ ssize_t
i;
if (layer_info->channels < psd_info->min_channels)
@@ -1687,7 +1687,7 @@ static MagickBooleanType CheckPSDChannels(const PSDInfo *psd_info,
static void AttachPSDLayers(Image *image,LayerInfo *layer_info,
ssize_t number_layers)
{
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -1869,7 +1869,7 @@ static MagickBooleanType ReadPSDLayersInternal(Image *image,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2241,7 +2241,7 @@ static MagickBooleanType ReadPSDMergedImage(const ImageInfo *image_info,
PSDCompressionType
compression;
- register ssize_t
+ ssize_t
i;
if ((image_info->number_scenes != 0) && (image_info->scene != 0))
@@ -2320,7 +2320,7 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception)
PSDInfo
psd_info;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2603,6 +2603,12 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception)
image->background_color.alpha_trait=BlendPixelTrait;
(void) SetImageBackgroundColor(image,exception);
merged=MergeImageLayers(image,FlattenLayer,exception);
+ if (merged == (Image *) NULL)
+ {
+ (void) CloseBlob(image);
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
ReplaceImageInList(&image,merged);
}
if (profile != (StringInfo *) NULL)
@@ -2781,11 +2787,11 @@ static size_t PSDPackbitsEncodeImage(Image *image,const size_t length,
int
count;
- register ssize_t
+ ssize_t
i,
j;
- register unsigned char
+ unsigned char
*q;
unsigned char
@@ -2924,10 +2930,10 @@ static size_t WritePSDChannel(const PSDInfo *psd_info,
QuantumInfo
*quantum_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3238,7 +3244,7 @@ static size_t WritePascalString(Image *image,const char *value,size_t padding)
count,
length;
- register ssize_t
+ ssize_t
i;
/*
@@ -3307,7 +3313,7 @@ static inline size_t WriteChannelSize(const PSDInfo *psd_info,Image *image,
static void RemoveICCProfileFromResourceBlock(StringInfo *bim_profile)
{
- register const unsigned char
+ const unsigned char
*p;
size_t
@@ -3330,7 +3336,7 @@ static void RemoveICCProfileFromResourceBlock(StringInfo *bim_profile)
datum=GetStringInfoDatum(bim_profile);
for (p=datum; (p >= datum) && (p < (datum+length-16)); )
{
- register unsigned char
+ unsigned char
*q;
q=(unsigned char *) p;
@@ -3362,7 +3368,7 @@ static void RemoveICCProfileFromResourceBlock(StringInfo *bim_profile)
static void RemoveResolutionFromResourceBlock(StringInfo *bim_profile)
{
- register const unsigned char
+ const unsigned char
*p;
size_t
@@ -3385,7 +3391,7 @@ static void RemoveResolutionFromResourceBlock(StringInfo *bim_profile)
datum=GetStringInfoDatum(bim_profile);
for (p=datum; (p >= datum) && (p < (datum+length-16)); )
{
- register unsigned char
+ unsigned char
*q;
ssize_t
@@ -3439,7 +3445,7 @@ static const StringInfo *GetAdditionalInformation(const ImageInfo *image_info,
MagickBooleanType
found;
- register size_t
+ size_t
i;
size_t
@@ -3538,7 +3544,7 @@ static MagickBooleanType WritePSDLayersInternal(Image *image,
*layer_size_offsets,
size_offset;
- register ssize_t
+ ssize_t
i;
size_t
@@ -3751,7 +3757,7 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info,
PSDInfo
psd_info;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/psd.h b/coders/psd.h
index dcd31ce19..ab36e1125 100644
--- a/coders/psd.h
+++ b/coders/psd.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/pwp.c b/coders/pwp.c
index d09fbbc67..8d4e4ef59 100644
--- a/coders/pwp.c
+++ b/coders/pwp.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -142,10 +142,10 @@ static Image *ReadPWPImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register Image
+ Image
*p;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/pwp.h b/coders/pwp.h
index b25bd515b..c786a73ce 100644
--- a/coders/pwp.h
+++ b/coders/pwp.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/raw.c b/coders/raw.c
index cfef622bd..cac2ea008 100644
--- a/coders/raw.c
+++ b/coders/raw.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -207,13 +207,13 @@ static Image *ReadRAWImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -462,7 +462,7 @@ static MagickBooleanType WriteRAWImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
size_t
diff --git a/coders/raw.h b/coders/raw.h
index 063413f50..d96f7960e 100644
--- a/coders/raw.h
+++ b/coders/raw.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/rgb.c b/coders/rgb.c
index 324d0481e..e1be857e6 100644
--- a/coders/rgb.c
+++ b/coders/rgb.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -118,7 +118,7 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
size_t
@@ -231,13 +231,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -314,13 +314,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
for (i=0; i < (ssize_t) (image->alpha_trait != UndefinedPixelTrait ? 4 : 3); i++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -410,13 +410,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -462,13 +462,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -514,13 +514,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -568,13 +568,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -659,13 +659,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -729,13 +729,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -799,13 +799,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -871,13 +871,13 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -1111,13 +1111,13 @@ static Image *ReadRGB565Image(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -1390,7 +1390,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1418,7 +1418,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1472,7 +1472,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1492,7 +1492,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1512,7 +1512,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1534,7 +1534,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
{
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1576,7 +1576,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1602,7 +1602,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1628,7 +1628,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1656,7 +1656,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
return(status);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/rgb.h b/coders/rgb.h
index d8a5d4133..a222f7e93 100644
--- a/coders/rgb.h
+++ b/coders/rgb.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/rgf.c b/coders/rgf.c
index 61708a4f1..904ca5fc7 100644
--- a/coders/rgf.c
+++ b/coders/rgf.c
@@ -17,7 +17,7 @@
% August 2013 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -107,14 +107,14 @@ static Image *ReadRGFImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
ssize_t
@@ -313,10 +313,10 @@ static MagickBooleanType WriteRGFImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
size_t
diff --git a/coders/rgf.h b/coders/rgf.h
index 748321357..5a6dc154a 100644
--- a/coders/rgf.h
+++ b/coders/rgf.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/rla.c b/coders/rla.c
index d2a4f0f23..b14e91f2b 100644
--- a/coders/rla.c
+++ b/coders/rla.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -170,11 +170,11 @@ static Image *ReadRLAImage(const ImageInfo *image_info,ExceptionInfo *exception)
offset,
*scanlines;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
ssize_t
diff --git a/coders/rla.h b/coders/rla.h
index 89d44676c..cab7a5aee 100644
--- a/coders/rla.h
+++ b/coders/rla.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/rle.c b/coders/rle.c
index 1d40860f8..bfa0f7000 100644
--- a/coders/rle.c
+++ b/coders/rle.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -164,16 +164,16 @@ static Image *ReadRLEImage(const ImageInfo *image_info,ExceptionInfo *exception)
Quantum
index;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p;
size_t
diff --git a/coders/rle.h b/coders/rle.h
index c08f1d725..c6b52599d 100644
--- a/coders/rle.h
+++ b/coders/rle.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/scr.c b/coders/scr.c
index 60b588630..ec6c42e7a 100644
--- a/coders/scr.c
+++ b/coders/scr.c
@@ -17,7 +17,7 @@
% October 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -131,7 +131,7 @@ static Image *ReadSCRImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register Quantum
+ Quantum
*q;
ssize_t
diff --git a/coders/scr.h b/coders/scr.h
index 928d87632..a87b0f3e3 100644
--- a/coders/scr.h
+++ b/coders/scr.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/screenshot.c b/coders/screenshot.c
index 166b6d2be..7da966f4d 100644
--- a/coders/screenshot.c
+++ b/coders/screenshot.c
@@ -17,7 +17,7 @@
% April 2014 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -140,10 +140,10 @@ static Image *ReadSCREENSHOTImage(const ImageInfo *image_info,
RectangleInfo
geometry;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
RGBQUAD
diff --git a/coders/screenshot.h b/coders/screenshot.h
index a414a4bb5..10dd6f1ad 100644
--- a/coders/screenshot.h
+++ b/coders/screenshot.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/sct.c b/coders/sct.c
index df6b0eaf3..6c4562824 100644
--- a/coders/sct.c
+++ b/coders/sct.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -140,11 +140,11 @@ static Image *ReadSCTImage(const ImageInfo *image_info,ExceptionInfo *exception)
Quantum
pixel;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
ssize_t
diff --git a/coders/sct.h b/coders/sct.h
index ce7f12d5b..639dcfdf8 100644
--- a/coders/sct.h
+++ b/coders/sct.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/sfw.c b/coders/sfw.c
index 7923fd721..00db9b83a 100644
--- a/coders/sfw.c
+++ b/coders/sfw.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -123,7 +123,7 @@ static MagickBooleanType IsSFW(const unsigned char *magick,const size_t length)
static unsigned char *SFWScan(const unsigned char *p,const unsigned char *q,
const unsigned char *target,const size_t length)
{
- register ssize_t
+ ssize_t
i;
while ((p+length) < q)
@@ -216,7 +216,7 @@ static Image *ReadSFWImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register unsigned char
+ unsigned char
*header,
*data;
diff --git a/coders/sfw.h b/coders/sfw.h
index 81aa88906..8d47ebf0a 100644
--- a/coders/sfw.h
+++ b/coders/sfw.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/sgi.c b/coders/sgi.c
index 4eabb5b79..ab276b0c5 100644
--- a/coders/sgi.c
+++ b/coders/sgi.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -168,7 +168,7 @@ static MagickBooleanType SGIDecode(const size_t bytes_per_pixel,
ssize_t number_packets,unsigned char *packets,ssize_t number_pixels,
unsigned char *pixels)
{
- register unsigned char
+ unsigned char
*p,
*q;
@@ -268,14 +268,14 @@ static Image *ReadSGIImage(const ImageInfo *image_info,ExceptionInfo *exception)
MemoryInfo
*pixel_info;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*p;
SGIInfo
@@ -852,7 +852,7 @@ static size_t SGIEncode(unsigned char *pixels,size_t length,
short
runlength;
- register unsigned char
+ unsigned char
*p,
*q;
@@ -923,14 +923,14 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image,
SGIInfo
iris_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -1043,7 +1043,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image,
if (image->depth <= 8)
for (x=0; x < (ssize_t) image->columns; x++)
{
- register unsigned char
+ unsigned char
*q;
q=(unsigned char *) pixels;
@@ -1057,7 +1057,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image,
else
for (x=0; x < (ssize_t) image->columns; x++)
{
- register unsigned short
+ unsigned short
*q;
q=(unsigned short *) pixels;
@@ -1090,7 +1090,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image,
if (image->depth <= 8)
for (x=0; x < (ssize_t) iris_info.columns; x++)
{
- register unsigned char
+ unsigned char
*q;
q=(unsigned char *) pixels;
@@ -1100,7 +1100,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image,
else
for (x=0; x < (ssize_t) iris_info.columns; x++)
{
- register unsigned short
+ unsigned short
*q;
q=(unsigned short *) pixels;
diff --git a/coders/sgi.h b/coders/sgi.h
index 69be6405f..74801f356 100644
--- a/coders/sgi.h
+++ b/coders/sgi.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/sixel.c b/coders/sixel.c
index c6d45d90f..a6acef070 100644
--- a/coders/sixel.c
+++ b/coders/sixel.c
@@ -18,7 +18,7 @@
% Based on kmiya's sixel (2014-03-28) %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -77,7 +77,7 @@
/*
Definitions
*/
-#define SIXEL_PALETTE_MAX 256
+#define SIXEL_PALETTE_MAX 1024
#define SIXEL_OUTPUT_PACKET_SIZE 1024
/*
@@ -87,6 +87,8 @@
#define SIXEL_PALVAL(n,a,m) ((int) (((ssize_t) (n) * (a) + ((m) / 2)) / (m)))
#define SIXEL_XRGB(r,g,b) SIXEL_RGB(SIXEL_PALVAL(r, 255, 100), SIXEL_PALVAL(g, 255, 100), SIXEL_PALVAL(b, 255, 100))
+typedef unsigned short sixel_pixel_t;
+
/*
Structure declarations.
*/
@@ -95,7 +97,7 @@ typedef struct sixel_node {
int color;
int left;
int right;
- unsigned char *map;
+ sixel_pixel_t *map;
} sixel_node_t;
typedef struct sixel_output {
@@ -229,11 +231,11 @@ static unsigned char *get_params(unsigned char *p, int *param, int *len)
/* convert sixel data into indexed pixel bytes and palette data */
MagickBooleanType sixel_decode(Image *image,
unsigned char /* in */ *p, /* sixel bytes */
- unsigned char /* out */ **pixels, /* decoded pixels */
+ sixel_pixel_t /* out */ **pixels, /* decoded pixels */
size_t /* out */ *pwidth, /* image width */
size_t /* out */ *pheight, /* image height */
unsigned char /* out */ **palette, /* ARGB palette */
- size_t /* out */ *ncolors, /* palette size (<= 256) */
+ size_t /* out */ *ncolors, /* palette size (<= SIXEL_PALETTE_MAX) */
ExceptionInfo *exception)
{
int n, i, r, g, b, sixel_vertical_mask, c;
@@ -244,10 +246,10 @@ MagickBooleanType sixel_decode(Image *image,
int repeat_count, color_index, max_color_index = 2, background_color_index;
int param[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
int sixel_palet[SIXEL_PALETTE_MAX];
- unsigned char *imbuf, *dmbuf;
+ sixel_pixel_t *imbuf, *dmbuf;
int imsx, imsy;
int dmsx, dmsy;
- int y;
+ int x, y;
size_t extent,offset;
extent=strlen((char *) p);
@@ -264,7 +266,7 @@ MagickBooleanType sixel_decode(Image *image,
imsy = 2048;
if (SetImageExtent(image,imsx,imsy,exception) == MagickFalse)
return(MagickFalse);
- imbuf = (unsigned char *) AcquireQuantumMemory(imsx , imsy);
+ imbuf = (sixel_pixel_t *) AcquireQuantumMemory(imsx * imsy, sizeof(sixel_pixel_t));
if (imbuf == NULL) {
return(MagickFalse);
@@ -291,7 +293,9 @@ MagickBooleanType sixel_decode(Image *image,
sixel_palet[n] = SIXEL_RGB(255, 255, 255);
}
- (void) memset(imbuf, background_color_index, (size_t) imsx * imsy);
+ for (i = 0; i < imsx * imsy; i++) {
+ imbuf[i] = background_color_index;
+ }
while (*p != '\0') {
if ((p[0] == '\033' && p[1] == 'P') || *p == 0x90) {
@@ -367,16 +371,16 @@ MagickBooleanType sixel_decode(Image *image,
dmsy = imsy > attributed_pv ? imsy : attributed_pv;
if (SetImageExtent(image,dmsx,dmsy,exception) == MagickFalse)
break;
- dmbuf = (unsigned char *) AcquireQuantumMemory(dmsx , dmsy);
- if (dmbuf == (unsigned char *) NULL) {
- imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+ dmbuf = (sixel_pixel_t *) AcquireQuantumMemory(dmsx,dmsy*sizeof(sixel_pixel_t));
+ if (dmbuf == (sixel_pixel_t *) NULL) {
+ imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
return (MagickFalse);
}
- (void) memset(dmbuf, background_color_index, (size_t) dmsx * dmsy);
+ (void) memset(dmbuf, background_color_index, (size_t) dmsx * dmsy * sizeof(sixel_pixel_t));
for (y = 0; y < imsy; ++y) {
- (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, imsx);
+ (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, imsx * sizeof(sixel_pixel_t));
}
- imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+ imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
imsx = dmsx;
imsy = dmsy;
imbuf = dmbuf;
@@ -445,16 +449,16 @@ MagickBooleanType sixel_decode(Image *image,
dmsy = ny;
if (SetImageExtent(image,dmsx,dmsy,exception) == MagickFalse)
break;
- dmbuf = (unsigned char *) AcquireQuantumMemory(dmsx , dmsy);
- if (dmbuf == (unsigned char *) NULL) {
- imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+ dmbuf = (sixel_pixel_t *) AcquireQuantumMemory(dmsx, dmsy*sizeof(sixel_pixel_t));
+ if (dmbuf == (sixel_pixel_t *) NULL) {
+ imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
return (MagickFalse);
}
- (void) memset(dmbuf, background_color_index, (size_t) dmsx * dmsy);
+ (void) memset(dmbuf, background_color_index, (size_t) dmsx * dmsy * sizeof(sixel_pixel_t));
for (y = 0; y < imsy; ++y) {
- (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, imsx);
+ (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, imsx * sizeof(sixel_pixel_t));
}
- imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+ imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
imsx = dmsx;
imsy = dmsy;
imbuf = dmbuf;
@@ -475,7 +479,7 @@ MagickBooleanType sixel_decode(Image *image,
offset=(size_t) imsx * (posision_y + i) + posision_x;
if (offset >= (size_t) imsx * imsy)
{
- imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+ imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
return (MagickFalse);
}
imbuf[offset] = color_index;
@@ -504,10 +508,12 @@ MagickBooleanType sixel_decode(Image *image,
offset=(size_t) imsx * y + posision_x;
if (offset + repeat_count >= (size_t) imsx * imsy)
{
- imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+ imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
return (MagickFalse);
}
- (void) memset(imbuf + offset, color_index, repeat_count);
+ for (x = 0; x < repeat_count; x++) {
+ imbuf[offset+x] = color_index;
+ }
}
if (max_x < (posision_x + repeat_count - 1)) {
max_x = posision_x + repeat_count - 1;
@@ -542,17 +548,17 @@ MagickBooleanType sixel_decode(Image *image,
dmsy = max_y;
if (SetImageExtent(image,dmsx,dmsy,exception) == MagickFalse)
{
- imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+ imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
return (MagickFalse);
}
- if ((dmbuf = (unsigned char *) AcquireQuantumMemory(dmsx , dmsy)) == NULL) {
- imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+ if ((dmbuf = (sixel_pixel_t *) AcquireQuantumMemory(dmsx,dmsy*sizeof(sixel_pixel_t))) == NULL) {
+ imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
return (MagickFalse);
}
for (y = 0; y < dmsy; ++y) {
- (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, dmsx);
+ (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, dmsx * sizeof(sixel_pixel_t));
}
- imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+ imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
imsx = dmsx;
imsy = dmsy;
imbuf = dmbuf;
@@ -706,7 +712,7 @@ static int sixel_put_node(sixel_output_t *const context, int x,
return x;
}
-static MagickBooleanType sixel_encode_impl(unsigned char *pixels, size_t width,size_t height,
+static MagickBooleanType sixel_encode_impl(sixel_pixel_t *pixels, size_t width,size_t height,
unsigned char *palette, size_t ncolors, int keycolor,
sixel_output_t *context)
{
@@ -715,12 +721,12 @@ static MagickBooleanType sixel_encode_impl(unsigned char *pixels, size_t width,s
context->node_free = np->next; \
np=(sixel_node_t *) RelinquishMagickMemory(np); \
} \
- map = (unsigned char *) RelinquishMagickMemory(map)
+ map = (sixel_pixel_t *) RelinquishMagickMemory(map)
int x, y, i, n, c;
int left, right;
int pix;
- unsigned char *map;
+ sixel_pixel_t *map;
sixel_node_t *np, *tp, top;
int nwrite;
size_t len;
@@ -733,10 +739,10 @@ static MagickBooleanType sixel_encode_impl(unsigned char *pixels, size_t width,s
len = ncolors * width;
context->active_palette = (-1);
- if ((map = (unsigned char *)AcquireQuantumMemory(len, sizeof(unsigned char))) == NULL) {
+ if ((map = (sixel_pixel_t *)AcquireQuantumMemory(len, sizeof(sixel_pixel_t))) == NULL) {
return (MagickFalse);
}
- (void) memset(map, 0, len);
+ (void) memset(map, 0, len * sizeof(sixel_pixel_t));
if (context->has_8bit_control) {
nwrite = sprintf((char *)context->buffer, "\x90" "0;0;0" "q");
@@ -773,7 +779,6 @@ static MagickBooleanType sixel_encode_impl(unsigned char *pixels, size_t width,s
}
}
}
-
for (y = i = 0; y < (ssize_t) height; y++) {
for (x = 0; x < (ssize_t) width; x++) {
pix = pixels[y * width + x];
@@ -876,7 +881,7 @@ static MagickBooleanType sixel_encode_impl(unsigned char *pixels, size_t width,s
}
i = 0;
- (void) memset(map, 0, len);
+ (void) memset(map, 0, len * sizeof(sixel_pixel_t));
}
if (context->has_8bit_control) {
@@ -987,13 +992,13 @@ static Image *ReadSIXELImage(const ImageInfo *image_info,ExceptionInfo *exceptio
MagickBooleanType
status;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
size_t
@@ -1004,8 +1009,10 @@ static Image *ReadSIXELImage(const ImageInfo *image_info,ExceptionInfo *exceptio
j,
y;
+ sixel_pixel_t
+ *sixel_pixels;
+
unsigned char
- *sixel_pixels,
*sixel_palette;
/*
@@ -1055,12 +1062,12 @@ static Image *ReadSIXELImage(const ImageInfo *image_info,ExceptionInfo *exceptio
/*
Decode SIXEL
*/
- sixel_pixels=(unsigned char *) NULL;
+ sixel_pixels=(sixel_pixel_t *) NULL;
if (sixel_decode(image,(unsigned char *) sixel_buffer,&sixel_pixels,&image->columns,&image->rows,&sixel_palette,&image->colors,exception) == MagickFalse)
{
sixel_buffer=(char *) RelinquishMagickMemory(sixel_buffer);
- if (sixel_pixels != (unsigned char *) NULL)
- sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+ if (sixel_pixels != (sixel_pixel_t *) NULL)
+ sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
ThrowReaderException(CorruptImageError,"CorruptImage");
}
sixel_buffer=(char *) RelinquishMagickMemory(sixel_buffer);
@@ -1069,14 +1076,14 @@ static Image *ReadSIXELImage(const ImageInfo *image_info,ExceptionInfo *exceptio
status=SetImageExtent(image,image->columns,image->rows,exception);
if (status == MagickFalse)
{
- sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+ sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
sixel_palette=(unsigned char *) RelinquishMagickMemory(sixel_palette);
return(DestroyImageList(image));
}
if (AcquireImageColormap(image,image->colors, exception) == MagickFalse)
{
- sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+ sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
sixel_palette=(unsigned char *) RelinquishMagickMemory(sixel_palette);
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
}
@@ -1108,7 +1115,7 @@ static Image *ReadSIXELImage(const ImageInfo *image_info,ExceptionInfo *exceptio
}
if (y < (ssize_t) image->rows)
{
- sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+ sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
sixel_palette=(unsigned char *) RelinquishMagickMemory(sixel_palette);
ThrowReaderException(CorruptImageError,"NotEnoughPixelData");
}
@@ -1116,7 +1123,7 @@ static Image *ReadSIXELImage(const ImageInfo *image_info,ExceptionInfo *exceptio
/*
Relinquish resources.
*/
- sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+ sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
sixel_palette=(unsigned char *) RelinquishMagickMemory(sixel_palette);
(void) CloseBlob(image);
return(GetFirstImageInList(image));
@@ -1223,10 +1230,10 @@ static MagickBooleanType WriteSIXELImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
@@ -1238,7 +1245,9 @@ static MagickBooleanType WriteSIXELImage(const ImageInfo *image_info,
*output;
unsigned char
- sixel_palette[256*3],
+ sixel_palette[SIXEL_PALETTE_MAX*3];
+
+ sixel_pixel_t
*sixel_pixels;
/*
@@ -1258,7 +1267,7 @@ static MagickBooleanType WriteSIXELImage(const ImageInfo *image_info,
opacity=(-1);
if (image->alpha_trait == UndefinedPixelTrait)
{
- if ((image->storage_class == DirectClass) || (image->colors > 256))
+ if ((image->storage_class == DirectClass) || (image->colors > SIXEL_PALETTE_MAX))
(void) SetImageType(image,PaletteType,exception);
}
else
@@ -1270,7 +1279,7 @@ static MagickBooleanType WriteSIXELImage(const ImageInfo *image_info,
/*
Identify transparent colormap index.
*/
- if ((image->storage_class == DirectClass) || (image->colors > 256))
+ if ((image->storage_class == DirectClass) || (image->colors > SIXEL_PALETTE_MAX))
(void) SetImageType(image,PaletteBilevelAlphaType,exception);
for (i=0; i < (ssize_t) image->colors; i++)
if (image->colormap[i].alpha != OpaqueAlpha)
@@ -1325,9 +1334,9 @@ static MagickBooleanType WriteSIXELImage(const ImageInfo *image_info,
output = sixel_output_create(image);
if (output == (sixel_output_t *) NULL)
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
- sixel_pixels=(unsigned char *) AcquireQuantumMemory(image->columns,
- image->rows*sizeof(*sixel_pixels));
- if (sixel_pixels == (unsigned char *) NULL)
+ sixel_pixels=(sixel_pixel_t *) AcquireQuantumMemory(image->columns * image->rows,
+ sizeof(sixel_pixel_t));
+ if (sixel_pixels == (sixel_pixel_t *) NULL)
{
output = (sixel_output_t *) RelinquishMagickMemory(output);
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
@@ -1345,7 +1354,7 @@ static MagickBooleanType WriteSIXELImage(const ImageInfo *image_info,
}
status = sixel_encode_impl(sixel_pixels,image->columns,image->rows,
sixel_palette,image->colors,-1,output);
- sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+ sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
output=(sixel_output_t *) RelinquishMagickMemory(output);
(void) CloseBlob(image);
return(status);
diff --git a/coders/sixel.h b/coders/sixel.h
index 1de333324..2b438c65d 100644
--- a/coders/sixel.h
+++ b/coders/sixel.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/stegano.c b/coders/stegano.c
index 0b87fec2b..eb34e263d 100644
--- a/coders/stegano.c
+++ b/coders/stegano.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -111,10 +111,10 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
PixelInfo
pixel;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
size_t
diff --git a/coders/stegano.h b/coders/stegano.h
index f4c82be71..c7b1b87e9 100644
--- a/coders/stegano.h
+++ b/coders/stegano.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/sun.c b/coders/sun.c
index 985fe87df..4c54adc23 100644
--- a/coders/sun.c
+++ b/coders/sun.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -141,10 +141,10 @@ static MagickBooleanType IsSUN(const unsigned char *magick,const size_t length)
static MagickBooleanType DecodeImage(const unsigned char *compressed_pixels,
const size_t length,unsigned char *pixels,size_t extent)
{
- register const unsigned char
+ const unsigned char
*p;
- register unsigned char
+ unsigned char
*q;
ssize_t
@@ -248,14 +248,14 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickSizeType
number_pixels;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -435,14 +435,15 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception)
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
if (HeapOverflowSanityCheckGetSize(sun_info.width,sun_info.depth,&bytes_per_line) != MagickFalse)
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
- if (sun_info.length > GetBlobSize(image))
+ if ((sun_info.type != RT_ENCODED) && (sun_info.length > GetBlobSize(image)))
ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
sun_data=(unsigned char *) AcquireQuantumMemory(sun_info.length,
sizeof(*sun_data));
if (sun_data == (unsigned char *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+ (void) memset(sun_data,0,sun_info.length*sizeof(*sun_data));
count=(ssize_t) ReadBlob(image,sun_info.length,sun_data);
- if (count != (ssize_t) sun_info.length)
+ if ((sun_info.type != RT_ENCODED) && (count != (ssize_t) sun_info.length))
{
sun_data=(unsigned char *) RelinquishMagickMemory(sun_data);
ThrowReaderException(CorruptImageError,"UnableToReadImageData");
@@ -475,8 +476,7 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception)
sun_data=(unsigned char *) RelinquishMagickMemory(sun_data);
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
}
- (void) memset(sun_pixels,0,(pixels_length+image->rows)*
- sizeof(*sun_pixels));
+ (void) memset(sun_pixels,0,(pixels_length+image->rows)*sizeof(*sun_pixels));
if (sun_info.type == RT_ENCODED)
{
status=DecodeImage(sun_data,sun_info.length,sun_pixels,pixels_length);
@@ -489,7 +489,13 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
else
{
- if (sun_info.length > pixels_length)
+ if (EOFBlob(image) != MagickFalse)
+ {
+ ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+ image->filename);
+ break;
+ }
+ if (sun_info.length > (pixels_length+image->rows))
{
sun_data=(unsigned char *) RelinquishMagickMemory(sun_data);
sun_pixels=(unsigned char *) RelinquishMagickMemory(sun_pixels);
@@ -625,12 +631,6 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception)
if (image->storage_class == PseudoClass)
(void) SyncImage(image,exception);
sun_pixels=(unsigned char *) RelinquishMagickMemory(sun_pixels);
- if (EOFBlob(image) != MagickFalse)
- {
- ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
- image->filename);
- break;
- }
/*
Proceed to next image.
*/
@@ -787,10 +787,10 @@ static MagickBooleanType WriteSUNImage(const ImageInfo *image_info,Image *image,
MagickSizeType
number_pixels;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -892,7 +892,7 @@ static MagickBooleanType WriteSUNImage(const ImageInfo *image_info,Image *image,
y=0;
if (image->storage_class == DirectClass)
{
- register unsigned char
+ unsigned char
*q;
size_t
@@ -946,7 +946,7 @@ static MagickBooleanType WriteSUNImage(const ImageInfo *image_info,Image *image,
else
if (SetImageMonochrome(image,exception) != MagickFalse)
{
- register unsigned char
+ unsigned char
bit,
byte;
diff --git a/coders/sun.h b/coders/sun.h
index 21661bbb8..620a11ee6 100644
--- a/coders/sun.h
+++ b/coders/sun.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/svg.c b/coders/svg.c
index d1d70518c..b59a7a1a1 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -18,7 +18,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -652,7 +652,7 @@ static void SVGElementDeclaration(void *context,const xmlChar *name,int type,
static void SVGStripString(const MagickBooleanType trim,char *message)
{
- register char
+ char
*p,
*q;
@@ -716,11 +716,11 @@ static char **SVGKeyValuePairs(void *context,const int key_sentinel,
char
**tokens;
- register const char
+ const char
*p,
*q;
- register ssize_t
+ ssize_t
i;
size_t
@@ -815,7 +815,7 @@ static void SVGProcessStyleElement(void *context,const xmlChar *name,
char
**tokens;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1254,7 +1254,7 @@ static void SVGStartElement(void *context,const xmlChar *name,
*p,
*value;
- register ssize_t
+ ssize_t
i,
j;
@@ -2601,7 +2601,7 @@ static void SVGEndElement(void *context,const xmlChar *name)
}
if (LocaleCompare((const char *) name,"desc") == 0)
{
- register char
+ char
*p;
if (*svg_info->text == '\0')
@@ -2787,7 +2787,7 @@ static void SVGEndElement(void *context,const xmlChar *name)
**tokens,
*value;
- register ssize_t
+ ssize_t
j;
size_t
@@ -2902,10 +2902,10 @@ static void SVGCharacters(void *context,const xmlChar *c,int length)
char
*text;
- register char
+ char
*p;
- register ssize_t
+ ssize_t
i;
SVGInfo
@@ -3265,7 +3265,7 @@ static Image *ReadSVGImage(const ImageInfo *image_info,ExceptionInfo *exception)
MemoryInfo
*pixel_info;
- register unsigned char
+ unsigned char
*p;
RsvgDimensionData
@@ -3278,7 +3278,7 @@ static Image *ReadSVGImage(const ImageInfo *image_info,ExceptionInfo *exception)
GdkPixbuf
*pixel_buffer;
- register const guchar
+ const guchar
*p;
#endif
@@ -3288,10 +3288,10 @@ static Image *ReadSVGImage(const ImageInfo *image_info,ExceptionInfo *exception)
PixelInfo
fill_color;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
RsvgHandle
@@ -3948,10 +3948,10 @@ static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception)
ImageType
type;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -4021,7 +4021,7 @@ static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception)
MagickBooleanType
status;
- register char
+ char
*p;
size_t
@@ -4144,10 +4144,10 @@ static MagickBooleanType WriteSVGImage(const ImageInfo *image_info,Image *image,
PrimitiveType
primitive_type;
- register ssize_t
+ ssize_t
x;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/svg.h b/coders/svg.h
index 9ba5387b0..400ae89fe 100644
--- a/coders/svg.h
+++ b/coders/svg.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/tga.c b/coders/tga.c
index baa80b930..fd7223041 100644
--- a/coders/tga.c
+++ b/coders/tga.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -156,21 +156,21 @@ static Image *ReadTGAImage(const ImageInfo *image_info,ExceptionInfo *exception)
Quantum
index;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i,
x;
size_t
base,
flag,
- offset,
skip;
ssize_t
count,
+ offset,
y;
TGAInfo
@@ -734,16 +734,16 @@ static MagickBooleanType WriteTGAImage(const ImageInfo *image_info,Image *image,
QuantumAny
range;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -994,7 +994,7 @@ static MagickBooleanType WriteTGAImage(const ImageInfo *image_info,Image *image,
offset+=2;
else
offset++;
- if (offset >= image->rows)
+ if (offset >= (ssize_t) image->rows)
{
base++;
offset=base;
diff --git a/coders/tga.h b/coders/tga.h
index 3e1a931e3..0346aadab 100644
--- a/coders/tga.h
+++ b/coders/tga.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/thumbnail.c b/coders/thumbnail.c
index 1f7900aef..59d97380d 100644
--- a/coders/thumbnail.c
+++ b/coders/thumbnail.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -167,7 +167,7 @@ static MagickBooleanType WriteTHUMBNAILImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/thumbnail.h b/coders/thumbnail.h
index 8dd34799c..9ddbd8cf9 100644
--- a/coders/thumbnail.h
+++ b/coders/thumbnail.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/tiff.c b/coders/tiff.c
index 1eecf17ae..92d30724a 100644
--- a/coders/tiff.c
+++ b/coders/tiff.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -254,8 +254,8 @@ static MagickOffsetType TIFFSeekCustomStream(const MagickOffsetType offset,
}
case SEEK_CUR:
{
- if (((offset > 0) && (profile->offset > (SSIZE_MAX-offset))) ||
- ((offset < 0) && (profile->offset < (-SSIZE_MAX-offset))))
+ if (((offset > 0) && (profile->offset > (LONG_MAX-offset))) ||
+ ((offset < 0) && (profile->offset < (LONG_MIN-offset))))
{
errno=EOVERFLOW;
return(-1);
@@ -567,10 +567,10 @@ static MagickBooleanType DecodeLabImage(Image *image,ExceptionInfo *exception)
image_view=AcquireAuthenticCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -838,7 +838,7 @@ static void TIFFGetEXIFProperties(TIFF *tiff,Image *image,
char
value[MagickPathExtent];
- register ssize_t
+ ssize_t
i;
tdir_t
@@ -852,7 +852,7 @@ static void TIFFGetEXIFProperties(TIFF *tiff,Image *image,
offset;
void
- *sans[2] = { NULL, NULL };
+ *sans[4] = { NULL, NULL, NULL, NULL };
/*
Read EXIF properties.
@@ -1066,7 +1066,7 @@ static TIFFMethodType GetJPEGMethod(Image* image,TIFF *tiff,uint16 photometric,
position,
offset;
- register size_t
+ size_t
i;
TIFFMethodType
@@ -1202,7 +1202,7 @@ static void TIFFReadPhotoshopLayers(const ImageInfo *image_info,Image *image,
PSDInfo
info;
- register ssize_t
+ ssize_t
i;
if (GetImageListLength(image) != 1)
@@ -1302,12 +1302,14 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
tiff_status;
MagickBooleanType
- more_frames,
- status;
+ more_frames;
MagickSizeType
number_pixels;
+ MagickStatusType
+ status;
+
MemoryInfo
*pixel_info = (MemoryInfo *) NULL;
@@ -1317,12 +1319,9 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
- size_t
- pad;
-
ssize_t
y;
@@ -1590,8 +1589,10 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
if ((TIFFGetFieldDefaulted(tiff,TIFFTAG_XPOSITION,&x_position,sans) == 1) &&
(TIFFGetFieldDefaulted(tiff,TIFFTAG_YPOSITION,&y_position,sans) == 1))
{
- image->page.x=(ssize_t) ceil(x_position*image->resolution.x-0.5);
- image->page.y=(ssize_t) ceil(y_position*image->resolution.y-0.5);
+ image->page.x=CastDoubleToLong(ceil(x_position*
+ image->resolution.x-0.5));
+ image->page.y=CastDoubleToLong(ceil(y_position*
+ image->resolution.y-0.5));
}
if (TIFFGetFieldDefaulted(tiff,TIFFTAG_ORIENTATION,&orientation,sans) == 1)
image->orientation=(OrientationType) orientation;
@@ -1843,13 +1844,12 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
ThrowTIFFException(ImageError,"WidthOrHeightExceedsLimit");
method=ReadTileMethod;
}
+ if (photometric == PHOTOMETRIC_LOGLUV)
+ method=ReadGenericMethod;
if (image->compression == JPEGCompression)
method=GetJPEGMethod(image,tiff,photometric,bits_per_sample,
samples_per_pixel);
- if (photometric == PHOTOMETRIC_LOGLUV)
- method=ReadGenericMethod;
quantum_info->endian=LSBEndian;
- quantum_type=RGBQuantum;
if (TIFFScanlineSize(tiff) <= 0)
ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
if ((1.0*TIFFScanlineSize(tiff)) > (2.53*GetBlobSize(image)))
@@ -1862,40 +1862,47 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info);
(void) memset(pixels,0,number_pixels*sizeof(uint32));
- quantum_type=IndexQuantum;
- pad=(size_t) MagickMax((ssize_t) samples_per_pixel-1,0);
- if (image->alpha_trait != UndefinedPixelTrait)
- {
- if (image->storage_class == PseudoClass)
- quantum_type=IndexAlphaQuantum;
- else
- quantum_type=samples_per_pixel == 1 ? AlphaQuantum : GrayAlphaQuantum;
- }
- else
- if (image->storage_class != PseudoClass)
- quantum_type=GrayQuantum;
- if ((samples_per_pixel > 2) && (interlace != PLANARCONFIG_SEPARATE))
+ quantum_type=GrayQuantum;
+ if (image->storage_class == PseudoClass)
+ quantum_type=IndexQuantum;
+ if (interlace != PLANARCONFIG_SEPARATE)
{
- pad=(size_t) MagickMax((size_t) samples_per_pixel-3,0);
- quantum_type=RGBQuantum;
+ size_t
+ pad;
+
+ pad=(size_t) MagickMax((ssize_t) samples_per_pixel-1,0);
if (image->alpha_trait != UndefinedPixelTrait)
{
- quantum_type=RGBAQuantum;
- pad=(size_t) MagickMax((size_t) samples_per_pixel-4,0);
+ if (image->storage_class == PseudoClass)
+ quantum_type=IndexAlphaQuantum;
+ else
+ quantum_type=samples_per_pixel == 1 ? AlphaQuantum :
+ GrayAlphaQuantum;
}
- if (image->colorspace == CMYKColorspace)
+ if ((samples_per_pixel > 2) && (interlace != PLANARCONFIG_SEPARATE))
{
- pad=(size_t) MagickMax((size_t) samples_per_pixel-4,0);
- quantum_type=CMYKQuantum;
+ quantum_type=RGBQuantum;
+ pad=(size_t) MagickMax((size_t) samples_per_pixel-3,0);
if (image->alpha_trait != UndefinedPixelTrait)
{
- quantum_type=CMYKAQuantum;
- pad=(size_t) MagickMax((size_t) samples_per_pixel-5,0);
+ quantum_type=RGBAQuantum;
+ pad=(size_t) MagickMax((size_t) samples_per_pixel-4,0);
}
+ if (image->colorspace == CMYKColorspace)
+ {
+ quantum_type=CMYKQuantum;
+ pad=(size_t) MagickMax((size_t) samples_per_pixel-4,0);
+ if (image->alpha_trait != UndefinedPixelTrait)
+ {
+ quantum_type=CMYKAQuantum;
+ pad=(size_t) MagickMax((size_t) samples_per_pixel-5,0);
+ }
+ }
+ status=SetQuantumPad(image,quantum_info,pad*((bits_per_sample+7) >>
+ 3));
+ if (status == MagickFalse)
+ ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
}
- status=SetQuantumPad(image,quantum_info,pad*((bits_per_sample+7) >> 3));
- if (status == MagickFalse)
- ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
}
switch (method)
{
@@ -1906,10 +1913,10 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
unsigned char
@@ -1949,7 +1956,7 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
}
case ReadStripMethod:
{
- register unsigned char
+ unsigned char
*p;
size_t
@@ -1968,14 +1975,14 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
/*
Convert stripped TIFF image.
*/
- extent=TIFFStripSize(tiff);
+ extent=2*TIFFStripSize(tiff);
#if defined(TIFF_VERSION_BIG)
extent+=image->columns*sizeof(uint64);
#else
extent+=image->columns*sizeof(uint32);
#endif
strip_pixels=(unsigned char *) AcquireQuantumMemory(extent,
- 2*sizeof(*strip_pixels));
+ sizeof(*strip_pixels));
if (strip_pixels == (unsigned char *) NULL)
ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
(void) memset(strip_pixels,0,extent*sizeof(*strip_pixels));
@@ -1994,16 +2001,18 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
case 2: quantum_type=BlueQuantum; break;
case 3:
{
+ quantum_type=AlphaQuantum;
if (image->colorspace == CMYKColorspace)
quantum_type=BlackQuantum;
break;
}
case 4: quantum_type=AlphaQuantum; break;
+ default: break;
}
rows_remaining=0;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -2016,7 +2025,7 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
if (strip_size == -1)
break;
rows_remaining=rows_per_strip;
- if ((y+rows_per_strip) > image->rows)
+ if ((y+rows_per_strip) > (ssize_t) image->rows)
rows_remaining=(rows_per_strip-(y+rows_per_strip-
image->rows));
p=strip_pixels;
@@ -2044,7 +2053,7 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
}
case ReadTileMethod:
{
- register unsigned char
+ unsigned char
*p;
size_t
@@ -2086,15 +2095,17 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
case 2: quantum_type=BlueQuantum; break;
case 3:
{
+ quantum_type=AlphaQuantum;
if (image->colorspace == CMYKColorspace)
quantum_type=BlackQuantum;
break;
}
case 4: quantum_type=AlphaQuantum; break;
+ default: break;
}
for (y=0; y < (ssize_t) image->rows; y+=rows)
{
- register ssize_t
+ ssize_t
x;
size_t
@@ -2117,7 +2128,7 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
p=tile_pixels;
for (row=0; row < rows_remaining; row++)
{
- register Quantum
+ Quantum
*magick_restrict q;
q=GetAuthenticPixels(image,x,y+row,columns_remaining,1,
@@ -2151,7 +2162,7 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
MemoryInfo
*generic_info = (MemoryInfo * ) NULL;
- register uint32
+ uint32
*p;
uint32
@@ -2163,7 +2174,11 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
if (HeapOverflowSanityCheck(image->rows,sizeof(*pixels)) != MagickFalse)
ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
number_pixels=(MagickSizeType) image->columns*image->rows;
+#if defined(TIFF_VERSION_BIG)
+ number_pixels+=image->columns*sizeof(uint64);
+#else
number_pixels+=image->columns*sizeof(uint32);
+#endif
generic_info=AcquireVirtualMemory(number_pixels,sizeof(uint32));
if (generic_info == (MemoryInfo *) NULL)
ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
@@ -2173,10 +2188,10 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
p=pixels+(image->columns*image->rows)-1;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*magick_restrict q;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -2304,7 +2319,7 @@ static void TIFFIgnoreTags(TIFF *tiff)
Image
*image;
- register ssize_t
+ ssize_t
i;
size_t
@@ -2421,7 +2436,7 @@ ModuleExport size_t RegisterTIFFImage(void)
const char
*p;
- register ssize_t
+ ssize_t
i;
p=TIFFGetVersion();
@@ -2595,7 +2610,7 @@ static MagickBooleanType WriteGROUP4Image(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
ssize_t
@@ -2889,10 +2904,10 @@ static MagickBooleanType EncodeLabImage(Image *image,ExceptionInfo *exception)
image_view=AcquireAuthenticCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -3004,10 +3019,10 @@ static int32 TIFFWritePixels(TIFF *tiff,TIFFInfo *tiff_info,ssize_t row,
int32
status;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p,
*q;
@@ -3344,7 +3359,7 @@ static void TIFFSetEXIFProperties(TIFF *tiff,Image *image,
const char
*value;
- register ssize_t
+ ssize_t
i;
uint32
@@ -3434,7 +3449,7 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
size_t
@@ -4087,7 +4102,7 @@ RestoreMSCWarning
quantum_type=RGBAQuantum;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4116,7 +4131,7 @@ RestoreMSCWarning
*/
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4135,7 +4150,7 @@ RestoreMSCWarning
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4154,7 +4169,7 @@ RestoreMSCWarning
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4174,7 +4189,7 @@ RestoreMSCWarning
if (image->alpha_trait != UndefinedPixelTrait)
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4208,7 +4223,7 @@ RestoreMSCWarning
(void) TransformImageColorspace(image,CMYKColorspace,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4287,7 +4302,7 @@ RestoreMSCWarning
quantum_type=GrayQuantum;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/tiff.h b/coders/tiff.h
index 4fd0514c5..f48dc05c8 100644
--- a/coders/tiff.h
+++ b/coders/tiff.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/tile.c b/coders/tile.c
index 8909890a9..2fef80b52 100644
--- a/coders/tile.c
+++ b/coders/tile.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/tile.h b/coders/tile.h
index e05155f6a..0b5126e84 100644
--- a/coders/tile.h
+++ b/coders/tile.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/tim.c b/coders/tim.c
index 1bf343564..9a281b3b0 100644
--- a/coders/tim.c
+++ b/coders/tim.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -109,16 +109,16 @@ static Image *ReadTIMImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p;
size_t
diff --git a/coders/tim.h b/coders/tim.h
index e284c39af..ae9edc679 100644
--- a/coders/tim.h
+++ b/coders/tim.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/tim2.c b/coders/tim2.c
index 64a7bf7b8..e76241e35 100644
--- a/coders/tim2.c
+++ b/coders/tim2.c
@@ -240,13 +240,13 @@ static MagickBooleanType ReadTIM2ImageData(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -511,7 +511,7 @@ static MagickBooleanType ReadTIM2ImageData(const ImageInfo *image_info,
CSM
csm;
- register ssize_t
+ ssize_t
i;
unsigned char
diff --git a/coders/tim2.h b/coders/tim2.h
index 85625d23c..97a2a5105 100644
--- a/coders/tim2.h
+++ b/coders/tim2.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/ttf.c b/coders/ttf.c
index 271d04a8a..3a8b4fb77 100644
--- a/coders/ttf.c
+++ b/coders/ttf.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -192,11 +192,11 @@ static Image *ReadTTFImage(const ImageInfo *image_info,ExceptionInfo *exception)
PixelInfo
background_color;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
ssize_t
diff --git a/coders/ttf.h b/coders/ttf.h
index c13833607..5e0c758bb 100644
--- a/coders/ttf.h
+++ b/coders/ttf.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/txt.c b/coders/txt.c
index 58b004f0e..b9bd08ce5 100644
--- a/coders/txt.c
+++ b/coders/txt.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -273,7 +273,7 @@ static Image *ReadTEXTImage(const ImageInfo *image_info,
draw_info=DestroyDrawInfo(draw_info);
ThrowReaderException(TypeError,"UnableToGetTypeMetrics");
}
- page.y=(ssize_t) ceil((double) page.y+metrics.ascent-0.5);
+ page.y=CastDoubleToLong(ceil((double) page.y+metrics.ascent-0.5));
(void) FormatLocaleString(geometry,MagickPathExtent,"%gx%g%+g%+g",(double)
image->columns,(double) image->rows,(double) page.x,(double) page.y);
(void) CloneString(&draw_info->geometry,geometry);
@@ -403,11 +403,11 @@ static Image *ReadTXTImage(const ImageInfo *image_info,ExceptionInfo *exception)
QuantumAny
range;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -458,7 +458,7 @@ static Image *ReadTXTImage(const ImageInfo *image_info,ExceptionInfo *exception)
image->rows=height;
if ((max_value == 0.0) || (max_value > 18446744073709551615.0))
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
- for (depth=1; (GetQuantumRange(depth)+1.0) < max_value; depth++) ;
+ for (depth=1; ((double) GetQuantumRange(depth)+1) < max_value; depth++) ;
image->depth=depth;
status=SetImageExtent(image,image->columns,image->rows,exception);
if (status != MagickFalse)
@@ -574,8 +574,8 @@ static Image *ReadTXTImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickMax(black+0.5,0.0),range);
pixel.alpha=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
MagickMax(alpha+0.5,0.0),range);
- q=GetAuthenticPixels(image,(ssize_t) x_offset,(ssize_t) y_offset,1,1,
- exception);
+ q=GetAuthenticPixels(image,CastDoubleToLong(x_offset),
+ CastDoubleToLong(y_offset),1,1,exception);
if (q == (Quantum *) NULL)
{
status=MagickFalse;
@@ -734,10 +734,10 @@ static MagickBooleanType WriteTXTImage(const ImageInfo *image_info,Image *image,
PixelInfo
pixel;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
size_t
diff --git a/coders/txt.h b/coders/txt.h
index 994acfb5d..5131259b0 100644
--- a/coders/txt.h
+++ b/coders/txt.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/uil.c b/coders/uil.c
index 6804fd222..452913c8f 100644
--- a/coders/uil.c
+++ b/coders/uil.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -179,10 +179,10 @@ static MagickBooleanType WriteUILImage(const ImageInfo *image_info,Image *image,
PixelInfo
pixel;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
@@ -259,7 +259,7 @@ static MagickBooleanType WriteUILImage(const ImageInfo *image_info,Image *image,
colors=image->colors;
if (transparent != MagickFalse)
{
- register Quantum
+ Quantum
*q;
i=0;
diff --git a/coders/uil.h b/coders/uil.h
index 1f8f83917..ec498a3f3 100644
--- a/coders/uil.h
+++ b/coders/uil.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/url.c b/coders/url.c
index 19b586c73..7e663584a 100644
--- a/coders/url.c
+++ b/coders/url.c
@@ -18,7 +18,7 @@
% March 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/url.h b/coders/url.h
index 67da23411..d61c9062e 100644
--- a/coders/url.h
+++ b/coders/url.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/uyvy.c b/coders/uyvy.c
index ce5269849..b751d7dbf 100644
--- a/coders/uyvy.c
+++ b/coders/uyvy.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -102,10 +102,10 @@ static Image *ReadUYVYImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -299,10 +299,10 @@ static MagickBooleanType WriteUYVYImage(const ImageInfo *image_info,
full,
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
ssize_t
diff --git a/coders/uyvy.h b/coders/uyvy.h
index 0df87f99f..f1e33798a 100644
--- a/coders/uyvy.h
+++ b/coders/uyvy.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/vicar.c b/coders/vicar.c
index 7c99e3327..73ad155fb 100644
--- a/coders/vicar.c
+++ b/coders/vicar.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -165,7 +165,7 @@ static Image *ReadVICARImage(const ImageInfo *image_info,
QuantumType
quantum_type;
- register Quantum
+ Quantum
*q;
size_t
@@ -208,16 +208,16 @@ static Image *ReadVICARImage(const ImageInfo *image_info,
length=0;
image->columns=0;
image->rows=0;
- while (isgraph(c) && ((image->columns == 0) || (image->rows == 0)))
+ while (isgraph((int) ((unsigned char) c)) && ((image->columns == 0) || (image->rows == 0)))
{
- if (isalnum(c) == MagickFalse)
+ if (isalnum((int) ((unsigned char) c)) == MagickFalse)
{
c=ReadBlobByte(image);
count++;
}
else
{
- register char
+ char
*p;
/*
@@ -230,10 +230,10 @@ static Image *ReadVICARImage(const ImageInfo *image_info,
*p++=c;
c=ReadBlobByte(image);
count++;
- } while (isalnum(c) || (c == '_'));
+ } while (isalnum((int) ((unsigned char) c)) || (c == '_'));
*p='\0';
value_expected=MagickFalse;
- while ((isspace(c) != 0) || (c == '='))
+ while ((isspace((int) ((unsigned char) c)) != 0) || (c == '='))
{
if (c == '=')
value_expected=MagickTrue;
@@ -243,7 +243,7 @@ static Image *ReadVICARImage(const ImageInfo *image_info,
if (value_expected == MagickFalse)
continue;
p=value;
- while (isalnum(c))
+ while (isalnum((int) ((unsigned char) c)))
{
if ((size_t) (p-value) < (MagickPathExtent-1))
*p++=c;
@@ -270,7 +270,7 @@ static Image *ReadVICARImage(const ImageInfo *image_info,
if (LocaleCompare(keyword,"NL") == 0)
image->rows=StringToUnsignedLong(value);
}
- while (isspace(c) != 0)
+ while (isspace((int) ((unsigned char) c)) != 0)
{
c=ReadBlobByte(image);
count++;
@@ -442,7 +442,7 @@ static MagickBooleanType WriteVICARImage(const ImageInfo *image_info,
QuantumInfo
*quantum_info;
- register const Quantum
+ const Quantum
*p;
size_t
diff --git a/coders/vicar.h b/coders/vicar.h
index 1ba2f7bfb..9ad8f3083 100644
--- a/coders/vicar.h
+++ b/coders/vicar.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/vid.c b/coders/vid.c
index cab4dc28b..e10330ddf 100644
--- a/coders/vid.c
+++ b/coders/vid.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -126,7 +126,7 @@ static Image *ReadVIDImage(const ImageInfo *image_info,ExceptionInfo *exception)
RectangleInfo
geometry;
- register ssize_t
+ ssize_t
i;
/*
@@ -324,7 +324,7 @@ static MagickBooleanType WriteVIDImage(const ImageInfo *image_info,Image *image,
MontageInfo
*montage_info;
- register Image
+ Image
*p;
/*
diff --git a/coders/vid.h b/coders/vid.h
index 2d918256b..cb85acdb8 100644
--- a/coders/vid.h
+++ b/coders/vid.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/video.c b/coders/video.c
index ed80f26a3..bea7d18cd 100644
--- a/coders/video.c
+++ b/coders/video.c
@@ -17,7 +17,7 @@
% July 1999 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -398,7 +398,7 @@ static MagickBooleanType CopyDelegateFile(const char *source,
MagickBooleanType
status;
- register size_t
+ size_t
i;
size_t
@@ -491,10 +491,10 @@ static MagickBooleanType WriteVIDEOImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register Image
+ Image
*p;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/video.h b/coders/video.h
index adf932513..586d4632d 100644
--- a/coders/video.h
+++ b/coders/video.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/viff.c b/coders/viff.c
index 29f557f45..9e1f2a582 100644
--- a/coders/viff.c
+++ b/coders/viff.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -223,16 +223,16 @@ static Image *ReadVIFFImage(const ImageInfo *image_info,
MagickSizeType
number_pixels;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -950,16 +950,16 @@ static MagickBooleanType WriteVIFFImage(const ImageInfo *image_info,
MemoryInfo
*pixel_info;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register ssize_t
+ ssize_t
i;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -1190,7 +1190,7 @@ static MagickBooleanType WriteVIFFImage(const ImageInfo *image_info,
else
if (image->colors <= 2)
{
- register unsigned char
+ unsigned char
bit,
byte;
diff --git a/coders/viff.h b/coders/viff.h
index 0e0d5ce61..f207bdc1a 100644
--- a/coders/viff.h
+++ b/coders/viff.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/vips.c b/coders/vips.c
index f3ff6dbf0..7ad84c91f 100644
--- a/coders/vips.c
+++ b/coders/vips.c
@@ -17,7 +17,7 @@
% April 2014 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -309,10 +309,10 @@ static MagickBooleanType ReadVIPSPixelsNONE(Image *image,
Quantum
pixel;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
ssize_t
@@ -624,10 +624,10 @@ static MagickBooleanType WriteVIPSImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
ssize_t
diff --git a/coders/vips.h b/coders/vips.h
index 9cdc0baeb..d81dcb3d6 100644
--- a/coders/vips.h
+++ b/coders/vips.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/wbmp.c b/coders/wbmp.c
index 440b18187..1074ff298 100644
--- a/coders/wbmp.c
+++ b/coders/wbmp.c
@@ -17,7 +17,7 @@
% January 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -127,10 +127,10 @@ static Image *ReadWBMPImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -324,7 +324,7 @@ static void WBMPWriteInteger(Image *image,const size_t value)
flag,
n;
- register ssize_t
+ ssize_t
i;
unsigned char
@@ -354,10 +354,10 @@ static MagickBooleanType WriteWBMPImage(const ImageInfo *image_info,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
ssize_t
diff --git a/coders/wbmp.h b/coders/wbmp.h
index 28ade8dab..fc2cef534 100644
--- a/coders/wbmp.h
+++ b/coders/wbmp.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/webp.c b/coders/webp.c
index 282bbbe7e..16d8d301e 100644
--- a/coders/webp.c
+++ b/coders/webp.c
@@ -17,7 +17,7 @@
% March 2011 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -149,10 +149,10 @@ static MagickBooleanType IsWEBP(const unsigned char *magick,const size_t length)
static inline uint32_t ReadWebPLSBWord(
const unsigned char *magick_restrict data)
{
- register const unsigned char
+ const unsigned char
*p;
- register uint32_t
+ uint32_t
value;
p=data;
@@ -240,7 +240,7 @@ static int ReadSingleWEBPImage(Image *image,const uint8_t *stream,
int
webp_status;
- register unsigned char
+ unsigned char
*p;
size_t
@@ -255,11 +255,12 @@ static int ReadSingleWEBPImage(Image *image,const uint8_t *stream,
y;
WebPDecBuffer
- *magick_restrict webp_image = &configure->output;
+ *magick_restrict webp_image;
MagickBooleanType
status;
+ webp_image=&configure->output;
if (is_first)
{
canvas_width=image->columns;
@@ -296,10 +297,10 @@ static int ReadSingleWEBPImage(Image *image,const uint8_t *stream,
p=(unsigned char *) webp_image->u.RGBA.rgba;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
x;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -307,8 +308,8 @@ static int ReadSingleWEBPImage(Image *image,const uint8_t *stream,
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- if ((x >= x_offset && x < x_offset + image_width) &&
- (y >= y_offset && y < y_offset + image_height))
+ if ((x >= x_offset && x < (ssize_t) (x_offset+image_width)) &&
+ (y >= y_offset && y < (ssize_t) (y_offset+image_height)))
{
SetPixelRed(image,ScaleCharToQuantum(*p++),q);
SetPixelGreen(image,ScaleCharToQuantum(*p++),q);
@@ -760,24 +761,55 @@ static int WebPEncodeWriter(const unsigned char *stream,size_t length,
}
#endif
-typedef struct PictureMemory {
- MemoryInfo *pixel_info;
- struct PictureMemory *next;
-} PictureMemory;
+static const char * WebPErrorCodeMessage(WebPEncodingError error_code)
+{
+ switch (error_code)
+ {
+ case VP8_ENC_OK:
+ return NULL;
+ case VP8_ENC_ERROR_OUT_OF_MEMORY:
+ return "out of memory";
+ case VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY:
+ return "bitstream out of memory";
+ case VP8_ENC_ERROR_NULL_PARAMETER:
+ return "NULL parameter";
+ case VP8_ENC_ERROR_INVALID_CONFIGURATION:
+ return "invalid configuration";
+ case VP8_ENC_ERROR_BAD_DIMENSION:
+ return "bad dimension";
+ case VP8_ENC_ERROR_PARTITION0_OVERFLOW:
+ return "partition 0 overflow (> 512K)";
+ case VP8_ENC_ERROR_PARTITION_OVERFLOW:
+ return "partition overflow (> 16M)";
+ case VP8_ENC_ERROR_BAD_WRITE:
+ return "bad write";
+ case VP8_ENC_ERROR_FILE_TOO_BIG:
+ return "file too big (> 4GB)";
+#if WEBP_ENCODER_ABI_VERSION >= 0x0100
+ case VP8_ENC_ERROR_USER_ABORT:
+ return "user abort";
+ case VP8_ENC_ERROR_LAST:
+ return "error last";
+#endif
+ }
+ return "unknown exception";
+}
-static MagickBooleanType WriteSingleWEBPImage(const ImageInfo *image_info,
- Image *image,WebPPicture *picture,PictureMemory *picture_memory,
- ExceptionInfo *exception)
+static MagickBooleanType WriteSingleWEBPPicture(const ImageInfo *image_info,
+ Image *image,WebPConfig *configure,WebPPicture *picture,ExceptionInfo *exception)
{
MagickBooleanType
- status = MagickFalse;
+ status;
- register uint32_t
+ uint32_t
*magick_restrict q;
ssize_t
y;
+ MemoryInfo
+ *pixel_info;
+
#if WEBP_ENCODER_ABI_VERSION >= 0x0100
picture->progress_hook=WebPEncodeProgress;
picture->user_data=(void *) image;
@@ -791,22 +823,23 @@ static MagickBooleanType WriteSingleWEBPImage(const ImageInfo *image_info,
Allocate memory for pixels.
*/
(void) TransformImageColorspace(image,sRGBColorspace,exception);
- picture_memory->pixel_info=AcquireVirtualMemory(image->columns,image->rows*
+ pixel_info=AcquireVirtualMemory(image->columns,image->rows*
sizeof(*(picture->argb)));
- if (picture_memory->pixel_info == (MemoryInfo *) NULL)
+ if (pixel_info == (MemoryInfo *) NULL)
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
- picture->argb=(uint32_t *) GetVirtualMemoryBlob(picture_memory->pixel_info);
+ picture->argb=(uint32_t *) GetVirtualMemoryBlob(pixel_info);
/*
Convert image to WebP raster pixels.
*/
+ status=MagickFalse;
q=picture->argb;
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register ssize_t
+ ssize_t
x;
p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -826,35 +859,53 @@ static MagickBooleanType WriteSingleWEBPImage(const ImageInfo *image_info,
if (status == MagickFalse)
break;
}
- return status;
+
+ if (status != MagickFalse)
+ status=(MagickBooleanType) WebPEncode(configure, picture);
+
+ RelinquishVirtualMemory(pixel_info);
+
+ if (status == MagickFalse)
+ (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
+ WebPErrorCodeMessage(picture->error_code),"`%s'",
+ image->filename);
+
+ return(status);
}
-#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
-static void FreePictureMemoryList (PictureMemory* head) {
- PictureMemory* next;
- while(head != NULL) {
- next = head->next;
- if(head->pixel_info != NULL)
- RelinquishVirtualMemory(head->pixel_info);
- free(head);
- head = next;
- }
+static MagickBooleanType WriteSingleWEBPImage(const ImageInfo *image_info,
+ Image *image,WebPConfig *configure,WebPMemoryWriter *writer,
+ ExceptionInfo *exception)
+{
+ MagickBooleanType
+ status;
+
+ WebPPicture
+ picture;
+
+ if (WebPPictureInit(&picture) == 0)
+ ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
+
+ picture.writer=WebPMemoryWrite;
+ picture.custom_ptr=writer;
+
+ status=WriteSingleWEBPPicture(image_info,image,configure,&picture,exception);
+ WebPPictureFree(&picture);
+
+ return(status);
}
+#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
static MagickBooleanType WriteAnimatedWEBPImage(const ImageInfo *image_info,
- Image *image,WebPConfig *configure,WebPMemoryWriter *writer_info,
+ Image *image,WebPConfig *configure,WebPData *webp_data,
ExceptionInfo *exception)
{
Image
*first_image;
- PictureMemory
- *current,
- *head;
-
size_t
- effective_delta = 0,
- frame_timestamp = 0;
+ effective_delta,
+ frame_timestamp;
WebPAnimEncoder
*enc;
@@ -862,83 +913,167 @@ static MagickBooleanType WriteAnimatedWEBPImage(const ImageInfo *image_info,
WebPAnimEncoderOptions
enc_options;
- WebPData
- webp_data;
-
WebPPicture
picture;
- WebPAnimEncoderOptionsInit(&enc_options);
- if (image_info->verbose)
- enc_options.verbose = 1;
+ MagickBooleanType
+ status;
+
+ first_image=CoalesceImages(image,exception);
+ if (first_image == (Image *) NULL)
+ return(MagickFalse);
+ image=first_image;
+ effective_delta=0;
+ frame_timestamp=0;
- image=CoalesceImages(image, exception);
- first_image=image;
+ (void) WebPAnimEncoderOptionsInit(&enc_options);
+ if (image_info->verbose)
+ enc_options.verbose=1;
enc=WebPAnimEncoderNew((int) image->page.width,(int) image->page.height,
&enc_options);
- head=(PictureMemory *) calloc(sizeof(*head),1);
- current=head;
-
+ status=MagickTrue;
while (image != NULL)
{
- if (WebPPictureInit(&picture) == 0)
- ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
+ status=(MagickBooleanType) WebPPictureInit(&picture);
+ if (status == MagickFalse)
+ {
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"UnableToEncodeImageFile","`%s'",image->filename);
+ break;
+ }
- WriteSingleWEBPImage(image_info, image, &picture, current, exception);
- WebPAnimEncoderAdd(enc,&picture,(int) frame_timestamp,configure);
+ status=WriteSingleWEBPPicture(image_info,image,configure,&picture,
+ exception);
+ if (status == MagickFalse)
+ break;
+
+ status=(MagickBooleanType) WebPAnimEncoderAdd(enc,&picture,
+ (int) frame_timestamp,configure);
+ WebPPictureFree(&picture);
+ if (status == MagickFalse)
+ {
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ CoderError,WebPAnimEncoderGetError(enc),"`%s'",image->filename);
+ break;
+ }
- effective_delta = image->delay*1000/image->ticks_per_second;
+ effective_delta=image->delay*1000/image->ticks_per_second;
if (effective_delta < 10)
- effective_delta = 100; /* Consistent with gif2webp */
+ effective_delta=100; /* Consistent with gif2webp */
frame_timestamp+=effective_delta;
- image = GetNextImageInList(image);
- current->next=(PictureMemory *) calloc(sizeof(*head), 1);
- current = current->next;
+ image=GetNextImageInList(image);
}
- WebPAnimEncoderAdd(enc,NULL,(int) frame_timestamp,configure);
- webp_data.bytes=writer_info->mem;
- webp_data.size=writer_info->size;
- WebPAnimEncoderAssemble(enc, &webp_data);
- WebPMemoryWriterClear(writer_info);
- writer_info->size=webp_data.size;
- writer_info->mem=(unsigned char *) webp_data.bytes;
+
+ if (status != MagickFalse)
+ {
+ // add last null frame and assemble picture.
+ status=(MagickBooleanType) WebPAnimEncoderAdd(enc,(WebPPicture *) NULL,
+ (int) frame_timestamp,configure);
+ if (status != MagickFalse)
+ status=(MagickBooleanType) WebPAnimEncoderAssemble(enc,webp_data);
+
+ if (status == MagickFalse)
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ CoderError,WebPAnimEncoderGetError(enc),"`%s'",
+ first_image->filename);
+ }
+
WebPAnimEncoderDelete(enc);
DestroyImageList(first_image);
- FreePictureMemoryList(head);
+ return(status);
+}
+
+static MagickBooleanType WriteWEBPImageProfile(Image *image,
+ WebPData *webp_data,ExceptionInfo *exception)
+{
+ const StringInfo
+ *icc_profile,
+ *exif_profile,
+ *xmp_profile;
+
+ WebPData
+ chunk;
+
+ WebPMux
+ *mux;
+
+ WebPMuxError
+ mux_error=WEBP_MUX_OK;
+
+ icc_profile=GetImageProfile(image,"ICC");
+ exif_profile=GetImageProfile(image,"EXIF");
+ xmp_profile=GetImageProfile(image,"XMP");
+
+ if (icc_profile == (StringInfo *) NULL
+ && exif_profile == (StringInfo *) NULL
+ && xmp_profile == (StringInfo *) NULL)
+ return(MagickTrue);
+
+ mux=WebPMuxCreate(webp_data, 1);
+ WebPDataClear(webp_data);
+
+ if (mux == NULL)
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"UnableToEncodeImageFile","`%s'",image->filename);
+
+ // Clean up returned data
+ memset(webp_data, 0, sizeof(*webp_data));
+ if (icc_profile != (StringInfo *) NULL && (mux_error == WEBP_MUX_OK))
+ {
+ chunk.bytes=GetStringInfoDatum(icc_profile);
+ chunk.size=GetStringInfoLength(icc_profile);
+ mux_error=WebPMuxSetChunk(mux,"ICCP",&chunk,0);
+ }
+ if (exif_profile != (StringInfo *) NULL && (mux_error == WEBP_MUX_OK))
+ {
+ chunk.bytes=GetStringInfoDatum(exif_profile);
+ chunk.size=GetStringInfoLength(exif_profile);
+ mux_error=WebPMuxSetChunk(mux,"EXIF",&chunk,0);
+ }
+ if (xmp_profile != (StringInfo *) NULL && (mux_error == WEBP_MUX_OK))
+ {
+ chunk.bytes=GetStringInfoDatum(xmp_profile);
+ chunk.size=GetStringInfoLength(xmp_profile);
+ mux_error=WebPMuxSetChunk(mux,"XMP",&chunk,0);
+ }
+ if (mux_error == WEBP_MUX_OK)
+ mux_error=WebPMuxAssemble(mux,webp_data);
+ WebPMuxDelete(mux);
+
+ if (mux_error != WEBP_MUX_OK)
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"UnableToEncodeImageFile","`%s'",image->filename);
return(MagickTrue);
}
#endif
+static inline void SetIntegerOption(const ImageInfo *image_info,
+ const char *option,int *setting)
+{
+ const char
+ *value;
+
+ value=GetImageOption(image_info,option);
+ if (value != (const char *) NULL)
+ *setting=StringToInteger(value);
+}
+
static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info,
Image *image,ExceptionInfo * exception)
{
const char
*value;
- int
- webp_status;
-
MagickBooleanType
status;
- WebPAuxStats
- statistics;
-
WebPConfig
configure;
-#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
WebPMemoryWriter
- writer_info;
-#endif
-
- WebPPicture
- picture;
-
- PictureMemory
- memory = {0};
+ writer;
/*
Open output image file.
@@ -956,17 +1091,6 @@ static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info,
return(status);
if (WebPConfigInit(&configure) == 0)
ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
- if (WebPPictureInit(&picture) == 0)
- ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
-#if !defined(MAGICKCORE_WEBPMUX_DELEGATE)
- picture.writer=WebPEncodeWriter;
- picture.custom_ptr=(void *) image;
-#else
- WebPMemoryWriterInit(&writer_info);
- picture.writer=WebPMemoryWrite;
- picture.custom_ptr=(&writer_info);
-#endif
- picture.stats=(&statistics);
if (image->quality != UndefinedCompressionQuality)
configure.quality=(float) image->quality;
if (image->quality >= 100)
@@ -975,9 +1099,6 @@ static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info,
if (value != (char *) NULL)
configure.lossless=(int) ParseCommandOption(MagickBooleanOptions,
MagickFalse,value);
- value=GetImageOption(image_info,"webp:method");
- if (value != (char *) NULL)
- configure.method=StringToInteger(value);
value=GetImageOption(image_info,"webp:image-hint");
if (value != (char *) NULL)
{
@@ -992,55 +1113,35 @@ static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info,
configure.image_hint=WEBP_HINT_GRAPH;
#endif
}
- value=GetImageOption(image_info,"webp:target-size");
- if (value != (char *) NULL)
- configure.target_size=StringToInteger(value);
- value=GetImageOption(image_info,"webp:target-psnr");
- if (value != (char *) NULL)
- configure.target_PSNR=(float) StringToDouble(value,(char **) NULL);
- value=GetImageOption(image_info,"webp:segments");
- if (value != (char *) NULL)
- configure.segments=StringToInteger(value);
- value=GetImageOption(image_info,"webp:sns-strength");
- if (value != (char *) NULL)
- configure.sns_strength=StringToInteger(value);
- value=GetImageOption(image_info,"webp:filter-strength");
- if (value != (char *) NULL)
- configure.filter_strength=StringToInteger(value);
- value=GetImageOption(image_info,"webp:filter-sharpness");
- if (value != (char *) NULL)
- configure.filter_sharpness=StringToInteger(value);
- value=GetImageOption(image_info,"webp:filter-type");
- if (value != (char *) NULL)
- configure.filter_type=StringToInteger(value);
value=GetImageOption(image_info,"webp:auto-filter");
if (value != (char *) NULL)
configure.autofilter=(int) ParseCommandOption(MagickBooleanOptions,
MagickFalse,value);
- value=GetImageOption(image_info,"webp:alpha-compression");
- if (value != (char *) NULL)
- configure.alpha_compression=StringToInteger(value);
- value=GetImageOption(image_info,"webp:alpha-filtering");
- if (value != (char *) NULL)
- configure.alpha_filtering=StringToInteger(value);
- value=GetImageOption(image_info,"webp:alpha-quality");
- if (value != (char *) NULL)
- configure.alpha_quality=StringToInteger(value);
- value=GetImageOption(image_info,"webp:pass");
- if (value != (char *) NULL)
- configure.pass=StringToInteger(value);
- value=GetImageOption(image_info,"webp:show-compressed");
- if (value != (char *) NULL)
- configure.show_compressed=StringToInteger(value);
- value=GetImageOption(image_info,"webp:preprocessing");
- if (value != (char *) NULL)
- configure.preprocessing=StringToInteger(value);
- value=GetImageOption(image_info,"webp:partitions");
- if (value != (char *) NULL)
- configure.partitions=StringToInteger(value);
- value=GetImageOption(image_info,"webp:partition-limit");
+ value=GetImageOption(image_info,"webp:target-psnr");
if (value != (char *) NULL)
- configure.partition_limit=StringToInteger(value);
+ configure.target_PSNR=(float) StringToDouble(value,(char **) NULL);
+ SetIntegerOption(image_info,"webp:alpha-compression",
+ &configure.alpha_compression);
+ SetIntegerOption(image_info,"webp:alpha-filtering",
+ &configure.alpha_filtering);
+ SetIntegerOption(image_info,"webp:alpha-quality",
+ &configure.alpha_quality);
+ SetIntegerOption(image_info,"webp:filter-strength",
+ &configure.filter_strength);
+ SetIntegerOption(image_info,"webp:filter-sharpness",
+ &configure.filter_sharpness);
+ SetIntegerOption(image_info,"webp:filter-type",&configure.filter_type);
+ SetIntegerOption(image_info,"webp:method",&configure.method);
+ SetIntegerOption(image_info,"webp:partitions",&configure.partitions);
+ SetIntegerOption(image_info,"webp:partition-limit",
+ &configure.partition_limit);
+ SetIntegerOption(image_info,"webp:pass",&configure.pass);
+ SetIntegerOption(image_info,"webp:preprocessing",&configure.preprocessing);
+ SetIntegerOption(image_info,"webp:segments",&configure.segments);
+ SetIntegerOption(image_info,"webp:show-compressed",
+ &configure.show_compressed);
+ SetIntegerOption(image_info,"webp:sns-strength",&configure.sns_strength);
+ SetIntegerOption(image_info,"webp:target-size",&configure.target_size);
#if WEBP_ENCODER_ABI_VERSION >= 0x0201
value=GetImageOption(image_info,"webp:emulate-jpeg-size");
if (value != (char *) NULL)
@@ -1050,170 +1151,53 @@ static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info,
if (value != (char *) NULL)
configure.low_memory=(int) ParseCommandOption(MagickBooleanOptions,
MagickFalse,value);
- value=GetImageOption(image_info,"webp:thread-level");
- if (value != (char *) NULL)
- configure.thread_level=StringToInteger(value);
+ SetIntegerOption(image_info,"webp:thread-level",&configure.thread_level);
#endif
#if WEBP_ENCODER_ABI_VERSION >= 0x020e
- value=GetImageOption(image_info,"webp:use-sharp-yuv");
- if (value != (char *) NULL)
- configure.use_sharp_yuv=StringToInteger(value);
+ SetIntegerOption(image_info,"webp:near-lossless",&configure.near_lossless);
+ SetIntegerOption(image_info,"webp:use-sharp-yuv",&configure.use_sharp_yuv);
#endif
if (WebPValidateConfig(&configure) == 0)
ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
-
- WriteSingleWEBPImage(image_info,image,&picture,&memory,exception);
-
-#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
- if ((image_info->adjoin != MagickFalse) &&
- (GetPreviousImageInList(image) == (Image *) NULL) &&
- (GetNextImageInList(image) != (Image *) NULL))
- WriteAnimatedWEBPImage(image_info,image,&configure,&writer_info,exception);
-#endif
-
- webp_status=WebPEncode(&configure,&picture);
- if (webp_status == 0)
- {
- const char
- *message;
-
- switch (picture.error_code)
- {
- case VP8_ENC_ERROR_OUT_OF_MEMORY:
- {
- message="out of memory";
- break;
- }
- case VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY:
- {
- message="bitstream out of memory";
- break;
- }
- case VP8_ENC_ERROR_NULL_PARAMETER:
- {
- message="NULL parameter";
- break;
- }
- case VP8_ENC_ERROR_INVALID_CONFIGURATION:
- {
- message="invalid configuration";
- break;
- }
- case VP8_ENC_ERROR_BAD_DIMENSION:
- {
- message="bad dimension";
- break;
- }
- case VP8_ENC_ERROR_PARTITION0_OVERFLOW:
- {
- message="partition 0 overflow (> 512K)";
- break;
- }
- case VP8_ENC_ERROR_PARTITION_OVERFLOW:
- {
- message="partition overflow (> 16M)";
- break;
- }
- case VP8_ENC_ERROR_BAD_WRITE:
- {
- message="bad write";
- break;
- }
- case VP8_ENC_ERROR_FILE_TOO_BIG:
- {
- message="file too big (> 4GB)";
- break;
- }
-#if WEBP_ENCODER_ABI_VERSION >= 0x0100
- case VP8_ENC_ERROR_USER_ABORT:
- {
- message="user abort";
- break;
- }
-#endif
- default:
- {
- message="unknown exception";
- break;
- }
- }
- (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
- (char *) message,"`%s'",image->filename);
- }
#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
{
- const StringInfo
- *profile;
-
WebPData
- chunk,
- image_chunk;
-
- WebPMux
- *mux;
-
- WebPMuxError
- mux_error;
-
- /*
- Set image profiles (if any).
- */
- image_chunk.bytes=writer_info.mem;
- image_chunk.size=writer_info.size;
- mux_error=WEBP_MUX_OK;
- (void) memset(&chunk,0,sizeof(chunk));
- mux=WebPMuxNew();
- profile=GetImageProfile(image,"ICC");
- if ((profile != (StringInfo *) NULL) && (mux_error == WEBP_MUX_OK))
- {
- chunk.bytes=GetStringInfoDatum(profile);
- chunk.size=GetStringInfoLength(profile);
- mux_error=WebPMuxSetChunk(mux,"ICCP",&chunk,0);
- }
- profile=GetImageProfile(image,"EXIF");
- if ((profile != (StringInfo *) NULL) && (mux_error == WEBP_MUX_OK))
- {
- chunk.bytes=GetStringInfoDatum(profile);
- chunk.size=GetStringInfoLength(profile);
- mux_error=WebPMuxSetChunk(mux,"EXIF",&chunk,0);
- }
- profile=GetImageProfile(image,"XMP");
- if ((profile != (StringInfo *) NULL) && (mux_error == WEBP_MUX_OK))
+ webp_data;
+
+ memset(&webp_data,0,sizeof(webp_data));
+ if ((image_info->adjoin != MagickFalse) &&
+ (GetPreviousImageInList(image) == (Image *) NULL) &&
+ (GetNextImageInList(image) != (Image *) NULL))
+ status=WriteAnimatedWEBPImage(image_info,image,&configure,&webp_data,
+ exception);
+ else
{
- chunk.bytes=GetStringInfoDatum(profile);
- chunk.size=GetStringInfoLength(profile);
- mux_error=WebPMuxSetChunk(mux,"XMP",&chunk,0);
- }
- if (mux_error != WEBP_MUX_OK)
- (void) ThrowMagickException(exception,GetMagickModule(),
- ResourceLimitError,"UnableToEncodeImageFile","`%s'",image->filename);
- if (chunk.size != 0)
- {
- WebPData
- picture_profiles;
-
- /*
- Replace original container with image profile (if any).
- */
- picture_profiles.bytes=writer_info.mem;
- picture_profiles.size=writer_info.size;
- WebPMuxSetImage(mux,&image_chunk,1);
- mux_error=WebPMuxAssemble(mux,&picture_profiles);
- WebPMemoryWriterClear(&writer_info);
- writer_info.size=picture_profiles.size;
- writer_info.mem=(unsigned char *) picture_profiles.bytes;
+ WebPMemoryWriterInit(&writer);
+ status=WriteSingleWEBPImage(image_info,image,&configure,&writer,
+ exception);
+ if (status == MagickFalse)
+ WebPMemoryWriterClear(&writer);
+ else
+ {
+ webp_data.bytes=writer.mem;
+ webp_data.size=writer.size;
+ }
}
- WebPMuxDelete(mux);
+ if (status != MagickFalse)
+ status=WriteWEBPImageProfile(image,&webp_data,exception);
+ if (status != MagickFalse)
+ (void) WriteBlob(image,webp_data.size,webp_data.bytes);
+ WebPDataClear(&webp_data);
}
- (void) WriteBlob(image,writer_info.size,writer_info.mem);
-#endif
- picture.argb=(uint32_t *) NULL;
- WebPPictureFree(&picture);
-#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
- WebPMemoryWriterClear(&writer_info);
+#else
+ WebPMemoryWriterInit(&writer);
+ status=WriteSingleWEBPImage(image_info,image,&configure,&writer,
+ exception);
+ if (status != MagickFalse)
+ (void) WriteBlob(image,writer.size,writer.mem);
+ WebPMemoryWriterClear(&writer);
#endif
(void) CloseBlob(image);
- RelinquishVirtualMemory(memory.pixel_info);
- return(webp_status == 0 ? MagickFalse : MagickTrue);
+ return(status);
}
#endif
diff --git a/coders/webp.h b/coders/webp.h
index 66ef821cc..22fd1b243 100644
--- a/coders/webp.h
+++ b/coders/webp.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/wmf.c b/coders/wmf.c
index 07b44b251..a75605121 100644
--- a/coders/wmf.c
+++ b/coders/wmf.c
@@ -17,7 +17,7 @@
% December 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/wmf.h b/coders/wmf.h
index 051d14acd..fe38f09ce 100644
--- a/coders/wmf.h
+++ b/coders/wmf.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/wpg.c b/coders/wpg.c
index 860802114..8d3835cca 100644
--- a/coders/wpg.c
+++ b/coders/wpg.c
@@ -16,7 +16,7 @@
% June 2000 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -273,7 +273,7 @@ static MagickBooleanType InsertRow(Image *image,unsigned char *p,ssize_t y,
Quantum
index;
- register Quantum
+ Quantum
*q;
ssize_t
@@ -561,7 +561,7 @@ static int UnpackWPG2Raster(Image *image,int bpp,ExceptionInfo *exception)
RunCount,
XorMe = 0;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/wpg.h b/coders/wpg.h
index 100530cb8..f2bcf8ebe 100644
--- a/coders/wpg.h
+++ b/coders/wpg.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/x.c b/coders/x.c
index f13297bbf..e84d8dba3 100644
--- a/coders/x.c
+++ b/coders/x.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/x.h b/coders/x.h
index 308cd5407..5d8c911c4 100644
--- a/coders/x.h
+++ b/coders/x.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/xbm.c b/coders/xbm.c
index cbad3f04d..b036d5e19 100644
--- a/coders/xbm.c
+++ b/coders/xbm.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -187,14 +187,14 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
short int
@@ -510,10 +510,10 @@ static MagickBooleanType WriteXBMImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
size_t
diff --git a/coders/xbm.h b/coders/xbm.h
index 2a11c9be0..cbfaf5b9e 100644
--- a/coders/xbm.h
+++ b/coders/xbm.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/xc.c b/coders/xc.c
index b81993e1e..0aa2047d3 100644
--- a/coders/xc.c
+++ b/coders/xc.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -100,10 +100,10 @@ static Image *ReadXCImage(const ImageInfo *image_info,ExceptionInfo *exception)
PixelInfo
pixel;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
ssize_t
diff --git a/coders/xc.h b/coders/xc.h
index ef44b49d8..7c1a8b8fb 100644
--- a/coders/xc.h
+++ b/coders/xc.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/xcf.c b/coders/xcf.c
index df42d5f79..0c6d4186c 100644
--- a/coders/xcf.c
+++ b/coders/xcf.c
@@ -17,7 +17,7 @@
% November 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -381,7 +381,7 @@ static char *ReadBlobStringWithLongSize(Image *image,char *string,size_t max,
MagickOffsetType
offset;
- register ssize_t
+ ssize_t
i;
size_t
@@ -423,10 +423,10 @@ static MagickBooleanType load_tile(Image *image,Image *tile_image,
ssize_t
y;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
size_t
@@ -513,7 +513,7 @@ static MagickBooleanType load_tile_rle(Image *image,Image *tile_image,
alpha,
data;
- register Quantum
+ Quantum
*q;
size_t
@@ -695,7 +695,7 @@ static MagickBooleanType load_level(Image *image,XCFDocInfo *inDocInfo,
offset,
offset2;
- register ssize_t
+ ssize_t
i;
size_t
@@ -1029,7 +1029,7 @@ static MagickBooleanType ReadOneLayer(const ImageInfo *image_info,Image* image,
status=SetImageExtent(outLayer->image,outLayer->image->columns,
outLayer->image->rows,exception);
if (status != MagickFalse)
- status=ResetImagePixels(image,exception);
+ status=ResetImagePixels(outLayer->image,exception);
if (status == MagickFalse)
{
outLayer->image=DestroyImageList(outLayer->image);
@@ -1146,7 +1146,7 @@ static Image *ReadXCFImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickOffsetType
offset;
- register ssize_t
+ ssize_t
i;
size_t
diff --git a/coders/xcf.h b/coders/xcf.h
index dd66cd8d9..ecfc8a480 100644
--- a/coders/xcf.h
+++ b/coders/xcf.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/xpm.c b/coders/xpm.c
index 9aaa0dd90..454d6aa10 100644
--- a/coders/xpm.c
+++ b/coders/xpm.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -159,7 +159,7 @@ static int CompareXPMColor(const void *target,const void *source)
static ssize_t CopyXPMColor(char *destination,const char *source,size_t length)
{
- register const char
+ const char
*p;
p=source;
@@ -190,14 +190,14 @@ static char *ParseXPMColor(char *color,MagickBooleanType search_start)
{
#define NumberTargets 6
- register char
+ char
*p,
*r;
- register const char
+ const char
*q;
- register ssize_t
+ ssize_t
i;
static const char
@@ -263,15 +263,15 @@ static Image *ReadXPMImage(const ImageInfo *image_info,ExceptionInfo *exception)
active,
status;
- register char
+ char
*next,
*p,
*q;
- register Quantum
+ Quantum
*r;
- register ssize_t
+ ssize_t
x;
size_t
@@ -685,14 +685,14 @@ static MagickBooleanType WritePICONImage(const ImageInfo *image_info,
RectangleInfo
geometry;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
- register Quantum
+ Quantum
*q;
size_t
@@ -944,10 +944,10 @@ static MagickBooleanType WriteXPMImage(const ImageInfo *image_info,Image *image,
PixelInfo
pixel;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
i,
x;
diff --git a/coders/xpm.h b/coders/xpm.h
index 3425066cf..2ed7a5951 100644
--- a/coders/xpm.h
+++ b/coders/xpm.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/xps.c b/coders/xps.c
index 86afb667d..9471cd4fd 100644
--- a/coders/xps.c
+++ b/coders/xps.c
@@ -17,7 +17,7 @@
% January 2008 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -170,7 +170,7 @@ static Image *ReadXPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
RectangleInfo
page;
- register ssize_t
+ ssize_t
i;
unsigned long
@@ -268,6 +268,8 @@ static Image *ReadXPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
options=AcquireString("");
(void) FormatLocaleString(density,MagickPathExtent,"%gx%g",resolution.x,
resolution.y);
+ if (image_info->ping != MagickFalse)
+ (void) FormatLocaleString(density,MagickPathExtent,"2.0x2.0");
(void) FormatLocaleString(options,MagickPathExtent,"-g%.20gx%.20g ",(double)
page.width,(double) page.height);
read_info=CloneImageInfo(image_info);
@@ -385,6 +387,13 @@ static Image *ReadXPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
(void) CopyMagickString(postscript_image->magick,image->magick,
MagickPathExtent);
postscript_image->page=page;
+ if (image_info->ping != MagickFalse)
+ {
+ postscript_image->magick_columns*=image->resolution.x/2.0;
+ postscript_image->magick_rows*=image->resolution.y/2.0;
+ postscript_image->columns*=image->resolution.x/2.0;
+ postscript_image->rows*=image->resolution.y/2.0;
+ }
(void) CloneImageProfiles(postscript_image,image);
(void) CloneImageProperties(postscript_image,image);
next=SyncNextImageInList(postscript_image);
diff --git a/coders/xps.h b/coders/xps.h
index 0241455e3..79c5595cd 100644
--- a/coders/xps.h
+++ b/coders/xps.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/xtrn.c b/coders/xtrn.c
index d909b9223..23bf7c9a0 100644
--- a/coders/xtrn.c
+++ b/coders/xtrn.c
@@ -17,7 +17,7 @@
% May 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/coders/xtrn.h b/coders/xtrn.h
index 09557dcf8..90fc72dd9 100644
--- a/coders/xtrn.h
+++ b/coders/xtrn.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/xwd.c b/coders/xwd.c
index fbb297ed8..624baf3fa 100644
--- a/coders/xwd.c
+++ b/coders/xwd.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -171,16 +171,16 @@ static Image *ReadXWDImage(const ImageInfo *image_info,ExceptionInfo *exception)
Quantum
index;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register ssize_t
+ ssize_t
i;
- register size_t
+ size_t
pixel;
size_t
@@ -497,7 +497,7 @@ static Image *ReadXWDImage(const ImageInfo *image_info,ExceptionInfo *exception)
case DirectClass:
default:
{
- register size_t
+ size_t
color;
size_t
@@ -759,13 +759,13 @@ static MagickBooleanType WriteXWDImage(const ImageInfo *image_info,Image *image,
MagickBooleanType
status;
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
- register unsigned char
+ unsigned char
*q;
size_t
@@ -861,7 +861,7 @@ static MagickBooleanType WriteXWDImage(const ImageInfo *image_info,Image *image,
(void) WriteBlob(image,1,(const unsigned char *) "\0");
if (image->storage_class == PseudoClass)
{
- register ssize_t
+ ssize_t
i;
XColor
diff --git a/coders/xwd.h b/coders/xwd.h
index c3b7139ea..f6b3b9ff8 100644
--- a/coders/xwd.h
+++ b/coders/xwd.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/yaml.c b/coders/yaml.c
new file mode 100644
index 000000000..bf6ee196d
--- /dev/null
+++ b/coders/yaml.c
@@ -0,0 +1,1731 @@
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% Y Y AAA M M L %
+% Y Y A A MM MM L %
+% Y AAAAA M M M L %
+% Y A A M M L %
+% Y A A M M LLLLL %
+% %
+% %
+% Write Info About the Image in YAML Format. %
+% %
+% Software Design %
+% Cristy %
+% January 2014 %
+% %
+% %
+% Copyright 1999-2021 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 %
+% %
+% https://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 "MagickCore/studio.h"
+#include "MagickCore/artifact.h"
+#include "MagickCore/attribute.h"
+#include "MagickCore/blob.h"
+#include "MagickCore/blob-private.h"
+#include "MagickCore/cache.h"
+#include "MagickCore/colorspace.h"
+#include "MagickCore/colorspace-private.h"
+#include "MagickCore/constitute.h"
+#include "MagickCore/exception.h"
+#include "MagickCore/exception-private.h"
+#include "MagickCore/feature.h"
+#include "MagickCore/image.h"
+#include "MagickCore/image-private.h"
+#include "MagickCore/list.h"
+#include "MagickCore/magick.h"
+#include "MagickCore/memory_.h"
+#include "MagickCore/monitor.h"
+#include "MagickCore/monitor-private.h"
+#include "MagickCore/option.h"
+#include "MagickCore/pixel.h"
+#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/pixel-private.h"
+#include "MagickCore/prepress.h"
+#include "MagickCore/property.h"
+#include "MagickCore/quantum-private.h"
+#include "MagickCore/registry.h"
+#include "MagickCore/signature.h"
+#include "MagickCore/static.h"
+#include "MagickCore/statistic.h"
+#include "MagickCore/string_.h"
+#include "MagickCore/string-private.h"
+#include "MagickCore/utility.h"
+#include "MagickCore/version.h"
+#include "MagickCore/module.h"
+
+/*
+ Typedef declarations.
+*/
+typedef struct _IPTCInfo
+{
+ long
+ dataset,
+ record;
+
+ size_t
+ values_length;
+
+ char
+ tag[32],
+ ***values;
+} IPTCInfo;
+
+/*
+ Forward declarations.
+*/
+static MagickBooleanType
+ WriteYAMLImage(const ImageInfo *,Image *,ExceptionInfo *);
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% R e g i s t e r Y A M L I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RegisterYAMLImage() adds attributes for the YAML 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 RegisterYAMLImage method is:
+%
+% size_t RegisterYAMLImage(void)
+%
+*/
+ModuleExport size_t RegisterYAMLImage(void)
+{
+ MagickInfo
+ *entry;
+
+ entry=AcquireMagickInfo("YAML","YAML","The image format and characteristics");
+ entry->encoder=(EncodeImageHandler *) WriteYAMLImage;
+ entry->mime_type=ConstantString("application/json");
+ entry->flags|=CoderEndianSupportFlag;
+ entry->flags^=CoderBlobSupportFlag;
+ (void) RegisterMagickInfo(entry);
+ return(MagickImageCoderSignature);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% U n r e g i s t e r Y A M L I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% UnregisterYAMLImage() removes format registrations made by the
+% YAML module from the list of supported formats.
+%
+% The format of the UnregisterYAMLImage method is:
+%
+% UnregisterYAMLImage(void)
+%
+*/
+ModuleExport void UnregisterYAMLImage(void)
+{
+ (void) UnregisterMagickInfo("YAML");
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% W r i t e Y A M L I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% WriteYAMLImage writes the image attributes in the YAML format.
+%
+% The format of the WriteYAMLImage method is:
+%
+% MagickBooleanType WriteYAMLImage(const ImageInfo *image_info,
+% Image *image,ExceptionInfo *exception)
+%
+% 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 void YAMLFormatLocaleFile(FILE *file,const char *format,
+ const char *value)
+{
+ char
+ *escaped_json;
+
+ char
+ *q;
+
+ const char
+ *p;
+
+ size_t
+ length;
+
+ assert(format != (const char *) NULL);
+ if ((value == (char *) NULL) || (*value == '\0'))
+ {
+ (void) FormatLocaleFile(file,format,"null");
+ return;
+ }
+ length=strlen(value)+2;
+ /*
+ Find all the chars that need escaping and increase the dest length counter.
+ */
+ for (p=value; *p != '\0'; p++)
+ {
+ switch (*p)
+ {
+ case '"':
+ case '\b':
+ case '\f':
+ case '\n':
+ case '\r':
+ case '\t':
+ case '\\':
+ {
+ if (~length < 1)
+ return;
+ length++;
+ break;
+ }
+ default:
+ {
+ if (((int) *p >= 0x00) && ((int) *p <= 0x1f))
+ length+=6;
+ break;
+ }
+ }
+ }
+ escaped_json=(char *) NULL;
+ if (~length >= (MagickPathExtent-1))
+ escaped_json=(char *) AcquireQuantumMemory(length+MagickPathExtent,
+ sizeof(*escaped_json));
+ if (escaped_json == (char *) NULL)
+ {
+ (void) FormatLocaleFile(file,format,"null");
+ return;
+ }
+ q=escaped_json;
+ if (strchr(value,':') != (char *) NULL)
+ *q++='"';
+ for (p=value; *p != '\0'; p++)
+ {
+ switch (*p)
+ {
+ case '"':
+ {
+ *q++='\\';
+ *q++=(*p);
+ break;
+ }
+ case '\b':
+ {
+ *q++='\\';
+ *q++='b';
+ break;
+ }
+ case '\f':
+ {
+ *q++='\\';
+ *q++='f';
+ break;
+ }
+ case '\n':
+ {
+ *q++='\\';
+ *q++='n';
+ break;
+ }
+ case '\r':
+ {
+ *q++='\\';
+ *q++='r';
+ break;
+ }
+ case '\t':
+ {
+ *q++='\\';
+ *q++='t';
+ break;
+ }
+ case '\\':
+ {
+ *q++='\\';
+ *q++='\\';
+ break;
+ }
+ default:
+ {
+ if (((int) *p >= 0x00) && ((int) *p <= 0x1f))
+ {
+ (void) FormatLocaleString(q,7,"\\u%04X",(int) *p);
+ q+=6;
+ break;
+ }
+ *q++=(*p);
+ break;
+ }
+ }
+ }
+ if (strchr(value,':') != (char *) NULL)
+ *q++='"';
+ *q='\0';
+ (void) FormatLocaleFile(file,format,escaped_json);
+ (void) DestroyString(escaped_json);
+}
+
+static ChannelStatistics *GetLocationStatistics(const Image *image,
+ const StatisticType type,ExceptionInfo *exception)
+{
+ ChannelStatistics
+ *channel_statistics;
+
+ ssize_t
+ i;
+
+ ssize_t
+ y;
+
+ assert(image != (Image *) NULL);
+ assert(image->signature == MagickCoreSignature);
+ if (image->debug != MagickFalse)
+ (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+ channel_statistics=(ChannelStatistics *) AcquireQuantumMemory(
+ MaxPixelChannels+1,sizeof(*channel_statistics));
+ if (channel_statistics == (ChannelStatistics *) NULL)
+ ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
+ (void) memset(channel_statistics,0,(MaxPixelChannels+1)*
+ sizeof(*channel_statistics));
+ for (i=0; i <= (ssize_t) MaxPixelChannels; i++)
+ {
+ switch (type)
+ {
+ case MaximumStatistic:
+ default:
+ {
+ channel_statistics[i].maxima=(-MagickMaximumValue);
+ break;
+ }
+ case MinimumStatistic:
+ {
+ channel_statistics[i].minima=MagickMaximumValue;
+ break;
+ }
+ }
+ }
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ const Quantum
+ *magick_restrict p;
+
+ ssize_t
+ x;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+ if (p == (const Quantum *) NULL)
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ ssize_t
+ i;
+
+ if (GetPixelReadMask(image,p) <= (QuantumRange/2))
+ {
+ p+=GetPixelChannels(image);
+ continue;
+ }
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ PixelChannel channel = GetPixelChannelChannel(image,i);
+ PixelTrait traits = GetPixelChannelTraits(image,channel);
+ if (traits == UndefinedPixelTrait)
+ continue;
+ switch (type)
+ {
+ case MaximumStatistic:
+ default:
+ {
+ if ((double) p[i] > channel_statistics[channel].maxima)
+ channel_statistics[channel].maxima=(double) p[i];
+ break;
+ }
+ case MinimumStatistic:
+ {
+ if ((double) p[i] < channel_statistics[channel].minima)
+ channel_statistics[channel].minima=(double) p[i];
+ break;
+ }
+ }
+ }
+ p+=GetPixelChannels(image);
+ }
+ }
+ return(channel_statistics);
+}
+
+static ssize_t PrintChannelFeatures(FILE *file,const PixelChannel channel,
+ const char *name,const MagickBooleanType separator,
+ const ChannelFeatures *channel_features)
+{
+#define PrintFeature(feature) \
+ GetMagickPrecision(),(feature)[0], \
+ GetMagickPrecision(),(feature)[1], \
+ GetMagickPrecision(),(feature)[2], \
+ GetMagickPrecision(),(feature)[3], \
+ GetMagickPrecision(),((feature)[0]+(feature)[1]+(feature)[2]+(feature)[3])/4.0 \
+
+#define FeaturesFormat " %s: \n" \
+ " angularSecondMoment: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " contrast: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " correlation: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " sumOfSquaresVariance: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " inverseDifferenceMoment: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " sumAverage: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " sumVariance: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " sumEntropy: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " entropy: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " differenceVariance: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " differenceEntropy: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " informationMeasureOfCorrelation1: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " informationMeasureOfCorrelation2: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n" \
+ " maximumCorrelationCoefficient: \n" \
+ " horizontal: %.*g\n" \
+ " vertical: %.*g\n" \
+ " leftDiagonal: %.*g\n" \
+ " rightDiagonal: %.*g\n" \
+ " average: %.*g\n" \
+ " \n"
+
+ ssize_t
+ n;
+
+ n=FormatLocaleFile(file,FeaturesFormat,name,
+ PrintFeature(channel_features[channel].angular_second_moment),
+ PrintFeature(channel_features[channel].contrast),
+ PrintFeature(channel_features[channel].correlation),
+ PrintFeature(channel_features[channel].variance_sum_of_squares),
+ PrintFeature(channel_features[channel].inverse_difference_moment),
+ PrintFeature(channel_features[channel].sum_average),
+ PrintFeature(channel_features[channel].sum_variance),
+ PrintFeature(channel_features[channel].sum_entropy),
+ PrintFeature(channel_features[channel].entropy),
+ PrintFeature(channel_features[channel].difference_variance),
+ PrintFeature(channel_features[channel].difference_entropy),
+ PrintFeature(channel_features[channel].measure_of_correlation_1),
+ PrintFeature(channel_features[channel].measure_of_correlation_2),
+ PrintFeature(channel_features[channel].maximum_correlation_coefficient));
+ (void) FormatLocaleFile(file," ");
+ if (separator != MagickFalse)
+ (void) FormatLocaleFile(file," ");
+ (void) FormatLocaleFile(file,"\n");
+ return(n);
+}
+
+static ssize_t PrintChannelLocations(FILE *file,const Image *image,
+ const PixelChannel channel,const char *name,const StatisticType type,
+ const size_t max_locations,const MagickBooleanType separator,
+ const ChannelStatistics *channel_statistics)
+{
+ double
+ target;
+
+ ExceptionInfo
+ *exception;
+
+ ssize_t
+ n,
+ y;
+
+ switch (type)
+ {
+ case MaximumStatistic:
+ default:
+ {
+ target=channel_statistics[channel].maxima;
+ break;
+ }
+ case MinimumStatistic:
+ {
+ target=channel_statistics[channel].minima;
+ break;
+ }
+ }
+ (void) FormatLocaleFile(file," %s: \n intensity: "
+ "%.*g\n",name,GetMagickPrecision(),QuantumScale*target);
+ exception=AcquireExceptionInfo();
+ n=0;
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ const Quantum
+ *p;
+
+ ssize_t
+ offset,
+ x;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+ if (p == (const Quantum *) NULL)
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ MagickBooleanType
+ match;
+
+ PixelTrait traits = GetPixelChannelTraits(image,channel);
+ if (traits == UndefinedPixelTrait)
+ continue;
+ offset=GetPixelChannelOffset(image,channel);
+ match=fabs((double) (p[offset]-target)) < 0.5 ? MagickTrue : MagickFalse;
+ if (match != MagickFalse)
+ {
+ if ((max_locations != 0) && (n >= (ssize_t) max_locations))
+ break;
+ if (n != 0)
+ (void) FormatLocaleFile(file,"\n");
+ (void) FormatLocaleFile(file," location%.20g: \n"
+ " x: %.20g\n y: %.20g\n"
+ " ",(double) n,(double) x,(double) y);
+ n++;
+ }
+ p+=GetPixelChannels(image);
+ }
+ if (x < (ssize_t) image->columns)
+ break;
+ }
+ (void) FormatLocaleFile(file,"\n ");
+ if (separator != MagickFalse)
+ (void) FormatLocaleFile(file," ");
+ (void) FormatLocaleFile(file,"\n");
+ return(n);
+}
+
+static ssize_t PrintChannelMoments(FILE *file,const PixelChannel channel,
+ const char *name,const MagickBooleanType separator,
+ const ChannelMoments *channel_moments)
+{
+ ssize_t
+ i;
+
+ ssize_t
+ n;
+
+ n=FormatLocaleFile(file," %s: \n",name);
+ n+=FormatLocaleFile(file," centroid: \n "
+ " x: %.*g\n"
+ " y: %.*g\n \n",
+ GetMagickPrecision(),channel_moments[channel].centroid.x,
+ GetMagickPrecision(),channel_moments[channel].centroid.y);
+ n+=FormatLocaleFile(file," ellipseSemiMajorMinorAxis: \n"
+ " x: %.*g\n"
+ " y: %.*g\n \n",
+ GetMagickPrecision(),channel_moments[channel].ellipse_axis.x,
+ GetMagickPrecision(),channel_moments[channel].ellipse_axis.y);
+ n+=FormatLocaleFile(file," ellipseAngle: %.*g\n",
+ GetMagickPrecision(),channel_moments[channel].ellipse_angle);
+ n+=FormatLocaleFile(file," ellipseEccentricity: %.*g\n",
+ GetMagickPrecision(),channel_moments[channel].ellipse_eccentricity);
+ n+=FormatLocaleFile(file," ellipseIntensity: %.*g\n",
+ GetMagickPrecision(),channel_moments[channel].ellipse_intensity);
+ for (i=0; i < 7; i++)
+ n+=FormatLocaleFile(file," I%.20g: %.*g\n",i+1.0,
+ GetMagickPrecision(),channel_moments[channel].invariant[i]);
+ n+=FormatLocaleFile(file," I%.20g: %.*g\n",i+1.0,
+ GetMagickPrecision(),channel_moments[channel].invariant[i]);
+ (void) FormatLocaleFile(file," ");
+ if (separator != MagickFalse)
+ (void) FormatLocaleFile(file," ");
+ (void) FormatLocaleFile(file,"\n");
+ return(n);
+}
+
+static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
+ const ChannelPerceptualHash *channel_phash)
+{
+ ssize_t
+ i;
+
+ ssize_t
+ n = 0;
+
+ (void) FormatLocaleFile(file," colorspaces: ");
+ for (i=0; i < (ssize_t) channel_phash[0].number_colorspaces; i++)
+ {
+ (void) FormatLocaleFile(file,"- %s",CommandOptionToMnemonic(
+ MagickColorspaceOptions,(ssize_t) channel_phash[0].colorspace[i]));
+ }
+ (void) FormatLocaleFile(file,"\n");
+ for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ {
+ ssize_t
+ j;
+
+ PixelChannel channel = GetPixelChannelChannel(image,i);
+ PixelTrait traits = GetPixelChannelTraits(image,channel);
+ if (traits == UndefinedPixelTrait)
+ continue;
+ n=FormatLocaleFile(file," Channel%.20g: \n",(double) channel);
+ for (j=0; j < MaximumNumberOfPerceptualHashes; j++)
+ {
+ ssize_t
+ k;
+
+ n+=FormatLocaleFile(file," PH%.20g: ",(double) j+1);
+ for (k=0; k < (ssize_t) channel_phash[0].number_colorspaces; k++)
+ {
+ n+=FormatLocaleFile(file,"- %.*g",GetMagickPrecision(),
+ channel_phash[channel].phash[k][j]);
+ }
+ n+=FormatLocaleFile(file," ");
+ if (j < (MaximumNumberOfPerceptualHashes-1))
+ n+=FormatLocaleFile(file,"\n");
+ }
+ if (i < (ssize_t) (GetPixelChannels(image)-1))
+ n+=FormatLocaleFile(file,"\n \n");
+ }
+ n+=FormatLocaleFile(file,"\n \n");
+ return(n);
+}
+
+static ssize_t PrintChannelStatistics(FILE *file,const PixelChannel channel,
+ const char *name,const double scale,const MagickBooleanType separator,
+ const ChannelStatistics *channel_statistics)
+{
+#define StatisticsFormat " %s: \n min: %.*g\n" \
+ " max: %.*g\n mean: %.*g\n median: %.*g\n " \
+ "standardDeviation: %.*g\n kurtosis: %.*g\n "\
+ "skewness: %.*g\n entropy: %.*g\n "
+
+ ssize_t
+ n;
+
+ n=FormatLocaleFile(file,StatisticsFormat,name,GetMagickPrecision(),
+ (double) ClampToQuantum(scale*channel_statistics[channel].minima),
+ GetMagickPrecision(),(double) ClampToQuantum(scale*
+ channel_statistics[channel].maxima),GetMagickPrecision(),
+ scale*channel_statistics[channel].mean,GetMagickPrecision(),
+ scale*channel_statistics[channel].median,GetMagickPrecision(),scale*
+ IsNaN(channel_statistics[channel].standard_deviation) != 0 ? MagickEpsilon :
+ channel_statistics[channel].standard_deviation,GetMagickPrecision(),
+ channel_statistics[channel].kurtosis,GetMagickPrecision(),
+ channel_statistics[channel].skewness,GetMagickPrecision(),
+ channel_statistics[channel].entropy);
+ if (separator != MagickFalse)
+ (void) FormatLocaleFile(file," ");
+ (void) FormatLocaleFile(file,"\n");
+ return(n);
+}
+
+static void EncodeIptcProfile(FILE *file,const StringInfo *profile)
+{
+ char
+ *attribute,
+ **attribute_list;
+
+ const char
+ *tag;
+
+ IPTCInfo
+ *value,
+ **values;
+
+ long
+ dataset,
+ record,
+ sentinel;
+
+ ssize_t
+ i,
+ j,
+ k;
+
+ size_t
+ count,
+ length,
+ profile_length;
+
+ values=(IPTCInfo **) NULL;
+ count=0;
+ profile_length=GetStringInfoLength(profile);
+ for (i=0; i < (ssize_t) profile_length; i+=(ssize_t) length)
+ {
+ length=1;
+ sentinel=GetStringInfoDatum(profile)[i++];
+ if (sentinel != 0x1c)
+ continue;
+ dataset=GetStringInfoDatum(profile)[i++];
+ record=GetStringInfoDatum(profile)[i++];
+ value=(IPTCInfo *) NULL;
+ for (j=0; j < (ssize_t) count; j++)
+ {
+ if ((values[j]->record == record) && (values[j]->dataset == dataset))
+ value=values[j];
+ }
+ if (value == (IPTCInfo *) NULL)
+ {
+ values=(IPTCInfo **) ResizeQuantumMemory(values,count+1,
+ sizeof(*values));
+ if (values == (IPTCInfo **) NULL)
+ break;
+ value=(IPTCInfo *) AcquireMagickMemory(sizeof(*value));
+ if (value == (IPTCInfo *) NULL)
+ break;
+ /* Check the tag length in IPTCInfo when a new tag is added */
+ switch (record)
+ {
+ case 5: tag="Image Name"; break;
+ case 7: tag="Edit Status"; break;
+ case 10: tag="Priority"; break;
+ case 15: tag="Category"; break;
+ case 20: tag="Supplemental Category"; break;
+ case 22: tag="Fixture Identifier"; break;
+ case 25: tag="Keyword"; break;
+ case 30: tag="Release Date"; break;
+ case 35: tag="Release Time"; break;
+ case 40: tag="Special Instructions"; break;
+ case 45: tag="Reference Service"; break;
+ case 47: tag="Reference Date"; break;
+ case 50: tag="Reference Number"; break;
+ case 55: tag="Created Date"; break;
+ case 60: tag="Created Time"; break;
+ case 65: tag="Originating Program"; break;
+ case 70: tag="Program Version"; break;
+ case 75: tag="Object Cycle"; break;
+ case 80: tag="Byline"; break;
+ case 85: tag="Byline Title"; break;
+ case 90: tag="City"; break;
+ case 92: tag="Sub-Location"; break;
+ case 95: tag="Province State"; break;
+ case 100: tag="Country Code"; break;
+ case 101: tag="Country"; break;
+ case 103: tag="Original Transmission Reference"; break;
+ case 105: tag="Headline"; break;
+ case 110: tag="Credit"; break;
+ case 115: tag="Src"; break;
+ case 116: tag="Copyright String"; break;
+ case 120: tag="Caption"; break;
+ case 121: tag="Local Caption"; break;
+ case 122: tag="Caption Writer"; break;
+ case 200: tag="Custom Field 1"; break;
+ case 201: tag="Custom Field 2"; break;
+ case 202: tag="Custom Field 3"; break;
+ case 203: tag="Custom Field 4"; break;
+ case 204: tag="Custom Field 5"; break;
+ case 205: tag="Custom Field 6"; break;
+ case 206: tag="Custom Field 7"; break;
+ case 207: tag="Custom Field 8"; break;
+ case 208: tag="Custom Field 9"; break;
+ case 209: tag="Custom Field 10"; break;
+ case 210: tag="Custom Field 11"; break;
+ case 211: tag="Custom Field 12"; break;
+ case 212: tag="Custom Field 13"; break;
+ case 213: tag="Custom Field 14"; break;
+ case 214: tag="Custom Field 15"; break;
+ case 215: tag="Custom Field 16"; break;
+ case 216: tag="Custom Field 17"; break;
+ case 217: tag="Custom Field 18"; break;
+ case 218: tag="Custom Field 19"; break;
+ case 219: tag="Custom Field 20"; break;
+ default: tag="Unknown"; break;
+ }
+ (void) CopyMagickString(value->tag,tag,strlen(tag)+1);
+ value->record=record;
+ value->dataset=dataset;
+ value->values=(char ***) NULL;
+ value->values_length=0;
+ values[count++]=value;
+ }
+ length=(size_t) (GetStringInfoDatum(profile)[i++] << 8);
+ length|=GetStringInfoDatum(profile)[i++];
+ attribute=(char *) NULL;
+ if (~length >= (MagickPathExtent-1))
+ attribute=(char *) AcquireQuantumMemory(length+MagickPathExtent,
+ sizeof(*attribute));
+ if (attribute != (char *) NULL)
+ {
+ (void) CopyMagickString(attribute,(char *)
+ GetStringInfoDatum(profile)+i,length+1);
+ attribute_list=StringToList(attribute);
+ if (attribute_list != (char **) NULL)
+ {
+ value->values=(char ***) ResizeQuantumMemory(value->values,
+ value->values_length+1,
+ sizeof(*value->values));
+ if (value->values == (char ***) NULL)
+ break;
+ value->values[value->values_length++]=attribute_list;
+ }
+ attribute=DestroyString(attribute);
+ }
+ }
+ if (values != (IPTCInfo **) NULL)
+ {
+ for (i=0; i < (ssize_t) count; i++)
+ {
+ value=values[i];
+ (void) FormatLocaleFile(file," %s[%.20g,%.20g]: ",
+ value->tag,(double) value->dataset,(double) value->record);
+ if (value->values_length == 0)
+ (void) FormatLocaleFile(file,"null,");
+ else
+ {
+ (void) FormatLocaleFile(file,"[");
+ for (j=0; j < (ssize_t) value->values_length; j++)
+ {
+ for (k=0; value->values[j][k] != (char *) NULL; k++)
+ {
+ if (j > 0 || k > 0)
+ (void) FormatLocaleFile(file," ");
+ YAMLFormatLocaleFile(file,"%s",value->values[j][k]);
+ value->values[j][k]=(char *) RelinquishMagickMemory(
+ value->values[j][k]);
+ }
+ value->values[j]=(char **) RelinquishMagickMemory(
+ value->values[j]);
+ }
+ value->values=(char ***) RelinquishMagickMemory(value->values);
+ (void) FormatLocaleFile(file,"]\n");
+ }
+ values[i]=(IPTCInfo *) RelinquishMagickMemory(values[i]);
+ }
+ values=(IPTCInfo **) RelinquishMagickMemory(values);
+ }
+}
+
+static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
+ ExceptionInfo *exception)
+{
+ char
+ color[MagickPathExtent],
+ format[MagickPathExtent],
+ key[MagickPathExtent];
+
+ ChannelFeatures
+ *channel_features;
+
+ ChannelMoments
+ *channel_moments;
+
+ ChannelPerceptualHash
+ *channel_phash;
+
+ ChannelStatistics
+ *channel_statistics;
+
+ const char
+ *artifact,
+ *locate,
+ *name,
+ *property,
+ *registry,
+ *value;
+
+ const MagickInfo
+ *magick_info;
+
+ double
+ elapsed_time,
+ user_time,
+ version;
+
+ ImageType
+ type;
+
+ MagickBooleanType
+ ping;
+
+ const Quantum
+ *p;
+
+ ssize_t
+ i,
+ x;
+
+ size_t
+ depth,
+ distance,
+ scale;
+
+ ssize_t
+ y;
+
+ assert(image != (Image *) NULL);
+ assert(image->signature == MagickCoreSignature);
+ if (image->debug != MagickFalse)
+ (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+ *format='\0';
+ elapsed_time=GetElapsedTime(&image->timer);
+ user_time=GetUserTime(&image->timer);
+ GetTimerInfo(&image->timer);
+ p=GetVirtualPixels(image,0,0,1,1,exception);
+ ping=p == (const Quantum *) NULL ? MagickTrue : MagickFalse;
+ (void) ping;
+ (void) SignatureImage(image,exception);
+ (void) FormatLocaleFile(file,"---\n");
+ version=1.0;
+ artifact=GetImageArtifact(image,"yaml:version");
+ if (artifact != (const char *) NULL)
+ version=StringToDouble(artifact,(char **) NULL);
+ if (version >= 1.0)
+ (void) FormatLocaleFile(file," version: %.1f\n",version);
+ if (*image->magick_filename == '\0')
+ YAMLFormatLocaleFile(file," image: \n name: %s\n",
+ image->filename);
+ else
+ {
+ YAMLFormatLocaleFile(file," image: \n name: %s\n",
+ image->magick_filename);
+ if (LocaleCompare(image->magick_filename,image->filename) != 0)
+ {
+ char
+ filename[MaxTextExtent];
+
+ GetPathComponent(image->magick_filename,TailPath,filename);
+ YAMLFormatLocaleFile(file," baseName: %s\n",filename);
+ }
+ }
+ YAMLFormatLocaleFile(file," format: %s\n",image->magick);
+ magick_info=GetMagickInfo(image->magick,exception);
+ if ((magick_info != (const MagickInfo *) NULL) &&
+ (GetMagickDescription(magick_info) != (const char *) NULL))
+ YAMLFormatLocaleFile(file," formatDescription: %s\n",
+ image->magick);
+ if ((magick_info != (const MagickInfo *) NULL) &&
+ (GetMagickMimeType(magick_info) != (const char *) NULL))
+ YAMLFormatLocaleFile(file," mimeType: %s\n",GetMagickMimeType(
+ magick_info));
+ YAMLFormatLocaleFile(file," class: %s\n",CommandOptionToMnemonic(
+ MagickClassOptions,(ssize_t) image->storage_class));
+ (void) FormatLocaleFile(file," geometry: \n"
+ " width: %g\n height: %g\n"
+ " x: %g\n y: %g\n \n",
+ (double) image->columns,(double) image->rows,(double) image->tile_offset.x,
+ (double) image->tile_offset.y);
+ if ((image->magick_columns != 0) || (image->magick_rows != 0))
+ if ((image->magick_columns != image->columns) ||
+ (image->magick_rows != image->rows))
+ (void) FormatLocaleFile(file," baseGeometry: \n"
+ " width: %g\n height: %g\n \n",(double)
+ image->magick_columns,(double) image->magick_rows);
+ if ((image->resolution.x != 0.0) && (image->resolution.y != 0.0))
+ {
+ (void) FormatLocaleFile(file," resolution: \n"
+ " x: %g\n y: %g\n \n",image->resolution.x,
+ image->resolution.y);
+ (void) FormatLocaleFile(file," printSize: \n"
+ " x: %.*g\n y: %.*g\n \n",GetMagickPrecision(),
+ image->columns/image->resolution.x,GetMagickPrecision(),(double)
+ image->rows/image->resolution.y);
+ }
+ YAMLFormatLocaleFile(file," units: %s\n",CommandOptionToMnemonic(
+ MagickResolutionOptions,(ssize_t) image->units));
+ type=IdentifyImageType(image,exception);
+ YAMLFormatLocaleFile(file," type: %s\n",CommandOptionToMnemonic(
+ MagickTypeOptions,(ssize_t) type));
+ if (image->type != type)
+ YAMLFormatLocaleFile(file," baseType: %s\n",
+ CommandOptionToMnemonic(MagickTypeOptions,(ssize_t) image->type));
+ if (version < 1.0)
+ YAMLFormatLocaleFile(file," endianess: %s\n",
+ CommandOptionToMnemonic(MagickEndianOptions,(ssize_t) image->endian));
+ else
+ YAMLFormatLocaleFile(file," endianness: %s\n",
+ CommandOptionToMnemonic(MagickEndianOptions,(ssize_t) image->endian));
+ locate=GetImageArtifact(image,"identify:locate");
+ if (locate == (const char *) NULL)
+ locate=GetImageArtifact(image,"yaml:locate");
+ if (locate != (const char *) NULL)
+ {
+ const char
+ *limit;
+
+ size_t
+ max_locations;
+
+ StatisticType
+ type;
+
+ /*
+ Display minimum, maximum, or mean pixel locations.
+ */
+ type=(StatisticType) ParseCommandOption(MagickStatisticOptions,
+ MagickFalse,locate);
+ limit=GetImageArtifact(image,"identify:limit");
+ if (limit == (const char *) NULL)
+ limit=GetImageArtifact(image,"yaml:limit");
+ max_locations=0;
+ if (limit != (const char *) NULL)
+ max_locations=StringToUnsignedLong(limit);
+ channel_statistics=GetLocationStatistics(image,type,exception);
+ if (channel_statistics == (ChannelStatistics *) NULL)
+ return(MagickFalse);
+ (void) FormatLocaleFile(file," channel%s: \n",locate);
+ if (image->alpha_trait != UndefinedPixelTrait)
+ (void) PrintChannelLocations(file,image,AlphaPixelChannel,"alpha",
+ type,max_locations,MagickTrue,channel_statistics);
+ switch (image->colorspace)
+ {
+ case RGBColorspace:
+ default:
+ {
+ (void) PrintChannelLocations(file,image,RedPixelChannel,"red",
+ type,max_locations,MagickTrue,channel_statistics);
+ (void) PrintChannelLocations(file,image,GreenPixelChannel,"green",
+ type,max_locations,MagickTrue,channel_statistics);
+ (void) PrintChannelLocations(file,image,BluePixelChannel,"blue",
+ type,max_locations,MagickFalse,channel_statistics);
+ break;
+ }
+ case CMYKColorspace:
+ {
+ (void) PrintChannelLocations(file,image,CyanPixelChannel,"cyan",
+ type,max_locations,MagickTrue,channel_statistics);
+ (void) PrintChannelLocations(file,image,MagentaPixelChannel,
+ "magenta",type,max_locations,MagickTrue,channel_statistics);
+ (void) PrintChannelLocations(file,image,YellowPixelChannel,"yellow",
+ type,max_locations,MagickTrue,channel_statistics);
+ (void) PrintChannelLocations(file,image,BlackPixelChannel,"black",
+ type,max_locations,MagickFalse,channel_statistics);
+ break;
+ }
+ case LinearGRAYColorspace:
+ case GRAYColorspace:
+ {
+ (void) PrintChannelLocations(file,image,GrayPixelChannel,"gray",
+ type,max_locations,MagickFalse,channel_statistics);
+ break;
+ }
+ }
+ (void) FormatLocaleFile(file," \n");
+ channel_statistics=(ChannelStatistics *) RelinquishMagickMemory(
+ channel_statistics);
+ }
+ /*
+ Detail channel depth and extrema.
+ */
+ YAMLFormatLocaleFile(file," colorspace: %s\n",
+ CommandOptionToMnemonic(MagickColorspaceOptions,(ssize_t)
+ image->colorspace));
+ channel_statistics=(ChannelStatistics *) NULL;
+ channel_moments=(ChannelMoments *) NULL;
+ channel_phash=(ChannelPerceptualHash *) NULL;
+ channel_features=(ChannelFeatures *) NULL;
+ scale=1;
+ channel_statistics=GetImageStatistics(image,exception);
+ if (channel_statistics == (ChannelStatistics *) NULL)
+ return(MagickFalse);
+ artifact=GetImageArtifact(image,"identify:moments");
+ if (artifact == (const char *) NULL)
+ artifact=GetImageArtifact(image,"yaml:moments");
+ if (artifact != (const char *) NULL)
+ {
+ channel_moments=GetImageMoments(image,exception);
+ channel_phash=GetImagePerceptualHash(image,exception);
+ }
+ artifact=GetImageArtifact(image,"identify:features");
+ if (artifact == (const char *) NULL)
+ artifact=GetImageArtifact(image,"yaml:features");
+ if (artifact != (const char *) NULL)
+ {
+ distance=StringToUnsignedLong(artifact);
+ channel_features=GetImageFeatures(image,distance,exception);
+ }
+ depth=GetImageDepth(image,exception);
+ (void) FormatLocaleFile(file," depth: %g\n",(double) depth);
+ (void) FormatLocaleFile(file," baseDepth: %g\n",(double)
+ image->depth);
+ (void) FormatLocaleFile(file," channelDepth: \n");
+ if (image->alpha_trait != UndefinedPixelTrait)
+ (void) FormatLocaleFile(file," alpha: %.20g\n",(double)
+ channel_statistics[AlphaPixelChannel].depth);
+ switch (image->colorspace)
+ {
+ case RGBColorspace:
+ default:
+ {
+ (void) FormatLocaleFile(file," red: %.20g\n",(double)
+ channel_statistics[RedChannel].depth);
+ (void) FormatLocaleFile(file," green: %.20g\n",(double)
+ channel_statistics[GreenChannel].depth);
+ (void) FormatLocaleFile(file," blue: %.20g\n",(double)
+ channel_statistics[BlueChannel].depth);
+ break;
+ }
+ case CMYKColorspace:
+ {
+ (void) FormatLocaleFile(file," cyan: %.20g\n",(double)
+ channel_statistics[CyanChannel].depth);
+ (void) FormatLocaleFile(file," magenta: %.20g\n",(double)
+ channel_statistics[MagentaChannel].depth);
+ (void) FormatLocaleFile(file," yellow: %.20g\n",(double)
+ channel_statistics[YellowChannel].depth);
+ (void) FormatLocaleFile(file," black: %.20g\n",(double)
+ channel_statistics[BlackChannel].depth);
+ break;
+ }
+ case LinearGRAYColorspace:
+ case GRAYColorspace:
+ {
+ (void) FormatLocaleFile(file," gray: %.20g\n",(double)
+ channel_statistics[GrayChannel].depth);
+ break;
+ }
+ }
+ (void) FormatLocaleFile(file," \n");
+ scale=1;
+ if (image->depth <= MAGICKCORE_QUANTUM_DEPTH)
+ scale=QuantumRange/((size_t) QuantumRange >> ((size_t)
+ MAGICKCORE_QUANTUM_DEPTH-image->depth));
+ if (channel_statistics != (ChannelStatistics *) NULL)
+ {
+ (void) FormatLocaleFile(file," pixels: %.20g\n",
+ channel_statistics[CompositePixelChannel].area);
+ if ((image->colorspace != LinearGRAYColorspace) &&
+ (image->colorspace != GRAYColorspace))
+ {
+ (void) FormatLocaleFile(file," imageStatistics: \n");
+ (void) PrintChannelStatistics(file,(PixelChannel) MaxPixelChannels,
+ "overall",1.0/scale,MagickFalse,channel_statistics);
+ (void) FormatLocaleFile(file," \n");
+ }
+ (void) FormatLocaleFile(file," channelStatistics: \n");
+ if (image->alpha_trait != UndefinedPixelTrait)
+ (void) PrintChannelStatistics(file,AlphaPixelChannel,"alpha",1.0/scale,
+ MagickTrue,channel_statistics);
+ switch (image->colorspace)
+ {
+ case RGBColorspace:
+ default:
+ {
+ (void) PrintChannelStatistics(file,RedPixelChannel,"red",1.0/scale,
+ MagickTrue,channel_statistics);
+ (void) PrintChannelStatistics(file,GreenPixelChannel,"green",1.0/
+ scale,MagickTrue,channel_statistics);
+ (void) PrintChannelStatistics(file,BluePixelChannel,"blue",1.0/scale,
+ MagickFalse,channel_statistics);
+ break;
+ }
+ case CMYKColorspace:
+ {
+ (void) PrintChannelStatistics(file,CyanPixelChannel,"cyan",1.0/scale,
+ MagickTrue,channel_statistics);
+ (void) PrintChannelStatistics(file,MagentaPixelChannel,"magenta",1.0/
+ scale,MagickTrue,channel_statistics);
+ (void) PrintChannelStatistics(file,YellowPixelChannel,"yellow",1.0/
+ scale,MagickTrue,channel_statistics);
+ (void) PrintChannelStatistics(file,BlackPixelChannel,"black",1.0/
+ scale,MagickFalse,channel_statistics);
+ break;
+ }
+ case LinearGRAYColorspace:
+ case GRAYColorspace:
+ {
+ (void) PrintChannelStatistics(file,GrayPixelChannel,"gray",1.0/scale,
+ MagickFalse,channel_statistics);
+ break;
+ }
+ }
+ (void) FormatLocaleFile(file," \n");
+ channel_statistics=(ChannelStatistics *) RelinquishMagickMemory(
+ channel_statistics);
+ }
+ if (channel_moments != (ChannelMoments *) NULL)
+ {
+ (void) FormatLocaleFile(file," channelMoments: \n");
+ if (image->alpha_trait != UndefinedPixelTrait)
+ (void) PrintChannelMoments(file,AlphaPixelChannel,"alpha",MagickTrue,
+ channel_moments);
+ switch (image->colorspace)
+ {
+ case RGBColorspace:
+ default:
+ {
+ (void) PrintChannelMoments(file,RedPixelChannel,"red",MagickTrue,
+ channel_moments);
+ (void) PrintChannelMoments(file,GreenPixelChannel,"green",MagickTrue,
+ channel_moments);
+ (void) PrintChannelMoments(file,BluePixelChannel,"blue",MagickFalse,
+ channel_moments);
+ break;
+ }
+ case CMYKColorspace:
+ {
+ (void) PrintChannelMoments(file,CyanPixelChannel,"cyan",MagickTrue,
+ channel_moments);
+ (void) PrintChannelMoments(file,MagentaPixelChannel,"magenta",
+ MagickTrue,channel_moments);
+ (void) PrintChannelMoments(file,YellowPixelChannel,"yellow",
+ MagickTrue,channel_moments);
+ (void) PrintChannelMoments(file,BlackPixelChannel,"black",
+ MagickFalse,channel_moments);
+ break;
+ }
+ case LinearGRAYColorspace:
+ case GRAYColorspace:
+ {
+ (void) PrintChannelMoments(file,GrayPixelChannel,"gray",MagickFalse,
+ channel_moments);
+ break;
+ }
+ }
+ (void) FormatLocaleFile(file," \n");
+ channel_moments=(ChannelMoments *) RelinquishMagickMemory(
+ channel_moments);
+ }
+ if (channel_phash != (ChannelPerceptualHash *) NULL)
+ {
+ (void) FormatLocaleFile(file," channelPerceptualHash: \n");
+ (void) PrintChannelPerceptualHash(image,file,channel_phash);
+ (void) FormatLocaleFile(file," \n");
+ channel_phash=(ChannelPerceptualHash *) RelinquishMagickMemory(
+ channel_phash);
+ }
+ if (channel_features != (ChannelFeatures *) NULL)
+ {
+ (void) FormatLocaleFile(file," channelFeatures: \n");
+ if (image->alpha_trait != UndefinedPixelTrait)
+ (void) PrintChannelFeatures(file,AlphaPixelChannel,"alpha",MagickTrue,
+ channel_features);
+ switch (image->colorspace)
+ {
+ case RGBColorspace:
+ default:
+ {
+ (void) PrintChannelFeatures(file,RedPixelChannel,"red",MagickTrue,
+ channel_features);
+ (void) PrintChannelFeatures(file,GreenPixelChannel,"green",
+ MagickTrue,channel_features);
+ (void) PrintChannelFeatures(file,BluePixelChannel,"blue",MagickFalse,
+ channel_features);
+ break;
+ }
+ case CMYKColorspace:
+ {
+ (void) PrintChannelFeatures(file,CyanPixelChannel,"cyan",MagickTrue,
+ channel_features);
+ (void) PrintChannelFeatures(file,MagentaPixelChannel,"magenta",
+ MagickTrue,channel_features);
+ (void) PrintChannelFeatures(file,YellowPixelChannel,"yellow",
+ MagickTrue,channel_features);
+ (void) PrintChannelFeatures(file,BlackPixelChannel,"black",
+ MagickFalse,channel_features);
+ break;
+ }
+ case LinearGRAYColorspace:
+ case GRAYColorspace:
+ {
+ (void) PrintChannelFeatures(file,GrayPixelChannel,"gray",MagickFalse,
+ channel_features);
+ break;
+ }
+ }
+ (void) FormatLocaleFile(file," \n");
+ channel_features=(ChannelFeatures *) RelinquishMagickMemory(
+ channel_features);
+ }
+ if (image->colorspace == CMYKColorspace)
+ (void) FormatLocaleFile(file," totalInkDensity: %.*g%%\n",
+ GetMagickPrecision(),100.0*GetImageTotalInkDensity(image,exception)/
+ (double) QuantumRange);
+ x=0;
+ if (image->alpha_trait != UndefinedPixelTrait)
+ {
+ const Quantum
+ *p;
+
+ p=(const Quantum *) NULL;
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+ if (p == (const Quantum *) NULL)
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ if (GetPixelAlpha(image,p) == (Quantum) TransparentAlpha)
+ break;
+ p+=GetPixelChannels(image);
+ }
+ if (x < (ssize_t) image->columns)
+ break;
+ }
+ if ((x < (ssize_t) image->columns) || (y < (ssize_t) image->rows))
+ {
+ PixelInfo
+ pixel;
+
+ GetPixelInfo(image,&pixel);
+ GetPixelInfoPixel(image,p,&pixel);
+ GetColorTuple(&pixel,MagickTrue,color);
+ (void) FormatLocaleFile(file," alpha: %s\n",color);
+ }
+ }
+ if (image->storage_class == PseudoClass)
+ {
+ PixelInfo
+ *magick_restrict p;
+
+ (void) FormatLocaleFile(file," colormapEntries: %.20g\n",
+ (double) image->colors);
+ (void) FormatLocaleFile(file," colormap: \n ");
+ p=image->colormap;
+ for (i=0; i < (ssize_t) image->colors; i++)
+ {
+ GetColorTuple(p,MagickTrue,color);
+ (void) FormatLocaleFile(file,"- \"%s\"\n ",color);
+ p++;
+ }
+ (void) FormatLocaleFile(file,"\n \n");
+ }
+ if (image->error.mean_error_per_pixel != 0.0)
+ (void) FormatLocaleFile(file," meanErrorPerPixel: %g\n",
+ image->error.mean_error_per_pixel);
+ if (image->error.normalized_mean_error != 0.0)
+ (void) FormatLocaleFile(file," normalizedMeanError: %g\n",
+ image->error.normalized_mean_error);
+ if (image->error.normalized_maximum_error != 0.0)
+ (void) FormatLocaleFile(file," normalizedMaximumError: %g\n",
+ image->error.normalized_maximum_error);
+ YAMLFormatLocaleFile(file," renderingIntent: %s\n",
+ CommandOptionToMnemonic(MagickIntentOptions,(ssize_t)
+ image->rendering_intent));
+ if (image->gamma != 0.0)
+ (void) FormatLocaleFile(file," gamma: %g\n",image->gamma);
+ if ((image->chromaticity.red_primary.x != 0.0) ||
+ (image->chromaticity.green_primary.x != 0.0) ||
+ (image->chromaticity.blue_primary.x != 0.0) ||
+ (image->chromaticity.white_point.x != 0.0))
+ {
+ /*
+ Display image chromaticity.
+ */
+ (void) FormatLocaleFile(file," chromaticity: \n");
+ (void) FormatLocaleFile(file," redPrimary: \n"
+ " x: %g\n y: %g\n \n",
+ image->chromaticity.red_primary.x,image->chromaticity.red_primary.y);
+ (void) FormatLocaleFile(file," greenPrimary: \n"
+ " x: %g\n y: %g\n \n",
+ image->chromaticity.green_primary.x,
+ image->chromaticity.green_primary.y);
+ (void) FormatLocaleFile(file," bluePrimary: \n"
+ " x: %g\n y: %g\n \n",
+ image->chromaticity.blue_primary.x,image->chromaticity.blue_primary.y);
+ (void) FormatLocaleFile(file," whitePrimary: \n"
+ " x: %g\n y: %g\n \n",
+ image->chromaticity.white_point.x,image->chromaticity.white_point.y);
+ (void) FormatLocaleFile(file," \n");
+ }
+ if ((image->extract_info.width*image->extract_info.height) != 0)
+ (void) FormatLocaleFile(file," tileGeometry: \n"
+ " width: %.20g\n height: %.20g\n"
+ " x: %.20g\n y: %.20g\n \n",
+ (double) image->extract_info.width,(double) image->extract_info.height,
+ (double) image->extract_info.x,(double) image->extract_info.y);
+ GetColorTuple(&image->matte_color,MagickTrue,color);
+ (void) FormatLocaleFile(file," matteColor: %s\n",color);
+ GetColorTuple(&image->background_color,MagickTrue,color);
+ (void) FormatLocaleFile(file," backgroundColor: %s\n",color);
+ GetColorTuple(&image->border_color,MagickTrue,color);
+ (void) FormatLocaleFile(file," borderColor: %s\n",color);
+ GetColorTuple(&image->transparent_color,MagickTrue,color);
+ (void) FormatLocaleFile(file," transparentColor: %s\n",color);
+ YAMLFormatLocaleFile(file," interlace: %s\n",CommandOptionToMnemonic(
+ MagickInterlaceOptions,(ssize_t) image->interlace));
+ YAMLFormatLocaleFile(file," intensity: %s\n",CommandOptionToMnemonic(
+ MagickPixelIntensityOptions,(ssize_t) image->intensity));
+ YAMLFormatLocaleFile(file," compose: %s\n",
+ CommandOptionToMnemonic(MagickComposeOptions,(ssize_t) image->compose));
+ if ((image->page.width != 0) || (image->page.height != 0) ||
+ (image->page.x != 0) || (image->page.y != 0))
+ (void) FormatLocaleFile(file," pageGeometry: \n"
+ " width: %.20g\n height: %.20g\n"
+ " x: %.20g\n y: %.20g\n \n",
+ (double) image->page.width,(double) image->page.height,
+ (double) image->page.x,(double) image->page.y);
+ if ((image->page.x != 0) || (image->page.y != 0))
+ (void) FormatLocaleFile(file," originGeometry: %+.20g%+.20g\n",
+ (double) image->page.x,(double) image->page.y);
+ YAMLFormatLocaleFile(file," dispose: %s\n",
+ CommandOptionToMnemonic(MagickDisposeOptions,(ssize_t) image->dispose));
+ if (image->delay != 0)
+ (void) FormatLocaleFile(file," delay: %.20gx%.20g\n",
+ (double) image->delay,(double) image->ticks_per_second);
+ if (image->iterations != 1)
+ (void) FormatLocaleFile(file," iterations: %.20g\n",(double)
+ image->iterations);
+ if ((image->next != (Image *) NULL) || (image->previous != (Image *) NULL))
+ (void) FormatLocaleFile(file," scene: %.20g\n scenes: "
+ "%.20g\n",(double) image->scene,(double) GetImageListLength(image));
+ else
+ if (image->scene != 0)
+ (void) FormatLocaleFile(file," scene: %.20g\n",(double)
+ image->scene);
+ YAMLFormatLocaleFile(file," compression: %s\n",
+ CommandOptionToMnemonic(MagickCompressOptions,(ssize_t)
+ image->compression));
+ if (image->quality != UndefinedCompressionQuality)
+ (void) FormatLocaleFile(file," quality: %.20g\n",(double)
+ image->quality);
+ YAMLFormatLocaleFile(file," orientation: %s\n",
+ CommandOptionToMnemonic(MagickOrientationOptions,(ssize_t)
+ image->orientation));
+ if (image->montage != (char *) NULL)
+ YAMLFormatLocaleFile(file," montage: %s\n",image->montage);
+ if (image->directory != (char *) NULL)
+ {
+ Image
+ *tile;
+
+ ImageInfo
+ *image_info;
+
+ char
+ *p,
+ *q;
+
+ WarningHandler
+ handler;
+
+ /*
+ Display visual image directory.
+ */
+ image_info=AcquireImageInfo();
+ (void) CloneString(&image_info->size,"64x64");
+ (void) FormatLocaleFile(file," montageDirectory: ");
+ p=image->directory;
+ while (*p != '\0')
+ {
+ q=p;
+ while ((*q != '\xff') && (*q != '\0'))
+ q++;
+ (void) CopyMagickString(image_info->filename,p,(size_t) (q-p+1));
+ p=q+1;
+ YAMLFormatLocaleFile(file,"\n - name: %s",
+ image_info->filename);
+ handler=SetWarningHandler((WarningHandler) NULL);
+ tile=ReadImage(image_info,exception);
+ (void) SetWarningHandler(handler);
+ if (tile == (Image *) NULL)
+ {
+ (void) FormatLocaleFile(file," ");
+ continue;
+ }
+ (void) FormatLocaleFile(file,"\n - info: %.20gx%.20g %s",
+ (double) tile->magick_columns,(double) tile->magick_rows,
+ tile->magick);
+ (void) SignatureImage(tile,exception);
+ ResetImagePropertyIterator(tile);
+ property=GetNextImageProperty(tile);
+ while (property != (const char *) NULL)
+ {
+ YAMLFormatLocaleFile(file,"\n %s: ",property);
+ value=GetImageProperty(tile,property,exception);
+ YAMLFormatLocaleFile(file,"%s",value);
+ property=GetNextImageProperty(tile);
+ }
+ tile=DestroyImageList(tile);
+ (void) FormatLocaleFile(file,"\n ");
+ }
+ (void) FormatLocaleFile(file,"\n");
+ image_info=DestroyImageInfo(image_info);
+ }
+ ResetImagePropertyIterator(image);
+ property=GetNextImageProperty(image);
+ if (property != (const char *) NULL)
+ {
+ size_t
+ n;
+
+ /*
+ Display image properties.
+ */
+ n=0;
+ (void) FormatLocaleFile(file," properties: \n");
+ while (property != (const char *) NULL)
+ {
+ if (n++ != 0)
+ (void) FormatLocaleFile(file,"\n");
+ YAMLFormatLocaleFile(file," %s: ",property);
+ value=GetImageProperty(image,property,exception);
+ YAMLFormatLocaleFile(file,"%s",value);
+ property=GetNextImageProperty(image);
+ }
+ (void) FormatLocaleFile(file,"\n \n");
+ }
+ (void) FormatLocaleString(key,MagickPathExtent,"8BIM:1999,2998:#1");
+ value=GetImageProperty(image,key,exception);
+ if (value != (const char *) NULL)
+ {
+ /*
+ Display clipping path.
+ */
+ YAMLFormatLocaleFile(file," clipping path: %s\n",value);
+ }
+ ResetImageProfileIterator(image);
+ name=GetNextImageProfile(image);
+ if (name != (char *) NULL)
+ {
+ const StringInfo
+ *profile;
+
+ size_t
+ n;
+
+ /*
+ Identify image profiles.
+ */
+ n=0;
+ (void) FormatLocaleFile(file," profiles: \n");
+ while (name != (char *) NULL)
+ {
+ profile=GetImageProfile(image,name);
+ if (profile == (StringInfo *) NULL)
+ continue;
+ if (n++ != 0)
+ (void) FormatLocaleFile(file,"\n");
+ YAMLFormatLocaleFile(file," %s: \n",name);
+ if (LocaleCompare(name,"iptc") == 0)
+ EncodeIptcProfile(file,profile);
+ (void) FormatLocaleFile(file," length: %.20g",(double)
+ GetStringInfoLength(profile));
+ (void) FormatLocaleFile(file,"\n ");
+ name=GetNextImageProfile(image);
+ }
+ (void) FormatLocaleFile(file,"\n \n");
+ }
+ ResetImageArtifactIterator(image);
+ artifact=GetNextImageArtifact(image);
+ if (artifact != (const char *) NULL)
+ {
+ ssize_t
+ n;
+
+ /*
+ Display image artifacts.
+ */
+ n=0;
+ (void) FormatLocaleFile(file," artifacts: \n");
+ while (artifact != (const char *) NULL)
+ {
+ if (n++ != 0)
+ (void) FormatLocaleFile(file,"\n");
+ YAMLFormatLocaleFile(file," %s: ",artifact);
+ value=GetImageArtifact(image,artifact);
+ YAMLFormatLocaleFile(file,"%s",value);
+ artifact=GetNextImageArtifact(image);
+ }
+ (void) FormatLocaleFile(file,"\n \n");
+ }
+ ResetImageRegistryIterator();
+ registry=GetNextImageRegistry();
+ if (registry != (const char *) NULL)
+ {
+ ssize_t
+ n;
+
+ /*
+ Display image registry.
+ */
+ (void) FormatLocaleFile(file," registry: \n");
+ n=0;
+ while (registry != (const char *) NULL)
+ {
+ if (n++ != 0)
+ (void) FormatLocaleFile(file,"\n");
+ YAMLFormatLocaleFile(file," %s: ",registry);
+ value=(const char *) GetImageRegistry(StringRegistryType,registry,
+ exception);
+ YAMLFormatLocaleFile(file,"%s",value);
+ registry=GetNextImageRegistry();
+ }
+ (void) FormatLocaleFile(file," \n");
+ }
+ (void) FormatLocaleFile(file," tainted: %s\n",
+ image->taint != MagickFalse ? "true" : "false");
+ (void) FormatMagickSize(image->extent,MagickFalse,"B",MagickPathExtent,
+ format);
+ YAMLFormatLocaleFile(file," filesize: %s\n",format);
+ (void) FormatMagickSize((MagickSizeType) image->columns*image->rows,
+ MagickFalse,"B",MagickPathExtent,format);
+ if (strlen(format) > 1)
+ format[strlen(format)-1]='\0';
+ YAMLFormatLocaleFile(file," numberPixels: %s\n",format);
+ (void) FormatMagickSize((MagickSizeType) ((double) image->columns*image->rows/
+ elapsed_time+0.5),MagickFalse,"B",MagickPathExtent,format);
+ YAMLFormatLocaleFile(file," pixelsPerSecond: %s\n",format);
+ (void) FormatLocaleFile(file," userTime: %0.3fu\n",user_time);
+ (void) FormatLocaleFile(file," elapsedTime: %lu:%02lu.%03lu\n",
+ (unsigned long) (elapsed_time/60.0),(unsigned long) ceil(fmod(
+ elapsed_time,60.0)),(unsigned long) (1000.0*(elapsed_time-floor(
+ elapsed_time))));
+ YAMLFormatLocaleFile(file," version: %s\n",GetMagickVersion(
+ (size_t *) NULL));
+ (void) FormatLocaleFile(file,"...\n");
+ (void) fflush(file);
+ return(ferror(file) != 0 ? MagickFalse : MagickTrue);
+}
+
+static MagickBooleanType WriteYAMLImage(const ImageInfo *image_info,
+ Image *image,ExceptionInfo *exception)
+{
+ FILE
+ *file;
+
+ MagickBooleanType
+ status;
+
+ MagickOffsetType
+ scene;
+
+ size_t
+ number_scenes;
+
+ /*
+ 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,WriteBlobMode,exception);
+ if (status == MagickFalse)
+ return(status);
+ file=GetBlobFileHandle(image);
+ if (file == (FILE *) NULL)
+ file=stdout;
+ scene=0;
+ number_scenes=GetImageListLength(image);
+ do
+ {
+ image->magick_columns=image->columns;
+ image->magick_rows=image->rows;
+ (void) EncodeImageAttributes(image,file,exception);
+ if (GetNextImageInList(image) == (Image *) NULL)
+ break;
+ image=SyncNextImageInList(image);
+ status=SetImageProgress(image,SaveImagesTag,scene++,number_scenes);
+ if (status == MagickFalse)
+ break;
+ } while (image_info->adjoin != MagickFalse);
+ (void) CloseBlob(image);
+ return(MagickTrue);
+}
diff --git a/coders/yaml.h b/coders/yaml.h
new file mode 100644
index 000000000..7dc6f1d63
--- /dev/null
+++ b/coders/yaml.h
@@ -0,0 +1,31 @@
+/*
+ Copyright 1999-2021 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
+
+ https://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 "coders/coders-private.h"
+
+#define MagickYAMLHeaders
+
+#define MagickYAMLAliases
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+MagickCoderExports(YAML)
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif \ No newline at end of file
diff --git a/coders/ycbcr.c b/coders/ycbcr.c
index 85c49d574..dbe3e59a1 100644
--- a/coders/ycbcr.c
+++ b/coders/ycbcr.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -118,7 +118,7 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
QuantumType
quantum_type;
- register ssize_t
+ ssize_t
i;
size_t
@@ -230,13 +230,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -311,13 +311,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
{
for (i=0; i < (ssize_t) (image->alpha_trait != UndefinedPixelTrait ? 4 : 3); i++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -403,13 +403,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -456,13 +456,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -509,13 +509,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -564,13 +564,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
{
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -656,13 +656,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -727,13 +727,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -798,13 +798,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -871,13 +871,13 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info,
stream=ReadBlobStream(image,length,pixels,&count);
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- register const Quantum
+ const Quantum
*magick_restrict p;
- register Quantum
+ Quantum
*magick_restrict q;
- register ssize_t
+ ssize_t
x;
if (count != (ssize_t) length)
@@ -1080,7 +1080,7 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info,
QuantumType
quantum_type;
- register const Quantum
+ const Quantum
*p;
size_t
diff --git a/coders/ycbcr.h b/coders/ycbcr.h
index 3e7a331fb..102cd9f14 100644
--- a/coders/ycbcr.h
+++ b/coders/ycbcr.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/coders/yuv.c b/coders/yuv.c
index 0733f8deb..44f16762c 100644
--- a/coders/yuv.c
+++ b/coders/yuv.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -109,13 +109,13 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
x;
- register Quantum
+ Quantum
*q;
- register unsigned char
+ unsigned char
*p;
ssize_t
@@ -234,7 +234,7 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*chroma_pixels;
if (interlace == NoInterlace)
@@ -451,7 +451,7 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*chroma_pixels;
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -623,11 +623,11 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image,
MagickOffsetType
scene;
- register const Quantum
+ const Quantum
*p,
*s;
- register ssize_t
+ ssize_t
x;
size_t
diff --git a/coders/yuv.h b/coders/yuv.h
index 606aae723..fd1c15b57 100644
--- a/coders/yuv.h
+++ b/coders/yuv.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
diff --git a/common.shi.in b/common.shi.in
index e4fc65d4c..2a82b2d78 100644
--- a/common.shi.in
+++ b/common.shi.in
@@ -1,5 +1,5 @@
# -*- shell-script -*-
-# Copyright 1999-2020 ImageMagick Studio LLC
+# Copyright 1999-2021 ImageMagick Studio LLC
# Definitions of optional features and configuration values for this build.
# Intended for use by test scripts.
MAGICK_FEATURES='@MAGICK_FEATURES@'
diff --git a/config/ImageMagick.rdf.in b/config/ImageMagick.rdf.in
index a5c962258..da257bad1 100644
--- a/config/ImageMagick.rdf.in
+++ b/config/ImageMagick.rdf.in
@@ -131,7 +131,6 @@ Features and Capabilities
</release>
<download-page rdf:resource="https://imagemagick.org/script/download.php"/>
- <download-mirror rdf:resource="https://sourceforge.net/projects/imagemagick/"/>
<!-- Licensing details -->
<license rdf:resource="https://imagemagick.org/script/license.php"/>
diff --git a/config/Makefile.am b/config/Makefile.am
index b226467d5..8717bb441 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/config/ar-lib b/config/ar-lib
index 0baa4f607..1e9388e2a 100755
--- a/config/ar-lib
+++ b/config/ar-lib
@@ -2,9 +2,9 @@
# Wrapper for Microsoft lib.exe
me=ar-lib
-scriptversion=2012-03-01.08; # UTC
+scriptversion=2019-07-04.01; # UTC
-# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 Free Software Foundation, Inc.
# Written by Peter Rosin <peda@lysator.liu.se>.
#
# This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@ func_file_conv ()
MINGW*)
file_conv=mingw
;;
- CYGWIN*)
+ CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
@@ -65,7 +65,7 @@ func_file_conv ()
mingw)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
- cygwin)
+ cygwin | msys)
file=`cygpath -m "$file" || echo "$file"`
;;
wine)
@@ -224,10 +224,11 @@ elif test -n "$extract"; then
esac
done
else
- $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
- do
- $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
- done
+ $AR -NOLOGO -LIST "$archive" | tr -d '\r' | sed -e 's/\\/\\\\/g' \
+ | while read member
+ do
+ $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
+ done
fi
elif test -n "$quick$replace"; then
diff --git a/config/coder.xml b/config/coder.xml
index 4d2394feb..bd80a22d8 100644
--- a/config/coder.xml
+++ b/config/coder.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE codermap [
-<!ELEMENT codermap (coder)+>
+<!ELEMENT codermap (coder)*>
<!ATTLIST codermap xmlns CDATA #FIXED ''>
<!ELEMENT coder EMPTY>
<!ATTLIST coder xmlns CDATA #FIXED '' magick NMTOKEN #REQUIRED
diff --git a/config/colors.xml b/config/colors.xml
index 55bfb5d8c..201b73514 100644
--- a/config/colors.xml
+++ b/config/colors.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE colormap [
-<!ELEMENT colormap (color)+>
+<!ELEMENT colormap (color)*>
<!ELEMENT color (#PCDATA)>
<!ATTLIST color name CDATA "0">
<!ATTLIST color color CDATA "rgb(0,0,0)">
diff --git a/config/compile b/config/compile
index 99e50524b..23fcba011 100755
--- a/config/compile
+++ b/config/compile
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@ func_file_conv ()
MINGW*)
file_conv=mingw
;;
- CYGWIN*)
+ CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
@@ -67,7 +67,7 @@ func_file_conv ()
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
- cygwin/*)
+ cygwin/* | msys/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
diff --git a/config/config.h.in b/config/config.h.in
index c7b10b69e..ec635b1f5 100644
--- a/config/config.h.in
+++ b/config/config.h.in
@@ -741,7 +741,7 @@
/* Define if you have JPEG library */
#undef JPEG_DELEGATE
-/* Define if you have brunsli library */
+/* Define if you have jpeg-xl library */
#undef JXL_DELEGATE
/* Define if you have LCMS library */
diff --git a/config/depcomp b/config/depcomp
index 65cbf7093..6b391623c 100755
--- a/config/depcomp
+++ b/config/depcomp
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/config/english.xml b/config/english.xml
index d38285b6e..9dfec0328 100644
--- a/config/english.xml
+++ b/config/english.xml
@@ -1339,6 +1339,11 @@
average image sequence
</message>
</Average>
+ <Blur>
+ <message name="Image">
+ blur image
+ </message>
+ </Blur>
<Chop>
<message name="Image">
chop image
diff --git a/config/francais.xml b/config/francais.xml
index 66c82ef12..28b018d6a 100644
--- a/config/francais.xml
+++ b/config/francais.xml
@@ -1318,6 +1318,11 @@
Moyenner la séquence d'images
</message>
</Average>
+ <Blur>
+ <message name="Image">
+ Blur de l'image
+ </message>
+ </Blur>
<Chop>
<message name="Image">
Cisailler l'image
diff --git a/config/install-sh b/config/install-sh
index 8175c640f..20d8b2eae 100755
--- a/config/install-sh
+++ b/config/install-sh
@@ -451,7 +451,18 @@ do
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+ (umask $cp_umask &&
+ { test -z "$stripcmd" || {
+ # Create $dsttmp read-write so that cp doesn't create it read-only,
+ # which would cause strip to fail.
+ if test -z "$doit"; then
+ : >"$dsttmp" # No need to fork-exec 'touch'.
+ else
+ $doit touch "$dsttmp"
+ fi
+ }
+ } &&
+ $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
diff --git a/config/mime.xml b/config/mime.xml
index 9530fc8d0..3b768df44 100644
--- a/config/mime.xml
+++ b/config/mime.xml
@@ -827,6 +827,7 @@
<mime type="image/x-gzeps" description="EPS image (gzip-compressed)" priority="100" pattern="*.epsi.gz" />
<mime type="image/x-gzeps" description="EPS image (gzip-compressed)" priority="100" pattern="*.epsf.gz" />
<mime type="image/x-ico" acronym="ICO" description="Windows Icon" priority="100" pattern="*.ico" />
+ <mime type="image/x-icon" acronym="ICO" description="Windows Icon" priority="100" pattern="*.ico" />
<mime type="image/x-icns" description="MacOS X icon" data-type="string" offset="0" magic="icns" priority="50" />
<mime type="image/x-icns" description="MacOS X icon" priority="100" pattern="*.icns" />
<mime type="image/x-iff" description="IFF image" priority="100" pattern="*.iff" />
diff --git a/config/missing b/config/missing
index 625aeb118..8d0eaad25 100755
--- a/config/missing
+++ b/config/missing
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
diff --git a/config/policy.xml b/config/policy.xml
index def82f9ca..56f299bc0 100644
--- a/config/policy.xml
+++ b/config/policy.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policymap [
- <!ELEMENT policymap (policy)+>
+ <!ELEMENT policymap (policy)*>
<!ATTLIST policymap xmlns CDATA #FIXED ''>
<!ELEMENT policy EMPTY>
<!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
@@ -38,6 +38,10 @@
<policy domain="resource" name="area" value="1GP"/>
+ Use the default system font unless overwridden by the application:
+
+ <policy domain="system" name="font" value="/usr/share/fonts/favorite.ttf"/>
+
Define arguments for the memory, map, area, width, height 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, -limit 2GB
@@ -74,4 +78,5 @@
<!-- <policy domain="system" name="max-memory-request" value="256MiB"/> -->
<!-- <policy domain="system" name="shred" value="2"/> -->
<!-- <policy domain="system" name="precision" value="6"/> -->
+ <!-- <policy domain="system" name="font" value="/path/to/unicode-font.ttf"/> -->
</policymap>
diff --git a/config/tap-driver.sh b/config/tap-driver.sh
index 2516e9c3f..865761d3e 100755
--- a/config/tap-driver.sh
+++ b/config/tap-driver.sh
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/config/test-driver b/config/test-driver
index b8521a482..89dba1e07 100755
--- a/config/test-driver
+++ b/config/test-driver
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/configure b/configure
index f46bb71e7..c31fc7235 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ImageMagick 7.0.10-46.
+# Generated by GNU Autoconf 2.69 for ImageMagick 7.0.10-57.
#
# Report bugs to <https://github.com/ImageMagick/ImageMagick/issues>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ImageMagick'
PACKAGE_TARNAME='ImageMagick'
-PACKAGE_VERSION='7.0.10-46'
-PACKAGE_STRING='ImageMagick 7.0.10-46'
+PACKAGE_VERSION='7.0.10-57'
+PACKAGE_STRING='ImageMagick 7.0.10-57'
PACKAGE_BUGREPORT='https://github.com/ImageMagick/ImageMagick/issues'
PACKAGE_URL='https://imagemagick.org'
@@ -838,6 +838,9 @@ GVC_CFLAGS
GS_LIBS
GS_DELEGATE_FALSE
GS_DELEGATE_TRUE
+GDI32_LIBS
+WINGDI32_DELEGATE_FALSE
+WINGDI32_DELEGATE_TRUE
RAQM_DELEGATE_FALSE
RAQM_DELEGATE_TRUE
RAQM_LIBS
@@ -911,8 +914,8 @@ TCMALLOC_LIBS
HAVE_TCMALLOC_FALSE
HAVE_TCMALLOC_TRUE
JEMALLOC_LIBS
-HasJEMALLOC_FALSE
-HasJEMALLOC_TRUE
+HAVE_JEMALLOC_FALSE
+HAVE_JEMALLOC_TRUE
GOMP_LIBS
WITH_MAGICK_PLUS_PLUS_FALSE
WITH_MAGICK_PLUS_PLUS_TRUE
@@ -975,17 +978,10 @@ pkgconfigdir
SHAREARCH_DIR
INCLUDEARCH_DIR
WinPathScript
-USING_CL_FALSE
-USING_CL_TRUE
CYGWIN_BUILD_FALSE
CYGWIN_BUILD_TRUE
WIN32_NATIVE_BUILD_FALSE
WIN32_NATIVE_BUILD_TRUE
-WINGDI32_DELEGATE_FALSE
-WINGDI32_DELEGATE_TRUE
-WS2_32_LIBS
-OLE_LIBS
-GDI32_LIBS
HAVE_LD_VERSION_SCRIPT_FALSE
HAVE_LD_VERSION_SCRIPT_TRUE
PKG_CONFIG_LIBDIR
@@ -1221,6 +1217,7 @@ with_djvu
with_fontconfig
with_freetype
with_raqm
+with_gdi32
with_gslib
with_fontpath
with_gs_font_dir
@@ -1852,7 +1849,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ImageMagick 7.0.10-46 to adapt to many kinds of systems.
+\`configure' configures ImageMagick 7.0.10-57 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1927,7 +1924,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ImageMagick 7.0.10-46:";;
+ short | recursive ) echo "Configuration of ImageMagick 7.0.10-57:";;
esac
cat <<\_ACEOF
@@ -2040,6 +2037,7 @@ Optional Packages:
--without-fontconfig disable fontconfig support
--without-freetype disable Freetype support
--without-raqm disable Raqm support
+ --without-gdi32 disable Windows gdi32 support
--with-gslib enable Ghostscript library support
--with-fontpath=DIR prepend to default font search path
--with-gs-font-dir=DIR Ghostscript font directory
@@ -2047,7 +2045,7 @@ Optional Packages:
--without-heic disable HEIC support
--without-jbig disable JBIG support
--without-jpeg disable JPEG support
- --without-jxl disable Jpegxl support
+ --without-jxl disable JPEG-XL support
--without-lcms disable lcms (v1.1X) support
--without-openjp2 disable OpenJP2 support
--without-lqr disable Liquid Rescale support
@@ -2225,7 +2223,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ImageMagick configure 7.0.10-46
+ImageMagick configure 7.0.10-57
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3276,7 +3274,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ImageMagick $as_me 7.0.10-46, which was
+It was created by ImageMagick $as_me 7.0.10-57, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4262,7 +4260,7 @@ fi
# Define the identity of the package.
PACKAGE='ImageMagick'
- VERSION='7.0.10-46'
+ VERSION='7.0.10-57'
cat >>confdefs.h <<_ACEOF
@@ -4572,11 +4570,11 @@ MAGICK_MINOR_VERSION=0
MAGICK_MICRO_VERSION=10
-MAGICK_PATCHLEVEL_VERSION=46
+MAGICK_PATCHLEVEL_VERSION=57
-MAGICK_VERSION=7.0.10-46
+MAGICK_VERSION=7.0.10-57
-MAGICK_GIT_REVISION=17973:4660af18c:20201130
+MAGICK_GIT_REVISION=18193:4633fa369:20210105
# Substitute library versioning
@@ -9084,38 +9082,16 @@ fi
-GDI32_LIBS=''
-WS2_32_LIBS=''
native_win32_build='no'
cygwin_build='no'
case "${host_os}" in
cygwin* )
cygwin_build='yes'
- GDI32_LIBS='-lgdi32'
;;
mingw* )
native_win32_build='yes'
- GDI32_LIBS='-lgdi32'
- OLE_LIBS='-loleaut32'
- WS2_32_LIBS="-lws2_32"
;;
esac
-if test "${GDI32_LIBS}x" != 'x'; then
-
-$as_echo "#define WINGDI32_DELEGATE 1" >>confdefs.h
-
-fi
-
-
-
- if test "${GDI32_LIBS}x" != 'x' ; then
- WINGDI32_DELEGATE_TRUE=
- WINGDI32_DELEGATE_FALSE='#'
-else
- WINGDI32_DELEGATE_TRUE='#'
- WINGDI32_DELEGATE_FALSE=
-fi
-
if test "${native_win32_build}" = 'yes' ; then
WIN32_NATIVE_BUILD_TRUE=
WIN32_NATIVE_BUILD_FALSE='#'
@@ -9132,14 +9108,6 @@ else
CYGWIN_BUILD_FALSE=
fi
- if test "x${CC}" = 'xcl.exe' ; then
- USING_CL_TRUE=
- USING_CL_FALSE='#'
-else
- USING_CL_TRUE='#'
- USING_CL_FALSE=
-fi
-
WinPathScript="${srcdirfull}/winpath.sh"
@@ -26688,7 +26656,7 @@ $as_echo "no -- some components failed test" >&6; }
JEMALLOC_LIBS='-ljemalloc'
LIBS="$JEMALLOC_LIBS $LIBS"
-$as_echo "#define HasJEMALLOC 1" >>confdefs.h
+$as_echo "#define HAVE_JEMALLOC 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -26700,11 +26668,11 @@ $as_echo "no" >&6; }
fi
fi
if test "$have_jemalloc" = 'yes'; then
- HasJEMALLOC_TRUE=
- HasJEMALLOC_FALSE='#'
+ HAVE_JEMALLOC_TRUE=
+ HAVE_JEMALLOC_FALSE='#'
else
- HasJEMALLOC_TRUE='#'
- HasJEMALLOC_FALSE=
+ HAVE_JEMALLOC_TRUE='#'
+ HAVE_JEMALLOC_FALSE=
fi
@@ -29804,6 +29772,96 @@ fi
#
+# Enable Windows gdi32 libraries
+#
+
+# Check whether --with-gdi32 was given.
+if test "${with_gdi32+set}" = set; then :
+ withval=$with_gdi32; with_gdi32=$withval
+else
+ with_gdi32='yes'
+fi
+
+if test "$with_gdi32" != 'yes' ; then
+ DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-gdi32=$with_gdi32 "
+fi
+
+#
+# Check for Windows gdi32 library.
+#
+have_gdi32='no'
+if test "$with_gdi32" != 'no'; then
+ GDI32_LIBS=''
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Windows GDI32 support" >&5
+$as_echo_n "checking for Windows GDI32 support... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+ failed=0
+ passed=0
+ ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default"
+if test "x$ac_cv_header_windows_h" = xyes; then :
+ passed=`expr $passed + 1`
+else
+ failed=`expr $failed + 1`
+fi
+
+
+ ac_fn_c_check_header_compile "$LINENO" "winuser.h" "ac_cv_header_winuser_h" "#include <windows.h>
+"
+if test "x$ac_cv_header_winuser_h" = xyes; then :
+ passed=`expr $passed + 1`
+else
+ failed=`expr $failed + 1`
+fi
+
+
+ ac_fn_c_check_header_compile "$LINENO" "wingdi.h" "ac_cv_header_wingdi_h" "#include <windows.h>
+"
+if test "x$ac_cv_header_wingdi_h" = xyes; then :
+ passed=`expr $passed + 1`
+else
+ failed=`expr $failed + 1`
+fi
+
+
+ if test "$cygwin_build" = yes -o "$native_win32_build" = yes; then
+ passed=`expr $passed + 1`
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Windows GDI32 support is complete" >&5
+$as_echo_n "checking if Windows GDI32 support is complete... " >&6; }
+ if test $passed -gt 0; then
+ if test $failed -gt 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no -- some components failed test" >&5
+$as_echo "no -- some components failed test" >&6; }
+ have_gdi32='no (failed tests)'
+ else
+ GDI32_LIBS='-lgdi32 -luser32'
+ LIBS="$GDI32_LIBS $LIBS"
+
+$as_echo "#define WINGDI32_DELEGATE 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_gdi32='yes'
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+fi
+ if test "$have_gdi32" = 'yes'; then
+ WINGDI32_DELEGATE_TRUE=
+ WINGDI32_DELEGATE_FALSE='#'
+else
+ WINGDI32_DELEGATE_TRUE='#'
+ WINGDI32_DELEGATE_FALSE=
+fi
+
+
+
+
+
+#
# Check for Ghostscript library or framework.
#
# Test for iapi.h & test for gsapi_new_instance in -lgs
@@ -30491,50 +30549,56 @@ fi
if test "${with_jxl+set}" = set; then :
withval=$with_jxl; with_jxl=$withval
else
- with_jxl='yes'
+ with_jxl='no'
fi
if test "$with_jxl" != 'yes'; then
DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jxl=$with_jxl "
fi
+if test "$enable_static" = 'yes'; then
+ if test "$with_utilities" = 'yes'; then
+ with_jxl='no'
+ fi
+fi
-# Check for the brunsli libraries, currently the only libraries used by the jxl coder.
-# Full jxl support will be added once the full libraries are released.
+# Check for the JPEG-XL library.
have_jxl='no'
JXL_LIBS=''
if test "$with_jxl" != 'no'; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: -------------------------------------------------------------" >&5
$as_echo "-------------------------------------------------------------" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for brunsli" >&5
-$as_echo_n "checking for brunsli... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg-xl" >&5
+$as_echo_n "checking for jpeg-xl... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
$as_echo "" >&6; }
failed=0
passed=0
- ac_fn_c_check_header_mongrel "$LINENO" "brunsli/decode.h" "ac_cv_header_brunsli_decode_h" "$ac_includes_default"
-if test "x$ac_cv_header_brunsli_decode_h" = xyes; then :
+ ac_fn_c_check_header_mongrel "$LINENO" "jxl/decode.h" "ac_cv_header_jxl_decode_h" "$ac_includes_default"
+if test "x$ac_cv_header_jxl_decode_h" = xyes; then :
passed=`expr $passed + 1`
else
failed=`expr $failed + 1`
fi
- ac_fn_c_check_header_mongrel "$LINENO" "brunsli/encode.h" "ac_cv_header_brunsli_encode_h" "$ac_includes_default"
-if test "x$ac_cv_header_brunsli_encode_h" = xyes; then :
+ ac_fn_c_check_header_mongrel "$LINENO" "jxl/encode.h" "ac_cv_header_jxl_encode_h" "$ac_includes_default"
+if test "x$ac_cv_header_jxl_encode_h" = xyes; then :
passed=`expr $passed + 1`
else
failed=`expr $failed + 1`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DecodeBrunsli in -lbrunslidec-c" >&5
-$as_echo_n "checking for DecodeBrunsli in -lbrunslidec-c... " >&6; }
-if ${ac_cv_lib_brunslidec_c_DecodeBrunsli+:} false; then :
+ # This check should be changed once we have a .pc file for the JPEG-XL library.
+ if test "$enable_static" != 'yes'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JxlDecoderCreate in -ljxl" >&5
+$as_echo_n "checking for JxlDecoderCreate in -ljxl... " >&6; }
+if ${ac_cv_lib_jxl_JxlDecoderCreate+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbrunslidec-c $LIBS"
+LIBS="-ljxl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -30544,40 +30608,39 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char DecodeBrunsli ();
+char JxlDecoderCreate ();
int
main ()
{
-return DecodeBrunsli ();
+return JxlDecoderCreate ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_brunslidec_c_DecodeBrunsli=yes
+ ac_cv_lib_jxl_JxlDecoderCreate=yes
else
- ac_cv_lib_brunslidec_c_DecodeBrunsli=no
+ ac_cv_lib_jxl_JxlDecoderCreate=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_brunslidec_c_DecodeBrunsli" >&5
-$as_echo "$ac_cv_lib_brunslidec_c_DecodeBrunsli" >&6; }
-if test "x$ac_cv_lib_brunslidec_c_DecodeBrunsli" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jxl_JxlDecoderCreate" >&5
+$as_echo "$ac_cv_lib_jxl_JxlDecoderCreate" >&6; }
+if test "x$ac_cv_lib_jxl_JxlDecoderCreate" = xyes; then :
passed=`expr $passed + 1`
else
failed=`expr $failed + 1`
fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EncodeBrunsli in -lbrunslienc-c" >&5
-$as_echo_n "checking for EncodeBrunsli in -lbrunslienc-c... " >&6; }
-if ${ac_cv_lib_brunslienc_c_EncodeBrunsli+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JxlEncoderCreate in -ljxl" >&5
+$as_echo_n "checking for JxlEncoderCreate in -ljxl... " >&6; }
+if ${ac_cv_lib_jxl_JxlEncoderCreate+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbrunslienc-c $LIBS"
+LIBS="-ljxl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -30587,42 +30650,43 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char EncodeBrunsli ();
+char JxlEncoderCreate ();
int
main ()
{
-return EncodeBrunsli ();
+return JxlEncoderCreate ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_brunslienc_c_EncodeBrunsli=yes
+ ac_cv_lib_jxl_JxlEncoderCreate=yes
else
- ac_cv_lib_brunslienc_c_EncodeBrunsli=no
+ ac_cv_lib_jxl_JxlEncoderCreate=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_brunslienc_c_EncodeBrunsli" >&5
-$as_echo "$ac_cv_lib_brunslienc_c_EncodeBrunsli" >&6; }
-if test "x$ac_cv_lib_brunslienc_c_EncodeBrunsli" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jxl_JxlEncoderCreate" >&5
+$as_echo "$ac_cv_lib_jxl_JxlEncoderCreate" >&6; }
+if test "x$ac_cv_lib_jxl_JxlEncoderCreate" = xyes; then :
passed=`expr $passed + 1`
else
failed=`expr $failed + 1`
fi
+ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if brunsli package is complete" >&5
-$as_echo_n "checking if brunsli package is complete... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if jpeg-xl package is complete" >&5
+$as_echo_n "checking if jpeg-xl package is complete... " >&6; }
if test $passed -gt 0; then
if test $failed -gt 0; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no -- some components failed test" >&5
$as_echo "no -- some components failed test" >&6; }
have_jxl='no (failed tests)'
else
- JXL_LIBS='-lbrunslidec-c -lbrunslienc-c'
+ JXL_LIBS='-ljxl'
LIBS="$JXL_LIBS $LIBS"
$as_echo "#define JXL_DELEGATE 1" >>confdefs.h
@@ -35787,9 +35851,9 @@ fi
#
if test "$build_modules" != 'no'; then
- MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZIPLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZIPLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
else
- MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
fi
MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
@@ -36014,10 +36078,6 @@ if test -z "${HAVE_LD_VERSION_SCRIPT_TRUE}" && test -z "${HAVE_LD_VERSION_SCRIPT
as_fn_error $? "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${WINGDI32_DELEGATE_TRUE}" && test -z "${WINGDI32_DELEGATE_FALSE}"; then
- as_fn_error $? "conditional \"WINGDI32_DELEGATE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${WIN32_NATIVE_BUILD_TRUE}" && test -z "${WIN32_NATIVE_BUILD_FALSE}"; then
as_fn_error $? "conditional \"WIN32_NATIVE_BUILD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36026,10 +36086,6 @@ if test -z "${CYGWIN_BUILD_TRUE}" && test -z "${CYGWIN_BUILD_FALSE}"; then
as_fn_error $? "conditional \"CYGWIN_BUILD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${USING_CL_TRUE}" && test -z "${USING_CL_FALSE}"; then
- as_fn_error $? "conditional \"USING_CL\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36067,8 +36123,8 @@ if test -z "${WITH_MAGICK_PLUS_PLUS_TRUE}" && test -z "${WITH_MAGICK_PLUS_PLUS_F
as_fn_error $? "conditional \"WITH_MAGICK_PLUS_PLUS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${HasJEMALLOC_TRUE}" && test -z "${HasJEMALLOC_FALSE}"; then
- as_fn_error $? "conditional \"HasJEMALLOC\" was never defined.
+if test -z "${HAVE_JEMALLOC_TRUE}" && test -z "${HAVE_JEMALLOC_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_JEMALLOC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_TCMALLOC_TRUE}" && test -z "${HAVE_TCMALLOC_FALSE}"; then
@@ -36135,6 +36191,10 @@ if test -z "${RAQM_DELEGATE_TRUE}" && test -z "${RAQM_DELEGATE_FALSE}"; then
as_fn_error $? "conditional \"RAQM_DELEGATE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${WINGDI32_DELEGATE_TRUE}" && test -z "${WINGDI32_DELEGATE_FALSE}"; then
+ as_fn_error $? "conditional \"WINGDI32_DELEGATE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${GS_DELEGATE_TRUE}" && test -z "${GS_DELEGATE_FALSE}"; then
as_fn_error $? "conditional \"GS_DELEGATE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36648,7 +36708,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ImageMagick $as_me 7.0.10-46, which was
+This file was extended by ImageMagick $as_me 7.0.10-57, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -36715,7 +36775,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ImageMagick config.status 7.0.10-46
+ImageMagick config.status 7.0.10-57
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -38050,7 +38110,9 @@ $as_echo X/"$am_mf" |
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE=\"gmake\" (or whatever is
+ necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See \`config.log' for more details" "$LINENO" 5; }
diff --git a/configure.ac b/configure.ac
index ad8a72ec7..b2fd67369 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
@@ -27,7 +27,7 @@ AC_PREREQ(2.69)
m4_define([magick_major_version], [7])
m4_define([magick_minor_version], [0])
m4_define([magick_micro_version], [10])
-m4_define([magick_patchlevel_version], [46])
+m4_define([magick_patchlevel_version], [57])
m4_define([magick_version],
[magick_major_version.magick_minor_version.magick_micro_version-magick_patchlevel_version])
m4_define([magick_git_revision],
@@ -342,32 +342,18 @@ fi
AC_EXEEXT
AC_OBJEXT
-GDI32_LIBS=''
-WS2_32_LIBS=''
native_win32_build='no'
cygwin_build='no'
case "${host_os}" in
cygwin* )
cygwin_build='yes'
- GDI32_LIBS='-lgdi32'
;;
mingw* )
native_win32_build='yes'
- GDI32_LIBS='-lgdi32'
- OLE_LIBS='-loleaut32'
- WS2_32_LIBS="-lws2_32"
;;
esac
-if test "${GDI32_LIBS}x" != 'x'; then
- AC_DEFINE([WINGDI32_DELEGATE],[1],[Define to use the Windows GDI32 library])
-fi
-AC_SUBST([GDI32_LIBS])
-AC_SUBST([OLE_LIBS])
-AC_SUBST([WS2_32_LIBS])
-AM_CONDITIONAL([WINGDI32_DELEGATE],[ test "${GDI32_LIBS}x" != 'x' ])
AM_CONDITIONAL([WIN32_NATIVE_BUILD],[ test "${native_win32_build}" = 'yes' ])
AM_CONDITIONAL([CYGWIN_BUILD],[ test "${cygwin_build}" = 'yes' ])
-AM_CONDITIONAL([USING_CL],[ test "x${CC}" = 'xcl.exe' ])
WinPathScript="${srcdirfull}/winpath.sh"
AC_SUBST([WinPathScript])
@@ -1339,7 +1325,7 @@ if test "$with_jemalloc" != 'no'; then
else
JEMALLOC_LIBS='-ljemalloc'
LIBS="$JEMALLOC_LIBS $LIBS"
- AC_DEFINE([HasJEMALLOC],[1],[Define if you have jemalloc memory allocation library])
+ AC_DEFINE([HAVE_JEMALLOC],[1],[Define if you have jemalloc memory allocation library])
AC_MSG_RESULT([yes])
have_jemalloc='yes'
fi
@@ -1347,7 +1333,7 @@ if test "$with_jemalloc" != 'no'; then
AC_MSG_RESULT([no])
fi
fi
-AM_CONDITIONAL([HasJEMALLOC],[ test "$have_jemalloc" = 'yes'])
+AM_CONDITIONAL([HAVE_JEMALLOC],[ test "$have_jemalloc" = 'yes'])
AC_SUBST([JEMALLOC_LIBS])
#
@@ -2117,6 +2103,56 @@ AC_SUBST([RAQM_LIBS])
dnl ===========================================================================
#
+# Enable Windows gdi32 libraries
+#
+AC_ARG_WITH([gdi32],
+ AS_HELP_STRING([--without-gdi32],
+ [disable Windows gdi32 support]),
+ [with_gdi32=$withval],
+ [with_gdi32='yes'])
+if test "$with_gdi32" != 'yes' ; then
+ DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-gdi32=$with_gdi32 "
+fi
+
+#
+# Check for Windows gdi32 library.
+#
+have_gdi32='no'
+if test "$with_gdi32" != 'no'; then
+ GDI32_LIBS=''
+ AC_MSG_CHECKING([for Windows GDI32 support])
+ AC_MSG_RESULT()
+ failed=0
+ passed=0
+ AC_CHECK_HEADER([windows.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
+ AC_CHECK_HEADER([winuser.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[#include <windows.h>])
+ AC_CHECK_HEADER([wingdi.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[#include <windows.h>])
+ if test "$cygwin_build" = yes -o "$native_win32_build" = yes; then
+ passed=`expr $passed + 1`
+ fi
+ AC_MSG_CHECKING([if Windows GDI32 support is complete])
+ if test $passed -gt 0; then
+ if test $failed -gt 0; then
+ AC_MSG_RESULT([no -- some components failed test])
+ have_gdi32='no (failed tests)'
+ else
+ GDI32_LIBS='-lgdi32 -luser32'
+ LIBS="$GDI32_LIBS $LIBS"
+ AC_DEFINE([WINGDI32_DELEGATE],[1],[Define to use the Windows GDI32 library])
+ AC_MSG_RESULT([yes])
+ have_gdi32='yes'
+ fi
+ else
+ AC_MSG_RESULT([no])
+ fi
+fi
+AM_CONDITIONAL([WINGDI32_DELEGATE], [test "$have_gdi32" = 'yes'])
+AC_SUBST([GDI32_LIBS])
+
+
+dnl ===========================================================================
+
+#
# Check for Ghostscript library or framework.
#
# Test for iapi.h & test for gsapi_new_instance in -lgs
@@ -2361,39 +2397,45 @@ dnl ===========================================================================
#
AC_ARG_WITH([jxl],
[AC_HELP_STRING([--without-jxl],
- [disable Jpegxl support])],
+ [disable JPEG-XL support])],
[with_jxl=$withval],
- [with_jxl='yes'])
+ [with_jxl='no'])
if test "$with_jxl" != 'yes'; then
DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jxl=$with_jxl "
fi
+if test "$enable_static" = 'yes'; then
+ if test "$with_utilities" = 'yes'; then
+ with_jxl='no'
+ fi
+fi
-# Check for the brunsli libraries, currently the only libraries used by the jxl coder.
-# Full jxl support will be added once the full libraries are released.
+# Check for the JPEG-XL library.
have_jxl='no'
JXL_LIBS=''
if test "$with_jxl" != 'no'; then
AC_MSG_RESULT([-------------------------------------------------------------])
- AC_MSG_CHECKING([for brunsli])
+ AC_MSG_CHECKING([for jpeg-xl])
AC_MSG_RESULT([])
failed=0
passed=0
- AC_CHECK_HEADER([brunsli/decode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
- AC_CHECK_HEADER([brunsli/encode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
- AC_CHECK_LIB([brunslidec-c],[DecodeBrunsli],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
-
- AC_CHECK_LIB([brunslienc-c],[EncodeBrunsli],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
+ AC_CHECK_HEADER([jxl/decode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
+ AC_CHECK_HEADER([jxl/encode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
+ # This check should be changed once we have a .pc file for the JPEG-XL library.
+ if test "$enable_static" != 'yes'; then
+ AC_CHECK_LIB([jxl],[JxlDecoderCreate],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
+ AC_CHECK_LIB([jxl],[JxlEncoderCreate],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
+ fi
- AC_MSG_CHECKING([if brunsli package is complete])
+ AC_MSG_CHECKING([if jpeg-xl package is complete])
if test $passed -gt 0; then
if test $failed -gt 0; then
AC_MSG_RESULT([no -- some components failed test])
have_jxl='no (failed tests)'
else
- JXL_LIBS='-lbrunslidec-c -lbrunslienc-c'
+ JXL_LIBS='-ljxl'
LIBS="$JXL_LIBS $LIBS"
- AC_DEFINE([JXL_DELEGATE],[1],[Define if you have brunsli library])
+ AC_DEFINE([JXL_DELEGATE],[1],[Define if you have jpeg-xl library])
AC_MSG_RESULT([yes])
have_jxl='yes'
fi
@@ -3914,9 +3956,9 @@ fi
#
if test "$build_modules" != 'no'; then
- MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZIPLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZIPLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
else
- MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
fi
MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
AC_SUBST([MAGICK_DEP_LIBS])
diff --git a/filters/Makefile.am b/filters/Makefile.am
index 332eecc69..37f85b6bb 100644
--- a/filters/Makefile.am
+++ b/filters/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/filters/analyze.c b/filters/analyze.c
index 836a25742..c4bcd302b 100644
--- a/filters/analyze.c
+++ b/filters/analyze.c
@@ -15,7 +15,7 @@
% December 1998 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -146,10 +146,10 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,
image_view=AcquireVirtualCacheView(image,exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register const Quantum
+ const Quantum
*p;
- register ssize_t
+ ssize_t
x;
if (status == MagickFalse)
diff --git a/images/examples.jpg b/images/examples.jpg
index 76ec730cf..bf7de6b8b 100644
--- a/images/examples.jpg
+++ b/images/examples.jpg
Binary files differ
diff --git a/index.html b/index.html
index f25e22ac2..e8f23b189 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Convert, Edit, or Compose Bitmap Images</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="www/search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -97,9 +97,9 @@ Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&am
<p>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 a derived Apache 2.0 <a href="www/license.html">license</a>.</p>
<p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
-<p>The current release is ImageMagick <a href="www/download.html">7.0.10-39</a>. It runs on <a href="www/download.html#unix">Linux</a>, <a href="www/download.html#windows">Windows</a>, <a href="www/download.html#macosx">Mac Os X</a>, <a href="www/download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
+<p>The current release is ImageMagick <a href="www/download.html">7.0.10-53</a>. It runs on <a href="www/download.html#unix">Linux</a>, <a href="www/download.html#windows">Windows</a>, <a href="www/download.html#macosx">Mac Os X</a>, <a href="www/download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
-<p>The authoritative ImageMagick web site is <a href="index.html">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick" target="_blank">https://github.com/ImageMagick</a>. We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick" target="_blank">https://gitlab.com/ImageMagick</a>. We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
+<p>The authoritative ImageMagick web site is <a href="index.html">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick/ImageMagick" target="_blank">https://github.com/ImageMagick/ImageMagick</a>. We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
<h2><a class="anchor" id="features"></a>Features and Capabilities</h2>
<p>Here are just a few <a href="www/examples.html">examples</a> of what ImageMagick can do for you:</p>
@@ -110,6 +110,10 @@ Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&am
<td>create a GIF animation sequence from a group of images.</td>
</tr>
<tr>
+ <td><a href="www/command-line-options.html#bilateral-blur">Bilateral blur</a></td>
+ <td>non-linear, edge-preserving, and noise-reducing smoothing filter.</td>
+ </tr>
+ <tr>
<td><a href="www/color-management.html">Color management</a></td>
<td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
</tr>
@@ -271,7 +275,7 @@ Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&am
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -279,4 +283,4 @@ Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&am
<script>window.jQuery || document.write('<script src="www/assets/jquery.slim.min.js"><\/script>')</script><script src="www/assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:09 -->
+<!-- Magick Cache 1st January 2021 16:50 --> \ No newline at end of file
diff --git a/m4/Makefile.am b/m4/Makefile.am
index cae11d82f..9720c84e5 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/magick.sh.in b/magick.sh.in
index 221ec46ab..802716034 100755
--- a/magick.sh.in
+++ b/magick.sh.in
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 906e054a9..21975394f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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.
diff --git a/tests/cli-colorspace.tap b/tests/cli-colorspace.tap
index f25325685..2c1cba399 100755
--- a/tests/cli-colorspace.tap
+++ b/tests/cli-colorspace.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/cli-pipe.tap b/tests/cli-pipe.tap
index 64a76d13f..c8d01b9a4 100755
--- a/tests/cli-pipe.tap
+++ b/tests/cli-pipe.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/drawtest.c b/tests/drawtest.c
index ce55b4e91..f7b925552 100644
--- a/tests/drawtest.c
+++ b/tests/drawtest.c
@@ -24,7 +24,7 @@
% March 2002 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/tests/validate-colorspace.tap b/tests/validate-colorspace.tap
index 59d85f6b3..bc4bc0c0a 100755
--- a/tests/validate-colorspace.tap
+++ b/tests/validate-colorspace.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-compare.tap b/tests/validate-compare.tap
index b31d86761..799673cd7 100755
--- a/tests/validate-compare.tap
+++ b/tests/validate-compare.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-composite.tap b/tests/validate-composite.tap
index 5d9c2fb4f..b8c9d463f 100755
--- a/tests/validate-composite.tap
+++ b/tests/validate-composite.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-convert.tap b/tests/validate-convert.tap
index eda4b038a..ae900a0f1 100755
--- a/tests/validate-convert.tap
+++ b/tests/validate-convert.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-formats-disk.tap b/tests/validate-formats-disk.tap
index 5ee61604f..3ab15efd2 100755
--- a/tests/validate-formats-disk.tap
+++ b/tests/validate-formats-disk.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-formats-map.tap b/tests/validate-formats-map.tap
index e0dc380bd..c1f9f600a 100755
--- a/tests/validate-formats-map.tap
+++ b/tests/validate-formats-map.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-formats-memory.tap b/tests/validate-formats-memory.tap
index 40c1d43aa..da0317e61 100755
--- a/tests/validate-formats-memory.tap
+++ b/tests/validate-formats-memory.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-identify.tap b/tests/validate-identify.tap
index d2e3c2aa3..6199e26ea 100755
--- a/tests/validate-identify.tap
+++ b/tests/validate-identify.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-import.tap b/tests/validate-import.tap
index f4f6135da..05da56e4e 100755
--- a/tests/validate-import.tap
+++ b/tests/validate-import.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-montage.tap b/tests/validate-montage.tap
index fc136b212..17639be3e 100755
--- a/tests/validate-montage.tap
+++ b/tests/validate-montage.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate-stream.tap b/tests/validate-stream.tap
index 3480af074..0f27acacb 100755
--- a/tests/validate-stream.tap
+++ b/tests/validate-stream.tap
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/tests/validate.c b/tests/validate.c
index c1b248394..a01a32ee5 100644
--- a/tests/validate.c
+++ b/tests/validate.c
@@ -18,7 +18,7 @@
% March 2001 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -1148,7 +1148,7 @@ static size_t ValidateCompareCommand(ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
j;
@@ -1243,7 +1243,7 @@ static size_t ValidateCompositeCommand(ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
j;
@@ -1335,7 +1335,7 @@ static size_t ValidateConvertCommand(ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
j;
@@ -1426,7 +1426,7 @@ static size_t ValidateIdentifyCommand(ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
j;
@@ -1538,7 +1538,7 @@ static size_t ValidateImageFormatsInMemory(ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
j;
@@ -1832,7 +1832,7 @@ static size_t ValidateImageFormatsOnDisk(ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
j;
@@ -2049,7 +2049,7 @@ static size_t ValidateImportExportPixels(ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
j;
@@ -2234,7 +2234,7 @@ static size_t ValidateMontageCommand(ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
j;
@@ -2326,7 +2326,7 @@ static size_t ValidateStreamCommand(ImageInfo *image_info,
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i,
j;
@@ -2461,7 +2461,7 @@ int main(int argc,char **argv)
memory_resource,
map_resource;
- register ssize_t
+ ssize_t
i;
TimerInfo
diff --git a/tests/validate.h b/tests/validate.h
index f53e6e593..cccad0a9e 100644
--- a/tests/validate.h
+++ b/tests/validate.h
@@ -1,5 +1,5 @@
/*
- Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2021 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
@@ -97,14 +97,24 @@ static const char
static const char
*convert_options[] =
{
- "-noop",
+ "",
"-affine 1,0,0.785,1,0,0 -transform",
"-black-threshold 20%",
"-blur 0x0.5",
+ "-blur 0x1.0",
+ "-blur 0x2.0",
"-border 6x6",
"-canny 0x1+10%+80%",
+ "-channel red",
"-charcoal 0x1",
+ "-chop 800x600+200+300",
"-chop 8x6+20+30",
+ "-colorize 30%/20%/50%",
+ "-color-matrix '0,0,1,0,1,0,1,0,0'",
+ "-color-matrix '0.9 0 0, 0 0.9 0, 0 0 1.2'",
+ "-color-matrix '0.9,0,0,0,0.9,0,0,0,1.2'",
+ "-color-matrix '1,0,0,0,1,0,0,0,1'",
+ "-color-matrix '.22,.72,.07,.22,.72,.07,.22,.72,.07'",
"-colors 16",
"-colorspace CMYK",
"-colorspace GRAY",
@@ -114,86 +124,125 @@ static const char
"-colorspace YCbCr",
"-colorspace YIQ",
"-colorspace YUV",
- "-contrast",
+ "+contrast +contrast +contrast",
+ "-contrast -contrast -contrast",
"+contrast",
+ "-contrast",
"-convolve 1,1,1,1,4,1,1,1,1",
- "-colorize 30%/20%/50%",
"-crop 17x9+10+10",
+ "-crop 600x700+100+100",
"-cycle 200",
+ "-density 75x75 -resample 50x50",
"-despeckle",
"-draw \"rectangle 20,10 80,50\"",
"-edge 0x1",
"-emboss 0x1",
"-enhance",
"-equalize",
+ "-evaluate Abs 2%",
+ "-evaluate Add 233",
+ "-evaluate AddModulus 50%",
+ "-evaluate And 6",
+ "-evaluate Cosine 2",
+ "-evaluate Divide 0.7",
+ "-evaluate Exponential 1.0",
+ "-evaluate InverseLog 2",
+ "-evaluate Xor 233",
+ "-extent 1200x1200-100-100",
+ "-fill blue -fuzz 35% -opaque red",
+ "-fill blue -stroke gold -draw 'Bezier 400,200 1100,800 100,300'",
+ "-fill blue -stroke gold -draw 'polygon 400,200 1100,800 100,300'",
+ "-fill blue -stroke gold -draw 'rectangle 400,200 1100,800'",
+ "-fill blue -stroke gold -draw 'roundRectangle 400,200 1100,800 20,20'",
+ "-fill green -stroke gold -draw 'circle 800,500 1100,800'",
+ "-fill none -stroke gold -draw 'Bezier 400,200 1100,800 100,300'",
+ "-fill none -stroke gold -draw 'circle 800,500 1100,800'",
+ "-fill none -stroke gold -draw 'polygon 400,200 1100,800 100,300'",
+ "-fill none -stroke gold -draw 'rectangle 400,200 1100,800'",
+ "-fill none -stroke gold -draw 'roundRectangle 400,200 1100,800 20,20'",
"-flip",
"-flop",
"-frame 15x15+3+3",
+ "-fuzz 35% -transparent red",
+ "-fuzz 5% -trim",
"-fx \"(1.0/(1.0+exp(10.0*(0.5-u)))-0.006693)*1.0092503\"",
"-gamma 1.6",
"-gaussian 0x0.5",
+ "-gaussian 0x1.0",
+ "-gaussian 0x2.0",
"-implode 0.5",
"-implode -1",
"-label Magick",
"-lat 10x10-5%",
"-level 10%,1.2,90%",
+ "-magnify",
"-map netscape:",
+ "-median 1",
"-median 2",
"-modulate 110/100/95",
"-monochrome",
"-motion-blur 0x3+30",
"-negate",
- "+noise Uniform",
+ "-noise 1",
+ "-noise 2",
"+noise Gaussian",
- "+noise Multiplicative",
"+noise Impulse",
"+noise Laplacian",
+ "+noise Multiplicative",
"+noise Poisson",
- "-noise 2",
+ "+noise Random",
+ "+noise Uniform",
+ "-noop",
"-normalize",
- "-fill blue -fuzz 35% -opaque red",
"-ordered-dither 2x2",
+ "-ordered-dither 3x3",
+ "-ordered-dither 4x4",
"-paint 0x1",
"-raise 10x10",
"-random-threshold 10%",
- "-color-matrix '0.9 0 0, 0 0.9 0, 0 0 1.2'",
- "-density 75x75 -resample 50x50",
- "-resize 10%",
- "-resize 50%",
- "-resize 50x150%",
+ "-random-threshold 20x80",
"-resize 100%",
+ "-resize 10%",
"-resize 150%",
"-resize 150x75%",
+ "-resize 50%",
+ "-resize 50x150%",
"-roll +20+10",
"-rotate 0",
- "-rotate 45",
- "-rotate 90",
+ "-rotate 15",
"-rotate 180",
"-rotate 270",
- "-sample 5%",
- "-sample 50%",
- "-sample 50x150%",
+ "-rotate 45",
+ "-rotate 90",
"-sample 100%",
"-sample 150%",
"-sample 150x50%",
- "-scale 5%",
- "-scale 50%",
- "-scale 50x150%",
+ "-sample 50%",
+ "-sample 50x150%",
+ "-sample 5%",
"-scale 100%",
"-scale 150%",
"-scale 150x50%",
+ "-scale 50%",
+ "-scale 50x150%",
+ "-scale 5%",
+ "-segment 0.5x0.25",
"-segment 1x1.5",
"-shade 30x30",
+ "-sharpen 0x0.5",
"-sharpen 0x1.0",
+ "-sharpen 0x2.0",
"-shave 10x10",
+ "-shear 25x20",
"-shear 45x45",
"-size 130x194",
"-solarize 50%",
+ "-spread 1",
"-spread 3",
"-swirl 90",
"-threshold 35%",
- "-fuzz 35% -transparent red",
- "-fuzz 5% -trim",
+ "-trim",
+ "-unsharp 0x0.5+20+1",
"-unsharp 0x1.0+20+1",
"-wave 25x150",
"-white-threshold 80%",
diff --git a/tests/wandtest.c b/tests/wandtest.c
index fc6c3c494..db4f10d87 100644
--- a/tests/wandtest.c
+++ b/tests/wandtest.c
@@ -23,7 +23,7 @@
% March 2003 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -5185,7 +5185,7 @@ int main(int argc,char **argv)
*border,
**pixels;
- register ssize_t
+ ssize_t
i;
unsigned char
diff --git a/utilities/Makefile.am b/utilities/Makefile.am
index 19604e7fa..7ec046fbe 100644
--- a/utilities/Makefile.am
+++ b/utilities/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 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
diff --git a/utilities/magick.c b/utilities/magick.c
index 1dd58bb14..7c337cae0 100644
--- a/utilities/magick.c
+++ b/utilities/magick.c
@@ -17,7 +17,7 @@
% January 2012 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
@@ -112,7 +112,7 @@ static int MagickMain(int argc,char **argv)
MagickBooleanType
status;
- register ssize_t
+ ssize_t
i;
size_t
@@ -188,7 +188,7 @@ int wmain(int argc,wchar_t *argv[])
int
status;
- register int
+ int
i;
utf8=NTArgvToUTF8(argc,argv);
diff --git a/version.sh b/version.sh
index 0f290e14f..d286fe0c3 100644
--- a/version.sh
+++ b/version.sh
@@ -19,7 +19,7 @@ PACKAGE_CHANGE_DATE=`awk '/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/ { print
PACKAGE_VERSION='7.0.10'
PACKAGE_PERL_VERSION='7.0.10'
PACKAGE_LIB_VERSION="0x70A"
-PACKAGE_RELEASE="46"
+PACKAGE_RELEASE="57"
PACKAGE_LIB_VERSION_NUMBER="7,0,10,${PACKAGE_RELEASE}"
PACKAGE_RELEASE_DATE_RAW=`date +%F`
PACKAGE_RELEASE_DATE_REPRODUCIBLE="${PACKAGE_CHANGE_DATE}"
diff --git a/www/ImageMagickObject.html b/www/ImageMagickObject.html
index f8bf209ff..b3b418d27 100644
--- a/www/ImageMagickObject.html
+++ b/www/ImageMagickObject.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Install the ImageMagickObject COM+ Component</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -160,7 +160,7 @@ BuildImageMagickObject release
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -168,4 +168,4 @@ BuildImageMagickObject release
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:16 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/advanced-unix-installation.html b/www/advanced-unix-installation.html
index df6d8ea93..c271d1b10 100644
--- a/www/advanced-unix-installation.html
+++ b/www/advanced-unix-installation.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Advanced Unix Source Installation</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -97,7 +97,7 @@
<h2><a class="anchor" id="download"></a>Download &amp; Unpack</h2>
-<p>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 <a href="https://imagemagick.org/download/ImageMagick.tar.gz">ImageMagick.tar.gz</a> from <a href="../download">ftp.imagemagick.org</a> or its <a href="download.html">mirrors</a> and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
+<p>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 <a href="https://imagemagick.org/download/ImageMagick.tar.gz">ImageMagick.tar.gz</a> from <a href="../download">imagemagick.org</a> or a <a href="download.html">mirror</a> and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
<p>Unpack the distribution it with this command:</p>
@@ -111,7 +111,7 @@
<p>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:</p>
-<pre><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-39</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span></pre>
+<pre><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-53</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span></pre>
<p>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:</p>
@@ -504,12 +504,12 @@ identify logo.gif
<p>To verify the ImageMagick build configuration, type:</p>
-<pre class="highlight"><code>identify -list configure
+<pre class="highlight"><code>magick identify -list configure
</code></pre>
<p>To list which image formats are supported , type:</p>
-<pre class="highlight"><code>identify -list format
+<pre class="highlight"><code>magick identify -list format
</code></pre>
<p>For a more comprehensive test, you run the ImageMagick test suite by typing:</p>
@@ -555,7 +555,7 @@ sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
<p><a href="download.html">Download</a> the ImageMagick source distribution and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
<p>Unpack and change into the top-level ImageMagick directory:</p>
- <pre><span class="crtprompt">$ </span><span class='crtin'>tar xvzf ImageMagick-7.0.10-39.tar.gz</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-39</span></pre> <p>Configure ImageMagick:</p>
+ <pre><span class="crtprompt">$ </span><span class='crtin'>tar xvzf ImageMagick-7.0.10-53.tar.gz</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-53</span></pre> <p>Configure ImageMagick:</p>
<pre class="highlight"><code>./configure --prefix=/opt --with-quantum-depth=16 \
--disable-dependency-tracking --with-x=yes \
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
@@ -582,7 +582,7 @@ sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
<p>Although you can download and install delegate libraries yourself, many are already available in the <a href="http://gnuwin32.sourceforge.net/">GnuWin32</a> 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,</p>
-<pre><span class="crtprompt">$ </span><span class='crtin'>tar jxvf ImageMagick-7.0.10-?.tar.bz2</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-39</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure --without-perl</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>sudo make install</span></pre>
+<pre><span class="crtprompt">$ </span><span class='crtin'>tar jxvf ImageMagick-7.0.10-?.tar.bz2</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-53</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure --without-perl</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>sudo make install</span></pre>
<h2><a class="anchor" id="problems"></a>Dealing with Unexpected Problems</h2>
<p>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</p>
@@ -618,7 +618,7 @@ no encode delegate for this image format
<p>Now reconfigure, rebuild, and reinstall ImageMagick. To verify JPEG is now properly supported within ImageMagick, use this command:</p>
-<pre class="highlight"><code>identify -list format
+<pre class="highlight"><code>magick identify -list format
</code></pre>
<p>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.</p>
@@ -647,7 +647,7 @@ no encode delegate for this image format
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -655,3 +655,4 @@ no encode delegate for this image format
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 19:12 --> \ No newline at end of file
diff --git a/www/advanced-windows-installation.html b/www/advanced-windows-installation.html
index d56c345d6..d722defc9 100644
--- a/www/advanced-windows-installation.html
+++ b/www/advanced-windows-installation.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Advanced Windows Source Installation</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -148,7 +148,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -156,4 +156,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:09 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/animate.html b/www/animate.html
index 10f0893b4..ad7e0d38c 100644
--- a/www/animate.html
+++ b/www/animate.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Animate</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -565,7 +565,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -573,4 +573,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 20:59 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/api/Image++.html b/www/api/Image++.html
index 9ec4cd90c..8e0e853c2 100644
--- a/www/api/Image++.html
+++ b/www/api/Image++.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Magick++, C++ API for ImageMagick: Image Class</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -3239,7 +3239,7 @@ the region set by a preceding getPixels or getConstPixels call.</font></td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/animate.html b/www/api/animate.html
index 68c8f4f08..e2e2aa5fe 100644
--- a/www/api/animate.html
+++ b/www/api/animate.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Interactively Animate an Image Sequence</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -113,7 +113,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/annotate.html b/www/api/annotate.html
index 195b422d6..c8f897841 100644
--- a/www/api/annotate.html
+++ b/www/api/annotate.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Annotate an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -284,7 +284,7 @@ MagickBooleanType GetTypeMetrics(Image *image,const DrawInfo *draw_info,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/attribute.html b/www/api/attribute.html
index 382bc274b..f7ee19d89 100644
--- a/www/api/attribute.html
+++ b/www/api/attribute.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Set Text Attributes</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -484,7 +484,7 @@ MagickBooleanType SetImageType(Image *image,const ImageType type,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/blob.html b/www/api/blob.html
index 1c61780ec..0c45dc21c 100644
--- a/www/api/blob.html
+++ b/www/api/blob.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Read or Write Binary Large OBjects</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -471,7 +471,7 @@ MagickBooleanType InjectImageBlob(const ImageInfo *image_info,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/cache-view.html b/www/api/cache-view.html
index 57fc1bf84..efb56a1cf 100644
--- a/www/api/cache-view.html
+++ b/www/api/cache-view.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Cache Views</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -697,7 +697,7 @@ MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *cache_view,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/cache.html b/www/api/cache.html
index 34a1c7df3..768d7a0e6 100644
--- a/www/api/cache.html
+++ b/www/api/cache.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Get or Set Image Pixels</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -534,7 +534,7 @@ MagickBooleanType SyncAuthenticPixels(Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/channel.html b/www/api/channel.html
index 7c6c8b27d..79421c37d 100644
--- a/www/api/channel.html
+++ b/www/api/channel.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Get or Set Image Channels</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -298,7 +298,7 @@ MagickBooleanType SetImageAlphaChannel(Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/cipher.html b/www/api/cipher.html
index ce7fc9003..3a1a4637b 100644
--- a/www/api/cipher.html
+++ b/www/api/cipher.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Convert to and from Cipher Pixels</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -346,7 +346,7 @@ MagickBooleanType EncipherImage(Image *image,const char *passphrase,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/color.html b/www/api/color.html
index 4418f0941..ce7c9566e 100644
--- a/www/api/color.html
+++ b/www/api/color.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Count the Colors in an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -251,7 +251,7 @@ MagickBooleanType QueryColorname(const Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/colormap.html b/www/api/colormap.html
index 5431ce405..5081ddfea 100644
--- a/www/api/colormap.html
+++ b/www/api/colormap.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Colormap Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -177,7 +177,7 @@ MagickBooleanType CycleColormapImage(Image *image,const ssize_t displace,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/colorspace.html b/www/api/colorspace.html
index 1ffd3e9eb..b68d5b443 100644
--- a/www/api/colorspace.html
+++ b/www/api/colorspace.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Dealing with Image Colorspaces</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -263,7 +263,7 @@ MagickBooleanType TransformImageColorspace(Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/compare.html b/www/api/compare.html
index bd741ca2f..ef5fa8ab9 100644
--- a/www/api/compare.html
+++ b/www/api/compare.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Compare an Image to a Reconstructed Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -152,7 +152,7 @@ MagickBooleanType CompareImagesCommand(ImageInfo *image_info,int argc,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/composite.html b/www/api/composite.html
index 28b07dca2..c7feeef67 100644
--- a/www/api/composite.html
+++ b/www/api/composite.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Composite an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -152,7 +152,7 @@ MagickBooleanType CompositeImageCommand(ImageInfo *image_info,int argc,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/constitute.html b/www/api/constitute.html
index 5841e224b..4e25bd13d 100644
--- a/www/api/constitute.html
+++ b/www/api/constitute.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Constitute an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -341,7 +341,7 @@ MagickBooleanType WriteImages(const ImageInfo *image_info,Image *images,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/decorate.html b/www/api/decorate.html
index 8bf98ab0f..efe75676c 100644
--- a/www/api/decorate.html
+++ b/www/api/decorate.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Decorate an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -219,7 +219,7 @@ MagickBooleanType RaiseImage(const Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/deprecate.html b/www/api/deprecate.html
index 0f6764ae7..c1c77397f 100644
--- a/www/api/deprecate.html
+++ b/www/api/deprecate.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Deprecated Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -167,7 +167,7 @@ MagickBooleanType MagickSetImageAlphaColor(MagickWand *wand,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/display.html b/www/api/display.html
index c83877b8c..14f6bbf62 100644
--- a/www/api/display.html
+++ b/www/api/display.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Interactively Display and Edit an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -113,7 +113,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/distort.html b/www/api/distort.html
index da0af314d..5a997285b 100644
--- a/www/api/distort.html
+++ b/www/api/distort.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Image Distortions</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -276,7 +276,7 @@ Image *SparseColorImage(const Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/draw.html b/www/api/draw.html
index 6222748ab..8b1178c20 100644
--- a/www/api/draw.html
+++ b/www/api/draw.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Draw on an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -478,7 +478,7 @@ void GetAffineMatrix(AffineMatrix *affine_matrix)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/drawing-wand.html b/www/api/drawing-wand.html
index 803595f7f..ad4c1b1dc 100644
--- a/www/api/drawing-wand.html
+++ b/www/api/drawing-wand.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API: Drawing Wand Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -3935,7 +3935,7 @@ MagickBooleanType PushDrawingWand(DrawingWand *wand)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/effect.html b/www/api/effect.html
index b2233db9d..85016279e 100644
--- a/www/api/effect.html
+++ b/www/api/effect.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Add an Effect</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -90,7 +90,7 @@
<main role="main" class="container">
<div class="magick-template">
<div class="magick-header">
-<p class="text-center"><a href="effect.html#AdaptiveBlurImage">AdaptiveBlurImage</a> &#8226; <a href="effect.html#AdaptiveSharpenImage">AdaptiveSharpenImage</a> &#8226; <a href="effect.html#BlurImage">BlurImage</a> &#8226; <a href="effect.html#ConvolveImage">ConvolveImage</a> &#8226; <a href="effect.html#DespeckleImage">DespeckleImage</a> &#8226; <a href="effect.html#EdgeImage">EdgeImage</a> &#8226; <a href="effect.html#EmbossImage">EmbossImage</a> &#8226; <a href="effect.html#GaussianBlurImage">GaussianBlurImage</a> &#8226; <a href="effect.html#KuwaharaImage">KuwaharaImage</a> &#8226; <a href="effect.html#LocalContrastImage">LocalContrastImage</a> &#8226; <a href="effect.html#MotionBlurImage">MotionBlurImage</a> &#8226; <a href="effect.html#PreviewImage">PreviewImage</a> &#8226; <a href="effect.html#RotationalBlurImage">RotationalBlurImage</a> &#8226; <a href="effect.html#SelectiveBlurImage">SelectiveBlurImage</a> &#8226; <a href="effect.html#ShadeImage">ShadeImage</a> &#8226; <a href="effect.html#SharpenImage">SharpenImage</a> &#8226; <a href="effect.html#SpreadImage">SpreadImage</a> &#8226; <a href="effect.html#UnsharpMaskImage">UnsharpMaskImage</a></p>
+<p class="text-center"><a href="effect.html#AdaptiveBlurImage">AdaptiveBlurImage</a> &#8226; <a href="effect.html#AdaptiveSharpenImage">AdaptiveSharpenImage</a> &#8226; <a href="effect.html#BlurImage">BlurImage</a> &#8226; <a href="effect.html#BilateralBlurImage">BilateralBlurImage</a> &#8226; <a href="effect.html#ConvolveImage">ConvolveImage</a> &#8226; <a href="effect.html#DespeckleImage">DespeckleImage</a> &#8226; <a href="effect.html#EdgeImage">EdgeImage</a> &#8226; <a href="effect.html#EmbossImage">EmbossImage</a> &#8226; <a href="effect.html#GaussianBlurImage">GaussianBlurImage</a> &#8226; <a href="effect.html#KuwaharaImage">KuwaharaImage</a> &#8226; <a href="effect.html#LocalContrastImage">LocalContrastImage</a> &#8226; <a href="effect.html#MotionBlurImage">MotionBlurImage</a> &#8226; <a href="effect.html#PreviewImage">PreviewImage</a> &#8226; <a href="effect.html#RotationalBlurImage">RotationalBlurImage</a> &#8226; <a href="effect.html#SelectiveBlurImage">SelectiveBlurImage</a> &#8226; <a href="effect.html#ShadeImage">ShadeImage</a> &#8226; <a href="effect.html#SharpenImage">SharpenImage</a> &#8226; <a href="effect.html#SpreadImage">SpreadImage</a> &#8226; <a href="effect.html#UnsharpMaskImage">UnsharpMaskImage</a></p>
<h2><a href="../../api/MagickCore/effect_8c.html" id="AdaptiveBlurImage">AdaptiveBlurImage</a></h2>
@@ -197,6 +197,50 @@ Image *BlurImage(const Image *image,const double radius,
<dd> </dd>
</dl>
+<h2><a href="../../api/MagickCore/effect_8c.html" id="BilateralBlurImage">BilateralBlurImage</a></h2>
+
+<p>BilateralBlurImage() is a non-linear, edge-preserving, and noise-reducing smoothing filter for images. It replaces the intensity of each pixel with a weighted average of intensity values from nearby pixels. This weight is based on a Gaussian distribution. The weights depend not only on Euclidean distance of pixels, but also on the radiometric differences (e.g., range differences, such as color intensity, depth distance, etc.). This preserves sharp edges.</p>
+
+<p>The format of the BilateralBlurImage method is:</p>
+
+<pre class="text">
+Image *BilateralBlurImage(const Image *image,const size_t width,
+ const size_t height,const double intensity_sigma,
+ const double spatial_sigma,ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>width</dt>
+<dd>the width of the neighborhood in pixels. </dd>
+
+<dd> </dd>
+<dt>height</dt>
+<dd>the height of the neighborhood in pixels. </dd>
+
+<dd> </dd>
+<dt>intensity_sigma</dt>
+<dd>sigma in the intensity space. A larger value means that farther colors within the pixel neighborhood (see spatial_sigma) will be mixed together, resulting in larger areas of semi-equal color. </dd>
+
+<dd> </dd>
+<dt>spatial_sigma</dt>
+<dd>sigma in the coordinate space. A larger value means that farther pixels influence each other as long as their colors are close enough (see intensity_sigma ). When the neigborhood diameter is greater than zero, it specifies the neighborhood size regardless of spatial_sigma. Otherwise, the neigborhood diameter is proportional to spatial_sigma. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd> </dd>
+</dl>
<h2><a href="../../api/MagickCore/effect_8c.html" id="ConvolveImage">ConvolveImage</a></h2>
<p>ConvolveImage() applies a custom convolution kernel to the image.</p>
@@ -322,7 +366,7 @@ Image *EmbossImage(const Image *image,const double radius,
</dl>
<h2><a href="../../api/MagickCore/effect_8c.html" id="GaussianBlurImage">GaussianBlurImage</a></h2>
-<p>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</p>
+<p>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.</p>
<p>The format of the GaussianBlurImage method is:</p>
@@ -746,7 +790,7 @@ ExceptionInfo *exception)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/enhance.html b/www/api/enhance.html
index dcd75484f..2404a0cd8 100644
--- a/www/api/enhance.html
+++ b/www/api/enhance.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Enhance an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -867,7 +867,7 @@ MagickBooleanType WhiteBalanceImage(Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/exception.html b/www/api/exception.html
index f995dbcf3..5d1f28023 100644
--- a/www/api/exception.html
+++ b/www/api/exception.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Dealing with Exceptions</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -503,7 +503,7 @@ MagickBooleanType ThrowException(ExceptionInfo *exception,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/feature.html b/www/api/feature.html
index 677ba2b09..701df316a 100644
--- a/www/api/feature.html
+++ b/www/api/feature.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Image Features</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -266,7 +266,7 @@ Image *MeanShiftImage(const Image *image,const size_t width,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/fourier.html b/www/api/fourier.html
index 3e8d34c35..ad5337397 100644
--- a/www/api/fourier.html
+++ b/www/api/fourier.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Fourier Transform</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -211,7 +211,7 @@ Image *InverseFourierTransformImage(const Image *magnitude_image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/fx.html b/www/api/fx.html
index 1d0d7146a..46c658f1e 100644
--- a/www/api/fx.html
+++ b/www/api/fx.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Add a Special Effect</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -144,7 +144,7 @@ Image *FxImage(const Image *image,const char *expression,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/histogram.html b/www/api/histogram.html
index ccddb47e4..f2fe3e558 100644
--- a/www/api/histogram.html
+++ b/www/api/histogram.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Image Histograms</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -271,7 +271,7 @@ Image *UniqueImageColors(const Image *image,ExceptionInfo *exception)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/image-view.html b/www/api/image-view.html
index 168508acb..30135ac70 100644
--- a/www/api/image-view.html
+++ b/www/api/image-view.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Image View Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -670,7 +670,7 @@ MagickBooleanType UpdateImageViewIterator(ImageView *source,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/image.html b/www/api/image.html
index 0e2a780dd..24204edd8 100644
--- a/www/api/image.html
+++ b/www/api/image.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Image Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -1219,7 +1219,7 @@ MagickBooleanType SyncImagesSettings(const ImageInfo *image_info,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/layer.html b/www/api/layer.html
index d67941977..b46701a6e 100644
--- a/www/api/layer.html
+++ b/www/api/layer.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Dealing with Image Layers</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -432,7 +432,7 @@ Image *MergeImageLayers(Image *image,const LayerMethod method,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/list.html b/www/api/list.html
index 7869377b9..078e984aa 100644
--- a/www/api/list.html
+++ b/www/api/list.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Working with Image Lists</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -772,7 +772,7 @@ Image *SplitImageList(Image *images)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/magick++-classes.html b/www/api/magick++-classes.html
index 77942671b..d30670158 100644
--- a/www/api/magick++-classes.html
+++ b/www/api/magick++-classes.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Magick++, C++ API: Classes</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -166,7 +166,7 @@ containers of image frames.</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/magick-deprecate.html b/www/api/magick-deprecate.html
index b820cda10..6d90b31fa 100644
--- a/www/api/magick-deprecate.html
+++ b/www/api/magick-deprecate.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API: Deprecated Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -113,7 +113,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/magick-image.html b/www/api/magick-image.html
index 4aec9ea60..b6680b177 100644
--- a/www/api/magick-image.html
+++ b/www/api/magick-image.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API: Image Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -90,7 +90,7 @@
<main role="main" class="container">
<div class="magick-template">
<div class="magick-header">
-<p class="text-center"><a href="magick-image.html#GetImageFromMagickWand">GetImageFromMagickWand</a> &#8226; <a href="magick-image.html#MagickAdaptiveBlurImage">MagickAdaptiveBlurImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveResizeImage">MagickAdaptiveResizeImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveSharpenImage">MagickAdaptiveSharpenImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveThresholdImage">MagickAdaptiveThresholdImage</a> &#8226; <a href="magick-image.html#MagickAddImage">MagickAddImage</a> &#8226; <a href="magick-image.html#MagickAddNoiseImage">MagickAddNoiseImage</a> &#8226; <a href="magick-image.html#MagickAffineTransformImage">MagickAffineTransformImage</a> &#8226; <a href="magick-image.html#MagickAnnotateImage">MagickAnnotateImage</a> &#8226; <a href="magick-image.html#MagickAnimateImages">MagickAnimateImages</a> &#8226; <a href="magick-image.html#MagickAppendImages">MagickAppendImages</a> &#8226; <a href="magick-image.html#MagickAutoGammaImage">MagickAutoGammaImage</a> &#8226; <a href="magick-image.html#MagickAutoLevelImage">MagickAutoLevelImage</a> &#8226; <a href="magick-image.html#MagickAutoOrientImage">MagickAutoOrientImage</a> &#8226; <a href="magick-image.html#MagickAutoThresholdImage">MagickAutoThresholdImage</a> &#8226; <a href="magick-image.html#MagickBlackThresholdImage">MagickBlackThresholdImage</a> &#8226; <a href="magick-image.html#MagickBlueShiftImage">MagickBlueShiftImage</a> &#8226; <a href="magick-image.html#MagickBlurImage">MagickBlurImage</a> &#8226; <a href="magick-image.html#MagickBorderImage">MagickBorderImage</a> &#8226; <a href="magick-image.html#Use MagickBrightnessContrastImage">Use MagickBrightnessContrastImage</a> &#8226; <a href="magick-image.html#MagickCannyEdgeImage">MagickCannyEdgeImage</a> &#8226; <a href="magick-image.html#MagickChannelFxImage">MagickChannelFxImage</a> &#8226; <a href="magick-image.html#MagickCharcoalImage">MagickCharcoalImage</a> &#8226; <a href="magick-image.html#MagickChopImage">MagickChopImage</a> &#8226; <a href="magick-image.html#MagickCLAHEImage">MagickCLAHEImage</a> &#8226; <a href="magick-image.html#MagickClampImage">MagickClampImage</a> &#8226; <a href="magick-image.html#MagickClipImage">MagickClipImage</a> &#8226; <a href="magick-image.html#MagickClipImagePath">MagickClipImagePath</a> &#8226; <a href="magick-image.html#MagickClutImage">MagickClutImage</a> &#8226; <a href="magick-image.html#MagickCoalesceImages">MagickCoalesceImages</a> &#8226; <a href="magick-image.html#MagickColorDecisionListImage">MagickColorDecisionListImage</a> &#8226; <a href="magick-image.html#MagickColorizeImage">MagickColorizeImage</a> &#8226; <a href="magick-image.html#MagickColorMatrixImage">MagickColorMatrixImage</a> &#8226; <a href="magick-image.html#MagickColorThresholdImage">MagickColorThresholdImage</a> &#8226; <a href="magick-image.html#MagickCombineImages">MagickCombineImages</a> &#8226; <a href="magick-image.html#MagickCommentImage">MagickCommentImage</a> &#8226; <a href="magick-image.html#MagickCompareImagesLayers">MagickCompareImagesLayers</a> &#8226; <a href="magick-image.html#MagickCompareImages">MagickCompareImages</a> &#8226; <a href="magick-image.html#MagickComplexImages">MagickComplexImages</a> &#8226; <a href="magick-image.html#MagickCompositeImage">MagickCompositeImage</a> &#8226; <a href="magick-image.html#MagickCompositeImageGravity">MagickCompositeImageGravity</a> &#8226; <a href="magick-image.html#MagickCompositeLayers">MagickCompositeLayers</a> &#8226; <a href="magick-image.html#MagickConnectedComponentsImage">MagickConnectedComponentsImage</a> &#8226; <a href="magick-image.html#MagickContrastImage">MagickContrastImage</a> &#8226; <a href="magick-image.html#MagickContrastStretchImage">MagickContrastStretchImage</a> &#8226; <a href="magick-image.html#MagickConvolveImage">MagickConvolveImage</a> &#8226; <a href="magick-image.html#MagickCropImage">MagickCropImage</a> &#8226; <a href="magick-image.html#MagickCycleColormapImage">MagickCycleColormapImage</a> &#8226; <a href="magick-image.html#MagickConstituteImage">MagickConstituteImage</a> &#8226; <a href="magick-image.html#MagickDecipherImage">MagickDecipherImage</a> &#8226; <a href="magick-image.html#MagickDeconstructImages">MagickDeconstructImages</a> &#8226; <a href="magick-image.html#MagickDeskewImage">MagickDeskewImage</a> &#8226; <a href="magick-image.html#MagickDespeckleImage">MagickDespeckleImage</a> &#8226; <a href="magick-image.html#MagickDestroyImage">MagickDestroyImage</a> &#8226; <a href="magick-image.html#MagickDisplayImage">MagickDisplayImage</a> &#8226; <a href="magick-image.html#MagickDisplayImages">MagickDisplayImages</a> &#8226; <a href="magick-image.html#MagickDistortImage">MagickDistortImage</a> &#8226; <a href="magick-image.html#MagickDrawImage">MagickDrawImage</a> &#8226; <a href="magick-image.html#MagickEdgeImage">MagickEdgeImage</a> &#8226; <a href="magick-image.html#MagickEmbossImage">MagickEmbossImage</a> &#8226; <a href="magick-image.html#MagickEncipherImage">MagickEncipherImage</a> &#8226; <a href="magick-image.html#MagickEnhanceImage">MagickEnhanceImage</a> &#8226; <a href="magick-image.html#MagickEqualizeImage">MagickEqualizeImage</a> &#8226; <a href="magick-image.html#MagickEvaluateImage">MagickEvaluateImage</a> &#8226; <a href="magick-image.html#MagickExportImagePixels">MagickExportImagePixels</a> &#8226; <a href="magick-image.html#MagickExtentImage">MagickExtentImage</a> &#8226; <a href="magick-image.html#MagickFlipImage">MagickFlipImage</a> &#8226; <a href="magick-image.html#MagickFloodfillPaintImage">MagickFloodfillPaintImage</a> &#8226; <a href="magick-image.html#MagickFlopImage">MagickFlopImage</a> &#8226; <a href="magick-image.html#MagickForwardFourierTransformImage">MagickForwardFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickFrameImage">MagickFrameImage</a> &#8226; <a href="magick-image.html#MagickFunctionImage">MagickFunctionImage</a> &#8226; <a href="magick-image.html#MagickFxImage">MagickFxImage</a> &#8226; <a href="magick-image.html#MagickGammaImage">MagickGammaImage</a> &#8226; <a href="magick-image.html#MagickGaussianBlurImage">MagickGaussianBlurImage</a> &#8226; <a href="magick-image.html#MagickGetImage">MagickGetImage</a> &#8226; <a href="magick-image.html#MagickGetImageAlphaChannel">MagickGetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickGetImageMask">MagickGetImageMask</a> &#8226; <a href="magick-image.html#MagickGetImageBackgroundColor">MagickGetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickGetImageBlob">MagickGetImageBlob</a> &#8226; <a href="magick-image.html#MagickGetImagesBlob">MagickGetImagesBlob</a> &#8226; <a href="magick-image.html#MagickGetImageBluePrimary">MagickGetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickGetImageBorderColor">MagickGetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickGetImageFeatures">MagickGetImageFeatures</a> &#8226; <a href="magick-image.html#MagickGetImageKurtosis">MagickGetImageKurtosis</a> &#8226; <a href="magick-image.html#MagickGetImageMean">MagickGetImageMean</a> &#8226; <a href="magick-image.html#MagickGetImageRange">MagickGetImageRange</a> &#8226; <a href="magick-image.html#MagickGetImageStatistics">MagickGetImageStatistics</a> &#8226; <a href="magick-image.html#MagickGetImageColormapColor">MagickGetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickGetImageColors">MagickGetImageColors</a> &#8226; <a href="magick-image.html#MagickGetImageColorspace">MagickGetImageColorspace</a> &#8226; <a href="magick-image.html#MagickGetImageCompose">MagickGetImageCompose</a> &#8226; <a href="magick-image.html#MagickGetImageCompression">MagickGetImageCompression</a> &#8226; <a href="magick-image.html#MagickGetImageCompressionQuality">MagickGetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickGetImageDelay">MagickGetImageDelay</a> &#8226; <a href="magick-image.html#MagickGetImageDepth">MagickGetImageDepth</a> &#8226; <a href="magick-image.html#MagickGetImageDispose">MagickGetImageDispose</a> &#8226; <a href="magick-image.html#MagickGetImageDistortion">MagickGetImageDistortion</a> &#8226; <a href="magick-image.html#MagickGetImageDistortions">MagickGetImageDistortions</a> &#8226; <a href="magick-image.html#MagickGetImageEndian">MagickGetImageEndian</a> &#8226; <a href="magick-image.html#MagickGetImageFilename">MagickGetImageFilename</a> &#8226; <a href="magick-image.html#MagickGetImageFormat">MagickGetImageFormat</a> &#8226; <a href="magick-image.html#MagickGetImageFuzz">MagickGetImageFuzz</a> &#8226; <a href="magick-image.html#MagickGetImageGamma">MagickGetImageGamma</a> &#8226; <a href="magick-image.html#MagickGetImageGravity">MagickGetImageGravity</a> &#8226; <a href="magick-image.html#MagickGetImageGreenPrimary">MagickGetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageHeight">MagickGetImageHeight</a> &#8226; <a href="magick-image.html#MagickGetImageHistogram">MagickGetImageHistogram</a> &#8226; <a href="magick-image.html#MagickGetImageInterlaceScheme">MagickGetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickGetImageInterpolateMethod">MagickGetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickGetImageIterations">MagickGetImageIterations</a> &#8226; <a href="magick-image.html#MagickGetImageLength">MagickGetImageLength</a> &#8226; <a href="magick-image.html#MagickGetImageMatteColor">MagickGetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickGetImageOrientation">MagickGetImageOrientation</a> &#8226; <a href="magick-image.html#MagickGetImagePage">MagickGetImagePage</a> &#8226; <a href="magick-image.html#MagickGetImagePixelColor">MagickGetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickGetImageRedPrimary">MagickGetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageRegion">MagickGetImageRegion</a> &#8226; <a href="magick-image.html#MagickGetImageRenderingIntent">MagickGetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickGetImageResolution">MagickGetImageResolution</a> &#8226; <a href="magick-image.html#MagickGetImageScene">MagickGetImageScene</a> &#8226; <a href="magick-image.html#MagickGetImageSignature">MagickGetImageSignature</a> &#8226; <a href="magick-image.html#MagickGetImageTicksPerSecond">MagickGetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickGetImageType">MagickGetImageType</a> &#8226; <a href="magick-image.html#MagickGetImageUnits">MagickGetImageUnits</a> &#8226; <a href="magick-image.html#MagickGetImageVirtualPixelMethod">MagickGetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickGetImageWhitePoint">MagickGetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickGetImageWidth">MagickGetImageWidth</a> &#8226; <a href="magick-image.html#MagickGetNumberImages">MagickGetNumberImages</a> &#8226; <a href="magick-image.html#MagickGetImageTotalInkDensity">MagickGetImageTotalInkDensity</a> &#8226; <a href="magick-image.html#MagickHaldClutImage">MagickHaldClutImage</a> &#8226; <a href="magick-image.html#MagickHasNextImage">MagickHasNextImage</a> &#8226; <a href="magick-image.html#MagickHasPreviousImage">MagickHasPreviousImage</a> &#8226; <a href="magick-image.html#Use MagickHoughLineImage">Use MagickHoughLineImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImage">MagickIdentifyImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImageType">MagickIdentifyImageType</a> &#8226; <a href="magick-image.html#MagickImplodeImage">MagickImplodeImage</a> &#8226; <a href="magick-image.html#MagickImportImagePixels">MagickImportImagePixels</a> &#8226; <a href="magick-image.html#MagickInterpolativeResizeImage">MagickInterpolativeResizeImage</a> &#8226; <a href="magick-image.html#MagickInverseFourierTransformImage">MagickInverseFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickKmeansImage">MagickKmeansImage</a> &#8226; <a href="magick-image.html#Use MagickKuwaharaImage">Use MagickKuwaharaImage</a> &#8226; <a href="magick-image.html#MagickLabelImage">MagickLabelImage</a> &#8226; <a href="magick-image.html#MagickLevelImage">MagickLevelImage</a> &#8226; <a href="magick-image.html#MagickLevelImageColors">MagickLevelImageColors</a> &#8226; <a href="magick-image.html#MagickLevelizeImage">MagickLevelizeImage</a> &#8226; <a href="magick-image.html#MagickLinearStretchImage">MagickLinearStretchImage</a> &#8226; <a href="magick-image.html#MagickLiquidRescaleImage">MagickLiquidRescaleImage</a> &#8226; <a href="magick-image.html#MagickLocalContrastImage">MagickLocalContrastImage</a> &#8226; <a href="magick-image.html#MagickMagnifyImage">MagickMagnifyImage</a> &#8226; <a href="magick-image.html#MagickMeanShiftImage">MagickMeanShiftImage</a> &#8226; <a href="magick-image.html#MagickMergeImageLayers">MagickMergeImageLayers</a> &#8226; <a href="magick-image.html#MagickMinifyImage">MagickMinifyImage</a> &#8226; <a href="magick-image.html#MagickModulateImage">MagickModulateImage</a> &#8226; <a href="magick-image.html#MagickMontageImage">MagickMontageImage</a> &#8226; <a href="magick-image.html#MagickMorphImages">MagickMorphImages</a> &#8226; <a href="magick-image.html#MagickMorphologyImage">MagickMorphologyImage</a> &#8226; <a href="magick-image.html#MagickMotionBlurImage">MagickMotionBlurImage</a> &#8226; <a href="magick-image.html#MagickNegateImage">MagickNegateImage</a> &#8226; <a href="magick-image.html#MagickNewImage">MagickNewImage</a> &#8226; <a href="magick-image.html#MagickNextImage">MagickNextImage</a> &#8226; <a href="magick-image.html#MagickNormalizeImage">MagickNormalizeImage</a> &#8226; <a href="magick-image.html#MagickOilPaintImage">MagickOilPaintImage</a> &#8226; <a href="magick-image.html#MagickOpaquePaintImage">MagickOpaquePaintImage</a> &#8226; <a href="magick-image.html#MagickOptimizeImageLayers">MagickOptimizeImageLayers</a> &#8226; <a href="magick-image.html#MagickOptimizeImageTransparency">MagickOptimizeImageTransparency</a> &#8226; <a href="magick-image.html#MagickOrderedDitherImage">MagickOrderedDitherImage</a> &#8226; <a href="magick-image.html#MagickPingImage">MagickPingImage</a> &#8226; <a href="magick-image.html#MagickPingImageBlob">MagickPingImageBlob</a> &#8226; <a href="magick-image.html#MagickPingImageFile">MagickPingImageFile</a> &#8226; <a href="magick-image.html#MagickPolaroidImage">MagickPolaroidImage</a> &#8226; <a href="magick-image.html#MagickPolynomialImage">MagickPolynomialImage</a> &#8226; <a href="magick-image.html#MagickPosterizeImage">MagickPosterizeImage</a> &#8226; <a href="magick-image.html#MagickPreviewImages">MagickPreviewImages</a> &#8226; <a href="magick-image.html#MagickPreviousImage">MagickPreviousImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImage">MagickQuantizeImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImages">MagickQuantizeImages</a> &#8226; <a href="magick-image.html#MagickRangeThresholdImage">MagickRangeThresholdImage</a> &#8226; <a href="magick-image.html#MagickRotationalBlurImage">MagickRotationalBlurImage</a> &#8226; <a href="magick-image.html#MagickRaiseImage">MagickRaiseImage</a> &#8226; <a href="magick-image.html#MagickRandomThresholdImage">MagickRandomThresholdImage</a> &#8226; <a href="magick-image.html#MagickReadImage">MagickReadImage</a> &#8226; <a href="magick-image.html#MagickReadImageBlob">MagickReadImageBlob</a> &#8226; <a href="magick-image.html#MagickReadImageFile">MagickReadImageFile</a> &#8226; <a href="magick-image.html#MagickRemapImage">MagickRemapImage</a> &#8226; <a href="magick-image.html#MagickRemoveImage">MagickRemoveImage</a> &#8226; <a href="magick-image.html#MagickResampleImage">MagickResampleImage</a> &#8226; <a href="magick-image.html#MagickResetImagePage">MagickResetImagePage</a> &#8226; <a href="magick-image.html#MagickResizeImage">MagickResizeImage</a> &#8226; <a href="magick-image.html#MagickRollImage">MagickRollImage</a> &#8226; <a href="magick-image.html#MagickRotateImage">MagickRotateImage</a> &#8226; <a href="magick-image.html#MagickSampleImage">MagickSampleImage</a> &#8226; <a href="magick-image.html#MagickScaleImage">MagickScaleImage</a> &#8226; <a href="magick-image.html#MagickSegmentImage">MagickSegmentImage</a> &#8226; <a href="magick-image.html#MagickSelectiveBlurImage">MagickSelectiveBlurImage</a> &#8226; <a href="magick-image.html#MagickSeparateImage">MagickSeparateImage</a> &#8226; <a href="magick-image.html#MagickSepiaToneImage">MagickSepiaToneImage</a> &#8226; <a href="magick-image.html#MagickSetImage">MagickSetImage</a> &#8226; <a href="magick-image.html#MagickSetImageAlphaChannel">MagickSetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickSetImageBackgroundColor">MagickSetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickSetImageBluePrimary">MagickSetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickSetImageBorderColor">MagickSetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickSetImageChannelMask">MagickSetImageChannelMask</a> &#8226; <a href="magick-image.html#MagickSetImageMask">MagickSetImageMask</a> &#8226; <a href="magick-image.html#MagickSetImageColor">MagickSetImageColor</a> &#8226; <a href="magick-image.html#MagickSetImageColormapColor">MagickSetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickSetImageColorspace">MagickSetImageColorspace</a> &#8226; <a href="magick-image.html#MagickSetImageCompose">MagickSetImageCompose</a> &#8226; <a href="magick-image.html#MagickSetImageCompression">MagickSetImageCompression</a> &#8226; <a href="magick-image.html#MagickSetImageCompressionQuality">MagickSetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickSetImageDelay">MagickSetImageDelay</a> &#8226; <a href="magick-image.html#MagickSetImageDepth">MagickSetImageDepth</a> &#8226; <a href="magick-image.html#MagickSetImageDispose">MagickSetImageDispose</a> &#8226; <a href="magick-image.html#MagickSetImageEndian">MagickSetImageEndian</a> &#8226; <a href="magick-image.html#MagickSetImageExtent">MagickSetImageExtent</a> &#8226; <a href="magick-image.html#MagickSetImageFilename">MagickSetImageFilename</a> &#8226; <a href="magick-image.html#MagickSetImageFormat">MagickSetImageFormat</a> &#8226; <a href="magick-image.html#MagickSetImageFuzz">MagickSetImageFuzz</a> &#8226; <a href="magick-image.html#MagickSetImageGamma">MagickSetImageGamma</a> &#8226; <a href="magick-image.html#MagickSetImageGravity">MagickSetImageGravity</a> &#8226; <a href="magick-image.html#MagickSetImageGreenPrimary">MagickSetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageInterlaceScheme">MagickSetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickSetImageInterpolateMethod">MagickSetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickSetImageIterations">MagickSetImageIterations</a> &#8226; <a href="magick-image.html#MagickSetImageMatte">MagickSetImageMatte</a> &#8226; <a href="magick-image.html#MagickSetImageMatteColor">MagickSetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickSetImageAlpha">MagickSetImageAlpha</a> &#8226; <a href="magick-image.html#MagickSetImageOrientation">MagickSetImageOrientation</a> &#8226; <a href="magick-image.html#MagickSetImagePage">MagickSetImagePage</a> &#8226; <a href="magick-image.html#MagickSetImagePixelColor">MagickSetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickSetImageProgressMonitor">MagickSetImageProgressMonitor</a> &#8226; <a href="magick-image.html#MagickSetImageRedPrimary">MagickSetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageRenderingIntent">MagickSetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickSetImageResolution">MagickSetImageResolution</a> &#8226; <a href="magick-image.html#MagickSetImageScene">MagickSetImageScene</a> &#8226; <a href="magick-image.html#MagickSetImageTicksPerSecond">MagickSetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickSetImageType">MagickSetImageType</a> &#8226; <a href="magick-image.html#MagickSetImageUnits">MagickSetImageUnits</a> &#8226; <a href="magick-image.html#MagickSetImageVirtualPixelMethod">MagickSetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickSetImageWhitePoint">MagickSetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickShadeImage">MagickShadeImage</a> &#8226; <a href="magick-image.html#MagickShadowImage">MagickShadowImage</a> &#8226; <a href="magick-image.html#MagickSharpenImage">MagickSharpenImage</a> &#8226; <a href="magick-image.html#MagickShaveImage">MagickShaveImage</a> &#8226; <a href="magick-image.html#MagickShearImage">MagickShearImage</a> &#8226; <a href="magick-image.html#MagickSigmoidalContrastImage">MagickSigmoidalContrastImage</a> &#8226; <a href="magick-image.html#MagickSimilarityImage">MagickSimilarityImage</a> &#8226; <a href="magick-image.html#MagickSketchImage">MagickSketchImage</a> &#8226; <a href="magick-image.html#MagickSmushImages">MagickSmushImages</a> &#8226; <a href="magick-image.html#MagickSolarizeImage">MagickSolarizeImage</a> &#8226; <a href="magick-image.html#MagickSparseColorImage">MagickSparseColorImage</a> &#8226; <a href="magick-image.html#MagickSpliceImage">MagickSpliceImage</a> &#8226; <a href="magick-image.html#MagickSpreadImage">MagickSpreadImage</a> &#8226; <a href="magick-image.html#MagickStatisticImage">MagickStatisticImage</a> &#8226; <a href="magick-image.html#MagickSteganoImage">MagickSteganoImage</a> &#8226; <a href="magick-image.html#MagickStereoImage">MagickStereoImage</a> &#8226; <a href="magick-image.html#MagickStripImage">MagickStripImage</a> &#8226; <a href="magick-image.html#MagickSwirlImage">MagickSwirlImage</a> &#8226; <a href="magick-image.html#MagickTextureImage">MagickTextureImage</a> &#8226; <a href="magick-image.html#MagickThresholdImage">MagickThresholdImage</a> &#8226; <a href="magick-image.html#MagickThumbnailImage">MagickThumbnailImage</a> &#8226; <a href="magick-image.html#MagickTintImage">MagickTintImage</a> &#8226; <a href="magick-image.html#MagickTransformImageColorspace">MagickTransformImageColorspace</a> &#8226; <a href="magick-image.html#MagickTransparentPaintImage">MagickTransparentPaintImage</a> &#8226; <a href="magick-image.html#MagickTransposeImage">MagickTransposeImage</a> &#8226; <a href="magick-image.html#MagickTransverseImage">MagickTransverseImage</a> &#8226; <a href="magick-image.html#MagickTrimImage">MagickTrimImage</a> &#8226; <a href="magick-image.html#MagickUniqueImageColors">MagickUniqueImageColors</a> &#8226; <a href="magick-image.html#MagickUnsharpMaskImage">MagickUnsharpMaskImage</a> &#8226; <a href="magick-image.html#MagickVignetteImage">MagickVignetteImage</a> &#8226; <a href="magick-image.html#MagickWaveImage">MagickWaveImage</a> &#8226; <a href="magick-image.html#MagickWaveletDenoiseImage">MagickWaveletDenoiseImage</a> &#8226; <a href="magick-image.html#MagickWhiteBalanceImage">MagickWhiteBalanceImage</a> &#8226; <a href="magick-image.html#MagickWhiteThresholdImage">MagickWhiteThresholdImage</a> &#8226; <a href="magick-image.html#MagickWriteImage">MagickWriteImage</a> &#8226; <a href="magick-image.html#MagickWriteImageFile">MagickWriteImageFile</a> &#8226; <a href="magick-image.html#MagickWriteImages">MagickWriteImages</a> &#8226; <a href="magick-image.html#MagickWriteImagesFile">MagickWriteImagesFile</a></p>
+<p class="text-center"><a href="magick-image.html#GetImageFromMagickWand">GetImageFromMagickWand</a> &#8226; <a href="magick-image.html#MagickAdaptiveBlurImage">MagickAdaptiveBlurImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveResizeImage">MagickAdaptiveResizeImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveSharpenImage">MagickAdaptiveSharpenImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveThresholdImage">MagickAdaptiveThresholdImage</a> &#8226; <a href="magick-image.html#MagickAddImage">MagickAddImage</a> &#8226; <a href="magick-image.html#MagickAddNoiseImage">MagickAddNoiseImage</a> &#8226; <a href="magick-image.html#MagickAffineTransformImage">MagickAffineTransformImage</a> &#8226; <a href="magick-image.html#MagickAnnotateImage">MagickAnnotateImage</a> &#8226; <a href="magick-image.html#MagickAnimateImages">MagickAnimateImages</a> &#8226; <a href="magick-image.html#MagickAppendImages">MagickAppendImages</a> &#8226; <a href="magick-image.html#MagickAutoGammaImage">MagickAutoGammaImage</a> &#8226; <a href="magick-image.html#MagickAutoLevelImage">MagickAutoLevelImage</a> &#8226; <a href="magick-image.html#MagickAutoOrientImage">MagickAutoOrientImage</a> &#8226; <a href="magick-image.html#MagickAutoThresholdImage">MagickAutoThresholdImage</a> &#8226; <a href="magick-image.html#MagickBilateralBlurImage">MagickBilateralBlurImage</a> &#8226; <a href="magick-image.html#MagickBlackThresholdImage">MagickBlackThresholdImage</a> &#8226; <a href="magick-image.html#MagickBlueShiftImage">MagickBlueShiftImage</a> &#8226; <a href="magick-image.html#MagickBlurImage">MagickBlurImage</a> &#8226; <a href="magick-image.html#MagickBorderImage">MagickBorderImage</a> &#8226; <a href="magick-image.html#Use MagickBrightnessContrastImage">Use MagickBrightnessContrastImage</a> &#8226; <a href="magick-image.html#MagickCannyEdgeImage">MagickCannyEdgeImage</a> &#8226; <a href="magick-image.html#MagickChannelFxImage">MagickChannelFxImage</a> &#8226; <a href="magick-image.html#MagickCharcoalImage">MagickCharcoalImage</a> &#8226; <a href="magick-image.html#MagickChopImage">MagickChopImage</a> &#8226; <a href="magick-image.html#MagickCLAHEImage">MagickCLAHEImage</a> &#8226; <a href="magick-image.html#MagickClampImage">MagickClampImage</a> &#8226; <a href="magick-image.html#MagickClipImage">MagickClipImage</a> &#8226; <a href="magick-image.html#MagickClipImagePath">MagickClipImagePath</a> &#8226; <a href="magick-image.html#MagickClutImage">MagickClutImage</a> &#8226; <a href="magick-image.html#MagickCoalesceImages">MagickCoalesceImages</a> &#8226; <a href="magick-image.html#MagickColorDecisionListImage">MagickColorDecisionListImage</a> &#8226; <a href="magick-image.html#MagickColorizeImage">MagickColorizeImage</a> &#8226; <a href="magick-image.html#MagickColorMatrixImage">MagickColorMatrixImage</a> &#8226; <a href="magick-image.html#MagickColorThresholdImage">MagickColorThresholdImage</a> &#8226; <a href="magick-image.html#MagickCombineImages">MagickCombineImages</a> &#8226; <a href="magick-image.html#MagickCommentImage">MagickCommentImage</a> &#8226; <a href="magick-image.html#MagickCompareImagesLayers">MagickCompareImagesLayers</a> &#8226; <a href="magick-image.html#MagickCompareImages">MagickCompareImages</a> &#8226; <a href="magick-image.html#MagickComplexImages">MagickComplexImages</a> &#8226; <a href="magick-image.html#MagickCompositeImage">MagickCompositeImage</a> &#8226; <a href="magick-image.html#MagickCompositeImageGravity">MagickCompositeImageGravity</a> &#8226; <a href="magick-image.html#MagickCompositeLayers">MagickCompositeLayers</a> &#8226; <a href="magick-image.html#MagickConnectedComponentsImage">MagickConnectedComponentsImage</a> &#8226; <a href="magick-image.html#MagickContrastImage">MagickContrastImage</a> &#8226; <a href="magick-image.html#MagickContrastStretchImage">MagickContrastStretchImage</a> &#8226; <a href="magick-image.html#MagickConvolveImage">MagickConvolveImage</a> &#8226; <a href="magick-image.html#MagickCropImage">MagickCropImage</a> &#8226; <a href="magick-image.html#MagickCycleColormapImage">MagickCycleColormapImage</a> &#8226; <a href="magick-image.html#MagickConstituteImage">MagickConstituteImage</a> &#8226; <a href="magick-image.html#MagickDecipherImage">MagickDecipherImage</a> &#8226; <a href="magick-image.html#MagickDeconstructImages">MagickDeconstructImages</a> &#8226; <a href="magick-image.html#MagickDeskewImage">MagickDeskewImage</a> &#8226; <a href="magick-image.html#MagickDespeckleImage">MagickDespeckleImage</a> &#8226; <a href="magick-image.html#MagickDestroyImage">MagickDestroyImage</a> &#8226; <a href="magick-image.html#MagickDisplayImage">MagickDisplayImage</a> &#8226; <a href="magick-image.html#MagickDisplayImages">MagickDisplayImages</a> &#8226; <a href="magick-image.html#MagickDistortImage">MagickDistortImage</a> &#8226; <a href="magick-image.html#MagickDrawImage">MagickDrawImage</a> &#8226; <a href="magick-image.html#MagickEdgeImage">MagickEdgeImage</a> &#8226; <a href="magick-image.html#MagickEmbossImage">MagickEmbossImage</a> &#8226; <a href="magick-image.html#MagickEncipherImage">MagickEncipherImage</a> &#8226; <a href="magick-image.html#MagickEnhanceImage">MagickEnhanceImage</a> &#8226; <a href="magick-image.html#MagickEqualizeImage">MagickEqualizeImage</a> &#8226; <a href="magick-image.html#MagickEvaluateImage">MagickEvaluateImage</a> &#8226; <a href="magick-image.html#MagickExportImagePixels">MagickExportImagePixels</a> &#8226; <a href="magick-image.html#MagickExtentImage">MagickExtentImage</a> &#8226; <a href="magick-image.html#MagickFlipImage">MagickFlipImage</a> &#8226; <a href="magick-image.html#MagickFloodfillPaintImage">MagickFloodfillPaintImage</a> &#8226; <a href="magick-image.html#MagickFlopImage">MagickFlopImage</a> &#8226; <a href="magick-image.html#MagickForwardFourierTransformImage">MagickForwardFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickFrameImage">MagickFrameImage</a> &#8226; <a href="magick-image.html#MagickFunctionImage">MagickFunctionImage</a> &#8226; <a href="magick-image.html#MagickFxImage">MagickFxImage</a> &#8226; <a href="magick-image.html#MagickGammaImage">MagickGammaImage</a> &#8226; <a href="magick-image.html#MagickGaussianBlurImage">MagickGaussianBlurImage</a> &#8226; <a href="magick-image.html#MagickGetImage">MagickGetImage</a> &#8226; <a href="magick-image.html#MagickGetImageAlphaChannel">MagickGetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickGetImageMask">MagickGetImageMask</a> &#8226; <a href="magick-image.html#MagickGetImageBackgroundColor">MagickGetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickGetImageBlob">MagickGetImageBlob</a> &#8226; <a href="magick-image.html#MagickGetImagesBlob">MagickGetImagesBlob</a> &#8226; <a href="magick-image.html#MagickGetImageBluePrimary">MagickGetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickGetImageBorderColor">MagickGetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickGetImageFeatures">MagickGetImageFeatures</a> &#8226; <a href="magick-image.html#MagickGetImageKurtosis">MagickGetImageKurtosis</a> &#8226; <a href="magick-image.html#MagickGetImageMean">MagickGetImageMean</a> &#8226; <a href="magick-image.html#MagickGetImageRange">MagickGetImageRange</a> &#8226; <a href="magick-image.html#MagickGetImageStatistics">MagickGetImageStatistics</a> &#8226; <a href="magick-image.html#MagickGetImageColormapColor">MagickGetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickGetImageColors">MagickGetImageColors</a> &#8226; <a href="magick-image.html#MagickGetImageColorspace">MagickGetImageColorspace</a> &#8226; <a href="magick-image.html#MagickGetImageCompose">MagickGetImageCompose</a> &#8226; <a href="magick-image.html#MagickGetImageCompression">MagickGetImageCompression</a> &#8226; <a href="magick-image.html#MagickGetImageCompressionQuality">MagickGetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickGetImageDelay">MagickGetImageDelay</a> &#8226; <a href="magick-image.html#MagickGetImageDepth">MagickGetImageDepth</a> &#8226; <a href="magick-image.html#MagickGetImageDispose">MagickGetImageDispose</a> &#8226; <a href="magick-image.html#MagickGetImageDistortion">MagickGetImageDistortion</a> &#8226; <a href="magick-image.html#MagickGetImageDistortions">MagickGetImageDistortions</a> &#8226; <a href="magick-image.html#MagickGetImageEndian">MagickGetImageEndian</a> &#8226; <a href="magick-image.html#MagickGetImageFilename">MagickGetImageFilename</a> &#8226; <a href="magick-image.html#MagickGetImageFormat">MagickGetImageFormat</a> &#8226; <a href="magick-image.html#MagickGetImageFuzz">MagickGetImageFuzz</a> &#8226; <a href="magick-image.html#MagickGetImageGamma">MagickGetImageGamma</a> &#8226; <a href="magick-image.html#MagickGetImageGravity">MagickGetImageGravity</a> &#8226; <a href="magick-image.html#MagickGetImageGreenPrimary">MagickGetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageHeight">MagickGetImageHeight</a> &#8226; <a href="magick-image.html#MagickGetImageHistogram">MagickGetImageHistogram</a> &#8226; <a href="magick-image.html#MagickGetImageInterlaceScheme">MagickGetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickGetImageInterpolateMethod">MagickGetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickGetImageIterations">MagickGetImageIterations</a> &#8226; <a href="magick-image.html#MagickGetImageLength">MagickGetImageLength</a> &#8226; <a href="magick-image.html#MagickGetImageMatteColor">MagickGetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickGetImageOrientation">MagickGetImageOrientation</a> &#8226; <a href="magick-image.html#MagickGetImagePage">MagickGetImagePage</a> &#8226; <a href="magick-image.html#MagickGetImagePixelColor">MagickGetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickGetImageRedPrimary">MagickGetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageRegion">MagickGetImageRegion</a> &#8226; <a href="magick-image.html#MagickGetImageRenderingIntent">MagickGetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickGetImageResolution">MagickGetImageResolution</a> &#8226; <a href="magick-image.html#MagickGetImageScene">MagickGetImageScene</a> &#8226; <a href="magick-image.html#MagickGetImageSignature">MagickGetImageSignature</a> &#8226; <a href="magick-image.html#MagickGetImageTicksPerSecond">MagickGetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickGetImageType">MagickGetImageType</a> &#8226; <a href="magick-image.html#MagickGetImageUnits">MagickGetImageUnits</a> &#8226; <a href="magick-image.html#MagickGetImageVirtualPixelMethod">MagickGetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickGetImageWhitePoint">MagickGetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickGetImageWidth">MagickGetImageWidth</a> &#8226; <a href="magick-image.html#MagickGetNumberImages">MagickGetNumberImages</a> &#8226; <a href="magick-image.html#MagickGetImageTotalInkDensity">MagickGetImageTotalInkDensity</a> &#8226; <a href="magick-image.html#MagickHaldClutImage">MagickHaldClutImage</a> &#8226; <a href="magick-image.html#MagickHasNextImage">MagickHasNextImage</a> &#8226; <a href="magick-image.html#MagickHasPreviousImage">MagickHasPreviousImage</a> &#8226; <a href="magick-image.html#Use MagickHoughLineImage">Use MagickHoughLineImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImage">MagickIdentifyImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImageType">MagickIdentifyImageType</a> &#8226; <a href="magick-image.html#MagickImplodeImage">MagickImplodeImage</a> &#8226; <a href="magick-image.html#MagickImportImagePixels">MagickImportImagePixels</a> &#8226; <a href="magick-image.html#MagickInterpolativeResizeImage">MagickInterpolativeResizeImage</a> &#8226; <a href="magick-image.html#MagickInverseFourierTransformImage">MagickInverseFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickKmeansImage">MagickKmeansImage</a> &#8226; <a href="magick-image.html#Use MagickKuwaharaImage">Use MagickKuwaharaImage</a> &#8226; <a href="magick-image.html#MagickLabelImage">MagickLabelImage</a> &#8226; <a href="magick-image.html#MagickLevelImage">MagickLevelImage</a> &#8226; <a href="magick-image.html#MagickLevelImageColors">MagickLevelImageColors</a> &#8226; <a href="magick-image.html#MagickLevelizeImage">MagickLevelizeImage</a> &#8226; <a href="magick-image.html#MagickLinearStretchImage">MagickLinearStretchImage</a> &#8226; <a href="magick-image.html#MagickLiquidRescaleImage">MagickLiquidRescaleImage</a> &#8226; <a href="magick-image.html#MagickLocalContrastImage">MagickLocalContrastImage</a> &#8226; <a href="magick-image.html#MagickMagnifyImage">MagickMagnifyImage</a> &#8226; <a href="magick-image.html#MagickMeanShiftImage">MagickMeanShiftImage</a> &#8226; <a href="magick-image.html#MagickMergeImageLayers">MagickMergeImageLayers</a> &#8226; <a href="magick-image.html#MagickMinifyImage">MagickMinifyImage</a> &#8226; <a href="magick-image.html#MagickModulateImage">MagickModulateImage</a> &#8226; <a href="magick-image.html#MagickMontageImage">MagickMontageImage</a> &#8226; <a href="magick-image.html#MagickMorphImages">MagickMorphImages</a> &#8226; <a href="magick-image.html#MagickMorphologyImage">MagickMorphologyImage</a> &#8226; <a href="magick-image.html#MagickMotionBlurImage">MagickMotionBlurImage</a> &#8226; <a href="magick-image.html#MagickNegateImage">MagickNegateImage</a> &#8226; <a href="magick-image.html#MagickNewImage">MagickNewImage</a> &#8226; <a href="magick-image.html#MagickNextImage">MagickNextImage</a> &#8226; <a href="magick-image.html#MagickNormalizeImage">MagickNormalizeImage</a> &#8226; <a href="magick-image.html#MagickOilPaintImage">MagickOilPaintImage</a> &#8226; <a href="magick-image.html#MagickOpaquePaintImage">MagickOpaquePaintImage</a> &#8226; <a href="magick-image.html#MagickOptimizeImageLayers">MagickOptimizeImageLayers</a> &#8226; <a href="magick-image.html#MagickOptimizeImageTransparency">MagickOptimizeImageTransparency</a> &#8226; <a href="magick-image.html#MagickOrderedDitherImage">MagickOrderedDitherImage</a> &#8226; <a href="magick-image.html#MagickPingImage">MagickPingImage</a> &#8226; <a href="magick-image.html#MagickPingImageBlob">MagickPingImageBlob</a> &#8226; <a href="magick-image.html#MagickPingImageFile">MagickPingImageFile</a> &#8226; <a href="magick-image.html#MagickPolaroidImage">MagickPolaroidImage</a> &#8226; <a href="magick-image.html#MagickPolynomialImage">MagickPolynomialImage</a> &#8226; <a href="magick-image.html#MagickPosterizeImage">MagickPosterizeImage</a> &#8226; <a href="magick-image.html#MagickPreviewImages">MagickPreviewImages</a> &#8226; <a href="magick-image.html#MagickPreviousImage">MagickPreviousImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImage">MagickQuantizeImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImages">MagickQuantizeImages</a> &#8226; <a href="magick-image.html#MagickRangeThresholdImage">MagickRangeThresholdImage</a> &#8226; <a href="magick-image.html#MagickRotationalBlurImage">MagickRotationalBlurImage</a> &#8226; <a href="magick-image.html#MagickRaiseImage">MagickRaiseImage</a> &#8226; <a href="magick-image.html#MagickRandomThresholdImage">MagickRandomThresholdImage</a> &#8226; <a href="magick-image.html#MagickReadImage">MagickReadImage</a> &#8226; <a href="magick-image.html#MagickReadImageBlob">MagickReadImageBlob</a> &#8226; <a href="magick-image.html#MagickReadImageFile">MagickReadImageFile</a> &#8226; <a href="magick-image.html#MagickRemapImage">MagickRemapImage</a> &#8226; <a href="magick-image.html#MagickRemoveImage">MagickRemoveImage</a> &#8226; <a href="magick-image.html#MagickResampleImage">MagickResampleImage</a> &#8226; <a href="magick-image.html#MagickResetImagePage">MagickResetImagePage</a> &#8226; <a href="magick-image.html#MagickResizeImage">MagickResizeImage</a> &#8226; <a href="magick-image.html#MagickRollImage">MagickRollImage</a> &#8226; <a href="magick-image.html#MagickRotateImage">MagickRotateImage</a> &#8226; <a href="magick-image.html#MagickSampleImage">MagickSampleImage</a> &#8226; <a href="magick-image.html#MagickScaleImage">MagickScaleImage</a> &#8226; <a href="magick-image.html#MagickSegmentImage">MagickSegmentImage</a> &#8226; <a href="magick-image.html#MagickSelectiveBlurImage">MagickSelectiveBlurImage</a> &#8226; <a href="magick-image.html#MagickSeparateImage">MagickSeparateImage</a> &#8226; <a href="magick-image.html#MagickSepiaToneImage">MagickSepiaToneImage</a> &#8226; <a href="magick-image.html#MagickSetImage">MagickSetImage</a> &#8226; <a href="magick-image.html#MagickSetImageAlphaChannel">MagickSetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickSetImageBackgroundColor">MagickSetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickSetImageBluePrimary">MagickSetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickSetImageBorderColor">MagickSetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickSetImageChannelMask">MagickSetImageChannelMask</a> &#8226; <a href="magick-image.html#MagickSetImageMask">MagickSetImageMask</a> &#8226; <a href="magick-image.html#MagickSetImageColor">MagickSetImageColor</a> &#8226; <a href="magick-image.html#MagickSetImageColormapColor">MagickSetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickSetImageColorspace">MagickSetImageColorspace</a> &#8226; <a href="magick-image.html#MagickSetImageCompose">MagickSetImageCompose</a> &#8226; <a href="magick-image.html#MagickSetImageCompression">MagickSetImageCompression</a> &#8226; <a href="magick-image.html#MagickSetImageCompressionQuality">MagickSetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickSetImageDelay">MagickSetImageDelay</a> &#8226; <a href="magick-image.html#MagickSetImageDepth">MagickSetImageDepth</a> &#8226; <a href="magick-image.html#MagickSetImageDispose">MagickSetImageDispose</a> &#8226; <a href="magick-image.html#MagickSetImageEndian">MagickSetImageEndian</a> &#8226; <a href="magick-image.html#MagickSetImageExtent">MagickSetImageExtent</a> &#8226; <a href="magick-image.html#MagickSetImageFilename">MagickSetImageFilename</a> &#8226; <a href="magick-image.html#MagickSetImageFormat">MagickSetImageFormat</a> &#8226; <a href="magick-image.html#MagickSetImageFuzz">MagickSetImageFuzz</a> &#8226; <a href="magick-image.html#MagickSetImageGamma">MagickSetImageGamma</a> &#8226; <a href="magick-image.html#MagickSetImageGravity">MagickSetImageGravity</a> &#8226; <a href="magick-image.html#MagickSetImageGreenPrimary">MagickSetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageInterlaceScheme">MagickSetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickSetImageInterpolateMethod">MagickSetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickSetImageIterations">MagickSetImageIterations</a> &#8226; <a href="magick-image.html#MagickSetImageMatte">MagickSetImageMatte</a> &#8226; <a href="magick-image.html#MagickSetImageMatteColor">MagickSetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickSetImageAlpha">MagickSetImageAlpha</a> &#8226; <a href="magick-image.html#MagickSetImageOrientation">MagickSetImageOrientation</a> &#8226; <a href="magick-image.html#MagickSetImagePage">MagickSetImagePage</a> &#8226; <a href="magick-image.html#MagickSetImagePixelColor">MagickSetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickSetImageProgressMonitor">MagickSetImageProgressMonitor</a> &#8226; <a href="magick-image.html#MagickSetImageRedPrimary">MagickSetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageRenderingIntent">MagickSetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickSetImageResolution">MagickSetImageResolution</a> &#8226; <a href="magick-image.html#MagickSetImageScene">MagickSetImageScene</a> &#8226; <a href="magick-image.html#MagickSetImageTicksPerSecond">MagickSetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickSetImageType">MagickSetImageType</a> &#8226; <a href="magick-image.html#MagickSetImageUnits">MagickSetImageUnits</a> &#8226; <a href="magick-image.html#MagickSetImageVirtualPixelMethod">MagickSetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickSetImageWhitePoint">MagickSetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickShadeImage">MagickShadeImage</a> &#8226; <a href="magick-image.html#MagickShadowImage">MagickShadowImage</a> &#8226; <a href="magick-image.html#MagickSharpenImage">MagickSharpenImage</a> &#8226; <a href="magick-image.html#MagickShaveImage">MagickShaveImage</a> &#8226; <a href="magick-image.html#MagickShearImage">MagickShearImage</a> &#8226; <a href="magick-image.html#MagickSigmoidalContrastImage">MagickSigmoidalContrastImage</a> &#8226; <a href="magick-image.html#MagickSimilarityImage">MagickSimilarityImage</a> &#8226; <a href="magick-image.html#MagickSketchImage">MagickSketchImage</a> &#8226; <a href="magick-image.html#MagickSmushImages">MagickSmushImages</a> &#8226; <a href="magick-image.html#MagickSolarizeImage">MagickSolarizeImage</a> &#8226; <a href="magick-image.html#MagickSparseColorImage">MagickSparseColorImage</a> &#8226; <a href="magick-image.html#MagickSpliceImage">MagickSpliceImage</a> &#8226; <a href="magick-image.html#MagickSpreadImage">MagickSpreadImage</a> &#8226; <a href="magick-image.html#MagickStatisticImage">MagickStatisticImage</a> &#8226; <a href="magick-image.html#MagickSteganoImage">MagickSteganoImage</a> &#8226; <a href="magick-image.html#MagickStereoImage">MagickStereoImage</a> &#8226; <a href="magick-image.html#MagickStripImage">MagickStripImage</a> &#8226; <a href="magick-image.html#MagickSwirlImage">MagickSwirlImage</a> &#8226; <a href="magick-image.html#MagickTextureImage">MagickTextureImage</a> &#8226; <a href="magick-image.html#MagickThresholdImage">MagickThresholdImage</a> &#8226; <a href="magick-image.html#MagickThumbnailImage">MagickThumbnailImage</a> &#8226; <a href="magick-image.html#MagickTintImage">MagickTintImage</a> &#8226; <a href="magick-image.html#MagickTransformImageColorspace">MagickTransformImageColorspace</a> &#8226; <a href="magick-image.html#MagickTransparentPaintImage">MagickTransparentPaintImage</a> &#8226; <a href="magick-image.html#MagickTransposeImage">MagickTransposeImage</a> &#8226; <a href="magick-image.html#MagickTransverseImage">MagickTransverseImage</a> &#8226; <a href="magick-image.html#MagickTrimImage">MagickTrimImage</a> &#8226; <a href="magick-image.html#MagickUniqueImageColors">MagickUniqueImageColors</a> &#8226; <a href="magick-image.html#MagickUnsharpMaskImage">MagickUnsharpMaskImage</a> &#8226; <a href="magick-image.html#MagickVignetteImage">MagickVignetteImage</a> &#8226; <a href="magick-image.html#MagickWaveImage">MagickWaveImage</a> &#8226; <a href="magick-image.html#MagickWaveletDenoiseImage">MagickWaveletDenoiseImage</a> &#8226; <a href="magick-image.html#MagickWhiteBalanceImage">MagickWhiteBalanceImage</a> &#8226; <a href="magick-image.html#MagickWhiteThresholdImage">MagickWhiteThresholdImage</a> &#8226; <a href="magick-image.html#MagickWriteImage">MagickWriteImage</a> &#8226; <a href="magick-image.html#MagickWriteImageFile">MagickWriteImageFile</a> &#8226; <a href="magick-image.html#MagickWriteImages">MagickWriteImages</a> &#8226; <a href="magick-image.html#MagickWriteImagesFile">MagickWriteImagesFile</a></p>
<h2><a href="../../api/MagickWand/magick-image_8c.html" id="GetImageFromMagickWand">GetImageFromMagickWand</a></h2>
@@ -521,6 +521,46 @@ MagickBooleanType MagickAutoThresholdImage(MagickWand *wand,
<dd> </dd>
</dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickBilateralBlurImage">MagickBilateralBlurImage</a></h2>
+
+<p>MagickBilateralBlurImage() is a non-linear, edge-preserving, and noise-reducing smoothing filter for images. It replaces the intensity of each pixel with a weighted average of intensity values from nearby pixels. This weight is based on a Gaussian distribution. The weights depend not only on Euclidean distance of pixels, but also on the radiometric differences (e.g., range differences, such as color intensity, depth distance, etc.). This preserves sharp edges.</p>
+
+<p>The format of the MagickBilateralBlurImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickBilateralBlurImage(MagickWand *wand,
+ const double radius,const double sigma,const double intensity_sigma,
+ const double spatial_sigma)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>radius</dt>
+<dd>the radius of the Gaussian, in pixels, not counting the center pixel. </dd>
+
+<dd> </dd>
+<dt>sigma</dt>
+<dd>the standard deviation of the , in pixels. </dd>
+
+<dd> </dd>
+<dt>intensity_sigma</dt>
+<dd>sigma in the intensity space. A larger value means that farther colors within the pixel neighborhood (see spatial_sigma) will be mixed together, resulting in larger areas of semi-equal color. </dd>
+
+<dd> </dd>
+<dt>spatial_sigma</dt>
+<dd>sigma in the coordinate space. A larger value means that farther pixels influence each other as long as their colors are close enough (see intensity_sigma ). When the neigborhood diameter is greater than zero, it specifies the neighborhood size regardless of spatial_sigma. Otherwise, the neigborhood diameter is proportional to spatial_sigma. </dd>
+
+<dd> </dd>
+</dl>
<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickBlackThresholdImage">MagickBlackThresholdImage</a></h2>
<p>MagickBlackThresholdImage() is like MagickThresholdImage() but forces all pixels below the threshold into black while leaving all pixels above the threshold unchanged.</p>
@@ -598,7 +638,7 @@ MagickBooleanType MagickBlurImage(MagickWand *wand,const double radius,
<dd> </dd>
<dt>radius</dt>
-<dd>the radius of the , in pixels, not counting the center pixel. </dd>
+<dd>the radius of the Gaussian, in pixels, not counting the center pixel. </dd>
<dd> </dd>
<dt>sigma</dt>
@@ -4052,7 +4092,7 @@ MagickBooleanType MagickImplodeImage(MagickWand *wand,
</dl>
<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickImportImagePixels">MagickImportImagePixels</a></h2>
-<p>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.</p>
+<p>MagickImportImagePixels() accepts pixel datand stores it in the image at the location you specify. The method returns MagickTrue on success otherwise MagickFalse 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.</p>
<p>Suppose your want to upload the first scanline of a 640x480 image from character data in red-green-blue order:</p>
@@ -8412,7 +8452,7 @@ MagickBooleanType MagickWriteImagesFile(MagickWand *wand,FILE *file)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/magick-property.html b/www/api/magick-property.html
index 5d689e3d3..d824e984e 100644
--- a/www/api/magick-property.html
+++ b/www/api/magick-property.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API: Property Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -1383,7 +1383,7 @@ MagickBooleanType MagickSetGravity(MagickWand *wand,
</dl>
<h2><a href="../../api/MagickWand/magick-property_8c.html" id="MagickSetImageArtifact">MagickSetImageArtifact</a></h2>
-<p>MagickSetImageArtifact() associates a artifact with an image.</p>
+<p>MagickSetImageArtifact() sets a key-value pair in the image artifact namespace. Artifacts differ from properties. Properties are public and are generally exported to an external image format if the format supports it. Artifacts are private and are utilized by the internal ImageMagick API to modify the behavior of certain algorithms.</p>
<p>The format of the MagickSetImageArtifact method is:</p>
@@ -1974,7 +1974,7 @@ MagickBooleanType MagickSetType(MagickWand *wand,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/magick-wand.html b/www/api/magick-wand.html
index 30be53f99..8d348b307 100644
--- a/www/api/magick-wand.html
+++ b/www/api/magick-wand.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API: Wand Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -697,7 +697,7 @@ MagickBooleanType IsMagickWandInstantiated(void)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/magick.html b/www/api/magick.html
index 15c681d69..cfb493cc2 100644
--- a/www/api/magick.html
+++ b/www/api/magick.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Read or List Image formats</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -227,7 +227,7 @@ int SetMagickPrecision(const int precision)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/memory.html b/www/api/memory.html
index 804b4a245..1c8bf6709 100644
--- a/www/api/memory.html
+++ b/www/api/memory.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Memory Allocation</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -533,7 +533,7 @@ SetMagickMemoryMethods(AcquireMemoryHandler acquire_memory_handler,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/mime.html b/www/api/mime.html
index 0995f8eae..f6462cd7d 100644
--- a/www/api/mime.html
+++ b/www/api/mime.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Mime Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -264,7 +264,7 @@ MagickBooleanType ListMimeInfo(FILE *file,ExceptionInfo *exception)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/module.html b/www/api/module.html
index 337a67a56..d8c60efc0 100644
--- a/www/api/module.html
+++ b/www/api/module.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Loadable Modules</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -531,7 +531,7 @@ MagickBooleanType UnregisterModule(const ModuleInfo *module_info,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/mogrify.html b/www/api/mogrify.html
index e6d7dfa06..2f43c722a 100644
--- a/www/api/mogrify.html
+++ b/www/api/mogrify.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API: Command-line Interface</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -159,7 +159,7 @@ MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/monitor.html b/www/api/monitor.html
index 5e6ffd563..3d4d60e0e 100644
--- a/www/api/monitor.html
+++ b/www/api/monitor.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Monitor the Progress of an Image Operation</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -226,7 +226,7 @@ MagickProgressMonitor SetImageInfoProgressMonitor(ImageInfo *image_info,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/montage.html b/www/api/montage.html
index 43c1170cf..af78ddefa 100644
--- a/www/api/montage.html
+++ b/www/api/montage.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Create an Image Thumbnail</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -113,7 +113,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/morphology.html b/www/api/morphology.html
index e4e61c0f2..2970a168d 100644
--- a/www/api/morphology.html
+++ b/www/api/morphology.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Morphological Erosions, Dilations, Openings, and Closings</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -648,7 +648,7 @@ void ZeroKernelNans (KernelInfo *kernel)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/paint.html b/www/api/paint.html
index 77e70af13..f6256984f 100644
--- a/www/api/paint.html
+++ b/www/api/paint.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Paint on an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -325,7 +325,7 @@ MagickBooleanType TransparentPaintImageChroma(Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/pixel-iterator.html b/www/api/pixel-iterator.html
index 3764c4c8f..a142bfbf0 100644
--- a/www/api/pixel-iterator.html
+++ b/www/api/pixel-iterator.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API: Pixel Iterator Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -536,7 +536,7 @@ MagickBooleanType PixelSyncIterator(PixelIterator *iterator)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/pixel-wand.html b/www/api/pixel-wand.html
index 48ca77b34..5b310b449 100644
--- a/www/api/pixel-wand.html
+++ b/www/api/pixel-wand.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API: Pixel Wand Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -1605,7 +1605,7 @@ void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/profile.html b/www/api/profile.html
index f78a855ae..d5ca4d6ea 100644
--- a/www/api/profile.html
+++ b/www/api/profile.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Dealing with Image Profiles</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -378,7 +378,7 @@ MagickBooleanType SyncImageProfiles(Image *image)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/property.html b/www/api/property.html
index b2fc6b553..44541f7cc 100644
--- a/www/api/property.html
+++ b/www/api/property.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Get/Set Image Properties</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -430,7 +430,7 @@ MagickBooleanType SetImageProperty(Image *image,const char *property,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/quantize.html b/www/api/quantize.html
index a10750fe5..735e875c8 100644
--- a/www/api/quantize.html
+++ b/www/api/quantize.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Reduce the Number of Unique Colors in an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -557,7 +557,7 @@ MagickBooleanType SetGrayscaleImage(Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/registry.html b/www/api/registry.html
index 66398c890..4bb548a10 100644
--- a/www/api/registry.html
+++ b/www/api/registry.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: The Image Registry</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -284,7 +284,7 @@ MagickBooleanType SetImageRegistry(const RegistryType type,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/resize.html b/www/api/resize.html
index 3ee56ce6a..e1bc3ebf9 100644
--- a/www/api/resize.html
+++ b/www/api/resize.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Resize an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -474,7 +474,7 @@ Image *ThumbnailImage(const Image *image,const size_t columns,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/resource.html b/www/api/resource.html
index 63102497f..76cb3f5c4 100644
--- a/www/api/resource.html
+++ b/www/api/resource.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Monitor or Limit Resource Consumption</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -301,7 +301,7 @@ MagickBooleanType SetMagickResourceLimit(const ResourceType type,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/segment.html b/www/api/segment.html
index ccac5efe8..97fea7894 100644
--- a/www/api/segment.html
+++ b/www/api/segment.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Segment an Image with Thresholding Fuzzy c-Means</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -146,7 +146,7 @@ MagickBooleanType SegmentImage(Image *image,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/shear.html b/www/api/shear.html
index f0339a48c..520538a7b 100644
--- a/www/api/shear.html
+++ b/www/api/shear.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Shear or Rotate an Image by an Arbitrary Angle</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -217,7 +217,7 @@ Image *ShearRotateImage(const Image *image,const double degrees,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/signature.html b/www/api/signature.html
index b439b7751..46aa28c80 100644
--- a/www/api/signature.html
+++ b/www/api/signature.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Compute a Message Digest for an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -139,7 +139,7 @@ MagickBooleanType SignatureImage(Image *image,ExceptionInfo *exception)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/statistic.html b/www/api/statistic.html
index 096603b7b..b0473c95f 100644
--- a/www/api/statistic.html
+++ b/www/api/statistic.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Image Statistics</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -552,7 +552,7 @@ Image *StatisticImage(const Image *image,const StatisticType type,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/stream.html b/www/api/stream.html
index b8bd782b7..7a63cb8ac 100644
--- a/www/api/stream.html
+++ b/www/api/stream.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: The Pixel FIFO</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -152,7 +152,7 @@ MagickBooleanType StreamImageCommand(ImageInfo *image_info,int argc,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/transform.html b/www/api/transform.html
index 63ab7744d..cbdf39742 100644
--- a/www/api/transform.html
+++ b/www/api/transform.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Transform an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -568,7 +568,7 @@ Image *TrimImage(const Image *image,ExceptionInfo *exception)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/version.html b/www/api/version.html
index efe196d6c..abf62f8db 100644
--- a/www/api/version.html
+++ b/www/api/version.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, C API: Get the Version and Copyrights</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -301,7 +301,7 @@ void ListMagickVersion(FILE *file)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/api/wand-view.html b/www/api/wand-view.html
index 63f8bb3cb..0ebe44385 100644
--- a/www/api/wand-view.html
+++ b/www/api/wand-view.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API: Wand View Methods</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -592,7 +592,7 @@ MagickBooleanType UpdateWandViewIterator(WandView *source,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/architecture.html b/www/architecture.html
index 63bd548a6..9f066725c 100644
--- a/www/architecture.html
+++ b/www/architecture.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Architecture</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -122,7 +122,7 @@
<li>pixels from two different images (e.g. pixel at 5,1 from image 1 and pixel at 5,1 from image 2)</li>
<li>pixels outside the boundaries of the image (e.g. pixel at -1,-3)</li>
<li>a pixel component that is unsigned (65311) or in a floating-point representation (e.g. 0.17836)</li>
- <li>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)</li>
+ <li>a high-dynamic range pixel that can include negative values (e.g. -0.0072973525628) as well as values that exceed the quantum depth (e.g. 65931)</li>
<li>one or more pixels simultaneously in different threads of execution</li>
<li>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</li>
<li>traits associated with each channel to specify whether the pixel channel is copied, updated, or blended</li>
@@ -170,7 +170,7 @@ if (image == (Image *) NULL)
<p>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 <a class="text-nowrap" href="command-line-options.html#version">-version</a> option: </p>
-<pre><span class="crtprompt">$ </span><span class='crtin'>identify -version</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>Version: ImageMagick 7.0.10-39 2020-11-14 Q16 https://imagemagick.org</span></pre>
+<pre><span class="crtprompt">$ </span><span class='crtin'>identify -version</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>Version: ImageMagick 7.0.10-53 2020-12-16 Q16 https://imagemagick.org</span></pre>
<p>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.</p>
<h3><a class="anchor" id="authentic-pixels"></a>Access the Pixel Cache</h3>
@@ -702,7 +702,7 @@ Performance[12]: 10i 4.525ips 0.799e 18.320u 0:02.210
<p>ImageMagick includes support for heterogeneous distributed processing with the <a href="http://en.wikipedia.org/wiki/OpenCL">OpenCL</a> 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.</p>
<p>First verify that your version of ImageMagick includes support for the OpenCL feature:</p>
-<pre class="highlight"><code>identify -version
+<pre class="highlight"><code>magick identify -version
Features: DPC Cipher Modules OpenCL OpenMP(4.5)
</code></pre>
@@ -1499,7 +1499,7 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -1507,4 +1507,4 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:38 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:21 --> \ No newline at end of file
diff --git a/www/changelog.html b/www/changelog.html
index 81723e825..901f57c6b 100644
--- a/www/changelog.html
+++ b/www/changelog.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Changelog</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -89,11 +89,75 @@
<main role="main" class="container">
<div class="magick-template">
-<div class="magick-header"><dl><dt>2020-11-17 7.0.10-39 &lt;quetzlzacatenango@image...&gt;</dt>
+<div class="magick-header"><dl><dt>2020-12-24 7.0.10-53 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-53 GIT revision 18083:3b141f557:20201224</li>
+<dt>2020-12-20 7.0.10-53 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> CSS colors no longer require commas.</li>
+ <li> eliminate possible arthimetic overflow (reference https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28849)</li>
+ <li> support display-p3, Adobe-98, and Pro-photo colorspaces</li>
+ <li> read/write 1024 colors Sixel images (reference https://github.com/ImageMagick/ImageMagick/discussions/3018).</li>
+<dt>2020-12-19 7.0.10-52 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-52 GIT revision 18057:1f5bab30b:20201219</li>
+<dt>2020-12-19 7.0.10-52 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> return alpha bytes with stream utility (reference https://github.com/ImageMagick/ImageMagick/discussions/2862).</li>
+ <li> percentage -border in x no longer adds one pixel border in y (reference https://github.com/ImageMagick/ImageMagick/issues/2978).</li>
+<dt>2020-12-18 7.0.10-51 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-51 GIT revision 18052:475508769:20201218</li>
+<dt>2020-12-17 7.0.10-51 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> reduce time to identify PDF/PS/XPS/PCL image width/height (reference https://github.com/ImageMagick/ImageMagick/discussions/2993).</li>
+<dt>2020-12-16 7.0.10-50 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-50 GIT revision 18046:83c162886:20201216</li>
+<dt>2020-12-15 7.0.10-50 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> revert patch to ready gray alpha TIFF image.</li>
+<dt>2020-12-14 7.0.10-49 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-49 GIT revision 18040:7976abf6e:20201214</li>
+<dt>2020-12-13 7.0.10-49 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> correct previous patch to read planar RGB TIFF images.</li>
+<dt>2020-12-10 7.0.10-48 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-48 GIT revision 18026:4646e5fd1:20201210</li>
+<dt>2020-12-09 7.0.10-48 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Repair unit test failures (reference https://github.com/ImageMagick/ImageMagick/issues/2959).</li>
+<dt>2020-12-09 7.0.10-47 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-47 GIT revision 18020:6f1ee6104:20201209</li>
+<dt>2020-12-06 7.0.10-47 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> support YAML image format.</li>
+ <li> use generic TIFF read method for LZW-compressed strips (reference https://github.com/ImageMagick/ImageMagick/discussions/2935).</li>
+<dt>2020-12-05 7.0.10-46 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-46 GIT revision 18001:7c75b33a1:20201205</li>
+<dt>2020-11-30 7.0.10-46 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> possible TIFF related-heap buffer overflow (alert &amp; POC by Hardik Shah).</li>
+ <li> set default system font in policy.xml configuration file.</li>
+ <li> support portable float map format 16-bit half.</li>
+<dt>2020-11-30 7.0.10-45 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-45 GIT revision 17972:6c0cb7f72:20201130</li>
+<dt>2020-11-30 7.0.10-45 Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
+ <li> added support for the farbfeld format (reference https://github.com/ImageMagick/ImageMagick/discussions/2664).</li>
+<dt>2020-11-29 7.0.10-45 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> specify the bilateral neighbor as width/height rather than radius/sigma.</li>
+<dt>2020-11-28 7.0.10-44 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-44 GIT revision 17948:7e96e9fdd:20201128</li>
+<dt>2020-11-26 7.0.10-44 Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
+ <li> correct reading of first row in TIFF decoder.</li>
+<dt>2020-11-24 7.0.10-44 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> correct rotation parameter for SVG transform.</li>
+<dt>2020-11-23 7.0.10-43 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-43 GIT revision 17885:be852878e:20201123</li>
+<dt>2020-11-23 7.0.10-43 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> add padding to AcquirePolicyString().</li>
+<dt>2020-11-22 7.0.10-42 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-42 GIT revision 17881:d228ef95e:20201122</li>
+<dt>2020-11-21 7.0.10-42 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> revert memory patch to avert possible thread lock.</li>
+ <li> add support for FilmLight FL32 image format.</li>
+<dt>2020-11-20 7.0.10-40 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> Release ImageMagick version 7.0.10-40 GIT revision 17860:2594cd0a5:20201120 </li>
+<dt>2020-11-19 7.0.10-40 &lt;quetzlzacatenango@image...&gt;</dt>
+ <li> remove Linux shell artifact from Windows delegate configuration file.</li>
+ <li> fix shell injection vulnerability via the -authenticate option (reference alex@cure...).</li>
+<dt>2020-11-17 7.0.10-39 &lt;quetzlzacatenango@image...&gt;</dt>
<li> Release ImageMagick version 7.0.10-39 GIT revision 17837:ffb8da39c:20201117</li>
<dt>2020-11-07 7.0.10-39 &lt;quetzlzacatenango@image...&gt;</dt>
<li> support DPX 4:2:2 sampling.</li>
- <li> fix shell injection vulnerability via the -authenticate option (reference alex@cure...).</li>
<dt>2020-11-14 7.0.10-38 &lt;quetzlzacatenango@image...&gt;</dt>
<li> Release ImageMagick version 7.0.10-38 GIT revision 17815:bf51a3f1f:20201114</li>
<dt>2020-11-07 7.0.10-38 &lt;quetzlzacatenango@image...&gt;</dt>
@@ -1428,7 +1492,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -1436,4 +1500,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:34 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:10 --> \ No newline at end of file
diff --git a/www/cipher.html b/www/cipher.html
index 3c723a068..9472b75b4 100644
--- a/www/cipher.html
+++ b/www/cipher.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Encipher or Decipher an Image</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -172,7 +172,7 @@ Examples <a href="https://legacy.imagemagick.org/Usage/transform/#encipher"
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -180,4 +180,4 @@ Examples <a href="https://legacy.imagemagick.org/Usage/transform/#encipher"
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:40 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:27 --> \ No newline at end of file
diff --git a/www/cite.html b/www/cite.html
index 154c4920c..d347f4e54 100644
--- a/www/cite.html
+++ b/www/cite.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - How to Cite</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -94,13 +94,13 @@
<p class="lead magick-description">Learn how to cite ImageMagick in your work. Choose from these citation formats:</p>
<h5>Citation in APA style</h5>
-<p class="highlight">The ImageMagick Development Team. (2020). ImageMagick. Retrieved from https://imagemagick.org</p>
+<p class="highlight">The ImageMagick Development Team. (2021). ImageMagick. Retrieved from https://imagemagick.org</p>
<h5>Citation in Vancouver style</h5>
-<p class="highlight">1. The ImageMagick Development Team. ImageMagick [Internet]. 2020. Available from: https://imagemagick.org</p>
+<p class="highlight">1. The ImageMagick Development Team. ImageMagick [Internet]. 2021. Available from: https://imagemagick.org</p>
<h5>Citation in Harvard style</h5>
-<p class="highlight">The ImageMagick Development Team, 2020. ImageMagick, Available at: https://imagemagick.org.</p>
+<p class="highlight">The ImageMagick Development Team, 2021. ImageMagick, Available at: https://imagemagick.org.</p>
<h5>Citation in Bibtex format</h5>
<div class="highlight">
@software{imagemagick,
@@ -108,7 +108,7 @@
<br> title = {ImageMagick},
<br> url = {https://imagemagick.org},
<br> version = {7.0.10},
-<br> date = {2020-06-12},
+<br> date = {2021-01-04},
<br>}
</div>
</div>
@@ -131,7 +131,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -139,4 +139,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 20:42 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:04 --> \ No newline at end of file
diff --git a/www/clahe.html b/www/clahe.html
index 404ff6b68..fb76a14f5 100644
--- a/www/clahe.html
+++ b/www/clahe.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Contrast Limited Adaptive Histogram Equalization</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -142,7 +142,7 @@ magick mountains.jpg -virtual-pixel mirror -clahe 300x300+128+3! mountains-clahe
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -150,4 +150,4 @@ magick mountains.jpg -virtual-pixel mirror -clahe 300x300+128+3! mountains-clahe
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 20:38 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/color-management.html b/www/color-management.html
index cb86ad852..94ea48fd7 100644
--- a/www/color-management.html
+++ b/www/color-management.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Color Management</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -168,7 +168,7 @@ magick myimage_channels_*.png -set colorspace HSL -combine -colorspace RGB -set
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -176,4 +176,4 @@ magick myimage_channels_*.png -set colorspace HSL -combine -colorspace RGB -set
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:59 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:43 --> \ No newline at end of file
diff --git a/www/color-thresholding.html b/www/color-thresholding.html
index d91643800..72059f286 100644
--- a/www/color-thresholding.html
+++ b/www/color-thresholding.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Color Thresholding</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -179,7 +179,7 @@ magick xc:"sRGB(205,100,45)" -colorspace gray txt:
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -187,4 +187,4 @@ magick xc:"sRGB(205,100,45)" -colorspace gray txt:
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:41 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/color.html b/www/color.html
index 63bfed5f2..1f014e70e 100644
--- a/www/color.html
+++ b/www/color.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Color Names</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -122,7 +122,7 @@ rgb(100.0%, 0.0%, 0.0%) a float in the range 0—100% for each component</code
<p>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., <code>#000000</code>, but it does if <code>black</code> is used instead.</p>
-<p>The format of an sRGB value in the functional notation is 'rgb(<var>r</var>,<var>g</var>,<var>b</var>)', where <var>r</var>, <var>g</var>, and <var>b</var> 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. </p>
+<p>The format of an sRGB value in the functional notation is 'rgb(<var>r</var>,<var>g</var>,<var>b</var>)', where <var>r</var>, <var>g</var>, and <var>b</var> 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. Note, as of ImageMagick 7.0.10-53, the commas are no longer necessary and the slash can proceed the alpha value, e.g. <code>rgb(255 128 0 / 50%)</code>.</p>
<p>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).</p>
@@ -163,7 +163,7 @@ graya(50%, 0.5) semi-transparent mid gray</code></pre>
<p>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%</p>
-<pre class="highlight"><code>hsb(0, 100%, 100%) or hsb(0, 255, 255) full red
+<pre class="highlight"><code>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
@@ -172,7 +172,7 @@ hsb(120, 50%, 50%) or hsb(120, 127.5, 127.5) pastel green</code></p
<p>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%</p>
-<pre class="highlight"><code>hsl(0, 100%, 50%) or hsl(0, 255, 127.5) full red
+<pre class="highlight"><code>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
@@ -220,6 +220,8 @@ icc-color(gray, 0.5) non-linear gray
device-rgb(0.5, 1.0, 0.0)
device-cmyk(0.11, 0.48, 0.83, 0.00)</code></pre>
+<p>ImageMagick also supports wide-gamut color such as <code>Lab</code>, <code>LCH</code>, and <code>Display-P3</code>.</p>
+
<h2><a class="anchor" id="color_names"></a>List of Color Names</h2>
<p>The table below provides a list of named colors recognized by ImageMagick:</p>
@@ -4975,7 +4977,7 @@ device-cmyk(0.11, 0.48, 0.83, 0.00)</code></pre>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -4983,4 +4985,4 @@ device-cmyk(0.11, 0.48, 0.83, 0.00)</code></pre>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:05 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/command-line-options.html b/www/command-line-options.html
index a8cc9280f..e7e405976 100644
--- a/www/command-line-options.html
+++ b/www/command-line-options.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Options</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -91,7 +91,7 @@
<div class="magick-template">
<div class="magick-header">
<h1 class="text-center">Annotated List of Command-line Options</h1>
-<p class="text-center"><a class="text-nowrap" href="command-line-options.html#adaptive-blur">-adaptive-blur</a> • <a class="text-nowrap" href="command-line-options.html#adaptive-resize">-adaptive-resize</a> • <a class="text-nowrap" href="command-line-options.html#adaptive-sharpen">-adaptive-sharpen</a> • <a class="text-nowrap" href="command-line-options.html#adjoin">-adjoin</a> • <a class="text-nowrap" href="command-line-options.html#affine">-affine</a> • <a class="text-nowrap" href="command-line-options.html#alpha">-alpha</a> • <a class="text-nowrap" href="command-line-options.html#annotate">-annotate</a> • <a class="text-nowrap" href="command-line-options.html#antialias">-antialias</a> • <a class="text-nowrap" href="command-line-options.html#append">-append</a> • <a class="text-nowrap" href="command-line-options.html#attenuate">-attenuate</a> • <a class="text-nowrap" href="command-line-options.html#authenticate">-authenticate</a> • <a class="text-nowrap" href="command-line-options.html#auto-gamma">-auto-gamma</a> • <a class="text-nowrap" href="command-line-options.html#auto-level">-auto-level</a> • <a class="text-nowrap" href="command-line-options.html#auto-orient">-auto-orient</a> • <a class="text-nowrap" href="command-line-options.html#auto-threshold">-auto-threshold</a> • <a class="text-nowrap" href="command-line-options.html#backdrop">-backdrop</a> • <a class="text-nowrap" href="command-line-options.html#background">-background</a> • <a class="text-nowrap" href="command-line-options.html#bench">-bench</a> • <a class="text-nowrap" href="command-line-options.html#bias">-bias</a> • <a class="text-nowrap" href="command-line-options.html#black-point-compensation">-black-point-compensation</a> • <a class="text-nowrap" href="command-line-options.html#black-threshold">-black-threshold</a> • <a class="text-nowrap" href="command-line-options.html#blend">-blend</a> • <a class="text-nowrap" href="command-line-options.html#blue-primary">-blue-primary</a> • <a class="text-nowrap" href="command-line-options.html#blue-shift">-blue-shift</a> • <a class="text-nowrap" href="command-line-options.html#blur">-blur</a> • <a class="text-nowrap" href="command-line-options.html#border">-border</a> • <a class="text-nowrap" href="command-line-options.html#bordercolor">-bordercolor</a> • <a class="text-nowrap" href="command-line-options.html#borderwidth">-borderwidth</a> • <a class="text-nowrap" href="command-line-options.html#brightness-contrast">-brightness-contrast</a> • <a class="text-nowrap" href="command-line-options.html#cache">-cache</a> • <a class="text-nowrap" href="command-line-options.html#canny">-canny</a> • <a class="text-nowrap" href="command-line-options.html#caption">-caption</a> • <a class="text-nowrap" href="command-line-options.html#cdl">-cdl</a> • <a class="text-nowrap" href="command-line-options.html#channel">-channel</a> • <a class="text-nowrap" href="command-line-options.html#charcoal">-charcoal</a> • <a class="text-nowrap" href="command-line-options.html#channel-fx">-channel-fx</a> • <a class="text-nowrap" href="command-line-options.html#chop">-chop</a> • <a class="text-nowrap" href="command-line-options.html#clahe">-clahe</a> • <a class="text-nowrap" href="command-line-options.html#clamp">-clamp</a> • <a class="text-nowrap" href="command-line-options.html#clip">-clip</a> • <a class="text-nowrap" href="command-line-options.html#clip-mask">-clip-mask</a> • <a class="text-nowrap" href="command-line-options.html#clip-path">-clip-path</a> • <a class="text-nowrap" href="command-line-options.html#clone">-clone</a> • <a class="text-nowrap" href="command-line-options.html#clut">-clut</a> • <a class="text-nowrap" href="command-line-options.html#coalesce">-coalesce</a> • <a class="text-nowrap" href="command-line-options.html#colorize">-colorize</a> • <a class="text-nowrap" href="command-line-options.html#colormap">-colormap</a> • <a class="text-nowrap" href="command-line-options.html#color-matrix">-color-matrix</a> • <a class="text-nowrap" href="command-line-options.html#colors">-colors</a> • <a class="text-nowrap" href="command-line-options.html#colorspace">-colorspace</a> • <a class="text-nowrap" href="command-line-options.html#color-threshold">-color-threshold</a> • <a class="text-nowrap" href="command-line-options.html#combine">-combine</a> • <a class="text-nowrap" href="command-line-options.html#comment">-comment</a> • <a class="text-nowrap" href="command-line-options.html#compare">-compare</a> • <a class="text-nowrap" href="command-line-options.html#complex">-complex</a> • <a class="text-nowrap" href="command-line-options.html#compose">-compose</a> • <a class="text-nowrap" href="command-line-options.html#composite">-composite</a> • <a class="text-nowrap" href="command-line-options.html#compress">-compress</a> • <a class="text-nowrap" href="command-line-options.html#connected-components">-connected-components</a> • <a class="text-nowrap" href="command-line-options.html#contrast">-contrast</a> • <a class="text-nowrap" href="command-line-options.html#contrast-stretch">-contrast-stretch</a> • <a class="text-nowrap" href="command-line-options.html#convolve">-convolve</a> • <a class="text-nowrap" href="command-line-options.html#copy">-copy</a> • <a class="text-nowrap" href="command-line-options.html#crop">-crop</a> • <a class="text-nowrap" href="command-line-options.html#cycle">-cycle</a> • <a class="text-nowrap" href="command-line-options.html#debug">-debug</a> • <a class="text-nowrap" href="command-line-options.html#decipher">-decipher</a> • <a class="text-nowrap" href="command-line-options.html#deconstruct">-deconstruct</a> • <a class="text-nowrap" href="command-line-options.html#define">-define</a> • <a class="text-nowrap" href="command-line-options.html#delay">-delay</a> • <a class="text-nowrap" href="command-line-options.html#delete">-delete</a> • <a class="text-nowrap" href="command-line-options.html#density">-density</a> • <a class="text-nowrap" href="command-line-options.html#depth">-depth</a> • <a class="text-nowrap" href="command-line-options.html#descend">-descend</a> • <a class="text-nowrap" href="command-line-options.html#deskew">-deskew</a> • <a class="text-nowrap" href="command-line-options.html#despeckle">-despeckle</a> • <a class="text-nowrap" href="command-line-options.html#direction">-direction</a> • <a class="text-nowrap" href="command-line-options.html#displace">-displace</a> • <a class="text-nowrap" href="command-line-options.html#display">-display</a> • <a class="text-nowrap" href="command-line-options.html#dispose">-dispose</a> • <a class="text-nowrap" href="command-line-options.html#dissimilarity-threshold">-dissimilarity-threshold</a> • <a class="text-nowrap" href="command-line-options.html#dissolve">-dissolve</a> • <a class="text-nowrap" href="command-line-options.html#distort">-distort</a> • <a class="text-nowrap" href="command-line-options.html#distribute-cache">-distribute-cache</a> • <a class="text-nowrap" href="command-line-options.html#dither">-dither</a> • <a class="text-nowrap" href="command-line-options.html#draw">-draw</a> • <a class="text-nowrap" href="command-line-options.html#duplicate">-duplicate</a> • <a class="text-nowrap" href="command-line-options.html#edge">-edge</a> • <a class="text-nowrap" href="command-line-options.html#emboss">-emboss</a> • <a class="text-nowrap" href="command-line-options.html#encipher">-encipher</a> • <a class="text-nowrap" href="command-line-options.html#encoding">-encoding</a> • <a class="text-nowrap" href="command-line-options.html#endian">-endian</a> • <a class="text-nowrap" href="command-line-options.html#enhance">-enhance</a> • <a class="text-nowrap" href="command-line-options.html#equalize">-equalize</a> • <a class="text-nowrap" href="command-line-options.html#evaluate">-evaluate</a> • <a class="text-nowrap" href="command-line-options.html#evaluate-sequence">-evaluate-sequence</a> • <a class="text-nowrap" href="command-line-options.html#extent">-extent</a> • <a class="text-nowrap" href="command-line-options.html#extract">-extract</a> • <a class="text-nowrap" href="command-line-options.html#family">-family</a> • <a class="text-nowrap" href="command-line-options.html#features">-features</a> • <a class="text-nowrap" href="command-line-options.html#fft">-fft</a> • <a class="text-nowrap" href="command-line-options.html#fill">-fill</a> • <a class="text-nowrap" href="command-line-options.html#filter">-filter</a> • <a class="text-nowrap" href="command-line-options.html#flatten">-flatten</a> • <a class="text-nowrap" href="command-line-options.html#flip">-flip</a> • <a class="text-nowrap" href="command-line-options.html#floodfill">-floodfill</a> • <a class="text-nowrap" href="command-line-options.html#flop">-flop</a> • <a class="text-nowrap" href="command-line-options.html#font">-font</a> • <a class="text-nowrap" href="command-line-options.html#foreground">-foreground</a> • <a class="text-nowrap" href="command-line-options.html#format">-format</a> • <a class="text-nowrap" href="command-line-options.html#format_identify_">-format[identify]</a> • <a class="text-nowrap" href="command-line-options.html#frame">-frame</a> • <a class="text-nowrap" href="command-line-options.html#frame_import_">-frame[import]</a> • <a class="text-nowrap" href="command-line-options.html#function">-function</a> • <a class="text-nowrap" href="command-line-options.html#fuzz">-fuzz</a> • <a class="text-nowrap" href="command-line-options.html#fx">-fx</a> • <a class="text-nowrap" href="command-line-options.html#gamma">-gamma</a> • <a class="text-nowrap" href="command-line-options.html#gaussian-blur">-gaussian-blur</a> • <a class="text-nowrap" href="command-line-options.html#geometry">-geometry</a> • <a class="text-nowrap" href="command-line-options.html#gravity">-gravity</a> • <a class="text-nowrap" href="command-line-options.html#grayscale">-grayscale</a> • <a class="text-nowrap" href="command-line-options.html#green-primary">-green-primary</a> • <a class="text-nowrap" href="command-line-options.html#hald-clut">-hald-clut</a> • <a class="text-nowrap" href="command-line-options.html#help">-help</a> • <a class="text-nowrap" href="command-line-options.html#highlight-color">-highlight-color</a> • <a class="text-nowrap" href="command-line-options.html#hough-lines">-hough-lines</a> • <a class="text-nowrap" href="command-line-options.html#iconGeometry">-iconGeometry</a> • <a class="text-nowrap" href="command-line-options.html#iconic">-iconic</a> • <a class="text-nowrap" href="command-line-options.html#identify">-identify</a> • <a class="text-nowrap" href="command-line-options.html#ift">-ift</a> • <a class="text-nowrap" href="command-line-options.html#immutable">-immutable</a> • <a class="text-nowrap" href="command-line-options.html#implode">-implode</a> • <a class="text-nowrap" href="command-line-options.html#insert">-insert</a> • <a class="text-nowrap" href="command-line-options.html#intensity">-intensity</a> • <a class="text-nowrap" href="command-line-options.html#intent">-intent</a> • <a class="text-nowrap" href="command-line-options.html#interlace">-interlace</a> • <a class="text-nowrap" href="command-line-options.html#interpolate">-interpolate</a> • <a class="text-nowrap" href="command-line-options.html#interline-spacing">-interline-spacing</a> • <a class="text-nowrap" href="command-line-options.html#interword-spacing">-interword-spacing</a> • <a class="text-nowrap" href="command-line-options.html#kerning">-kerning</a> • <a class="text-nowrap" href="command-line-options.html#kmeans">-kmeans</a> • <a class="text-nowrap" href="command-line-options.html#kuwahara">-kuwahara</a> • <a class="text-nowrap" href="command-line-options.html#label">-label</a> • <a class="text-nowrap" href="command-line-options.html#lat">-lat</a> • <a class="text-nowrap" href="command-line-options.html#layers">-layers</a> • <a class="text-nowrap" href="command-line-options.html#level">-level</a> • <a class="text-nowrap" href="command-line-options.html#level-colors">-level-colors</a> • <a class="text-nowrap" href="command-line-options.html#limit">-limit</a> • <a class="text-nowrap" href="command-line-options.html#linear-stretch">-linear-stretch</a> • <a class="text-nowrap" href="command-line-options.html#linewidth">-linewidth</a> • <a class="text-nowrap" href="command-line-options.html#liquid-rescale">-liquid-rescale</a> • <a class="text-nowrap" href="command-line-options.html#list">-list</a> • <a class="text-nowrap" href="command-line-options.html#log">-log</a> • <a class="text-nowrap" href="command-line-options.html#loop">-loop</a> • <a class="text-nowrap" href="command-line-options.html#lowlight-color">-lowlight-color</a> • <a class="text-nowrap" href="command-line-options.html#magnify">-magnify</a> • <a class="text-nowrap" href="command-line-options.html#map">-map</a> • <a class="text-nowrap" href="command-line-options.html#map_stream_">-map[stream]</a> • <a class="text-nowrap" href="command-line-options.html#mattecolor">-mattecolor</a> • <a class="text-nowrap" href="command-line-options.html#median">-median</a> • <a class="text-nowrap" href="command-line-options.html#mean-shift">-mean-shift</a> • <a class="text-nowrap" href="command-line-options.html#metric">-metric</a> • <a class="text-nowrap" href="command-line-options.html#mode">-mode</a> • <a class="text-nowrap" href="command-line-options.html#modulate">-modulate</a> • <a class="text-nowrap" href="command-line-options.html#moments">-moments</a> • <a class="text-nowrap" href="command-line-options.html#monitor">-monitor</a> • <a class="text-nowrap" href="command-line-options.html#monochrome">-monochrome</a> • <a class="text-nowrap" href="command-line-options.html#morph">-morph</a> • <a class="text-nowrap" href="command-line-options.html#morphology">-morphology</a> • <a class="text-nowrap" href="command-line-options.html#mosaic">-mosaic</a> • <a class="text-nowrap" href="command-line-options.html#motion-blur">-motion-blur</a> • <a class="text-nowrap" href="command-line-options.html#name">-name</a> • <a class="text-nowrap" href="command-line-options.html#negate">-negate</a> • <a class="text-nowrap" href="command-line-options.html#noise">-noise</a> • <a class="text-nowrap" href="command-line-options.html#normalize">-normalize</a> • <a class="text-nowrap" href="command-line-options.html#opaque">-opaque</a> • <a class="text-nowrap" href="command-line-options.html#ordered-dither">-ordered-dither</a> • <a class="text-nowrap" href="command-line-options.html#orient">-orient</a> • <a class="text-nowrap" href="command-line-options.html#page">-page</a> • <a class="text-nowrap" href="command-line-options.html#paint">-paint</a> • <a class="text-nowrap" href="command-line-options.html#path">-path</a> • <a class="text-nowrap" href="command-line-options.html#pause_animate_">-pause[animate]</a> • <a class="text-nowrap" href="command-line-options.html#pause_import_">-pause[import]</a> • <a class="text-nowrap" href="command-line-options.html#perceptible">-perceptible</a> • <a class="text-nowrap" href="command-line-options.html#ping">-ping</a> • <a class="text-nowrap" href="command-line-options.html#pointsize">-pointsize</a> • <a class="text-nowrap" href="command-line-options.html#polaroid">-polaroid</a> • <a class="text-nowrap" href="command-line-options.html#poly">-poly</a> • <a class="text-nowrap" href="command-line-options.html#posterize">-posterize</a> • <a class="text-nowrap" href="command-line-options.html#precision">-precision</a> • <a class="text-nowrap" href="command-line-options.html#preview">-preview</a> • <a class="text-nowrap" href="command-line-options.html#print">-print</a> • <a class="text-nowrap" href="command-line-options.html#process">-process</a> • <a class="text-nowrap" href="command-line-options.html#profile">-profile</a> • <a class="text-nowrap" href="command-line-options.html#quality">-quality</a> • <a class="text-nowrap" href="command-line-options.html#quantize">-quantize</a> • <a class="text-nowrap" href="command-line-options.html#quiet">-quiet</a> • <a class="text-nowrap" href="command-line-options.html#radial-blur">-radial-blur</a> • <a class="text-nowrap" href="command-line-options.html#raise">-raise</a> • <a class="text-nowrap" href="command-line-options.html#random-threshold">-random-threshold</a> • <a class="text-nowrap" href="command-line-options.html#range-threshold">-range-threshold</a> • <a class="text-nowrap" href="command-line-options.html#read-mask">-read-mask</a> • <a class="text-nowrap" href="command-line-options.html#red-primary">-red-primary</a> • <a class="text-nowrap" href="command-line-options.html#regard-warnings">-regard-warnings</a> • <a class="text-nowrap" href="command-line-options.html#region">-region</a> • <a class="text-nowrap" href="command-line-options.html#remap">-remap</a> • <a class="text-nowrap" href="command-line-options.html#remote">-remote</a> • <a class="text-nowrap" href="command-line-options.html#render">-render</a> • <a class="text-nowrap" href="command-line-options.html#repage">-repage</a> • <a class="text-nowrap" href="command-line-options.html#resample">-resample</a> • <a class="text-nowrap" href="command-line-options.html#resize">-resize</a> • <a class="text-nowrap" href="command-line-options.html#respect-parentheses">-respect-parentheses</a> • <a class="text-nowrap" href="command-line-options.html#reverse">-reverse</a> • <a class="text-nowrap" href="command-line-options.html#roll">-roll</a> • <a class="text-nowrap" href="command-line-options.html#rotate">-rotate</a> • <a class="text-nowrap" href="command-line-options.html#sample">-sample</a> • <a class="text-nowrap" href="command-line-options.html#sampling-factor">-sampling-factor</a> • <a class="text-nowrap" href="command-line-options.html#scale">-scale</a> • <a class="text-nowrap" href="command-line-options.html#scene">-scene</a> • <a class="text-nowrap" href="command-line-options.html#screen">-screen</a> • <a class="text-nowrap" href="command-line-options.html#seed">-seed</a> • <a class="text-nowrap" href="command-line-options.html#segment">-segment</a> • <a class="text-nowrap" href="command-line-options.html#selective-blur">-selective-blur</a> • <a class="text-nowrap" href="command-line-options.html#separate">-separate</a> • <a class="text-nowrap" href="command-line-options.html#sepia-tone">-sepia-tone</a> • <a class="text-nowrap" href="command-line-options.html#set">-set</a> • <a class="text-nowrap" href="command-line-options.html#shade">-shade</a> • <a class="text-nowrap" href="command-line-options.html#shadow">-shadow</a> • <a class="text-nowrap" href="command-line-options.html#shared-memory">-shared-memory</a> • <a class="text-nowrap" href="command-line-options.html#sharpen">-sharpen</a> • <a class="text-nowrap" href="command-line-options.html#shave">-shave</a> • <a class="text-nowrap" href="command-line-options.html#shear">-shear</a> • <a class="text-nowrap" href="command-line-options.html#sigmoidal-contrast">-sigmoidal-contrast</a> • <a class="text-nowrap" href="command-line-options.html#silent">-silent</a> • <a class="text-nowrap" href="command-line-options.html#similarity-threshold">-similarity-threshold</a> • <a class="text-nowrap" href="command-line-options.html#size">-size</a> • <a class="text-nowrap" href="command-line-options.html#sketch">-sketch</a> • <a class="text-nowrap" href="command-line-options.html#smush">-smush</a> • <a class="text-nowrap" href="command-line-options.html#snaps">-snaps</a> • <a class="text-nowrap" href="command-line-options.html#solarize">-solarize</a> • <a class="text-nowrap" href="command-line-options.html#sparse-color">-sparse-color</a> • <a class="text-nowrap" href="command-line-options.html#splice">-splice</a> • <a class="text-nowrap" href="command-line-options.html#spread">-spread</a> • <a class="text-nowrap" href="command-line-options.html#statistic">-statistic</a> • <a class="text-nowrap" href="command-line-options.html#stegano">-stegano</a> • <a class="text-nowrap" href="command-line-options.html#stereo">-stereo</a> • <a class="text-nowrap" href="command-line-options.html#storage-type">-storage-type</a> • <a class="text-nowrap" href="command-line-options.html#stretch">-stretch</a> • <a class="text-nowrap" href="command-line-options.html#strip">-strip</a> • <a class="text-nowrap" href="command-line-options.html#stroke">-stroke</a> • <a class="text-nowrap" href="command-line-options.html#strokewidth">-strokewidth</a> • <a class="text-nowrap" href="command-line-options.html#style">-style</a> • <a class="text-nowrap" href="command-line-options.html#subimage-search">-subimage-search</a> • <a class="text-nowrap" href="command-line-options.html#swap">-swap</a> • <a class="text-nowrap" href="command-line-options.html#swirl">-swirl</a> • <a class="text-nowrap" href="command-line-options.html#synchronize">-synchronize</a> • <a class="text-nowrap" href="command-line-options.html#taint">-taint</a> • <a class="text-nowrap" href="command-line-options.html#text-font">-text-font</a> • <a class="text-nowrap" href="command-line-options.html#texture">-texture</a> • <a class="text-nowrap" href="command-line-options.html#threshold">-threshold</a> • <a class="text-nowrap" href="command-line-options.html#thumbnail">-thumbnail</a> • <a class="text-nowrap" href="command-line-options.html#tile">-tile</a> • <a class="text-nowrap" href="command-line-options.html#tile-offset">-tile-offset</a> • <a class="text-nowrap" href="command-line-options.html#tint">-tint</a> • <a class="text-nowrap" href="command-line-options.html#title">-title</a> • <a class="text-nowrap" href="command-line-options.html#transform">-transform</a> • <a class="text-nowrap" href="command-line-options.html#transparent">-transparent</a> • <a class="text-nowrap" href="command-line-options.html#transparent-color">-transparent-color</a> • <a class="text-nowrap" href="command-line-options.html#transpose">-transpose</a> • <a class="text-nowrap" href="command-line-options.html#transverse">-transverse</a> • <a class="text-nowrap" href="command-line-options.html#treedepth">-treedepth</a> • <a class="text-nowrap" href="command-line-options.html#trim">-trim</a> • <a class="text-nowrap" href="command-line-options.html#type">-type</a> • <a class="text-nowrap" href="command-line-options.html#undercolor">-undercolor</a> • <a class="text-nowrap" href="command-line-options.html#unique-colors">-unique-colors</a> • <a class="text-nowrap" href="command-line-options.html#units">-units</a> • <a class="text-nowrap" href="command-line-options.html#unsharp">-unsharp</a> • <a class="text-nowrap" href="command-line-options.html#update">-update</a> • <a class="text-nowrap" href="command-line-options.html#verbose">-verbose</a> • <a class="text-nowrap" href="command-line-options.html#version">-version</a> • <a class="text-nowrap" href="command-line-options.html#view">-view</a> • <a class="text-nowrap" href="command-line-options.html#vignette">-vignette</a> • <a class="text-nowrap" href="command-line-options.html#virtual-pixel">-virtual-pixel</a> • <a class="text-nowrap" href="command-line-options.html#visual">-visual</a> • <a class="text-nowrap" href="command-line-options.html#watermark">-watermark</a> • <a class="text-nowrap" href="command-line-options.html#wave">-wave</a> • <a class="text-nowrap" href="command-line-options.html#wavelet-denoise">-wavelet-denoise</a> • <a class="text-nowrap" href="command-line-options.html#weight">-weight</a> • <a class="text-nowrap" href="command-line-options.html#white-balance">-white-balance</a> • <a class="text-nowrap" href="command-line-options.html#white-point">-white-point</a> • <a class="text-nowrap" href="command-line-options.html#white-threshold">-white-threshold</a> • <a class="text-nowrap" href="command-line-options.html#window">-window</a> • <a class="text-nowrap" href="command-line-options.html#window-group">-window-group</a> • <a class="text-nowrap" href="command-line-options.html#write">-write</a> • <a class="text-nowrap" href="command-line-options.html#write-mask">-write-mask</a> </p>
+<p class="text-center"><a class="text-nowrap" href="command-line-options.html#adaptive-blur">-adaptive-blur</a> • <a class="text-nowrap" href="command-line-options.html#adaptive-resize">-adaptive-resize</a> • <a class="text-nowrap" href="command-line-options.html#adaptive-sharpen">-adaptive-sharpen</a> • <a class="text-nowrap" href="command-line-options.html#adjoin">-adjoin</a> • <a class="text-nowrap" href="command-line-options.html#affine">-affine</a> • <a class="text-nowrap" href="command-line-options.html#alpha">-alpha</a> • <a class="text-nowrap" href="command-line-options.html#annotate">-annotate</a> • <a class="text-nowrap" href="command-line-options.html#antialias">-antialias</a> • <a class="text-nowrap" href="command-line-options.html#append">-append</a> • <a class="text-nowrap" href="command-line-options.html#attenuate">-attenuate</a> • <a class="text-nowrap" href="command-line-options.html#authenticate">-authenticate</a> • <a class="text-nowrap" href="command-line-options.html#auto-gamma">-auto-gamma</a> • <a class="text-nowrap" href="command-line-options.html#auto-level">-auto-level</a> • <a class="text-nowrap" href="command-line-options.html#auto-orient">-auto-orient</a> • <a class="text-nowrap" href="command-line-options.html#auto-threshold">-auto-threshold</a> • <a class="text-nowrap" href="command-line-options.html#backdrop">-backdrop</a> • <a class="text-nowrap" href="command-line-options.html#background">-background</a> • <a class="text-nowrap" href="command-line-options.html#bench">-bench</a> • <a class="text-nowrap" href="command-line-options.html#bias">-bias</a> • <a class="text-nowrap" href="command-line-options.html#bilateral-blur">-bilateral-blur</a> • <a class="text-nowrap" href="command-line-options.html#black-point-compensation">-black-point-compensation</a> • <a class="text-nowrap" href="command-line-options.html#black-threshold">-black-threshold</a> • <a class="text-nowrap" href="command-line-options.html#blend">-blend</a> • <a class="text-nowrap" href="command-line-options.html#blue-primary">-blue-primary</a> • <a class="text-nowrap" href="command-line-options.html#blue-shift">-blue-shift</a> • <a class="text-nowrap" href="command-line-options.html#blur">-blur</a> • <a class="text-nowrap" href="command-line-options.html#border">-border</a> • <a class="text-nowrap" href="command-line-options.html#bordercolor">-bordercolor</a> • <a class="text-nowrap" href="command-line-options.html#borderwidth">-borderwidth</a> • <a class="text-nowrap" href="command-line-options.html#brightness-contrast">-brightness-contrast</a> • <a class="text-nowrap" href="command-line-options.html#cache">-cache</a> • <a class="text-nowrap" href="command-line-options.html#canny">-canny</a> • <a class="text-nowrap" href="command-line-options.html#caption">-caption</a> • <a class="text-nowrap" href="command-line-options.html#cdl">-cdl</a> • <a class="text-nowrap" href="command-line-options.html#channel">-channel</a> • <a class="text-nowrap" href="command-line-options.html#charcoal">-charcoal</a> • <a class="text-nowrap" href="command-line-options.html#channel-fx">-channel-fx</a> • <a class="text-nowrap" href="command-line-options.html#chop">-chop</a> • <a class="text-nowrap" href="command-line-options.html#clahe">-clahe</a> • <a class="text-nowrap" href="command-line-options.html#clamp">-clamp</a> • <a class="text-nowrap" href="command-line-options.html#clip">-clip</a> • <a class="text-nowrap" href="command-line-options.html#clip-mask">-clip-mask</a> • <a class="text-nowrap" href="command-line-options.html#clip-path">-clip-path</a> • <a class="text-nowrap" href="command-line-options.html#clone">-clone</a> • <a class="text-nowrap" href="command-line-options.html#clut">-clut</a> • <a class="text-nowrap" href="command-line-options.html#coalesce">-coalesce</a> • <a class="text-nowrap" href="command-line-options.html#colorize">-colorize</a> • <a class="text-nowrap" href="command-line-options.html#colormap">-colormap</a> • <a class="text-nowrap" href="command-line-options.html#color-matrix">-color-matrix</a> • <a class="text-nowrap" href="command-line-options.html#colors">-colors</a> • <a class="text-nowrap" href="command-line-options.html#colorspace">-colorspace</a> • <a class="text-nowrap" href="command-line-options.html#color-threshold">-color-threshold</a> • <a class="text-nowrap" href="command-line-options.html#combine">-combine</a> • <a class="text-nowrap" href="command-line-options.html#comment">-comment</a> • <a class="text-nowrap" href="command-line-options.html#compare">-compare</a> • <a class="text-nowrap" href="command-line-options.html#complex">-complex</a> • <a class="text-nowrap" href="command-line-options.html#compose">-compose</a> • <a class="text-nowrap" href="command-line-options.html#composite">-composite</a> • <a class="text-nowrap" href="command-line-options.html#compress">-compress</a> • <a class="text-nowrap" href="command-line-options.html#connected-components">-connected-components</a> • <a class="text-nowrap" href="command-line-options.html#contrast">-contrast</a> • <a class="text-nowrap" href="command-line-options.html#contrast-stretch">-contrast-stretch</a> • <a class="text-nowrap" href="command-line-options.html#convolve">-convolve</a> • <a class="text-nowrap" href="command-line-options.html#copy">-copy</a> • <a class="text-nowrap" href="command-line-options.html#crop">-crop</a> • <a class="text-nowrap" href="command-line-options.html#cycle">-cycle</a> • <a class="text-nowrap" href="command-line-options.html#debug">-debug</a> • <a class="text-nowrap" href="command-line-options.html#decipher">-decipher</a> • <a class="text-nowrap" href="command-line-options.html#deconstruct">-deconstruct</a> • <a class="text-nowrap" href="command-line-options.html#define">-define</a> • <a class="text-nowrap" href="command-line-options.html#delay">-delay</a> • <a class="text-nowrap" href="command-line-options.html#delete">-delete</a> • <a class="text-nowrap" href="command-line-options.html#density">-density</a> • <a class="text-nowrap" href="command-line-options.html#depth">-depth</a> • <a class="text-nowrap" href="command-line-options.html#descend">-descend</a> • <a class="text-nowrap" href="command-line-options.html#deskew">-deskew</a> • <a class="text-nowrap" href="command-line-options.html#despeckle">-despeckle</a> • <a class="text-nowrap" href="command-line-options.html#direction">-direction</a> • <a class="text-nowrap" href="command-line-options.html#displace">-displace</a> • <a class="text-nowrap" href="command-line-options.html#display">-display</a> • <a class="text-nowrap" href="command-line-options.html#dispose">-dispose</a> • <a class="text-nowrap" href="command-line-options.html#dissimilarity-threshold">-dissimilarity-threshold</a> • <a class="text-nowrap" href="command-line-options.html#dissolve">-dissolve</a> • <a class="text-nowrap" href="command-line-options.html#distort">-distort</a> • <a class="text-nowrap" href="command-line-options.html#distribute-cache">-distribute-cache</a> • <a class="text-nowrap" href="command-line-options.html#dither">-dither</a> • <a class="text-nowrap" href="command-line-options.html#draw">-draw</a> • <a class="text-nowrap" href="command-line-options.html#duplicate">-duplicate</a> • <a class="text-nowrap" href="command-line-options.html#edge">-edge</a> • <a class="text-nowrap" href="command-line-options.html#emboss">-emboss</a> • <a class="text-nowrap" href="command-line-options.html#encipher">-encipher</a> • <a class="text-nowrap" href="command-line-options.html#encoding">-encoding</a> • <a class="text-nowrap" href="command-line-options.html#endian">-endian</a> • <a class="text-nowrap" href="command-line-options.html#enhance">-enhance</a> • <a class="text-nowrap" href="command-line-options.html#equalize">-equalize</a> • <a class="text-nowrap" href="command-line-options.html#evaluate">-evaluate</a> • <a class="text-nowrap" href="command-line-options.html#evaluate-sequence">-evaluate-sequence</a> • <a class="text-nowrap" href="command-line-options.html#extent">-extent</a> • <a class="text-nowrap" href="command-line-options.html#extract">-extract</a> • <a class="text-nowrap" href="command-line-options.html#family">-family</a> • <a class="text-nowrap" href="command-line-options.html#features">-features</a> • <a class="text-nowrap" href="command-line-options.html#fft">-fft</a> • <a class="text-nowrap" href="command-line-options.html#fill">-fill</a> • <a class="text-nowrap" href="command-line-options.html#filter">-filter</a> • <a class="text-nowrap" href="command-line-options.html#flatten">-flatten</a> • <a class="text-nowrap" href="command-line-options.html#flip">-flip</a> • <a class="text-nowrap" href="command-line-options.html#floodfill">-floodfill</a> • <a class="text-nowrap" href="command-line-options.html#flop">-flop</a> • <a class="text-nowrap" href="command-line-options.html#font">-font</a> • <a class="text-nowrap" href="command-line-options.html#foreground">-foreground</a> • <a class="text-nowrap" href="command-line-options.html#format">-format</a> • <a class="text-nowrap" href="command-line-options.html#format_identify_">-format[identify]</a> • <a class="text-nowrap" href="command-line-options.html#frame">-frame</a> • <a class="text-nowrap" href="command-line-options.html#frame_import_">-frame[import]</a> • <a class="text-nowrap" href="command-line-options.html#function">-function</a> • <a class="text-nowrap" href="command-line-options.html#fuzz">-fuzz</a> • <a class="text-nowrap" href="command-line-options.html#fx">-fx</a> • <a class="text-nowrap" href="command-line-options.html#gamma">-gamma</a> • <a class="text-nowrap" href="command-line-options.html#gaussian-blur">-gaussian-blur</a> • <a class="text-nowrap" href="command-line-options.html#geometry">-geometry</a> • <a class="text-nowrap" href="command-line-options.html#gravity">-gravity</a> • <a class="text-nowrap" href="command-line-options.html#grayscale">-grayscale</a> • <a class="text-nowrap" href="command-line-options.html#green-primary">-green-primary</a> • <a class="text-nowrap" href="command-line-options.html#hald-clut">-hald-clut</a> • <a class="text-nowrap" href="command-line-options.html#help">-help</a> • <a class="text-nowrap" href="command-line-options.html#highlight-color">-highlight-color</a> • <a class="text-nowrap" href="command-line-options.html#hough-lines">-hough-lines</a> • <a class="text-nowrap" href="command-line-options.html#iconGeometry">-iconGeometry</a> • <a class="text-nowrap" href="command-line-options.html#iconic">-iconic</a> • <a class="text-nowrap" href="command-line-options.html#identify">-identify</a> • <a class="text-nowrap" href="command-line-options.html#ift">-ift</a> • <a class="text-nowrap" href="command-line-options.html#immutable">-immutable</a> • <a class="text-nowrap" href="command-line-options.html#implode">-implode</a> • <a class="text-nowrap" href="command-line-options.html#insert">-insert</a> • <a class="text-nowrap" href="command-line-options.html#intensity">-intensity</a> • <a class="text-nowrap" href="command-line-options.html#intent">-intent</a> • <a class="text-nowrap" href="command-line-options.html#interlace">-interlace</a> • <a class="text-nowrap" href="command-line-options.html#interpolate">-interpolate</a> • <a class="text-nowrap" href="command-line-options.html#interline-spacing">-interline-spacing</a> • <a class="text-nowrap" href="command-line-options.html#interword-spacing">-interword-spacing</a> • <a class="text-nowrap" href="command-line-options.html#kerning">-kerning</a> • <a class="text-nowrap" href="command-line-options.html#kmeans">-kmeans</a> • <a class="text-nowrap" href="command-line-options.html#kuwahara">-kuwahara</a> • <a class="text-nowrap" href="command-line-options.html#label">-label</a> • <a class="text-nowrap" href="command-line-options.html#lat">-lat</a> • <a class="text-nowrap" href="command-line-options.html#layers">-layers</a> • <a class="text-nowrap" href="command-line-options.html#level">-level</a> • <a class="text-nowrap" href="command-line-options.html#level-colors">-level-colors</a> • <a class="text-nowrap" href="command-line-options.html#limit">-limit</a> • <a class="text-nowrap" href="command-line-options.html#linear-stretch">-linear-stretch</a> • <a class="text-nowrap" href="command-line-options.html#linewidth">-linewidth</a> • <a class="text-nowrap" href="command-line-options.html#liquid-rescale">-liquid-rescale</a> • <a class="text-nowrap" href="command-line-options.html#list">-list</a> • <a class="text-nowrap" href="command-line-options.html#log">-log</a> • <a class="text-nowrap" href="command-line-options.html#loop">-loop</a> • <a class="text-nowrap" href="command-line-options.html#lowlight-color">-lowlight-color</a> • <a class="text-nowrap" href="command-line-options.html#magnify">-magnify</a> • <a class="text-nowrap" href="command-line-options.html#map">-map</a> • <a class="text-nowrap" href="command-line-options.html#map_stream_">-map[stream]</a> • <a class="text-nowrap" href="command-line-options.html#mattecolor">-mattecolor</a> • <a class="text-nowrap" href="command-line-options.html#median">-median</a> • <a class="text-nowrap" href="command-line-options.html#mean-shift">-mean-shift</a> • <a class="text-nowrap" href="command-line-options.html#metric">-metric</a> • <a class="text-nowrap" href="command-line-options.html#mode">-mode</a> • <a class="text-nowrap" href="command-line-options.html#modulate">-modulate</a> • <a class="text-nowrap" href="command-line-options.html#moments">-moments</a> • <a class="text-nowrap" href="command-line-options.html#monitor">-monitor</a> • <a class="text-nowrap" href="command-line-options.html#monochrome">-monochrome</a> • <a class="text-nowrap" href="command-line-options.html#morph">-morph</a> • <a class="text-nowrap" href="command-line-options.html#morphology">-morphology</a> • <a class="text-nowrap" href="command-line-options.html#mosaic">-mosaic</a> • <a class="text-nowrap" href="command-line-options.html#motion-blur">-motion-blur</a> • <a class="text-nowrap" href="command-line-options.html#name">-name</a> • <a class="text-nowrap" href="command-line-options.html#negate">-negate</a> • <a class="text-nowrap" href="command-line-options.html#noise">-noise</a> • <a class="text-nowrap" href="command-line-options.html#normalize">-normalize</a> • <a class="text-nowrap" href="command-line-options.html#opaque">-opaque</a> • <a class="text-nowrap" href="command-line-options.html#ordered-dither">-ordered-dither</a> • <a class="text-nowrap" href="command-line-options.html#orient">-orient</a> • <a class="text-nowrap" href="command-line-options.html#page">-page</a> • <a class="text-nowrap" href="command-line-options.html#paint">-paint</a> • <a class="text-nowrap" href="command-line-options.html#path">-path</a> • <a class="text-nowrap" href="command-line-options.html#pause_animate_">-pause[animate]</a> • <a class="text-nowrap" href="command-line-options.html#pause_import_">-pause[import]</a> • <a class="text-nowrap" href="command-line-options.html#perceptible">-perceptible</a> • <a class="text-nowrap" href="command-line-options.html#ping">-ping</a> • <a class="text-nowrap" href="command-line-options.html#pointsize">-pointsize</a> • <a class="text-nowrap" href="command-line-options.html#polaroid">-polaroid</a> • <a class="text-nowrap" href="command-line-options.html#poly">-poly</a> • <a class="text-nowrap" href="command-line-options.html#posterize">-posterize</a> • <a class="text-nowrap" href="command-line-options.html#precision">-precision</a> • <a class="text-nowrap" href="command-line-options.html#preview">-preview</a> • <a class="text-nowrap" href="command-line-options.html#print">-print</a> • <a class="text-nowrap" href="command-line-options.html#process">-process</a> • <a class="text-nowrap" href="command-line-options.html#profile">-profile</a> • <a class="text-nowrap" href="command-line-options.html#quality">-quality</a> • <a class="text-nowrap" href="command-line-options.html#quantize">-quantize</a> • <a class="text-nowrap" href="command-line-options.html#quiet">-quiet</a> • <a class="text-nowrap" href="command-line-options.html#radial-blur">-radial-blur</a> • <a class="text-nowrap" href="command-line-options.html#raise">-raise</a> • <a class="text-nowrap" href="command-line-options.html#random-threshold">-random-threshold</a> • <a class="text-nowrap" href="command-line-options.html#range-threshold">-range-threshold</a> • <a class="text-nowrap" href="command-line-options.html#read-mask">-read-mask</a> • <a class="text-nowrap" href="command-line-options.html#red-primary">-red-primary</a> • <a class="text-nowrap" href="command-line-options.html#regard-warnings">-regard-warnings</a> • <a class="text-nowrap" href="command-line-options.html#region">-region</a> • <a class="text-nowrap" href="command-line-options.html#remap">-remap</a> • <a class="text-nowrap" href="command-line-options.html#remote">-remote</a> • <a class="text-nowrap" href="command-line-options.html#render">-render</a> • <a class="text-nowrap" href="command-line-options.html#repage">-repage</a> • <a class="text-nowrap" href="command-line-options.html#resample">-resample</a> • <a class="text-nowrap" href="command-line-options.html#resize">-resize</a> • <a class="text-nowrap" href="command-line-options.html#respect-parentheses">-respect-parentheses</a> • <a class="text-nowrap" href="command-line-options.html#reverse">-reverse</a> • <a class="text-nowrap" href="command-line-options.html#roll">-roll</a> • <a class="text-nowrap" href="command-line-options.html#rotate">-rotate</a> • <a class="text-nowrap" href="command-line-options.html#sample">-sample</a> • <a class="text-nowrap" href="command-line-options.html#sampling-factor">-sampling-factor</a> • <a class="text-nowrap" href="command-line-options.html#scale">-scale</a> • <a class="text-nowrap" href="command-line-options.html#scene">-scene</a> • <a class="text-nowrap" href="command-line-options.html#screen">-screen</a> • <a class="text-nowrap" href="command-line-options.html#seed">-seed</a> • <a class="text-nowrap" href="command-line-options.html#segment">-segment</a> • <a class="text-nowrap" href="command-line-options.html#selective-blur">-selective-blur</a> • <a class="text-nowrap" href="command-line-options.html#separate">-separate</a> • <a class="text-nowrap" href="command-line-options.html#sepia-tone">-sepia-tone</a> • <a class="text-nowrap" href="command-line-options.html#set">-set</a> • <a class="text-nowrap" href="command-line-options.html#shade">-shade</a> • <a class="text-nowrap" href="command-line-options.html#shadow">-shadow</a> • <a class="text-nowrap" href="command-line-options.html#shared-memory">-shared-memory</a> • <a class="text-nowrap" href="command-line-options.html#sharpen">-sharpen</a> • <a class="text-nowrap" href="command-line-options.html#shave">-shave</a> • <a class="text-nowrap" href="command-line-options.html#shear">-shear</a> • <a class="text-nowrap" href="command-line-options.html#sigmoidal-contrast">-sigmoidal-contrast</a> • <a class="text-nowrap" href="command-line-options.html#silent">-silent</a> • <a class="text-nowrap" href="command-line-options.html#similarity-threshold">-similarity-threshold</a> • <a class="text-nowrap" href="command-line-options.html#size">-size</a> • <a class="text-nowrap" href="command-line-options.html#sketch">-sketch</a> • <a class="text-nowrap" href="command-line-options.html#smush">-smush</a> • <a class="text-nowrap" href="command-line-options.html#snaps">-snaps</a> • <a class="text-nowrap" href="command-line-options.html#solarize">-solarize</a> • <a class="text-nowrap" href="command-line-options.html#sparse-color">-sparse-color</a> • <a class="text-nowrap" href="command-line-options.html#splice">-splice</a> • <a class="text-nowrap" href="command-line-options.html#spread">-spread</a> • <a class="text-nowrap" href="command-line-options.html#statistic">-statistic</a> • <a class="text-nowrap" href="command-line-options.html#stegano">-stegano</a> • <a class="text-nowrap" href="command-line-options.html#stereo">-stereo</a> • <a class="text-nowrap" href="command-line-options.html#storage-type">-storage-type</a> • <a class="text-nowrap" href="command-line-options.html#stretch">-stretch</a> • <a class="text-nowrap" href="command-line-options.html#strip">-strip</a> • <a class="text-nowrap" href="command-line-options.html#stroke">-stroke</a> • <a class="text-nowrap" href="command-line-options.html#strokewidth">-strokewidth</a> • <a class="text-nowrap" href="command-line-options.html#style">-style</a> • <a class="text-nowrap" href="command-line-options.html#subimage-search">-subimage-search</a> • <a class="text-nowrap" href="command-line-options.html#swap">-swap</a> • <a class="text-nowrap" href="command-line-options.html#swirl">-swirl</a> • <a class="text-nowrap" href="command-line-options.html#synchronize">-synchronize</a> • <a class="text-nowrap" href="command-line-options.html#taint">-taint</a> • <a class="text-nowrap" href="command-line-options.html#text-font">-text-font</a> • <a class="text-nowrap" href="command-line-options.html#texture">-texture</a> • <a class="text-nowrap" href="command-line-options.html#threshold">-threshold</a> • <a class="text-nowrap" href="command-line-options.html#thumbnail">-thumbnail</a> • <a class="text-nowrap" href="command-line-options.html#tile">-tile</a> • <a class="text-nowrap" href="command-line-options.html#tile-offset">-tile-offset</a> • <a class="text-nowrap" href="command-line-options.html#tint">-tint</a> • <a class="text-nowrap" href="command-line-options.html#title">-title</a> • <a class="text-nowrap" href="command-line-options.html#transform">-transform</a> • <a class="text-nowrap" href="command-line-options.html#transparent">-transparent</a> • <a class="text-nowrap" href="command-line-options.html#transparent-color">-transparent-color</a> • <a class="text-nowrap" href="command-line-options.html#transpose">-transpose</a> • <a class="text-nowrap" href="command-line-options.html#transverse">-transverse</a> • <a class="text-nowrap" href="command-line-options.html#treedepth">-treedepth</a> • <a class="text-nowrap" href="command-line-options.html#trim">-trim</a> • <a class="text-nowrap" href="command-line-options.html#type">-type</a> • <a class="text-nowrap" href="command-line-options.html#undercolor">-undercolor</a> • <a class="text-nowrap" href="command-line-options.html#unique-colors">-unique-colors</a> • <a class="text-nowrap" href="command-line-options.html#units">-units</a> • <a class="text-nowrap" href="command-line-options.html#unsharp">-unsharp</a> • <a class="text-nowrap" href="command-line-options.html#update">-update</a> • <a class="text-nowrap" href="command-line-options.html#verbose">-verbose</a> • <a class="text-nowrap" href="command-line-options.html#version">-version</a> • <a class="text-nowrap" href="command-line-options.html#view">-view</a> • <a class="text-nowrap" href="command-line-options.html#vignette">-vignette</a> • <a class="text-nowrap" href="command-line-options.html#virtual-pixel">-virtual-pixel</a> • <a class="text-nowrap" href="command-line-options.html#visual">-visual</a> • <a class="text-nowrap" href="command-line-options.html#watermark">-watermark</a> • <a class="text-nowrap" href="command-line-options.html#wave">-wave</a> • <a class="text-nowrap" href="command-line-options.html#wavelet-denoise">-wavelet-denoise</a> • <a class="text-nowrap" href="command-line-options.html#weight">-weight</a> • <a class="text-nowrap" href="command-line-options.html#white-balance">-white-balance</a> • <a class="text-nowrap" href="command-line-options.html#white-point">-white-point</a> • <a class="text-nowrap" href="command-line-options.html#white-threshold">-white-threshold</a> • <a class="text-nowrap" href="command-line-options.html#window">-window</a> • <a class="text-nowrap" href="command-line-options.html#window-group">-window-group</a> • <a class="text-nowrap" href="command-line-options.html#write">-write</a> • <a class="text-nowrap" href="command-line-options.html#write-mask">-write-mask</a> </p>
<p class="lead magick-description">Below is list of command-line options recognized by the ImageMagick <a href="command-line-tools.html">command-line tools</a>. 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: <a href="convert.html">convert</a> and <a href="mogrify.html">mogrify</a>.</p>
<div style="margin: auto;">
@@ -243,6 +243,7 @@ matrix determinant has a sufficiently small absolute value it is rejected.</p>
<p>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 <var>type</var> from the list below.</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">Activate</dt>
<dd class="col-md-8">
@@ -317,16 +318,18 @@ channel data, to create an alpha channel, or to perform other operations on the
and thus can compress better.
</dd>
</dl>
+</div>
+<br/>
<p>Note that while the obsolete <code>+matte</code> operation was the
same as "<code><a href="command-line-options.html#alpha" >-alpha</a> Off</code>", the <code>
>-matte</code> operation was the same as "<code><a href="command-line-options.html#alpha" >-alpha</a>
Set</code>" and not "<code><a href="command-line-options.html#alpha" >-alpha</a> On</code>". </p>
-<div style="margin: auto;">
+<div class="pre-scrollable" style="margin: auto;">
<h3><a class="anchor" id="annotate"></a>
-annotate <var>degrees</var> <var>text</var><br />
- -annotate <var>Xdegrees</var>x<var>Ydegrees</var> <var>text</var><br /> -annotate <var>Xdegrees</var>x<var>Ydegrees</var> {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var><br /> -annotate {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var></h3>
+ -annotate <var>Xdegrees</var>x<var>Ydegrees</var> <var>text</var><br /> -annotate <var>Xdegrees</var>x<var>Ydegrees</var>{+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var><br /> -annotate {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var></h3>
</div>
<p class="magick-description">Annotate an image with text</p>
@@ -471,7 +474,7 @@ transparency. </p>
<h3><a class="anchor" id="auto-orient"></a>-auto-orient</h3>
</div>
-<p class="magick-description">adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).</p>
+<p class="magick-description">Adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).</p>
<p>This operator reads and resets the EXIF image profile setting 'Orientation'
and then performs the appropriate 90 degree rotation on the image to orient
@@ -488,16 +491,18 @@ href="command-line-options.html#auto-orient" >-auto-orient</a> operator will do
<h3><a class="anchor" id="auto-threshold"></a>-auto-threshold <var>method</var></h3>
</div>
-<p class="magick-description">automatically perform image thresholding.</p>
+<p class="magick-description">Automatically perform image thresholding.</p>
<p>Here are the valid methods:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">Undefined</dt><dd class="col-md-8">0: No method specified (equivalent to '<code>OTSU</code>').</dd>
<dt class="col-md-4">Kapur</dt><dd class="col-md-8">maximum entropy thresholding.</dd>
<dt class="col-md-4">OTSU</dt><dd class="col-md-8">cluster-based image thresholding.</dd>
<dt class="col-md-4">Triangle</dt><dd class="col-md-8">a geometric thresholding method.</dd>
</dl>
+</div>
<p>The computed threshold is returned as the <kbd>auto-threshold:threshold</kbd> image property. To instead print to your device, use <kbd>-define auto-threshold:threshold=true</kbd>.</p>
@@ -582,6 +587,31 @@ href="http://en.wikipedia.org/wiki/High_dynamic_range_imaging">Wikipedia</a>
entry. </p>
<div style="margin: auto;">
+ <h3><a class="anchor" id="bilateral-blur"></a>-bilateral-blur <var>width</var>{x<var>height</var>}{<var>+intensity-sigma</var>}{<var>+spatial-sigma</var>}</h3>
+</div>
+
+<p class="magick-description">A non-linear, edge-preserving, and noise-reducing
+smoothing filter for images. It replaces the intensity of each pixel with a
+weighted average of intensity values from nearby pixels. This weight is
+based on a Gaussian distribution. The weights depend not only on Euclidean
+distance of pixels, but also on the radiometric differences (e.g., range
+differences, such as color intensity, depth distance, etc.). This preserves
+sharp edges.</p>
+
+<p>The intensity sigma is in the intensity space. A larger value means
+that farther colors within the pixel neighborhood (see spatial-sigma)
+will be mixed together, resulting in larger areas of semi-equal color.</p>
+
+<p>The spatial sigma is in the coordinate space. A larger value means that
+farther pixels influence each other as long as their colors are close
+enough (see intensity-sigma ). When the neigborhood diameter is greater
+than zero, it specifies the neighborhood size regardless of
+spatial-sigma. Otherwise, the neigborhood diameter is proportional to
+spatial-sigma.</p>
+<p>The default value for the intensity and spatial sigmas are <var>0.75*diameter</var> and <var>0.25*diameter</var> respectively.</p>
+
+
+<div style="margin: auto;">
<h3><a class="anchor" id="black-point-compensation"></a>-black-point-compensation</h3>
</div>
@@ -595,14 +625,14 @@ entry. </p>
<p> The threshold value can be given as a percentage or as an absolute integer
value within [0, <var>QuantumRange</var>] corresponding to the
-desired <a class="text-nowrap" href="command-line-options.html#channel">-channel</a> value. See <a class="text-nowrap" href="command-line-options.html#threshold">-threshold</a>for more details on thresholds and resulting values. </p>
+desired <a class="text-nowrap" href="command-line-options.html#channel">-channel</a> value. See <a class="text-nowrap" href="command-line-options.html#threshold">-threshold</a> for more details on thresholds and resulting values. </p>
<div style="margin: auto;">
<h3><a class="anchor" id="blend"></a>-blend <var>geometry</var></h3>
</div>
-<p class="magick-description">blend an image into another by the given absolute value or percent.</p>
+<p class="magick-description">Blend an image into another by the given absolute value or percent.</p>
<p>Blend will average the images together ('plus') according to the
percentages given and each pixels transparency. If only a single percentage
@@ -622,12 +652,12 @@ the background image is weighted by the exact opposite amount. That is a
<h3><a class="anchor" id="blue-shift"></a>-blue-shift <var>factor</var></h3>
</div>
-<p class="magick-description">simulate a scene at nighttime in the moonlight. Start with a factor of 1.5</p>
+<p class="magick-description">Simulate a scene at nighttime in the moonlight. Start with a factor of 1.5</p>
<div style="margin: auto;">
<div style="margin: auto;">
- <h3><a class="anchor" id="blur"></a>-blur <var>radius</var><br />-blur <var>radius</var>x<var>sigma</var></h3>
+ <h3><a class="anchor" id="blur"></a>-blur <var>radius</var><br />-blur <var>radius</var>{x<var>sigma</var>}</h3>
</div>
<p class="magick-description">Reduce image noise and reduce detail levels.</p>
@@ -674,6 +704,7 @@ ignored. </p>
<p>As of IM 6.7.8-8, the <var>geometry</var> arguments behave as follows:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4"><var>value</var></dt>
<dd class="col-md-8">value is added to both left/right and top/bottom</dd>
@@ -700,6 +731,7 @@ ignored. </p>
<dt class="col-md-4">0%<code>x</code><var>value-y</var>%</dt>
<dd class="col-md-8">value-y % of height is added to top/bottom and left/right are unchanged</dd>
</dl>
+</div>
<p>Set the border color by preceding with the <a
href="command-line-options.html#bordercolor">-bordercolor</a> setting.</p>
@@ -775,12 +807,12 @@ symbol is no different than leaving it off.</p>
<p class="magick-description">(This option has been replaced by the <a href='command-line-options.html#limit'>-limit</a> option).</p>
<div style="margin: auto;">
- <h3><a class="anchor" id="canny"></a>-canny <var>radius</var><br/>-canny <var>radius</var>x<var>sigma</var>{<var>+lower-percent</var>}{<var>+upper-percent</var>}</h3>
+ <h3><a class="anchor" id="canny"></a>-canny <var>radius</var><br/>-canny <var>radius</var>{x<var>sigma</var>}{<var>+lower-percent</var>}{<var>+upper-percent</var>}</h3>
</div>
<p class="magick-description">Canny edge detector uses a multi-stage algorithm to detect a wide range of edges in the image.</p>
-<p>The thresholds range from 0 to 100% (e.g. -canny 0x1+10%+30%) with {<var>+lower-percent</var>} &lt; {<var>+upper-percent</var>}. If {<var>+upper-percent</var>} is increased but {<var>+lower-percent</var>} remains the same, lesser edge components will be detected, but their lengths will be the same. If {<var>+lower-percent</var>} is increased but {<var>+upper-percent</var>} is the same, the same number of edge components will be detected but their lengths will be shorter. The default thresholds are shown. The <var>radius</var>x<var>sigma</var> controls a gaussian blur applied to the input image to reduce noise and smooth the edges.</p>
+<p>The thresholds range from 0 to 100% (e.g. -canny 0x1+10%+30%) with {<var>+lower-percent</var>} &lt; {<var>+upper-percent</var>}. If {<var>+upper-percent</var>} is increased but {<var>+lower-percent</var>} remains the same, lesser edge components will be detected, but their lengths will be the same. If {<var>+lower-percent</var>} is increased but {<var>+upper-percent</var>} is the same, the same number of edge components will be detected but their lengths will be shorter. The default thresholds are shown. The <var>radius</var>{x<var>sigma</var>} controls a gaussian blur applied to the input image to reduce noise and smooth the edges.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="caption"></a>-caption <var>string</var></h3>
@@ -819,7 +851,7 @@ that the image <code>bird.miff</code> has a width of 512 and a height of
<h3><a class="anchor" id="cdl"></a>-cdl <var>filename</var></h3>
</div>
-<p class="magick-description">color correct with a color decision list.</p>
+<p class="magick-description">Color correct with a color decision list.</p>
<p>Here is an example color correction collection:</p>
@@ -856,29 +888,29 @@ abbreviated as a concatenation of the letters '<code>R</code>', '<code>G</code>'
'<code>M</code>', '<code>Y</code>', '<code>K</code>'.</p>
<p>The numerals 0 to 31 may also be used to specify channels, where 0 to 5 are: <br />
+<ul>
'<code>0</code>' equals <code>Red</code> or <code>Cyan</code> <br />
'<code>1</code>' equals <code>Green</code> or <code>Magenta</code> <br />
'<code>2</code>' equals <code>Blue</code> or <code>Yellow</code> <br />
'<code>3</code>' equals <code>Black</code> <br />
'<code>4</code>' equals <code>Alpha</code> or <code>Opacity</code> <br />
'<code>5</code>' equals <code>Index</code></p>
+</ul>
<p>For example, to only select the <code>Red</code> and <code>Blue</code> channels
you can use any of the following:</p>
-<pre class="highlight">
+<ul><pre class="highlight">
<code>-channel Red,Blue</code>
<code>-channel R,B</code>
<code>-channel RB</code>
<code>-channel 0,2</code>
-</pre>
+</pre></ul>
<p>All the channels that are present in an image can be specified using the
special channel type <code>All</code>. 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. </p>
-<br/>
-
<p>On top of the normal channel selection an extra flag can be specified,
'<code>Sync</code>'. This is turned on by default and if set means that
operators that understand this flag should perform: cross-channel
@@ -978,7 +1010,7 @@ href="command-line-options.html#clut">-clut</a> operator is a good example of th
<h3><a class="anchor" id="channel-fx"></a>-channel-fx <var>expression</var></h3>
</div>
-<p class="magick-description">exchange, extract, or copy one or more image channels.</p>
+<p class="magick-description">Exchange, extract, or copy one or more image channels.</p>
<p>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:</p>
@@ -1041,7 +1073,7 @@ href="command-line-options.html#splice">-splice</a> that was given the same <var
<h3><a class="anchor" id="clahe"></a>-clahe <var>width</var>x<var>height</var>{%}{+}<var>number-bins</var>{+}<var>clip-limit</var>{!}</h3>
</div>
-<p class="magick-description">contrast limited adaptive histogram equalization.</p>
+<p class="magick-description">Contrast limited adaptive histogram equalization.</p>
<p> The image is divided into tiles of <var>width</var> and <var>height</var> pixels. Append <code>%</code> to define the width and height as percentages of the image's dimensions. The tile size should be larger than the size of features to be preserved and respects the aspect ratio of the image. Add <code>!</code> to force an exact tile width and height. <var>number-bins</var> is the number of histogram bins per tile (min 2, max 65536). The number of histogram bins should be smaller than the number of pixels in a single tile. <var>clip-limit</var> is the contrast limit for localized changes in contrast. A clip-limit of 2 to 3 is a good starting place (e.g. -clahe 50x50%+128+3). Very large values will let the histogram equalization do whatever it wants to do, that is result in maximal local contrast. The value 1 will result in the original image. Note, if the number of bins and the clip-limit are ommitted, they default to 128 and no clipping respectively.</p>
@@ -1049,7 +1081,7 @@ href="command-line-options.html#splice">-splice</a> that was given the same <var
<h3><a class="anchor" id="clamp"></a>-clamp</h3>
</div>
-<p class="magick-description">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.</p>
+<p class="magick-description">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.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="clip"></a>-clip</h3>
@@ -1103,7 +1135,7 @@ operation. </p>
<h3><a class="anchor" id="clone"></a>-clone <var>index(s)</var></h3>
</div>
-<p class="magick-description">make a clone of an image (or images).</p>
+<p class="magick-description">Make a clone of an image (or images).</p>
<p>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
@@ -1235,7 +1267,7 @@ color reduction algorithm</a> for more details.</p>
<h3><a class="anchor" id="color-matrix"></a>-color-matrix <var>matrix</var></h3>
</div>
-<p class="magick-description">apply color correction to the image.</p>
+<p class="magick-description">Apply color correction to the image.</p>
<p>This option permits saturation changes, hue rotation, luminance to alpha,
and various other effects. Although variable-sized transformation matrices
@@ -1277,6 +1309,7 @@ Undefined
<p>For a more accurate color conversion to or from the linear RGB, CMYK, or grayscale colorspaces, use the <a href="command-line-options.html#profile">-profile</a> 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.</p>
+<div class="pre-scrollable">
<table class="table table-sm table-hover">
<caption>Conversion of RGB to Other Color Spaces</caption>
<tr><th valign="middle">CMY</th></tr>
@@ -1374,6 +1407,7 @@ Undefined
<tr><td valign="middle">U=(−0.14740*R−0.28950*G+0.43690*B)*(<var>QuantumRange</var>+1)/2</td></tr>
<tr><td valign="middle">V=(0.61500*R−0.51500*G−0.10000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
</table>
+</div>
<p>Note the scRGB colorspace requires HDRI support otherwise it behaves just like linear RGB.</p>
@@ -1444,7 +1478,7 @@ that the image <code>bird.miff</code> has a width of 512 and a height of
<h3><a class="anchor" id="compare"></a>-compare</h3>
</div>
-<p class="magick-description">mathematically and visually annotate the difference between an image and its reconstruction</p>
+<p class="magick-description">Mathematically and visually annotate the difference between an image and its reconstruction</p>
<p>This is a convert version of "<code>compare</code>" for two same sized images. The syntax is as follows, but other metrics are allowed.</p>
@@ -1461,7 +1495,7 @@ that the image <code>bird.miff</code> has a width of 512 and a height of
<h3><a class="anchor" id="complex"></a>-complex <var>operator</var></h3>
</div>
-<p class="magick-description">perform complex mathematics on an image sequence</p>
+<p class="magick-description">Perform complex mathematics on an image sequence</p>
Choose from these operators:
@@ -1663,7 +1697,7 @@ entry. </p>
<h3><a class="anchor" id="copy"></a>-copy <var>geometry</var> <var>offset</var></h3>
</div>
-<p class="magick-description">copy pixels from one area of an image to another.</p>
+<p class="magick-description">Copy pixels from one area of an image to another.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="crop"></a>-crop <var>geometry</var>{<var>@</var>}{<var>!</var>}</h3>
@@ -1721,7 +1755,7 @@ offset.</p>
<h3><a class="anchor" id="cycle"></a>-cycle <var>amount</var></h3>
</div>
-<p class="magick-description">displace image colormap by amount.</p>
+<p class="magick-description">Displace image colormap by amount.</p>
<p><var>Amount</var> defines the number of positions each
colormap entry is shifted.</p>
@@ -1731,7 +1765,7 @@ colormap entry is shifted.</p>
<h3><a class="anchor" id="debug"></a>-debug <var>events</var></h3>
</div>
-<p class="magick-description">enable debug printout.</p>
+<p class="magick-description">Enable debug printout.</p>
<p>The <code>events</code> parameter specifies which events are to be logged. It
can be either <code>None</code>, <code>All</code>, <code>Trace</code>, or
@@ -1781,7 +1815,7 @@ Decipher an Image</a>.</p>
<h3><a class="anchor" id="deconstruct"></a>-deconstruct</h3>
</div>
-<p class="magick-description">find areas that has changed between images </p>
+<p class="magick-description">Find areas that has changed between images </p>
<p>Given a sequence of images all the same size, such as produced by <a
href="command-line-options.html#coalesce">-coalesce</a>, replace the second and later images, with
@@ -1800,7 +1834,7 @@ method '<code>compare-any</code>'. </p>
<h3><a class="anchor" id="define"></a>-define <var>key</var>{<var>=value</var>}<var>...</var></h3>
</div>
-<p class="magick-description">add specific global settings generally used to control coders and image processing operations.</p>
+<p class="magick-description">Add specific global settings generally used to control coders and image processing operations.</p>
<p>This option creates one or more definitions for coders and decoders to use
while reading and writing image data. Definitions are generally used to
@@ -1841,7 +1875,7 @@ use:</p>
<h3><a class="anchor" id="delay"></a>-delay <var>ticks</var> <br />-delay <var>ticks</var>x<var>ticks-per-second</var> {<var>&lt;</var>} {<var>&gt;</var>}</h3>
</div>
-<p class="magick-description">display the next image after pausing.</p>
+<p class="magick-description">Display the next image after pausing.</p>
<p>This option is useful for regulating the animation of image sequences
<var>ticks/ticks-per-second</var> seconds must expire before the display of the
@@ -1862,7 +1896,7 @@ a file redirection.</p>
<h3><a class="anchor" id="delete"></a>-delete <var>indexes</var></h3>
</div>
-<p class="magick-description">delete the images specified by index, from the image sequence.</p>
+<p class="magick-description">Delete the images specified by index, from the image sequence.</p>
<p>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
@@ -1909,7 +1943,7 @@ resolution, use the <a href="command-line-options.html#resample">-resample</a> o
<h3><a class="anchor" id="depth"></a>-depth <var>value</var></h3>
</div>
-<p class="magick-description">depth of the image.</p>
+<p class="magick-description">Depth of the image.</p>
<p>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,
@@ -1921,13 +1955,13 @@ or CMYK, or to change the depth of any image after it has been read.</p>
<h3><a class="anchor" id="descend"></a>-descend</h3>
</div>
-<p class="magick-description">obtain image by descending window hierarchy.</p>
+<p class="magick-description">Obtain image by descending window hierarchy.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="deskew"></a>-deskew <var>threshold{%}</var></h3>
</div>
-<p class="magick-description">straighten an image. A threshold of 40% works for most images.</p>
+<p class="magick-description">Straighten an image. A threshold of 40% works for most images.</p>
<p>Use <a href="command-line-options.html#set">-set</a> <code>option:deskew:auto-crop
<var>true | false</var></code> to auto crop the image.</p>
@@ -1936,19 +1970,19 @@ or CMYK, or to change the depth of any image after it has been read.</p>
<h3><a class="anchor" id="despeckle"></a>-despeckle</h3>
</div>
-<p class="magick-description">reduce the speckles within an image.</p>
+<p class="magick-description">Reduce the speckles within an image.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="direction"></a>-direction <var>type</var></h3>
</div>
-<p class="magick-description">render text right-to-left or left-to-right. Requires the <a href="https://github.com/HOST-Oman/libraqm">RAQM</a> delegate library and <a href="https://en.wikipedia.org/wiki/Complex_text_layout">complex text layout</a>.</p>
+<p class="magick-description">Render text right-to-left or left-to-right. Requires the <a href="https://github.com/HOST-Oman/libraqm">RAQM</a> delegate library and <a href="https://en.wikipedia.org/wiki/Complex_text_layout">complex text layout</a>.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="displace"></a>-displace <var>horizontal-scale</var>{%}{!}<br />-displace <var>horizontal-scale</var>x<var>vertical-scale</var>{%}{!}</h3>
</div>
-<p class="magick-description">shift image pixels as defined by a displacement map.</p>
+<p class="magick-description">Shift image pixels as defined by a displacement map.</p>
<p>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
@@ -2017,7 +2051,7 @@ X server. See <var>X(1)</var>.</p>
<h3><a class="anchor" id="dispose"></a>-dispose <var>method</var></h3>
</div>
-<p class="magick-description">define the GIF disposal image setting for images that are being created or read in. </p>
+<p class="magick-description">Define the GIF disposal image setting for images that are being created or read in. </p>
<p>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
@@ -2026,12 +2060,14 @@ animation is to be overlaid onto the display. </p>
<p>Here are the valid methods:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">Undefined</dt><dd class="col-md-8">0: No disposal specified (equivalent to '<code>none</code>').</dd>
<dt class="col-md-4">None</dt><dd class="col-md-8">1: Do not dispose, just overlay next frame image.</dd>
<dt class="col-md-4">Background</dt><dd class="col-md-8">2: Clear the frame area with the background color.</dd>
<dt class="col-md-4">Previous</dt><dd class="col-md-8">3: Clear to the image prior to this frames overlay.</dd>
</dl>
+</div>
<p>You can also use the numbers given above, which is what the GIF format
uses internally to represent the above settings. </p>
@@ -2048,14 +2084,14 @@ disposal method for images already in memory.</p>
<h3><a class="anchor" id="dissimilarity-threshold"></a>-dissimilarity-threshold <var>value</var></h3>
</div>
-<p class="magick-description">maximum RMSE for subimage match (default 0.2).</p>
+<p class="magick-description">Maximum RMSE for subimage match (default 0.2).</p>
<div style="margin: auto;">
<h3><a class="anchor" id="dissolve"></a>-dissolve <var>src_percent</var>[x<var>dst_percent</var>]</h3>
</div>
-<p class="magick-description">dissolve an image into another by the given percent.</p>
+<p class="magick-description">Dissolve an image into another by the given percent.</p>
<p>The opacity of the composite image is multiplied by the given percent, then
it is composited 'over' the main image. If <var>src_percent</var>
@@ -2071,7 +2107,7 @@ images, you would need to use dissolve values of '50,100'. </p>
<h3><a class="anchor" id="distort"></a>-distort <var>method arguments</var></h3>
</div>
-<p class="magick-description">distort an image, using the given <var>method</var> and its required <var>arguments</var>.</p>
+<p class="magick-description">Distort an image, using the given <var>method</var> and its required <var>arguments</var>.</p>
<p>The <var>arguments</var> is a single string containing a list
of floating point numbers separated by commas or spaces. The number of
@@ -2079,6 +2115,7 @@ and meaning of the floating point values depends on the distortion <var>method</
<p>Choose from these distortion types:</p>
+<div class="pre-scrollable">
<table class="table table-sm table-hover">
<tr>
<th style="width: 8%">Method</th>
@@ -2370,6 +2407,7 @@ and meaning of the floating point values depends on the distortion <var>method</
</tr>
</table>
+</div>
<p>To print a complete list of distortion methods, use <a href="command-line-options.html#list">-list
distort</a>.</p>
@@ -2474,7 +2512,7 @@ lookup value. This is typically only used for debugging EWA resampling. </p>
<h3><a class="anchor" id="distribute-cache"></a>-distribute-cache <var>port</var></h3>
</div>
-<p class="magick-description">launch a distributed pixel cache server. </p>
+<p class="magick-description">Launch a distributed pixel cache server. </p>
<div style="margin: auto;">
<h3><a class="anchor" id="dither"></a>-dither <var>method</var></h3>
@@ -2524,6 +2562,7 @@ operations.</p>
<p>The shape primitives:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">point</dt><dd class="col-md-8"> x,y</dd>
<dt class="col-md-4">line</dt><dd class="col-md-8"> x0,y0 x1,y1</dd>
@@ -2538,6 +2577,7 @@ operations.</p>
<dt class="col-md-4">path</dt><dd class="col-md-8">specification </dd>
<dt class="col-md-4">image</dt><dd class="col-md-8"> operator x0,y0 w,h filename</dd>
</dl>
+</div>
<p>The text primitive:</p>
@@ -2557,6 +2597,7 @@ scope to the <a href="command-line-options.html#draw">-draw</a> option in which
<p>The transformation primitives:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">rotate</dt><dd class="col-md-8">degrees</dd>
<dt class="col-md-4">translate</dt><dd class="col-md-8">dx,dy</dd>
@@ -2564,13 +2605,16 @@ scope to the <a href="command-line-options.html#draw">-draw</a> option in which
<dt class="col-md-4">skewX</dt><dd class="col-md-8">degrees</dd>
<dt class="col-md-4">skewY</dt><dd class="col-md-8">degrees</dd>
</dl>
+</div>
<p>The pixel operation primitives:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">color</dt><dd class="col-md-8">x0,y0 method</dd>
<dt class="col-md-4">matte</dt><dd class="col-md-8">x0,y0 method</dd>
</dl>
+</div>
<p>The shape primitives are drawn in the color specified by the preceding <a
href="command-line-options.html#fill">-fill</a> setting. For unfilled shapes, use <a
@@ -2674,14 +2718,15 @@ single or double quotes.</p>
<p>For example, the following annotates the image with <code>Works like
magick!</code> for an image titled <code>bird.miff</code>. </p>
-<pre class="highlight"><code>-draw "text 100,100 'Works like magick!' "
-</code></pre>
+<pre class="highlight"><code>-draw "text 100,100 'Works like magick!'"</code></pre>
<p>See the <a href="command-line-options.html#annotate">-annotate</a> option for another convenient way
to annotate an image with text.</p>
<p>The <code>rotate</code> primitive rotates subsequent shape primitives and
-text primitives about the origin of the main image.</p>
+text primitives about the origin of the main image:</p>
+
+<pre class="highlight"><code>-draw "rotate 45 text 10,10 'Works like magick!'"</code></pre>
<p>The <code>translate</code> primitive translates subsequent shape and text
primitives.</p>
@@ -2746,7 +2791,7 @@ Vector Graphics</a> format.</p>
<h3><a class="anchor" id="duplicate"></a>-duplicate <var>count,indexes</var></h3>
</div>
-<p class="magick-description">duplicate an image one or more times.</p>
+<p class="magick-description">Duplicate an image one or more times.</p>
<p>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
@@ -2759,13 +2804,13 @@ image sequence.</p>
<h3><a class="anchor" id="edge"></a>-edge <var>radius</var></h3>
</div>
-<p class="magick-description">detect edges within an image.</p>
+<p class="magick-description">Detect edges within an image.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="emboss"></a>-emboss <var>radius</var></h3>
</div>
-<p class="magick-description">emboss an image.</p>
+<p class="magick-description">Emboss an image.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="encipher"></a>-encipher <var>filename</var></h3>
@@ -2784,7 +2829,7 @@ Decipher an Image</a>.</p>
<h3><a class="anchor" id="encoding"></a>-encoding <var>type</var></h3>
</div>
-<p class="magick-description">specify the text encoding.</p>
+<p class="magick-description">Specify the text encoding.</p>
<p>Choose from</p>
@@ -2818,7 +2863,7 @@ Unicode Wansung
<h3><a class="anchor" id="equalize"></a>-equalize</h3>
</div>
-<p class="magick-description">perform histogram equalization on the image channel-by-channel.</p>
+<p class="magick-description">Perform histogram equalization on the image channel-by-channel.</p>
<p>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
@@ -2850,6 +2895,7 @@ a "normalized pixel" is that number divided by the maximum
normalized pixels are used, they are restored, following the other
calculations, to the full range by multiplying by <var>QuantumRange</var>.)</p>
+<div class="pre-scrollable">
<table class="table table-sm table-hover">
<col width="25%" />
<col width="75%" />
@@ -2903,6 +2949,7 @@ calculations, to the full range by multiplying by <var>QuantumRange</var>.)</p>
<tr><td>ThresholdWhite </td> <td>Threshold pixels to maximum values above <var>value</var>. </td></tr>
</tbody>
</table>
+</div>
<p>The specified functions are applied only to each previously set <a
href="command-line-options.html#channel" >-channel</a> in the image. If necessary, the results of the
@@ -3055,7 +3102,7 @@ href="command-line-options.html#style">-style</a>, and <a href="command-line-opt
<h3><a class="anchor" id="features"></a>-features <var>distance</var></h3>
</div>
-<p class="magick-description">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.</p>
+<p class="magick-description">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.</p>
<pre class="highlight"><code>Angular Second Moment Sum Entropy
Contrast Entropy
@@ -3070,7 +3117,7 @@ Sum Variance Maximum Correlation Coefficient
<h3><a class="anchor" id="fft"></a>-fft</h3>
</div>
-<p class="magick-description">implements the forward discrete Fourier transform (DFT).</p>
+<p class="magick-description">Implements the forward discrete Fourier transform (DFT).</p>
<p>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
@@ -3178,7 +3225,7 @@ href="http://www.fmwconcepts.com/imagemagick/fourier_transforms/fourier.html"
<h3><a class="anchor" id="fill"></a>-fill <var>color</var></h3>
</div>
-<p class="magick-description">color to use when filling a graphic primitive.</p>
+<p class="magick-description">Color to use when filling a graphic primitive.</p>
<p>This option accepts a color name, a hex color, or a numerical RGB, RGBA,
HSL, HSLA, CMYK, or CMYKA specification. See <a href="color.html" >Color Names</a> for
@@ -3248,6 +3295,7 @@ filter</a> option.</p>
use of these expert settings (see also <a href="command-line-options.html#define" >-define</a> and <a
href="command-line-options.html#set" >-set</a>):-</p>
+<div class="pre-scrollable">
<table class="table table-sm table-hover">
<tr>
<td>-define filter:blur=<var>factor</var></td>
@@ -3360,6 +3408,7 @@ href="command-line-options.html#set" >-set</a>):-</p>
</tr>
</table>
+</div>
<p>For example, to get a 8 lobe jinc windowed sinc filter (Genseng filter?):</p>
@@ -3410,7 +3459,7 @@ resizing.</p>
<h3><a class="anchor" id="flip"></a>-flip</h3>
</div>
-<p class="magick-description">create a <var>mirror image</var></p>
+<p class="magick-description">Create a <var>mirror image</var></p>
<p>reflect the scanlines in the vertical direction. The image will be mirrored
upside-down. </p>
@@ -3420,7 +3469,7 @@ upside-down. </p>
<h3><a class="anchor" id="floodfill"></a>-floodfill {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var> <var>color</var></h3>
</div>
-<p class="magick-description">floodfill the image with color at the specified offset.</p>
+<p class="magick-description">Floodfill the image with color at the specified offset.</p>
<p>Flood fill starts from the given 'seed point' which is not gravity affected.
Any color that matches within <a href="command-line-options.html#fuzz" >-fuzz</a> color distance of the
@@ -3441,7 +3490,7 @@ its 'color floodfill' drawing method. </p>
<h3><a class="anchor" id="flop"></a>-flop</h3>
</div>
-<p class="magick-description">create a <var>mirror image</var>.</p>
+<p class="magick-description">Create a <var>mirror image</var>.</p>
<p>Reflect the scanlines in the horizontal direction, just like the image in
a vertical mirror. </p>
@@ -3451,7 +3500,7 @@ a vertical mirror. </p>
<h3><a class="anchor" id="font"></a>-font <var>name</var></h3>
</div>
-<p class="magick-description">set the font to use when annotating images with text, or creating labels.</p>
+<p class="magick-description">Set the font to use when annotating images with text, or creating labels.</p>
<p>To print a complete list of fonts, use the <a href="command-line-options.html#list">-list font</a>
option (for versions prior to 6.3.6, use 'type' instead of 'font').</p>
@@ -3481,7 +3530,7 @@ href="command-line-options.html#fill">-fill</a> option.</p>
<h3><a class="anchor" id="format"></a>-format <var>type</var></h3>
</div>
-<p class="magick-description">the image format type.</p>
+<p class="magick-description">The image format type.</p>
<p>When used with the <code>mogrify</code> utility, this option converts any
image to the image <a href="formats.html">format</a> you specify.
@@ -3499,7 +3548,7 @@ filename becomes <var>image.tiff</var>.</p>
<h3><a class="anchor" id="format_identify_"></a>-format <var>string</var></h3>
</div>
-<p class="magick-description">output formatted image characteristics.</p>
+<p class="magick-description">Output formatted image characteristics.</p>
<p>See <a href="escape.html">Format and Print Image
Properties</a> for an explanation on how to specify the argument to this
@@ -3541,7 +3590,7 @@ affected by the <a href="command-line-options.html#gravity">-gravity</a> option.
<h3><a class="anchor" id="frame_import_"></a>-frame</h3>
</div>
-<p class="magick-description">include the X window frame in the imported image. </p>
+<p class="magick-description">Include the X window frame in the imported image. </p>
<div style="margin: auto;">
<h3><a class="anchor" id="function"></a>-function <var>function</var> <var>parameters</var></h3>
</div>
@@ -3570,6 +3619,7 @@ Arctan
<p>To print a complete list of <a href="command-line-options.html#function">-function</a> operators,
use <a href="command-line-options.html#list">-list function</a>. Descriptions follow.</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">Polynomial</dt>
<dd class="col-md-8"><p>The <code>Polynomial</code> function takes an arbitrary number of parameters,
@@ -3593,6 +3643,7 @@ polynomials) of the <a href="command-line-options.html#evaluate">-evaluate</a> o
href="command-line-options.html#level">-level</a> operator also affects channels linearly. Some
correspondences follow.</p>
+<div class="pre-scrollable">
<table class="table table-sm table-hover">
<tr>
<td>-evaluate Set <var>value</var> </td>
@@ -3617,6 +3668,7 @@ correspondences follow.</p>
<td>(Reduce contrast. Here, A=(white-black)/100 and B=black/100.)</td>
</tr>
</table>
+</div>
<p>The <code>Polynomial</code> function gives great versatility, since
polynomials can be used to fit any continuous curve to any degree of accuracy
@@ -3654,6 +3706,7 @@ is 0.</p>
<code>Cos</code> of the <a href="command-line-options.html#evaluate">-evaluate</a> operator by allowing
varying amplitude, phase and bias. The correspondence is as follows.</p>
+<div class="pre-scrollable">
<table class="table table-sm table-hover">
<tr>
<td>-evaluate Sin <var>freq</var> </td>
@@ -3664,6 +3717,7 @@ varying amplitude, phase and bias. The correspondence is as follows.</p>
<td>-function Sinusoid <var>freq</var>,90 </td>
</tr>
</table>
+</div>
</dd>
<dt class="col-md-4">ArcSin</dt>
<dd class="col-md-8">
@@ -3699,6 +3753,7 @@ All these values can be adjusted via the arguments.</p>
</code></pre>
</dd>
</dl>
+</div>
@@ -3726,7 +3781,7 @@ appending <code>%</code> as a percentage of the maximum possible intensity (255,
<h3><a class="anchor" id="fx"></a>-fx <var>expression</var></h3>
</div>
-<p class="magick-description">apply a mathematical expression to an image or image channels.</p>
+<p class="magick-description">Apply a mathematical expression to an image or image channels.</p>
<p>If the first character of <var>expression</var> is <code>@</code>,
the expression is read from a file titled by the remaining characters in the
@@ -3741,7 +3796,7 @@ option.</p>
<h3><a class="anchor" id="gamma"></a>-gamma <var>value</var></h3>
</div>
-<p class="magick-description">level of gamma correction.</p>
+<p class="magick-description">Level of gamma correction.</p>
<p>The same color image displayed on two different workstations may look
different due to differences in the display monitor. Use gamma correction to
@@ -3771,7 +3826,7 @@ chunk, use</p>
<p>Note that gamma adjustments are also available via the <a href="command-line-options.html#level">-level</a> operator.</p>
<div style="margin: auto;">
- <h3><a class="anchor" id="gaussian-blur"></a>-gaussian-blur <var>radius</var><br />-gaussian-blur <var>radius</var>x<var>sigma</var></h3>
+ <h3><a class="anchor" id="gaussian-blur"></a>-gaussian-blur <var>radius</var><br />-gaussian-blur <var>radius</var>{x<var>sigma</var>}</h3>
</div>
<p class="magick-description">Blur the image with a Gaussian operator.</p>
@@ -3871,7 +3926,7 @@ within a tile. The default gravity is <code>Center</code> for this purpose.</p>
<h3><a class="anchor" id="grayscale"></a>-grayscale <var>method</var></h3>
</div>
-<p class="magick-description">convert image to grayscale.</p>
+<p class="magick-description">Convert image to grayscale.</p>
<p>This will use one of the <a href="command-line-options.html#intensity" >-intensity</a> methods to
convert the given image into a grayscale image. </p>
@@ -3889,8 +3944,6 @@ or
<code>magick in.png -colorspace LinearGray out.png</code>
</pre>
-<p>Note that LinearGray is new as of Imagemagick 6.9.9-29 and 7.0.7-17.</p>
-
<p>Similarly, to convert an image to (non-linear) Rec709Luma grayscale, type:</p>
<pre class="highlight"><code>magick in.png -grayscale Rec709Luma out.png
@@ -3915,14 +3968,14 @@ will not affect other operations that may use that setting.</p>
<h3><a class="anchor" id="green-primary"></a>-green-primary <var>x,y</var></h3>
</div>
-<p class="magick-description">green chromaticity primary point.</p>
+<p class="magick-description">Green chromaticity primary point.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="hald-clut"></a>-hald-clut</h3>
</div>
-<p class="magick-description">apply a Hald color lookup table to the image.</p>
+<p class="magick-description">Apply a Hald color lookup table to the image.</p>
<p>A Hald color lookup table is a 3-dimensional color cube mapped to 2
dimensions. Create it with the <code>HALD:</code> prefix (e.g. HALD:8). You
@@ -3952,19 +4005,19 @@ mapping. </p>
<h3><a class="anchor" id="help"></a>-help</h3>
</div>
-<p class="magick-description">print usage instructions.</p>
+<p class="magick-description">Print usage instructions.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="highlight-color"></a>-highlight-color <var>color</var></h3>
</div>
-<p class="magick-description">when comparing images, emphasize pixel differences with this color.</p>
+<p class="magick-description">When comparing images, emphasize pixel differences with this color.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="hough-lines"></a>-hough-lines <var>width</var>x<var>height</var>{<var>+threshold</var>}</h3>
</div>
-<p class="magick-description">identify straight lines in the image (e.g. -hough-lines 9x9+195).</p>
+<p class="magick-description">Identify straight lines in the image (e.g. -hough-lines 9x9+195).</p>
<p>Use the Hough line detector with any binary edge extracted image to locate and draw any straight lines that it finds.</p>
@@ -3986,7 +4039,7 @@ mapping. </p>
<h3><a class="anchor" id="iconGeometry"></a>-iconGeometry <var>geometry</var></h3>
</div>
-<p class="magick-description">specify the icon geometry.</p>
+<p class="magick-description">Specify the icon geometry.</p>
<p>Offsets, if present in the geometry specification, are handled in the same
manner as the <a href="command-line-options.html#geometry">-geometry</a> option, using X11 style to
@@ -3998,13 +4051,13 @@ handle negative offsets.</p>
<h3><a class="anchor" id="iconic"></a>-iconic</h3>
</div>
-<p class="magick-description">start in icon mode in X Windows", 'animate', 'display</p>
+<p class="magick-description">Start in icon mode in X Windows", 'animate', 'display</p>
<div style="margin: auto;">
<h3><a class="anchor" id="identify"></a>-identify</h3>
</div>
-<p class="magick-description">identify the format and characteristics of the image.</p>
+<p class="magick-description">Identify the format and characteristics of the image.</p>
<p>This information is printed: image scene number; image name; image size;
the image class (<var>DirectClass</var> or <var>PseudoClass</var>); the total number of unique colors; and the
@@ -4024,7 +4077,7 @@ image histogram, and others.</p>
<h3><a class="anchor" id="ift"></a>-ift</h3>
</div>
-<p class="magick-description">implements the inverse discrete Fourier transform (DFT).</p>
+<p class="magick-description">Implements the inverse discrete Fourier transform (DFT).</p>
<p>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
@@ -4063,19 +4116,19 @@ and imaginary images from the frequency domain to a single image in the normal
<h3><a class="anchor" id="immutable"></a>-immutable</h3>
</div>
-<p class="magick-description">make image immutable.</p>
+<p class="magick-description">Make image immutable.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="implode"></a>-implode <var>factor</var></h3>
</div>
-<p class="magick-description">implode image pixels about the center.</p>
+<p class="magick-description">Implode image pixels about the center.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="insert"></a>-insert <var>index</var></h3>
</div>
-<p class="magick-description">insert the last image into the image sequence.</p>
+<p class="magick-description">Insert the last image into the image sequence.</p>
<p>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
@@ -4090,7 +4143,7 @@ Consequently this has no effect on the image sequence order.</p>
<h3><a class="anchor" id="intensity"></a>-intensity <var>method</var></h3>
</div>
-<p class="magick-description">method to generate intensity value from pixel.</p>
+<p class="magick-description">Method to generate intensity value from pixel.</p>
<p>ImageMagick provides a number of methods used in situations where an
operator needs to determine a single grayscale value for some purpose, from
@@ -4101,6 +4154,7 @@ an image with red, green, and blue pixel components. Typically the
the pixel values to linear-RGB or non-linear sRGB colorspace before
being applied to calculate the final greyscale value. </p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">Rec601Luma</dt><dd class="col-md-8"> 0.298839R' + 0.586811G'+ 0.114350B'</dd>
<dt class="col-md-4">Rec601Luminance</dt><dd class="col-md-8"> 0.298839R + 0.586811G + 0.114350B</dd>
@@ -4109,6 +4163,7 @@ being applied to calculate the final greyscale value. </p>
<dt class="col-md-4">Brightness</dt><dd class="col-md-8"> max(R', G', B')</dd>
<dt class="col-md-4">Lightness</dt><dd class="col-md-8"> (min(R', G', B') + max(R', G', B')) / 2.0</dd>
</dl>
+</div>
<p>Note that the above R,G,B values is the image's linear-RGB values, while
R',G',B' are sRGB non-linear values. </p>
@@ -4117,11 +4172,13 @@ R',G',B' are sRGB non-linear values. </p>
current value in the images respective R,G,B channel regardless of
what that is, or what colorspace the image is currently using.</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">Average</dt><dd class="col-md-8">(R' + G' + B') / 3.0</dd>
<dt class="col-md-4">MS</dt><dd class="col-md-8">(R'^2 + G'^2 + B'^2) / 3.0</dd>
<dt class="col-md-4">RMS</dt><dd class="col-md-8">sqrt( (R'^2 + G'^2 + B'^2) / 3.0 )</dd>
</dl>
+</div>
<p>These methods are often used for other purposes, such as generating a
grayscale difference image between two color images (using <a href="command-line-options.html#compose"
@@ -4168,7 +4225,7 @@ function.</p>
<h3><a class="anchor" id="intent"></a>-intent <var>type</var></h3>
</div>
-<p class="magick-description">use this type of rendering intent when managing the image color.</p>
+<p class="magick-description">Use this type of rendering intent when managing the image color.</p>
<p>Use this option to affect the color management operation of an image (see
<a href="command-line-options.html#profile">-profile</a>). Choose from these intents: <code>Absolute,
@@ -4182,7 +4239,7 @@ Perceptual, Relative, Saturation</code>.</p>
<h3><a class="anchor" id="interlace"></a>-interlace <var>type</var></h3>
</div>
-<p class="magick-description">the type of interlacing scheme.</p>
+<p class="magick-description">The type of interlacing scheme.</p>
<p>Choose from:</p>
@@ -4225,6 +4282,7 @@ 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. </p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">average</dt>
<dd class="col-md-8">The average color of the surrounding four pixels</dd>
@@ -4251,6 +4309,7 @@ point that falls between two, or even four different colored pixels. </p>
<dt class="col-md-4">spline</dt>
<dd class="col-md-8">Direct spline curves (colors are blurred)</dd>
</dl>
+</div>
<p>This most important for distortion operators such as <a href="command-line-options.html#distort"
>-distort</a>, <a href="command-line-options.html#implode" >-implode</a>, <a href="command-line-options.html#transform"
@@ -4266,19 +4325,19 @@ lookup for positions outside the boundaries of the image. </p>
<h3><a class="anchor" id="interline-spacing"></a>-interline-spacing <var>value</var></h3>
</div>
-<p class="magick-description">the space between two text lines.</p>
+<p class="magick-description">The space between two text lines.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="interword-spacing"></a>-interword-spacing <var>value</var></h3>
</div>
-<p class="magick-description">the space between two words.</p>
+<p class="magick-description">The space between two words.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="kerning"></a>-kerning <var>value</var></h3>
</div>
-<p class="magick-description">the space between two letters.</p>
+<p class="magick-description">The space between two letters.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="kmeans"></a>-kmeans <var>colors</var>{x<var>iterations</var>}{+<var>tolerance</var>}</h3>
@@ -4287,10 +4346,10 @@ lookup for positions outside the boundaries of the image. </p>
<p class="magick-description">Kmeans (iterative) color reduction (e.g. <code>-kmeans 5x100+0.01</code>). Colors is the desired number of colors. Initial colors are found using color quantization. Iterations is the stopping number of iterations (default=100). Convergence is the stopping threshold on the color change between iterations (default=0.01). Processing finishes, if either iterations or tolerance are reached. Use <code>-define kmeans:seed-colors=<var>color-list</var></code> to initialize the colors, where color-list is a semicolon delimited list of seed colors (e.g. <code>-define kmeans:seed-colors="red;sRGB(19,167,254);#00ffff</code>). A color list overrides the color quantization. A non-empty list of colors overrides the number of colors. Any unassigned initial colors are assigned random colors from the image.</p>
<div style="margin: auto;">
- <h3><a class="anchor" id="kuwahara"></a>-kuwahara <var>radius</var><br />-kuwahara <var>radius</var>x<var>sigma</var></h3>
+ <h3><a class="anchor" id="kuwahara"></a>-kuwahara <var>radius</var><br />-kuwahara <var>radius</var>{x<var>sigma</var>}</h3>
</div>
-<p class="magick-description">edge preserving noise reduction filter.</p>
+<p class="magick-description">Edge preserving noise reduction filter.</p>
<p>The <var >radius</var> is more important than the <var >sigma</var>. If <var >sigma</var> is left off, it will be computed automatically from the <var >radius</var> as <var >sigma</var>=<var >radius</var>-0.5. The <var >sigma</var> provides a bit of additional smoothing control.</p>
@@ -4299,7 +4358,7 @@ lookup for positions outside the boundaries of the image. </p>
<h3><a class="anchor" id="label"></a>-label <var>name</var></h3>
</div>
-<p class="magick-description">assign a label to an image.</p>
+<p class="magick-description">Assign a label to an image.</p>
<p>Use this option to assign a specific label to the image, as it is read in
or created. You can use the <a href="command-line-options.html#set" >-set</a> operation to re-assign
@@ -4339,7 +4398,7 @@ formatting characters are recognized.</p>
<h3><a class="anchor" id="lat"></a>-lat <var>width</var><br />-lat <var>width</var>x<var>height</var>{<var>+-</var>}<var>offset</var>{<var>%</var>}</h3>
</div>
-<p class="magick-description">perform local adaptive threshold.</p>
+<p class="magick-description">Perform local adaptive threshold.</p>
<p>Adaptively threshold each pixel based on the value of pixels in a
surrounding window. If the current pixel is lighter than this average plus
@@ -4357,12 +4416,13 @@ the local background color, from which to separate the foreground color. </p>
<h3><a class="anchor" id="layers"></a>-layers <var>method</var></h3>
</div>
-<p class="magick-description">handle multiple images forming a set of image layers or animation frames.</p>
+<p class="magick-description">Handle multiple images forming a set of image layers or animation frames.</p>
<p>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. </p>
+<div class="pre-scrollable">
<table class="table table-sm table-hover">
<tbody>
<tr>
@@ -4613,6 +4673,7 @@ animation, or a fully-'coalesced' animation sequence. </p>
</tbody>
</table>
+</div>
<p>To print a complete list of layer types, use <a href="command-line-options.html#list">-list layers</a>.</p>
@@ -4629,7 +4690,7 @@ settings. </p>
<h3><a class="anchor" id="level"></a>-level <var>black_point</var>{,<var>white_point</var>}{<var>%</var>}{,<var>gamma</var>}</h3>
</div>
-<p class="magick-description">adjust the level of image channels.</p>
+<p class="magick-description">Adjust the level of image channels.</p>
<p>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
@@ -4667,7 +4728,7 @@ values (0 is opaque) and not as 'alpha' values (0 is transparent).</p>
<h3><a class="anchor" id="level-colors"></a>-level-colors {<var>black_color</var>}{,}{<var>white_color</var>}</h3>
</div>
-<p class="magick-description">adjust the level of an image using the provided dash separated colors.</p>
+<p class="magick-description">Adjust the level of an image using the provided dash separated colors.</p>
<p>This function is exactly like <a href="command-line-options.html#level">-level</a>, except that the
value for each color channel is determined by the
@@ -4826,13 +4887,13 @@ normalization of mathematical images. </p>
<h3><a class="anchor" id="linewidth"></a>-linewidth</h3>
</div>
-<p class="magick-description">the line width for subsequent draw operations.</p>
+<p class="magick-description">The line width for subsequent draw operations.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="liquid-rescale"></a>-liquid-rescale <var>geometry</var></h3>
</div>
-<p class="magick-description">rescale image with seam-carving.</p>
+<p class="magick-description">Rescale image with seam-carving.</p>
<p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
@@ -4919,7 +4980,7 @@ VirtualPixel
list</code>" to get a complete listing of all the "<code>-list</code>" arguments
available:</p>
-<pre class="highlight"><code>identify -list list
+<pre class="highlight"><code>magick identify -list list
</code></pre>
<div style="margin: auto;">
@@ -4934,6 +4995,7 @@ href="command-line-options.html#debug">-debug</a> option is active.</p>
<p>You can display the following components by embedding special format
characters:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">%d</dt><dd class="col-md-8">domain</dd>
<dt class="col-md-4">%e</dt><dd class="col-md-8">event</dd>
@@ -4948,6 +5010,7 @@ characters:</p>
<dt class="col-md-4">\n</dt><dd class="col-md-8">newline</dd>
<dt class="col-md-4">\r</dt><dd class="col-md-8">carriage return</dd>
</dl>
+</div>
<p>For example:</p>
@@ -4960,7 +5023,7 @@ characters:</p>
<h3><a class="anchor" id="loop"></a>-loop <var>iterations</var></h3>
</div>
-<p class="magick-description">add Netscape loop extension to your GIF animation.</p>
+<p class="magick-description">Add Netscape loop extension to your GIF animation.</p>
<p>Set iterations to zero to repeat the animation an infinite number of times,
otherwise the animation repeats itself up to <var>iterations</var>
@@ -4970,13 +5033,13 @@ times.</p>
<h3><a class="anchor" id="lowlight-color"></a>-lowlight-color <var>color</var></h3>
</div>
-<p class="magick-description">when comparing images, de-emphasize pixel differences with this color.</p>
+<p class="magick-description">When comparing images, de-emphasize pixel differences with this color.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="magnify"></a>-magnify</h3>
</div>
-<p class="magick-description">double or triple the size of the image with pixel art scaling. Specify an alternative scaling method with <code>-define magnify:method=<var>method</var></code> Choose from these methods: <code>eagle2X, eagle3X, eagle3XB, epb2X, fish2X, hq2X, scale2X, scale3X, xbr2X</code>. The default is scale2X.</p>
+<p class="magick-description">Double or triple the size of the image with pixel art scaling. Specify an alternative scaling method with <code>-define magnify:method=<var>method</var></code> Choose from these methods: <code>eagle2X, eagle3X, eagle3XB, epb2X, fish2X, hq2X, scale2X, scale3X, xbr2X</code>. The default is scale2X.</p>
<div style="margin: auto;">
@@ -5005,10 +5068,11 @@ the type and <code>display</code> searches the list of colormap types in
<h3><a class="anchor" id="map_stream_"></a>-map <var>components</var></h3>
</div>
-<p class="magick-description">pixel map.</p>
+<p class="magick-description">Pixel map.</p>
<p>Here are the valid components of a map:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">r</dt><dd class="col-md-8"> red pixel component</dd>
<dt class="col-md-4">g</dt><dd class="col-md-8"> green pixel component</dd>
@@ -5022,6 +5086,7 @@ the type and <code>display</code> searches the list of colormap types in
<dt class="col-md-4">k</dt><dd class="col-md-8"> black pixel component</dd>
<dt class="col-md-4">p</dt><dd class="col-md-8"> pad component (always 0)</dd>
</dl>
+</div>
<p>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).</p>
@@ -5042,7 +5107,7 @@ style="background-color: #bdbdbd;">this shade of gray</span>.</p>
<h3><a class="anchor" id="maximum"></a>-maximum</h3>
</div>
-<p class="magick-description">return the maximum intensity of an image sequence.</p>
+<p class="magick-description">Return the maximum intensity of an image sequence.</p>
<p>Select the 'maximum' value from all the surrounding pixels. </p>
@@ -5053,7 +5118,7 @@ name. </p>
<h3><a class="anchor" id="median"></a>-median <var>geometry</var></h3>
</div>
-<p class="magick-description">apply a median filter to the image.</p>
+<p class="magick-description">Apply a median filter to the image.</p>
<p>Select the 'middle' value from all the surrounding pixels. </p>
@@ -5064,7 +5129,7 @@ name. </p>
<h3><a class="anchor" id="mean-shift"></a>-mean-shift <var>width</var>x<var>height</var>{<var>+distance</var>{%}</h3>
</div>
-<p class="magick-description">image noise removal and color reduction/segmentation (e.g. -mean-shift 7x7+10%).</p>
+<p class="magick-description">Image noise removal and color reduction/segmentation (e.g. -mean-shift 7x7+10%).</p>
<p><var>width</var>x<var>height</var> is the window size and <var>distance</var> is the color distance measured in the range 0 to 1 or 0 to 100%</p>
@@ -5078,6 +5143,7 @@ name. </p>
<p>Choose from:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">AE</dt><dd class="col-md-8"> absolute error count, number of different pixels (-fuzz affected)</dd>
<dt class="col-md-4">DSSIM</dt><dd class="col-md-8"> structural dissimilarity index</dd>
@@ -5092,6 +5158,7 @@ name. </p>
<dt class="col-md-4">RMSE</dt><dd class="col-md-8"> root mean squared (normalized root mean squared)</dd>
<dt class="col-md-4">SSIM</dt><dd class="col-md-8"> structural similarity index</dd>
</dl>
+</div>
<p>Control the '<code>AE</code>', or absolute count of pixels that are different,
with the <a href="command-line-options.html#fuzz" >-fuzz</a> factor (ignore pixels which
@@ -5116,7 +5183,7 @@ metric</a> option.</p>
<h3><a class="anchor" id="minimum"></a>-minimum</h3>
</div>
-<p class="magick-description">return the minimum intensity of an image sequence.</p>
+<p class="magick-description">Return the minimum intensity of an image sequence.</p>
<p>Select the 'minimal' value from all the surrounding pixels. </p>
@@ -5129,7 +5196,7 @@ name. </p>
<h3><a class="anchor" id="mode"></a>-mode <var>geometry</var></h3>
</div>
-<p class="magick-description">make each pixel the \'predominant color\' of the neighborhood.'</p>
+<p class="magick-description">Make each pixel the \'predominant color\' of the neighborhood.'</p>
<div style="margin: auto;">
<h3>-mode <var>value</var></h3>
@@ -5185,27 +5252,27 @@ modulate. Choose from <code>HCL</code>, <code>HCLp</code>, <code>HSB</code>, <c
<h3><a class="anchor" id="moments"></a>-moments</h3>
</div>
-<p class="magick-description">report image moments and perceptual hash.</p>
+<p class="magick-description">Report image moments and perceptual hash.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="monitor"></a>-monitor</h3>
</div>
-<p class="magick-description">monitor progress.</p>
+<p class="magick-description">Monitor progress.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="monochrome"></a>-monochrome</h3>
</div>
-<p class="magick-description">transform the image to black and white.</p>
+<p class="magick-description">Transform the image to black and white.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="morph"></a>-morph <var>frames</var></h3>
</div>
-<p class="magick-description">morphs an image sequence.</p>
+<p class="magick-description">Morphs an image sequence.</p>
<p>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
@@ -5219,25 +5286,23 @@ argument determine how many images to interpolate between each image. </p>
<h3>-morphology <var>method</var> <var>kernel</var></h3>
</div>
-<p class="magick-description">apply a morphology method to the image.</p>
+<p class="magick-description">Apply a morphology method to the image.</p>
-<p>Until I get around to writing an option summary for this, see <a
-href="https://legacy.imagemagick.org/Usage/morphology/" >IM Usage Examples,
-Morphology</a>. </p>
+<p>See <a href="https://legacy.imagemagick.org/Usage/morphology/" >IM Usage Examples, Morphology</a>. </p>
<div style="margin: auto;">
<h3><a class="anchor" id="mosaic"></a>-mosaic</h3>
</div>
-<p class="magick-description">an simple alias for the <a href="command-line-options.html#layers" >-layers</a> method "mosaic"</p>
+<p class="magick-description">An simple alias for the <a href="command-line-options.html#layers" >-layers</a> method "mosaic"</p>
<div style="margin: auto;">
- <h3><a class="anchor" id="motion-blur"></a>-motion-blur <var>radius</var><br />-motion-blur <var>radius</var>x<var>sigma</var>+<var>angle</var></h3>
+ <h3><a class="anchor" id="motion-blur"></a>-motion-blur <var>radius</var><br />-motion-blur <var>radius</var>{x<var>sigma</var>}+<var>angle</var></h3>
</div>
-<p class="magick-description">simulate motion blur.</p>
+<p class="magick-description">Simulate motion blur.</p>
<p>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
@@ -5254,12 +5319,12 @@ pixels which are outside the image proper are blurred into the final result.
<h3><a class="anchor" id="name"></a>-name</h3>
</div>
-<p class="magick-description">name an image.</p>
+<p class="magick-description">Name an image.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="negate"></a>-negate</h3>
</div>
-<p class="magick-description">replace each pixel with its complementary color.</p>
+<p class="magick-description">Replace each pixel with its complementary color.</p>
<p>The red, green, and blue intensities of an image are negated. White becomes
black, yellow becomes blue, etc. Use <a href="command-line-options.html#negate">+negate</a> to only
@@ -5340,7 +5405,7 @@ that is better suited to mathematically generated images. </p>
<h3><a class="anchor" id="opaque"></a>-opaque <var>color</var></h3>
</div>
-<p class="magick-description">change this color to the fill color within the image.</p>
+<p class="magick-description">Change this color to the fill color within the image.</p>
<p>The <var>color</var> argument is defined using the format
described under the <a href="command-line-options.html#fill" >-fill</a> option. The <a href="command-line-options.html#fuzz"
@@ -5363,7 +5428,7 @@ href="command-line-options.html#channel">-channel</a> to enable alpha channel ha
<h3><a class="anchor" id="ordered-dither"></a>-ordered-dither <var>threshold_map</var>{,<var>level</var>...}</h3>
</div>
-<p class="magick-description">dither the image using a pre-defined ordered dither <var>threshold map</var> specified, and a uniform color map with the
+<p class="magick-description">Dither the image using a pre-defined ordered dither <var>threshold map</var> specified, and a uniform color map with the
given number of <var>levels</var> per color channel.</p>
<p>You can choose from these standard threshold maps:</p>
@@ -5422,7 +5487,7 @@ after being created. </p>
<h3><a class="anchor" id="orient"></a>-orient <var>image orientation</var></h3>
</div>
-<p class="magick-description">specify orientation of a digital camera image.</p>
+<p class="magick-description">Specify orientation of a digital camera image.</p>
<p>Choose from these orientations:</p>
@@ -5454,7 +5519,7 @@ href="command-line-options.html#page">-page</a> <code>Letter+43+43</code>).</p>
<p>Use <var>media</var> as shorthand to specify the dimensions (<var>width</var>x<var>height</var>) of the <var>PostScript</var> page in dots per inch or a TEXT page in pixels.
The choices for paper sizes are: <code>4x6</code>, <code>5x7</code>, <code>7x9</code>, <code>8x10</code>, <code>9x11</code>, <code>9x12</code>, <code>10x13</code>, <code>10x14</code>, <code>11x17</code>, <code>4A0</code>, <code>2A0</code>, <code>a0</code>, <code>a1</code>, <code>a2</code>, <code>a3</code>, <code>a4</code>, <code>a4small</code>, <code>a5</code>, <code>a6</code>, <code>a7</code>, <code>a8</code>, <code>a9</code>, <code>a10</code>, <code>archa</code>, <code>archb</code>, <code>archC</code>, <code>archd</code>, <code>arche</code>, <code>b0</code>, <code>b1</code>, <code>b10</code>, <code>b2</code>, <code>b3</code>, <code>b4</code>, <code>b5</code>, <code>b6</code>, <code>b7</code>, <code>b8</code>, <code>b9</code>, <code>c0</code>, <code>c1</code>, <code>c2</code>, <code>c3</code>, <code>c4</code>, <code>c5</code>, <code>c6</code>, <code>c7</code>, <code>csheet</code>, <code>dsheet</code>, <code>esheet</code>, <code>executive</code>, <code>flsa</code>, <code>flse</code>, <code>folio</code>, <code>halfletter</code>, <code>isob0</code>, <code>isob1</code>, <code>isob10</code>, <code>isob2</code>, <code>isob3</code>, <code>isob4</code>, <code>isob5</code>, <code>isob6</code>, <code>isob7</code>, <code>isob8</code>, <code>isob9</code>, <code>jisb0</code>, <code>jisb1</code>, <code>jisb2</code>, <code>jisb3</code>, <code>jisb4</code>, <code>jisb5</code>, <code>jisb6</code>, <code>ledger</code>, <code>legal</code>, <code>letter</code>, <code>lettersmall</code>, <code>monarch</code>, <code>quarto</code>, <code>statement</code>, <code>tabloid</code>. To determine the cooresponding size in pixels at 72DPI, use this command for example:</p>
-<pre class="highlight"><code>convert xc: -format "%[papersize:a4]" info:</code></pre>
+<pre class="highlight"><code>magick xc: -format "%[papersize:a4]" info:</code></pre>
<p>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
@@ -5487,7 +5552,7 @@ present with a value other than <var>NorthWest</var>.</p>
<h3><a class="anchor" id="paint"></a>-paint <var>radius</var></h3>
</div>
-<p class="magick-description">simulate an oil painting.</p>
+<p class="magick-description">Simulate an oil painting.</p>
<p>Each pixel is replaced by the most frequent color in a circular
neighborhood whose width is specified with <var>radius</var>.</p>
@@ -5495,7 +5560,7 @@ neighborhood whose width is specified with <var>radius</var>.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="path"></a>-path <var>path</var></h3></div>
-<p class="magick-description">write images to this path on disk.</p>
+<p class="magick-description">Write images to this path on disk.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="pause_animate_"></a>-pause <var>seconds</var></h3>
@@ -5517,25 +5582,25 @@ neighborhood whose width is specified with <var>radius</var>.</p>
<h3><a class="anchor" id="perceptible"></a>-perceptible <var>epsilon</var></h3>
</div>
-<p class="magick-description">set each pixel whose value is less than |<var>epsilon</var>| to <var>-epsilon</var> or <var>epsilon</var> (whichever is closer) otherwise the pixel value remains unchanged.</p>
+<p class="magick-description">Set each pixel whose value is less than |<var>epsilon</var>| to <var>-epsilon</var> or <var>epsilon</var> (whichever is closer) otherwise the pixel value remains unchanged.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="ping"></a>-ping</h3>
</div>
-<p class="magick-description">efficiently determine these image characteristics: 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.). Use <code>+ping</code> to ensure accurate image properties.</p>
+<p class="magick-description">Efficiently determine these image characteristics: 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.). Use <code>+ping</code> to ensure accurate image properties.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="pointsize"></a>-pointsize <var>value</var></h3>
</div>
-<p class="magick-description">pointsize of the PostScript, OPTION1, or TrueType font.</p>
+<p class="magick-description">Pointsize of the PostScript, OPTION1, or TrueType font.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="polaroid"></a>-polaroid <var>angle</var></h3>
</div>
-<p class="magick-description">simulate a Polaroid picture.</p>
+<p class="magick-description">Simulate a Polaroid picture.</p>
<p>Use <code>+polaroid</code> to rotate the image at a random angle between -15 and +15 degrees.</p>
@@ -5543,7 +5608,7 @@ neighborhood whose width is specified with <var>radius</var>.</p>
<h3><a class="anchor" id="poly"></a>-poly <var>"wt,exp ..."</var></h3>
</div>
-<p class="magick-description">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.</p>
+<p class="magick-description">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.</p>
<p> 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.</p>
@@ -5566,7 +5631,7 @@ neighborhood whose width is specified with <var>radius</var>.</p>
<h3><a class="anchor" id="posterize"></a>-posterize <var>levels</var></h3>
</div>
-<p class="magick-description">reduce the image to a limited number of color levels per channel.</p>
+<p class="magick-description">Reduce the image to a limited number of color levels per channel.</p>
<p>Very low values of <var>levels</var>, e.g., 2, 3, 4, have the most
visible effect.</p>
@@ -5575,13 +5640,13 @@ visible effect.</p>
<h3><a class="anchor" id="precision"></a>-precision <var>value</var></h3>
</div>
-<p class="magick-description">set the maximum number of significant digits to be printed.</p>
+<p class="magick-description">Set the maximum number of significant digits to be printed.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="preview"></a>-preview <var>type</var></h3>
</div>
-<p class="magick-description">image preview type.</p>
+<p class="magick-description">Image preview type.</p>
<p>Use this option to affect the preview operation of an image (e.g.
<code>magick file.png -preview Gamma Preview:gamma.png</code>). Choose from
@@ -5627,13 +5692,13 @@ Wave
<h3><a class="anchor" id="print"></a>-print <var>string</var></h3>
</div>
-<p class="magick-description">interpret string and print to console.</p>
+<p class="magick-description">Interpret string and print to console.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="process"></a>-process <var>command</var></h3>
</div>
-<p class="magick-description">process the image with a custom image filter.</p>
+<p class="magick-description">Process the image with a custom image filter.</p>
<p>The command arguments has the form <code>"module arg1 arg2 arg3 ...
argN"</code> where <code>module</code> is the name of the module to invoke (e.g.
@@ -5657,7 +5722,7 @@ wildcard expressions may be used to remove more than one profile. Here we
remove all profiles from the image except for the XMP profile: <code>+profile
"!xmp,*"</code>. </p>
-<p>Use <code>identify -verbose</code> to find out which profiles are in the
+<p>Use <code>magick identify -verbose</code> to find out which profiles are in the
image file. Use <a href="command-line-options.html#strip">-strip</a> to remove all profiles (and
comments).</p>
@@ -5720,6 +5785,7 @@ compression.</p>
<p>If filter-type is 4 or less, the specified PNG filter-type is used for
all scanlines:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">0</dt><dd class="col-md-8">none</dd>
<dt class="col-md-4">1</dt><dd class="col-md-8">sub</dd>
@@ -5727,6 +5793,7 @@ all scanlines:</p>
<dt class="col-md-4">3</dt><dd class="col-md-8">average</dd>
<dt class="col-md-4">4</dt><dd class="col-md-8">Paeth</dd>
</dl>
+</div>
<p>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
@@ -5768,7 +5835,7 @@ the <a href="http://www.w3.org/pub/WWW/TR">PNG</a> specification.</p>
<h3><a class="anchor" id="quantize"></a>-quantize <var>colorspace</var></h3>
</div>
-<p class="magick-description">reduce colors using this colorspace.</p>
+<p class="magick-description">Reduce colors using this colorspace.</p>
<p>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 <a
@@ -5781,7 +5848,7 @@ GIF, and PNG8.</p>
<h3><a class="anchor" id="quiet"></a>-quiet</h3>
</div>
-<p class="magick-description">suppress all warning messages. Error messages are still reported.</p>
+<p class="magick-description">Suppress all warning messages. Error messages are still reported.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="radial-blur"></a>-radial-blur <var>angle</var></h3>
@@ -5901,7 +5968,7 @@ in the same manner as in <a href="command-line-options.html#crop">-crop</a>.</p>
<h3><a class="anchor" id="remote"></a>-remote</h3>
</div>
-<p class="magick-description">perform a remote operation.</p>
+<p class="magick-description">Perform a remote operation.</p>
<p>The only command recognized is the name of an image file to load.</p>
@@ -5913,7 +5980,7 @@ specify which application to control.</p>
<h3><a class="anchor" id="render"></a>-render</h3>
</div>
-<p class="magick-description">render vector operations.</p>
+<p class="magick-description">Render vector operations.</p>
<p>Use <a href="command-line-options.html#render">+render</a> to turn off rendering vector operations.
This useful when saving the result to vector formats such as MVG or SVG.</p>
@@ -5994,7 +6061,7 @@ correction, apply the transform, then restore it like this:</p>
<h3><a class="anchor" id="respect-parentheses"></a>-respect-parentheses</h3>
</div>
-<p class="magick-description">settings remain in effect until parenthesis boundary.</p>
+<p class="magick-description">Settings remain in effect until parenthesis boundary.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="reverse"></a>-reverse</h3>
@@ -6007,7 +6074,7 @@ correction, apply the transform, then restore it like this:</p>
<h3><a class="anchor" id="roll"></a>-roll {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var></h3>
</div>
-<p class="magick-description">roll an image vertically or horizontally by the amount given.</p>
+<p class="magick-description">Roll an image vertically or horizontally by the amount given.</p>
<p>A negative <var>x</var> offset rolls the image right-to-left.
A negative <var>y</var> offset rolls the image bottom-to-top.</p>
@@ -6038,7 +6105,7 @@ filled with the <code>background</code> color. </p>
<h3><a class="anchor" id="sample"></a>-sample <var>geometry</var></h3>
</div>
-<p class="magick-description">minify / magnify the image with pixel subsampling and pixel replication, respectively.</p>
+<p class="magick-description">Minify / magnify the image with pixel subsampling and pixel replication, respectively.</p>
<p>Change the image size simply by directly sampling the pixels original
from the image. When magnifying, pixels are replicated in blocks. When
@@ -6075,7 +6142,7 @@ sampling sub-region.</p>
<h3><a class="anchor" id="sampling-factor"></a>-sampling-factor <var>horizontal-factor</var>x<var>vertical-factor</var></h3>
</div>
-<p class="magick-description">sampling factors used by JPEG or MPEG-2 encoder and YUV decoder/encoder.</p>
+<p class="magick-description">Sampling factors used by JPEG or MPEG-2 encoder and YUV decoder/encoder.</p>
<p>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
@@ -6089,7 +6156,7 @@ downsampling method.</p>
<h3><a class="anchor" id="scale"></a>-scale <var>geometry</var></h3>
</div>
-<p class="magick-description">minify / magnify the image with pixel block averaging and pixel replication, respectively.</p>
+<p class="magick-description">Minify / magnify the image with pixel block averaging and pixel replication, respectively.</p>
<p>Change the image size simply by replacing pixels by averaging pixels
together when minifying, or replacing pixels when magnifying. </p>
@@ -6111,7 +6178,7 @@ light conditions. </p>
<h3><a class="anchor" id="scene"></a>-scene <var>value</var></h3>
</div>
-<p class="magick-description">set scene number.</p>
+<p class="magick-description">Set scene number.</p>
<p>This option sets the scene number of an image or the first image in an image sequence.</p>
@@ -6119,7 +6186,7 @@ light conditions. </p>
<h3><a class="anchor" id="screen"></a>-screen</h3>
</div>
-<p class="magick-description">specify the screen to capture.</p>
+<p class="magick-description">Specify the screen to capture.</p>
<p>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
@@ -6131,13 +6198,13 @@ that are independent windows but appear over the specified window.</p>
<h3><a class="anchor" id="seed"></a>-seed</h3>
</div>
-<p class="magick-description">seed a new sequence of pseudo-random numbers</p>
+<p class="magick-description">Seed a new sequence of pseudo-random numbers</p>
<div style="margin: auto;">
<h3><a class="anchor" id="segment"></a>-segment <var>cluster-threshold</var>x<var>smoothing-threshold</var></h3>
</div>
-<p class="magick-description">segment the colors of an image.</p>
+<p class="magick-description">Segment the colors of an image.</p>
<p>Segment an image by analyzing the histograms of the color components and
identifying units that are homogeneous with the fuzzy c-means technique. This
@@ -6154,7 +6221,7 @@ of the color clusters is returned.</p>
<div style="margin: auto;">
- <h3><a class="anchor" id="selective-blur"></a>-selective-blur <var>radius</var><br />-selective-blur <var>radius</var>x<var>sigma</var>{<var>+threshold</var>}</h3>
+ <h3><a class="anchor" id="selective-blur"></a>-selective-blur <var>radius</var><br />-selective-blur <var>radius</var>{x<var>sigma</var>}{<var>+threshold</var>}</h3>
</div>
<p class="magick-description">Selectively blur pixels within a contrast threshold.</p>
@@ -6166,13 +6233,13 @@ contrast. The threshold may be expressed as a fraction of <var>QuantumRange</var
<h3><a class="anchor" id="separate"></a>-separate</h3>
</div>
-<p class="magick-description">separate an image channel into a grayscale image. Specify the channel with <a href="command-line-options.html#channel">-channel</a>.</p>
+<p class="magick-description">Separate an image channel into a grayscale image. Specify the channel with <a href="command-line-options.html#channel">-channel</a>.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="sepia-tone"></a>-sepia-tone <var>percent-threshold</var></h3>
</div>
-<p class="magick-description">simulate a sepia-toned photo.</p>
+<p class="magick-description">Simulate a sepia-toned photo.</p>
<p>Specify <var>threshold</var> as the percent threshold of the intensity (0 - 99.9%).</p>
@@ -6188,7 +6255,7 @@ tone.</p>
<h3>+set <var>key</var></h3>
</div>
-<p class="magick-description">sets image attributes and properties for images in the current image sequence.</p>
+<p class="magick-description">Sets image attributes and properties for images in the current image sequence.</p>
<p>This will assign (or modify) specific settings attached to all the images
in the current image sequence. Using the <a href="command-line-options.html#set">+set</a> form of the
@@ -6214,8 +6281,8 @@ using the options <a href="command-line-options.html#comment" >-comment</a>, <a
a global 'artifact' which are automatically assigned (and any <a href="escape.html" >Format Percent
Escapes</a> expanded) to images as they are read in. For example:</p>
-<pre class="highlight"><code>-> convert rose: -set comment 'Rose is a rose is a rose is a rose' rose.png
-identify -format %c rose.png
+<pre class="highlight"><code>-> convert rose: -set comment 'Rose is a rose is a rose is a rose' rose.jpg
+identify -format %c rose.jpg
Rose is a rose is a rose is a rose
</code></pre>
@@ -6297,7 +6364,7 @@ subsequent profiles from overwriting the preceding ones, e.g.,</p>
<h3><a class="anchor" id="shade"></a>-shade <var>azimuth</var>x<var>elevation</var></h3>
</div>
-<p class="magick-description">shade the image using a distant light source.</p>
+<p class="magick-description">Shade the image using a distant light source.</p>
<p>Specify <var>azimuth</var> and <var>elevation</var> as
the position of the light source. Use <a href="command-line-options.html#shade">+shade</a> to return
@@ -6307,14 +6374,14 @@ the shading results as a grayscale image.</p>
<h3><a class="anchor" id="shadow"></a>-shadow <var>percent-opacity</var>{x<var>sigma</var>}{<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var>{<var>%</var>}</h3>
</div>
-<p class="magick-description">simulate an image shadow.</p>
+<p class="magick-description">Simulate an image shadow.</p>
<div style="margin: auto;">
<h3><a
id="shared-memory"></a>-shared-memory</h3>
</div>
-<p class="magick-description">use shared memory.</p>
+<p class="magick-description">Use shared memory.</p>
<p>This option specifies whether the utility should attempt to use shared
memory for pixmaps. ImageMagick must be compiled with shared memory support,
@@ -6322,10 +6389,10 @@ and the display must support the <var>MIT-SHM</var> extension.
Otherwise, this option is ignored. The default is <code>True</code>.</p>
<div style="margin: auto;">
- <h3><a class="anchor" id="sharpen"></a>-sharpen <var>radius</var><br />-sharpen <var>radius</var>x<var>sigma</var></h3>
+ <h3><a class="anchor" id="sharpen"></a>-sharpen <var>radius</var><br />-sharpen <var>radius</var>{x<var>sigma</var>}</h3>
</div>
-<p class="magick-description">sharpen the image.</p>
+<p class="magick-description">Sharpen the image.</p>
<p>Use a Gaussian operator of the given radius and standard deviation (sigma).</p>
@@ -6383,7 +6450,7 @@ a smaller image, and so is a better choice in terms of time and space.</p>
<h3><a class="anchor" id="sigmoidal-contrast"></a>-sigmoidal-contrast <var>contrast</var>x<var>mid-point</var></h3>
</div>
-<p class="magick-description">increase the contrast without saturating highlights or shadows.</p>
+<p class="magick-description">Increase the contrast without saturating highlights or shadows.</p>
<p>Increase the contrast of the image using a sigmoidal transfer function
without saturating highlights or shadows. <var>Contrast</var>
@@ -6413,14 +6480,14 @@ effects) of a true threshold, but with tapered gray-levels around the threshold
</div>
-<p class="magick-description">operate silently. This option is only used
+<p class="magick-description">Operate silently. This option is only used
by the <a href="import.html">import</a> tool.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="similarity-threshold"></a>-similarity-threshold <var>value</var></h3>
</div>
-<p class="magick-description">minimum RMSE for subimage match.</p>
+<p class="magick-description">Minimum RMSE for subimage match.</p>
<p>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 <var>-dissimilarity-threshold</var>.</p>
@@ -6428,7 +6495,7 @@ by the <a href="import.html">import</a> tool.</p>
<h3><a class="anchor" id="size"></a>-size <var>width</var>[x<var>height</var>][<var>+offset</var>]</h3>
</div>
-<p class="magick-description">set the width and height of the image.</p>
+<p class="magick-description">Set the width and height of the image.</p>
<p>Use this option to specify the width and height of raw images whose
dimensions are unknown such as <code>GRAY</code>, <code>RGB</code>, or
@@ -6447,10 +6514,10 @@ image or tell the number of colors in a <code>MAP</code> image file, (e.g. -size
</code></pre>
<div style="margin: auto;">
- <h3><a class="anchor" id="sketch"></a>-sketch <var>radius</var><br />-sketch <var>radius</var>x<var>sigma</var>+<var>angle</var></h3>
+ <h3><a class="anchor" id="sketch"></a>-sketch <var>radius</var><br />-sketch <var>radius</var>{x<var>sigma</var>}+<var>angle</var></h3>
</div>
-<p class="magick-description">simulate a pencil sketch.</p>
+<p class="magick-description">Simulate a pencil sketch.</p>
<p>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
@@ -6460,7 +6527,7 @@ direction people would consider the object is coming from. </p>
<h3><a class="anchor" id="smush"></a>-smush <var>offset</var></h3>
</div>
-<p class="magick-description">appends an image sequence together ignoring transparency.</p>
+<p class="magick-description">Appends an image sequence together ignoring transparency.</p>
<p>Smush is a more flexible version of <a href="command-line-options.html#append">-append</a>, joining the images in the sequence top-to-bottom (<a href="command-line-options.html#smush">-smush</a>) or left-to-right (<a href="command-line-options.html#smush">+smush</a>), with a gap between images according to the specified offset.</p>
@@ -6482,7 +6549,7 @@ direction people would consider the object is coming from. </p>
<h3><a class="anchor" id="solarize"></a>-solarize <var>percent-threshold</var></h3>
</div>
-<p class="magick-description">negate all pixels above the threshold level.</p>
+<p class="magick-description">Negate all pixels above the threshold level.</p>
<p>Specify <var>factor</var> as the percent threshold of the intensity (0 - 99.9%).</p>
@@ -6496,6 +6563,7 @@ exposing a photographic film to light during the development process.</p>
<p class="magick-description"> color the given image using the specified points of color, and filling the other intervening colors using the given methods. </p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">barycentric</dt>
<dd class="col-md-8">three point triangle of color given 3 points.
@@ -6520,6 +6588,7 @@ exposing a photographic film to light during the development process.</p>
'<code>shepards</code>' Generating spots of color in a sea of the
average of colors. </dd>
</dl>
+</div>
<p>The points are placed according to the images location on the virtual
canvas (<a href="command-line-options.html#page" >-page</a> or <a href="command-line-options.html#repage" >-repage</a>
@@ -6568,7 +6637,7 @@ added all splices removed. </p>
<h3><a class="anchor" id="spread"></a>-spread <var>amount</var></h3>
</div>
-<p class="magick-description">displace image pixels by a random amount.</p>
+<p class="magick-description">Displace image pixels by a random amount.</p>
<p>The argument <var>amount</var> defines the size of the
neighborhood around each pixel from which to choose a candidate pixel to
@@ -6580,9 +6649,11 @@ blend.</p>
<h3><a class="anchor" id="statistic"></a>-statistic <var>type</var> <var>geometry</var></h3>
</div>
-<p class="magick-description">replace each pixel with corresponding statistic from the neighborhood.</p>
+<p class="magick-description">Replace each pixel with corresponding statistic from the neighborhood.</p>
<p>Choose from these statistic types:</p>
+
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">Gradient</dt><dd class="col-md-8">maximum difference (max - min) value in neighborhood</dd>
<dt class="col-md-4">Maximum</dt><dd class="col-md-8">maximum value per channel in neighborhood</dd>
@@ -6594,12 +6665,13 @@ blend.</p>
<dt class="col-md-4">RMS</dt><dd class="col-md-8">root mean square value per channel in neighborhood</dd>
<dt class="col-md-4">StandardDeviation</dt><dd class="col-md-8"> standard deviation value per channel in neighborhood</dd>
</dl>
+</div>
<div style="margin: auto;">
<h3><a class="anchor" id="stegano"></a>-stegano <var>offset</var></h3>
</div>
-<p class="magick-description">hide watermark within an image.</p>
+<p class="magick-description">Hide watermark within an image.</p>
<p>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
@@ -6610,7 +6682,7 @@ this information to recover the steganographic image (e.g. display -size
<h3><a class="anchor" id="stereo"></a>-stereo <var>+x</var>{<var>+y</var>}</h3>
</div>
-<p class="magick-description">composite two images to create a red / cyan stereo anaglyph.</p>
+<p class="magick-description">Composite two images to create a red / cyan stereo anaglyph.</p>
<p>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.</p>
@@ -6618,8 +6690,9 @@ this information to recover the steganographic image (e.g. display -size
<h3><a class="anchor" id="storage-type"></a>-storage-type <var>type</var></h3>
</div>
-<p class="magick-description">pixel storage type. Here are the valid types:</p>
+<p class="magick-description">Pixel storage type. Here are the valid types:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">char</dt><dd class="col-md-8">unsigned characters</dd>
<dt class="col-md-4">double</dt><dd class="col-md-8">doubles</dd>
@@ -6629,6 +6702,7 @@ this information to recover the steganographic image (e.g. display -size
<dt class="col-md-4">quantum</dt><dd class="col-md-8">pixels in the native depth of your ImageMagick distribution</dd>
<dt class="col-md-4">short</dt><dd class="col-md-8">unsigned shorts</dd>
</dl>
+</div>
<p>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.</p>
@@ -6665,13 +6739,13 @@ href="command-line-options.html#style">-style</a>, and <a href="command-line-opt
<h3><a class="anchor" id="strip"></a>-strip</h3>
</div>
-<p class="magick-description">strip the image of any profiles, comments or these PNG chunks: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.</p>
+<p class="magick-description">Strip the image of any profiles, comments or these PNG chunks: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="stroke"></a>-stroke <var>color</var></h3>
</div>
-<p class="magick-description">color to use when stroking a graphic primitive.</p>
+<p class="magick-description">Color to use when stroking a graphic primitive.</p>
<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
@@ -6681,7 +6755,7 @@ href="command-line-options.html#style">-style</a>, and <a href="command-line-opt
<h3><a class="anchor" id="strokewidth"></a>-strokewidth <var>value</var></h3>
</div>
-<p class="magick-description">set the stroke width.</p>
+<p class="magick-description">Set the stroke width.</p>
<p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
@@ -6709,7 +6783,7 @@ href="command-line-options.html#stretch">-stretch</a>, and <a href="command-line
<h3><a class="anchor" id="subimage-search"></a>-subimage-search</h3>
</div>
-<p class="magick-description">search for subimage.</p>
+<p class="magick-description">Search for subimage.</p>
<p>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
@@ -6743,7 +6817,7 @@ the last two images in the sequence.</p>
<h3><a class="anchor" id="swirl"></a>-swirl <var>degrees</var></h3>
</div>
-<p class="magick-description">swirl image pixels about the center.</p>
+<p class="magick-description">Swirl image pixels about the center.</p>
<p><var>Degrees</var> defines the tightness of the swirl.</p>
@@ -6751,7 +6825,7 @@ the last two images in the sequence.</p>
<h3><a class="anchor" id="synchronize"></a>-synchronize</h3>
</div>
-<p class="magick-description">synchronize image to storage device.</p>
+<p class="magick-description">Synchronize image to storage device.</p>
<p>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
@@ -6768,7 +6842,7 @@ is not enough disk space for the image pixel cache.</p>
<h3><a class="anchor" id="text-font"></a>-text-font <var>name</var></h3>
</div>
-<p class="magick-description">font for writing fixed-width text.</p>
+<p class="magick-description">Font for writing fixed-width text.</p>
<p>Specifies the name of the preferred font to use in fixed (typewriter style)
formatted text. The default is 14 point <var>Courier</var>.</p>
@@ -6781,7 +6855,7 @@ OPTION1 font. For example, <code>Courier.ttf</code> is a TrueType font and
<h3><a class="anchor" id="texture"></a>-texture <var>filename</var></h3>
</div>
-<p class="magick-description">name of texture to tile onto the image background.</p>
+<p class="magick-description">Name of texture to tile onto the image background.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="threshold"></a>-threshold <var>value</var>{<var>%</var>}</h3>
@@ -6912,7 +6986,7 @@ titled <code>bird.miff</code> and whose width is 512 and height is 480.</p>
<h3><a class="anchor" id="transform"></a>-transform</h3>
</div>
-<p class="magick-description">transform the image.</p>
+<p class="magick-description">Transform the image.</p>
<p>This option applies the transformation matrix from a previous <a href="command-line-options.html#affine">-affine</a> option.</p>
@@ -6993,7 +7067,7 @@ type. </p>
<h3><a class="anchor" id="treedepth"></a>-treedepth <var>value</var></h3>
</div>
-<p class="magick-description">tree depth for the color reduction algorithm.</p>
+<p class="magick-description">Tree depth for the color reduction algorithm.</p>
<p>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.</p>
@@ -7013,7 +7087,7 @@ required for this option to take effect.</p>
<h3><a class="anchor" id="trim"></a>-trim</h3>
</div>
-<p class="magick-description">trim an image.</p>
+<p class="magick-description">Trim an image.</p>
<p>This option removes any edges that are exactly the same color as the corner
pixels. Use <a href="command-line-options.html#fuzz">-fuzz</a> to make <a href="command-line-options.html#trim">-trim</a> remove
@@ -7028,15 +7102,23 @@ information if it is unwanted.</p>
single pixel transparent 'missed' image is returned, in the same way as when a
<a href="command-line-options.html#crop">-crop</a> operation 'misses' the image proper. </p>
-<p>Use <code><a href="command-line-options.html#define">-define</a> trim:percent-background=0%</code> to remove all the background from the image. The amount of background that is tolerated in an edge specified as a percent. 0% means no background is tolerated. 50% means an edge can contain up to 50% pixels that are background per the fuzz-factor.</p>
+<p>Use <code><a href="command-line-options.html#define">-define</a> trim:percent-background=0%</code> to
+remove all the background from the image. The amount of background that is
+tolerated in an edge specified as a percent. 0% means no background is tolerated.
+50% means an edge can contain up to 50% pixels that are background per the fuzz-factor.</p>
+
+<p>Use <code><a href="command-line-options.html#define">-define</a> trim:vertical=true</code> or <code>
+<a href="command-line-options.html#define">-define</a> trim:horizontal=true</code> to only trim the horizontal
+or vertical edges of the image.</p>
-<p>Use <code><a href="command-line-options.html#background">-background</a> <em>background-color</em></code> to identify background color surrounding the region of interest.</p>
+<p>Use <code><a href="command-line-options.html#background">-background</a> <em>background-color</em></code> to
+identify background color surrounding the region of interest.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="type"></a>-type <var>type</var></h3>
</div>
-<p class="magick-description">the image type.</p> <p>Choose from: <code>Bilevel</code>,
+<p class="magick-description">The image type.</p> <p>Choose from: <code>Bilevel</code>,
<code>Grayscale</code>, <code>GrayscaleAlpha</code>, <code>Palette</code>,
<code>PaletteAlpha</code>, <code>TrueColor</code>, <code>TrueColorAlpha</code>,
<code>ColorSeparation</code>, or <code>ColorSeparationAlpha</code>.</p>
@@ -7060,7 +7142,7 @@ output format supports transparency.</p>
<h3><a class="anchor" id="undercolor"></a>-undercolor <var>color</var></h3>
</div>
-<p class="magick-description">set the color of the annotation bounding box.</p>
+<p class="magick-description">Set the color of the annotation bounding box.</p>
<p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
@@ -7071,7 +7153,7 @@ output format supports transparency.</p>
<h3><a class="anchor" id="update"></a>-update <var>seconds</var></h3>
</div>
-<p class="magick-description">detect when image file is modified and redisplay.</p>
+<p class="magick-description">Detect when image file is modified and redisplay.</p>
<p>Suppose that while you are displaying an image the file that is currently
displayed is over-written. <code>display</code> will automagically detect that
@@ -7083,14 +7165,14 @@ accordingly.</p>
<h3><a class="anchor" id="unique-colors"></a>-unique-colors</h3>
</div>
-<p class="magick-description">discard all but one of any pixel color.</p>
+<p class="magick-description">Discard all but one of any pixel color.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="units"></a>-units <var>type</var></h3>
</div>
-<p class="magick-description">the units of image resolution.</p>
+<p class="magick-description">The units of image resolution.</p>
<p>Choose from: <code>Undefined</code>, <code>PixelsPerInch</code>, or
<code>PixelsPerCentimeter</code>. This option is normally used in conjunction
@@ -7098,10 +7180,10 @@ with the <a href="command-line-options.html#density">-density</a> option.</p>
<div style="margin: auto;">
- <h3><a class="anchor" id="unsharp"></a>-unsharp <var>radius</var><br />-unsharp <var>radius</var>x<var>sigma</var>{<var>+gain</var>}{<var>+threshold</var>}</h3>
+ <h3><a class="anchor" id="unsharp"></a>-unsharp <var>radius</var><br />-unsharp <var>radius</var>{x<var>sigma</var>}{<var>+gain</var>}{<var>+threshold</var>}</h3>
</div>
-<p class="magick-description">sharpen the image with an unsharp mask operator.</p>
+<p class="magick-description">Sharpen the image with an unsharp mask operator.</p>
<p>The <a href="command-line-options.html#unsharp">-unsharp</a> option sharpens an image. The image is
convolved with a Gaussian operator of the given radius and standard deviation
@@ -7110,6 +7192,7 @@ a radius of 0 to have the method select a suitable radius.</p>
<p>The parameters are:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">radius</dt>
<dd class="col-md-8">The radius of the Gaussian, in pixels, not counting the center pixel (default 0).</dd>
@@ -7120,19 +7203,20 @@ a radius of 0 to have the method select a suitable radius.</p>
<dt class="col-md-4">threshold</dt>
<dd class="col-md-8">The threshold, as a fraction of <var>QuantumRange</var>, needed to apply the difference amount (default 0.05).</dd>
</dl>
+</div>
<div style="margin: auto;">
<h3><a class="anchor" id="verbose"></a>-verbose</h3>
</div>
-<p class="magick-description">print detailed information about the image when this option precedes the <a href="command-line-options.html#identify">-identify</a> option or <code>info:</code>.</p>
+<p class="magick-description">Print detailed information about the image when this option precedes the <a href="command-line-options.html#identify">-identify</a> option or <code>info:</code>.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="version"></a>-version</h3>
</div>
-<p class="magick-description">print ImageMagick version string and exit.</p>
+<p class="magick-description">Print ImageMagick version string and exit.</p>
<div style="margin: auto;">
@@ -7146,7 +7230,7 @@ a radius of 0 to have the method select a suitable radius.</p>
<h3><a class="anchor" id="vignette"></a>-vignette <var>radius</var>{x<var>sigma</var>}{<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var>{<var>%</var>}</h3>
</div>
-<p class="magick-description">soften the edges of the image in vignette style.</p>
+<p class="magick-description">Soften the edges of the image in vignette style.</p>
<p>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.</p>
@@ -7163,6 +7247,7 @@ image, but could also be set to a specify background color. </p>
<p>Choose from these methods:</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">background</dt><dd class="col-md-8">the area surrounding the image is the background color</dd>
<dt class="col-md-4">black</dt><dd class="col-md-8">the area surrounding the image is black</dd>
@@ -7180,6 +7265,7 @@ image, but could also be set to a specify background color. </p>
<dt class="col-md-4">vertical-tile-edge</dt><dd class="col-md-8">vertically tile the image and replicate the side edge pixels</dd>
<dt class="col-md-4">white</dt><dd class="col-md-8">the area surrounding the image is white</dd>
</dl>
+</div>
<p>The default value is "edge".</p>
@@ -7235,7 +7321,7 @@ percentage, which defaults to 100 percent (no color change). </p>
<h3><a class="anchor" id="wavelet-denoise"></a>-wavelet-denoise <var>threshold</var><br />-wavelet-denoise <var>threshold</var>x<var>softness</var></h3>
</div>
-<p class="magick-description">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.</p>
+<p class="magick-description">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.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="weight"></a>-weight <var>fontWeight</var></h3>
@@ -7247,6 +7333,7 @@ percentage, which defaults to 100 percent (no color change). </p>
the currently selected font family. Use a positive integer for
<var>fontWeight</var> or select from the following.</p>
+<div class="pre-scrollable">
<dl class="row">
<dt class="col-md-4">Thin </dt>
<dd class="col-md-8">Same as <var>fontWeight</var> = 100.</dd>
@@ -7267,6 +7354,7 @@ the currently selected font family. Use a positive integer for
<dt class="col-md-4">Heavy </dt>
<dd class="col-md-8">Same as <var>fontWeight</var> = 900.</dd>
</dl>
+</div>
<br/>
<p>To print a complete list of weight types, use <a href="command-line-options.html#list">-list weight</a>.</p>
@@ -7279,13 +7367,13 @@ href="command-line-options.html#stretch">-stretch</a>, and <a href="command-line
<h3><a class="anchor" id="white-balance"></a>-white-balance</h3>
</div>
<p>Applies white balancing to an image according to a grayworld assumption in the LAB colorspace.</p>
-<p>Use <kbd>-define white-balance:vibrance=<em>value{%}</em> to change the color vibrance of the a &amp; b channels.</p>
+<p>Use <kbd>-define white-balance:vibrance=<em>value{%}</em></kdb> to change the color vibrance of the a &amp; b channels.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="white-point"></a>-white-point <var>x,y</var></h3>
</div>
-<p class="magick-description">chromaticity white point.</p>
+<p class="magick-description">Chromaticity white point.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="white-threshold"></a>-white-threshold <var>value</var>{<var>%</var>}</h3>
@@ -7319,13 +7407,13 @@ href="command-line-options.html#colors">-colors</a> to reduce the number of colo
<h3><a class="anchor" id="window-group"></a>-window-group</h3>
</div>
-<p class="magick-description">specify the window group.</p>
+<p class="magick-description">Specify the window group.</p>
<div style="margin: auto;">
<h3><a class="anchor" id="write"></a>-write <var>filename</var></h3>
</div>
-<p class="magick-description">write an image sequence.</p>
+<p class="magick-description">Write an image sequence.</p>
<p>The image sequence preceding the <a href="command-line-options.html#write">-write</a> <var>filename</var> 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 <a href="command-line-options.html#write">+write</a> <var>filename</var> option.</p>
@@ -7367,7 +7455,7 @@ but with strict boolean masking. </p>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -7375,4 +7463,4 @@ but with strict boolean masking. </p>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 20:41 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:14 --> \ No newline at end of file
diff --git a/www/command-line-processing.html b/www/command-line-processing.html
index 4e6c398e4..cd2c2c3d9 100644
--- a/www/command-line-processing.html
+++ b/www/command-line-processing.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Processing</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -655,7 +655,7 @@ image-2.jpg</pre>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -663,4 +663,4 @@ image-2.jpg</pre>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:26 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:22 --> \ No newline at end of file
diff --git a/www/command-line-tools.html b/www/command-line-tools.html
index d6a1c465a..f7715295e 100644
--- a/www/command-line-tools.html
+++ b/www/command-line-tools.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -116,7 +116,7 @@
<dt class="col-md-4"><a class="anchor" id="stream"></a><a href="stream.html">magick stream</a></dt><dd class="col-md-8">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 <code>stream</code> desirable when working with large images or when you require raw pixel components.</dd>
</dl>
<p>Your installation may have direct ImageMagick version 6 compatibility links. If so, you can access the tools directly by referring to them by name. For example,
-<pre class="highlight"><code>identify -verbose myImage.png</code></pre>
+<pre class="highlight"><code>magick identify -verbose myImage.png</code></pre>
</div>
</div>
@@ -139,7 +139,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -147,4 +147,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:31 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:16 --> \ No newline at end of file
diff --git a/www/compare.html b/www/compare.html
index 1f8a4dfff..523df1577 100644
--- a/www/compare.html
+++ b/www/compare.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Compare</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -99,7 +99,7 @@
<p>We list a few examples of the <code>compare</code> command here to illustrate its usefulness and ease of use. To get started, lets compare an image to one thats been sharpened:</p>
-<pre class="highlight"><code>magick convert rose.jpg -sharpen 0x1 reconstruct.jpg
+<pre class="highlight"><code>magick rose.jpg -sharpen 0x1 reconstruct.jpg
magick compare rose.jpg reconstruct.jpg difference.png
magick compare -compose src rose.jpg reconstruct.jpg difference.png
</code></pre>
@@ -457,7 +457,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -465,4 +465,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:07 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:01 --> \ No newline at end of file
diff --git a/www/compose.html b/www/compose.html
index 0ea4da290..dadb23081 100644
--- a/www/compose.html
+++ b/www/compose.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Alpha Compositing</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -688,7 +688,7 @@ href="command-line-options.html#list">-list compose</a>.</p>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -696,4 +696,4 @@ href="command-line-options.html#list">-list compose</a>.</p>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:40 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:30 --> \ No newline at end of file
diff --git a/www/composite.html b/www/composite.html
index 7284850df..88a0976dd 100644
--- a/www/composite.html
+++ b/www/composite.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Composite</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -559,7 +559,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -567,4 +567,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:19 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:36 --> \ No newline at end of file
diff --git a/www/conjure.html b/www/conjure.html
index ddbf79ba9..372ad7b66 100644
--- a/www/conjure.html
+++ b/www/conjure.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Conjure</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -1167,7 +1167,7 @@ fill="color name", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray,
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -1175,3 +1175,4 @@ fill="color name", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray,
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 18:14 --> \ No newline at end of file
diff --git a/www/connected-components.html b/www/connected-components.html
index c9dc4d7c0..a8b0dbcb5 100644
--- a/www/connected-components.html
+++ b/www/connected-components.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Connected Components Labeling</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -162,7 +162,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -170,4 +170,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:19 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:17 --> \ No newline at end of file
diff --git a/www/contact.html b/www/contact.html
index cd56ae2ea..7627b7c7a 100644
--- a/www/contact.html
+++ b/www/contact.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Contact the Development Team</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -96,7 +96,7 @@
<fieldset>
<h2>Contact the Wizards</h2>
<p>Enter this code, <code>
-83c3aa</code>, in the Authenticate field and fill in the remaining fields. Press Send to forward your message to the ImageMagick wizards:</p>
+1bf0c1</code>, in the Authenticate field and fill in the remaining fields. Press Send to forward your message to the ImageMagick wizards:</p>
<br/>
<form method="post" name="post" id="post" action="https://imagemagick.org/script/contact.php" enctype="application/x-www-form-urlencoded">
<div class="table-responsive" style="font-size:87.5% !important;">
@@ -169,7 +169,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/convert.html b/www/convert.html
index e41c0c797..0ba8dea84 100644
--- a/www/convert.html
+++ b/www/convert.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Convert</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -226,6 +226,11 @@ transparent, extract, background, or shape the alpha channel</td>
</tr>
<tr>
+ <td><a href="command-line-options.html#bilateral-blur">-bilateral-blur <var>geometry</var></a></td>
+ <td>non-linear, edge-preserving, and noise-reducing smoothing filter</td>
+ </tr>
+
+ <tr>
<td><a href="command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
<td>force all pixels below the threshold into black</td>
</tr>
@@ -1378,7 +1383,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -1386,4 +1391,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:28 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:01 --> \ No newline at end of file
diff --git a/www/convex-hull.html b/www/convex-hull.html
index 9407f745c..63753e71b 100644
--- a/www/convex-hull.html
+++ b/www/convex-hull.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Convex Hull</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -168,7 +168,7 @@ magick [-fuzz <var>value</var>%] [-background <var>background-color</var>] -form
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -176,4 +176,4 @@ magick [-fuzz <var>value</var>%] [-background <var>background-color</var>] -form
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:05 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:37 --> \ No newline at end of file
diff --git a/www/defines.html b/www/defines.html
index 0f01f58ab..e43b8a123 100644
--- a/www/defines.html
+++ b/www/defines.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Defines</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -127,7 +127,7 @@ use:</p>
<div class="table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-hover">
- <tr>
+ <tr>
<th align="center" colspan=2>Command-line Defines</th>
</tr>
@@ -135,7 +135,7 @@ use:</p>
<td colspan=2><p></p></td>
</tr>
- <tr>
+ <tr>
<td>auto-threshold:verbose</td>
<td>return derived threshold as the <code>auto-threshold:threshold</code> image property.</td>
</tr>
@@ -148,24 +148,24 @@ use:</p>
-type truecolor. JPG and PSD will need this define.</td>
</tr>
- <tr>
+ <tr>
<td>compare:ssim-radius=<var>value</var></td>
- <td>Set the structural similarity index radius.</td>
+ <td>Set the structural similarity index radius.</td>
</tr>
- <tr>
+ <tr>
<td>compare:ssim-sigma=<var>value</var></td>
- <td>Set the structural similarity index sigma.</td>
+ <td>Set the structural similarity index sigma.</td>
</tr>
- <tr>
+ <tr>
<td>compare:ssim-k1=<var>value</var></td>
- <td>Set the structural similarity index k1 argument.</td>
+ <td>Set the structural similarity index k1 argument.</td>
</tr>
- <tr>
+ <tr>
<td>compare:ssim-k2=<var>value</var></td>
- <td>Set the structural similarity index k2 argument.</td>
+ <td>Set the structural similarity index k2 argument.</td>
</tr>
<tr>
@@ -246,12 +246,12 @@ use:</p>
<td>Comma and/or hyphenated list of id values to keep in the output. Supported in Imagemagick 6.9.3-0.</td>
</tr>
- <tr>
+ <tr>
<td>connected-components:keep-colors=<var>red;green;blue</var></td>
<td>Keeps objects identified by their color in a semicolon separated list. Supported in Imagemagick 6.9.3-0.</td>
</tr>
- <tr>
+ <tr>
<td>connected-components:keep-top=<var>number-of-objects</var></td>
<td>Keeps only the top number of objects by area. Supported in Imagemagick 7.0.9.21.</td>
</tr>
@@ -284,7 +284,7 @@ use:</p>
Supported in Imagemagick 6.9.2-9.</td>
</tr>
- <tr>
+ <tr>
<td>connected-components:remove-colors=<var>red;green;blue</var></td>
<td>Remove objects identified by their color in a semicolon separated list.
Supported in Imagemagick 6.9.3-0.</td>
@@ -317,7 +317,7 @@ use:</p>
<tr>
<td>delegate:bimodal=<var>true</var></td>
- <td>Specify direct conversion from Postscript to PDF.</td>
+ <td>Specify direct conversion from Postscript to PDF.</td>
</tr>
<tr>
@@ -344,108 +344,108 @@ use:</p>
<tr>
<td>filter:b=<var>value</var></td>
- <td>Redefine the spline factor used for cubic filters such as Cubic,
- Catrom, Mitchel, and Hermite, as well as the Parzen cubic windowing
- function. If only one of the b or c values are defined, the other is
- set so as to generate a 'Cubic-Keys' filter. The meaning of the b and c
- values was defined in a research paper by Mitchell-Netravali.</td>
+ <td>Redefine the spline factor used for cubic filters such as Cubic,
+ Catrom, Mitchel, and Hermite, as well as the Parzen cubic windowing
+ function. If only one of the b or c values are defined, the other is
+ set so as to generate a 'Cubic-Keys' filter. The meaning of the b and c
+ values was defined in a research paper by Mitchell-Netravali.</td>
</tr>
<tr>
<td>filter:blur=<var>factor</var></td>
- <td>Scale the X axis of the filter (and its window). Use > 1.0 for blurry
- or &lt; 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.</td>
+ <td>Scale the X axis of the filter (and its window). Use > 1.0 for blurry
+ or &lt; 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.</td>
</tr>
<tr>
<td>filter:c=<var>value</var></td>
- <td>Redefine the Keys alpha factor used for cubic filters such as Cubic,
- Catrom, Mitchel, and Hermite, as well as the Parzen cubic windowing
- function. If only one of the b or c values are defined, the other is
- set so as to generate a 'Cubic-Keys' filter. The meaning of the b and c
- values was defined in a research paper by Mitchell-Netravali.</td>
+ <td>Redefine the Keys alpha factor used for cubic filters such as Cubic,
+ Catrom, Mitchel, and Hermite, as well as the Parzen cubic windowing
+ function. If only one of the b or c values are defined, the other is
+ set so as to generate a 'Cubic-Keys' filter. The meaning of the b and c
+ values was defined in a research paper by Mitchell-Netravali.</td>
</tr>
<tr>
<td>filter:kaiser-alpha=<var>value</var></td>
- <td>Set the Kaiser window alpha value. When it is multiplied by 'PI',
- it is equivalent to "kaiser-beta" and will override that setting.
- It only affects the Kaiser windowing function and does not affect
- any other attributes.</td>
+ <td>Set the Kaiser window alpha value. When it is multiplied by 'PI',
+ it is equivalent to "kaiser-beta" and will override that setting.
+ It only affects the Kaiser windowing function and does not affect
+ any other attributes.</td>
</tr>
- <tr>
+ <tr>
<td>filter:kaiser-beta=<var>value</var></td>
- <td>Set the Kaiser window beta value. 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. The default value is 6.5</td>
+ <td>Set the Kaiser window beta value. 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. The default value is 6.5</td>
</tr>
<tr>
<td>filter:lobes=<var>count</var></td>
- <td>Set the number of lobes to use for the Sinc/Bessel filter.
- This is an alternate 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.</td>
+ <td>Set the number of lobes to use for the Sinc/Bessel filter.
+ This is an alternate 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.</td>
</tr>
<tr>
<td>filter:sigma=<var>value</var></td>
- <td>Set the 'sigma' value used to define the Gaussian filter.
- The default sigma value is '0.5'. It only affects the Gaussian filter,
- 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.</td>
+ <td>Set the 'sigma' value used to define the Gaussian filter.
+ The default sigma value is '0.5'. It only affects the Gaussian filter,
+ 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.</td>
</tr>
<tr>
<td>filter:support=<var>radius</var></td>
- <td>Set the filter support radius. It 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.</td>
+ <td>Set the filter support radius. It 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.</td>
</tr>
<tr>
<td>filter:verbose=<var>true</var></td>
- <td>Enable printing of information about 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
- the Mitchell filter is defined as a general Cubic family filter
- with specific 'B' and 'C' settings.</td>
+ <td>Enable printing of information about 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
+ the Mitchell filter is defined as a general Cubic family filter
+ with specific 'B' and 'C' settings.</td>
</tr>
<tr>
<td>filter:window=<var>filter_function</var></td>
- <td>The 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).</td>
+ <td>The 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).</td>
</tr>
<tr>
<td>filter:window-support=<var>radius</var></td>
- <td>Scale the windowing function to this size. 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 true support
- size that is provided. If unset, this will equal the normal filter
- support size.</td>
+ <td>Scale the windowing function to this size. 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 true support
+ size that is provided. If unset, this will equal the normal filter
+ support size.</td>
</tr>
<tr>
@@ -462,22 +462,21 @@ use:</p>
<tr>
<td>h:format=<var>value</var></td>
- <td>Set the image encoding format use when writing a C-style header.
- <var>format</var> can be any output format supported by ImageMagick
- except for <var>h</var> and <var>magick</var>. If this
- option is omitted, the default is <var>GIF</var> for PseudoClass
- images and <var>PNM</var> for DirectClass images.
- </td>
+ <td>Set the image encoding format use when writing a C-style header.
+ <var>format</var> can be any output format supported by ImageMagick
+ except for <var>h</var> and <var>magick</var>. If this
+ option is omitted, the default is <var>GIF</var> for PseudoClass
+ images and <var>PNM</var> for DirectClass images.</td>
</tr>
<tr>
<td>hough-lines:accumulator=true</td>
- <td>Return the accumulator image in addition to the lines image.</td>
+ <td>Return the accumulator image in addition to the lines image.</td>
</tr>
<tr>
<td>json:features</td>
- <td>Include features in verbose information.</td>
+ <td>Include features in verbose information.</td>
</tr>
<tr>
@@ -492,37 +491,37 @@ use:</p>
<tr>
<td>json:moments</td>
- <td>Include image moments in verbose information.</td>
+ <td>Include image moments in verbose information.</td>
</tr>
- <tr>
+ <tr>
<td>kmeans:seed-colors=<var>color-list</var></td>
- <td>Initialize the colors, where color-list is a semicolon delimited
- list of seed colors (e.g. red;sRGB(19,167,254);#00ffff)</td>
+ <td>Initialize the colors, where color-list is a semicolon delimited
+ list of seed colors (e.g. red;sRGB(19,167,254);#00ffff)</td>
</tr>
<tr>
<td>magick:format=<var>value</var></td>
- <td>Set the image encoding format use when writing a C-style header.
- This is the same as "h:format=format" described above.</td>
+ <td>Set the image encoding format use when writing a C-style header.
+ This is the same as "h:format=format" described above.</td>
</tr>
- <tr>
+ <tr>
<td>magnify:method=<var>value</var></td>
<td>Choose the method of pixel art magnification. The choices are:
eagle2X, eagle3X, eagle3XB, epb2X, fish2X, hq2X, scale2X (default),
scale3X, xbr2X</td>
- </tr>
+ </tr>
- <tr>
+ <tr>
<td>modulate:colorspace=<var>colorspace</var></td>
<td>Define the colorspace to use with <a href="command-line-options.html#modulate">-modulate</a>.
Any hue-based colorspace may be use. The default is HSL.</td>
- </tr>
+ </tr>
<tr>
<td>morphology:compose=<var>compose-method</var></td>
- <td>Specify how to merge results generated by multiple<a
+ <td>Specify how to merge results generated by multiple<a
href="defines.html#morphology" >-morphology</a> kernel. The default is none. One
typical value is 'lighten' as used, for example, with the sobel edge
kernels. </td>
@@ -530,7 +529,7 @@ use:</p>
<tr>
<td>morphology:showKernel=<var>1</var></td>
- <td>Output (to 'standard error') all the information about a generated <a
+ <td>Output (to 'standard error') all the information about a generated <a
href="defines.html#morphology" >-morphology</a> kernel.</td>
</tr>
@@ -550,32 +549,32 @@ use:</p>
<tr>
<td>profile:skip=<var>name1,name2,...</var></td>
- <td>Skip the named profile[s] when reading the image. Use skip="*" to
+ <td>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.</td>
</tr>
<tr>
<td>precision:highres-transform=<var>true</var></td>
- <td>Increase the profile transform precision. Note, there is a slight
- performance penalty as the high-precision transform is floating point
- rather than unsigned. It is important to note that results may depend
- on whether or not the original image already has an included profile.</td>
+ <td>Increase the profile transform precision. Note, there is a slight
+ performance penalty as the high-precision transform is floating point
+ rather than unsigned. It is important to note that results may depend
+ on whether or not the original image already has an included profile.</td>
</tr>
<tr>
<td>preserve-timestamp=<var>true|false</var></td>
- <td>Preserve file timestamp (<code>mogrify</code> only).</td>
+ <td>Preserve file timestamp (<code>mogrify</code> only).</td>
</tr>
<tr>
<td>q-table=<var>quantization-table.xml</var></td>
- <td>Custom JPEG quantization tables.</td>
+ <td>Custom JPEG quantization tables.</td>
</tr>
<tr>
<td>quantum:format=<var>type</var></td>
- <td>Set the type to <code>floating-point</code> to specify a floating-point
+ <td>Set the type to <code>floating-point</code> 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 <a href="command-line-options.html#depth">-depth</a> 16 is
included, the result is a single precision floating point format.
@@ -583,63 +582,73 @@ use:</p>
double precision floating point format. For signed pixel data, use <code>-define quantum:format=signed</code></td>
</tr>
- <tr>
+ <tr>
<td>quantum:maximum=<var>value</var></td>
- <td>Maximum value for certain image types such as DCM. If not set, the
- the maximum value is QuantumRange.</td>
+ <td>Maximum value for certain image types such as DCM. If not set, the
+ the maximum value is QuantumRange.</td>
</tr>
- <tr>
+ <tr>
<td>quantum:minimum=<var>value</var></td>
- <td>Minimum value for certain image types such as DCM. If not set, the
- the minimum value is zero.</td>
+ <td>Minimum value for certain image types such as DCM. If not set, the
+ the minimum value is zero.</td>
</tr>
<tr>
<td>quantum:polarity=<var>photometric-interpretation</var></td>
- <td>Set the photometric-interpretation of an image (typically for TIFF
- image file format) to either <code>min-is-black</code> (default) or
+ <td>Set the photometric-interpretation of an image (typically for TIFF
+ image file format) to either <code>min-is-black</code> (default) or
<code>min-is-white</code>.</td>
</tr>
<tr>
<td>registry:<var>attribute</var>=<var>value</var></td>
- <td>Set attributes of the image registry, for example,
- registry:temporary-path=/data/tmp.
+ <td>Set attributes of the image registry, for example,
+ registry:temporary-path=/data/tmp.
</td>
</tr>
<tr>
<td>resample:verbose=<var>true</var></td>
- <td>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.
+ <td>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.
</td>
</tr>
<tr>
<td>sample:offset=<var>geometry</var></td>
- <td>Location of the sampling point within the sub-region being sampled,
+ <td>Location of the sampling point within the sub-region being sampled,
expressed as percentages (see <a href="command-line-options.html#sample" >-sample</a>).</td>
</tr>
- <tr>
+ <tr>
<td>shepards:power=<var>value</var></td>
- <td>Set the exponent in the Shepard's distortion. The default is 2.</td>
+ <td>Set the exponent in the Shepard's distortion. The default is 2.</td>
</tr>
-<tr>
+ <tr>
<td>stream:buffer-size=<var>value</var></td>
- <td>Set the stream buffer size. Select 0 for unbuffered I/O.</td>
+ <td>Set the stream buffer size. Select 0 for unbuffered I/O.</td>
</tr>
- <tr>
+ <tr>
<td>trim:percent-background=<var>X%</var></td>
- <td>Set the amount of background that is tolerated in an edge. It is
- specified as a percent. 0% means no background is tolerated.
- 50% means an edge can contain up to 50% pixels that are background per
- the fuzz-factor.</td>
+ <td>Set the amount of background that is tolerated in an edge. It is
+ specified as a percent. 0% means no background is tolerated.
+ 50% means an edge can contain up to 50% pixels that are background per
+ the fuzz-factor.</td>
+ </tr>
+
+ <tr>
+ <td>trim:horizontal=<var>true</var></td>
+ <td>Only trim the horizontal edges of the image.</td>
+ </tr>
+
+ <tr>
+ <td>trim:vertical=<var>true</var></td>
+ <td>Only trim the vertical edges of the image.</td>
</tr>
<tr>
@@ -677,21 +686,20 @@ use:</p>
<td>Turn off the beep when importing an image.</td>
</tr>
-
<tr>
- <td colspan=2><p></p></td>
+ <td colspan=2><p></p></td>
</tr>
<tr>
- <td colspan=2><p></p></td>
+ <td colspan=2><p></p></td>
</tr>
<tr>
- <th align="center" colspan=2>IMAGE FORMATS</th>
+ <th align="center" colspan=2>IMAGE FORMATS</th>
</tr>
<tr>
- <td colspan=2><p></p></td>
+ <td colspan=2><p></p></td>
</tr>
<tr>
@@ -702,9 +710,9 @@ use:</p>
<tr>
<td>bmp:format=<var>value</var></td>
<td>Valid values are <var>bmp2</var>, <var>bmp3</var>,
- and <var>bmp4</var>. 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 <a href="mogrify.html">mogrify</a> utility.</td>
+ and <var>bmp4</var>. 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 <a href="mogrify.html">mogrify</a> utility.</td>
</tr>
<tr>
@@ -716,7 +724,7 @@ use:</p>
<tr>
<td>dcm:display-range=<var>reset</var></td>
- <td>Set the display range to the minimum and maximum pixel values for the
+ <td>Set the display range to the minimum and maximum pixel values for the
DCM image format.</td>
</tr>
@@ -726,87 +734,87 @@ use:</p>
in the file.</td>
</tr>
- <tr>
+ <tr>
<td>dcm:rescale=<var>true</var></td>
- <td>Enable interpretation of the rescale slope and intercept settings
- in the file.</td>
+ <td>Enable interpretation of the rescale slope and intercept settings
+ in the file.</td>
</tr>
- <tr>
+ <tr>
<td>dcm:window=<var>CxW</var></td>
- <td>Specify the dcm window center and width.</td>
+ <td>Specify the dcm window center and width.</td>
</tr>
-<tr>
+ <tr>
<td>dds:cluster-fit=<var>true|false</var></td>
- <td>Enable the DDS cluster-fit.</td>
+ <td>Enable the DDS cluster-fit.</td>
</tr>
<tr>
<td>dds:compression=<var>dxt1|dxt5|none</var></td>
- <td>Set the dds compression.</td>
+ <td>Set the dds compression.</td>
</tr>
<tr>
<td>dds:mipmaps=<var>value</var></td>
- <td>Set the dds number of mipmaps.</td>
+ <td>Set the dds number of mipmaps.</td>
</tr>
<tr>
- <td>dds:weight-by-alpha=<var>true|false</var></td>
- <td>Enable the DDS alpha weighting.</td>
+ <td>dds:weight-by-alpha=<var>true|false</var></td>
+ <td>Enable the DDS alpha weighting.</td>
</tr>
<tr>
<td>dng:output-color=<var>value</var></td>
- <td>Select the output colorspace. The choices are:
- 0 - Raw color (unique to each camera),
- 1 - sRGB D65 (default),
- 2 - Adobe RGB (1998) D65,
- 3 - Wide Gamut RGB D65,
- 4 - Kodak ProPhoto RGB D65,
- 5 - XYZ,
- 6 - ACES</td>
- </tr>
+ <td>Select the output colorspace. The choices are:
+ 0 - Raw color (unique to each camera),
+ 1 - sRGB D65 (default),
+ 2 - Adobe RGB (1998) D65,
+ 3 - Wide Gamut RGB D65,
+ 4 - Kodak ProPhoto RGB D65,
+ 5 - XYZ,
+ 6 - ACES</td>
+ </tr>
<tr>
<td>dng:use-auto-bright=<var>false</var></td>
- <td>Disable the histogram-based white level.</td>
+ <td>Disable the histogram-based white level.</td>
</tr>
- <tr>
+ <tr>
<td>dng:use-auto-wb=<var>true</var></td>
- <td>Compute the white balance by averaging the entire image.</td>
+ <td>Compute the white balance by averaging the entire image.</td>
</tr>
<tr>
<td>dng:use-camera-wb=<var>true</var></td>
- <td>Uses the white balance specified by the camera.</td>
+ <td>Uses the white balance specified by the camera.</td>
</tr>
<tr>
<td>dot:layout-engine=<var>value</var></td>
- <td>Specify the layout engine for the DOT image format (e.g.
+ <td>Specify the layout engine for the DOT image format (e.g.
<code>neato</code>).</td>
</tr>
<tr>
<td>eps:use-cropbox=<var>true</var></td>
- <td>Force Imagemagick to respect the crop box.</td>
+ <td>Force Imagemagick to respect the crop box.</td>
</tr>
<tr>
<td>exr:color-type=<var>value</var></td>
- <td>Specify the color type for the EXR format: RGB, RGBA, YC, YCA, Y,
- YA, R, G, B, A).</td>
+ <td>Specify the color type for the EXR format: RGB, RGBA, YC, YCA, Y,
+ YA, R, G, B, A).</td>
</tr>
<tr>
<td>fpx:view=<var>value</var></td>
- <td>Specify the FlashPix viewing object, which contains the specification
- of a viewing transform. The viewing transform enables applications to
- represent a set of simple edits as a list of "commands" which are applied
- to the image in real time without altering the original image.</td>
+ <td>Specify the FlashPix viewing object, which contains the specification
+ of a viewing transform. The viewing transform enables applications to
+ represent a set of simple edits as a list of "commands" which are applied
+ to the image in real time without altering the original image.</td>
</tr>
<tr>
@@ -819,30 +827,30 @@ use:</p>
<tr>
<td>icon:auto-resize</td>
- <td>Automatically stores multiple sizes when writing an ico image (requires a 256x256 input image).</td>
+ <td>Automatically stores multiple sizes when writing an ico image (requires a 256x256 input image).</td>
</tr>
<tr>
<td>jp2:layer-number=<var>value</var></td>
- <td>Set the maximum number of quality layers to decode. Same for JPT, JC2,
+ <td>Set the maximum number of quality layers to decode. Same for JPT, JC2,
and J2K.</td>
</tr>
<tr>
<td>jp2:number-resolutions=<var>value</var></td>
- <td>Set the number of resolutions to encode.Same for JPT, JC2, and
- J2K.</td>
+ <td>Set the number of resolutions to encode.Same for JPT, JC2, and
+ J2K.</td>
</tr>
<tr>
<td>jp2:progression-order=<var>value</var></td>
- <td>Choose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and
+ <td>Choose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and
J2K.</td>
</tr>
<tr>
<td>jp2:quality=<var>value,value...</var></td>
- <td>Set the quality layer PSNR, given in dB. The order is from left to
+ <td>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.
Same for JPT, JC2, and J2K.</td>
</tr>
@@ -858,7 +866,7 @@ use:</p>
<tr>
<td>jp2:reduce-factor=<var>value</var></td>
- <td>Set the number of highest resolution levels to be discarded.Same for
+ <td>Set the number of highest resolution levels to be discarded.Same for
JPT, JC2, and J2K.</td>
</tr>
@@ -875,13 +883,13 @@ use:</p>
<tr>
<td>jpeg:dct-method=<var>value</var></td>
- <td>Choose from <code>default</code>, <code>fastest</code>,
+ <td>Choose from <code>default</code>, <code>fastest</code>,
<code>float</code>, <code>ifast</code>, and <code>islow</code>.</td>
</tr>
<tr>
<td>jpeg:extent=<var>value</var></td>
- <td>Restrict the maximum JPEG file size, for example <code>-define
+ <td>Restrict the maximum JPEG file size, for example <code>-define
jpeg:extent=400KB</code>. The JPEG encoder will search for the highest
compression quality level that results in an output file that does not
exceed the value. The <code>-quality</code> option also will be respected
@@ -912,7 +920,7 @@ use:</p>
<tr>
<td>jpeg:size=<var>geometry</var></td>
- <td>Set the size hint of a JPEG image, for
+ <td>Set the size hint of a JPEG image, for
example, <code>-define jpeg:size=128x128</code>.
It is most useful for increasing performance and reducing the memory
requirements when reducing the size of a large JPEG image.</td>
@@ -920,7 +928,7 @@ use:</p>
<tr>
<td>mng:need-cacheoff</td>
- <td>turn playback caching off for streaming MNG.</td>
+ <td>turn playback caching off for streaming MNG.</td>
</tr>
<tr>
@@ -928,9 +936,9 @@ use:</p>
<td> </td>
</tr>
- <tr>
+ <tr>
<td>pdf:fit-page=<var>geometry</var></td>
- <td><var>Geometry</var> 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)</td>
+ <td><var>Geometry</var> 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)</td>
</tr>
<tr>
@@ -953,9 +961,9 @@ use:</p>
<td> </td>
</tr>
- <tr>
+ <tr>
<td>pdf:thumbnail=<var>false</var></td>
- <td>Skip writing a thumbnail when saving a PDF file.</td>
+ <td>Skip writing a thumbnail when saving a PDF file.</td>
</tr>
<tr>
@@ -975,7 +983,7 @@ use:</p>
<tr>
<td>png:color-type=<var>value</var></td>
- <td>Desired bit-depth and color-type for PNG output. You can force the
+ <td>Desired 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
@@ -994,56 +1002,58 @@ use:</p>
<tr>
<td>png:compression-filter=<var>value</var></td>
<td>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.</td>
+ 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.</td>
</tr>
<tr>
<td>png:compression-level=<var>value</var></td>
<td>Valid values are 0 through 9, with 0 providing the least, but fastest
- compression and 9 usually providing the best and always the slowest.</td>
+ compression and 9 usually providing the best and always the slowest.</td>
</tr>
<tr>
<td>png:compression-strategy=<var>value</var></td>
<td>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.</td>
+ 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.</td>
</tr>
<tr>
<td>png:format=<var>value</var></td>
<td> valid values are <var>png8</var>, <var>png24</var>,
- <var>png32</var>, <var>png48</var>,
- <var>png64</var>, and <var>png00</var>.
- This property is 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 <a href="mogrify.html">mogrify</a>.
- Value = <var>png8</var> 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 = <var>png24</var> and <var>png48</var>
- 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 <code>tRNS</code> chunk.
- Value = <var>png00</var> causes the image to inherit its
- color-type and bit-depth from the input image, if the input was also
- a PNG.</td>
+ <var>png32</var>, <var>png48</var>,
+ <var>png64</var>, and <var>png00</var>.
+ This property is 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 <a href="mogrify.html">mogrify</a>.
+ Value = <var>png8</var> 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 = <var>png24</var> and <var>png48</var>
+ 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 <code>tRNS</code> chunk.
+ Value = <var>png00</var> causes the image to inherit its
+ color-type and bit-depth from the input image, if the input was also
+ a PNG.</td>
</tr>
<tr>
<td>png:exclude-chunk=<var>value</var></td>
+ <td> </td>
+ </tr>
<tr>
<td>png:include-chunk=<var>value</var></td>
- <td>ancillary chunks to be excluded from or included in PNG output.
+ <td>ancillary chunks to be excluded from or included in PNG output.
<p>The <var>value</var> can be the name of a PNG chunk-type such
as <var>bKGD</var>, a comma-separated list of chunk-names
@@ -1062,8 +1072,8 @@ use:</p>
the PNG file. Because the list is processed from left to right, you
can achieve this with a single define:</p>
-<pre class="highlight"><code>-define png:include-chunk=none,gAMA
-</code></pre>
+ <pre class="highlight"><code>-define png:include-chunk=none,gAMA
+ </code></pre>
<p>As a special case, if the <code>sRGB</code> chunk is not excluded and
the PNG encoder recognizes that the image contains the sRGB ICC profile,
@@ -1082,10 +1092,10 @@ use:</p>
<code>tRNS</code> chunk isn't written anyhow, and there is no effect
on the PNG colortype of the output image.</p>
- <p>The <a href="command-line-options.html#strip">-strip</a> option does the equivalent of the
- following for PNG output:</p>
+ <p>The <a href="command-line-options.html#strip">-strip</a>
+ option does the equivalent of the following for PNG output:</p>
-<pre class="highlight"><code>-define png:exclude-chunk=EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date</code></pre>
+ <pre class="highlight"><code>-define png:exclude-chunk=EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date</code></pre>
<p>The default behavior is to include all known PNG ancillary chunks
plus ImageMagick's private <code>vpAg</code> ("virtual page") chunk,
@@ -1107,13 +1117,13 @@ use:</p>
<tr>
<td>png:ignore-crc[=<var>true</var>]</td>
- <td>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".</td>
+ <td>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".</td>
</tr>
<tr>
<td>png:preserve-colormap[=<var>true</var>]</td>
- <td>Use the existing image->colormap. Normally the PNG encoder will
+ <td>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.</td>
@@ -1121,7 +1131,7 @@ use:</p>
<tr>
<td>png:preserve-iCCP[=<var>true</var>]</td>
- <td>By default, the PNG decoder and encoder examine any ICC profile
+ <td>By default, the PNG decoder and encoder examine any ICC profile
that is present, either from an <code>iCCP</code> 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 <code>sRGB</code> chunk.
@@ -1138,7 +1148,7 @@ use:</p>
<tr>
<td>png:swap-bytes[=<var>true</var>]</td>
- <td>The PNG specification requires that any multi-byte integers be stored
+ <td>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
@@ -1148,43 +1158,43 @@ use:</p>
<tr>
<td>ps:imagemask</td>
- <td>If the ps:imagemask flag is defined, the PS3 and EPS3 coders will
+ <td>If 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.</td>
</tr>
<tr>
<td>psd:additional-info=all|selective</td>
- <td>This 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.
+ <td>This 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.
</td>
</tr>
<tr>
<td>psd:alpha-unblend=off</td>
- <td>Disable 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.</td>
+ <td>Disable 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.</td>
</tr>
<tr>
<td>psd:preserve-opacity-mask=<var>true</var></td>
- <td>This 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.
+ <td>This 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.
</td>
</tr>
@@ -1248,15 +1258,15 @@ use:</p>
<tr>
<td>tiff:tile-geometry=<var>WxH</var></td>
<td>Set the tile size for pyramid tiffs. Requires the suffix
- PTIF: before the outputname.</td>
+ PTIF: before the outputname.</td>
</tr>
<tr>
- <td colspan=2><p></p></td>
+ <td colspan=2><p></p></td>
</tr>
<tr>
- <td colspan=2><p></p></td>
+ <td colspan=2><p></p></td>
</tr>
<tr>
@@ -1265,176 +1275,176 @@ use:</p>
<tr>
<td>caption:max-pointsize=<var>pointsize</var></td>
- <td>Limit the maximum point size</td>
+ <td>Limit the maximum point size</td>
</tr>
- <tr>
+ <tr>
<td>gradient:angle=<var>angle (in degrees)</var></td>
- <td>For 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.
- Supported in Imagemagick 6.9.2-5.</td>
+ <td>For 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.
+ Supported in Imagemagick 6.9.2-5.</td>
</tr>
- <tr>
- <td>gradient:bounding-box=<var>WxH+X+Y</var></td>
- <td>Limit 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.
- Supported in Imagemagick 6.9.2-5.</td>
- </tr>
+ <tr>
+ <td>gradient:bounding-box=<var>WxH+X+Y</var></td>
+ <td>Limit 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.
+ Supported in Imagemagick 6.9.2-5.</td>
+ </tr>
- <tr>
+ <tr>
<td>gradient:center=<var>x,y</var></td>
- <td>Specify the coordinates of the center point for the
- radial gradient. The default is the center of the image.
- Supported in Imagemagick 6.9.2-5.</td>
- </tr>
+ <td>Specify the coordinates of the center point for the
+ radial gradient. The default is the center of the image.
+ Supported in Imagemagick 6.9.2-5.</td>
+ </tr>
- <tr>
+ <tr>
<td>gradient:direction=<var>value</var></td>
- <td>Specify the direction of the linear gradient towards
- the top/bottom/left/right or diagonal corners. The choices are:
- NorthWest, North, Northeast, West, East, SouthWest, South, SouthEast.
- Supported in Imagemagick 6.9.2-5.</td>
+ <td>Specify the direction of the linear gradient towards
+ the top/bottom/left/right or diagonal corners. The choices are:
+ NorthWest, North, Northeast, West, East, SouthWest, South, SouthEast.
+ Supported in Imagemagick 6.9.2-5.</td>
</tr>
- <tr>
+ <tr>
<td>gradient:extent=<var>value</var></td>
- <td>Specify the shape of an image centered radial gradient.
- The choices are: Circle, Diagonal, Ellipse, Maximum, Minimum.
- 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.
- Supported in Imagemagick 6.9.2-5.</td>
+ <td>Specify the shape of an image centered radial gradient.
+ The choices are: Circle, Diagonal, Ellipse, Maximum, Minimum.
+ 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.
+ Supported in Imagemagick 6.9.2-5.</td>
</tr>
- <tr>
+ <tr>
<td>gradient:radii=<var>x,y</var></td>
- <td>Specify 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.
- Supported in Imagemagick 6.9.2-5.</td>
- </tr>
+ <td>Specify 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.
+ Supported in Imagemagick 6.9.2-5.</td>
+ </tr>
- <tr>
+ <tr>
<td>gradient:vector=<var>x1,y1,x2,y2</var></td>
- <td>Specify 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.
- Supported in Imagemagick 6.9.2-5.</td>
- </tr>
+ <td>Specify 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.
+ Supported in Imagemagick 6.9.2-5.</td>
+ </tr>
<tr>
<td>histogram:unique-colors=<var>false</var></td>
- <td>Suppress the textual listing of the image's unique colors.</td>
- </tr>
+ <td>Suppress the textual listing of the image's unique colors.</td>
+ </tr>
<tr>
<td>pango:align=<var>left|center|right</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
<tr>
<td>pango:auto-dir=<var>true|false</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
<tr>
<td>pango:ellipsize=<var>start|middle|end</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
<tr>
<td>pango:gravity-hint=<var>natural|strong|line</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
<tr>
<td>pango:hinting=<var>none|auto|full</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
<tr>
<td>pango:indent=<var>points</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
- <tr>
+ <tr>
<td>pango:justify=<var>true|false</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
- <tr>
+ <tr>
<td>pango:language=<var>en_US|others</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
- <tr>
+ <tr>
<td>pango:markup=<var>true|false</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
- <tr>
+ <tr>
<td>pango:single-paragraph=<var>true|false</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
<tr>
<td>pango:wrap=<var>word|char|word-char</var></td>
- <td></td>
- </tr>
+ <td></td>
+ </tr>
- <tr>
+ <tr>
<td>pixel:compliance=<var>value</var></td>
- <td>Set the "pixel:" output format according to several standards.
- The choices are SVG, None, Undefined, MVG, X11, XPM. The default
- list values for (s)RGB colors in the form of (s)rgb(r,g,b) or
- (s)rgba(r,g,b,a). Color names will no longer be presented. For sRGB or
- RGB colors, the SVG, X11, XPM and None options lists color names,
- if they exist. The MVG and Undefined options list hex values. When
- colors are presented or converted to hue-based colorspaces, the values
- listed will be integers for hue and percents for the other two components.
- For other colorspaces, values may be listed as either percents or
- fractional value. Setting the depth to 8 will limit values to the 8-bit
- range, except for hue-based colors.</td>
- </tr>
+ <td>Set the "pixel:" output format according to several standards.
+ The choices are SVG, None, Undefined, MVG, X11, XPM. The default
+ list values for (s)RGB colors in the form of (s)rgb(r,g,b) or
+ (s)rgba(r,g,b,a). Color names will no longer be presented. For sRGB or
+ RGB colors, the SVG, X11, XPM and None options lists color names,
+ if they exist. The MVG and Undefined options list hex values. When
+ colors are presented or converted to hue-based colorspaces, the values
+ listed will be integers for hue and percents for the other two components.
+ For other colorspaces, values may be listed as either percents or
+ fractional value. Setting the depth to 8 will limit values to the 8-bit
+ range, except for hue-based colors.</td>
+ </tr>
- <tr>
+ <tr>
<td>txt:compliance=<var>value</var></td>
- <td>Set the "txt:" format for the values in parentheses according to
- several standards. The choices are svg, none, undefined, mvg, x11, xpm.
- The default will list values for (s)RGB colors in the quantum range.
- The SVG, X11, XPM, MVG and None options lists values in the 8-bit range
- for all Q-level compiles. The undefined option also lists values in the
- quantum range. When colors are presented or converted to hue-based
- colorspaces, the values listed will be integers for hue and percents for
- the other two components. For other colorspaces, values may be listed as
- either percents or fractional value. Setting the depth to 8 will limit
- values to the 8-bit range, except for hue-based colors.</td>
+ <td>Set the "txt:" format for the values in parentheses according to
+ several standards. The choices are svg, none, undefined, mvg, x11, xpm.
+ The default will list values for (s)RGB colors in the quantum range.
+ The SVG, X11, XPM, MVG and None options lists values in the 8-bit range
+ for all Q-level compiles. The undefined option also lists values in the
+ quantum range. When colors are presented or converted to hue-based
+ colorspaces, the values listed will be integers for hue and percents for
+ the other two components. For other colorspaces, values may be listed as
+ either percents or fractional value. Setting the depth to 8 will limit
+ values to the 8-bit range, except for hue-based colors.</td>
</tr>
-<tr>
- <td colspan=2><p></p></td>
+ <tr>
+ <td colspan=2><p></p></td>
</tr>
- <tr>
- <td colspan=2><p></p></td>
+ <tr>
+ <td colspan=2><p></p></td>
</tr>
<tr>
@@ -1442,17 +1452,17 @@ use:</p>
</tr>
<tr>
- <td colspan=2><p></p></td>
+ <td colspan=2><p></p></td>
</tr>
<tr>
<td>identify:locate=<var>minimum|maximum</var></td>
- <td>Locate the coordinates of one or more image minimum or maximum.</td>
+ <td>Locate the coordinates of one or more image minimum or maximum.</td>
</tr>
<tr>
<td>identify:limit=<var>number</var></td>
- <td>Locate the coordinates for the number of minima or maxima specified.</td>
+ <td>Locate the coordinates for the number of minima or maxima specified.</td>
</tr>
</table>
@@ -1479,7 +1489,7 @@ use:</p>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -1487,4 +1497,4 @@ use:</p>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:12 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:40 --> \ No newline at end of file
diff --git a/www/develop.html b/www/develop.html
index 3c7fd6b86..666ced468 100644
--- a/www/develop.html
+++ b/www/develop.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Develop</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -97,7 +97,7 @@
<dl class="row">
<dt class="col-md-4"><a class="anchor" id="c"></a>C</dt>
-<dd class="col-md-8">Use <a href="magick-wand.html">MagickWand</a> to convert, compose, and edit images from the C language. There is also the low-level <a href="magick-core.html">MagickCore</a> library for wizard-level developers.</dd>
+<dd class="col-md-8">Use the thread-safe <a href="magick-wand.html">MagickWand</a> library to convert, compose, and edit images from the C language. There is also the low-level thread-safe <a href="magick-core.html">MagickCore</a> library for wizard-level developers.</dd>
<dt class="col-md-4"><a class="anchor" id="ch"></a>Ch</dt>
@@ -109,7 +109,7 @@
<dt class="col-md-4"><a class="anchor" id="c__"></a>C++</dt>
-<dd class="col-md-8"><a href="magick++.html">Magick++</a> provides an object-oriented C++ interface to ImageMagick. See <a href="../Magick++/tutorial/Magick++_tutorial.pdf">A Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++. We include the <a href="../Magick++/tutorial/Magick++_tutorial.odt">source</a> if you want to correct, enhance, or expand the tutorial.</dd>
+<dd class="col-md-8"><a href="magick++.html">Magick++</a> provides a thread-safe object-oriented C++ interface to ImageMagick. See <a href="../Magick++/tutorial/Magick++_tutorial.pdf">A Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++. We include the <a href="../Magick++/tutorial/Magick++_tutorial.odt">source</a> if you want to correct, enhance, or expand the tutorial.</dd>
<dt class="col-md-4"><a class="anchor" id="go"></a>GO</dt>
<dd class="col-md-8"><a href="https://github.com/gographics/imagick">GoImagick</a> is a set of Go bindings to ImageMagick's MagickWand and MagickCore C APIs.</dd>
@@ -235,7 +235,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -243,3 +243,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 18:40 --> \ No newline at end of file
diff --git a/www/display.html b/www/display.html
index 8ccadf6e3..f514dd493 100644
--- a/www/display.html
+++ b/www/display.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Display</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -599,7 +599,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -607,4 +607,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:35 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:04 --> \ No newline at end of file
diff --git a/www/distribute-pixel-cache.html b/www/distribute-pixel-cache.html
index 80f6cf164..9453c0dde 100644
--- a/www/distribute-pixel-cache.html
+++ b/www/distribute-pixel-cache.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Distributed Pixel Cache</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -128,7 +128,7 @@ convert -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -136,4 +136,4 @@ convert -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:41 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:59 --> \ No newline at end of file
diff --git a/www/download.html b/www/download.html
index ee2fa8b75..bc4b4845e 100644
--- a/www/download.html
+++ b/www/download.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Download</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -114,17 +114,17 @@
<tr>
<td><a href= "https://imagemagick.org/download/binaries/magick">magick</a></td>
- <td>Complete portable application on Linux, no installation required. Just download and run. AppImages require <a href="https://github.com/AppImage/AppImageKit/wiki/FUSE">FUSE</a> to run. Many distributions have a working FUSE setup out-of-the-box. However if it is not working for you, you may need to install and configure FUSE manually.</td>
+ <td>Complete portable application on Linux, no installation required. Just download and run. AppImages require <a href="https://github.com/AppImage/AppImageKit/wiki/FUSE">FUSE</a> and <code>libc</code> to run. Many distributions have a working FUSE setup out-of-the-box. However if it is not working for you, you must install and configure FUSE manually.</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.10-39.x86_64.rpm">ImageMagick-7.0.10-39.x86_64.rpm</a></td>
- <td>Redhat / CentOS 7.1 x86_64 RPM</td>
+ <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.10-53.x86_64.rpm">ImageMagick-7.0.10-53.x86_64.rpm</a></td>
+ <td>Redhat / CentOS 8.3 x86_64 RPM</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.10-39.x86_64.rpm">ImageMagick-libs-7.0.10-39.x86_64.rpm</a></td>
- <td>Redhat / CentOS 7.1 x86_64 RPM</td>
+ <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.10-53.x86_64.rpm">ImageMagick-libs-7.0.10-53.x86_64.rpm</a></td>
+ <td>Redhat / CentOS 8.3 x86_64 RPM</td>
</tr>
<tr>
@@ -153,9 +153,9 @@
<p>ImageMagick RPM's are self-installing. Simply type the following command and you're ready to start using ImageMagick:</p>
-<ul><pre><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-7.0.10-39.x86_64.rpm</span></pre></ul>
+<ul><pre><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-7.0.10-53.x86_64.rpm</span></pre></ul>
<p>You'll need the libraries as well:</p>
-<ul><pre><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-libs-7.0.10-39.x86_64.rpm</span></pre></ul>
+<ul><pre><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-libs-7.0.10-53.x86_64.rpm</span></pre></ul>
<p>Note, if there are missing dependencies, install them from the <a href="https://fedoraproject.org/wiki/EPEL">EPEL</a> repo.</p>
@@ -191,7 +191,7 @@ display logo.gif</code></pre></ul>
<h2><a class="anchor" id="macosx"></a>Mac OS X Binary Release</h2>
-<p>We recommend <a href="https://brew.sh">Homebrew</a> which custom builds ImageMagick in your environment (some users prefer <a href="https://macports.org">MacPorts</a>). Download HomeBrew and type:</p>
+<p>We recommend <a href="https://brew.sh">Homebrew</a> which provides pre-built binaries for Mac (some users prefer <a href="https://macports.org">MacPorts</a>). Download HomeBrew and type:</p>
<ul><pre class="highlight"><code>brew install imagemagick</code></pre></ul>
@@ -199,7 +199,7 @@ display logo.gif</code></pre></ul>
<ul><pre class="highlight"><code>brew install ghostscript</code></pre></ul>
-<p>The <code>brew</code> 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:</p>
+<p>The <code>brew</code> command downloads and installs ImageMagick with many of its delegate libraries (e.g. JPEG, PNG, Freetype, etc). Homebrew <a href="https://github.com/Homebrew/homebrew-core/issues/31510">no longer allows</a> configurable builds; if you need different compile options (e.g. librsvg support), you can download the ImageMagick Mac OS X distribution we provide:</p>
<div class="table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-hover">
@@ -273,7 +273,7 @@ display logo.gif</code></pre></ul>
<p>To run the script:</p>
<ul><pre class="highlight"><code>./imagemagick_compile.sh <var>VERSION</var></code></pre></ul>
-<p>where <var>VERSION</var> is the version of ImageMagick you want to compile (i.e.: 7.0.10-39, svn, ...)</p>
+<p>where <var>VERSION</var> is the version of ImageMagick you want to compile (i.e.: 7.0.10-53, svn, ...)</p>
<p>This script compiles ImageMagick as a static library to be included in iOS projects and adds support for</p>
<ul>
@@ -322,7 +322,7 @@ display logo.gif</code></pre></ul>
</thead>
<tbody>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x64-dll.exe">ImageMagick-7.0.10-39-Q16-HDRI-x64-dll.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x64-dll.exe">ImageMagick-7.0.10-53-Q16-HDRI-x64-dll.exe</a></td>
<td>Win64 dynamic at 16 bits-per-pixel component</td>
</tr>
</tbody>
@@ -341,92 +341,92 @@ display logo.gif</code></pre></ul>
</thead>
<tbody>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-x64-static.exe">ImageMagick-7.0.10-39-Q16-x64-static.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-x64-static.exe">ImageMagick-7.0.10-53-Q16-x64-static.exe</a></td>
<td>Win64 static at 16 bits-per-pixel component</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q8-x64-dll.exe">ImageMagick-7.0.10-39-Q8-x64-dll.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q8-x64-dll.exe">ImageMagick-7.0.10-53-Q8-x64-dll.exe</a></td>
<td>Win64 dynamic at 8 bits-per-pixel component</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q8-x64-static.exe">ImageMagick-7.0.10-39-Q8-x64-static.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q8-x64-static.exe">ImageMagick-7.0.10-53-Q8-x64-static.exe</a></td>
<td>Win64 static at 8 bits-per-pixel component</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-x64-dll.exe">ImageMagick-7.0.10-39-Q16-x64-dll.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-x64-dll.exe">ImageMagick-7.0.10-53-Q16-x64-dll.exe</a></td>
<td>Win64 dynamic at 16 bits-per-pixel component</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x64-dll.exe">ImageMagick-7.0.10-39-Q16-HDRI-x64-dll.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x64-dll.exe">ImageMagick-7.0.10-53-Q16-HDRI-x64-dll.exe</a></td>
<td>Win64 dynamic at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x64-static.exe">ImageMagick-7.0.10-39-Q16-HDRI-x64-static.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x64-static.exe">ImageMagick-7.0.10-53-Q16-HDRI-x64-static.exe</a></td>
<td>Win64 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-x86-dll.exe">ImageMagick-7.0.10-39-Q16-x86-dll.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-x86-dll.exe">ImageMagick-7.0.10-53-Q16-x86-dll.exe</a></td>
<td>Win32 dynamic at 16 bits-per-pixel component</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-x86-static.exe">ImageMagick-7.0.10-39-Q16-x86-static.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-x86-static.exe">ImageMagick-7.0.10-53-Q16-x86-static.exe</a></td>
<td>Win32 static at 16 bits-per-pixel component</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q8-x86-dll.exe">ImageMagick-7.0.10-39-Q8-x86-dll.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q8-x86-dll.exe">ImageMagick-7.0.10-53-Q8-x86-dll.exe</a></td>
<td>Win32 dynamic at 8 bits-per-pixel component</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q8-x86-static.exe">ImageMagick-7.0.10-39-Q8-x86-static.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q8-x86-static.exe">ImageMagick-7.0.10-53-Q8-x86-static.exe</a></td>
<td>Win32 static at 8 bits-per-pixel component</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x86-dll.exe">ImageMagick-7.0.10-39-Q16-HDRI-x86-dll.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x86-dll.exe">ImageMagick-7.0.10-53-Q16-HDRI-x86-dll.exe</a></td>
<td>Win32 dynamic at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x86-static.exe">ImageMagick-7.0.10-39-Q16-HDRI-x86-static.exe</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x86-static.exe">ImageMagick-7.0.10-53-Q16-HDRI-x86-static.exe</a></td>
<td>Win32 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q16-x64.zip">ImageMagick-7.0.10-39-portable-Q16-x64.zip</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q16-x64.zip">ImageMagick-7.0.10-53-portable-Q16-x64.zip</a></td>
<td>Portable Win64 static at 16 bits-per-pixel component. Just copy to your host and run (no installer, no Windows registry entries).</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q16-x86.zip">ImageMagick-7.0.10-39-portable-Q16-x86.zip</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q16-x86.zip">ImageMagick-7.0.10-53-portable-Q16-x86.zip</a></td>
<td>Portable Win32 static at 16 bits-per-pixel component. Just copy to your host and run (no installer, no Windows registry entries).</td>
</tr>
I
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q8-x64.zip">ImageMagick-7.0.10-39-portable-Q8-x64.zip</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q8-x64.zip">ImageMagick-7.0.10-53-portable-Q8-x64.zip</a></td>
<td>Portable Win64 static at 8 bits-per-pixel component. Just copy to your host and run (no installer, no Windows registry entries).</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q8-x86.zip">ImageMagick-7.0.10-39-portable-Q8-x86.zip</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q8-x86.zip">ImageMagick-7.0.10-53-portable-Q8-x86.zip</a></td>
<td>Portable Win32 static at 8 bits-per-pixel component. Just copy to your host and run (no installer, no Windows registry entries).</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q16-HDRI-x64.zip">ImageMagick-7.0.10-39-portable-Q16-HDRI-x64.zip</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q16-HDRI-x64.zip">ImageMagick-7.0.10-53-portable-Q16-HDRI-x64.zip</a></td>
<td>Portable Win64 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled. Just copy to your host and run (no installer, no Windows registry entries).</td>
</tr>
<tr>
- <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q16-HDRI-x86.zip">ImageMagick-7.0.10-39-portable-Q16-HDRI-x86.zip</a></td>
+ <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q16-HDRI-x86.zip">ImageMagick-7.0.10-53-portable-Q16-HDRI-x86.zip</a></td>
<td>Portable Win32 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled. Just copy to your host and run (no installer, no Windows registry entries).</td>
</tr>
@@ -473,7 +473,7 @@ objShell.Exec("magick ""e:/myimages/image.png"" ""e:/myimages/image.jpg""")</cod
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -481,4 +481,4 @@ objShell.Exec("magick ""e:/myimages/image.png"" ""e:/myimages/image.jpg""")</cod
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:15 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:51 --> \ No newline at end of file
diff --git a/www/escape.html b/www/escape.html
index d9ce28f39..a6f0df8d5 100644
--- a/www/escape.html
+++ b/www/escape.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Format and Print Image Properties</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -964,7 +964,7 @@ Post ObjectData Descriptor Record
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -972,4 +972,4 @@ Post ObjectData Descriptor Record
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:43 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:41 --> \ No newline at end of file
diff --git a/www/examples.html b/www/examples.html
index 7c1b3bf70..24c66b4f0 100644
--- a/www/examples.html
+++ b/www/examples.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Examples of ImageMagick Usage</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -115,7 +115,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -123,3 +123,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 19:25 --> \ No newline at end of file
diff --git a/www/exception.html b/www/exception.html
index 68bf0da7e..de70b733f 100644
--- a/www/exception.html
+++ b/www/exception.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Exceptions</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -303,7 +303,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -311,3 +311,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/export.html b/www/export.html
index 7e9599529..9858c80a3 100644
--- a/www/export.html
+++ b/www/export.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Export Classification</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -115,7 +115,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -123,4 +123,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:15 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/formats.html b/www/formats.html
index 4c240bceb..17ed42154 100644
--- a/www/formats.html
+++ b/www/formats.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Formats</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -97,7 +97,7 @@
<p>To get a complete listing of which image formats are supported on your system, type</p>
-<pre class="highlight"><code>identify -list format
+<pre class="highlight"><code>magick identify -list format
</code></pre>
<p>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.</p>
@@ -110,7 +110,7 @@ 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:</p>
-<pre class="highlight"><code>-> identify -verbose image.jpg
+<pre class="highlight"><code>-> magick identify -verbose image.jpg
Image: image.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
...
@@ -144,22 +144,13 @@ negatives required by the format.</p>
directly in LAB space, but ImageMagick permits it and generally returns
reasonable results.</p>
-<p>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,</p>
-
-<pre class="highlight"><code> magick lab.tif -colorspace RGB -resize 50% -colorspace Lab resize.jpg
-</code></pre>
-
<h2><a class="anchor" id="supported"></a>Supported Image Formats</h2>
<p>ImageMagick supports reading over 100 major file formats (not
including sub-formats). The following table provides a summary of
the supported image formats.</p>
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-hover">
<tbody>
<tr>
@@ -444,6 +435,13 @@ the supported image formats.</p>
</tr>
<tr>
+ <td>FARBFELD</td>
+ <td>RW</td>
+ <td>Farbfeld lossless image format</td>
+ <td>sRGB 16-bit RGBA lossless image format</td>
+ </tr>
+
+ <tr>
<td>FAX</td>
<td>RW</td>
<td>Group 3 TIFF</td>
@@ -465,6 +463,13 @@ the supported image formats.</p>
</tr>
<tr>
+ <td>FL32</td>
+ <td>RW</td>
+ <td>FilmLight floating point image format</td>
+ <td></td>
+ </tr>
+
+ <tr>
<td><a href="https://flif.info/">FLIF</a></td>
<td>RW</td>
<td>Free Lossless Image Format</td>
@@ -640,10 +645,10 @@ the supported image formats.</p>
</tr>
<tr>
- <td><a href="https://jpeg.org/jpegxl/index.html">JXL</a></td>
+ <td><a href="https://jpeg.org/jpegxl">JXL</a></td>
<td>RW</td>
<td><a href="https://arxiv.org/ftp/arxiv/papers/1908/1908.03565.pdf">JPEG XL image coding system</a></td>
- <td>Requires the <a href="https://github.com/google/brunsli">brunsli</a> delegate library.</td>
+ <td>Requires the <a href="https://gitlab.com/wg1/jpeg-xl.git">JPEG XL</a> delegate library.</td>
</tr>
<tr>
@@ -895,6 +900,13 @@ the supported image formats.</p>
</tr>
<tr>
+ <td><a href="http://netpbm.sourceforge.net/doc/pfm.html">PHM</a></td>
+ <td>RW</td>
+ <td>Portable float map format 16-bit half</td>
+ <td> </td>
+ </tr>
+
+ <tr>
<td>PICON</td>
<td>RW</td>
<td>Personal Icon</td>
@@ -1308,6 +1320,13 @@ the supported image formats.</p>
</tr>
<tr>
+ <td><a href="https://yaml.org/">YAML</a></td>
+ <td>W</td>
+ <td>human-readable data-serialization language</td>
+ <td>Include additional attributes about the image with these defines: <a href="command-line-options.html#define">-define yaml:locate</a>, <a href="command-line-options.html#define">-define yaml:limit</a>, <a href="command-line-options.html#define">-define yaml:moments</a>, or <a href="command-line-options.html#define">-define yaml:features</a>. Specify the JSON model schema version with <a href="command-line-options.html#define">-define yaml:version</a>. The current version is 1.0.</td>
+ </tr>
+
+ <tr>
<td>YCbCr</td>
<td>RW</td>
<td>Raw Y, Cb, and Cr samples</td>
@@ -1330,12 +1349,12 @@ the supported image formats.</p>
</tbody>
</table>
</div>
-
+<br/>
<h2><a class="anchor" id="pseudo"></a>Pseudo-image Formats</h2>
<p>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:</p>
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-hover">
<tr>
<th>Tag</th>
@@ -1571,11 +1590,12 @@ the supported image formats.</p>
</table>
</div>
+<br/>
<h2><a class="anchor" id="builtin-images"></a>Built-in Images</h2>
<p>ImageMagick includes a number of built-in (embedded) images which may be referenced as if they were an image file. The <code>magick:</code> format tag may be used via the syntax <code>magick:</code><var>name</var> to request an embedded image (e.g. <code>magick:logo</code>). For backwards compatibility, the image specifications <code>GRANITE:</code>, <code>LOGO:</code>, <code>NETSCAPE:</code>, and <code>ROSE:</code> may also be used to request images with those names.</p>
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-hover">
<tr>
<th>Tag</th>
@@ -1621,11 +1641,12 @@ the supported image formats.</p>
</table></div>
+<br/>
<h2><a class="anchor" id="builtin-patterns"></a>Built-in Patterns</h2>
<p>ImageMagick includes a number of built-in (embedded) patterns which may be referenced as if they were an image file. The <code>pattern:</code> format tag may be used via the syntax <code>pattern:</code><var>name</var> to request an embedded pattern (e.g. <code>pattern:checkerboard</code>). The pattern size is controlled with the <a href="command-line-options.html#size">-size</a> command line option.</p>
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-hover">
<tr>
<th>Tag</th>
@@ -2013,11 +2034,12 @@ the supported image formats.</p>
</tr>
</table></div>
+<br/>
<h2><a class="anchor" id="embedded"></a>Embedded Image Profiles</h2>
<p>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.</p>
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-hover">
<tbody>
<tr>
@@ -2100,7 +2122,7 @@ the supported image formats.</p>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -2108,4 +2130,4 @@ the supported image formats.</p>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:18 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:34 --> \ No newline at end of file
diff --git a/www/fx.html b/www/fx.html
index 7f374b4cb..a6f1d29fd 100644
--- a/www/fx.html
+++ b/www/fx.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - The FX Special Effects Image Operator</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -477,7 +477,7 @@ Red channel of NW corner of image #1 is 0.184582
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -485,4 +485,4 @@ Red channel of NW corner of image #1 is 0.184582
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:57 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:03 --> \ No newline at end of file
diff --git a/www/gradient.html b/www/gradient.html
index e42fd2207..4495a860a 100644
--- a/www/gradient.html
+++ b/www/gradient.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Image Gradients</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -274,7 +274,7 @@ magick -size 256x128 -define gradient:radii=128,64 radial-gradient:black-white r
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -282,4 +282,4 @@ magick -size 256x128 -define gradient:radii=128,64 radial-gradient:black-white r
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:10 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:44 --> \ No newline at end of file
diff --git a/www/high-dynamic-range.html b/www/high-dynamic-range.html
index 7a26c4110..400d0355d 100644
--- a/www/high-dynamic-range.html
+++ b/www/high-dynamic-range.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - High Dynamic-Range Images</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -117,7 +117,7 @@
<p>To verify HDRI is properly configured, look for "HDRI" as a feature:</p>
-<pre class="highlight"><code>identify -version
+<pre class="highlight"><code>magick identify -version
Features: HDRI
</code></pre>
</div>
@@ -141,7 +141,7 @@ Features: HDRI
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -149,4 +149,4 @@ Features: HDRI
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:24 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:20 --> \ No newline at end of file
diff --git a/www/history.html b/www/history.html
index 7e0f65ae4..758041528 100644
--- a/www/history.html
+++ b/www/history.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - History</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -104,11 +104,11 @@ I swear by my life and my love of it that I will never live for the sake of anot
<p>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.</p>
-<p>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, <a href="https://legacy.imagemagick.org/Usage/">Examples of ImageMagick Usage</a>. 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.</p>
+<p>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. His efforts are detailed on his web pages, <a href="https://legacy.imagemagick.org/Usage/">Examples of ImageMagick Usage</a>. 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.</p>
<p>Another notable contributor, Fred Weinhaus, makes available a plethora of command-line <a href="http://www.fmwconcepts.com/imagemagick/">scripts</a> 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, <a href="https://github.com/dlemstra/Magick.NET">Magick.NET</a>.</p>
-<p>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 <a href="../index.html">ImageMagick version 7</a>, we aim to improve the design based on lessons learned from the version 6 implementation.</p>
+<p>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 <a href="../index.html">version 7</a>, 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.</p>
<p>Cristy<br />Principal ImageMagick Architect</p>
</div>
@@ -132,7 +132,7 @@ I swear by my life and my love of it that I will never live for the sake of anot
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -140,3 +140,4 @@ I swear by my life and my love of it that I will never live for the sake of anot
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/identify.html b/www/identify.html
index ce678bd93..f0d107a5c 100644
--- a/www/identify.html
+++ b/www/identify.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Identify</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -93,18 +93,18 @@
<h1 class="text-center">Image Format and Characteristics</h1>
<p class="text-center"><a href="identify.html#usage">Example Usage</a> • <a href="identify.html#options">Option Summary</a></p>
-<p class="lead magick-description">The <code>identify</code> 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 <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>identify</code> command or see below for example usages of the command.</p>
+<p class="lead magick-description">The <code>magick identify</code> 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 <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>magick identify</code> command or see below for example usages of the command.</p>
<h2><a class="anchor" id="usage"></a>Example Usage</h2>
-<p>We list a few examples of the <code>identify</code> command here to illustrate its usefulness and ease of use. To get started, lets identify an image in the JPEG format:</p>
+<p>We list a few examples of the <code>magick identify</code> command here to illustrate its usefulness and ease of use. To get started, lets identify an image in the JPEG format:</p>
<pre class="highlight"><code>-> magick identify rose.jpg
rose.jpg JPEG 70x46 70x46+0+0 8-bit sRGB 2.36KB 0.000u 0:00.000
</code></pre>
-<p>By default, <code>identify</code> provides the following output:</p>
-
+<p>By default, <code>magick identify</code> provides the following output:</p>
+
<p><code>Filename[frame #] image-format widthxheight page-widthxpage-height+x-offset+y-offset colorspace user-time elapsed-time</code></p>
<p>Next, we look at the same image in greater detail:</p>
@@ -215,11 +215,11 @@ image.raw RGB 640x480 sRGB 9kb 0.000u 0:01
<pre class="highlight"><code>magick identify -precision 5 -define identify:locate=maximum -define identify:limit=3 image.png
</code></pre>
-<p>You can find additional examples of using <code>identify</code> in <a href="https://legacy.imagemagick.org/Usage/">Examples of ImageMagick Usage</a>.</p>
+<p>You can find additional examples of using <code>magick identify</code> in <a href="https://legacy.imagemagick.org/Usage/">Examples of ImageMagick Usage</a>.</p>
<h2><a class="anchor" id="options"></a>Option Summary</h2>
-<p>The <code>identify</code> command recognizes these options. Click on an option to get more details about how that option works.</p>
+<p>The <code>magick identify</code> command recognizes these options. Click on an option to get more details about how that option works.</p>
<table class="table table-sm table-hover">
<tbody>
@@ -468,7 +468,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -476,4 +476,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:10 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:26 --> \ No newline at end of file
diff --git a/www/import.html b/www/import.html
index 182302c2b..24b88ff73 100644
--- a/www/import.html
+++ b/www/import.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Import</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -460,7 +460,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -468,3 +468,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/index.html b/www/index.html
index d36a4b8cb..7f92262fc 100644
--- a/www/index.html
+++ b/www/index.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Convert, Edit, or Compose Bitmap Images</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -97,9 +97,9 @@ Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&am
<p>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 a derived Apache 2.0 <a href="license.html">license</a>.</p>
<p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
-<p>The current release is ImageMagick <a href="download.html">7.0.10-39</a>. It runs on <a href="download.html#unix">Linux</a>, <a href="download.html#windows">Windows</a>, <a href="download.html#macosx">Mac Os X</a>, <a href="download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
+<p>The current release is ImageMagick <a href="download.html">7.0.10-53</a>. It runs on <a href="download.html#unix">Linux</a>, <a href="download.html#windows">Windows</a>, <a href="download.html#macosx">Mac Os X</a>, <a href="download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
-<p>The authoritative ImageMagick web site is <a href="../index.html">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick" target="_blank">https://github.com/ImageMagick</a>. We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick" target="_blank">https://gitlab.com/ImageMagick</a>. We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
+<p>The authoritative ImageMagick web site is <a href="../index.html">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick/ImageMagick" target="_blank">https://github.com/ImageMagick/ImageMagick</a>. We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
<h2><a class="anchor" id="features"></a>Features and Capabilities</h2>
<p>Here are just a few <a href="examples.html">examples</a> of what ImageMagick can do for you:</p>
@@ -110,6 +110,10 @@ Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&am
<td>create a GIF animation sequence from a group of images.</td>
</tr>
<tr>
+ <td><a href="command-line-options.html#bilateral-blur">Bilateral blur</a></td>
+ <td>non-linear, edge-preserving, and noise-reducing smoothing filter.</td>
+ </tr>
+ <tr>
<td><a href="color-management.html">Color management</a></td>
<td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
</tr>
@@ -271,7 +275,7 @@ Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&am
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -279,4 +283,4 @@ Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&am
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:09 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:50 --> \ No newline at end of file
diff --git a/www/install-source.html b/www/install-source.html
index 7b53fe0fe..1af96dcd6 100644
--- a/www/install-source.html
+++ b/www/install-source.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Install from Source</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -95,7 +95,7 @@
<p class="lead magick-description">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:</p>
-<pre class="highlight"><code>identify -version
+<pre class="highlight"><code>magick identify -version
</code></pre>
<p>If the <a href="identify.html">identify</a> 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 <a href="download.html">binary release</a>. However, if you still want to install from source, choose a platform, <a href="install-source.html#unix">Unix</a> or <a href="install-source.html#windows">Windows</a>. Before installing from source, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution.</p>
@@ -106,10 +106,13 @@
<p>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. Clone the source repository:</p>
-<pre><span class="crtprompt">$ </span><span class='crtin'>git clone git@github.com:ImageMagick/ImageMagick.git ImageMagick-7.0.10</span></pre>
+<pre><span class="crtprompt">$ </span><span class='crtin'>git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.0.10</span></pre>
+<p>Or download <a href="https://imagemagick.org/download/ImageMagick.tar.gz">ImageMagick.tar.gz</a> from <a href="../download">imagemagick.org</a> or a <a href="download.html">mirror</a> and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
+
<p>Next configure and compile ImageMagick. Note the <a href="https://en.wikipedia.org/wiki/Pkg-config">pkg-config</a> script is required so that ImageMagick can find certain optional delegate libraries on your system. To configure, type:</p>
-<pre><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span></pre><p>For advanced users, we recommend a modules build:</p>
+<pre><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span></pre>
+<p>For advanced users, we recommend a modules build:</p>
<pre><span class="crtprompt">$ </span><span class='crtin'>./configure --with-modules</span></pre><p>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</p>
<pre class="highlight"><code>sudo make install
@@ -140,9 +143,10 @@
<p>Clone the Github repo:<p>
-<pre class="highlight"><code>git clone git@github.com:ImageMagick/ImageMagick-Windows.git ImageMagick-Windows-7</code></pre>
+<pre class="highlight"><code>git clone https://github.com/ImageMagick/ImageMagick-Windows.git ImageMagick-Windows-7</code></pre>
+
-<p>and run <code>CloneRepositories.cmd</code>.<p>
+<p>and run <code>CloneRepositories.cmd</code>. Or download <a href="https://imagemagick.org/download/windows">ImageMagick-Windows.zip</a> from <a href="https://imagemagick.org/download/windows">imagemagick.org</a> or a <a href="mirror.html">mirror</a> and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
<pre class="highlight"><code>unzip ImageMagick-windows.zip</code></pre>
<p> Unzip in a folder that does not need Admin permissions, otherwise Visual Studio will not be able to build the solution.<p>
@@ -186,7 +190,7 @@ to compile the program and on completion run the program.</p>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -194,4 +198,4 @@ to compile the program and on completion run the program.</p>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:47 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:00 --> \ No newline at end of file
diff --git a/www/jp2.html b/www/jp2.html
index 9acc99aa5..c83613ee5 100644
--- a/www/jp2.html
+++ b/www/jp2.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - JP2 Encoding Options</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -191,7 +191,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -199,4 +199,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:22 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:33 --> \ No newline at end of file
diff --git a/www/license.html b/www/license.html
index 0fa769988..461564e9e 100644
--- a/www/license.html
+++ b/www/license.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - License</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -144,7 +144,7 @@
<p>The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:</p>
-<p>Copyright © 1999-2020 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.</p>
+<p>Copyright © 1999-2021 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.</p>
<p><b>1. Definitions</b>.</p>
@@ -237,7 +237,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -245,3 +245,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 18:44 --> \ No newline at end of file
diff --git a/www/links.html b/www/links.html
index b9c2c468e..c2759be79 100644
--- a/www/links.html
+++ b/www/links.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Related Web Sites</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -195,7 +195,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -203,3 +203,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/magick++.html b/www/magick++.html
index 8c97b4f8a..bf7051c74 100644
--- a/www/magick++.html
+++ b/www/magick++.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Magick++, C++ API</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -93,7 +93,7 @@
<p class="text-center"><a href="magick++.html#documentation">Documentation</a> • <a href="magick++.html#get">Obtaining Magick++</a> • <a href="magick++.html#install">Installation</a> • <a href="magick++.html#bugs">Reporting Bugs</a></p>
<a class="anchor" id="intro"></a>
-<p class="lead magick-description"><a href="https://imagemagick.org/api/Magick++/index.html">Magick++ API</a> is the object-oriented C++ API to the <a href="../index.html">ImageMagick</a> image-processing library.</p>
+<p class="lead magick-description"><a href="api/Magick++/index.html">Magick++ API</a> is the object-oriented C++ API to the <a href="../index.html">ImageMagick</a> image-processing library.</p>
<p>Magick++ supports an object model which is inspired by <a href="perl-magick.html">PerlMagick</a>.
Images support implicit reference counting so that copy constructors
and assignment incur almost no cost. The cost of actually copying an
@@ -218,7 +218,7 @@ int main(int argc,char **argv)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -226,4 +226,4 @@ int main(int argc,char **argv)
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:41 -->
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/magick-core.html b/www/magick-core.html
index 72785fca3..ef0bb4472 100644
--- a/www/magick-core.html
+++ b/www/magick-core.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickCore, Low-level C API</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -91,7 +91,7 @@
<div class="magick-template">
<div class="magick-header">
<h1 class="text-center">MagickCore Image API for C</h1>
-<p class="lead magick-description">The <a href="https://imagemagick.org/api/MagickCore/index.html">MagickCore API</a> 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 <a href="https://imagemagick.org/api/MagickWand/index.html">MagickWand</a> 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:</p>
+<p class="lead magick-description">The <a href="api/MagickCore/index.html">MagickCore API</a> 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 <a href="api/MagickWand/index.html">MagickWand</a> 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:</p>
<ul>
<li><a href="api/magick.html">Initialize or Destroy the ImageMagick Environment</a></li>
@@ -150,17 +150,15 @@
<p>After you write your MagickCore program, compile it like this:</p>
-<pre class="highlight"><code>cc -o core core.c `pkg-config --cflags --libs MagickWand`
-</code></pre>
+<ul><pre class="highlight"><code>cc -o core core.c `pkg-config --cflags --libs MagickWand`</code></pre></ul>
<p>Set the <code>PKG_CONFIG_PATH</code> environment variable if ImageMagick is not in your default system path:</p>
-<pre class="highlight"><code>export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
-</code></pre>
+<ul><pre class="highlight"><code>export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig </code></pre></ul>
<p>Here is a example program that utilizes the MagickCore API to get you started, <a href="https://imagemagick.org/source/core.c">core.c</a>. It reads a GIF image, creates a thumbnail, and writes it to disk in the PNG image format.</p>
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
#include &lt;stdlib.h>
#include &lt;string.h>
#include &lt;time.h>
@@ -222,10 +220,10 @@ int main(int argc,char **argv)
exception=DestroyExceptionInfo(exception);
MagickCoreTerminus();
return(0);
-}</code></pre>
+}</code></pre></ul>
<p><a class="anchor" id="image-view"></a>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 <a href="https://imagemagick.org/source/core/sigmoidal-contrast.c">sigmoidal-contrast.c</a> 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).</p>
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
#include &lt;stdlib.h>
#include &lt;math.h>
#include &lt;MagickCore/MagickCore.h>
@@ -341,7 +339,7 @@ int main(int argc,char **argv)
image_info=DestroyImageInfo(image_info);
MagickCoreTerminus();
return(0);
-}</code></pre>
+}</code></pre></ul>
</div>
</div>
</main><!-- /.container -->
@@ -363,7 +361,7 @@ int main(int argc,char **argv)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -371,4 +369,4 @@ int main(int argc,char **argv)
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 20:42 -->
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/magick-script.html b/www/magick-script.html
index 744bf395d..13181b58c 100644
--- a/www/magick-script.html
+++ b/www/magick-script.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Magick-script</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -1320,7 +1320,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -1328,4 +1328,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:11 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:05 --> \ No newline at end of file
diff --git a/www/magick-vector-graphics.html b/www/magick-vector-graphics.html
index 230b848d2..6ff304fc0 100644
--- a/www/magick-vector-graphics.html
+++ b/www/magick-vector-graphics.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Magick Vector Graphics</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -914,7 +914,7 @@ round</code></pre></td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -922,4 +922,4 @@ round</code></pre></td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:32 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/magick-wand.html b/www/magick-wand.html
index 09a99f2dc..f5113a2b0 100644
--- a/www/magick-wand.html
+++ b/www/magick-wand.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - MagickWand, C API</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -91,7 +91,7 @@
<div class="magick-template">
<div class="magick-header">
<h1 class="text-center">MagickWand Image API for C</h1>
-<p class="lead magick-description">The <a href="https://imagemagick.org/api/MagickWand/index.html">MagickWand API</a> is the recommended interface between the C programming language and the ImageMagick image processing libraries. Unlike the <a href="https://imagemagick.org/api/MagickCore/index.html">MagickCore</a> 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:</p>
+<p class="lead magick-description">The <a href="api/MagickWand/index.html">MagickWand API</a> is the recommended interface between the C programming language and the ImageMagick image processing libraries. Unlike the <a href="api/MagickCore/index.html">MagickCore</a> 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:</p>
<ul>
<li><a href="api/magick-wand.html">Magick Wand Methods</a></li>
@@ -108,17 +108,15 @@
<p>After you write your MagickWand program, compile it like this:</p>
-<pre class="highlight"><code>cc -o wand wand.c `pkg-config --cflags --libs MagickWand`
-</code></pre>
+<ul><pre class="highlight"><code>cc -o wand wand.c `pkg-config --cflags --libs MagickWand`</code></pre></ul>
<p>Set the <code>PKG_CONFIG_PATH</code> environment variable if ImageMagick is not in your default system path:</p>
-<pre class="highlight"><code>export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
-</code></pre>
+<ul><pre class="highlight"><code>export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig</code></pre></ul>
<p>Here is a example program that utilizes the MagickWand API to get you started, <a href="https://imagemagick.org/source/wand.c">wand.c</a>. It reads an image, creates a thumbnail, and writes the result to disk.</p>
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
#include &lt;stdlib.h>
#include &lt;MagickWand/MagickWand.h>
@@ -173,11 +171,11 @@ int main(int argc,char **argv)
MagickWandTerminus();
return(0);
}
-</code></pre>
+</code></pre></ul>
<p>Here is another program that shows one way to get and set image pixels with the MagickWand API, <a href="https://imagemagick.org/source/contrast.c">contrast.c</a>. It reads an image, applies sigmoidal non-linearity contrast control, and writes the result to disk.</p>
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
#include &lt;stdlib.h>
#include &lt;math.h>
#include &lt;MagickWand/MagickWand.h>
@@ -283,10 +281,10 @@ int main(int argc,char **argv)
MagickWandTerminus();
return(0);
}
-</code></pre>
+</code></pre></ul>
<p><a class="anchor" id="wand-view"></a>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 <a href="https://imagemagick.org/source/wand/sigmoidal-contrast.c">sigmoidal-contrast.c</a> 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).</p>
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
#include &lt;stdlib.h>
#include &lt;math.h>
#include &lt;MagickWand/MagickWand.h>
@@ -392,7 +390,7 @@ int main(int argc,char **argv)
MagickWandTerminus();
return(0);
}
-</code></pre>
+</code></pre></ul>
<p><a href="../MagickWand/">MagickWand Examples in C</a> 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.</p>
</div>
</div>
@@ -415,7 +413,7 @@ int main(int argc,char **argv)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -423,4 +421,4 @@ int main(int argc,char **argv)
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:57 -->
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/magick.html b/www/magick.html
index bc737d862..2a9eded95 100644
--- a/www/magick.html
+++ b/www/magick.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Magick</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -228,6 +228,11 @@ transparent, extract, background, or shape the alpha channel</td>
</tr>
<tr>
+ <td><a href="command-line-options.html#bilateral-blur">-bilateral-blur <var>geometry</var></a></td>
+ <td>non-linear, edge-preserving, and noise-reducing smoothing filter</td>
+ </tr>
+
+ <tr>
<td><a href="command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
<td>force all pixels below the threshold into black</td>
</tr>
@@ -1359,7 +1364,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -1367,4 +1372,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:29 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:51 --> \ No newline at end of file
diff --git a/www/miff.html b/www/miff.html
index ed1b03b56..c78ee5229 100644
--- a/www/miff.html
+++ b/www/miff.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Magick Image File Format</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -279,7 +279,7 @@ or fewer colors in the image, each byte of image data contains an index value. I
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -287,4 +287,4 @@ or fewer colors in the image, each byte of image data contains an index value. I
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 20:43 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/mirror.html b/www/mirror.html
index 1763628d8..b02350fe6 100644
--- a/www/mirror.html
+++ b/www/mirror.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Mirror</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -92,25 +92,17 @@
<div class="magick-header">
<h1 class="text-center">ImageMagick Mirrors</h1>
<p class="lead magick-description">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 <a href="https://github.com/ImageMagick">Git</a>. Before you download, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution. The authoritative source code repository is <a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a>.</p>
-<p>The latest release of ImageMagick is version 7.0.10-39.</p>
+<p>The latest release of ImageMagick is version 7.0.10-53.</p>
<dl>
<dt>Germany</dt>
<dd><a href="https://mirror.dogado.de/imagemagick/">https://mirror.dogado.de/imagemagick/</a></dd>
<dd><a href="https://mirror.checkdomain.de/imagemagick/">http://mirror.checkdomain.de/imagemagick/</a></dd>
<dd><a href="ftp://mirror.checkdomain.de/imagemagick/">ftp://mirror.checkdomain.de/imagemagick/</a></dd>
- <dt>Japan</dt>
- <dd><a href="ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/">ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/</a></dd>
- <dt>Netherlands</dt>
- <dd><a href="ftp://ftp.nluug.nl/pub/ImageMagick/">ftp://ftp.nluug.nl/pub/ImageMagick</a></dd>
- <dd><a href="http://ftp.nluug.nl/ImageMagick/">http://ftp.nluug.nl/ImageMagick/</a></dd>
- <dt>Poland</dt>
- <dd><a href="ftp://sunsite.icm.edu.pl/packages/ImageMagick/">ftp://sunsite.icm.edu.pl/packages/ImageMagick/</a></dd>
- <dd><a href="rsync://ftp.tpnet.pl/pub/graphics/ImageMagick/">rsync://ftp.tpnet.pl/pub/graphics/ImageMagick/</a></dd>
<dt>Sweden</dt>
<dd><a href="https://ftp.acc.umu.se/mirror/imagemagick.org/ftp/">https://ftp.acc.umu.se/mirror/imagemagick.org/ftp/</a></dd>
<dd><a href="rsync://ftp.acc.umu.se/mirror/imagemagick.org/ftp/">rsync://ftp.acc.umu.se/mirror/imagemagick.org/ftp/</a></dd>
<dt>United States</dt>
- <dd><a href="../download">../download</a></dd>
+ <dd><a href="https://imagemagick.org/download/">../download</a></dd>
<dd><a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a> (Git)</dd>
<dd><a href="https://gitlab.com/ImageMagick">https://gitlab.com/ImageMagick</a> (Git Mirror)</dd>
<dt>Select Binaries </dt>
@@ -143,7 +135,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -151,4 +143,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:46 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:06 --> \ No newline at end of file
diff --git a/www/mogrify.html b/www/mogrify.html
index 9709e0827..c0e645308 100644
--- a/www/mogrify.html
+++ b/www/mogrify.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Mogrify</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -226,6 +226,11 @@ transparent, extract, background, or shape the alpha channel</td>
</tr>
<tr>
+ <td><a href="command-line-options.html#bilateral-blur">-bilateral-blur <var>geometry</var></a></td>
+ <td>non-linear, edge-preserving, and noise-reducing smoothing filter</td>
+ </tr>
+
+ <tr>
<td><a href="command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
<td>force all pixels below the threshold into black</td>
</tr>
@@ -1359,7 +1364,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -1367,4 +1372,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:22 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:27 --> \ No newline at end of file
diff --git a/www/montage.html b/www/montage.html
index 51536e257..352e5703a 100644
--- a/www/montage.html
+++ b/www/montage.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Montage</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -137,7 +137,7 @@
<h5>Ashlar Pseudo-image Format</h5>
<p>Use the Ashlar pseudo-image format to lay out an image sequence in continuous irregular courses. By default, a reasonable canvas size and border width is determined relative to the image collection you provide. You can explicitedly set the canvas size and border width by appending to the filename, e.g. ashlar:canvas.png[1024x768+4+4]. By default, alignment is along the left edge. Use -define ashlar:best-fit=true to align on both the left and right edges. You can label the image tiles with, for example, -label %f. Here is an example command:
-<pre class="highlight"><code>convert '*.png' -resize 320x320 -label %f ashlar:ashlar.png</code></pre>
+<pre class="highlight"><code>magick '*.png' -resize 320x320 -label %f ashlar:ashlar.png</code></pre>
<p>This is designed to quickly view a collection of images. To have more control over the layout of your image tiles, use the <code>montage</code> command instead.</p>
<h2><a class="anchor" id="options"></a>Option Summary</h2>
@@ -681,7 +681,7 @@ transparent, extract, background, or shape the alpha channel</td>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -689,4 +689,4 @@ transparent, extract, background, or shape the alpha channel</td>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:03 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:51 --> \ No newline at end of file
diff --git a/www/motion-picture.html b/www/motion-picture.html
index 70087ac62..cfc3b20dd 100644
--- a/www/motion-picture.html
+++ b/www/motion-picture.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Motion Picture Digital Images</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -179,12 +179,12 @@ dpx:user.data
<p> To determine which properties are associated with your DPX image, use this command for example:</p>
-<pre class="highlight"><code>identify -verbose bluebells.dpx
+<pre class="highlight"><code>magick identify -verbose bluebells.dpx
</code></pre>
<p>To identify a particular property, try this:</p>
-<pre class="highlight"><code>identify -format "%[dpx:television.time.code]" bluebells.dpx
+<pre class="highlight"><code>magick identify -format "%[dpx:television.time.code]" bluebells.dpx
</code></pre>
<p>Finally, to set a property:</p>
@@ -225,7 +225,7 @@ dpx:user.data
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -233,4 +233,4 @@ dpx:user.data
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 20:44 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:04 --> \ No newline at end of file
diff --git a/www/news.html b/www/news.html
index e748afb05..6758644c8 100644
--- a/www/news.html
+++ b/www/news.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - News</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -139,7 +139,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -147,3 +147,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 18:09 --> \ No newline at end of file
diff --git a/www/opencl.html b/www/opencl.html
index 97a0fc7ee..b0a9f7776 100644
--- a/www/opencl.html
+++ b/www/opencl.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Parallel Execution with OpenCL</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -141,7 +141,7 @@ if (InitializeOpenCL(clEnv,exception) == MagickFalse)
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -149,4 +149,4 @@ if (InitializeOpenCL(clEnv,exception) == MagickFalse)
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:34 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:48 --> \ No newline at end of file
diff --git a/www/openmp.html b/www/openmp.html
index 698dfe907..9d572fc20 100644
--- a/www/openmp.html
+++ b/www/openmp.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Parallel Execution with OpenMP</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -93,8 +93,8 @@
<h1 class="text-center">Threads of Execution</h1>
<p class="lead magick-description">Many of ImageMagick's internal algorithms are threaded to take advantage of speed-ups offered by the multicore processor chips and <a href="http://www.openmp.org">OpenMP</a>. 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:</p>
<pre class="highlight"><code>-> magick identify -version
-Version: ImageMagick 7.0.10-7 2020-09-04 Q16 https://imagemagick.org
-Copyright: © 1999-2020 ImageMagick Studio LLC
+Version: ImageMagick 7.0.10-50 2021-01-04 Q16 https://imagemagick.org
+Copyright: © 1999-2021 ImageMagick Studio LLC
Features: OpenMP(4.5)</code></pre>
<p>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).</p>
<p>You can further increase performance by reducing lock contention with the <a href="http://goog-perftools.sourceforge.net/doc/tcmalloc.html">tcmalloc</a> memory allocation library. To enable, add <code>--with-tcmalloc</code> to the <code>configure</code> command-line when you build ImageMagick.</p>
@@ -132,7 +132,7 @@ Performance[8]: 40i 4.831ips 0.872e 15.680u 0:02.070</code></pre>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -140,4 +140,4 @@ Performance[8]: 40i 4.831ips 0.872e 15.680u 0:02.070</code></pre>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:01 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:50 --> \ No newline at end of file
diff --git a/www/perl-magick.html b/www/perl-magick.html
index 45c1c0d87..c538021ed 100644
--- a/www/perl-magick.html
+++ b/www/perl-magick.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - PerlMagick, Perl API</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -471,6 +471,12 @@ $image-&gt;[$x]-&gt;Frame("100x200");
</tr>
<tr>
+ <td>BilateralSmoothing</td>
+ <td>geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, intensity-sigma=&gt;<i>double</i>, spatial-sigma=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}</td>
+ <td>a non-linear, edge-preserving, and noise-reducing smoothing filter for images. It replaces the intensity of each pixel with a weighted average of intensity values from nearby pixels. This weight is based on a Gaussian distribution. The weights depend not only on Euclidean distance of pixels, but also on the radiometric differences (e.g., range differences, such as color intensity, depth distance, etc.). This preserves sharp edges. The default value for the intensity and spatial sigmas are <var>2*diameter</var> and <var>0.5*diameter</var> respectively.</td>
+ </tr>
+
+ <tr>
<td>BlackThreshold</td>
<td>threshold=&gt;<i>color</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}</td>
<td>force all pixels below the threshold intensity into black</td>
@@ -2621,7 +2627,7 @@ XServerWarning
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -2629,4 +2635,4 @@ XServerWarning
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:22 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:20 --> \ No newline at end of file
diff --git a/www/porting.html b/www/porting.html
index 65126d9e4..4c8264121 100644
--- a/www/porting.html
+++ b/www/porting.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Porting to ImageMagick Version 7</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -109,7 +109,7 @@ 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. </p>
-<p>ImageMagick version 7 is available now as a <a href="../download">production</a> release.</p>
+<p>ImageMagick version 7 is available now as a <a href="https://imagemagick.org/download/">production</a> release.</p>
<p>Now that ImageMagick version 7 is released, we continue to support and enhance version 6 for a minimum of 10 years.</p>
@@ -122,10 +122,10 @@ options, and more global use of 'image properties' (more commonly known as
<pre class="pre-scrollable"><code>for (y=0; y &lt; (ssize_t) image->rows; y++)
{
- register IndexPacket
+ IndexPacket
*indexes;
- register PixelPacket
+ PixelPacket
*q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -152,11 +152,11 @@ options, and more global use of 'image properties' (more commonly known as
status=MagickFalse;
}</code></pre>
-<p>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:</p>
+<p>ImageMagick version 7 supports any number of channels from 1 to 64 (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:</p>
<pre class="pre-scrollable"><code>for (y=0; y &lt; (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -187,7 +187,7 @@ options, and more global use of 'image properties' (more commonly known as
<pre class="pre-scrollable"><code>for (y=0; y &lt; (ssize_t) image->rows; y++)
{
- register Quantum
+ Quantum
*q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -198,7 +198,7 @@ options, and more global use of 'image properties' (more commonly known as
}
for (x = 0; x &lt; (ssize_t) image->columns; x++)
{
- register ssize_t
+ ssize_t
i;
if (GetPixelWriteMask(image,q) &lt;= (QuantumRange/2))
@@ -372,7 +372,6 @@ MagickWand-config</code></pre>
<p>The Bessel filter was removed as it is an alias for Jinc. Use -filter Jinc instead.</p>
-
<h2><a class="anchor" id="cli"></a>Shell API or Command-line Interface</h2>
<p>As mentioned the primary focus of the changes to the Shell API or Command
@@ -683,7 +682,7 @@ example "+annotate", "+resize", "+clut", and "+draw" .</p>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -691,4 +690,4 @@ example "+annotate", "+resize", "+clut", and "+draw" .</p>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:07 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:45 --> \ No newline at end of file
diff --git a/www/quantize.html b/www/quantize.html
index 4218afa25..cfb89afcb 100644
--- a/www/quantize.html
+++ b/www/quantize.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Color Reduction Utilizing Adaptive Spatial Subdivision</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -233,7 +233,7 @@ while number of nodes with (n2 &gt; 0) &gt; required maximum number of colors
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -241,4 +241,4 @@ while number of nodes with (n2 &gt; 0) &gt; required maximum number of colors
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 23:15 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:47 --> \ No newline at end of file
diff --git a/www/resources.html b/www/resources.html
index 78b5023c5..4671e38ce 100644
--- a/www/resources.html
+++ b/www/resources.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Resources</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -372,6 +372,10 @@ $MAGICK_FONT_PATH</code></pre>
<td>MAGICK_WIDTH_LIMIT</td>
<td>Set the maximum <var>width</var> of an image.</td>
</tr>
+ <tr>
+ <td>SOURCE_DATE_EPOCH</td>
+ <td>A UNIX timestamp, defined as the number of seconds, excluding leap seconds, since <code>01 Jan 1970 00:00:00 UTC</code>.</td>
+ </tr>
</table></div>
<p>Define arguments for the <code>MAGICK_MEMORY_LIMIT</code>, <code>MAGICK_DISK_LIMIT</code>, and <code>MAGICK_MEMORY_LIMIT</code> environment variables with SI prefixes (.e.g <code>100MB</code>). <code>MAGICK_WIDTH_LIMIT</code>, <code>MAGICK_HEIGHT_LIMIT</code> and <code>MAGICK_AREA_LIMIT</code> accepts pixel suffixes such as MP for mega-pixels (e.g. 100MP).</p>
@@ -397,7 +401,7 @@ $MAGICK_FONT_PATH</code></pre>
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -405,3 +409,4 @@ $MAGICK_FONT_PATH</code></pre>
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 18:40 --> \ No newline at end of file
diff --git a/www/search.html b/www/search.html
index 1f06c952f..3ca9a32e2 100644
--- a/www/search.html
+++ b/www/search.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Search</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -29,7 +29,7 @@
<meta property='og:site_name' content='ImageMagick' />
<meta property='og:description' content="Create, Edit, Compose, or Convert Bitmap Images" />
<meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
- <link href="https://imagemagick.org/script/search.php" rel="canonical" />
+ <link href="search.html" rel="canonical" />
<link href="../images/wand.png" rel="icon" />
<link href="../images/wand.ico" rel="shortcut icon" />
<link href="assets/magick.css" rel="stylesheet" />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -133,7 +133,7 @@
<p><a href="security-policy.html">Security</a> •
<a href="news.html">News</a>
- <a href="https://imagemagick.org/script/search.php#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+ <a href="search.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
<a href="links.html">Related</a> •
<a href="sitemap.html">Sitemap</a>
@@ -146,7 +146,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
diff --git a/www/security-policy.html b/www/security-policy.html
index b37c03dc4..56a3110c3 100644
--- a/www/security-policy.html
+++ b/www/security-policy.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Security Policy</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -94,7 +94,7 @@
<p class="text-center"><a href="security-policy.html#policy">Security Policy </a> • <a href="security-policy.html#synchronize">Pixel Cache Synchronize Policy</a> • <a href="security-policy.html#zero-configuration">Zero Configuration Security Policy</a> • <a href="security-policy.html#other">Other Security Considerations</a></p>
-<p class="lead magick-description">ImageMagick best practices strongly encourages you to configure a security <a href="https://imagemagick.org/source/policy.xml">policy.xml</a> 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.</p>
+<p class="lead magick-description">ImageMagick best practices strongly encourages you to configure a security <a href="https://imagemagick.org/source/policy.xml">policy</a> 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.</p>
<p>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.</p>
@@ -113,7 +113,7 @@
&lt;policy domain="resource" name="file" value="768"/>
&lt;policy domain="resource" name="thread" value="2"/>
&lt;policy domain="resource" name="time" value="120"/>
- &lt;policy domain="coder" rights="write" pattern="{HTTP,HTTPS,MVG,PS,EPS,PDF,XPS}" />
+ &lt;policy domain="coder" rights="write" pattern="{HTTP,HTTPS,MSVG,MVG,PS,EPS,PDF,XPS}" />
&lt;policy domain="filter" rights="none" pattern="*" />
&lt;policy domain="path" rights="none" pattern="@*"/> &lt;!-- indirect reads not permitted -->
&lt;policy domain="cache" name="memory-map" value="anonymous"/>
@@ -153,10 +153,26 @@ convert: no images defined `wizard.jpg'</pre>
<p>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 at most 64 frames, use:</p>
<pre class="highlight"><code>&lt;policy domain="resource" name="list-length" value="64"/></code></pre>
+<p>For additional details about resource limits and the policy configuration file, read <a href="resources.html">Resources</a> and <a href="architecture.html">Architecture</a>.</p>
+
+<p>As of ImageMagick 7.0.6-0, you can programmatically set the ImageMagick security policy with SetMagickSecurityPolicy() (MagickCore) or MagickSetSecurityPolicy() (MagickWand).</p>
+
+<p>As of ImageMagick version 7.0.8-11, you can set a module security policy. For example, to prevent Postscript or PDF interpretation, use:</p>
+<pre class="highlight"><code>&lt;policy domain="module" rights="none" pattern="{ps,pdf,xps}/></code></pre>
+
+<p>As of ImageMagick version 7.0-10-52, you can set a font policy. Specify a path to a Unicode font that ImageMagick defaults to whenever the user does not specify a font preference:</p>
+<pre class="highlight"><code>&lt;policy domain="system" name="font" value="/usr/share/fonts/arial-unicode.ttf"/></code></pre>
+
<p>You can verify your policy changes are in effect with this command:</p>
<pre class="pre-scrollable">-> identify -list policy
Path: ImageMagick-7/policy.xml
+ Policy: Cache
+ name: memory-map
+ value: anonymous
+ Policy: Cache
+ name: synchronize
+ value: true
Policy: Resource
name: list-length
value: 32
@@ -193,34 +209,24 @@ Path: ImageMagick-7/policy.xml
Policy: System
name: precision
value: 6
- Policy: Cache
- name: memory-map
- value: anonymous
- Policy: Cache
- name: synchronize
- value: true
Policy: Coder
rights: Write
- pattern: {HTTP,HTTPS,MVG,PS,EPS,PDF,XPS}
+ pattern: {HTTP,HTTPS,MVG,PS,PDF}
Policy: Filter
rights: None
pattern: *
Policy: Path
rights: None
pattern: @*
+ Policy: System
+ name: font
+ value: ImageMagick-7/arial-unicode.ttf
Path: [built-in]
Policy: Undefined
rights: None</pre>
<p>Notice the <code>shared-secret</code> policy is not listed due to the <code>stealth</code> property.</p>
-<p>As of ImageMagick 7.0.6-0, you can programmatically set the ImageMagick security policy with SetMagickSecurityPolicy() (MagickCore) or MagickSetSecurityPolicy() (MagickWand).</p>
-
-<p>As of ImageMagick version 7.0.8-11, you can set a module security policy. For example, to prevent Postscript or PDF interpretation, use:</p>
-<pre class="highlight"><code>&lt;policy domain="module" rights="none" pattern="{ps,pdf,xps}/></code></pre>
-
-<p>For additional details about resource limits and the policy configuration file, read <a href="resources.html">Resources</a> and <a href="architecture.html">Architecture</a>.</p>
-
<h2><a class="anchor" id="synchronize"></a>Pixel Cache Synchronize Policy</h2>
<p>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:
@@ -277,7 +283,7 @@ Path: [built-in]
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -285,4 +291,4 @@ Path: [built-in]
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 21:26 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:57 --> \ No newline at end of file
diff --git a/www/sitemap.html b/www/sitemap.html
index 3a4258ed2..b2b9d7924 100644
--- a/www/sitemap.html
+++ b/www/sitemap.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Sitemap</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -93,7 +93,7 @@
<h1 class="text-center">ImageMagick Sitemap</h1>
<p class="text-center"><a href="sitemap.html#overview">Overview</a> • <a href="sitemap.html#download">Download ImageMagick</a> • <a href="sitemap.html#install">Install ImageMagick</a> • <a href="sitemap.html#command-line">Command-line Tools</a> • <a href="sitemap.html#program-interfaces">Program Interfaces</a> • <a href="sitemap.html#formats">Image Formats</a> • <a href="sitemap.html#help">Getting Help</a> • <a href="sitemap.html#support">Support ImageMagick</a> • <a href="sitemap.html#miscellaneous">Miscellaneous Topics</a></p>
-<p class="lead magick-description">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 <a href="https://imagemagick.org/script/search.php">site search</a>.</p>
+<p class="lead magick-description">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 <a href="search.html">site search</a>.</p>
<h2><a class="anchor" id="overview"></a>Overview</h2>
@@ -206,13 +206,17 @@
<h2><a class="anchor" id="miscellaneous"></a>Miscellaneous Topics</h2>
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-hover">
<tr>
<td><a href="https://legacy.imagemagick.org/Usage/anim_basics/">Animation</a></td>
<td>create a GIF animation sequence from a group of images.</td>
</tr>
<tr>
+ <td><a href="command-line-options.html#bilateral-blur">Bilateral blur</a></td>
+ <td>non-linear, edge-preserving, and noise-reducing smoothing filter.</td>
+ </tr>
+ <tr>
<td><a href="color-management.html">Color management</a></td>
<td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
</tr>
@@ -350,6 +354,7 @@
</tr>
</table>
</div>
+<br/>
<h2><a class="anchor" id="legacy"></a>ImageMagick Legacy</h2>
<p>We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a></p>
</div>
@@ -374,7 +379,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -382,4 +387,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:05 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/source/mgk.c b/www/source/mgk.c
index e1fea7d65..1f36eba1e 100644
--- a/www/source/mgk.c
+++ b/www/source/mgk.c
@@ -17,7 +17,7 @@
% July 1992 %
% %
% %
-% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2021 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 %
diff --git a/www/stream.html b/www/stream.html
index 545e0fadc..5e6dc0454 100644
--- a/www/stream.html
+++ b/www/stream.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Command-line Tools: Stream</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -113,6 +113,8 @@ magick display -depth 8 -size 640x480 rgb:pixels.dat
<ul><pre class="highlight"><code>magick stream -map i -storage-type double 'image.tif[100x100+30+40]' gray.raw
</code></pre></ul>
+<p>Streaming requires that the image coder read the image pixels in row order. Not all formats adhere to this requirement. Verify a particular image format first, before you utilize streaming in your workflow.</p>
+
<h2><a class="anchor" id="options"></a>Option Summary</h2>
@@ -305,7 +307,7 @@ magick display -depth 8 -size 640x480 rgb:pixels.dat
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -313,3 +315,4 @@ magick display -depth 8 -size 640x480 rgb:pixels.dat
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/support.html b/www/support.html
index 86013e0f1..ae0e066d3 100644
--- a/www/support.html
+++ b/www/support.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - Support ImageMagick Development</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -150,11 +150,11 @@
<h3>Bitcoin</h3>
<p>Our Bitcoin Address is: <a href="bitcoin:bc1qd7lckxu36ceupgt4wpnvnug3dr8jcnpqxsla2k?label=ImageMagick%20Donation">bc1qd7lckxu36ceupgt4wpnvnug3dr8jcnpqxsla2k</a>. Or you can reference the below QR code:</p>
<ul>
-<dt class="col-md-4"><img src="../images/bitcoin.svg" alt="Click to Donate to ImageMagick via Bitcoin" title="Click to Donate to ImageMagick via Bitcoin" width="300" height="300" /></dt>
+<dt class="col-md-4"><img src="../images/bitcoin.svg" alt="Click to Donate to ImageMagick via Bitcoin" title="Click to Donate to ImageMagick via Bitcoin" width="160" height="160" /></dt>
</ul>
</fieldset>
<br/>
-<p>If you prefer a recurring subscription or if you have any questions about supporting ImageMagick, please <a href="https://imagemagick.org/script/contact.php">contact us</a>.
+<p>If you have any questions about supporting ImageMagick, please <a href="https://imagemagick.org/script/contact.php">contact us</a>.
</p>
@@ -179,7 +179,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -187,4 +187,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 22:14 -->
+<!-- Magick Cache 1st January 2021 19:38 --> \ No newline at end of file
diff --git a/www/webp.html b/www/webp.html
index 7658f7fff..82e729dea 100644
--- a/www/webp.html
+++ b/www/webp.html
@@ -6,7 +6,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
- <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>ImageMagick - WebP Encoding Options</title>
<meta name="application-name" content="ImageMagick" />
<meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
</li>
</ul>
</div>
- <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+ <form class="form-inline my-2 my-md-0" action="search.html">
<input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
</form>
@@ -225,7 +225,7 @@
<a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
<a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
<br/>
- <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+ <small>© 1999-2021 ImageMagick Studio LLC</small></p>
<div>
</footer>
@@ -233,4 +233,4 @@
<script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
</body>
</html>
-<!-- Magick Cache 19th November 2020 20:48 --> \ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:41 --> \ No newline at end of file