By default, auto-level all channels equally
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index dc6ec49..1776e0f 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -1263,7 +1263,8 @@
if (filename != (const char *) NULL)
for (p=images; p != (Image *) NULL; p=GetNextImageInList(p))
(void) CopyMagickString(p->filename,filename,MagickPathExtent);
- (void) CopyMagickString(write_info->filename,images->filename,MagickPathExtent);
+ (void) CopyMagickString(write_info->filename,images->filename,
+ MagickPathExtent);
sans_exception=AcquireExceptionInfo();
(void) SetImageInfo(write_info,(unsigned int) GetImageListLength(images),
sans_exception);
diff --git a/MagickCore/histogram.c b/MagickCore/histogram.c
index c952dc6..9382676 100644
--- a/MagickCore/histogram.c
+++ b/MagickCore/histogram.c
@@ -904,10 +904,22 @@
MagickStatusType
status;
+ status=MagickTrue;
+ if (image->channel_mask == DefaultChannels)
+ {
+ /*
+ Auto-level all channels equally.
+ */
+ (void) GetImageRange(image,&min,&max,exception);
+ min+=black;
+ max-=white;
+ if (fabs(min-max) >= MagickEpsilon)
+ status&=LevelImage(image,min,max,gamma,exception);
+ return(status != 0 ? MagickTrue : MagickFalse);
+ }
/*
Auto-level each channel.
*/
- status=MagickTrue;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
ChannelType