From e23ec9d6ae4e794a4bd9d478c48c703681aae245 Mon Sep 17 00:00:00 2001 From: cristy Date: Tue, 16 Aug 2011 18:15:40 +0000 Subject: [PATCH] --- Magick++/Makefile.am | 8 +++++-- Magick++/lib/Image.cpp | 14 +++++++---- MagickCore/display.c | 9 +++---- MagickCore/effect.c | 4 ++-- MagickCore/enhance.c | 39 ++++++++++++++----------------- MagickCore/enhance.h | 6 ++--- MagickCore/fx.c | 8 +++---- MagickCore/image.c | 1 + MagickCore/layer.c | 9 ++----- MagickCore/magick-config.h | 42 +++++++++++---------------------- MagickCore/threshold.c | 3 +-- MagickCore/version.h | 4 ++-- MagickWand/magick-image.c | 13 ++++------- MagickWand/mogrify.c | 9 ++++--- Makefile.in | 48 ++++++++++++++++++++++++-------------- PerlMagick/Magick.xs | 6 ++--- coders/jpeg.c | 6 +++++ coders/msl.c | 6 +++-- config/configure.xml | 4 ++-- configure | 2 +- libtool | 2 +- 21 files changed, 121 insertions(+), 122 deletions(-) diff --git a/Magick++/Makefile.am b/Magick++/Makefile.am index eb3c8975b..6ae4f5f13 100644 --- a/Magick++/Makefile.am +++ b/Magick++/Makefile.am @@ -13,6 +13,7 @@ MAGICKPP_MANS = $(MAGICKPP_MANS_OPT) MAGICKPP_PKGCONFIG = $(MAGICKPP_PKGCONFIG_OPT) MAGICKPP_SCRPTS = $(MAGICKPP_SCRIPTS_OPT) MAGICKPP_TESTS = $(MAGICKPP_TEST_SCRIPTS_OPT) +MAGICKPP_TOP_INCHEADERS = $(MAGICKPP_TOP_INCHEADERS_OPT) MAGICKPP_INCHEADERS = $(MAGICKPP_INCHEADERS_OPT) else MAGICKPP_LIBS = @@ -21,6 +22,7 @@ MAGICKPP_MANS = MAGICKPP_PKGCONFIG = MAGICKPP_SCRPTS = MAGICKPP_TESTS = +MAGICKPP_TOP_INCHEADERS = MAGICKPP_INCHEADERS = endif @@ -135,14 +137,16 @@ Magick___lib_libMagick___la_SOURCES = \ Magick++/lib/Magick++/TypeMetric.h magickpptopincdir = $(topincludedir) -magickpptopinc_HEADERS = +magickpptopinc_HEADERS = $(MAGICKPP_TOP_INCHEADERS) + +MAGICKPP_TOP_INCHEADERS_OPT = \ + Magick++/lib/Magick++.h magickppincdir = $(topincludedir)/Magick++ magickppinc_HEADERS = $(MAGICKPP_INCHEADERS) MAGICKPP_INCHEADERS_OPT = \ - Magick++/lib/Magick++.h Magick++/lib/Magick++/Blob.h \ Magick++/lib/Magick++/CoderInfo.h \ Magick++/lib/Magick++/Color.h \ diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp index 15255b916..5b2634276 100644 --- a/Magick++/lib/Image.cpp +++ b/Magick++/lib/Image.cpp @@ -706,8 +706,11 @@ void Magick::Image::composite ( const Image &compositeImage_, void Magick::Image::contrast ( const size_t sharpen_ ) { modifyImage(); - ContrastImage ( image(), (MagickBooleanType) sharpen_ ); - throwImageException(); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); + ContrastImage ( image(), (MagickBooleanType) sharpen_, &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } // Convolve image. Applies a general image convolution kernel to the image. @@ -1384,8 +1387,11 @@ void Magick::Image::negate ( const bool grayscale_ ) void Magick::Image::normalize ( void ) { modifyImage(); - NormalizeImage ( image() ); - throwImageException(); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); + NormalizeImage ( image(), &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } // Oilpaint image diff --git a/MagickCore/display.c b/MagickCore/display.c index 174f044b6..ece4c11cc 100644 --- a/MagickCore/display.c +++ b/MagickCore/display.c @@ -7785,7 +7785,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, */ XSetCursorState(display,windows,MagickTrue); XCheckRefreshWindows(display,windows); - (void) ContrastImage(*image,MagickTrue); + (void) ContrastImage(*image,MagickTrue,&(*image)->exception); XSetCursorState(display,windows,MagickFalse); if (windows->image.orphan != MagickFalse) break; @@ -7800,7 +7800,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, */ XSetCursorState(display,windows,MagickTrue); XCheckRefreshWindows(display,windows); - (void) ContrastImage(*image,MagickFalse); + (void) ContrastImage(*image,MagickFalse,&(*image)->exception); XSetCursorState(display,windows,MagickFalse); if (windows->image.orphan != MagickFalse) break; @@ -7838,7 +7838,8 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, white_point*=(double) (*image)->columns*(*image)->rows/100.0; } white_point=(MagickRealType) (*image)->columns*(*image)->rows-white_point; - (void) ContrastStretchImage(*image,black_point,white_point); + (void) ContrastStretchImage(*image,black_point,white_point, + &(*image)->exception); XSetCursorState(display,windows,MagickFalse); if (windows->image.orphan != MagickFalse) break; @@ -7890,7 +7891,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, */ XSetCursorState(display,windows,MagickTrue); XCheckRefreshWindows(display,windows); - (void) NormalizeImage(*image); + (void) NormalizeImage(*image,&(*image)->exception); XSetCursorState(display,windows,MagickFalse); if (windows->image.orphan != MagickFalse) break; diff --git a/MagickCore/effect.c b/MagickCore/effect.c index e2366b0e6..a1ef4e4d1 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -2468,7 +2468,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview, preview_image=CloneImage(thumbnail,0,0,MagickTrue,exception); if (preview_image != (Image *) NULL) for (x=0; x < i; x++) - (void) ContrastImage(preview_image,MagickTrue); + (void) ContrastImage(preview_image,MagickTrue,exception); (void) FormatLocaleString(label,MaxTextExtent,"contrast (%.20g)", (double) i+1); break; @@ -2479,7 +2479,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview, if (preview_image == (Image *) NULL) break; for (x=0; x < i; x++) - (void) ContrastImage(preview_image,MagickFalse); + (void) ContrastImage(preview_image,MagickFalse,exception); (void) FormatLocaleString(label,MaxTextExtent,"+contrast (%.20g)", (double) i+1); break; diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c index 6f5b50ce0..5a052063f 100644 --- a/MagickCore/enhance.c +++ b/MagickCore/enhance.c @@ -215,8 +215,8 @@ MagickExport MagickBooleanType BrightnessContrastImage(Image *image, double alpha, - intercept, coefficients[2], + intercept, slope; MagickBooleanType @@ -288,11 +288,6 @@ MagickExport MagickBooleanType BrightnessContrastImage(Image *image, MagickExport MagickBooleanType ClutImage(Image *image,const Image *clut_image, ExceptionInfo *exception) { -#define ClampAlphaPixelChannel(pixel) ClampToQuantum((pixel)->alpha) -#define ClampBlackPixelChannel(pixel) ClampToQuantum((pixel)->black) -#define ClampBluePixelChannel(pixel) ClampToQuantum((pixel)->blue) -#define ClampGreenPixelChannel(pixel) ClampToQuantum((pixel)->green) -#define ClampRedPixelChannel(pixel) ClampToQuantum((pixel)->red) #define ClutImageTag "Clut/Image" CacheView @@ -826,7 +821,7 @@ MagickExport MagickBooleanType ColorDecisionListImage(Image *image, % The format of the ContrastImage method is: % % MagickBooleanType ContrastImage(Image *image, -% const MagickBooleanType sharpen) +% const MagickBooleanType sharpen,ExceptionInfo *exception) % % A description of each parameter follows: % @@ -834,6 +829,8 @@ MagickExport MagickBooleanType ColorDecisionListImage(Image *image, % % o sharpen: Increase or decrease image contrast. % +% o exception: return any errors or warnings in this structure. +% */ static void Contrast(const int sign,Quantum *red,Quantum *green,Quantum *blue) @@ -864,16 +861,13 @@ static void Contrast(const int sign,Quantum *red,Quantum *green,Quantum *blue) } MagickExport MagickBooleanType ContrastImage(Image *image, - const MagickBooleanType sharpen) + const MagickBooleanType sharpen,ExceptionInfo *exception) { #define ContrastImageTag "Contrast/Image" CacheView *image_view; - ExceptionInfo - *exception; - int sign; @@ -908,7 +902,6 @@ MagickExport MagickBooleanType ContrastImage(Image *image, */ status=MagickTrue; progress=0; - exception=(&image->exception); image_view=AcquireCacheView(image); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(dynamic,4) shared(progress,status) @@ -985,7 +978,7 @@ MagickExport MagickBooleanType ContrastImage(Image *image, % The format of the ContrastStretchImage method is: % % MagickBooleanType ContrastStretchImage(Image *image, -% const char *levels) +% const char *levels,ExceptionInfo *exception) % % A description of each parameter follows: % @@ -998,9 +991,11 @@ MagickExport MagickBooleanType ContrastImage(Image *image, % o levels: Specify the levels where the black and white points have the % range of 0 to number-of-pixels (e.g. 1%, 10x90%, etc.). % +% o exception: return any errors or warnings in this structure. +% */ MagickExport MagickBooleanType ContrastStretchImage(Image *image, - const double black_point,const double white_point) + const double black_point,const double white_point,ExceptionInfo *exception) { #define MaxRange(color) ((MagickRealType) ScaleQuantumToMap((Quantum) (color))) #define ContrastStretchImageTag "ContrastStretch/Image" @@ -1011,9 +1006,6 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image, double intensity; - ExceptionInfo - *exception; - MagickBooleanType status; @@ -1051,7 +1043,6 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image, Form histogram. */ status=MagickTrue; - exception=(&image->exception); (void) ResetMagickMemory(histogram,0,(MaxMap+1)*sizeof(*histogram)); image_view=AcquireCacheView(image); for (y=0; y < (ssize_t) image->rows; y++) @@ -1273,7 +1264,8 @@ MagickExport MagickBooleanType ContrastStretchImage(Image *image, /* Stretch the image. */ - if (((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0) || (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) && + if (((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0) || + (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) && (image->colorspace == CMYKColorspace))) image->storage_class=DirectClass; if (image->storage_class == PseudoClass) @@ -3269,14 +3261,17 @@ MagickExport MagickBooleanType NegateImage(Image *image, % % The format of the NormalizeImage method is: % -% MagickBooleanType NormalizeImage(Image *image) +% MagickBooleanType NormalizeImage(Image *image,ExceptionInfo *exception) % % A description of each parameter follows: % % o image: the image. % +% o exception: return any errors or warnings in this structure. +% */ -MagickExport MagickBooleanType NormalizeImage(Image *image) +MagickExport MagickBooleanType NormalizeImage(Image *image, + ExceptionInfo *exception) { double black_point, @@ -3284,7 +3279,7 @@ MagickExport MagickBooleanType NormalizeImage(Image *image) black_point=(double) image->columns*image->rows*0.0015; white_point=(double) image->columns*image->rows*0.9995; - return(ContrastStretchImage(image,black_point,white_point)); + return(ContrastStretchImage(image,black_point,white_point,exception)); } /* diff --git a/MagickCore/enhance.h b/MagickCore/enhance.h index fcebcebab..b89bd7250 100644 --- a/MagickCore/enhance.h +++ b/MagickCore/enhance.h @@ -28,8 +28,8 @@ extern MagickExport MagickBooleanType BrightnessContrastImage(Image *,const double,const double,ExceptionInfo *), ClutImage(Image *,const Image *,ExceptionInfo *), ColorDecisionListImage(Image *,const char *,ExceptionInfo *), - ContrastImage(Image *,const MagickBooleanType), - ContrastStretchImage(Image *,const double,const double), + ContrastImage(Image *,const MagickBooleanType,ExceptionInfo *), + ContrastStretchImage(Image *,const double,const double,ExceptionInfo *), EqualizeImage(Image *image), GammaImage(Image *,const double,ExceptionInfo *), HaldClutImage(Image *,const Image *), @@ -40,7 +40,7 @@ extern MagickExport MagickBooleanType LinearStretchImage(Image *,const double,const double), ModulateImage(Image *,const char *), NegateImage(Image *,const MagickBooleanType,ExceptionInfo *), - NormalizeImage(Image *), + NormalizeImage(Image *,ExceptionInfo *), SigmoidalContrastImage(Image *,const MagickBooleanType,const double, const double); diff --git a/MagickCore/fx.c b/MagickCore/fx.c index 834b0b14d..7fe94d982 100644 --- a/MagickCore/fx.c +++ b/MagickCore/fx.c @@ -648,7 +648,7 @@ MagickExport Image *CharcoalImage(const Image *image,const double radius, edge_image=DestroyImage(edge_image); if (charcoal_image == (Image *) NULL) return((Image *) NULL); - (void) NormalizeImage(charcoal_image); + (void) NormalizeImage(charcoal_image,exception); (void) NegateImage(charcoal_image,MagickFalse,exception); (void) SetImageType(charcoal_image,GrayscaleType); return(charcoal_image); @@ -4078,8 +4078,8 @@ MagickExport Image *SepiaToneImage(const Image *image,const double threshold, } sepia_view=DestroyCacheView(sepia_view); image_view=DestroyCacheView(image_view); - (void) NormalizeImage(sepia_image); - (void) ContrastImage(sepia_image,MagickTrue); + (void) NormalizeImage(sepia_image,exception); + (void) ContrastImage(sepia_image,MagickTrue,exception); if (status == MagickFalse) sepia_image=DestroyImage(sepia_image); return(sepia_image); @@ -4367,7 +4367,7 @@ MagickExport Image *SketchImage(const Image *image,const double radius, blur_image=DestroyImage(blur_image); if (dodge_image == (Image *) NULL) return((Image *) NULL); - (void) NormalizeImage(dodge_image); + (void) NormalizeImage(dodge_image,exception); (void) NegateImage(dodge_image,MagickFalse,exception); (void) TransformImage(&dodge_image,(char *) NULL,"50%"); sketch_image=CloneImage(image,0,0,MagickTrue,exception); diff --git a/MagickCore/image.c b/MagickCore/image.c index f926196b3..1f8610c2f 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -805,6 +805,7 @@ MagickExport Image *CloneImage(const Image *image,const size_t columns, clone_image->magick_columns=image->magick_columns; clone_image->magick_rows=image->magick_rows; clone_image->type=image->type; + clone_image->sync=image->sync; clone_image->map=image->map; clone_image->channel_map=ClonePixelChannelMap(image->channel_map); (void) CopyMagickString(clone_image->magick_filename,image->magick_filename, diff --git a/MagickCore/layer.c b/MagickCore/layer.c index d1b2d43f4..f767c0dd3 100644 --- a/MagickCore/layer.c +++ b/MagickCore/layer.c @@ -174,13 +174,8 @@ static MagickBooleanType IsBoundsCleared(const Image *image1, ssize_t y; -#if 0 - assert(image1->matte==MagickTrue); - assert(image2->matte==MagickTrue); -#endif - - if ( bounds->x< 0 ) return(MagickFalse); - + if (bounds->x < 0) + return(MagickFalse); for (y=0; y < (ssize_t) bounds->height; y++) { p=GetVirtualPixels(image1,bounds->x,bounds->y+y,bounds->width,1, diff --git a/MagickCore/magick-config.h b/MagickCore/magick-config.h index 60334d7b9..2726a74e3 100644 --- a/MagickCore/magick-config.h +++ b/MagickCore/magick-config.h @@ -12,9 +12,7 @@ /* #undef AUTOTRACE_DELEGATE */ /* Define if coders and filters are to be built as modules. */ -#ifndef MAGICKCORE_BUILD_MODULES -#define MAGICKCORE_BUILD_MODULES 1 -#endif +/* #undef BUILD_MODULES */ /* Define if you have the bzip2 library */ #ifndef MAGICKCORE_BZLIB_DELEGATE @@ -80,9 +78,7 @@ #endif /* Define if you have FFTW library */ -#ifndef MAGICKCORE_FFTW_DELEGATE -#define MAGICKCORE_FFTW_DELEGATE 1 -#endif +/* #undef FFTW_DELEGATE */ /* Location of filter modules */ #ifndef MAGICKCORE_FILTER_PATH @@ -436,15 +432,15 @@ #endif /* Define if you have the header file. */ -/* #undef HAVE_LCMS2_H */ +#ifndef MAGICKCORE_HAVE_LCMS2_H +#define MAGICKCORE_HAVE_LCMS2_H 1 +#endif /* Define if you have the header file. */ /* #undef HAVE_LCMS2_LCMS2_H */ /* Define if you have the header file. */ -#ifndef MAGICKCORE_HAVE_LCMS_H -#define MAGICKCORE_HAVE_LCMS_H 1 -#endif +/* #undef HAVE_LCMS_H */ /* Define if you have the header file. */ /* #undef HAVE_LCMS_LCMS_H */ @@ -1167,9 +1163,7 @@ #endif /* Define if you have JBIG library */ -#ifndef MAGICKCORE_JBIG_DELEGATE -#define MAGICKCORE_JBIG_DELEGATE 1 -#endif +/* #undef JBIG_DELEGATE */ /* Define if you have JPEG version 2 "Jasper" library */ #ifndef MAGICKCORE_JP2_DELEGATE @@ -1198,9 +1192,7 @@ #endif /* Define if you have LQR library */ -#ifndef MAGICKCORE_LQR_DELEGATE -#define MAGICKCORE_LQR_DELEGATE 1 -#endif +/* #undef LQR_DELEGATE */ /* Define if using libltdl to support dynamically loadable modules */ #ifndef MAGICKCORE_LTDL_DELEGATE @@ -1212,7 +1204,7 @@ /* Define to the system default library search path. */ #ifndef MAGICKCORE_LT_DLSEARCH_PATH -#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/R/lib:/usr/lib64/atlas:/opt/modules/pkg/intel/f77/10.0.025/lib:/usr/lib64/llvm:/usr/local/lib:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/xulrunner-2" +#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/atlas:/usr/lib/llvm:/usr/lib64/llvm:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/tcl8.5/tclx8.4:/usr/lib64/tcl8.5:/usr/lib/wine/:/usr/lib64/wine/:/usr/lib64/xulrunner-2" #endif /* The archive extension */ @@ -1263,9 +1255,7 @@ /* #undef NO_MINUS_C_MINUS_O */ /* Define if you have OPENEXR library */ -#ifndef MAGICKCORE_OPENEXR_DELEGATE -#define MAGICKCORE_OPENEXR_DELEGATE 1 -#endif +/* #undef OPENEXR_DELEGATE */ /* Define to the address where bug reports for this package should be sent. */ #ifndef MAGICKCORE_PACKAGE_BUGREPORT @@ -1320,9 +1310,7 @@ #endif /* Define if you have RSVG library */ -#ifndef MAGICKCORE_RSVG_DELEGATE -#define MAGICKCORE_RSVG_DELEGATE 1 -#endif +/* #undef RSVG_DELEGATE */ /* Define to the type of arg 1 for `select'. */ #ifndef MAGICKCORE_SELECT_TYPE_ARG1 @@ -1459,9 +1447,7 @@ /* Define if you have WEBP library */ -#ifndef MAGICKCORE_WEBP_DELEGATE -#define MAGICKCORE_WEBP_DELEGATE 1 -#endif +/* #undef WEBP_DELEGATE */ /* Define to use the Windows GDI32 library */ /* #undef WINGDI32_DELEGATE */ @@ -1470,9 +1456,7 @@ /* #undef WITH_DMALLOC */ /* Define if you have WMF library */ -#ifndef MAGICKCORE_WMF_DELEGATE -#define MAGICKCORE_WMF_DELEGATE 1 -#endif +/* #undef WMF_DELEGATE */ /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c index 7ce060eb1..9b17ebd61 100644 --- a/MagickCore/threshold.c +++ b/MagickCore/threshold.c @@ -343,8 +343,7 @@ MagickExport Image *AdaptiveThresholdImage(const Image *image, % with the 'threshold' value for both the black_point and the white_point. % */ -MagickExport MagickBooleanType BilevelImage(Image *image, - const double threshold) +MagickExport MagickBooleanType BilevelImage(Image *image,const double threshold) { #define ThresholdImageTag "Threshold/Image" diff --git a/MagickCore/version.h b/MagickCore/version.h index e6a5d6957..b0af11970 100644 --- a/MagickCore/version.h +++ b/MagickCore/version.h @@ -27,14 +27,14 @@ extern "C" { */ #define MagickPackageName "ImageMagick" #define MagickCopyright "Copyright (C) 1999-2011 ImageMagick Studio LLC" -#define MagickSVNRevision "exported" +#define MagickSVNRevision "4982" #define MagickLibVersion 0x700 #define MagickLibVersionText "7.0.0" #define MagickLibVersionNumber 5,0,0 #define MagickLibAddendum "-0" #define MagickLibInterface 5 #define MagickLibMinInterface 5 -#define MagickReleaseDate "2011-08-10" +#define MagickReleaseDate "2011-08-16" #define MagickChangeDate "20110801" #define MagickAuthoritativeURL "http://www.imagemagick.org" #if defined(MAGICKCORE_OPENMP_SUPPORT) diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c index 6c9786c6a..5c4e4f88e 100644 --- a/MagickWand/magick-image.c +++ b/MagickWand/magick-image.c @@ -1806,9 +1806,7 @@ WandExport MagickBooleanType MagickContrastImage(MagickWand *wand, (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - status=ContrastImage(wand->images,sharpen); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); + status=ContrastImage(wand->images,sharpen,&wand->images->exception); return(status); } @@ -1854,9 +1852,8 @@ WandExport MagickBooleanType MagickContrastStretchImage(MagickWand *wand, (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - status=ContrastStretchImage(wand->images,black_point,white_point); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); + status=ContrastStretchImage(wand->images,black_point,white_point, + &wand->images->exception); return(status); } @@ -6801,9 +6798,7 @@ WandExport MagickBooleanType MagickNormalizeImage(MagickWand *wand) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - status=NormalizeImage(wand->images); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); + status=NormalizeImage(wand->images,&wand->images->exception); return(status); } diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c index a06d28f5b..323a8f2c7 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -1169,8 +1169,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, { (void) SyncImageSettings(mogrify_info,*image); (void) ContrastImage(*image,(*option == '-') ? MagickTrue : - MagickFalse); - InheritException(exception,&(*image)->exception); + MagickFalse,exception); break; } if (LocaleCompare("contrast-stretch",option+1) == 0) @@ -1197,7 +1196,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, } white_point=(MagickRealType) (*image)->columns*(*image)->rows- white_point; - (void) ContrastStretchImage(*image,black_point,white_point); + (void) ContrastStretchImage(*image,black_point,white_point, + exception); InheritException(exception,&(*image)->exception); break; } @@ -2158,8 +2158,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, if (LocaleCompare("normalize",option+1) == 0) { (void) SyncImageSettings(mogrify_info,*image); - (void) NormalizeImage(*image); - InheritException(exception,&(*image)->exception); + (void) NormalizeImage(*image,exception); break; } break; diff --git a/Makefile.in b/Makefile.in index dff524466..b0aefebd9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -221,9 +221,9 @@ check_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_4) $(am__EXEEXT_5) DIST_COMMON = $(MagickCoreinc_HEADERS) $(MagickWandinc_HEADERS) \ $(am__configure_deps) $(am__include_HEADERS_DIST) \ $(am__ltdlinclude_HEADERS_DIST) \ - $(am__magickppinc_HEADERS_DIST) $(magickpptopinc_HEADERS) \ - $(noinst_HEADERS) $(srcdir)/ImageMagick.spec.in \ - $(srcdir)/Magick++/Makefile.am \ + $(am__magickppinc_HEADERS_DIST) \ + $(am__magickpptopinc_HEADERS_DIST) $(noinst_HEADERS) \ + $(srcdir)/ImageMagick.spec.in $(srcdir)/Magick++/Makefile.am \ $(srcdir)/MagickCore/Makefile.am \ $(srcdir)/MagickWand/Makefile.am $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/PerlMagick/Makefile.am \ @@ -2184,7 +2184,15 @@ DATA = $(configlib_DATA) $(configshare_DATA) $(doc_DATA) \ am__include_HEADERS_DIST = ltdl/ltdl.h am__ltdlinclude_HEADERS_DIST = ltdl/libltdl/lt_system.h \ ltdl/libltdl/lt_error.h ltdl/libltdl/lt_dlloader.h -am__magickppinc_HEADERS_DIST = Magick++/lib/Magick++.h +am__magickppinc_HEADERS_DIST = Magick++/lib/Magick++/Blob.h \ + Magick++/lib/Magick++/CoderInfo.h \ + Magick++/lib/Magick++/Color.h Magick++/lib/Magick++/Drawable.h \ + Magick++/lib/Magick++/Exception.h \ + Magick++/lib/Magick++/Geometry.h Magick++/lib/Magick++/Image.h \ + Magick++/lib/Magick++/Include.h \ + Magick++/lib/Magick++/Montage.h Magick++/lib/Magick++/Pixels.h \ + Magick++/lib/Magick++/STL.h Magick++/lib/Magick++/TypeMetric.h +am__magickpptopinc_HEADERS_DIST = Magick++/lib/Magick++.h HEADERS = $(MagickCoreinc_HEADERS) $(MagickWandinc_HEADERS) \ $(include_HEADERS) $(ltdlinclude_HEADERS) \ $(magickppinc_HEADERS) $(magickpptopinc_HEADERS) \ @@ -4352,6 +4360,8 @@ MAGICKWAND_CLEANFILES = \ @WITH_MAGICK_PLUS_PLUS_TRUE@MAGICKPP_SCRPTS = $(MAGICKPP_SCRIPTS_OPT) @WITH_MAGICK_PLUS_PLUS_FALSE@MAGICKPP_TESTS = @WITH_MAGICK_PLUS_PLUS_TRUE@MAGICKPP_TESTS = $(MAGICKPP_TEST_SCRIPTS_OPT) +@WITH_MAGICK_PLUS_PLUS_FALSE@MAGICKPP_TOP_INCHEADERS = +@WITH_MAGICK_PLUS_PLUS_TRUE@MAGICKPP_TOP_INCHEADERS = $(MAGICKPP_TOP_INCHEADERS_OPT) @WITH_MAGICK_PLUS_PLUS_FALSE@MAGICKPP_INCHEADERS = @WITH_MAGICK_PLUS_PLUS_TRUE@MAGICKPP_INCHEADERS = $(MAGICKPP_INCHEADERS_OPT) MAGICKPP_SCRIPTS_OPT = \ @@ -4465,11 +4475,25 @@ Magick___lib_libMagick___la_SOURCES = \ Magick++/lib/Magick++/TypeMetric.h magickpptopincdir = $(topincludedir) -magickpptopinc_HEADERS = +magickpptopinc_HEADERS = $(MAGICKPP_TOP_INCHEADERS) +MAGICKPP_TOP_INCHEADERS_OPT = \ + Magick++/lib/Magick++.h + magickppincdir = $(topincludedir)/Magick++ magickppinc_HEADERS = $(MAGICKPP_INCHEADERS) MAGICKPP_INCHEADERS_OPT = \ - Magick++/lib/Magick++.h + Magick++/lib/Magick++/Blob.h \ + Magick++/lib/Magick++/CoderInfo.h \ + Magick++/lib/Magick++/Color.h \ + Magick++/lib/Magick++/Drawable.h \ + Magick++/lib/Magick++/Exception.h \ + Magick++/lib/Magick++/Geometry.h \ + Magick++/lib/Magick++/Image.h \ + Magick++/lib/Magick++/Include.h \ + Magick++/lib/Magick++/Montage.h \ + Magick++/lib/Magick++/Pixels.h \ + Magick++/lib/Magick++/STL.h \ + Magick++/lib/Magick++/TypeMetric.h Magick___lib_libMagick___la_LDFLAGS = -no-undefined \ -version-info $(MAGICK_LIBRARY_CURRENT):$(MAGICK_LIBRARY_REVISION):$(MAGICK_LIBRARY_AGE) @@ -11430,18 +11454,6 @@ MagickCore-install-data-local: $(INSTALL_HEADER) MagickCore/magick-config.h $(DESTDIR)$(MagickCoreincdir)/magick-config.h MagickCore-uninstall-local: rm -f $(DESTDIR)$(MagickCoreincdir)/magick-config.h - Magick++/lib/Magick++/Blob.h \ - Magick++/lib/Magick++/CoderInfo.h \ - Magick++/lib/Magick++/Color.h \ - Magick++/lib/Magick++/Drawable.h \ - Magick++/lib/Magick++/Exception.h \ - Magick++/lib/Magick++/Geometry.h \ - Magick++/lib/Magick++/Image.h \ - Magick++/lib/Magick++/Include.h \ - Magick++/lib/Magick++/Montage.h \ - Magick++/lib/Magick++/Pixels.h \ - Magick++/lib/Magick++/STL.h \ - Magick++/lib/Magick++/TypeMetric.h # If source files missing, see if they can be obtained via VPATH perl-sources: diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs index 03b29ed70..3b2e855f1 100644 --- a/PerlMagick/Magick.xs +++ b/PerlMagick/Magick.xs @@ -8385,7 +8385,7 @@ Mogrify(ref,...) if (attribute_flag[0] == 0) argument_list[0].integer_reference=0; (void) ContrastImage(image,argument_list[0].integer_reference != 0 ? - MagickTrue : MagickFalse); + MagickTrue : MagickFalse,exception); break; } case 37: /* CycleColormap */ @@ -8791,7 +8791,7 @@ Mogrify(ref,...) if (attribute_flag[0] != 0) channel=(ChannelType) argument_list[0].integer_reference; PushPixelChannelMap(image,channel); - NormalizeImage(image); + NormalizeImage(image,exception); PopPixelChannelMap(image); break; } @@ -9877,7 +9877,7 @@ Mogrify(ref,...) if (attribute_flag[4] != 0) channel=(ChannelType) argument_list[4].integer_reference; PushPixelChannelMap(image,channel); - (void) ContrastStretchImage(image,black_point,white_point); + (void) ContrastStretchImage(image,black_point,white_point,exception); PopPixelChannelMap(image); break; } diff --git a/coders/jpeg.c b/coders/jpeg.c index 7808d0287..d6ad30ad7 100644 --- a/coders/jpeg.c +++ b/coders/jpeg.c @@ -573,6 +573,9 @@ static boolean ReadProfile(j_decompress_ptr jpeg_info) char name[MaxTextExtent]; + const StringInfo + *previous_profile; + ErrorManager *error_manager; @@ -641,6 +644,9 @@ static boolean ReadProfile(j_decompress_ptr jpeg_info) (void) CopyMagickString(name,"xmp",MaxTextExtent); } } + previous_profile=GetImageProfile(image,name); + if (previous_profile != (const StringInfo *) NULL) + ConcatenateStringInfo(profile,previous_profile); status=SetImageProfile(image,name,profile); profile=DestroyStringInfo(profile); if (status == MagickFalse) diff --git a/coders/msl.c b/coders/msl.c index 56641935b..04d2df3c7 100644 --- a/coders/msl.c +++ b/coders/msl.c @@ -2120,7 +2120,8 @@ static void MSLStartElement(void *context,const xmlChar *tag, } } } - (void) ContrastImage(msl_info->image[n],sharpen); + (void) ContrastImage(msl_info->image[n],sharpen, + &msl_info->image[n]->exception); break; } if (LocaleCompare((const char *) tag,"crop") == 0) @@ -4084,7 +4085,8 @@ static void MSLStartElement(void *context,const xmlChar *tag, } } } - (void) NormalizeImage(msl_info->image[n]); + (void) NormalizeImage(msl_info->image[n], + &msl_info->image[n]->exception); break; } ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag); diff --git a/config/configure.xml b/config/configure.xml index 4ffb5ada3..b42e46dc2 100644 --- a/config/configure.xml +++ b/config/configure.xml @@ -10,8 +10,8 @@ - - + + diff --git a/configure b/configure index 951087fff..db1c62ea4 100755 --- a/configure +++ b/configure @@ -3582,7 +3582,7 @@ MAGICK_LIBRARY_CURRENT_MIN=`expr $MAGICK_LIBRARY_CURRENT - $MAGICK_LIBRARY_AGE` MAGICK_LIBRARY_VERSION_INFO=$MAGICK_LIBRARY_CURRENT:$MAGICK_LIBRARY_REVISION:$MAGICK_LIBRARY_AGE -MAGICK_SVN_REVISION=4944 +MAGICK_SVN_REVISION=4982 diff --git a/libtool b/libtool index 5631a5f26..d1d8b4be5 100755 --- a/libtool +++ b/libtool @@ -275,7 +275,7 @@ hardcode_into_libs=yes sys_lib_search_path_spec="/usr/lib/gcc/x86_64-redhat-linux/4.6.1 /usr/lib64 /lib64 " # Run-time system search path for libraries. -sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib /usr/lib64/atlas /usr/lib64/mysql /usr/lib64/qt-3.3/lib /usr/lib64/tcl8.5/tclx8.4 /usr/lib64/tcl8.5 /usr/lib/wine/ /usr/lib64/wine/ /usr/lib64/xulrunner-2 " +sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib /usr/lib64/atlas /usr/lib/llvm /usr/lib64/llvm /usr/lib64/mysql /usr/lib64/qt-3.3/lib /usr/lib64/tcl8.5/tclx8.4 /usr/lib64/tcl8.5 /usr/lib/wine/ /usr/lib64/wine/ /usr/lib64/xulrunner-2 " # Whether dlopen is supported. dlopen_support=yes -- 2.40.0