From: Cristy Date: Sun, 30 Jul 2017 22:41:43 +0000 (-0400) Subject: ... X-Git-Tag: 7.0.6-5~17 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d7050a6647875cd06d1ad8f65b504f4ea0caff32;p=imagemagick ... --- diff --git a/index.html b/index.html index 64a2163b9..b3592a2ae 100644 --- a/index.html +++ b/index.html @@ -64,7 +64,7 @@ Use ImageMagickABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to help prevent security vulnerabilities.

-

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

+

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

The authoritative ImageMagick web site is https://www.imagemagick.org. The authoritative source code repository is http://git.imagemagick.org/repos/ImageMagick. We maintain a source code mirror at GitLab and GitHub.

@@ -234,4 +234,4 @@ Use ImageMagick - \ No newline at end of file + \ No newline at end of file diff --git a/www/ImageMagickObject.html b/www/ImageMagickObject.html index 955267ee4..1176aa0ed 100644 --- a/www/ImageMagickObject.html +++ b/www/ImageMagickObject.html @@ -125,4 +125,4 @@ regsvr32 /u /s ImageMagickObject.dll - \ No newline at end of file + \ No newline at end of file diff --git a/www/advanced-unix-installation.html b/www/advanced-unix-installation.html index a7ef3e721..c233c9ecb 100644 --- a/www/advanced-unix-installation.html +++ b/www/advanced-unix-installation.html @@ -74,7 +74,7 @@ tar xvzf ImageMagick.tar.gz

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

-
 cd ImageMagick-7.0.6-0 ./configure
+
 cd ImageMagick-7.0.6-4 ./configure

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

@@ -530,7 +530,7 @@ sudo port install jpeg

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

Unpack and change into the top-level ImageMagick directory:

-
 tar xvzf ImageMagick-7.0.6-0.tar.gz cd ImageMagick-7.0.6-0

Configure ImageMagick:

+
 tar xvzf ImageMagick-7.0.6-4.tar.gz cd ImageMagick-7.0.6-4

Configure ImageMagick:


 ./configure --prefix=/opt --with-quantum-depth=16 \
   --disable-dependency-tracking --with-x=yes \
@@ -562,7 +562,7 @@ display -display :0
 
 

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

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

Dealing with Unexpected Problems

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

@@ -631,4 +631,4 @@ identify -list format - \ No newline at end of file + \ No newline at end of file diff --git a/www/advanced-windows-installation.html b/www/advanced-windows-installation.html index b1a3a78fa..d967d39b1 100644 --- a/www/advanced-windows-installation.html +++ b/www/advanced-windows-installation.html @@ -327,7 +327,7 @@ dmake release
  1. Double-click on - VisualMagick/bin/ImageMagick-7.0.6-0-Q16-windows-dll.exe + VisualMagick/bin/ImageMagick-7.0.6-4-Q16-windows-dll.exe to launch the ImageMagick binary distribution.
  2. Complete the installer screens to install ImageMagick on your system.
@@ -396,4 +396,4 @@ _MAGICKMOD_ - \ No newline at end of file + \ No newline at end of file diff --git a/www/animate.html b/www/animate.html index 6c2589a55..ff19365cd 100644 --- a/www/animate.html +++ b/www/animate.html @@ -527,4 +527,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/architecture.html b/www/architecture.html index 288c38544..eef827aa8 100644 --- a/www/architecture.html +++ b/www/architecture.html @@ -131,7 +131,7 @@ if (image == (Image *) NULL)

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

-
 identify -version
Version: ImageMagick 7.0.6-0 2017-06-13 Q16 https://www.imagemagick.org
+
 identify -version
Version: ImageMagick 7.0.6-4 2017-07-22 Q16 https://www.imagemagick.org

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

Access the Pixel Cache

@@ -763,33 +763,31 @@ __kernel void Convolve(const __global CLPixelType *source,__constant float *filt

Here is a listing of a sample custom coder. It reads and writes images in the MGK image format which is simply an ID followed by the image width and height followed by the RGB pixel values.

-
/*
-  Include declarations.
-*/
-#include "magick/studio.h"
-#include "magick/blob.h"
-#include "magick/blob-private.h"
-#include "magick/colorspace.h"
-#include "magick/exception.h"
-#include "magick/exception-private.h"
-#include "magick/image.h"
-#include "magick/image-private.h"
-#include "magick/list.h"
-#include "magick/magick.h"
-#include "magick/memory_.h"
-#include "magick/monitor.h"
-#include "magick/monitor-private.h"
-#include "magick/quantum-private.h"
-#include "magick/static.h"
-#include "magick/string_.h"
-#include "magick/module.h"
-
+
#include <MagickCore/studio.h>
+#include <MagickCore/blob.h>
+#include <MagickCore/cache.h>
+#include <MagickCore/colorspace.h>
+#include <MagickCore/exception.h>
+#include <MagickCore/image.h>
+#include <MagickCore/list.h>
+#include <MagickCore/magick.h>
+#include <MagickCore/memory_.h>
+#include <MagickCore/monitor.h>
+#include <MagickCore/pixel-accessor.h>
+#include <MagickCore/string_.h>
+#include <MagickCore/module.h>
+#include "filter/blob-private.h"
+#include "filter/exception-private.h"
+#include "filter/image-private.h"
+#include "filter/monitor-private.h"
+#include "filter/quantum-private.h"
+
 /*
   Forward declarations.
 */
 static MagickBooleanType
-  WriteMGKImage(const ImageInfo *,Image *);
-
+  WriteMGKImage(const ImageInfo *,Image *,ExceptionInfo *);
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -824,7 +822,7 @@ static MagickBooleanType IsMGK(const unsigned char *magick,const size_t length)
     return(MagickTrue);
   return(MagickFalse);
 }
-
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -836,13 +834,14 @@ static MagickBooleanType IsMGK(const unsigned char *magick,const size_t length)
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  ReadMGKImage() reads a MGK image file and returns it.  It allocates
-%  the memory necessary for the new Image structure and returns a pointer to
-%  the new image.
+%  ReadMGKImage() reads a MGK image file and returns it.  It allocates the
+%  memory necessary for the new Image structure and returns a pointer to the
+%  new image.
 %
 %  The format of the ReadMGKImage method is:
 %
-%      Image *ReadMGKImage(const ImageInfo *image_info,ExceptionInfo *exception)
+%      Image *ReadMGKImage(const ImageInfo *image_info,
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -851,8 +850,7 @@ static MagickBooleanType IsMGK(const unsigned char *magick,const size_t length)
 %    o exception: return any errors or warnings in this structure.
 %
 */
-static Image *ReadMGKImage(const ImageInfo *image_info,
-  ExceptionInfo *exception)
+static Image *ReadMGKImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
   char
     buffer[MaxTextExtent];
@@ -860,21 +858,23 @@ static Image *ReadMGKImage(const ImageInfo *image_info,
   Image
     *image;
 
+  long
+    y;
+
   MagickBooleanType
     status;
 
+  register long
+    x;
+
   register Quantum
     *q;
 
-  register size_t
-    x;
-
   register unsigned char
     *p;
 
   ssize_t
-    count,
-    y;
+    count;
 
   unsigned char
     *pixels;
@@ -887,12 +887,13 @@ static Image *ReadMGKImage(const ImageInfo *image_info,
     Open image file.
   */
   assert(image_info != (const ImageInfo *) NULL);
-  assert(image_info->signature == MagickSignature);
-  if (image_info->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image_info->filename);
+  assert(image_info->signature == MagickCoreSignature);
+  if (image_info->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+      image_info->filename);
   assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickSignature);
-  image=AcquireImage(image_info);
+  assert(exception->signature == MagickCoreSignature);
+  image=AcquireImage(image_info,exception);
   status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
   if (status == MagickFalse)
     {
@@ -906,7 +907,7 @@ static Image *ReadMGKImage(const ImageInfo *image_info,
   if (IsMGK(buffer,7) == MagickFalse)
     ThrowReaderException(CorruptImageError,"ImproperImageHeader");
   (void) ReadBlobString(image,buffer);
-  count=(ssize_t) sscanf(buffer,"%lu %lu\n",&columns,&rows);
+  count=(ssize_t) sscanf(buffer,"%lu %lu\n",&columns,&rows);
   if (count <= 0)
     ThrowReaderException(CorruptImageError,"ImproperImageHeader");
   do
@@ -914,33 +915,31 @@ static Image *ReadMGKImage(const ImageInfo *image_info,
     /*
       Initialize image structure.
     */
-    image->columns=columns;
-    image->rows=rows;
-    image->depth=8;
-    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
-      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+    image->columns=columns;
+    image->rows=rows;
+    image->depth=8;
+    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
         break;
     /*
       Convert MGK raster image to pixel packets.
     */
-    if (SetImageExtent(image,0,0) == MagickFalse)
-      {
-        InheritException(exception,&image->exception);
-        return(DestroyImageList(image));
-      }
-    pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns,3UL*sizeof(*pixels));
+    if (SetImageExtent(image,image->columns,image->rows,exception) == MagickFalse)
+      return(DestroyImageList(image));
+    pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns,
+      3UL*sizeof(*pixels));
     if (pixels == (unsigned char *) NULL)
       ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
-    for (y=0; y < (ssize_t) image->rows; y++)
+    for (y=0; y < (long) image->rows; y++)
     {
-      count=(ssize_t) ReadBlob(image,(size_t) (3*image->columns),pixels);
-      if (count != (ssize_t) (3*image->columns))
+      count=(ssize_t) ReadBlob(image,(size_t) (3*image->columns),pixels);
+      if (count != (ssize_t) (3*image->columns))
         ThrowReaderException(CorruptImageError,"UnableToReadImageData");
       p=pixels;
-      q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+      q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
       if (q == (Quantum *) NULL)
         break;
-      for (x=0; x < (ssize_t) image->columns; x++)
+      for (x=0; x < (long) image->columns; x++)
       {
         SetPixelRed(image,ScaleCharToQuantum(*p++),q);
         SetPixelGreen(image,ScaleCharToQuantum(*p++),q);
@@ -949,46 +948,57 @@ static Image *ReadMGKImage(const ImageInfo *image_info,
       }
       if (SyncAuthenticPixels(image,exception) == MagickFalse)
         break;
-      if ((image->previous == (Image *) NULL) &&
-          (SetImageProgress(image,LoadImageTag,y,image>>rows) == MagickFalse))
-        break;
+      if (image->previous == (Image *) NULL)
+        if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
+            (QuantumTick(y,image->rows) != MagickFalse))
+          {
+            status=image->progress_monitor(LoadImageTag,y,image->rows,
+              image->client_data);
+            if (status == MagickFalse)
+              break;
+          }
     }
     pixels=(unsigned char *) RelinquishMagickMemory(pixels);
     if (EOFBlob(image) != MagickFalse)
       {
-        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",image->filename);
+        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+          image->filename);
         break;
       }
     /*
       Proceed to next image.
     */
-    if (image_info->number_scenes != 0)
-      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+    if (image_info->number_scenes != 0)
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
         break;
     *buffer='\0';
     (void) ReadBlobString(image,buffer);
-    count=(ssize_t) sscanf(buffer,"%lu %lu\n",&columns,&rows);
-    if (count != 0)
+    count=(ssize_t) sscanf(buffer,"%lu %lu\n",&columns,&rows);
+    if (count > 0)
       {
         /*
           Allocate next image structure.
         */
-        AcquireNextImage(image_info,image);
+        AcquireNextImage(image_info,image,exception);
         if (GetNextImageInList(image) == (Image *) NULL)
           {
             image=DestroyImageList(image);
             return((Image *) NULL);
           }
         image=SyncNextImageInList(image);
-        status=SetImageProgress(image,LoadImageTag,TellBlob(image),GetBlobSize(image));
-        if (status == MagickFalse)
-          break;
+        if (image->progress_monitor != (MagickProgressMonitor) NULL)
+          {
+            status=SetImageProgress(image,LoadImageTag,TellBlob(image),
+              GetBlobSize(image));
+            if (status == MagickFalse)
+              break;
+          }
       }
-  } while (count != 0);
+  } while (count > 0);
   (void) CloseBlob(image);
   return(GetFirstImageInList(image));
 }
-
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -1017,16 +1027,14 @@ ModuleExport unsigned long RegisterMGKImage(void)
   MagickInfo
     *entry;
 
-  entry=SetMagickInfo("MGK");
-  entry->decoder=(DecodeImageHandler *) ReadMGKImage;
-  entry->encoder=(EncodeImageHandler *) WriteMGKImage;
-  entry->magick=(IsImageFormatHandler *) IsMGK;
-  entry->description=ConstantString("MGK");
-  entry->module=ConstantString("MGK");
+  entry=AcquireMagickInfo("MGK","MGK","MGK image");
+  entry->decoder=(DecodeImageHandler *) ReadMGKImage;
+  entry->encoder=(EncodeImageHandler *) WriteMGKImage;
+  entry->magick=(IsImageFormatHandler *) IsMGK;
   (void) RegisterMagickInfo(entry);
   return(MagickImageCoderSignature);
 }
