From c266290b5d4408294bacd8d404c7aacd1a8ee968 Mon Sep 17 00:00:00 2001 From: Neil Date: Sat, 16 Jul 2011 21:32:31 +0200 Subject: [PATCH] Don't return an alpha channel if it's not present. Fix return type of as_grey --- scikits/image/io/_plugins/qt_plugin.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scikits/image/io/_plugins/qt_plugin.py b/scikits/image/io/_plugins/qt_plugin.py index 6d931408..64379982 100644 --- a/scikits/image/io/_plugins/qt_plugin.py +++ b/scikits/image/io/_plugins/qt_plugin.py @@ -107,11 +107,17 @@ def imread_qt(filename, as_grey=False): else: img = img.reshape((qtimg.height(), pixelsPerLine)) img = img[:, :qtimg.width()] + # Strip alpha channel if needed + if bytesPerPixel == 4 and not qtimg.hasAlphaChannel(): + img = img[:, :, 0:3] if as_grey and bytesPerPixel > 1: # Stolen from fits_plugin - # these are the values that wikipedia says are typical - transform = numpy.array([ 0.30, 0.59, 0.11]) - return numpy.dot(img, transform) + if img.shape[2] == 4: + # these are the values that wikipedia says are typical + transform = np.array([ 0.30, 0.59, 0.11, 0]) + else: + transform = np.array([ 0.30, 0.59, 0.11]) + return np.dot(img, transform).astype('uint8') return img if sip.SIP_VERSION >= 0x040c00: