]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 6 Oct 2013 00:27:33 +0000 (00:27 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 6 Oct 2013 00:27:33 +0000 (00:27 +0000)
MagickCore/magick-baseconfig.h
MagickCore/version.h
PerlMagick/Magick.xs
PerlMagick/Makefile.PL
utilities/convert.1
utilities/mogrify.1

index d375a837b313acd372780880cc1226011d9b4a12..90b2caa64d0ca5667323fca96d00fc3f89ad2155 100644 (file)
@@ -83,7 +83,9 @@
 #endif
 
 /* Define if you have FlashPIX library */
-/* #undef FPX_DELEGATE */
+#ifndef MAGICKCORE_FPX_DELEGATE
+#define MAGICKCORE_FPX_DELEGATE 1
+#endif
 
 /* Define if you have FREETYPE library */
 #ifndef MAGICKCORE_FREETYPE_DELEGATE
index db747a39c3644c7dc3bd565a484862a12a1ef284..145e7c35eff703632baf6b494db7fd5d67d5d9a1 100644 (file)
@@ -39,11 +39,11 @@ extern "C" {
 #define MagickppLibAddendum  "-0"
 #define MagickppLibInterface  1
 #define MagickppLibMinInterface  1
-#define MagickReleaseDate  "2013-09-17"
+#define MagickReleaseDate  "2013-10-05"
 #define MagickChangeDate   "20120427"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #define MagickFeatures "DPC HDRI OpenMP"
-#define MagickDelegates "bzlib djvu fftw fontconfig freetype jng jp2 jpeg lcms lzma openexr pango png ps tiff webp x xml zlib"
+#define MagickDelegates "bzlib djvu fftw fpx fontconfig freetype jng jp2 jpeg lcms lzma openexr pango png ps tiff webp x xml zlib"
 #define MagickHomeURL  "file:///usr/share/doc/ImageMagick-7/index.html"
 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
 #define MagickQuantumDepth  "Q8"
index 3607900e767896a874d246ddbda99d7bb2233bfe..b40bc7e8deb3f95dd3ac021c0df2e373eb611ad0 100644 (file)
@@ -3419,6 +3419,163 @@ Compare(ref,...)
 #                                                                             #
 #                                                                             #
 #                                                                             #
+#   C o m p l e x I m a g e s                                                 #
+#                                                                             #
+#                                                                             #
+#                                                                             #
+###############################################################################
+#
+#
+void
+ComplexImages(ref)
+  Image::Magick ref=NO_INIT
+  ALIAS:
+    ComplexImages   = 1
+    compleximages   = 2
+  PPCODE:
+  {
+    AV
+      *av;
+
+    char
+      *attribute,
+      *p;
+
+    ExceptionInfo
+      *exception;
+
+    HV
+      *hv;
+
+    Image
+      *image;
+
+    MagickComplexOperator
+      op;
+
+    register ssize_t
+      i;
+
+    struct PackageInfo
+      *info;
+
+    SV
+      *perl_exception,
+      *reference,
+      *rv,
+      *sv;
+
+    PERL_UNUSED_VAR(ref);
+    PERL_UNUSED_VAR(ix);
+    exception=AcquireExceptionInfo();
+    perl_exception=newSVpv("",0);
+    sv=NULL;
+    if (sv_isobject(ST(0)) == 0)
+      {
+        ThrowPerlException(exception,OptionError,"ReferenceIsNotMyType",
+          PackageName);
+        goto PerlException;
+      }
+    reference=SvRV(ST(0));
+    hv=SvSTASH(reference);
+    image=SetupList(aTHX_ reference,&info,(SV ***) NULL,exception);
+    if (image == (Image *) NULL)
+      {
+        ThrowPerlException(exception,OptionError,"NoImagesDefined",
+          PackageName);
+        goto PerlException;
+      }
+    op=MeanComplexOperator;
+    if (items == 2)
+      {
+        ssize_t
+          in;
+
+        in=ParseCommandOption(MagickComplexOptions,MagickFalse,(char *)
+          SvPV(ST(1),na));
+        if (in < 0)
+          {
+            ThrowPerlException(exception,OptionError,"UnrecognizedType",
+              SvPV(ST(1),na));
+            return;
+          }
+        op=(MagickComplexOperator) in;
+      }
+    else
+      for (i=2; i < items; i+=2)
+      {
+        attribute=(char *) SvPV(ST(i-1),na);
+        switch (*attribute)
+        {
+          case 'O':
+          case 'o':
+          {
+            if (LocaleCompare(attribute,"operator") == 0)
+              {
+                ssize_t
+                  in;
+
+                in=!SvPOK(ST(i)) ? SvIV(ST(i)) : ParseCommandOption(
+                  MagickComplexOptions,MagickFalse,SvPV(ST(i),na));
+                if (in < 0)
+                  {
+                    ThrowPerlException(exception,OptionError,"UnrecognizedType",
+                      SvPV(ST(i),na));
+                    return;
+                  }
+                op=(MagickComplexOperator) in;
+                break;
+              }
+            ThrowPerlException(exception,OptionError,"UnrecognizedAttribute",
+              attribute);
+            break;
+          }
+          default:
+          {
+            ThrowPerlException(exception,OptionError,"UnrecognizedAttribute",
+              attribute);
+            break;
+          }
+        }
+      }
+    image=ComplexImages(image,op,exception);
+    if (image == (Image *) NULL)
+      goto PerlException;
+    /*
+      Create blessed Perl array for the returned image.
+    */
+    av=newAV();
+    ST(0)=sv_2mortal(sv_bless(newRV((SV *) av),hv));
+    SvREFCNT_dec(av);
+    AddImageToRegistry(sv,image);
+    rv=newRV(sv);
+    av_push(av,sv_bless(rv,hv));
+    SvREFCNT_dec(sv);
+    info=GetPackageInfo(aTHX_ (void *) av,info,exception);
+    (void) FormatLocaleString(info->image_info->filename,MaxTextExtent,
+      "complex-%.*s",(int) (MaxTextExtent-9),
+      ((p=strrchr(image->filename,'/')) ? p+1 : image->filename));
+    (void) CopyMagickString(image->filename,info->image_info->filename,
+      MaxTextExtent);
+    SetImageInfo(info->image_info,0,exception);
+    exception=DestroyExceptionInfo(exception);
+    SvREFCNT_dec(perl_exception);
+    XSRETURN(1);
+
+  PerlException:
+    InheritPerlException(exception,perl_exception);
+    exception=DestroyExceptionInfo(exception);
+    sv_setiv(perl_exception,(IV) SvCUR(perl_exception) != 0);
+    SvPOK_on(perl_exception);
+    ST(0)=sv_2mortal(perl_exception);
+    XSRETURN(1);
+  }
+\f
+#
+###############################################################################
+#                                                                             #
+#                                                                             #
+#                                                                             #
 #   C o m p a r e L a y e r s                                                 #
 #                                                                             #
 #                                                                             #
index ee1aabf636674e3b818365ec9c2ea3ab0bdbf7a6..07929e0284913aed5a79127d8c458923e737ef82 100644 (file)
@@ -163,7 +163,7 @@ foreach my $delegate (@tested_delegates) {
 # defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile
 my $INC_magick = '-I../ -I.. -pthread -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15 -I/usr/include/libdrm -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/libxml2 -I"' . $Config{'usrinc'} . '/ImageMagick"';
 my $LIBS_magick = '-L../MagickCore/.libs -lMagickCore-7.Q16HDRI -lperl -lm';
-my $CCFLAGS_magick = "$Config{'ccflags'} -pthread -I/usr/include/OpenEXR -I/usr/include/libdrm -I/usr/include/freetype2 -fopenmp -O3 -g -Wall -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16";
+my $CCFLAGS_magick = "$Config{'ccflags'} -pthread -I/usr/include/OpenEXR -I/usr/include/libdrm -I/usr/include/freetype2 -fopenmp -g -O2 -Wall -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16";
 my $LDFLAGS_magick   = "-L../MagickCore/.libs -lMagickCore-7.Q16HDRI $Config{'ldflags'} ";
 my $LDDLFLAGS_magick = "-L../MagickCore/.libs -lMagickCore-7.Q16HDRI $Config{'lddlflags'} ";
 
@@ -236,9 +236,9 @@ WriteMakefile
    # 'OPTIMIZE'        => '',
 
    # Use same compiler as ImageMagick
-   'PERLMAINCC'        => ' -fopenmp',
+   'PERLMAINCC'        => 'g++ -fopenmp',
    'AR' => 'ar',
-   'LD' => '',
+   'LD' => 'g++',
 
    # Set Perl installation prefix to ImageMagick installation prefix
 #   'PREFIX'   => '/usr',
index 24abaaf6f9bf73c79530432e121a62a80ba48093..13ce7b5e328e663e04017dd2c36c357d3ea96d78 100644 (file)
@@ -270,6 +270,7 @@ Image Sequence Operators:
   \-coalesce            merge a sequence of images
   \-combine             combine a sequence of images
   \-compare             mathematically and visually annotate the difference between an image and its reconstruction
+  \-complex operator    perform complex mathematics on an image sequence
   \-composite           composite image
   \-crop geometry       cut out a rectangular region of the image
   \-deconstruct         break down an image sequence into constituent parts
index 876e1ce8fb1b3d63ecbca957ac244108d2329bf8..7c6c6440b2a1beff1dd72195c3b0bc53b037419b 100644 (file)
@@ -270,6 +270,7 @@ Image Sequence Operators:
   \-coalesce            merge a sequence of images
   \-combine             combine a sequence of images
   \-compare             mathematically and visually annotate the difference between an image and its reconstruction
+  \-complex operator    perform complex mathematics on an image sequence
   \-composite           composite image
   \-crop geometry       cut out a rectangular region of the image
   \-deconstruct         break down an image sequence into constituent parts