-
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -1050,7 +1058,7 @@ ModuleExport void UnregisterMGKImage(void)
 {
   (void) UnregisterMagickInfo("MGK");
 }
-
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -1062,12 +1070,13 @@ ModuleExport void UnregisterMGKImage(void)
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  WriteMGKImage() writes an image to a file in red, green, and blue
-%  MGK rasterfile format.
+%  WriteMGKImage() writes an image to a file in red, green, and blue MGK
+%  rasterfile format.
 %
 %  The format of the WriteMGKImage method is:
 %
-%      MagickBooleanType WriteMGKImage(const ImageInfo *image_info,Image *image)
+%      MagickBooleanType WriteMGKImage(const ImageInfo *image_info,
+%        Image *image)
 %
 %  A description of each parameter follows.
 %
@@ -1075,12 +1084,18 @@ ModuleExport void UnregisterMGKImage(void)
 %
 %    o image:  The image.
 %
+%    o exception:  return any errors or warnings in this structure.
+%
 */
-static MagickBooleanType WriteMGKImage(const ImageInfo *image_info,Image *image)
+static MagickBooleanType WriteMGKImage(const ImageInfo *image_info,Image *image,
+  ExceptionInfo *exception)
 {
   char
     buffer[MaxTextExtent];
 
+  long
+    y;
+
   MagickBooleanType
     status;
 
@@ -1090,15 +1105,12 @@ static MagickBooleanType WriteMGKImage(const ImageInfo *image_info,Image *image)
   register const Quantum
     *p;
 
-  register ssize_t
+  register long
     x;
 
   register unsigned char
     *q;
 
-  ssize_t
-    y;
-
   unsigned char
     *pixels;
 
@@ -1106,12 +1118,12 @@ static MagickBooleanType WriteMGKImage(const ImageInfo *image_info,Image *image)
     Open output image file.
   */
   assert(image_info != (const ImageInfo *) NULL);
-  assert(image_info->signature == MagickSignature);
+  assert(image_info->signature == MagickCoreSignature);
   assert(image != (Image *) NULL);
-  assert(image->signature == MagickSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
   scene=0;
@@ -1120,9 +1132,9 @@ static MagickBooleanType WriteMGKImage(const ImageInfo *image_info,Image *image)
     /*
       Allocate memory for pixels.
     */
-    if (image->colorspace != RGBColorspace)
-      (void) SetImageColorspace(image,RGBColorspace);
-    pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns,
+    if (image->colorspace != RGBColorspace)
+      (void) SetImageColorspace(image,RGBColorspace,exception);
+    pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns,
       3UL*sizeof(*pixels));
     if (pixels == (unsigned char *) NULL)
       ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
@@ -1130,26 +1142,32 @@ static MagickBooleanType WriteMGKImage(const ImageInfo *image_info,Image *image)
       Initialize raster file header.
     */
     (void) WriteBlobString(image,"id=mgk\n");
-    (void) FormatLocaleString(buffer,MaxTextExtent,"%lu %lu\n",
-      image->columns,image->rows);
+    (void) FormatLocaleString(buffer,MaxTextExtent,"%lu %lu\n",image->columns,
+       image->rows);
     (void) WriteBlobString(image,buffer);
-    for (y=0; y < (ssize_t) image->rows; y++)
+    for (y=0; y < (long) image->rows; y++)
     {
-      p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+      p=GetVirtualPixels(image,0,y,image->columns,1,exception);
       if (p == (const Quantum *) NULL)
         break;
       q=pixels;
-      for (x=0; x < (ssize_t) image->columns; x++)
+      for (x=0; x < (long) image->columns; x++)
       {
-        *q++=ScaleQuantumToChar(GetPixelRed(p));
-        *q++=ScaleQuantumToChar(GetPixelGreen(p));
-        *q++=ScaleQuantumToChar(GetPixelBlue(p));
+        *q++=ScaleQuantumToChar(GetPixelRed(image,p));
+        *q++=ScaleQuantumToChar(GetPixelGreen(image,p));
+        *q++=ScaleQuantumToChar(GetPixelBlue(image,p));
         p+=GetPixelChannels(image);
       }
       (void) WriteBlob(image,(size_t) (q-pixels),pixels);
-      if ((image->previous == (Image *) NULL) &&
-          (SetImageProgress(image,SaveImageTag,y,image->rows) == MagickFalse))
-        break;
+      if (image->previous == (Image *) NULL)
+        if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
+            (QuantumTick(y,image->rows) != MagickFalse))
+          {
+            status=image->progress_monitor(SaveImageTag,y,image->rows,
+              image->client_data);
+            if (status == MagickFalse)
+              break;
+          }
     }
     pixels=(unsigned char *) RelinquishMagickMemory(pixels);
     if (GetNextImageInList(image) == (Image *) NULL)
@@ -1160,7 +1178,7 @@ static MagickBooleanType WriteMGKImage(const ImageInfo *image_info,Image *image)
     if (status == MagickFalse)
       break;
     scene++;
-  } while (image_info->adjoin != MagickFalse);
+  } while (image_info->adjoin != MagickFalse);
   (void) CloseBlob(image);
   return(MagickTrue);
 }
@@ -1179,14 +1197,14 @@ display logo.mgk

Here is a listing of a sample custom image filter. It computes a few statistics such as the pixel brightness and saturation mean and standard-deviation.

-
#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <assert.h>
-#include <math.h>
-#include "magick/MagickCore.h"
-
+
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <assert.h>
+#include <math.h>
+#include <MagickCore/MagickCore.h>
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -1199,7 +1217,7 @@ display logo.mgk
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 %  analyzeImage() computes the brightness and saturation mean,  standard
-%  deviation, kurtosis and skewness and stores these values as attributes
+%  deviation, kurtosis and skewness and stores these values as attributes 
 %  of the image.
 %
 %  The format of the analyzeImage method is:
@@ -1220,8 +1238,51 @@ display logo.mgk
 %    o exception: return any errors or warnings in this structure.
 %
 */
