From 9f33f8e014fe2f52937ae411d108a862c179ceeb Mon Sep 17 00:00:00 2001 From: Matthew Wilber Date: Tue, 20 Apr 2004 19:59:10 +0000 Subject: [PATCH] Disabled support for grayscale images with bit depths less than 8. This is because libpng does not support these images when it does gray to RGB conversion. Will need to enhance libpng or add workarounds to PNGTranslator to fix this issue. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7260 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/translators/pngtranslator/PNGTranslator.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/add-ons/translators/pngtranslator/PNGTranslator.cpp b/src/add-ons/translators/pngtranslator/PNGTranslator.cpp index 32834db993..db380dbf89 100644 --- a/src/add-ons/translators/pngtranslator/PNGTranslator.cpp +++ b/src/add-ons/translators/pngtranslator/PNGTranslator.cpp @@ -325,6 +325,14 @@ PNGTranslator::translate_from_png_to_bits(BPositionIO *inSource, int bit_depth, color_type, interlace_type; png_get_IHDR(ppng, pinfo, &width, &height, &bit_depth, &color_type, &interlace_type, int_p_NULL, int_p_NULL); + + if ((color_type == PNG_COLOR_TYPE_GRAY || + color_type == PNG_COLOR_TYPE_GRAY_ALPHA) && bit_depth < 8) { + // libpng's gray to RGB conversion is not implemented + // for bit depths less than 8 + result = B_NO_TRANSLATOR; + break; + } // Setup image transformations to make converting it easier bool balpha = false;