From 6e43713e9182b7701d11e734f8ca1150663e1a88 Mon Sep 17 00:00:00 2001 From: cristy Date: Fri, 12 Aug 2011 13:02:19 +0000 Subject: [PATCH] --- MagickCore/cache.c | 39 +++++++++++++++++++++++++++++++++++++++ MagickCore/cache.h | 3 ++- MagickCore/colorspace.c | 2 +- MagickCore/image.c | 8 +++++--- PerlMagick/Magick.xs | 2 +- 5 files changed, 48 insertions(+), 6 deletions(-) diff --git a/MagickCore/cache.c b/MagickCore/cache.c index c088e4403..1f40a0331 100644 --- a/MagickCore/cache.c +++ b/MagickCore/cache.c @@ -5318,6 +5318,45 @@ MagickExport MagickBooleanType SyncAuthenticPixels(Image *image, % % % % % % +% S y n c I m a g e P i x e l C a c h e % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% SyncImagePixelCache() saves the image pixels to the in-memory or disk cache. +% The method returns MagickTrue if the pixel region is flushed, otherwise +% MagickFalse. +% +% The format of the SyncImagePixelCache() method is: +% +% MagickBooleanType SyncImagePixelCache(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 SyncImagePixelCache(Image *image, + ExceptionInfo *exception) +{ + CacheInfo + *cache_info; + + assert(image != (Image *) NULL); + assert(exception != (ExceptionInfo *) NULL); + cache_info=(CacheInfo *) GetImagePixelCache(image,MagickTrue,exception); + return(cache_info == (CacheInfo *) NULL ? MagickFalse : MagickTrue); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % + W r i t e P i x e l C a c h e M e t a c o n t e n t % % % % % diff --git a/MagickCore/cache.h b/MagickCore/cache.h index 2b8ed2b77..22b9fce35 100644 --- a/MagickCore/cache.h +++ b/MagickCore/cache.h @@ -45,7 +45,8 @@ extern MagickExport MagickBooleanType ExceptionInfo *), PersistPixelCache(Image *,const char *,const MagickBooleanType, MagickOffsetType *,ExceptionInfo *), - SyncAuthenticPixels(Image *,ExceptionInfo *); + SyncAuthenticPixels(Image *,ExceptionInfo *), + SyncImagePixelCache(Image *,ExceptionInfo *); extern MagickExport MagickSizeType GetImageExtent(const Image *); diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c index 44ee76b8d..ded7e8a45 100644 --- a/MagickCore/colorspace.c +++ b/MagickCore/colorspace.c @@ -1193,7 +1193,7 @@ MagickExport MagickBooleanType SetImageColorspace(Image *image, const ColorspaceType colorspace,ExceptionInfo *exception) { image->colorspace=colorspace; - return(MagickTrue); + return(SyncImagePixelCache(image,exception)); } /* diff --git a/MagickCore/image.c b/MagickCore/image.c index c9faeb427..f926196b3 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -2656,7 +2656,9 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, case UndefinedAlphaChannel: break; } - return(status); + if (status == MagickFalse) + return(status); + return(SyncImagePixelCache(image,exception)); } /* @@ -2867,7 +2869,7 @@ MagickExport MagickBooleanType SetImageStorageClass(Image *image, const ClassType storage_class,ExceptionInfo *exception) { image->storage_class=storage_class; - return(MagickTrue); + return(SyncImagePixelCache(image,exception)); } /* @@ -2957,7 +2959,7 @@ MagickExport MagickBooleanType SetImageExtent(Image *image,const size_t columns, return(MagickFalse); image->columns=columns; image->rows=rows; - return(MagickTrue); + return(SyncImagePixelCache(image,exception)); } /* diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs index fe0dd937e..03b29ed70 100644 --- a/PerlMagick/Magick.xs +++ b/PerlMagick/Magick.xs @@ -10459,7 +10459,7 @@ Mogrify(ref,...) if (attribute_flag[0] == 0) argument_list[0].string_reference=(char *) NULL; (void) ColorDecisionListImage(image, - argument_list[0].string_reference); + argument_list[0].string_reference,exception); break; } case 127: /* AutoGamma */ -- 2.49.0