-ModuleExport size_t analyzeImage(Image **images,const int argc,const char **argv,
-  ExceptionInfo *exception)
+
+static void ConvertRGBToHSB(const double red,const double green,
+  const double blue,double *hue,double *saturation,double *brightness)
+{
+  double
+    delta,
+    max,
+    min;
+
+  /*
+    Convert RGB to HSB colorspace.
+  */
+  assert(hue != (double *) NULL);
+  assert(saturation != (double *) NULL);
+  assert(brightness != (double *) NULL);
+  *hue=0.0;
+  *saturation=0.0;
+  *brightness=0.0;
+  min=red < green ? red : green;
+  if (blue < min)
+    min=blue;
+  max=red > green ? red : green;
+  if (blue > max)
+    max=blue;
+  if (fabs(max) < MagickEpsilon)
+    return;
+  delta=max-min;
+  *saturation=delta/max;
+  *brightness=QuantumScale*max;
+  if (fabs(delta) < MagickEpsilon)
+    return;
+  if (fabs(red-max) < MagickEpsilon)
+    *hue=(green-blue)/delta;
+  else
+    if (fabs(green-max) < MagickEpsilon)
+      *hue=2.0+(blue-red)/delta;
+    else
+      *hue=4.0+(red-green)/delta;
+  *hue/=6.0;
+  if (*hue < 0.0)
+    *hue+=1.0;
+}
+
+ModuleExport size_t analyzeImage(Image **images,const int argc,
+  const char **argv,ExceptionInfo *exception)
 {
   char
     text[MaxTextExtent];
@@ -1253,7 +1314,7 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,const char **argv
 
   assert(images != (Image **) NULL);
   assert(*images != (Image *) NULL);
-  assert((*images)->signature == MagickSignature);
+  assert((*images)->signature == MagickCoreSignature);
   (void) argc;
   (void) argv;
   image=(*images);
@@ -1262,12 +1323,12 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,const char **argv
     CacheView
       *image_view;
 
+    long
+      y;
+
     MagickBooleanType
       status;
 
-    ssize_t
-      y;
-
     brightness_sum_x=0.0;
     brightness_sum_x2=0.0;
     brightness_sum_x3=0.0;
@@ -1290,25 +1351,26 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,const char **argv
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
     #pragma omp parallel for schedule(dynamic,4) shared(status)
 #endif
-    for (y=0; y < (ssize_t) image->rows; y++)
+    for (y=0; y < (long) image->rows; y++)
     {
       register const Quantum
         *p;
 
-      register ssize_t
+      register long
         x;
 
       if (status == MagickFalse)
         continue;
-      p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
+      p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
       if (p == (const Quantum *) NULL)
         {
           status=MagickFalse;
           continue;
         }
-      for (x=0; x < (ssize_t) image->columns; x++)
+      for (x=0; x < (long) image->columns; x++)
       {
-        ConvertRGBToHSB(GetPixelRed(p),GetPixelGreen(p),GetPixelBue(p),&hue,&saturation,&brightness);
+        ConvertRGBToHSB(GetPixelRed(image,p),GetPixelGreen(image,p),
+          GetPixelBlue(image,p),&hue,&saturation,&brightness);
         brightness*=QuantumRange;
         brightness_sum_x+=brightness;
         brightness_sum_x2+=brightness*brightness;
@@ -1328,12 +1390,13 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,const char **argv
       break;
     brightness_mean=brightness_sum_x/area;
     (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_mean);
-    (void) SetImageProperty(image,"filter:brightness:mean",text);
+    (void) SetImageProperty(image,"filter:brightness:mean",text,exception);
     brightness_standard_deviation=sqrt(brightness_sum_x2/area-(brightness_sum_x/
       area*brightness_sum_x/area));
     (void) FormatLocaleString(text,MaxTextExtent,"%g",
       brightness_standard_deviation);
-    (void) SetImageProperty(image,"filter:brightness:standard-deviation",text);
+    (void) SetImageProperty(image,"filter:brightness:standard-deviation",text,
+      exception);
     if (brightness_standard_deviation != 0)
       brightness_kurtosis=(brightness_sum_x4/area-4.0*brightness_mean*
         brightness_sum_x3/area+6.0*brightness_mean*brightness_mean*
@@ -1342,22 +1405,24 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,const char **argv
         brightness_standard_deviation*brightness_standard_deviation*
         brightness_standard_deviation)-3.0;
     (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_kurtosis);
-    (void) SetImageProperty(image,"filter:brightness:kurtosis",text);
+    (void) SetImageProperty(image,"filter:brightness:kurtosis",text,
+      exception);
     if (brightness_standard_deviation != 0)
       brightness_skewness=(brightness_sum_x3/area-3.0*brightness_mean*
         brightness_sum_x2/area+2.0*brightness_mean*brightness_mean*
         brightness_mean)/(brightness_standard_deviation*
         brightness_standard_deviation*brightness_standard_deviation);
     (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_skewness);
-    (void) SetImageProperty(image,"filter:brightness:skewness",text);
+    (void) SetImageProperty(image,"filter:brightness:skewness",text,exception);
     saturation_mean=saturation_sum_x/area;
     (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_mean);
-    (void) SetImageProperty(image,"filter:saturation:mean",text);
+    (void) SetImageProperty(image,"filter:saturation:mean",text,exception);
     saturation_standard_deviation=sqrt(saturation_sum_x2/area-(saturation_sum_x/
       area*saturation_sum_x/area));
     (void) FormatLocaleString(text,MaxTextExtent,"%g",
       saturation_standard_deviation);
-    (void) SetImageProperty(image,"filter:saturation:standard-deviation",text);
+    (void) SetImageProperty(image,"filter:saturation:standard-deviation",text,
+      exception);
     if (saturation_standard_deviation != 0)
       saturation_kurtosis=(saturation_sum_x4/area-4.0*saturation_mean*
         saturation_sum_x3/area+6.0*saturation_mean*saturation_mean*
@@ -1366,17 +1431,18 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,const char **argv
         saturation_standard_deviation*saturation_standard_deviation*
         saturation_standard_deviation)-3.0;
     (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_kurtosis);
-    (void) SetImageProperty(image,"filter:saturation:kurtosis",text);
+    (void) SetImageProperty(image,"filter:saturation:kurtosis",text,exception);
     if (saturation_standard_deviation != 0)
       saturation_skewness=(saturation_sum_x3/area-3.0*saturation_mean*
         saturation_sum_x2/area+2.0*saturation_mean*saturation_mean*
         saturation_mean)/(saturation_standard_deviation*
         saturation_standard_deviation*saturation_standard_deviation);
     (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_skewness);
-    (void) SetImageProperty(image,"filter:saturation:skewness",text);
+    (void) SetImageProperty(image,"filter:saturation:skewness",text,exception);
   }
   return(MagickImageFilterSignature);
-}
+} +

