]> granicus.if.org Git - imagemagick/commitdiff
Fixed hasChannel for gray images.
authordirk <dirk@git.imagemagick.org>
Thu, 29 Jan 2015 21:38:57 +0000 (21:38 +0000)
committerdirk <dirk@git.imagemagick.org>
Thu, 29 Jan 2015 21:38:57 +0000 (21:38 +0000)
Magick++/lib/Image.cpp
Magick++/lib/Magick++/Include.h

index 559fc001393d3a8118b3062107a59b929e8e817d..830c7bcf30bdce7b5d74ccd906f5c6efc25120ca 100644 (file)
@@ -962,7 +962,13 @@ MagickCore::DisposeType Magick::Image::gifDisposeMethod(void) const
 
 bool Magick::Image::hasChannel(const PixelChannel channel) const
 {
-  return (GetPixelChannelTraits(constImage(),channel) != UndefinedPixelTrait);
+  if (GetPixelChannelTraits(constImage(),channel) == UndefinedPixelTrait)
+    return(false);
+
+  if (channel == GreenPixelChannel || channel == BluePixelChannel)
+    return (GetPixelChannelOffset(constImage(),channel) == (ssize_t)channel);
+
+  return(true);
 }
 
 void Magick::Image::highlightColor(const Color color_)
index 39a269f4ad0e5b89aab1a0e574beba4dc3d22d02..2fd11fb1be0449dfa1126541ed839cce72a32eae 100644 (file)
@@ -1270,6 +1270,7 @@ namespace Magick
   using MagickCore::GetNextValueInLinkedList;
   using MagickCore::GetNumberOfElementsInLinkedList;
   using MagickCore::GetPixelBlue;
+  using MagickCore::GetPixelChannelOffset;
   using MagickCore::GetPixelChannelTraits;
   using MagickCore::GetPixelGreen;
   using MagickCore::GetPixelInfo;