]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 3 Apr 2010 01:57:27 +0000 (01:57 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 3 Apr 2010 01:57:27 +0000 (01:57 +0000)
Magick++/lib/Image.cpp
Magick++/lib/Magick++/Image.h
Magick++/lib/Magick++/Include.h
Magick++/lib/Magick++/STL.h
Magick++/lib/STL.cpp

index b1d773b5c6ec1bca0180e16b793b0273c859ec99..5e3d8b84f26fe8a6a83048ac91a1ae767cfc61ce 100644 (file)
@@ -612,12 +612,26 @@ void Magick::Image::colorize ( const unsigned int opacity_,
 
 // Apply a color matrix to the image channels.  The user supplied
 // matrix may be of order 1 to 6 (1x1 through 6x6).
-void Magick::Image::colorMatrix (const KernelInfo *color_matrix_)
+void Magick::Image::colorMatrix (const unsigned int order_,
+         const double *color_matrix_)
 {
+  double
+    *values;
+
+  KernelInfo
+    *kernel_info;
+
   ExceptionInfo exceptionInfo;
   GetExceptionInfo( &exceptionInfo );
+    kernel_info=AcquireKernelInfo("1");
+  kernel_info->width=order_;
+  kernel_info->height=order_;
+  values=kernel_info->values;
+  kernel_info->values=(double *) color_matrix_;
   MagickCore::Image* newImage =
-    ColorMatrixImage( image(), color_matrix_, &exceptionInfo );
+    ColorMatrixImage( image(), kernel_info, &exceptionInfo );
+  kernel_info->values=values;
+  kernel_info=DestroyKernelInfo(kernel_info);
   replaceImage( newImage );
   throwException( exceptionInfo );
   (void) DestroyExceptionInfo( &exceptionInfo );
index 25c1db0eb6f24822ba1c6693fd9cfc1ef70f9547..559244d772c9becef38bf288bd50da7f1a9d5c18 100644 (file)
@@ -213,6 +213,11 @@ namespace Magick
     void            colorize ( const unsigned int opacity_,
              const Color &penColor_ );
     
+    // Apply a color matrix to the image channels.  The user supplied
+    // matrix may be of order 1 to 5 (1x1 through 5x5).
+    void            colorMatrix (const unsigned int order_,
+         const double *color_matrix_);
+
     // Comment image (add comment string to image)
     void            comment ( const std::string &comment_ );
 
@@ -861,10 +866,6 @@ namespace Magick
     void            colorMapSize ( const unsigned int entries_ );
     unsigned int    colorMapSize ( void );
 
-    // Apply a color matrix to the image channels.  The user supplied
-    // matrix may be of order 1 to 5 (1x1 through 5x5).
-    void            colorMatrix (const KernelInfo *color_matrix_);
-
     // Image Color Space
     void            colorSpace ( const ColorspaceType colorSpace_ );
     ColorspaceType  colorSpace ( void ) const;
index ddd6d13dd9cc104c693c160ff4b32b7588a1b15c..2b7244a8994719478231512c5924b615192dc662 100644 (file)
@@ -529,6 +529,7 @@ namespace Magick
   using MagickCore::AcquireImage;
   using MagickCore::GetVirtualPixels;
   using MagickCore::AcquireIndexes;
+  using MagickCore::AcquireKernelInfo;
   using MagickCore::AcquireMagickMemory;
   using MagickCore::AcquireQuantumInfo;
   using MagickCore::AcquireString;
@@ -594,6 +595,7 @@ namespace Magick
   using MagickCore::DestroyExceptionInfo;
   using MagickCore::DestroyImageInfo;
   using MagickCore::DestroyImageList;
+  using MagickCore::DestroyKernelInfo;
   using MagickCore::DestroyMagickWand;
   using MagickCore::DestroyPixelWand;
   using MagickCore::DestroyQuantizeInfo;
index 07d9b033fdfe138fe92b622d5917ea3e1bc395a1..b526b16934357443e096f1d055f6c079ba783694 100644 (file)
@@ -16,7 +16,6 @@
 #include <map>
 #include <utility>
 
-#include "Magick++/Image.h"
 #include "Magick++/CoderInfo.h"
 #include "Magick++/Drawable.h"
 #include "Magick++/Exception.h"
@@ -240,12 +239,14 @@ namespace Magick
   class MagickDLLDecl colorMatrixImage : public std::unary_function<Image&,void>
   {
   public:
-    colorMatrixImage( const KernelInfo *color_matrix_ );
+    colorMatrixImage( const unsigned int order_,
+          const double *color_matrix_ );
 
     void operator()( Image &image_ ) const;
 
   private:
-    const KernelInfo *_color_matrix;
+    unsigned int  _order;
+    const double *_color_matrix;
   };
 
   // Convert the image colorspace representation
index 37e8d8f8726084296093f9c3376a71b72a09f5bc..6a7a8a17783b7788cf19a178ffcff5c59f34110a 100644 (file)
@@ -194,14 +194,16 @@ void Magick::colorizeImage::operator()( Magick::Image &image_ ) const
 }
 
 // Apply a color matrix to the image channels.  The user supplied
-// matrix may be of order 1 to 6 (1x1 through 6x6).
-Magick::colorMatrixImage::colorMatrixImage( const KernelInfo *color_matrix_ )
-  : _color_matrix( color_matrix_ )
+// matrix may be of order 1 to 5 (1x1 through 5x5).
+Magick::colorMatrixImage::colorMatrixImage( const unsigned int order_,
+              const double *color_matrix_ )
+  : _order( order_ ),
+    _color_matrix( color_matrix_ )
 {
 }
 void Magick::colorMatrixImage::operator()( Image &image_ ) const
 {
-  image_.colorMatrix( _color_matrix );
+  image_.colorMatrix( _order, _color_matrix );
 }
 
 // Convert the image colorspace representation