To invoke the custom filter from the command line, use this command:

@@ -1418,4 +1484,4 @@ ModuleExport size_t analyzeImage(Image **images,const int argc,const char **argv - \ No newline at end of file + \ No newline at end of file diff --git a/www/changelog.html b/www/changelog.html index 147186982..6e699bca2 100644 --- a/www/changelog.html +++ b/www/changelog.html @@ -52,12 +52,45 @@
-
2017-07-02 7.0.6-1 Glenn Randers-Pehrson <glennrp@image...>
+
2017-07-28 7.0.6-4 Cristy <quetzlzacatenango@image...>
+
  • Release ImageMagick version 7.0.6-4, GIT revision 20657:4e81160d6:20170728.
  • +
    2017-07-24 7.0.6-3 Cristy <quetzlzacatenango@image...>
    +
  • YUV coder no longer renders streaks (reference https://github.com/ImageMagick/ImageMagick/issues/612).
  • +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
  • coders/png.c: Initialized quantum_scanline and quantum_info to prevent a bad free (reference https://github.com/ImageMagick/ImageMagick/issues/621).
  • +
    2017-07-25 7.0.6-4 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Removed write_chunk_from_profile() from coders/png.c because it has not worked at least since version 6.7.6.
  • +
  • Removed many redundant checks before RelinquishMagickMemory(), which is safe to call with a NULL argument.
  • +
  • Added experimental PNG orNT chunk, to store image->orientation.
  • +
  • Removed vpAg chunk write support (we are now writing caNv instead).
  • +
    2017-07-24 7.0.6-3 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-3, GIT revision 20598:cc9c43b44:20170724.
  • +
    2017-07-23 7.0.6-3 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
    2017-07-23 7.0.6-3 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Fix memory leaks when reading a malformed JNG image: https://github.com/ImageMagick/ImageMagick/issues/600, https://github.com/ImageMagick/ImageMagick/issues/602).
  • +
    2017-07-21 7.0.6-2 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-2, GIT revision 20549:62fcf3d96:20170721.
  • +
    2017-07-19 7.0.6-2 Cristy <quetzlzacatenango@image...>
    +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
  • The -monochrome option no longer returns a blank canvas (reference https://github.com/ImageMagick/ImageMagick/issues/594).
  • +
    2017-07-15 7.0.6-2 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Added caNv, eXIf, and pHYs to the list of PNG chunks to be removed by the "-strip" option.
  • +
    2017-07-15 7.0.6-1 Cristy <quetzlzacatenango@image...>
    +
  • Release ImageMagick version 7.0.6-1, GIT revision 20447:c2a315e10:20170715.
  • +
    2017-07-13 7.0.6-1 Glenn Randers-Pehrson <glennrp@image...>
    +
  • Implemented PNG eXIf chunk support.
  • +
    2017-07-08 7.0.6-1 Cristy <quetzlzacatenango@image...>
    +
  • Support new -auto-threshold option. OTSU and Triangle methods are currently supported. Look for the Kapur method in the next release.
  • +
  • Fixed numerous memory leaks (reference https://github.com/ImageMagick/ImageMagick/issues).
  • +
  • Don't use variable float_t / double_t, bump SO (reference https://github.com/ImageMagick/ImageMagick/issues/510).
  • +
  • Support DNG images with libraw delegate library.
  • +
    2017-07-02 7.0.6-1 Glenn Randers-Pehrson <glennrp@image...>
  • Reject PNG file that is too small (under 60 bytes) to contain a valid image.
  • Reject JPEG file that is too small (under 107 bytes) to contain a valid image.
  • Reject JNG file that is too small (under 147 bytes) to contain a valid image.
  • 2017-06-22 7.0.6-1 Glenn Randers-Pehrson <glennrp@image...>
    -
  • Stop a memory leak in read_user_chunk_callback() (reference https://github.com/ImageMagick/ImageMagick/issues/517).
  • +
  • Stop a memory leak in read_user_chunk_callback() (reference https://github.com/ImageMagick/ImageMagick/issues/517, CVE 2017-11310).
  • 2017-06-10 7.0.6-0 Cristy <quetzlzacatenango@image...>
  • Release ImageMagick version 7.0.6-0, GIT revision 20194:b0c0d00:20170611.
  • 2017-06-10 7.0.6-0 Glenn Randers-Pehrson <glennrp@image...>
    @@ -423,4 +456,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/cipher.html b/www/cipher.html index b2817b58d..ba2105d18 100644 --- a/www/cipher.html +++ b/www/cipher.html @@ -135,4 +135,4 @@ Examples - \ No newline at end of file + \ No newline at end of file diff --git a/www/color-management.html b/www/color-management.html index 067d16703..c9fd7167c 100644 --- a/www/color-management.html +++ b/www/color-management.html @@ -127,4 +127,4 @@ magick myimage_channels_*.png -set colorspace HSL -combine -colorspace RGB -set - \ No newline at end of file + \ No newline at end of file diff --git a/www/color.html b/www/color.html index 64e384395..d8705cfda 100644 --- a/www/color.html +++ b/www/color.html @@ -4924,4 +4924,4 @@ device-cmyk(0.11, 0.48, 0.83, 0.00)
    - \ No newline at end of file + \ No newline at end of file diff --git a/www/command-line-options.html b/www/command-line-options.html index 30fbef9b3..5c14a3084 100644 --- a/www/command-line-options.html +++ b/www/command-line-options.html @@ -1794,7 +1794,7 @@ available:

    - + @@ -4449,10 +4449,6 @@ a power law, namely, pow(pixel,1/gamma) or pixel^(1/gamma), where pixel is the normalized or 0 to 1 color value. For example, using a value of gamma=2 is the same as taking the square root of the image.

    -

    You can apply separate gamma values to the red, green, and blue channels of -the image with a gamma value list delimited with commas (e.g., -1.7,2.3,1.2).

    -

    Use +gamma value to set the image gamma level without actually adjusting the image pixels. This option is useful if the image is of a known gamma but not set as an image attribute @@ -8105,4 +8101,4 @@ but with strict boolean masking.

    - \ No newline at end of file + \ No newline at end of file diff --git a/www/command-line-processing.html b/www/command-line-processing.html index 07f877004..230805212 100644 --- a/www/command-line-processing.html +++ b/www/command-line-processing.html @@ -603,4 +603,4 @@ image-2.jpg - \ No newline at end of file + \ No newline at end of file diff --git a/www/command-line-tools.html b/www/command-line-tools.html index feefc4fca..f6bb27641 100644 --- a/www/command-line-tools.html +++ b/www/command-line-tools.html @@ -100,4 +100,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/compare.html b/www/compare.html index b03d99031..dfc7e3c2b 100644 --- a/www/compare.html +++ b/www/compare.html @@ -324,6 +324,11 @@ transparent, extract, background, or shape the alpha channel + + + + + @@ -410,4 +415,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/composite.html b/www/composite.html index 277595048..837ddb695 100644 --- a/www/composite.html +++ b/www/composite.html @@ -521,4 +521,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/conjure.html b/www/conjure.html index 2a049a55f..99402de1a 100644 --- a/www/conjure.html +++ b/www/conjure.html @@ -1133,4 +1133,4 @@ fill="color name", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, - \ No newline at end of file + \ No newline at end of file diff --git a/www/connected-components.html b/www/connected-components.html index 1959f1745..0adfb06f5 100644 --- a/www/connected-components.html +++ b/www/connected-components.html @@ -111,4 +111,4 @@ Objects (id: bounding-box centroid area mean-color): - \ No newline at end of file + \ No newline at end of file diff --git a/www/convert.html b/www/convert.html index 021673bd6..1b0c24fc1 100644 --- a/www/convert.html +++ b/www/convert.html @@ -1322,4 +1322,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/develop.html b/www/develop.html index 22d7e55c3..3f470ebd2 100644 --- a/www/develop.html +++ b/www/develop.html @@ -191,4 +191,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/display.html b/www/display.html index 4d7ddf7cb..683b4ef41 100644 --- a/www/display.html +++ b/www/display.html @@ -563,4 +563,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/distribute-pixel-cache.html b/www/distribute-pixel-cache.html index 6f82ad8f6..377df7adc 100644 --- a/www/distribute-pixel-cache.html +++ b/www/distribute-pixel-cache.html @@ -84,4 +84,4 @@ convert -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \ - \ No newline at end of file + \ No newline at end of file diff --git a/www/download.html b/www/download.html index 7f19c6aba..cc385557b 100644 --- a/www/download.html +++ b/www/download.html @@ -74,16 +74,16 @@ - - - + + + - - - + + + @@ -120,8 +120,8 @@

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

    -
     rpm -Uvh ImageMagick-7.0.6-0.x86_64.rpm

    You'll need the libraries as well:

    -
     rpm -Uvh ImageMagick-libs-7.0.6-0.x86_64.rpm
    +
     rpm -Uvh ImageMagick-7.0.6-4.x86_64.rpm

    You'll need the libraries as well:

    +
     rpm -Uvh ImageMagick-libs-7.0.6-4.x86_64.rpm

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

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

    To run the script:

    ./imagemagick_compile.sh VERSION
    -

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

    +

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

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

      @@ -281,9 +281,9 @@ display logo.gif
    - - - + + +
    bmp:alpha=true|falsebmp3:alpha=true|false include any alpha channel when writing in the BMP image format.
    seed a new sequence of pseudo-random numbers
    -separateseparate an image channel into a grayscale image
    -set attribute value set an image attribute
    ImageMagick-7.0.6-0.x86_64.rpmdownloaddownloadImageMagick-7.0.6-4.x86_64.rpmdownloaddownload Redhat / CentOS 7.1 x86_64 RPM
    ImageMagick-libs-7.0.6-0.x86_64.rpmdownloaddownloadImageMagick-libs-7.0.6-4.x86_64.rpmdownloaddownload Redhat / CentOS 7.1 x86_64 RPM
    ImageMagick-7.0.6-0-Q16-x64-dll.exedownloaddownloadImageMagick-7.0.6-4-Q16-x64-dll.exedownloaddownload Win64 dynamic at 16 bits-per-pixel component
    @@ -301,93 +301,93 @@ display logo.gif
    - ImageMagick-7.0.6-0-Q16-x64-static.exe - download - download + ImageMagick-7.0.6-4-Q16-x64-static.exe + download + download Win64 static at 16 bits-per-pixel component - ImageMagick-7.0.6-0-Q8-x64-dll.exe - download - download + ImageMagick-7.0.6-4-Q8-x64-dll.exe + download + download Win64 dynamic at 8 bits-per-pixel component - ImageMagick-7.0.6-0-Q8-x64-static.exe - download - download + ImageMagick-7.0.6-4-Q8-x64-static.exe + download + download Win64 static at 8 bits-per-pixel component - ImageMagick-7.0.6-0-Q16-HDRI-x64-dll.exe - download - download + ImageMagick-7.0.6-4-Q16-HDRI-x64-dll.exe + download + download Win64 dynamic at 16 bits-per-pixel component with high dynamic-range imaging enabled - ImageMagick-7.0.6-0-Q16-HDRI-x64-static.exe - download - download + ImageMagick-7.0.6-4-Q16-HDRI-x64-static.exe + download + download Win64 static at 16 bits-per-pixel component with high dynamic-range imaging enabled - ImageMagick-7.0.6-0-Q16-x86-dll.exe - download - download + ImageMagick-7.0.6-4-Q16-x86-dll.exe + download + download Win32 dynamic at 16 bits-per-pixel component - ImageMagick-7.0.6-0-Q16-x86-static.exe - download - download + ImageMagick-7.0.6-4-Q16-x86-static.exe + download + download Win32 static at 16 bits-per-pixel component - ImageMagick-7.0.6-0-Q8-x86-dll.exe - download - download + ImageMagick-7.0.6-4-Q8-x86-dll.exe + download + download Win32 dynamic at 8 bits-per-pixel component - ImageMagick-7.0.6-0-Q8-x86-static.exe - download - download + ImageMagick-7.0.6-4-Q8-x86-static.exe + download + download Win32 static at 8 bits-per-pixel component - ImageMagick-7.0.6-0-Q16-HDRI-x86-dll.exe - download - download + ImageMagick-7.0.6-4-Q16-HDRI-x86-dll.exe + download + download Win32 dynamic at 16 bits-per-pixel component with high dynamic-range imaging enabled - ImageMagick-7.0.6-0-Q16-HDRI-x86-static.exe - download - download + ImageMagick-7.0.6-4-Q16-HDRI-x86-static.exe + download + download Win32 static at 16 bits-per-pixel component with high dynamic-range imaging enabled - ImageMagick-7.0.6-0-portable-Q16-x86.zip - download - download + ImageMagick-7.0.6-4-portable-Q16-x86.zip + download + download Portable Win32 static at 16 bits-per-pixel component. Just copy to your host and run (no installer, no Windows registry entries). - ImageMagick-7.0.6-0-portable-Q16-x64.zip - download - download + ImageMagick-7.0.6-4-portable-Q16-x64.zip + download + download Portable Win64 static at 16 bits-per-pixel component. Just copy to your host and run (no installer, no Windows registry entries). @@ -430,4 +430,4 @@ objShell.Exec("magick ""e:/myimages/image.png"" ""e:/myimages/image.jpg""") - \ No newline at end of file + \ No newline at end of file diff --git a/www/escape.html b/www/escape.html index 9112e171e..49534a376 100644 --- a/www/escape.html +++ b/www/escape.html @@ -882,4 +882,4 @@ Post ObjectData Descriptor Record - \ No newline at end of file + \ No newline at end of file diff --git a/www/examples.html b/www/examples.html index 4aca5d5c8..4c2402a50 100644 --- a/www/examples.html +++ b/www/examples.html @@ -75,4 +75,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/exception.html b/www/exception.html index 9168459aa..2a7160d44 100644 --- a/www/exception.html +++ b/www/exception.html @@ -264,4 +264,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/export.html b/www/export.html index 34e156699..f5fe6a1ba 100644 --- a/www/export.html +++ b/www/export.html @@ -75,4 +75,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/formats.html b/www/formats.html index 98df2a850..c9da44811 100644 --- a/www/formats.html +++ b/www/formats.html @@ -260,7 +260,7 @@ the supported image formats.

    DCM R Digital Imaging and Communications in Medicine (DICOM) image - Used by the medical community for images like X-rays. ImageMagick sets the initial display range based on the Window Center (0028,1050) and Window Width (0028,1051) tags. Use -define dcm:display-range=reset to set the display range to the minimum and maximum pixel values. + Used by the medical community for images like X-rays. ImageMagick sets the initial display range based on the Window Center (0028,1050) and Window Width (0028,1051) tags. Use -define dcm:display-range=reset to set the display range to the minimum and maximum pixel values. Use -define dcm:rescale=true to enable interpretation of the rescale slope and intercept settings in the file. Use -define dcm:window=centerXwidth to override the center and width settings in the file with your own values. @@ -765,6 +765,13 @@ convert \( -size 15x15 canvas:black canvas:white -append \) \ Requires an explicit image format otherwise the image is interpreted as a TIFF image (e.g. pef:image.pef). + + PES + R + Embrid Embroidery Format + + + PFA R @@ -1962,4 +1969,4 @@ convert \( -size 15x15 canvas:black canvas:white -append \) \ - \ No newline at end of file + \ No newline at end of file diff --git a/www/fx.html b/www/fx.html index 6dc45e74a..b9b2191d0 100644 --- a/www/fx.html +++ b/www/fx.html @@ -415,4 +415,4 @@ convert rose: -duplicate 29 -virtual-pixel Gray -distort SRT '%[fx:360.0*t/n]' \ - \ No newline at end of file + \ No newline at end of file diff --git a/www/gradient.html b/www/gradient.html index dff3ed7ca..c7f30ee1b 100644 --- a/www/gradient.html +++ b/www/gradient.html @@ -236,4 +236,4 @@ convert -size 256x256 -define gradient:radii=128,64 -define gradient:angle=45 ra - \ No newline at end of file + \ No newline at end of file diff --git a/www/high-dynamic-range.html b/www/high-dynamic-range.html index e139e0f30..cd66e0e05 100644 --- a/www/high-dynamic-range.html +++ b/www/high-dynamic-range.html @@ -102,4 +102,4 @@ Features: HDRI - \ No newline at end of file + \ No newline at end of file diff --git a/www/history.html b/www/history.html index c7dd20698..3d17d9593 100644 --- a/www/history.html +++ b/www/history.html @@ -92,4 +92,4 @@ I swear by my life and my love of it that I will never live for the sake of anot - \ No newline at end of file + \ No newline at end of file diff --git a/www/identify.html b/www/identify.html index 5d5148eff..1bf3c2c03 100644 --- a/www/identify.html +++ b/www/identify.html @@ -424,4 +424,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/import.html b/www/import.html index 2522d2ace..c23808335 100644 --- a/www/import.html +++ b/www/import.html @@ -422,4 +422,4 @@ magick import -window root screen.ps - \ No newline at end of file + \ No newline at end of file diff --git a/www/index.html b/www/index.html index df03176aa..372138ed7 100644 --- a/www/index.html +++ b/www/index.html @@ -64,7 +64,7 @@ Use ImageMagickABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to help prevent security vulnerabilities.

    -

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

    +

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

    The authoritative ImageMagick web site is https://www.imagemagick.org. The authoritative source code repository is http://git.imagemagick.org/repos/ImageMagick. We maintain a source code mirror at GitLab and GitHub.

    @@ -234,4 +234,4 @@ Use ImageMagick - \ No newline at end of file + \ No newline at end of file diff --git a/www/install-source.html b/www/install-source.html index 34bedb725..45f0a46c3 100644 --- a/www/install-source.html +++ b/www/install-source.html @@ -157,4 +157,4 @@ validate - \ No newline at end of file + \ No newline at end of file diff --git a/www/jp2.html b/www/jp2.html index 0a20e3c27..77881391f 100644 --- a/www/jp2.html +++ b/www/jp2.html @@ -159,4 +159,4 @@ convert wizard.png -resize 4096x2160! -depth 12 wizard.jp2 - \ No newline at end of file + \ No newline at end of file diff --git a/www/license.html b/www/license.html index 6b650ef25..69ccc45ae 100644 --- a/www/license.html +++ b/www/license.html @@ -198,4 +198,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/links.html b/www/links.html index 51885f1fd..2361e9739 100644 --- a/www/links.html +++ b/www/links.html @@ -158,4 +158,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick++.html b/www/magick++.html index 711b32cee..35534c7ca 100644 --- a/www/magick++.html +++ b/www/magick++.html @@ -182,4 +182,4 @@ int main(int argc,char **argv) - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick-core.html b/www/magick-core.html index 15811b0bf..a8d969805 100644 --- a/www/magick-core.html +++ b/www/magick-core.html @@ -326,4 +326,4 @@ int main(int argc,char **argv) - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick-script.html b/www/magick-script.html index f04ceb669..cbb9ba55d 100644 --- a/www/magick-script.html +++ b/www/magick-script.html @@ -1277,4 +1277,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick-vector-graphics.html b/www/magick-vector-graphics.html index 32e07b501..0c7007d53 100644 --- a/www/magick-vector-graphics.html +++ b/www/magick-vector-graphics.html @@ -876,4 +876,4 @@ round - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick-wand.html b/www/magick-wand.html index 853fbfe65..ca9d3f09c 100644 --- a/www/magick-wand.html +++ b/www/magick-wand.html @@ -378,4 +378,4 @@ int main(int argc,char **argv) - \ No newline at end of file + \ No newline at end of file diff --git a/www/magick.html b/www/magick.html index 43836f3b0..fac08ca62 100644 --- a/www/magick.html +++ b/www/magick.html @@ -1319,4 +1319,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/miff.html b/www/miff.html index 43183b8d4..3b7ae9033 100644 --- a/www/miff.html +++ b/www/miff.html @@ -240,4 +240,4 @@ or fewer colors in the image, each byte of image data contains an index value. I - \ No newline at end of file + \ No newline at end of file diff --git a/www/mirror.html b/www/mirror.html index c2623e83e..ea8410d63 100644 --- a/www/mirror.html +++ b/www/mirror.html @@ -54,7 +54,7 @@

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

    -

    The latest release of ImageMagick is version 7.0.6-0.

    +

    The latest release of ImageMagick is version 7.0.6-4.

    Germany
    http://mirror.checkdomain.de/imagemagick/
    @@ -110,4 +110,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/www/mogrify.html b/www/mogrify.html index cfad7a406..bb7f728a3 100644 --- a/www/mogrify.html +++ b/www/mogrify.html @@ -1297,4 +1297,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/montage.html b/www/montage.html index 742a7cd57..5526ddfe7 100644 --- a/www/montage.html +++ b/www/montage.html @@ -633,4 +633,4 @@ transparent, extract, background, or shape the alpha channel - \ No newline at end of file + \ No newline at end of file diff --git a/www/motion-picture.html b/www/motion-picture.html index b96cf32b6..cb874ee3c 100644 --- a/www/motion-picture.html +++ b/www/motion-picture.html @@ -189,4 +189,4 @@ convert bluebells.dpx -define dpx:television.time.code=10:00:02:15 bluebells-001 - \ No newline at end of file + \ No newline at end of file diff --git a/www/opencl.html b/www/opencl.html index 422f9afc9..df55d89b9 100644 --- a/www/opencl.html +++ b/www/opencl.html @@ -109,4 +109,4 @@ InitImageMagickOpenCL(MAGICK_OPENCL_DEVICE_SELECT_USER, (void*)(myDevices+2), NU - \ No newline at end of file + \ No newline at end of file diff --git a/www/openmp.html b/www/openmp.html index 5bf93da72..16d15704c 100644 --- a/www/openmp.html +++ b/www/openmp.html @@ -92,4 +92,4 @@ Performance[8]: 40i 4.831ips 0.872e 15.680u 0:02.070 - \ No newline at end of file + \ No newline at end of file diff --git a/www/perl-magick.html b/www/perl-magick.html index 2234365fc..dfeca2e00 100644 --- a/www/perl-magick.html +++ b/www/perl-magick.html @@ -2604,4 +2604,4 @@ Image::Magick->QuantumDepth - \ No newline at end of file + \ No newline at end of file diff --git a/www/porting.html b/www/porting.html index 4bed0f54f..ebaae8850 100644 --- a/www/porting.html +++ b/www/porting.html @@ -400,6 +400,8 @@ be applied to expand the one channel into separate RGB (or other) channels.
    the default is to update the RGBA channels, previously, in IMv6, the default was RGB. If you get results that differ from IMv6, you may need to specify -channel RGB on your command line (e.g. -level-colors option).
    +combine
    This option now requires an argument, the image colorspace (e.g. +combine sRGB).
    +
    -gamma
    +
    Multiple gamma arguments (e.g. -gamma 1,2,3) are no longer supported, instead use -channel (e.g. -channel blue -gamma 2).

    New Options

    @@ -622,4 +624,4 @@ example "+annotate", "+resize", "+clut", and "+draw" .

    - \ No newline at end of file + \ No newline at end of file diff --git a/www/resources.html b/www/resources.html index 77e1780bf..250a978ed 100644 --- a/www/resources.html +++ b/www/resources.html @@ -358,4 +358,4 @@ $MAGICK_FONT_PATH - \ No newline at end of file + \ No newline at end of file diff --git a/www/security-policy.html b/www/security-policy.html index e3e04b091..29d9d0ad9 100644 --- a/www/security-policy.html +++ b/www/security-policy.html @@ -99,6 +99,9 @@ convert: no images defined `wizard.jpg' <policy domain="cache" name="memory-map" value="anonymous"/> <policy domain="system" name="shred" value="1"/> +

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

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

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

    -> identify -list policy
    @@ -195,4 +198,4 @@ Path: [built-in]
       
     
     
    -
    \ No newline at end of file
    +
    \ No newline at end of file
    diff --git a/www/sitemap.html b/www/sitemap.html
    index 0e315605c..da765819e 100644
    --- a/www/sitemap.html
    +++ b/www/sitemap.html
    @@ -232,4 +232,4 @@
       
     
     
    -
    \ No newline at end of file
    +
    \ No newline at end of file
    diff --git a/www/stream.html b/www/stream.html
    index 7c704ad08..e52315f1c 100644
    --- a/www/stream.html
    +++ b/www/stream.html
    @@ -267,4 +267,4 @@ magick stream -map i -storage-type double 'image.tif[100x100+30+40]' gray.raw
       
     
     
    -
    \ No newline at end of file
    +
    \ No newline at end of file
    diff --git a/www/subversion.html b/www/subversion.html
    index 71ee72e0f..1f5e0b9f6 100644
    --- a/www/subversion.html
    +++ b/www/subversion.html
    @@ -91,4 +91,4 @@ svn update
       
     
     
    -
    \ No newline at end of file
    +
    \ No newline at end of file
    diff --git a/www/support.html b/www/support.html
    index ac72f396e..71a18935e 100644
    --- a/www/support.html
    +++ b/www/support.html
    @@ -149,4 +149,4 @@ USA
       
     
     
    -
    \ No newline at end of file
    +
    \ No newline at end of file
    diff --git a/www/webp.html b/www/webp.html
    index 1b2ce49e6..6e79a9e3b 100644
    --- a/www/webp.html
    +++ b/www/webp.html
    @@ -177,4 +177,4 @@ convert wizard.png -quality 50 -define webp:lossless=true wizard.webp
       
     
     
    -
    \ No newline at end of file
    +
    \ No newline at end of file